YARA — это популярный и универсальный инструмент, который иногда называют швейцарским ножом для исследователей вредоносных программ, но использовать его можно и в других целях. Сегодня мы выступим в жанре «Сам себе антивирус» и расскажем, как с помощью YARA писать правила и искать файлы по характерным признакам.
В нашей прошлой статье («Хеш четкий и хеш нечеткий») мы рассказали, как загружали заранее классифицированные объекты и при этом полностью уповали на знания рандомных аналитиков и верили (конечно, не до конца!), что там действительно находится малварь конкретного семейства. Такое часто происходит в реальном мире, вредоносное ПО настолько быстро появляется, что информацию о том, как идентифицировать угрозу и быстро реализовать правило детектирования, порой бывает почти что вопросом жизни или смерти.
YARA — это опенсорсный инструмент, который помогает исследователям искать и классифицировать вредоносные семплы и даже проводить Threat Hunting. Утилита выполняет сигнатурный анализ на основе формальных YARA-описаний (правил). В них содержатся индикаторы компрометации для разных типов вредоносного ПО.
Фишка в том, что делать правила легко и не занимает много времени. Именно поэтому YARA используют в AlienVault, Avast, ESET, FireEye, Group-IB, Kaspersky, Trend Micro, Virus Total, x64dbg... В общем, почти все, кто имеет дело с анализом вредоносного ПО.
YARA-правила могут обрабатывать не только исполняемые файлы, но и документы, библиотеки, драйверы, — все что угодно. Ими же можно сканировать сетевой трафик, хранилища данных, дампы памяти. Эти правила можно включать в другие инструменты, такие как SIEM, антифишинг, IDS, песочницы.
Давай разберемся, как же выглядят эти правила и как их составлять.
Обычно правила хранятся в текстовом формате в файле .yar и состоят из двух секций:
Выглядит это так:
rule SomeMalwareName { meta: author = "AuthorName" strings: … condition: … }
Минимально необходимые секции — это название правила и его условия. Например, правилом ниже мы будем детектировать объекты только по их imphash (на тестовых объектах из предыдущей статьи):
import "pe" rule MyLittleAgentTeslaRuleDetect { condition: pe.imphash() == "b21a7468eedc66a1ef417421057d3157" or pe.imphash() == "f34d5f2d4577ed6d9ceec516c1f5a744" }
Сохраним файл как AT.yar
и запустим на директории с семплами Agent Tesla. Посмотрим на результат и убедимся, что правило отработало на всех представителях Agent Tesla.
C:>yara64.exe -r AT.yar AgentTesla
MyLittleAgentTeslaRuleDetect AgentTeslaAT11.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT12.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT13.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT14.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT16.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT2.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT18.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT15.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT10.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT3.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT6.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT7.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT1.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT9.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT4.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT17.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT5.exe
MyLittleAgentTeslaRuleDetect AgentTeslaAT8.exe
Результат — все из всех.
Как ты мог заметить, правила YARA поддерживают импорт полезных модулей. Соответственно, можно написать свои модули. Вот несколько наиболее часто используемых:
Полный список ты всегда можешь глянуть в официальной документации по YARA.
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
1 год7690 р. |
1 месяц720 р. |
Я уже участник «Xakep.ru»
Читайте также
Последние новости