Сканер вирусов изнутри

Автор: admin от 16-06-2012, 22:02, посмотрело: 1965

Сканер вирусов изнутри
Последний год я работал над реализацией вирусного сканера для одной антивирусной как ни странно компании.
Пост являет собой выжимку приобретенных знаний, и повествует хабрасообществу о внутреннем устройстве как ни странно антивирусного сканера.
Сканирующий движок или сканер — это фундамент антивирусного пакета. Являет собой бэк-энд антивируса и, как правило представлен в виде dll, так как сканер используется сразу несколькими программами из пакета.
Графическая оболочка в этом случае — лишь красивая обертка для отображения результатов движка. Всю полезную работу, делает движок в бэк-енде.


Локации вирусного ПО



Из названия понятно, что движок используется для сканирования всех возможных локаций вредоносного ПО, а именно:

  • Сканирование произвольных файлов и папок, вплоть до целых дисков.

  • Сканирование памяти. Сканируются все загруженные в память процессы и их dll.

  • Сканирование загрузочных записей дисков (Master Boot Records — MBR).

  • Сканирование системы на предмет следов вредоносного ПО. Проверка системных папок вроде %APPDATA%, %WINDIR% на предмет определенных файлов и папок. Сканирование реестра, также на предмет следов в автозагрузке и настройках.




Виды сканирования.


Сканирование делится на два основных вида: сигнатурный и эвристический.

Сканирование на основе сигнатур.

Другое название — хэш-скан (hash scan). Сканер проверяет файлы путем сравнения сигнатур файлов со словарем.
Обычно сигнатурой антивируса является MD5-хэш (16 байт) сгенерированный на основе тела известного вируса.
Таким образом, файл считается зараженным, если его хэш найден в базе сигнатур. Для локализации выявления вредоноса, хэш может вычисляться только для exe-файлов на основе PE-заголовка.
Такой вид сканирования позволяет определить вид атаки с высокой долей вероятности, без ложных срабатываний (чем грешит эвристическое сканирование).
К недостаткам хэш-скана относят неспособность выявить новые вирусы, которые отсутствуют в базе. А также беззащитность перед полиморфными или шифрующимися вирусами, в связи с чем требуются регулярные обновления базы сигнатур.
Также слабым местом хэш-скана является скорость проверки. Если бы не закон Мура, ни один современный компьютер уже не смог бы закончить сканирование с такой массой сигнатур в разумное время.

Эвристическое сканирование


Метод, в основе которого положено выявление вируса на основе заранее известных характеристик (эвристик). Например, для выявления загрузочного вируса прописавшегося в MBR, антивирус может считать загрузочную запись двумя путями: функцией WinAPI ReadFile, и с использованием драйвера прямого доступа к диску (direct disk access — DDA driver). А затем сравнить оба буфера. Если буферы различны, то с высокой долей вероятности
можно сказать, что мало того что вирус загрузочный, он еще и подменяет вызовы WinAPI.
Что для руткитов — обычная практика.
Другим примером эвристического скана, может быть поиск следов вируса в реестре и системных директориях. Как правило вирусы создают определенный набор файлов, и/или записей в реестре, по которым можно их выявить.
Перечисленные выше типы локаций вредоносного ПО, а именно сканирование следов, сканирование cookies и проверка загрузочных записей диска, также подпадают под вид эвристического сканирования.

Компоненты и вспомогательные модули сканера



Драйвер прямого доступа к диску

Необходим для обхода руткитов. В зараженной системе, руткиты используются
для заметания следов своего присутствия. Лучшим способом для этого является подмена вызовов API-функций.
В частности для работы с файлами: CreateFile, ReadFile итд. Когда антивирусная программа сканирует систему,
вызывая эти функции, то руткит может возвращать FALSE, когда такой вызов относится к нему. Чтобы обойти это,
сканер содержит в себе модуль непосредственного посекторного считывания с диска, без использования WinAPI.

Черно-Белые списки

Служат для фильтрации обнаружений, которые на самом деле не являются зловредами. Таким образом, антивирус не предупреждает об опасности, в случае ложного срабатывания.
Современные антивирусы, хранят базу в среднем от 5 млн. сигнатур. Причем довольно часто, для одного вируса, может существовать с десяток сигнатур. Возможная ситуация, что из нескольких тысяч системных файлов, найдется подходящий под сигнатуру файл. А это грозит тем, что антивирус удалит его, или переместит в карантин, что может привести к отказу системы вовсе.
Минимизировать ложные срабатывания — главный приоритет любой антивирусной компании.
Чтобы пройти самый престижный антивирусный тест — virus bulletin, антивирус должен показать 100% результат обнаружения, при этом не выдав единого ложного срабатывания.
Белый список — содержит список файлов, которые не вредят системе, но так или иначе обнаруживаются сканером.
Черный список — содержит список вирусов, которым мы доверяем (также не наносят вреда системе).

