Перейти к основному содержимому

Steel Shield

Steel Shield — это фреймворк повышения безопасности NetRecon. Он обеспечивает многоуровневую защиту для локальных развёртываний, гарантируя целостность и подлинность всех компонентов платформы.

Обзор

Steel Shield включает четыре основных механизма безопасности:

ФункцияНазначение
Целостность бинарных файловПроверка того, что исполняемые файлы не были модифицированы
Закрепление сертификатовПредотвращение атак типа «человек посередине» при API-коммуникации
Реагирование на вмешательствоОбнаружение и реагирование на несанкционированные изменения
Защита во время выполненияЗащита от манипуляций с памятью и отладки

Проверка целостности бинарных файлов

Каждый бинарный файл NetRecon (бэкенд зонда, агенты, сервисы) имеет цифровую подпись. При запуске каждый компонент проверяет свою целостность.

Как это работает

  1. Во время сборки каждый бинарный файл подписывается закрытым ключом NetRecon
  2. Подпись встраивается в метаданные бинарного файла
  3. При запуске бинарный файл вычисляет SHA-256 хеш самого себя
  4. Хеш проверяется по встроенной подписи
  5. При неудачной проверке бинарный файл отказывается запускаться и записывает оповещение

Ручная проверка

Проверьте целостность бинарного файла вручную:

# Проверка бэкенда зонда
netrecon-verify /usr/local/bin/netrecon-probe

# Проверка агента
netrecon-verify /usr/local/bin/netrecon-agent

# Ожидаемый вывод:
# Binary: /usr/local/bin/netrecon-probe
# SHA-256: a1b2c3d4e5f6...
# Signature: VALID
# Signed by: NetRecon Build System
# Signed at: 2026-03-15T10:00:00Z

Проверка Docker-образов

Docker-образы подписаны с использованием Docker Content Trust (DCT):

# Включение проверки доверия к контенту
export DOCKER_CONTENT_TRUST=1

# Загрузка с проверкой подписи
docker pull netrecon/api-gateway:latest

Закрепление сертификатов

Закрепление сертификатов гарантирует, что компоненты NetRecon взаимодействуют только с легитимными серверами, предотвращая перехват даже в случае компрометации центра сертификации.

Закреплённые соединения

СоединениеТип закрепления
Агент → ЗондЗакрепление открытого ключа
Admin Connect → ЗондОтпечаток сертификата
Зонд → Update ServerЗакрепление открытого ключа
Зонд → License ServerОтпечаток сертификата

Как это работает

  1. Ожидаемый хеш открытого ключа сертификата встраивается в каждый клиентский бинарный файл
  2. При установке TLS-соединения клиент извлекает открытый ключ сервера
  3. Клиент вычисляет SHA-256 хеш открытого ключа
  4. Если хеш не совпадает с закреплённым значением, соединение отклоняется
  5. Неудачная проверка закрепления вызывает оповещение безопасности

Ротация закреплений

При ротации сертификатов:

  1. Новые закрепления распространяются через сервер обновлений до смены сертификата
  2. В переходный период действительны как старые, так и новые закрепления
  3. После завершения перехода старые закрепления удаляются в следующем обновлении

Для локальных развёртываний обновите закрепления в конфигурации:

# /etc/netrecon/security.yaml
certificate_pins:
api_gateway:
- "sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" # Current
- "sha256/BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=" # Backup

Реагирование на вмешательство

Steel Shield отслеживает критические файлы и конфигурации на предмет несанкционированных изменений.

Отслеживаемые элементы

ЭлементЧастота проверкиРеакция
Бинарные файлыПри запуске + каждый 1 часОповещение + опциональное отключение
Файлы конфигурацииКаждые 5 минутОповещение + откат к резервной копии
Целостность базы данныхКаждые 15 минутОповещение + проверка согласованности
TLS-сертификатыКаждые 5 минутОповещение при изменении
Системные пакетыЕжедневноОповещение при неожиданных изменениях

Действия при реагировании

При обнаружении вмешательства Steel Shield может:

  1. Записать в журнал — зафиксировать событие в журнале аудита безопасности
  2. Оповестить — отправить уведомление через настроенные каналы
  3. Откатить — восстановить изменённый файл из заведомо исправной резервной копии
  4. Изолировать — ограничить сетевой доступ только управлением
  5. Выключить — остановить сервис для предотвращения дальнейшей компрометации

