Контроль целостности: гарантия того, что данные не изменены

Что такое контроль целостности

Контроль целостности — это механизм проверки того, что данные, программы, конфигурации или системы не были изменены несанкционированно. Если кто-то подменил файл, модифицировал системную библиотеку, изменил конфигурацию сервера или подделал документ — контроль целостности должен это обнаружить.
Целостность является одним из трёх столпов информационной безопасности наряду с конфиденциальностью и доступностью. Без гарантии целостности невозможно доверять данным: вы не можете быть уверены, что баланс в базе данных не подделан, что исполняемый файл не содержит вредоносного кода, что конфигурация сервера не изменена атакующим.

Как работает контроль целостности

Основной механизм — вычисление хэш-функции от данных. Хэш — это уникальная цифровая подпись фиксированной длины, вычисленная из содержимого файла или данных. Даже изменение одного бита в файле приводит к совершенно другому хэшу.
Система контроля целостности вычисляет хэши критических файлов и сохраняет их как эталонные. Периодически или в реальном времени хэши вычисляются заново и сравниваются с эталонными. Расхождение означает, что файл был изменён.
Используются алгоритмы хэширования вроде SHA-256 или ГОСТ Р 34.11-2012. Для защиты от подмены самих эталонных хэшей они могут быть подписаны цифровой подписью или храниться в защищённом хранилище.

Что контролируется

Системные файлы операционной системы: библиотеки, исполняемые файлы, драйверы. Их модификация — типичный признак вредоносного ПО или руткита.
Конфигурационные файлы: настройки серверов, правила межсетевых экранов, параметры служб. Несанкционированное изменение конфигурации может открыть доступ атакующему или нарушить работу системы.
Исполняемые файлы приложений. Проверка того, что приложение не было модифицировано для внедрения вредоносного кода.
Данные в критических базах. Обеспечение того, что записи не были изменены в обход бизнес-логики.
Прошивки оборудования. Атаки на уровне прошивок сложно обнаружить без специального контроля.

Средства контроля целостности

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

Практическое применение

Обнаружение вредоносного ПО. Многие вирусы и трояны модифицируют системные файлы или добавляют новые. Контроль целостности выявляет эти изменения.
Обнаружение несанкционированных изменений. Если администратор или атакующий изменил правила файрвола или добавил пользователя в группу администраторов, система зафиксирует отклонение.
Соответствие требованиям. Многие стандарты и регуляторы прямо требуют контроля целостности для систем, обрабатывающих критичную информацию.
Расследование инцидентов. Записи контроля целостности помогают определить, какие файлы были изменены в ходе атаки и когда это произошло.

Что нужно учитывать

Определите, что контролировать. Контролировать каждый файл на каждом сервере нецелесообразно. Сосредоточьтесь на критических объектах: системные файлы, конфигурации, исполняемые файлы приложений.
Установите базовое состояние. Перед началом мониторинга зафиксируйте эталонное состояние. Убедитесь, что в этот момент система не скомпрометирована, иначе эталон будет содержать вредоносные изменения.
Определите порядок действий при обнаружении изменений. Не каждое изменение является угрозой: администратор мог легитимно обновить конфигурацию. Должен быть процесс верификации: кто внёс изменение, было ли оно авторизовано.
Учитывайте производительность. Интенсивное хэширование на продуктивных системах может создавать нагрузку. Настройте расписание проверок с учётом загрузки серверов.