YARA
Описание YARA
YARA — это инструмент направленный (но не ограничивающийся этим) на помощью исследователям вредоносного программного обеспечения для идентификации и классификации образцов зловредных программ. С YARA вы можете создать описания семей вредоносных программ (или чего-либо, что захотите описать) на основе текстовых или бинарных образцов. Каждое описание (ещё называемое «правило») состоит из набора строк и булевых выражений, которые определяют его логику. Взгляните на пример:
rule silent_banker : banker { meta: description = "This is just an example" threat_level = 3 in_the_wild = true strings: $a = {6A 40 68 00 30 00 00 6A 14 8D 91} $b = {8D 4D B0 2B C1 83 C0 27 99 6A 4E 59 F7 F9} $c = "UVODFRYSIHLNWPEJXQZAKCBGMT" condition: $a or $b or $c }
Вышеприведённое правило говорит YARA, что о файле, содержащем одну из трёх строк, нужно сообщить как о silent_banker. Это простой пример, более сложные и мощные правила можно создавать используя постановочные символы, чувствительные к регистру строки, регулярные выражения, специальные операторы и многие другие функции, описанные в документации YARA.
YARA является многоплатформенной, работает на Windows, Linux и Mac OS X и может использоваться как из её интерфейся командной строки, так и из ваших собственных скриптов Python через расширение yara-python.
Если вы планируете использовать YARA для сканирования сжатых файлов (.zip, .tar и т. д.), то обратите внимание на yextend, очень полезное расширение для YARA с открытым исходным кодом.
Домашняя страница: https://github.com/VirusTotal/yara/
Автор: Google Inc., Victor M. Alvarez и другие авторы
Лицензия: BSD-3-Clause
Справка по YARA
Использование:
yara [ОПЦИИ]... ФАЙЛ_С_ПРАВИЛАМИ ФАЙЛ | ДИРЕКТОРИЯ | PID
Обязательные аргументы для длинных опций также обязательны для коротких опций.
-t, --tag=TAG печатать только правила с тэгом TAG -i, --identifier=ИДЕНТИФИКАТОР печатать только правила названные ИДЕНТИФИКАТОР -n, --negate печатать только не удовлетворяющие правила (отрицание) -D, --print-module-data напечатать данные модуля -g, --print-tags напечатать тэги -m, --print-meta напечатать метаданные -s, --print-strings напечатать совпадающие строки -L, --print-string-length напечатать длину совпадающих строк -e, --print-namespace напечатать пространства имён правил -p, --threads=ЧИСЛО использовать указанное ЧИСЛО потоков для сканирования директории -l, --max-rules=ЧИСЛО прервать сканирования после соответствия ЧИСЛУ правил -d ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ определить внешнюю величину -x МОДУЛЬ=ФАЙЛ передать содержимое ФАЙЛА как дополнительные данные в МОДУЛЬ -a, --timeout=СЕКУНДЫ прервать сканирование после заданного числа СЕКУНД -k, --stack-size=СЛОТЫ установить максимальный размер стека (по умолчанию=16384) -r, --recursive рекурсивно искать по директориям -f, --fast-scan режим быстрого соответствия -w, --no-warnings отключить предупреждения --fail-on-warnings сбой при предупреждении -v, --version показать информацию о версии -h, --help показать справку и выйти
Руководство по YARA
ИМЯ
yara — ищет файлы, соответствующие образцам и правилам, написанном на языке специального назначения.
СИНОПСИС
yara [ОПЦИИ]... ФАЙЛ_С_ПРАВИЛАМИ ФАЙЛ | ДИРЕКТОРИЯ | PID
ОПИСАНИЕ
yara сканирует заданный ФАЙЛ, все файлы, содержащиеся в директории ДИРЕКТОРИЯ или процессы по их PID, ища соответствия образцам и правилам, предоставленным на специальном языке. Эти правила считываются из ФАЙЛА_С_ПРАВИЛАМИ.
Опции yara следующие
-t tag --tag=tag
Напечатать правила отмеченные как tag и игнорировать остальные. Эта опция может использоваться множество раз.
-i identifier --identifier=identifier
Напечатать правила, названные identifier и игнорировать остальные. Эту опцию можно использовать множество раз.
-n --negate
Напечатать правила, которые не совпали (отрицание).
-D --print-module-data
Напечатать данные о модуле.
-g --print-tags
Напечатать тэги, ассоциированные с этим правилом.
-m --print-meta
Напечатать методанные, ассоциированные с этим правилом.
-s --print-strings
Напечатать строки, найденные в файле.
-L --print-string-length
Напечатать длину строк, найденных в файле.
-p number --threads=число
Использовать указанное количество потоков для сканирования директории.
-l number --max-rules=количество
Прервать сканирования после этого количество совпавших правил.
-a seconds --timeout=секунды
Прервать сканирование после этого количество прошедших секунд.
-k slots --stack-size=slots
Установить максимальный размер стека на указанное количество слотов.
-d identifier=value
Задать внешнюю переменную. Эту опцию можно использовать несколько раз.
-x модуль=файл
Передать содержимое файла как дополнительные данные модулю. Эту опцию можно использовать несколько раз.
-r --recursive
Рекурсивно сканировать файлы в директории.
-f --fast-scan
Ускорение сканирования путём поиска только первого вхождения каждого образца.
-w --no-warnings
Отключить предупреждения.
--fail-on-warnings
Расценивать предупреждения как ошибки. Опция не имеет эффекта если используется с --no-warnings.
-v --version
Показать информацию о версии.
Примеры запуска YARA
Применить правило из /foo/bar/rules ко всем файлам в текущей директории. Поддиректории не сканируются:
yara /foo/bar/rules .
Применить правило из /foo/bar/rules к bazfile. Сообщить только о правилах помеченных как Packer или Compiler:
yara -t Packer -t Compiler /foo/bar/rules bazfile
Сканировать все файлы в директории /foo directory и её поддиректориях:
yara -r /foo
Задать три внешних переменных mybool, myint и mystring:
yara -d mybool=true -d myint=5 -d mystring="my string" /foo/bar/rules bazfile
Применить правила из /foo/bar/rules к bazfile при этом передовая содержимое cuckoo_json_report в модуль cuckoo:
yara -x cuckoo=cuckoo_json_report /foo/bar/rules bazfile
Установка YARA
Программа предустановлена в Kali Linux.
Установка в BlackArch
Программа предустановлена в BlackArch.
Информация об установке в другие операционные системы будет добавлена позже.
Скриншоты YARA
Это утилита командной строки.
Инструкции по YARA
Ссылки на инструкции будут добавлены позже.
Comments are Closed