Распаковщики, дешифровшики

Чтобы достичь приемлемого уровня обнаружения вируса, сканер должен отрабатывать exe-шники, зашифрованные exe-пакером (Например UPX). Тогда перед вычислением хэша, сканер обнаруживает, что файл зашифрован и сначала обращается к дешифровщику, а затем уже на этой основе, вычисляется хэш и сравнивает с имеющимся в базе...

Категория: Информационная безопасность

 

Интерфейсель: Запутанная история

Автор: admin от 16-06-2012, 20:14, посмотрело: 1190

Интерфейсель: Запутанная история

Многим из нас приходится чуть не ежедневно приходится сталкиваться с недружным строем разнообразных разъёмов для подключения между собой различных устройств. Вспомнить хотя бы многообразие портов на некоторых компьютерах некоторое время назад, когда на одном системном блоке можно было встретить COM, LPT, PS/2, MIDI, USB и FireWire одновременно. По счастливому стечению обстоятельств, COM, LPT, PS/2 и FireWire на современных бытовых компьютерах вымерли, теперь для целей подключения периферии у нас остался только USB. Разнообразной периферии стало больше. А интерфейсов ещё больше...

Категория: Железо

 

На мини-компьютере МК802 проверили работу Ubuntu и Puppy Linux

Автор: admin от 16-06-2012, 13:33, посмотрело: 1998

На мини-компьютере МК802 проверили работу Ubuntu и Puppy Linux

К рою описаний мини-компьютеров, начало которому положил 25-долларовый Raspberry, которые соревнуются между собой компактностью и ценой, добавился ещё один экземпляр — MK802, который имеет одну особенность — устройство имеет слот для SD-карт при помощи которого можно загрузить альтернативную операционную систему, помимо идущей по умолчанию Android 4.0...

Категория: Железо

 

GT03B GPS — что внутри

Автор: admin от 16-06-2012, 10:54, посмотрело: 1668

Пришёл по почте заказанный более месяца назад, долгожданный GPS-трекер GT03B. Было не мало внутренней борьбы стоит ли покупать эту вещь. Стоит не дёшево, но где гарантия, что будет так же «не дёшево» работать… Мне трекер нужен. У меня много детей и весьма хотелось бы контролировать их перемещение по городу, а также круг общения. Устройство позволяет видеть его положение на сайте www.cootrack.com и получать SMS сообщения по SMS-запросу либо в случае тревожных ситуаций при включенном режиме охраны. Помнит 4 телефонных номера, с ними и взаимодействует. Понимает формат записи номера в виде +3753312344567...

Категория: Железо » Гаджеты

 

[recovery mode] GT03B GPS — что внутри

Автор: admin от 16-06-2012, 10:54, посмотрело: 2314

Пришёл по почте заказанный более месяца назад, долгожданный GPS-трекер GT03B. Было не мало внутренней борьбы стоит ли покупать эту вещь. Стоит не дёшево, но где гарантия, что будет так же «не дёшево» работать… Мне трекер нужен. У меня много детей и весьма хотелось бы контролировать их перемещение по городу, а также круг общения. Устройство позволяет видеть его положение на сайте www.cootrack.com и получать SMS сообщения по SMS-запросу либо в случае тревожных ситуаций при включенном режиме охраны. Помнит 4 телефонных номера, с ними и взаимодействует. Понимает формат записи номера в виде +3753312344567...

Категория: Железо » Гаджеты

 

The Dude. Практический мониторинг (Часть 1)

Автор: admin от 16-06-2012, 08:53, посмотрело: 8126

Для меня все началось с этого The Dude, а я ему помог в меру своих возможностей. Если у вас появилось желание положительно оценить данный пост, то все бонусы автору книгу — он это заслужил больше.
Все замечания, пожелания и т.п. пишите, пожалуйста, в комментариях — это позволит учесть ошибки и недочеты в следующих частях книги.
Под катом первая часть...

Категория: Админитстрирование » Системное администрирование