Настройка уровня реагирования:

# /etc/netrecon/security.yaml
tamper_response:
level: "alert_and_revert" # Options: log, alert, alert_and_revert, isolate, shutdown
notify_email: "[email protected]"

База данных целостности файлов

Steel Shield поддерживает базу данных хешей всех защищённых файлов:

# Инициализация базы данных целостности
netrecon-shield init

# Ручная проверка целостности
netrecon-shield verify

# Ожидаемый вывод:
# Checked 47 files
# Status: ALL INTACT
# Last verified: 2026-03-15T14:30:00Z

Защита во время выполнения

Защита от отладки

В продуктивном режиме бинарные файлы NetRecon включают меры защиты от отладки:

  • Обнаружение подключённых отладчиков (ptrace в Linux, IsDebuggerPresent в Windows)
  • Проверки тайминга для пошагового выполнения
  • При обнаружении отладки в продуктивной среде процесс корректно завершается
к сведению

Защита от отладки отключена в сборках для разработки, чтобы обеспечить нормальный процесс отладки.

Защита памяти

  • Чувствительные данные (токены, ключи, пароли) хранятся в защищённых областях памяти
  • Память очищается после использования для предотвращения утечки остаточных данных
  • В Linux используется mlock для предотвращения выгрузки чувствительных страниц на диск

Конфигурация

Включение Steel Shield

Steel Shield включен по умолчанию в продуктивных развёртываниях. Настройте его в:

# /etc/netrecon/security.yaml
steel_shield:
enabled: true
binary_integrity: true
certificate_pinning: true
tamper_response: true
runtime_protection: true
integrity_check_interval: 3600 # seconds
tamper_check_interval: 300 # seconds

Отключение для разработки

Для сред разработки и тестирования:

steel_shield:
enabled: false

Или отключение отдельных функций:

steel_shield:
enabled: true
binary_integrity: false # Skip hash verification during dev
runtime_protection: false # Allow debugger attachment

Журнал аудита

Все события Steel Shield записываются в журнал аудита безопасности:

# Просмотр последних событий безопасности
netrecon-shield audit --last 24h

# Экспорт журнала аудита
netrecon-shield audit --export csv --output security-audit.csv

Записи журнала аудита включают:

  • Временную метку
  • Тип события (integrity_check, pin_validation, tamper_detected и т.д.)
  • Затронутый компонент
  • Результат (pass/fail)
  • Предпринятое действие
  • Дополнительные детали

Особенности локального развёртывания

При локальном развёртывании учитывайте следующее:

  1. Пользовательские сертификаты: если вы используете собственный ЦС, обновите конфигурацию закрепления сертификатов после развёртывания
  2. Обновления бинарных файлов: после обновления бинарных файлов выполните netrecon-shield init для пересоздания базы данных целостности
  3. Резервное копирование базы данных целостности: включите /etc/netrecon/integrity.db в процедуру резервного копирования
  4. Мониторинг оповещений: настройте email- или webhook-уведомления для оповещений о вмешательстве

Часто задаваемые вопросы

В: Может ли Steel Shield вызывать ложные срабатывания? О: Ложные срабатывания редки, но могут возникать после системных обновлений, изменяющих общие библиотеки. Выполните netrecon-shield init после системных обновлений для обновления базы данных целостности.

В: Влияет ли Steel Shield на производительность? О: Влияние на производительность минимально. Проверки целостности выполняются в фоновом потоке и обычно завершаются менее чем за 1 секунду.

В: Можно ли интегрировать оповещения Steel Shield с моей SIEM? О: Да. Настройте вывод syslog в конфигурации безопасности для перенаправления событий в вашу SIEM. Steel Shield поддерживает форматы вывода syslog (RFC 5424) и JSON.

В: Обязателен ли Steel Shield для продуктивных развёртываний? О: Steel Shield настоятельно рекомендуется, но не является строго обязательным. Вы можете его отключить, но это удалит важные средства защиты безопасности.

Для получения дополнительной помощи свяжитесь с [email protected].