- YARA позволява описване на семейства злонамерен софтуер, използвайки гъвкави правила, базирани на низове, двоични шаблони и свойства на файлове.
- Добре разработените правила могат да откриват всичко - от ransomware и APT до webshells и zero-day експлойти в множество среди.
- Интегрирането на YARA в архивиране, криминалистични работни процеси и корпоративни инструменти засилва защитата отвъд традиционния антивирусен софтуер.
- Общността и хранилищата с правила на YARA улесняват споделянето на информация и непрекъснато подобряват откриването.

¿Как да използвам YARA за разширено откриване на зловреден софтуер? Когато традиционните антивирусни програми достигнат своите граници и атакуващите се промъкнат през всяка възможна пролука, на помощ влиза инструмент, който се е превърнал в незаменим в лабораториите за реагиране при инциденти: YARA, „швейцарският нож“ за лов на зловреден софтуерПроектиран да описва семейства злонамерен софтуер, използвайки текстови и двоични модели, той позволява да се отиде далеч отвъд простото съпоставяне на хеш кодове.
В правилните ръце, YARA не е само за локализиране не само известни образци на зловреден софтуер, но и нови варианти, zero-day експлойти и дори търговски офанзивни инструментиВ тази статия ще разгледаме задълбочено и на практика как да използваме YARA за разширено откриване на зловреден софтуер, как да пишем надеждни правила, как да ги тестваме, как да ги интегрираме в платформи като Veeam или вашия собствен работен процес за анализ и какви най-добри практики следва професионалната общност.
Какво е YARA и защо е толкова мощна при откриването на зловреден софтуер?
YARA е съкращение от „Yet Another Recursive Acronym“ (Още един рекурсивен акроним) и се е превърнал в де факто стандарт в анализа на заплахите, защото... Това позволява описването на семейства злонамерен софтуер, използвайки четливи, ясни и много гъвкави правила.Вместо да разчита единствено на статични антивирусни сигнатури, YARA работи с модели, които сами дефинирате.
Основната идея е проста: YARA правилото разглежда файл (или памет, или поток от данни) и проверява дали са изпълнени редица условия. условия, базирани на текстови низове, шестнадесетични поредици, регулярни изрази или свойства на файловеАко условието е изпълнено, има „съвпадение“ и можете да предупредите, блокирате или да извършите по-задълбочен анализ.
Този подход позволява на екипите по сигурността Идентифицирайте и класифицирайте зловреден софтуер от всякакъв вид: класически вируси, червеи, троянски коне, рансъмуер, уеб шелове, криптомайнери, злонамерени макроси и много другиНе е ограничен до специфични файлови разширения или формати, така че открива и прикрит изпълним файл с разширение .pdf или HTML файл, съдържащ webshell.
Освен това, YARA вече е интегрирана в много ключови услуги и инструменти на екосистемата за киберсигурност: VirusTotal, пясъчник като Cuckoo, платформи за архивиране като Veeam или решения за търсене на заплахи от водещи производителиСледователно, овладяването на YARA се е превърнало в почти задължително условие за напредналите анализатори и изследователи.
Разширени случаи на употреба на YARA при откриване на зловреден софтуер
Една от силните страни на YARA е, че се адаптира като ръкавица към множество сценарии за сигурност, от SOC до лабораторията за зловреден софтуер. Същите правила важат както за еднократни ловове, така и за непрекъснато наблюдение..
Най-прекият случай включва създаването специфични правила за конкретен зловреден софтуер или цели семействаАко вашата организация е атакувана от кампания, базирана на известно семейство (например троянски кон за отдалечен достъп или APT заплаха), можете да профилирате характерни низове и модели и да генерирате правила, които бързо идентифицират нови свързани проби.
Друго класическо приложение е фокусът на YARA базирана на подписиТези правила са предназначени да локализират хешове, много специфични текстови низове, фрагменти от код, ключове в системния регистър или дори специфични байтови поредици, които се повтарят в множество варианти на един и същ зловреден софтуер. Имайте предвид обаче, че ако търсите само тривиални низове, рискувате да генерирате фалшиви положителни резултати.
YARA също блести, когато става въпрос за филтриране чрез типове файлове или структурни характеристикиВъзможно е да се създадат правила, които се прилагат за PE изпълними файлове, Office документи, PDF файлове или почти всеки формат, чрез комбиниране на низове със свойства като размер на файла, специфични заглавки (напр. 0x5A4D за PE изпълними файлове) или подозрителни импортирани функции.
В съвременната среда употребата му е свързана с inteligencia de amenazasПубличните хранилища, изследователските доклади и IOC емисиите се преобразуват в YARA правила, които са интегрирани в SIEM, EDR, платформи за архивиране или пясъчник. Това позволява на организациите да бързо откриване на нововъзникващи заплахи, които споделят характеристики с вече анализирани кампании.
Разбиране на синтаксиса на правилата на YARA
Синтаксисът на YARA е доста подобен на този на C, но по по-опростен и по-фокусиран начин. Всяко правило се състои от име, опционална секция с метаданни, секция с низове и, задължително, секция с условие.Оттук нататък силата се крие в това как комбинирате всичко това.
Lo primero es el име на правилоТрябва да е веднага след ключовата дума rule (o regla Ако документирате на испански, въпреки че ключовата дума във файла ще бъде ruleи трябва да е валиден идентификатор: без интервали, без число и без долна черта. Добра идея е да се следва ясна конвенция, например нещо подобно Вариант_на_семейство_зловреден_софтуер o APT_Actor_Tool, което ви позволява с един поглед да определите какво е предназначено да открие.
Следва разделът stringsкъдето дефинирате шаблоните, които искате да търсите. Тук можете да използвате три основни типа: текстови низове, шестнадесетични поредици и регулярни изразиТекстовите низове са идеални за четими от човек фрагменти от код, URL адреси, вътрешни съобщения, имена на пътища или PDB. Шестнадесетичните числа ви позволяват да улавяте сурови байтови модели, които са много полезни, когато кодът е обфускиран, но запазва определени константни последователности.
Регулярните изрази осигуряват гъвкавост, когато е необходимо да се покрият малки вариации в низ, като например промяна на домейни или леко променени части от код. Освен това, както низовете, така и регулярните изрази позволяват екранирането да представлява произволни байтове, което отваря вратата към много прецизни хибридни модели.
La sección condition Това е единственото задължително правило и определя кога се счита, че едно правило „съвпада“ с файл. Там се използват булеви и аритметични операции (и, или, не, +, -, *, /, произволен, всички, съдържа и т.н.) за да изрази по-фина логика на откриване от простото „ако се появи този низ“.
Например, можете да укажете, че правилото е валидно само ако файлът е по-малък от определен размер, ако се появят всички критични низове или ако е наличен поне един от няколко низа. Можете също да комбинирате условия като дължина на низ, брой съвпадения, специфични отмествания във файла или размерът на самия файл.Тук креативността прави разликата между общите правила и хирургическите открития.
Накрая имате опционалната секция metaИдеално за документиране на периода. Обичайно е да се включва автор, дата на създаване, описание, вътрешна версия, препратка към отчети или билети и като цяло всяка информация, която помага хранилището да бъде организирано и разбираемо за други анализатори.
Практически примери за усъвършенствани YARA правила
За да се постави всичко гореизложено в перспектива, е полезно да се види как е структурирано едно просто правило и как то става по-сложно, когато се включат изпълними файлове, подозрителни импортирания или повтарящи се последователности от инструкции. Нека започнем с играчка линийка и постепенно увеличаваме размера..
Минималното правило може да съдържа само низ и условие, което го прави задължително. Например, можете да търсите конкретен текстов низ или байтова последователност, представителна за фрагмент от зловреден софтуер. В този случай условието просто би гласило, че правилото е изпълнено, ако този низ или шаблон се появи., без допълнителни филтри.
В реални условия обаче това е недостатъчно, защото Простите вериги често генерират много фалшиви положителни резултатиЕто защо е обичайно да се комбинират няколко низа (текстови и шестнадесетични) с допълнителни ограничения: файлът да не надвишава определен размер, да съдържа специфични заглавки или да се активира само ако е намерен поне един низ от всяка дефинирана група.
Типичен пример в анализа на изпълними PE файлове включва импортиране на модула pe от YARA, което ви позволява да заявявате вътрешни свойства на двоичния файл: импортирани функции, секции, времеви отметки и др. Разширено правило може да изисква файлът да се импортира Процес на създаване от Kernel32.dll и някои HTTP функции от wininet.dll, освен че съдържа специфичен низ, показващ злонамерено поведение.
Този тип логика е идеална за локализиране Троянски коне с възможности за отдалечено свързване или проникванедори когато имената на файловете или пътищата се променят от една кампания в друга. Важното е да се съсредоточите върху основното поведение: създаване на процеси, HTTP заявки, криптиране, постоянство и т.н.
Друга много ефективна техника е да се погледне поредици от инструкции, които се повтарят между образци от едно и също семейство. Дори ако атакуващите пакетират или обфусцират двоичния файл, те често използват повторно части от код, които са трудни за промяна. Ако след статичен анализ откриете постоянни блокове от инструкции, можете да формулирате правило с заместващи символи в шестнадесетични низове който улавя този модел, като същевременно запазва определена толерантност.
С тези правила, „базирани на поведението на кода“, е възможно проследяване на цели кампании със зловреден софтуер, като тези на PlugX/Korplug или други APT семействаНе просто откривате специфичен хеш, а следите стила на разработка, така да се каже, на нападателите.
Използване на YARA в реални кампании и заплахи от нулев ден
YARA е доказала своята стойност особено в областта на напредналите заплахи и zero-day експлойтите, където класическите механизми за защита пристигат твърде късно. Добре известен пример е използването на YARA за локализиране на експлойт в Silverlight въз основа на минимално изтекла информация..
В този случай, от имейли, откраднати от компания, посветена на разработването на офанзивни инструменти, бяха изведени достатъчно модели, за да се изгради правило, ориентирано към конкретна уязвимост. С това единствено правило изследователите успяха да проследят пробата през море от подозрителни файлове.Идентифицирайте експлойта и наложите неговото поправяне, предотвратявайки много по-сериозни щети.
Тези истории илюстрират как YARA може да функционира като рибарска мрежа в море от файловеПредставете си корпоративната си мрежа като океан, пълен с „риби“ (файлове) от всякакъв вид. Вашите правила са като отделения в трал: всяко отделение съдържа рибите, които отговарят на специфични характеристики.
Когато приключите с влаченето, имате проби, групирани по сходство с конкретни семейства или групи нападатели„подобно на вид X“, „подобно на вид Y“ и т.н. Някои от тези образци може да са напълно нови за вас (нови двоични файлове, нови кампании), но те се вписват в известен модел, което ускорява класификацията и реакцията ви.
За да извлекат максимума от YARA в този контекст, много организации комбинират напреднало обучение, практически лаборатории и контролирани експериментални средиСъществуват високоспециализирани курсове, посветени изключително на изкуството да се пишат добри правила, често базирани на реални случаи на кибершпионаж, в които студентите практикуват с автентични образци и се учат да търсят „нещо“, дори когато не знаят точно какво търсят.
Интегрирайте YARA в платформи за архивиране и възстановяване
Една област, в която YARA се вписва перфектно и която често остава донякъде незабелязана, е защитата на резервните копия. Ако резервните копия са заразени със зловреден софтуер или ransomware, възстановяването може да рестартира цяла кампания.Ето защо някои производители са включили двигателите YARA директно в своите решения.
Могат да бъдат пуснати платформи за архивиране от следващо поколение Сесии за анализ, базирани на правила на YARA, на точки за възстановяванеЦелта е двойна: да се локализира последната „чиста“ точка преди инцидент и да се открие злонамерено съдържание, скрито във файлове, което може да не е било задействано от други проверки.
В тези среди типичният процес включва избиране на опция от „Сканирайте точките за възстановяване с линийка YARA„по време на конфигурирането на задание за анализ. След това се задава пътят до файла с правила (обикновено с разширение .yara или .yar), който обикновено се съхранява в конфигурационна папка, специфична за решението за архивиране.“
По време на изпълнение, двигателят итерира през обектите, съдържащи се в копието, прилага правилата и Той записва всички съвпадения в специален дневник за анализ на YARA.Администраторът може да преглежда тези лог файлове от конзолата, да преглежда статистика, да вижда кои файлове са задействали предупреждението и дори да проследява на кои машини и конкретна дата съответства всяко съвпадение.
Тази интеграция се допълва от други механизми, като например откриване на аномалии, наблюдение на размера на резервните копия, търсене на специфични IOC или анализ на подозрителни инструментиНо когато става въпрос за правила, съобразени с конкретно семейство или кампания за рансъмуер, YARA е най-добрият инструмент за прецизиране на това търсене.
Как да тествате и валидирате правилата на YARA, без да нарушавате мрежата си

След като започнете да пишете свои собствени правила, следващата важна стъпка е да ги тествате обстойно. Едно прекалено агресивно правило може да генерира поток от фалшиви положителни резултати, докато едно прекалено небрежно може да позволи на реалните заплахи да се промъкнат.Ето защо фазата на тестване е също толкова важна, колкото и фазата на писане.
Добрата новина е, че не е нужно да създавате лаборатория, пълна с работещ зловреден софтуер, и да заразявате половината мрежа, за да направите това. Вече съществуват хранилища и набори от данни, които предлагат тази информация. известни и контролирани проби от зловреден софтуер за изследователски целиМожете да изтеглите тези примери в изолирана среда и да ги използвате като тестова платформа за вашите правила.
Обичайният подход е да се започне с локално стартиране на YARA от командния ред срещу директория, съдържаща подозрителни файлове. Ако правилата ви съвпадат там, където трябва, и едва се нарушават в чисти файлове, значи сте на прав път.Ако те задействат твърде много, е време да прегледате низовете, да прецизирате условията или да въведете допълнителни ограничения (размер, импортиране, отмествания и др.).
Друг ключов момент е да се уверите, че правилата ви не компрометират производителността. Когато сканирате големи директории, пълни резервни копия или масивни колекции от примери, Лошо оптимизираните правила могат да забавят анализа или да консумират повече ресурси от желаното.Ето защо е препоръчително да се измерват времената, да се опростяват сложни изрази и да се избягват прекомерно тежки регулярни изрази.
След като преминете през тази фаза на лабораторни тестове, ще можете да Популяризирайте правилата в производствената средаНезависимо дали е във вашата SIEM система, вашите резервни системи, имейл сървъри или където и да искате да ги интегрирате. И не забравяйте да поддържате непрекъснат цикъл на преглед: с развитието на кампаниите, вашите правила ще се нуждаят от периодични корекции.
Инструменти, програми и работен процес с YARA

Отвъд официалния двоичен файл, много професионалисти са разработили малки програми и скриптове около YARA, за да улеснят ежедневната му употреба. Типичен подход включва създаването на приложение за сглобете свой собствен комплект за сигурност който автоматично чете всички правила в папка и ги прилага към директория за анализ.
Тези видове домашно приготвени инструменти обикновено работят с проста структура на директории: една папка за правила, изтеглени от интернет (например „rulesyar“) и друга папка за подозрителни файлове, които ще бъдат анализирани (например „зловреден софтуер“). Когато програмата стартира, тя проверява дали и двете папки съществуват, изброява правилата на екрана и се подготвя за изпълнение.
Когато натиснете бутон като „Започнете проверкатаСлед това приложението стартира изпълнимия файл на YARA с желаните параметри: сканиране на всички файлове в папката, рекурсивен анализ на поддиректории, извеждане на статистика, отпечатване на метаданни и др. Всички съвпадения се показват в прозорец с резултати, показващ кой файл отговаря на кое правило.
Този работен процес позволява например откриването на проблеми в партида експортирани имейли. злонамерени вградени изображения, опасни прикачени файлове или уеб шелове, скрити в привидно безобидни файловеМного криминалистични разследвания в корпоративна среда разчитат именно на този тип механизъм.
Що се отнася до най-полезните параметри при извикване на YARA, се открояват опции като следните: -r за рекурсивно търсене, -S за показване на статистика, -m за извличане на метаданни и -w за игнориране на предупрежденияЧрез комбиниране на тези флагове можете да настроите поведението според вашия случай: от бърз анализ в определена директория до пълно сканиране на сложна структура от папки.
Най-добри практики при писане и поддържане на правила на YARA
За да предотвратите превръщането на хранилището ви с правила в неуправляема бъркотия, е препоръчително да приложите серия от най-добри практики. Първото е да се работи с последователни шаблони и конвенции за именуванетака че всеки анализатор да може с един поглед да разбере какво прави всяко правило.
Много екипи приемат стандартен формат, който включва заглавка с метаданни, етикети, указващи типа на заплахата, участника или платформата, и ясно описание на това, което се откриваТова помага не само вътрешно, но и когато споделяте правила с общността или допринасяте за публични хранилища.
Друга препоръка е винаги да помните, че YARA е просто още един слой защитаТой не замества антивирусния софтуер или EDR, а по-скоро ги допълва в стратегиите за Защитете вашия компютър с WindowsВ идеалния случай YARA трябва да се вписва в по-широки референтни рамки, като например рамката на NIST, която също така разглежда идентифицирането, защитата, откриването, реагирането и възстановяването на активи.
От техническа гледна точка си струва да се отдели време за evitar falsos positivosТова включва избягване на прекалено общи низове, комбиниране на няколко условия и използване на оператори като all of o any of Използвайте разума си и се възползвайте от структурните свойства на файла. Колкото по-конкретна е логиката, обграждаща поведението на зловредния софтуер, толкова по-добре.
И накрая, поддържайте дисциплина версии и периодичен преглед Това е от решаващо значение. Семействата злонамерен софтуер се развиват, индикаторите се променят и правилата, които работят днес, може да се окажат недостатъчни или да остареят. Периодичният преглед и усъвършенстване на набора от правила е част от играта на котка и мишка в киберсигурността.
Общността YARA и наличните ресурси
Една от основните причини YARA да стигне дотук е силата на нейната общност. Изследователи, охранителни фирми и екипи за реагиране от цял свят непрекъснато споделят правила, примери и документация.създавайки много богата екосистема.
Основната отправна точка е Официалното хранилище на YARA в GitHubТам ще намерите най-новите версии на инструмента, изходния код и връзки към документацията. Оттам можете да следите напредъка на проекта, да докладвате за проблеми или да допринесете за подобрения, ако желаете.
Официалната документация, достъпна на платформи като ReadTheDocs, предлага пълно ръководство за синтаксис, налични модули, примери за правила и справки за употребаТова е основен ресурс за възползване от най-модерните функции, като например PE инспекция, ELF, правила за паметта или интеграции с други инструменти.
Освен това има обществени хранилища на правила и сигнатури на YARA, където анализатори от цял свят Те публикуват готови за употреба колекции или колекции, които могат да бъдат адаптирани към вашите нужди.Тези хранилища обикновено включват правила за специфични семейства зловреден софтуер, експлойт комплекти, злонамерено използвани инструменти за pentesting, webshells, cryptominer-и и много други.
Успоредно с това, много производители и изследователски групи предлагат Специализирано обучение в YARA, от основни нива до много напреднали курсовеТези инициативи често включват виртуални лаборатории и практически упражнения, базирани на реални сценарии. Някои дори се предлагат безплатно на организации с нестопанска цел или организации, които са особено уязвими към целенасочени атаки.
Цялата тази екосистема означава, че с малко отдаденост можете да преминете от писане на първите си основни правила до разработване на усъвършенствани пакети, способни да проследяват сложни кампании и да откриват безпрецедентни заплахиИ като комбинирате YARA с традиционен антивирус, сигурно архивиране и разузнаване за заплахи, значително затруднявате нещата за злонамерените лица, които бродят в интернет.
С всичко гореизложено е ясно, че YARA е много повече от обикновена помощна програма за команден ред: тя е pieza clave във всяка усъвършенствана стратегия за откриване на зловреден софтуер, гъвкав инструмент, който се адаптира към вашия начин на мислене като анализатор и общ език която свързва лаборатории, SOC и изследователски общности по целия свят, позволявайки всяко ново правило да добавя още един слой защита срещу все по-сложни кампании.
Страстен към технологиите от малък. Обичам да съм в крак с новостите в сектора и най-вече да го комуникирам. Ето защо вече много години съм посветен на комуникацията в уебсайтове за технологии и видеоигри. Можете да ме намерите да пиша за Android, Windows, MacOS, iOS, Nintendo или всяка друга свързана тема, която ви хрумне.