Hayabusa — это генератор временной шкалы журнала событий Windows и инструмент поиска угроз, созданный группой Yamato Security в Японии. Хаябуса в переводе с японского означает «сапсан» и был выбран потому, что сапсан — самое быстрое животное в мире, прекрасно охотится и хорошо поддается дрессировке. Он написан на Rust и поддерживает многопоточность, чтобы работать максимально быстро. Мы предоставили инструмент для преобразования правил Sigma в формат правил Hayabusa. Правила обнаружения Hayabusa, совместимые с Sigma, написаны на YML, чтобы их можно было максимально легко настраивать и расширять. Hayabusa можно запускать либо на одной работающей системе для анализа в реальном времени, собирая журналы из одной или нескольких систем для автономного анализа, либо запуская артефакт Hayabusa с Velociraptor для поиска угроз и реагирования на инциденты в масштабе всего предприятия. Результаты будут объединены в единую временную шкалу CSV для удобного анализа в LibreOffice, Timeline Explorer, Elastic Stack, Timesketch и т. д.
evtx
.-T
)-H
)-M
)computer-metrics
computer-metrics
computer-metrics
eid-metrics
eid-metrics
eid-metrics
eid-metrics
logon-summary
logon-summary
logon-summary
pivot-keywords-list
pivot-keywords-list
pivot-keywords-list
search
search
search
csv-timeline
шкалыcsv-timeline
csv-timeline
json-timeline
json-timeline
и файлы конфигурацииlevel-tuning
level-tuning
level-tuning
list-profiles
set-default-profile
set-default-profile
update-rules
update-rules
minimal
вывод профиляstandard
профиляverbose
вывод профиляall-field-info
all-field-info-verbose
super-verbose
вывод профиляtimesketch-minimal
timesketch-verbose
В настоящее время в Hayabusa имеется более 4000 правил Sigma и более 170 встроенных правил обнаружения Hayabusa, причем новые правила регулярно добавляются. Его можно использовать для превентивного поиска угроз в масштабах всего предприятия, а также бесплатно для DFIR (цифровой криминалистики и реагирования на инциденты) с артефактом Hayabusa от Velociraptor. Объединив эти два инструмента с открытым исходным кодом, вы можете, по сути, задним числом воспроизвести SIEM, когда в среде нет настройки SIEM. Вы можете узнать, как это сделать, посмотрев прохождение Велоцираптора Эрика Капуано здесь.
Анализ журнала событий Windows традиционно был очень долгим и утомительным процессом, поскольку журналы событий Windows 1) имеют формат данных, который трудно анализировать, и 2) большая часть данных представляет собой шум и бесполезна для расследований. Цель Hayabusa — извлечь только полезные данные и представить их в максимально сжатом и удобном для чтения формате, который будет доступен не только профессионально подготовленным аналитикам, но и любому системному администратору Windows. Хаябуса надеется, что аналитики смогут выполнить 80% своей работы за 20% времени по сравнению с традиционным анализом журнала событий Windows.
-T
) -H
) -M
многострочный вывод) Вы можете узнать, как анализировать временные шкалы CSV в Excel и Timeline Explorer здесь.
Вы можете узнать, как импортировать файлы CSV в Elastic Stack здесь.
Вы можете узнать, как импортировать файлы CSV в Timesketch здесь.
Вы можете узнать, как анализировать результаты в формате JSON с помощью jq
здесь.
|equalsfield
и |endswithfield
.0xc0000234
-> ACCOUNT LOCKED
)Загрузите последнюю стабильную версию Hayabusa со скомпилированными двоичными файлами или скомпилируйте исходный код со страницы «Релизы».
Мы предоставляем двоичные файлы для следующих архитектур:
hayabusa-xxx-lin-aarch64-gnu
)hayabusa-xxx-lin-x64-gnu
)hayabusa-xxx-lin-x64-musl
)hayabusa-xxx-mac-aarch64
)hayabusa-xxx-mac-x64
)hayabusa-xxx-win-aarch64.exe
)hayabusa-xxx-win-x64.exe
)hayabusa-xxx-win-x86.exe
)По какой-то причине двоичный файл Linux ARM MUSL не работает должным образом, поэтому мы не предоставляем этот двоичный файл. Эта проблема находится вне нашего контроля, поэтому мы планируем предоставить ее в будущем, когда она будет исправлена.
Начиная с версии 2.18.0, мы предоставляем специальные пакеты Windows, которые используют правила в кодировке XOR, представленные в одном файле, а также все файлы конфигурации, объединенные в один файл (размещенный в репозитории hayabusa-encoded-rules). Просто загрузите zip-пакеты с live-response
в названии. ZIP-файлы включают всего три файла: двоичный файл Hayabusa, файл правил в кодировке XOR и файл конфигурации. Целью этих пакетов оперативного ответа является то, что при запуске Hayabusa на конечных точках клиента мы хотим быть уверены, что антивирусные сканеры, такие как Защитник Windows, не выдают ложных срабатываний в файлах правил .yml
. Кроме того, мы хотим свести к минимуму количество файлов, записываемых в систему, чтобы такие артефакты криминалистической экспертизы, как журнал USN Journal, не перезаписывались.
Вы можете git clone
с помощью следующей команды и скомпилировать двоичный файл из исходного кода:
Предупреждение: основная ветка репозитория предназначена для целей разработки, поэтому вы можете получить доступ к новым функциям, еще официально не выпущенным, однако могут быть ошибки, поэтому считайте его нестабильным.
git clone https://github.com/Yamato-Security/hayabusa.git --recursive
Примечание. Если вы забудете использовать параметр --recursive, папка
rules
, которая управляется как подмодуль git, не будет клонирована.
Вы можете синхронизировать папку rules
и получить последние версии правил Hayabusa с помощью git pull --recurse-submodules
или использовать следующую команду:
hayabusa.exe update-rules
Если обновление не удалось, возможно, вам придется переименовать папку rules
и повторить попытку.
Внимание: При обновлении правила и файлы конфигурации в папке
rules
заменяются новейшими правилами и файлами конфигурации из репозитория hayabusa-rules. Любые изменения, внесенные вами в существующие файлы, будут перезаписаны, поэтому мы рекомендуем вам делать резервные копии всех файлов, которые вы редактируете, перед обновлением. Если вы выполняете настройку уровня с помощьюlevel-tuning
, перенастраивайте файлы правил после каждого обновления. Если вы добавите новые правила в папкуrules
, они не будут перезаписаны или удалены при обновлении.
Если у вас установлен Rust, вы можете скомпилировать его из исходного кода с помощью следующей команды:
Примечание. Для компиляции обычно требуется последняя версия Rust.
cargo build --release
Вы можете скачать последнюю нестабильную версию из основной ветки или последнюю стабильную версию со страницы Релизы.
Обязательно периодически обновляйте Rust:
rustup update stable
Скомпилированный двоичный файл будет выведен в папку ./target/release
.
Вы можете обновить крейты Rust до последней версии перед компиляцией:
cargo update
Пожалуйста, дайте нам знать, если что-то сломается после обновления.
Вы можете создавать 32-битные двоичные файлы в 64-битных системах Windows с помощью следующих средств:
rustup install stable-i686-pc-windows-msvc
rustup target add i686-pc-windows-msvc
rustup run stable-i686-pc-windows-msvc cargo build --release
Предупреждение: Обязательно запускайте
rustup install stable-i686-pc-windows-msvc
всякий раз, когда появляется новая стабильная версия Rust, посколькуrustup update stable
не будет обновлять компилятор для кросс-компиляции, и вы можете получить ошибки сборки.
Если вы получаете ошибки компиляции openssl, вам необходимо установить Homebrew, а затем установить следующие пакеты:
brew install pkg-config
brew install openssl
Если вы получаете ошибки компиляции openssl, вам необходимо установить следующий пакет.
Дистрибутивы на базе Ubuntu:
sudo apt install libssl-dev
Дистрибутивы на базе Fedora:
sudo yum install openssl-devel
В ОС Linux сначала установите цель.
rustup install stable-x86_64-unknown-linux-musl
rustup target add x86_64-unknown-linux-musl
Скомпилировать с помощью:
cargo build --release --target=x86_64-unknown-linux-musl
Предупреждение: Обязательно запускайте
rustup install stable-x86_64-unknown-linux-musl
всякий раз, когда появляется новая стабильная версия Rust, посколькуrustup update stable
не будет обновлять компилятор для кросс-компиляции, и вы можете получить ошибки сборки.
Бинарный файл MUSL будет создан в каталоге ./target/x86_64-unknown-linux-musl/release/
. Двоичные файлы MUSL примерно на 15% медленнее, чем двоичные файлы GNU, однако они более переносимы в разные версии и дистрибутивы Linux.
Вы можете получить предупреждение от антивирусных продуктов или продуктов EDR при попытке запустить hayabusa или даже просто при загрузке правил .yml
, поскольку в сигнатуре обнаружения будут такие ключевые слова, как mimikatz
и подозрительные команды PowerShell. Это ложные срабатывания, поэтому вам потребуется настроить исключения в ваших продуктах безопасности, чтобы разрешить запуск hayabusa. Если вы беспокоитесь о вредоносном ПО или атаках на цепочку поставок, проверьте исходный код hayabusa и скомпилируйте двоичные файлы самостоятельно.
Вы можете столкнуться с замедлением работы, особенно при первом запуске после перезагрузки, из-за защиты Защитника Windows в реальном времени. Вы можете избежать этого, временно отключив постоянную защиту или добавив исключение в каталог времени выполнения hayabusa. (Пожалуйста, примите во внимание риски безопасности, прежде чем делать это.)
В командной строке/подсказке PowerShell или терминале Windows просто запустите соответствующий двоичный файл 32- или 64-разрядной версии Windows.
При использовании встроенной командной строки или приглашения PowerShell в Windows вы можете получить сообщение об ошибке, сообщающее, что Hayabusa не смог загрузить файлы .evtx, если в пути к вашему файлу или каталогу есть пробел. Чтобы правильно загрузить файлы .evtx, обязательно выполните следующие действия:
Сначала вам нужно сделать двоичный исполняемый файл.
chmod +x ./hayabusa
Затем запустите его из корневого каталога Hayabusa:
./hayabusa
В Терминале или iTerm2 сначала необходимо создать исполняемый двоичный файл.
chmod +x ./hayabusa
Затем попробуйте запустить его из корневого каталога Hayabusa:
./hayabusa
В последней версии macOS при попытке запуска вы можете получить следующую ошибку безопасности:
Нажмите «Отмена», а затем в «Системных настройках» откройте «Безопасность и конфиденциальность» и на вкладке «Общие» нажмите «Все равно разрешить».
После этого попробуйте запустить его еще раз.
./hayabusa
Появится следующее предупреждение, поэтому нажмите «Открыть».
Теперь вы сможете запустить hayabusa.
computer-metrics
: выведите количество событий на основе имен компьютеров.eid-metrics
: выводит количество и процент событий на основе идентификатора события.logon-summary
: вывести сводку событий входа в систему.pivot-keywords-list
: Распечатайте список подозрительных ключевых слов для поворота.search
: поиск всех событий по ключевым словам или регулярным выражениям. csv-timeline
: сохраните временную шкалу в формате CSV.json-timeline
: сохраните временную шкалу в формате JSON/JSONL.level-tuning
: Пользовательская настройка level
оповещений.list-profiles
: список доступных выходных профилей.set-default-profile
: изменить профиль по умолчанию.update-rules
: синхронизируйте правила с последними правилами в репозитории hayabusa-rules на GitHub. help
: Распечатать это сообщение или справку по данной подкоманде(ам).list-contributors
: Распечатать список участников.computer-metrics
Вы можете использовать команду computer-metrics
, чтобы проверить количество событий для каждого компьютера, определенного в поле
. Имейте в виду, что вы не можете полностью полагаться на поле Computer
для разделения событий по исходному компьютеру. Windows 11 иногда использует совершенно разные имена Computer
при сохранении в журналах событий. Кроме того, Windows 10 иногда записывает имя Computer
строчными буквами. Эта команда не использует никаких правил обнаружения, поэтому анализирует все события. Это хорошая команда, которую можно запустить, чтобы быстро увидеть, на каких компьютерах больше всего журналов. Используя эту информацию, вы затем можете использовать параметры --include-computer
или --exclude-computer
при создании временных шкал, чтобы сделать создание временной шкалы более эффективным, создавая несколько временных шкал в зависимости от компьютера или исключая события с определенных компьютеров.
Usage: computer-metrics [OPTIONS]
Input:
-d, --directory Directory of multiple .evtx files
-f, --file File path to one .evtx file
-l, --live-analysis Analyze the local C:WindowsSystem32winevtLogs folder
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-J, --JSON-input Scan JSON formatted logs instead of .evtx (.json or .jsonl)
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-c, --rules-config Specify custom rule config directory (default: ./rules/config)
--target-file-ext Specify additional evtx file extensions (ex: evtx_data)
-t, --threads Number of threads (default: optimal number for performance)
Filtering:
--timeline-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
Output:
-o, --output Save the results in CSV format (ex: computer-metrics.csv)
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
computer-metrics
hayabusa.exe computer-metrics -d ../logs
hayabusa.exe computer-metrics -d ../logs -o computer-metrics.csv
computer-metrics
eid-metrics
Вы можете использовать команду eid-metrics
, чтобы распечатать общее количество и процент идентификаторов событий (поле
), разделенных по каналам. Эта команда не использует никаких правил обнаружения, поэтому сканирует все события.
Usage: eid-metrics [OPTIONS]
Input:
-d, --directory Directory of multiple .evtx files
-f, --file File path to one .evtx file
-l, --live-analysis Analyze the local C:WindowsSystem32winevtLogs folder
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-J, --JSON-input Scan JSON formatted logs instead of .evtx (.json or .jsonl)
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-c, --rules-config Specify custom rule config directory (default: ./rules/config)
--target-file-ext Specify additional evtx file extensions (ex: evtx_data)
-t, --threads Number of threads (default: optimal number for performance)
Filtering:
--exclude-computer Do not scan specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--include-computer Scan only specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--timeline-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
Output:
-o, --output Save the Metrics in CSV format (ex: metrics.csv)
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
Time Format:
--European-time Output timestamp in European time format (ex: 22-02-2022 22:00:00.123 +02:00)
--ISO-8601 Output timestamp in ISO-8601 format (ex: 2022-02-22T10:10:10.1234567Z) (Always UTC)
--RFC-2822 Output timestamp in RFC 2822 format (ex: Fri, 22 Feb 2022 22:00:00 -0600)
--RFC-3339 Output timestamp in RFC 3339 format (ex: 2022-02-22 22:00:00.123456-06:00)
--US-military-time Output timestamp in US military time format (ex: 02-22-2022 22:00:00.123 -06:00)
--US-time Output timestamp in US time format (ex: 02-22-2022 10:00:00.123 PM -06:00)
-U, --UTC Output time in UTC format (default: local time)
eid-metrics
hayabusa.exe eid-metrics -f Security.evtx
hayabusa.exe eid-metrics -d ../logs
hayabusa.exe eid-metrics -f Security.evtx -o eid-metrics.csv
eid-metrics
Канал, идентификаторы событий и названия событий определяются в rules/config/channel_eid_info.txt
.
Пример:
Channel,EventID,EventTitle
Microsoft-Windows-Sysmon/Operational,1,Process Creation.
Microsoft-Windows-Sysmon/Operational,2,File Creation Timestamp Changed. (Possible Timestomping)
Microsoft-Windows-Sysmon/Operational,3,Network Connection.
Microsoft-Windows-Sysmon/Operational,4,Sysmon Service State Changed.
eid-metrics
logon-summary
Вы можете использовать команду logon-summary
для вывода сводной информации о входе в систему (имена пользователей, а также количество успешных и неудачных входов). Вы можете отобразить информацию для входа в систему для одного файла evtx с помощью -f
или нескольких файлов evtx с параметром -d
.
Usage: logon-summary [OPTIONS]
Input:
-d, --directory Directory of multiple .evtx files
-f, --file File path to one .evtx file
-l, --live-analysis Analyze the local C:WindowsSystem32winevtLogs folder
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-J, --JSON-input Scan JSON formatted logs instead of .evtx (.json or .jsonl)
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-c, --rules-config Specify custom rule config directory (default: ./rules/config)
--target-file-ext Specify additional evtx file extensions (ex: evtx_data)
-t, --threads Number of threads (default: optimal number for performance)
Filtering:
--exclude-computer Do not scan specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--include-computer Scan only specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--timeline-end End time of the event logs to load (ex: "2022-02-22 23:59:59 +09:00")
--timeline-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
--timeline-start Start time of the event logs to load (ex: "2020-02-22 00:00:00 +09:00")
Output:
-o, --output Save the logon summary to two CSV files (ex: -o logon-summary)
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
Time Format:
--European-time Output timestamp in European time format (ex: 22-02-2022 22:00:00.123 +02:00)
--ISO-8601 Output timestamp in ISO-8601 format (ex: 2022-02-22T10:10:10.1234567Z) (Always UTC)
--RFC-2822 Output timestamp in RFC 2822 format (ex: Fri, 22 Feb 2022 22:00:00 -0600)
--RFC-3339 Output timestamp in RFC 3339 format (ex: 2022-02-22 22:00:00.123456-06:00)
--US-military-time Output timestamp in US military time format (ex: 02-22-2022 22:00:00.123 -06:00)
--US-time Output timestamp in US time format (ex: 02-22-2022 10:00:00.123 PM -06:00)
-U, --UTC Output time in UTC format (default: local time)
logon-summary
hayabusa.exe logon-summary -f Security.evtx
hayabusa.exe logon-summary -d ../logs -o logon-summary.csv
logon-summary
pivot-keywords-list
Вы можете использовать команду pivot-keywords-list
для создания списка уникальных ключевых слов для быстрого выявления необычных пользователей, имен хостов, процессов и т. д., а также для корреляции событий.
Важно: по умолчанию hayabusa будет возвращать результаты всех событий (информационных и выше), поэтому мы настоятельно рекомендуем комбинировать команду pivot-keywords-list
с опцией -m, --min-level
. Например, начните с создания ключевых слов только из critical
предупреждений с -m critical
, а затем продолжите с -m high
, -m medium
и т. д. Скорее всего, в ваших результатах будут общие ключевые слова, которые будут совпадать со многими обычными событиями, поэтому после ручной проверки результатов и создания списка уникальных ключевых слов в одном файле вы можете создать сокращенную временную шкалу подозрительной активности с помощью такой команды, как grep -f keywords.txt timeline.csv
.
Usage: pivot-keywords-list [OPTIONS]
Input:
-d, --directory Directory of multiple .evtx files
-f, --file File path to one .evtx file
-l, --live-analysis Analyze the local C:WindowsSystem32winevtLogs folder
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-J, --JSON-input Scan JSON formatted logs instead of .evtx (.json or .jsonl)
-w, --no-wizard Do not ask questions. Scan for all events and alerts
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-c, --rules-config Specify custom rule config directory (default: ./rules/config)
--target-file-ext Specify additional evtx file extensions (ex: evtx_data)
-t, --threads Number of threads (default: optimal number for performance)
Filtering:
-E, --EID-filter Scan only common EIDs for faster speed (./rules/config/target_event_IDs.txt)
-D, --enable-deprecated-rules Enable rules with a status of deprecated
-n, --enable-noisy-rules Enable rules set to noisy (./rules/config/noisy_rules.txt)
-u, --enable-unsupported-rules Enable rules with a status of unsupported
-e, --exact-level Only load rules with a specific level (informational, low, medium, high, critical)
--exclude-computer Do not scan specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--exclude-eid Do not scan specific EIDs for faster speed (ex: 1) (ex: 1,4688)
--exclude-status Do not load rules according to status (ex: experimental) (ex: stable,test)
--exclude-tag Do not load rules with specific tags (ex: sysmon)
--include-computer Scan only specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--include-eid Scan only specified EIDs for faster speed (ex: 1) (ex: 1,4688)
--include-status Only load rules with specific status (ex: experimental) (ex: stable,test)
--include-tag Only load rules with specific tags (ex: attack.execution,attack.discovery)
-m, --min-level Minimum level for rules to load (default: informational)
--timeline-end End time of the event logs to load (ex: "2022-02-22 23:59:59 +09:00")
--timeline-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
--timeline-start Start time of the event logs to load (ex: "2020-02-22 00:00:00 +09:00")
Output:
-o, --output Save pivot words to separate files (ex: PivotKeywords)
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
pivot-keywords-list
hayabusa.exe pivot-keywords-list -d ../logs -m critical
keywords-Ip Addresses.txt
, keywords-Users.txt
и т. д.): hayabusa.exe pivot-keywords-list -d ../logs -m critical -o keywords`
pivot-keywords-list
Вы можете настроить ключевые слова, по которым хотите искать, отредактировав ./rules/config/pivot_keywords.txt
. Эта страница является настройкой по умолчанию.
Формат: KeywordName.FieldName
. Например, при создании списка Users
hayabusa выводит все значения в полях SubjectUserName
, TargetUserName
и User
.
search
Команда search
позволит вам выполнять поиск по ключевым словам по всем событиям. (Не только результаты обнаружения Hayabusa.) Это полезно для определения наличия каких-либо доказательств в событиях, которые не обнаружены Hayabusa.
Usage: hayabusa.exe search <--keywords "" OR --regex ""> [OPTIONS]
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-c, --rules-config Specify custom rule config directory (default: ./rules/config)
--target-file-ext Specify additional evtx file extensions (ex: evtx_data)
-t, --threads Number of threads (default: optimal number for performance)
Input:
-d, --directory Directory of multiple .evtx files
-f, --file File path to one .evtx file
-l, --live-analysis Analyze the local C:WindowsSystem32winevtLogs folder
Filtering:
-a, --and-logic Search keywords with AND logic (default: OR)
-F, --filter Filter by specific field(s)
-i, --ignore-case Case-insensitive keyword search
-k, --keyword Search by keyword(s)
-r, --regex Search by regular expression
--timeline-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
Output:
-J, --JSON-output Save the search results in JSON format (ex: -J -o results.json)
-L, --JSONL-output Save the search results in JSONL format (ex: -L -o results.jsonl)
-M, --multiline Output event field information in multiple rows for CSV output
-o, --output Save the search results in CSV format (ex: search.csv)
Time Format:
--European-time Output timestamp in European time format (ex: 22-02-2022 22:00:00.123 +02:00)
--ISO-8601 Output timestamp in ISO-8601 format (ex: 2022-02-22T10:10:10.1234567Z) (Always UTC)
--RFC-2822 Output timestamp in RFC 2822 format (ex: Fri, 22 Feb 2022 22:00:00 -0600)
--RFC-3339 Output timestamp in RFC 3339 format (ex: 2022-02-22 22:00:00.123456-06:00)
--US-military-time Output timestamp in US military time format (ex: 02-22-2022 22:00:00.123 -06:00)
--US-time Output timestamp in US time format (ex: 02-22-2022 10:00:00.123 PM -06:00)
-U, --UTC Output time in UTC format (default: local time)
search
../hayabusa-sample-evtx
ключевое слово mimikatz
: hayabusa.exe search -d ../hayabusa-sample-evtx -k "mimikatz"
Примечание. Ключевое слово будет соответствовать, если
mimikatz
встречается где-либо в данных. Это не точное совпадение.
../hayabusa-sample-evtx
ключевые слова mimikatz
или kali
: hayabusa.exe search -d ../hayabusa-sample-evtx -k "mimikatz" -k "kali"
../hayabusa-sample-evtx
ключевое слово mimikatz
и игнорируйте регистр: hayabusa.exe search -d ../hayabusa-sample-evtx -k "mimikatz" -i
../hayabusa-sample-evtx
IP-адреса, используя регулярные выражения: hayabusa.exe search -d ../hayabusa-sample-evtx -r "(?:[0-9]{1,3}.){3}[0-9]{1,3}"
../hayabusa-sample-evtx
и отобразите все события, в которых поле WorkstationName
имеет значение kali
: hayabusa.exe search -d ../hayabusa-sample-evtx -r ".*" -F WorkstationName:"kali"
Примечание.
.*
— это регулярное выражение, которое соответствует каждому событию.
search
./rules/config/channel_abbreviations.txt
: Сопоставления названий каналов и их сокращений.
Для команд csv-timeline
и json-timeline
теперь по умолчанию включен мастер сканирования. Это предназначено для того, чтобы помочь пользователям легко выбирать, какие правила обнаружения они хотят включить в соответствии со своими потребностями и предпочтениями. Загружаемые наборы правил обнаружения основаны на официальных списках проекта Sigma. Подробности описаны в этом сообщении блога. Вы можете легко отключить мастер и использовать Hayabusa традиционным способом, добавив опцию -w, --no-wizard
.
core
набор правил включает правила, которые имеют статус test
или stable
и уровень high
или critical
. Это высококачественные правила, обладающие высокой степенью достоверности и актуальности, и они не должны приводить к множеству ложных срабатываний. Статус правила — test
или stable
, что означает отсутствие ложноположительных результатов в течение более 6 месяцев. Правила будут соответствовать методам злоумышленника, общим подозрительным действиям или вредоносному поведению. Это то же самое, что использование --exclude-status deprecated,unsupported,experimental --min-level high
.
Набор правил core+
включает правила, которые имеют статус test
или stable
и уровень medium
или выше. medium
правила чаще всего требуют дополнительной настройки, поскольку могут соответствовать определенные приложения, законное поведение пользователей или сценарии организации. Это то же самое, что использование --exclude-status deprecated,unsupported,experimental --min-level medium
.
Набор правил core++
включает правила, имеющие статус experimental
, test
или stable
, а также уровень medium
или выше. Эти правила являются новейшими. Они проверяются на соответствие базовым файлам evtx, доступным в проекте SigmaHQ, и проверяются несколькими инженерами по обнаружению. В остальном они поначалу практически не проверены. Используйте их, если хотите иметь возможность обнаруживать угрозы как можно раньше за счет управления более высоким порогом ложных срабатываний. Это то же самое, что использование --exclude-status deprecated,unsupported --min-level medium
.
Набор правил Emerging Threats (ET)
включает правила, имеющие detection.emerging_threats
. Эти правила нацелены на конкретные угрозы и особенно полезны для текущих угроз, о которых еще мало информации. Эти правила не должны иметь большого количества ложных срабатываний, но со временем их актуальность будет снижаться. Если эти правила не включены, это аналогично использованию опции --exclude-tag detection.emerging_threats
. При традиционном запуске Hayabusa без мастера эти правила будут включены по умолчанию.
Набор правил Threat Hunting (TH)
включает правила с detection.threat_hunting
. Эти правила могут обнаруживать неизвестные вредоносные действия, однако обычно имеют больше ложных срабатываний. Если эти правила не включены, это аналогично использованию опции --exclude-tag detection.threat_hunting
. При традиционном запуске Hayabusa без мастера эти правила будут включены по умолчанию.
Начиная с Hayabusa v2.16.0, мы включаем фильтр на основе каналов при загрузке файлов .evtx
и правил .yml
. Цель состоит в том, чтобы сделать сканирование максимально эффективным, загружая только то, что необходимо. Хотя в одном журнале событий может быть несколько поставщиков, в одном файле evtx нечасто бывает несколько каналов. (Единственный раз, когда мы видели это, — это когда кто-то искусственно объединил два разных файла evtx для проекта sample-evtx.) Мы можем использовать это в своих интересах, сначала проверив поле Channel
в первой записи каждого указанного файла .evtx
для сканирования. Мы также проверяем, какие .yml
правила используют какие каналы, указанные в поле Channel
правила. С помощью этих двух списков мы загружаем только те правила, которые используют каналы, которые действительно присутствуют в файлах .evtx
.
Так, например, если пользователь хочет сканировать Security.evtx
, будут использоваться только правила, определяющие Channel: Security
. Нет смысла загружать другие правила обнаружения, например правила, которые ищут только события в журнале Application
и т. д. Обратите внимание, что поля каналов (например: Channel: Security
) не определены явно внутри исходных правил Sigma. Для правил Sigma поля идентификаторов каналов и событий неявно определяются с помощью полей service
и category
в logsource
. (Пример: service: security
) При настройке правил Sigma в репозитории hayabusa-rules мы деабстрагируем поле logsource
и явно определяем поля канала и идентификатора события. Здесь мы подробно объясняем, как и почему мы это делаем.
В настоящее время существует только два правила обнаружения, для которых не определен Channel
и которые предназначены для сканирования всех файлов .evtx
:
Если вы хотите использовать эти два правила и сканировать все правила на предмет загруженных файлов .evtx
, вам нужно будет добавить параметр -A, --enable-all-rules
в команды csv-timeline
и json-timeline
. В наших тестах фильтрация по правилам обычно дает повышение скорости от 20% до 10 раз в зависимости от того, какие файлы сканируются, и, конечно же, использует меньше памяти.
Фильтрация каналов также используется при загрузке файлов .evtx
. Например, если вы укажете правило, которое ищет события с каналом Security
, то нет смысла загружать файлы .evtx
, не из журнала Security
. В наших тестах это дает выигрыш в скорости примерно на 10 % при обычном сканировании и более чем на 60 % при сканировании с использованием одного правила. Если вы уверены, что в одном файле .evtx
используется несколько каналов, например, кто-то использовал инструмент для объединения нескольких файлов .evtx
вместе, отключите эту фильтрацию с помощью -a, --scan-all-evtx-files
опция в командах csv-timeline
и json-timeline
.
Примечание. Фильтрация каналов работает только с файлами
.evtx
, и вы получите сообщение об ошибке, если попытаетесь загрузить журналы событий из файла JSON с помощью-J, --json-input
, а также указать-A
или-a
.
csv-timeline
шкалы Команда csv-timeline
создаст хронологическую шкалу событий в формате CSV.
Usage: csv-timeline [OPTIONS]
Input:
-d, --directory Directory of multiple .evtx files
-f, --file File path to one .evtx file
-l, --live-analysis Analyze the local C:WindowsSystem32winevtLogs folder
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-J, --JSON-input Scan JSON formatted logs instead of .evtx (.json or .jsonl)
-s, --sort-events Sort events before saving the file. (warning: this uses much more memory!)
-w, --no-wizard Do not ask questions. Scan for all events and alerts
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-r, --rules Specify a custom rule directory or file (default: ./rules)
-c, --rules-config Specify custom rule config directory (default: ./rules/config)
--target-file-ext Specify additional evtx file extensions (ex: evtx_data)
-t, --threads Number of threads (default: optimal number for performance)
Filtering:
-E, --EID-filter Scan only common EIDs for faster speed (./rules/config/target_event_IDs.txt)
-D, --enable-deprecated-rules Enable rules with a status of deprecated
-n, --enable-noisy-rules Enable rules set to noisy (./rules/config/noisy_rules.txt)
-u, --enable-unsupported-rules Enable rules with a status of unsupported
-e, --exact-level Only load rules with a specific level (informational, low, medium, high, critical)
--exclude-category Do not load rules with specified logsource categories (ex: process_creation,pipe_created)
--exclude-computer Do not scan specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--exclude-eid Do not scan specific EIDs for faster speed (ex: 1) (ex: 1,4688)
--exclude-status Do not load rules according to status (ex: experimental) (ex: stable,test)
--exclude-tag Do not load rules with specific tags (ex: sysmon)
--include-category Only load rules with specified logsource categories (ex: process_creation,pipe_created)
--include-computer Scan only specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--include-eid Scan only specified EIDs for faster speed (ex: 1) (ex: 1,4688)
--include-status Only load rules with specific status (ex: experimental) (ex: stable,test)
--include-tag Only load rules with specific tags (ex: attack.execution,attack.discovery)
-m, --min-level Minimum level for rules to load (default: informational)
-P, --proven-rules Scan with only proven rules for faster speed (./rules/config/proven_rules.txt)
--timeline-end End time of the event logs to load (ex: "2022-02-22 23:59:59 +09:00")
--timeline-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
--timeline-start Start time of the event logs to load (ex: "2020-02-22 00:00:00 +09:00")
Output:
-G, --GeoIP Add GeoIP (ASN, city, country) info to IP addresses
-H, --HTML-report Save Results Summary details to an HTML report (ex: results.html)
-M, --multiline Output event field information in multiple rows
-F, --no-field-data-mapping Disable field data mapping
--no-pwsh-field-extraction Disable field extraction of PowerShell classic logs
-o, --output Save the timeline in CSV format (ex: results.csv)
-p, --profile Specify output profile
-R, --remove-duplicate-data Duplicate field data will be replaced with "DUP"
-X, --remove-duplicate-detections Remove duplicate detections (default: disabled)
Display Settings:
--no-color Disable color output
-N, --no-summary Do not display Results Summary for faster speed
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
-T, --visualize-timeline Output event frequency timeline (terminal needs to support unicode)
Time Format:
--European-time Output timestamp in European time format (ex: 22-02-2022 22:00:00.123 +02:00)
--ISO-8601 Output timestamp in ISO-8601 format (ex: 2022-02-22T10:10:10.1234567Z) (Always UTC)
--RFC-2822 Output timestamp in RFC 2822 format (ex: Fri, 22 Feb 2022 22:00:00 -0600)
--RFC-3339 Output timestamp in RFC 3339 format (ex: 2022-02-22 22:00:00.123456-06:00)
--US-military-time Output timestamp in US military time format (ex: 02-22-2022 22:00:00.123 -06:00)
--US-time Output timestamp in US time format (ex: 02-22-2022 10:00:00.123 PM -06:00)
-U, --UTC Output time in UTC format (default: local time)
csv-timeline
standard
профилем по умолчанию: hayabusa.exe csv-timeline -f eventlog.evtx
hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -p verbose
super-verbose
профиля!): hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -o results.csv -p super-verbose
Примечание. В наших тестах включение фильтра EID ускорит анализ примерно на 10–15 %, но существует вероятность пропуска оповещений.
hayabusa.exe csv-timeline -E -d .hayabusa-sample-evtx -o results.csv
-r .rules
): hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -r .ruleshayabusa -o results.csv -w
hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -r .ruleshayabusabuiltin -o results.csv -w
hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -r .ruleshayabusasysmon -o results.csv -w
hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -r .rulessigma -o results.csv -w
status
помеченный как deprecated
) и зашумленные правила (те, чей идентификатор правила указан в .rulesconfignoisy_rules.txt
):Примечание. В последнее время устаревшие правила теперь расположены в отдельном каталоге репозитория sigma, поэтому больше не включаются в Hayabusa по умолчанию. Поэтому вам, вероятно, нет необходимости включать устаревшие правила.
hayabusa.exe csv-timeline -d .hayabusa-sample-evtx --enable-noisy-rules --enable-deprecated-rules -o results.csv -w
hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -r .ruleshayabusabuiltinSecurityLogonLogoffLogon -U -o results.csv -w
hayabusa.exe csv-timeline -l -m low
hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -v
Правила загрузки:
Loaded rule: rules/sigma/builtin/deprecated/proc_creation_win_susp_run_folder.yml
Loaded rule: rules/sigma/builtin/deprecated/proc_creation_win_execution_mssql_xp_cmdshell_stored_procedure.yml
Loaded rule: rules/sigma/builtin/deprecated/proc_creation_win_susp_squirrel_lolbin.yml
Loaded rule: rules/sigma/builtin/win_alert_mimikatz_keywords.yml
Ошибки во время сканирования:
[ERROR] Failed to parse event file.
EventFile: ../logs/Microsoft-Rdms-UI%4Operational.evtx
Error: Failed to parse record number 58471
[ERROR] Failed to parse event file.
EventFile: ../logs/Microsoft-Rdms-UI%4Operational.evtx
Error: Failed to parse record number 58470
[ERROR] Failed to parse event file.
EventFile: ../logs/Microsoft-Windows-AppxPackaging%4Operational.evtx
Error: An error occurred while trying to serialize binary xml to output.
hayabusa.exe csv-timeline -d ../hayabusa-sample-evtx --RFC-3339 -o timesketch-import.csv -p timesketch -U
-Q
. Вы можете добавить информацию GeoIP (организация ASN, город и страна) в поля SrcIP (исходный IP) и поля TgtIP (целевой IP) с бесплатными данными геолокации GeoLite2.
Шаги:
.mmdb
со страницы загрузки и сохраните их в каталоге. Имена файлов должны называться GeoLite2-ASN.mmdb
, GeoLite2-City.mmdb
и GeoLite2-Country.mmdb
.csv-timeline
или json-timeline
добавьте параметр -G
, а затем каталог с базами данных MaxMind. При использовании csv-timeline
дополнительно выводятся следующие 6 столбцов: SrcASN
, SrcCity
, SrcCountry
, TgtASN
, TgtCity
, TgtCountry
.
При использовании json-timeline
в объект Details
будут добавлены те же поля SrcASN
, SrcCity
, SrcCountry
, TgtASN
, TgtCity
, TgtCountry
, но только если они содержат информацию.
Если SrcIP
или TgtIP
имеет значение localhost ( 127.0.0.1
, ::1
и т. д.), SrcASN
или TgtASN
будут выведены как Local
.
Если SrcIP
или TgtIP
является частным IP-адресом ( 10.0.0.0/8
, fe80::/10
и т. д.), SrcASN
или TgtASN
будут выведены как Private
.
Имена полей, содержащие исходные и целевые IP-адреса, которые просматриваются в базах данных GeoIP, определены в rules/config/geoip_field_mapping.yaml
. Вы можете добавить в этот список при необходимости. В этом файле также есть раздел фильтра, который определяет, из каких событий извлечь информацию IP -адреса.
Базы данных MaxMind GEOIP обновляются каждые 2 недели. Вы можете установить здесь инструмент Maxmind geoipupdate
, чтобы автоматически обновить эти базы данных.
Шаги на macOS:
brew install geoipupdate
/usr/local/etc/GeoIP.conf
: вставьте в свой AccountID
и LicenseKey
вы создаете после входа на веб -сайт Maxmind. Убедитесь, что в линии EditionIDs
говорится, что EditionIDs GeoLite2-ASN GeoLite2-City GeoLite2-Country
.geoipupdate
.-G /usr/local/var/GeoIP
когда вы хотите добавить информацию о геоипках.Шаги по окнам:
geoipupdate_4.10.0_windows_amd64.zip
) со страницы релизов.ProgramDataMaxMind/GeoIPUpdateGeoIP.conf
: Поместите в свою AccountID
и LicenseKey
, который вы создаете после входа на веб -сайт MaxMind. Убедитесь, что в линии EditionIDs
говорится, что EditionIDs GeoLite2-ASN GeoLite2-City GeoLite2-Country
.geoipupdate
. csv-timeline
./rules/config/channel_abbreviations.txt
: отображения имен каналов и их сокращения.
./rules/config/default_details.txt
: файл конфигурации для того, какая информация поля по умолчанию ( %Details%
) должна быть выведена, если нет details:
строка указана в правиле. Это основано на имени поставщика и идентификаторах событий.
./rules/config/eventkey_alias.txt
: Этот файл имеет сопоставления счетов коротких имен для полей и их первоначальные более длинные имена поля.
Пример:
InstanceID,Event.UserData.UMDFHostDeviceArrivalBegin.InstanceId
IntegrityLevel,Event.EventData.IntegrityLevel
IpAddress,Event.EventData.IpAddress
Если поле здесь не определена, Хаябуса автоматически проверит по Event.EventData
поле.
./rules/config/exclude_rules.txt
: этот файл имеет список идентификаторов правил, которые будут исключены из использования. Обычно это связано с тем, что одно правило заменило другое или правило не может быть использовано в первую очередь. Как и брандмауэры и IDSE, любой инструмент на основе подписи потребует некоторой настройки, чтобы соответствовать вашей среде, поэтому вам может потребоваться постоянно или временно исключить определенные правила. Вы можете добавить идентификатор правила ( ./rules/config/exclude_rules.txt
: 4fe151c2-ecf9-4fae-95ae-b88ec9c2fca6
).
./rules/config/noisy_rules.txt
: этот файл Список идентификаторов правил, которые отключены по умолчанию, но могут быть включены, включив шумные правила с опцией -n, --enable-noisy-rules
. Эти правила обычно шумные по своей природе или из -за ложных срабатываний.
./rules/config/target_event_IDs.txt
: только идентификаторы события, указанные в этом файле, будут отсканированы, если включен фильтр EID. По умолчанию Hayabusa сканирует все события, но если вы хотите повысить производительность, пожалуйста, используйте вариант -E, --EID-filter
. Обычно это приводит к улучшению скорости на 10 ~ 25%.
json-timeline
COMMAND Команда json-timeline
создаст временную шкалу криминалистики событий в формате JSON или JSONL. Выход в JSONL будет более быстрым и меньшим размером файла, чем JSON, так что хорошо, если вы собираетесь просто импортировать результаты в другой инструмент, такой как Elastic Stack. JSON лучше, если вы собираетесь вручную проанализировать результаты с помощью текстового редактора. Выход CSV хорош для импорта меньших сроков (обычно менее 2 ГБ) в такие инструменты, как LibreOffice или Timeline Explorer. JSON лучше всего подходит для более подробного анализа данных (включая большие файлы результатов) с такими инструментами, как jq
поскольку поля Details
разделены для облегчения анализа. (На выводе CSV все полки журнала событий находятся в одном из больших Details
, создавая сортировку данных и т. Д. ... труднее.)
Usage: json-timeline [OPTIONS]
Input:
-d, --directory Directory of multiple .evtx files
-f, --file File path to one .evtx file
-l, --live-analysis Analyze the local C:WindowsSystem32winevtLogs folder
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-J, --JSON-input Scan JSON formatted logs instead of .evtx (.json or .jsonl)
-s, --sort-events Sort events before saving the file. (warning: this uses much more memory!)
-w, --no-wizard Do not ask questions. Scan for all events and alerts
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-r, --rules Specify a custom rule directory or file (default: ./rules)
-c, --rules-config Specify custom rule config directory (default: ./rules/config)
--target-file-ext Specify additional evtx file extensions (ex: evtx_data)
-t, --threads Number of threads (default: optimal number for performance)
Filtering:
-E, --EID-filter Scan only common EIDs for faster speed (./rules/config/target_event_IDs.txt)
-D, --enable-deprecated-rules Enable rules with a status of deprecated
-n, --enable-noisy-rules Enable rules set to noisy (./rules/config/noisy_rules.txt)
-u, --enable-unsupported-rules Enable rules with a status of unsupported
-e, --exact-level Only load rules with a specific level (informational, low, medium, high, critical)
--exclude-category Do not load rules with specified logsource categories (ex: process_creation,pipe_created)
--exclude-computer Do not scan specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--exclude-eid Do not scan specific EIDs for faster speed (ex: 1) (ex: 1,4688)
--exclude-status Do not load rules according to status (ex: experimental) (ex: stable,test)
--exclude-tag Do not load rules with specific tags (ex: sysmon)
--include-category Only load rules with specified logsource categories (ex: process_creation,pipe_created)
--include-computer Scan only specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--include-eid Scan only specified EIDs for faster speed (ex: 1) (ex: 1,4688)
--include-status Only load rules with specific status (ex: experimental) (ex: stable,test)
--include-tag Only load rules with specific tags (ex: attack.execution,attack.discovery)
-m, --min-level Minimum level for rules to load (default: informational)
-P, --proven-rules Scan with only proven rules for faster speed (./rules/config/proven_rules.txt)
--timeline-end End time of the event logs to load (ex: "2022-02-22 23:59:59 +09:00")
--timeline-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
--timeline-start Start time of the event logs to load (ex: "2020-02-22 00:00:00 +09:00")
Output:
-G, --GeoIP Add GeoIP (ASN, city, country) info to IP addresses
-H, --HTML-report Save Results Summary details to an HTML report (ex: results.html)
-L, --JSONL-output Save the timeline in JSONL format (ex: -L -o results.jsonl)
-F, --no-field-data-mapping Disable field data mapping
--no-pwsh-field-extraction Disable field extraction of PowerShell classic logs
-o, --output Save the timeline in JSON format (ex: results.json)
-p, --profile Specify output profile
-R, --remove-duplicate-data Duplicate field data will be replaced with "DUP"
-X, --remove-duplicate-detections Remove duplicate detections (default: disabled)
Display Settings:
--no-color Disable color output
-N, --no-summary Do not display Results Summary for faster speed
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
-T, --visualize-timeline Output event frequency timeline (terminal needs to support unicode)
Time Format:
--European-time Output timestamp in European time format (ex: 22-02-2022 22:00:00.123 +02:00)
--ISO-8601 Output timestamp in ISO-8601 format (ex: 2022-02-22T10:10:10.1234567Z) (Always UTC)
--RFC-2822 Output timestamp in RFC 2822 format (ex: Fri, 22 Feb 2022 22:00:00 -0600)
--RFC-3339 Output timestamp in RFC 3339 format (ex: 2022-02-22 22:00:00.123456-06:00)
--US-military-time Output timestamp in US military time format (ex: 02-22-2022 22:00:00.123 -06:00)
--US-time Output timestamp in US time format (ex: 02-22-2022 10:00:00.123 PM -06:00)
-U, --UTC Output time in UTC format (default: local time)
json-timeline
и файлы конфигурации Параметры и файлы конфигурации для json-timeline
такие же, как csv-timeline
, но одна дополнительная опция -L, --JSONL-output
для вывода в формат JSONL.
level-tuning
Команда level-tuning
позволит вам настроить уровни оповещения для правил, либо повышение, либо снижение уровня риска в соответствии с вашей средой.
Usage: level-tuning [OPTIONS]
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
General Options:
-f, --file Tune alert levels (default: ./rules/config/level_tuning.txt)
level-tuning
hayabusa.exe level-tuning
hayabusa.exe level-tuning -f my_level_tuning.txt
level-tuning
Авторы правил Hayabusa и Sigma определят уровень риска оповещения при написании своих правил. Однако фактический уровень риска может отличаться в зависимости от окружающей среды. Вы можете настроить уровень риска правил, добавив их в ./rules/config/level_tuning.txt
и выполняя hayabusa.exe level-tuning
, которая будет обновлять строку level
в файле правил. Обратите внимание, что файл правил будет обновлен напрямую.
ПРЕДУПРЕЖДЕНИЕ: В любое время, когда вы запускаете
update-rules
, исходный уровень оповещения будет перезаписать любые изменения, которые вы изменили, поэтому вам нужно будет запустить командуlevel-tuning
после каждого раз, когда вы запускаетеupdate-rules
если вы хотите изменить уровни.
./rules/config/level_tuning.txt
Пример строки:
id,new_level
00000000-0000-0000-0000-000000000000,informational # sample level tuning line
В этом случае уровень риска правила с id
00000000-0000-0000-0000-000000000000
в каталоге правил будет level
на informational
. Возможные уровни для установки являются critical
, high
, medium
, low
и informational
.
list-profiles
Usage: list-profiles [OPTIONS]
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
set-default-profile
Usage: set-default-profile [OPTIONS]
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
General Options:
-p, --profile Specify output profile
set-default-profile
minimal
: hayabusa.exe set-default-profile minimal
super-verbose
: hayabusa.exe set-default-profile super-verbose
update-rules
Команда update-rules
будет синхронизировать папку rules
с репозиторием GitHub правил Hayabusa, обновляя правила и файлы конфигурации.
Usage: update-rules [OPTIONS]
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
General Options:
-r, --rules Specify a custom rule directory or file (default: ./rules)
update-rules
Обычно вы просто выполняете это: hayabusa.exe update-rules
Hayabusa имеет 5 предварительно определенных профилей вывода для использования в config/profiles.yaml
:
minimal
standard
(по умолчанию)verbose
all-field-info
all-field-info-verbose
super-verbose
timesketch-minimal
timesketch-verbose
Вы можете легко настроить или добавить свои собственные профили, редактируя этот файл. Вы также можете легко изменить профиль по умолчанию с помощью set-default-profile --profile
. Используйте команду list-profiles
, чтобы показать доступные профили и их полевой информации.
minimal
выход профиля %Timestamp%, %Computer%, %Channel%, %EventID%, %Level%, %RecordID%, %RuleTitle%, %Details%
standard
выход профиля %Timestamp%, %Computer%, %Channel%, %EventID%, %Level%, %RecordID%, %RuleTitle%, %Details%, %ExtraFieldInfo%
verbose
профиля %Timestamp%, %Computer%, %Channel%, %EventID%, %Level%, %MitreTactics%, %MitreTags%, %OtherTags%, %RecordID%, %RuleTitle%, %Details%, %ExtraFieldInfo%, %RuleFile%, %EvtxFile%
all-field-info
Вместо того, чтобы выводить информацию о минимальной details
, вся информация о полях в разделах EventData
и UserData
будет выведена вместе с их исходными именами поля.
%Timestamp%, %Computer%, %Channel%, %EventID%, %Level%, %RecordID%, %RuleTitle%, %AllFieldInfo%, %RuleFile%, %EvtxFile%
all-field-info-verbose
%Timestamp%, %Computer%, %Channel%, %EventID%, %Level%, %MitreTactics%, %MitreTags%, %OtherTags%, %RecordID%, %RuleTitle%, %AllFieldInfo%, %RuleFile%, %EvtxFile%
super-verbose
Profile %Timestamp%, %Computer%, %Channel%, %EventID%, %Level%, %RuleTitle%, %RuleAuthor%, %RuleModifiedDate%, %Status%, %RecordID%, %Details%, %ExtraFieldInfo%, %MitreTactics%, %MitreTags%, %OtherTags%, %Provider%, %RuleCreationDate%, %RuleFile%, %EvtxFile%
timesketch-minimal
ProfileВывод в формат, совместимый с импортом в Timesketch.
%Timestamp%, hayabusa, %RuleTitle%, %Computer%, %Channel%, %EventID%, %Level%, %MitreTactics%, %MitreTags%, %OtherTags%, %RecordID%, %Details%, %RuleFile%, %EvtxFile%
timesketch-verbose
%Timestamp%, hayabusa, %RuleTitle%, %Computer%, %Channel%, %EventID%, %Level%, %MitreTactics%, %MitreTags%, %OtherTags%, %RecordID%, %Details%, %ExtraFieldInfo%, %RuleFile%, %EvtxFile%
Следующие тесты были проведены на Lenovo P51 2018 года (Xeon 4 Core CPU / 64 ГБ ОЗУ) с 3 ГБ данных EVTX и включенными 3891 правилами. (2023/06/01)
Профиль | Время обработки | Выходные файлы размером | Увеличение размера файлов |
---|---|---|---|
минимальный | 8 минут 50 секунд | 770 МБ | -30% |
Стандарт (по умолчанию) | 9 минут 00 секунд | 1,1 ГБ | Никто |
многословный | 9 минут 10 секунд | 1,3 ГБ | +20% |
все полевой | 9 минут 3 секунды | 1,2 ГБ | +10% |
Всеполе-инфо-вербоза | 9 минут 10 секунд | 1,3 ГБ | +20% |
Супер-вербоза | 9 минут 12 секунд | 1,5 ГБ | +35% |
Следующая информация может быть выведена с встроенными профилями вывода:
Псевдоним имя | Информация о выводе Hayabusa |
---|---|
%Allfieldinfo% | Вся полевая информация. |
%Канал% | Имя журнала. Поле. |
%Компьютера% | Поле . |
%Подробности% | Поле details в правиле обнаружения YML, однако, только правила Hayabusa имеют это поле. Это поле дает дополнительную информацию о оповещении или событии и может извлечь полезные данные из полей в журналах событий. Например, имена пользователей, информация о командной строке, информация о процессе и т. Д., Когда заполнитель указывает на поле, которое не существует или существует неправильное отображение псевдонима, оно будет выведено как n/a (недоступно). Если поле details не указано (то есть правила Sigma), сообщения details по умолчании для извлечения полей, определенных в ./rules/config/default_details.txt будут выведены. Вы можете добавить больше сообщений details по умолчанию, добавив Provider Name , EventID и details информацию, которое вы хотите вывести в default_details.txt . Когда поле details не определено ни в правиле, ни в default_details.txt , все поля будут выведены в столбец details . |
%Extrafieldinfo% | Распечатайте информацию о поле, которая не была выведена в %деталей %. |
%EventId% | Поле . |
%Evtxfile% | EVTX FILENAME, которое вызвало оповещение или событие. |
%Уровень% | Поле level в правиле обнаружения YML. ( informational , low , medium , high , critical ) |
%Mitretactics% | Miter Att & CK Tactics (например: начальный доступ, боковое движение и т. Д.). |
%Mitretags% | Miter Att & CK ID группы, идентификатор техники и идентификатор программного обеспечения. |
%Другие tags% | Любое ключевое слово в поле tags в правиле обнаружения YML, которое не включено в MitreTactics или MitreTags . |
%Поставщика% | Атрибут Name в поле Поле. |
%Recordd% | Идентификатор записи события из поля. |
%Ruleauthor% | Поле author в правиле обнаружения YML. |
%Rulecreationdate% | Поле date в правиле обнаружения YML. |
% | Имя файла правила обнаружения, которое генерировало предупреждение или событие. |
%RulemodifiedDate% | modified поле в правиле обнаружения YML. |
%RuleTitle% | Поле title в правиле обнаружения YML. |
%Статус% | Поле status в правиле обнаружения YML. |
%Timestamp% | По умолчанию YYYY-MM-DD HH:mm:ss.sss +hh:mm Format. Поле в журнале событий. Временный пояс по умолчанию станет местным часовым поясом, но вы можете изменить часовой пояс на UTC с помощью опции --UTC . |
Вы также можете добавить эти дополнительные псевдонимы в свой выходной профиль, если они вам нужны:
Псевдоним имя | Информация о выводе Hayabusa |
---|---|
%RenderedMessage% | Поле в переадресованных журналах WEC. |
%RugeId% | id поле в правиле обнаружения YML. |
Примечание. Они не включены в какие -либо встроенные профили, поэтому вам нужно будет вручную отредактировать файл config/default_profile.yaml
и добавить следующие строки:
Message: "%RenderedMessage%"
RuleID: "%RuleID%"
Вы также можете определить псевдонимы ключей событий для вывода других полей.
Чтобы сохранить пространство, мы используем следующие сокращения при отображении level
оповещения.
crit
: critical
high
: high
med
: medium
low
: low
info
: informational
Чтобы сохранить пространство, мы используем следующие сокращения при отображении тактических тегов Miter Att & CK. Вы можете свободно отредактировать эти сокращения в файле конфигурации ./config/mitre_tactics.txt
.
Recon
: разведкаResDev
: разработка ресурсовInitAccess
: начальный доступExec
: выполнениеPersis
: настойчивостьPrivEsc
: привилегия эскалацияEvas
: Уклонение от уплаты обороныCredAccess
: Доступ к учетным даннымDisc
: DiscoveryLatMov
: боковое движениеCollect
: КоллекцияC2
: Команда и управлениеExfil
: exfiltrationImpact
: воздействие Чтобы сохранить пространство, мы используем следующие сокращения при отображении канала. Вы можете свободно отредактировать эти сокращения в файле конфигурации ./rules/config/channel_abbreviations.txt
.
App
: Application
AppLocker
: Microsoft-Windows-AppLocker/*
BitsCli
: Microsoft-Windows-Bits-Client/Operational
CodeInteg
: Microsoft-Windows-CodeIntegrity/Operational
Defender
: Microsoft-Windows-Windows Defender/Operational
DHCP-Svr
: Microsoft-Windows-DHCP-Server/Operational
DNS-Svr
: DNS Server
DvrFmwk
: Microsoft-Windows-DriverFrameworks-UserMode/Operational
Exchange
: MSExchange Management
Firewall
: Microsoft-Windows-Windows Firewall With Advanced Security/Firewall
KeyMgtSvc
: Key Management Service
LDAP-Cli
: Microsoft-Windows-LDAP-Client/Debug
NTLM
Microsoft-Windows-NTLM/Operational
OpenSSH
: OpenSSH/Operational
PrintAdm
: Microsoft-Windows-PrintService/Admin
PrintOp
: Microsoft-Windows-PrintService/Operational
PwSh
: Microsoft-Windows-PowerShell/Operational
PwShClassic
: Windows PowerShell
RDP-Client
: Microsoft-Windows-TerminalServices-RDPClient/Operational
Sec
: Security
SecMitig
: Microsoft-Windows-Security-Mitigations/*
SmbCliSec
: Microsoft-Windows-SmbClient/Security
SvcBusCli
: Microsoft-ServiceBus-Client
Sys
: System
Sysmon
: Microsoft-Windows-Sysmon/Operational
TaskSch
: Microsoft-Windows-TaskScheduler/Operational
WinRM
: Microsoft-Windows-WinRM/Operational
WMI
: Microsoft-Windows-WMI-Activity/Operational
Следующие сокращения используются в правилах, чтобы сделать вывод максимально краткой:
Acct
-> accountAddr
-> АдресAuth
-> аутентификацияCli
-> КлиентChan
-> КаналCmd
-> КомандаCnt
-> СчитатьComp
-> КомпьютерConn
-> подключение/подключеноCreds
-> Учетные данныеCrit
-> критическаяDisconn
-> Densnection/DeplonedDir
-> каталогDrv
-> DriverDst
-> назначениеEID
-> ID событияErr
-> ошибкаExec
-> выполнениеFW
-> БрандмауэрGrp
-> ГруппаImg
-> ИзображениеInj
-> инъекцияKrb
-> KerberosLID
-> идентификатор входа в системуMed
-> СреднийNet
-> сетьObj
-> объектOp
-> Оперативный/операцияProto
-> ПротоколPW
-> ПарольReconn
-> ReconnectionReq
-> запросRsp
-> ОтветSess
-> sessionSig
-> подписьSusp
-> подозрительныйSrc
-> ИсточникSvc
-> СервисSvr
-> серверTemp
-> временныйTerm
-> прекращение/прекращениеTkt
-> билетTgt
-> TargetUnkwn
-> неизвестноUsr
-> ПользовательPerm
-> ПермамPkg
-> ПакетPriv
-> ПривилегияProc
-> процессPID
-> Идентификатор процессаPGUID
-> Process Guid (глобальный уникальный идентификатор)Ver
-> версия Панель прогресса будет работать только с несколькими файлами EVTX. Он будет отображать в режиме реального времени число и процент файлов EVTX, которые он закончил анализировать.
Оповещения будут выведены в цвете на основе level
оповещения. Вы можете изменить цвета по умолчанию в файле конфигурации по адресу ./config/level_color.txt
в формате level,(RGB 6-digit ColorHex)
. Если вы хотите отключить вывод цвета, вы можете использовать --no-color
.
Общее количество событий, количество событий с попаданием, метрики сокращения данных, общее и уникальное обнаружение, даты с наибольшим количеством обнаружений, ведущие компьютеры с обнаружениями и высшими оповещениями отображаются после каждого сканирования.
Если вы добавите вариант -T, --visualize-timeline
, функция временной шкалы частоты событий отображает временную шкалу частоты Sparkline обнаруженных событий. Примечание: должно быть более 5 событий. Кроме того, символы не будут правильно отображаться в командной строке по умолчанию или подсказке PowerShell, поэтому, пожалуйста, используйте терминал, такой как Terminal, ITERM2 и т. Д.
Правила обнаружения Hayabusa записаны в сигма-подобном формате YML и расположены в папке rules
. Правила размещаются по адресу https://github.com/yamato-security/hayabusa-rules, поэтому, пожалуйста, отправьте любые проблемы и обращайте запросы на правила, а не в основном хранилище Hayabusa.
Пожалуйста, прочитайте репозиторий Hayabusa-Rules Readme, чтобы понять формат правила и о том, как создавать правила.
Все правила из хранилища Хаябуса-Рул должны быть размещены в папке rules
. Правила informational
уровня считаются events
, в то время как все, что с level
low
и более высокого, считается alerts
.
Структура каталога правил Hayabusa разделена на 2 каталога:
builtin
: журналы, которые могут быть сгенерированы встроенными функциями Windows.sysmon
: журналы, которые генерируются Sysmon.Правила дополнительно разделены на каталоги по типу журнала (пример: безопасность, система и т. Д.) И названы в следующем формате:
Пожалуйста, ознакомьтесь с текущими правилами для использования в качестве шаблона при создании новых или для проверки логики обнаружения.
Hayabusa поддерживает правила Sigma назначенным, за исключением единого исключения в обращении с полями logsource
внутренне. Чтобы уменьшить ложные срабатывания, правила Sigma должны проходить через наш конвертор, объясненный здесь. Это добавит правильный Channel
и EventID
и выполнит картирование полевых полетов для определенных категорий, таких как process_creation
.
Почти все правила Hayabusa совместимы с форматом Sigma, поэтому вы можете использовать их, как правила Sigma, чтобы преобразовать в другие форматы SIEM. Правила Hayabusa разработаны исключительно для анализа журналов Windows событий и имеют следующие преимущества:
details
для отображения дополнительной информации, взятой только из полезных полей в журнале.|equalsfield
и |endswithfield
.Насколько нам известно, Hayabusa обеспечивает наибольшую собственную поддержку Sigma правилами из любого инструмента анализа журналов событий с открытым исходным кодом.
Чтобы правильно обнаружить вредоносную активность на машинах Windows, вам нужно будет улучшить настройки журнала по умолчанию. Мы создали отдельный проект, чтобы документировать, какие настройки журнала должны быть включены, а также сценарии, чтобы автоматически включить правильные настройки по адресу https://github.com/yamato-security/enablewindowslogsettings.
Мы также рекомендуем следующие сайты для руководства:
Чтобы создать наиболее судебные доказательства и обнаружить с самой высокой точностью, вам необходимо установить Sysmon. Мы рекомендуем следующие сайты и файлы конфигурации:
Мы хотели бы любой формы вклада. Запросы на вытягивание, создание правил и образец журналов EVTX - лучшие, но запросы на функции, уведомление нас о ошибках и т. Д. Также очень желанные годы.
По крайней мере, если вам нравится наш инструмент, пожалуйста, дайте нам звезду на GitHub и покажите свою поддержку!
Пожалуйста, отправьте все ошибки, которые вы найдете здесь. Этот проект в настоящее время активно поддерживается, и мы рады исправить любые сообщения.
Если вы найдете какие-либо проблемы (ложные срабатывания, ошибки и т. Д.) С правилами Hayabusa, пожалуйста, сообщите о них на странице выпуска Github-Rules Hayabusa-Rules здесь.
Если вы найдете какие -либо проблемы (ложные срабатывания, ошибки и т. Д.) С правилами Sigma, пожалуйста, сообщите о них на странице выпусков Sigmahq Github Github.
Hayabusa выпускается в соответствии с AGPLV3, и все правила выпускаются в соответствии с лицензией правила обнаружения (DRL) 1.1.
Hayabusa использует данные Geolite2, созданные MaxMind, доступные по адресу https://www.maxmind.com.
Вы можете получить последние новости о Hayabusa, обновлениях правил, других инструментах безопасности Yamato и т. Д., Следуя за нами в Twitter по адресу @securityyamato.