Современные атакующие редко используют старые виды вредоносного кода для атак. Под каждого человека создается свой собственный вирус. То есть, если идет направленная атака на ваших топ-менеджеров или бухгалтеров или администраторов, то каждому пришлют его личную версию вредоносного кода по электронной почте. Да, вот такой вот персональный подход!
Бывает, что присылают ссылку в письме или в форуме: ссылка на файл одна и та же, но каждый раз кликая на эту ссылку, сайт генерирует каждому зашедшему свою модификацию файла.
Это создает сложности для производителей антивирусов: в их базах этого экземпляра нет и нужно как-то этот каждый новый пришедший в компанию файл проверить. Для этого создаются специальные автоматические механизмы проверки. Раньше на слуху был эвристический анализ, в 2020 году новинкой стало то, что продвинутые производители используют модели полученные от Machine Learning для определения вредоносного кода внутри NGFW прямо на лету. Также ML активно применяется для обнаружения фишинговых URL и вредоносных DNS доменов и даже устройств IoT.
Однако, в современных организациях уже около 10 лет основным средством выявления новых и неизвестных видов вредоносного кода является технология под названием песочница или по-английски sandbox. Обычно это облачный сервис, который получает каким-то образом ваш файл на проверку и в ответ возвращает вердикт: хороший или вредоносный. Песочницам нужно нужно несколько минут, чтобы проверить файл, потому что они реально запускают его, если это исполняемый файл и реально просматривают его, если это документ. Если во время работы с файлом, будут замечены какие-то вредоносные действия, то файл будет помечен как вредоносный и этот вердикт, вместе со всеми "анализами" его работы будет вами получен.
Иногда открытием для людей является то, что вредоносный код может быть встроен в неисполняемые файлы DOC, PDF, XLS. Поскольку это частое заблуждение, то его активно используют хакеры. Поэтому нужно также проверять в песочницах неисполняемые файлы. Эти файлы внутри себя песочницы загружают в соответствующие программы просмотра Microsoft Word или Adobe Reader разных версий и проверяют не происходит ли при этом вредоносных действий. Обычно это связано с докачкой другого кода или использованием уязвимостей программ-просмотрщиков, что позволяет запустить произвольные команды. Хорошим примером является Microsoft Word - его файлы часто используют в атаках.
Что не хватает современным песочницам, на мой взгляд, так это информирования пользователей о популярных программах. Часто на проверку уходит уже известная утилита, и песочницы могли бы не только возвращать вердикт, что это хороший файл, но и что это именно эта утилита. Такая информация часто нужна администратору.
Можно ли попробовать такую песочницу сейчас? Да, есть общедоступные сайты, где вы можете свой файл попросить проверить.
Самым известным сервисом проверки является virustotal.com. Он позволяет также проверить информацию по URL и также позволяет делать поиск по IP, DNS и также хешу файла. Песочницы обычно совмещены с антивирусом: сначала механизм анализа проверяет файл на наличие сигнатуры или хеша в базе и, если в базе данных, про этот файл нет информации, то он отправляется на проверку в песочницу. Песочница чаще всего - это виртуальная машина, в которой файл запускается или просматривается. И в процессе работы идет анализ поведения: какие файлы создаются, какие подключения осуществляются и т.д. и затем на основе поведенческого анализа принимается решение ведет ли себя этот файл вредоносно. Например, если он начал зашифровывать файлы, то такое поведение вредоносное и мы помечаем файл как криптолокер.
Для проверки я выбрал хороший файл putty.exe, который я скачал с сайта разработчика.
Видно, что часть движков считает этот исполняемый файл вредоносным! Почему так? Потому что у песочниц есть один минус: они дают ложные срабатывания. И как быть вам? Обычно, если уважаемые вами производители говорят, что это хороший файл, то им стоит доверять. Если какой-то неизвестный вам поставщик говорит, что это вредоносное поведение, то стоит это сообщение проигнорировать. Как в примере ниже.
Если все движки сказали, что все ок, то с большой вероятностью все ок. Но есть нюансы. ) Существуют специальные методики обнаружения что ты запущен в песочнице, поэтому не всегда такой метод анализа как запуск внутри виртуальной машины - достоверен. Лучше всего запускать вредоносный код на реальной рабочей станции и результат будет более точным. Такая методика получила название bare metal analysis и предоставляется некоторыми мировыми производителями.
Есть еще один вид песочниц: локальные. Они выглядят как обычный сервер, на котором стоят виртуальные машины. Внутри них и запускаются тестируемые образцы и анализируется их поведение. Часто встречаю заблуждение, что локальная и облачная песочница имеют одинаковый функционал. Это ошибочно, потому что облачные решения всегда имеют больше функций и возможностей, например, вышеупомянутый bare metal analysis. Именно поэтому детектирование вредоносного кода в облаке более точное, чем детектирование вредоносного кода на локальной песочнице. Если вы правда хотите искать zero day в своей компании, то использование только локальных песочниц - недостаточно.
Недавно открылся наш национальный сервис проверки, который предоставляется также бесплатно.
Я также загрузил в него тестовый файл putty.exe и меня удивило, только, что песочницы запустились. Загружал несколько раз этот файл и несмотря на то, что файл каждый раз одинаковы песочницы запускались снова и снова. Хотя смысла проверять один и тот же файл уже не было.
В государственном сканере используются движки трех (на дату написания статьи 23 марта 2021) наших российских производителей песочниц.
Также этот сервис бесплатен и вы можете проверить свой файл и на сайте Касперского.
https://opentip.kaspersky.com/
Он называется Threat Intelligence Portal, что означает вы можете не только проверять файлы, но и получать информацию об индикаторах компрометации, таких как IP, DNS, URL, хеш на данном портале. Обычно такие данные нужны при расследовании инцидентов.
Также важно упомянуть песочницы корпоративного уровня компаний Palo Alto Networks, Trend Micro, Check Point, FireEye.
https://wildfire.paloaltonetworks.com/
Например, можно пользоваться песочницей Wildfire компании Palo Alto Networks. Единственно тонкостью - вы должны быть заказчиком, то есть у вас должен быть логин и пароль для входа.
И тогда вам доступен этот портал. Но существует lifehack - движок анализа Palo Alto Networks используется на virustotal.com, там компания предоставила свой движок анализа exe файлов.
Здесь песочница не стала запускать putty.exe, просто сказала, что файл известный и понятный и хороший.
Типы файлов
Важно также какие типы файлов проверяет песочница. Вредоносный код есть для всех операционных системах Windows, MacOS, Linux, iOS, Android и так далее. В них исполняемые файлы имеют разный формат. Неисполняемые файлы обычно не зависят от операционной системы и они проверяются обычно на базе Windows и приложений под Windows, поскольку это самая популярная операционная система в мире.
А как забирать файлы на проверку
Тот способ, что использовали мы - ручная загрузка на сайт. Однако в реальных корпоративных сетях это нужно делать быстрее и автоматически. Соответственно должен быть какой-то механизм, который забирает файлы с рабочих станций или прямо из сетевого трафика и отправляет на проверку. Об этом будет другая статья.
Если вам нужна консультация по информационной безопасности - пишите denis@batrankov.ru.
Я уже более 25 лет помогаю людям и компаниям строить архитектуру безопасности и выбирать нужные решения.