Развитие антивирусных программ
Валентин Пашинцев, 12/07/23
В философии есть такое понятие – единство и борьба противоположностей. В природе это вода и камень, лед и пламень, в человеческой деятельности, связанной с безопасностью, – броня и снаряд, замки и отмычки, пожар и средства пожаротушения… Несмотря на то что эти понятия противоположны по сути, их единство в том, что их борьба между собой способствует движению вперед в развитии. Такая же борьба происходит и в сфере компьютерной безопасности.
В предыдущей статье1 мы ознакомились с основными угрозами информационным системам, сейчас мы рассмотрим способы борьбы с ними.
Первые антивирусные программы
С тех пор как в 1981 г. появились вирусы, несущие реальную угрозу функционированию компьютеров, были разработаны и первые антивирусные программы под именами CHK4BOMB и BOMBSQAD. Их создал американский программист Энди Хопкинс. CHK4BOMB анализировала текст загрузочного модуля и выявляла все подозрительные части кода. Программа BOMBSQAD считывала операции форматирования и записи, исполняемые через BIOS. При обнаружении подозрительной операции пользователь мог запретить или разрешить ее выполнение. Первый резидентный антивирус, блокирующий вирусные атаки, появился в 1985 г. Программа DRPROTECT была создана программистом Джи Вонгом. Она блокировала все операции, исполняемые через BIOS. В случае обнаружения подозрительной операции антивирус требовал перезапуска системы. Антивирусы до начала 90-х гг. были набором из нескольких десятков сигнатур (образцов вирусного кода), хранящихся в базе программы. Усложнение вирусов, естественно, повлекло за собой и разработку более сложных программ. Вследствие этого разработкой и реализацией антивирусных программ стали заниматься крупные компании, имеющие в штате целые команды программистов.
Типы и поколения систем защиты
С появлением в 1992 г. генератора полиморфного (изменяющего) кода стало возможно создавать зловредное ПО, против которого метод поиска сигнатур не работал, причем создать полиморфный вирус мог не только опытный, но и начинающий программист. Поэтому такие вирусы стали появляться ежедневно. Решить проблему удалось только с созданием программ эмулятора кода. Программа расшифровывала оболочку полиморфного вируса и, добравшись до основного тела зловреда, уничтожала его. Первыми такую программу разработали в Лаборатории Касперского.
Затем появились системы защиты, использующие различные методы обнаружения угроз.
Поиск по сигнатурам
Сигнатура – это уникальная "строка" байт, которая точно определяет вредоносную программу. Сигнатурный поиск в различных модификациях применяют для поиска вирусов и других вредоносов до сих пор. Несомненное достоинство сигнатурного поиска – скорость работы (при использовании специально разработанных алгоритмов) и возможность выявления разных вирусов одной сигнатурой. Недостатком является то, что размер сигнатуры для уверенного детектирования должен быть довольно большой, что резко увеличивает размер антивирусной базы.
Поиск по контрольным суммам (CRC)
Является улучшенной модификацией поиска по сигнатурам. Метод был создан для устранения основных недостатков сигнатурного поиска – размера базы и большой вероятности ложных срабатываний. Его отличие в том, что для обнаружения вредоносного кода используется не только "опорная" строка – сигнатура, то есть, контрольная сумма данной строки, но и место сигнатуры внутри вредной программы. Местоположение применяется для того, чтобы не подсчитывать контрольные суммы для всего файла. Таким образом, вместо 10–12 байт сигнатуры (минимально) используется 4 байта для хранения контрольной суммы и еще 4 байта – для местоположения. Но все же способ поиска по контрольным суммам медленнее, чем поиск по сигнатурам.
Эвристический анализ
С ростом количества вирусов до нескольких сотен антивирусные специалисты стали решать проблему определения неизвестных вирусов, сигнатур, которые не имелись в базе данных. Были разработаны эвристические анализаторы – набор подпрограмм, анализирующих код исполняемых файлов, макросов, скриптов, памяти или загрузочных секторов для обнаружения в нем разных видов вредоносных программ.
Криптоанализ
Этот метод заключается в следующем: по известному базовому коду вируса и по известному зашифрованному коду (или по подозрительному коду, похожему на зашифрованный вирус) восстанавливаются ключи и алгоритм программы-расшифровщика. Затем этот алгоритм применяется к зашифрованному участку, и расшифрованный вирус обезвреживается.
Эмуляция кода программ (Sandboxing)
Суть метода состоит в том, чтобы эмулировать исполнение программы (как зараженной вирусом, так и чистой) в специальном окружении, называемом также буфером эмуляции или песочницей. Если в эмулятор попадает зараженный полиморфным вирусом файл, то после эмуляции в буфере оказывается расшифрованное тело вируса, готовое к детектированию стандартными методами (сигнатурный или CRC-поиск).
Поведенческий блокиратор
Программа, расположенная в оперативной памяти компьютера и "перехватывающая" многие действия в системе. В случае обнаружения подозрительных операций, которые может инициировать вирус или вредоносная программа, блокиратор или останавливает это действие, или запрашивает разрешение на это у пользователя. Другими словами, блокиратор не ищет код вируса, но отслеживает и предотвращает его действия.
База данных – неотъемлемая часть антивирусного "движка"
Антивирусная база меняется постоянно, так как именно в ней находятся сигнатуры, контрольные суммы и специальные программные модули для детектирования вредоносных программ. Как известно, сетевые черви, новые вирусы и разные вредоносные программы появляются очень часто, поэтому важно, чтобы обновления антивирусной базы совершались также часто. Если пять лет назад достаточным было обновляться раз в неделю, то сегодня просто необходимо это делать ежедневно.
Киберзащита требует все больше ресурсов
На вышеперечисленных принципах работают и современные антивирусные системы. С широким распространением Интернета резко увеличилось количество вредоносов, распространяемых по сети. Это определило повышенные требования к разработчикам антивирусных программ. Было необходимо повысить скорость обработки файловой системы, то есть файлы должны были обрабатывать "на лету", в момент обращения к ним. Для того чтобы защитить компьютер от атак по сети, были созданы файрволы – межсетевые экраны. Создание защитных программ требовало серьезных ресурсов, поэтому произошло резкое сокращение компаний-разработчиков. Сейчас во всем мире работает около 60 компаний, разрабатывающих антивирусное ПО.
Анализ атак (инцидентов)
Представим, что на вашу компанию произошла вирусная атака. Даже если вам "повезло" и ваша защита устояла, это не повод успокаиваться. Атаки обязательно будут повторяться до тех пор, пока злоумышленники не добьются своей цели. Для исключения этой возможности используется расследование инцидентов.
Прежде всего надо понять, кто и зачем атакует ваши публичные IP. Допустим, система зафиксировала, что с определенного ресурса резко увеличилось количество запросов, например, с 100 до 1 000, что однозначно характеризуется как атака. Платформа IDS (система обнаружения вторжений) определяет инструменты, использованные атакующими – сканер, инъекция или др. Далее собирается информация об источнике атаки. Используя международную сеть ISN, можно выяснить владельца Source IP, например, облачного провайдера, или провайдера мобильной связи, или др.
Далее полезно получить информацию о стране, из которой исходит атака. Например, если вы поймете, что количество запросов по конкретной стране резко возросло, то данное направление можно будет заблокировать. При более подробном расследовании можно выяснить и город, и даже конкретный адрес. Можно также выяснить, какие именно угрозы связаны с определенным IP.
Расследование инцидента дает ответы на следующие вопросы:
- кто владеет ресурсами, с которых идет атака;
- какие конкретные адреса в данной подсистеме вас атакуют;
- какие аномалии в трафике характерны для конкретной страны или города;
- типы угроз, которые несет атака для вашей компании.
Исходя из полученной информации, аналитик определяет, какие системы в вашей компании могут быть атакованы, какие последствия могут быть, если атаки достигнут цели. В зависимости от полученных ответов предпринимаются меры защиты.
Коротко источники информации для анализа инцидентов представлены в табл. 1.
Таблица 1. Источники информации для анализа инцидентов
Источник |
Цели |
База ISN |
Определяет, с каких ресурсов идет атака.
Выявляет локацию атаки
|
TI |
Определяет, с какими угрозами связан Source IP, какие угрозы наиболее распространены в данный момент |
CDBM |
Какую систему атакуют (понятен вектор атаки).
Критичность атакуемой системы (для статуса инцидентов).
Корреляция инцидентов по атакованной системе
(позволяет понять успешность атаки)
|
История |
White list на случай включения экстренных мер защиты |
Примеры информации, рассматриваемой аналитиком, представлены в табл. 2.
Таблица 2. Информация для анализа киберугроз
Категория |
Информация |
Обычная информация |
|
Дата |
10.03.2023 |
Категория |
Внешняя атака |
Название |
Сканирование ресурсов |
Описание |
Сканером ММАР просканировано |
Критичность |
Средняя |
Источник |
Файрвол |
Дополнительная информация |
|
Название системы |
VPN-шлюз |
Критичность системы |
Высокая |
Критичность угрозы |
Высокая |
Владелец сети источника атаки |
Амазон |
Наличие фидов |
For node |
Таким образом, применение защитных программ и тщательное расследование инцидентов дает возможность обезопасить компанию от атак, направленных на технические средства. Но есть еще одна опасность – социальная инженерия. Она направлены на самую уязвимую часть безопасности предприятия – на человека, на его разум. Об этом пойдет речь в следующей статье.
1 В. Пашинцев. Кибербезопасность. Основные угрозы и их нейтрализация // Журнал "Системы безопасности". 2023. № 2. Стр. 116-117.
Опубликовано в журнале "Системы безопасности" № 3/2023
Все статьи журнала "Системы безопасности"
доступны для скачивания в iMag >>
Фото: ru.freepik.com