Методы обнаружения вирусов

Системы контроля целостности

 

Если, несмотря на использование "классических" систем обнаружения атак и другие предпринятые защитные меры злоумышленник все-таки проник в защищаемую систему, то, как правило, он попытается установить программы типа "троянский конь", изменить системные файлы или отключить систему защиты. В абсолютном большинстве случаев, все эти действия реализуются путем изменения каких-либо файлов (исполняемых, конфигурационных, динамических библиотек, драйверов и т.п.).

Целевой анализ (target-based) (также известный как контроль целостности файлов) использует пассивные, не оказывающие заметного влияния на работу контролируемой системы методы для проверки целостности системы и файлов данных, а также объектов системы и их атрибутов (например, потоки данных, базы данных и ключи системного реестра). Системы контроля целостности используют криптографические проверки контрольных сумм для того, чтобы получить доказательства подделки для наиболее важных системных объектов и файлов. Алгоритмы этих проверок основаны на хэш-функциях, которые обладают тем свойством, что даже незначительные изменения во входных данных функции создают большие различия в результате. Это означает, что незначительное изменение в потоке входных данных приведет к тому, что алгоритм контроля целостности создает значительное изменение в контрольной сумме, генерируемой алгоритмом. Эти алгоритмы являются криптографически стойкими; то есть, при заданном конкретном входном значении (величине), практически невозможно сравняться с другим входным значением для алгоритма, которое будет создавать идентичное выходное значение. Это предотвращает наиболее распространенную атаку против сравнительно простых алгоритмов генерации контрольных сумм (CRC), при которых хакеры маскируют изменения в содержании файла, так что одинаковая контрольная сумма создается как для оригинального, так и для подделанного файла.

Системы контроля целостности работают по замкнутому циклу, обрабатывая файлы, системные объекты и атрибуты системных объектов с целью получения контрольных сумм; затем они сравнивают их с контрольными суммами, полученными на предыдущем цикле, отыскивая изменения. Когда изменение обнаружено, продукт посылает сообщение администратору безопасности, при этом фиксируя время, соответствующее времени вероятного изменения.

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

Любая успешная атака, при которой были изменены файлы, даже если использовались rootkits или перехватчики сетевых пакетов, будет определяться независимо от того, использовался ли для определения атаки анализ сигнатур или статистический анализ. Поскольку современные реализации этого подхода стремятся работать в пакетном (batch)-режиме, они приводят к реагированию на атаки не в реальном масштабе времени.
Поскольку нет зависимости от старых записей режимов работы, контроль целостности может обнаруживать атаки, которые другие методологии определить не могут. В зависимости от количества файлов, системных объектов и атрибутов объектов, для которых вычисляются контрольные суммы, этот подход может все же оказать заметное влияние на производительные системы.
Этот подход допускает надежное обнаружение, как местоположения, так и наличия атак, которые видоизменяют систему (например, "троянских коней"). Этот подход не очень хорошо подходит для осуществления обнаружения в реальном масштабе времени, поскольку он контролирует результаты атак, а не сами атаки, когда они находятся в развитии.
Из-за того, что собственные воздействия и влияния данного механизма являются незначительными, этот подход может быть полезным для мониторинга систем с умеренной полосой пропускания для обработки данных.  
Этот подход является эффективным для определения того, какие файлы необходимо заменить для того, чтобы восстановить систему, а не переинсталлировать все с оригинального источника или с резервной копии, как это часто делается.