
Сканирование файлов в реальном времени на основе контейнеров в масштабе предприятия.
Strelka — это система сканирования файлов в реальном времени на основе контейнеров, используемая для поиска угроз, обнаружения угроз и реагирования на инциденты. Изначально основанная на дизайне, предложенном Lockheed Martin Laika BOSS, и аналогичных проектах (см.: связанные проекты), цель Strelka — выполнять извлечение файлов и сбор метаданных в масштабах предприятия.
Strelka отличается от своих родственных проектов несколькими важными особенностями:
Strelka представляет собой модульную платформу для сканирования данных, позволяющую пользователям или системам отправлять файлы с целью анализа, извлечения и создания отчетов о содержимом файлов и метаданных. В сочетании с SIEM Strelka способна агрегировать данные, оповещать и предоставлять аналитикам возможность лучше понимать свою среду без необходимости прямого сбора данных или трудоемкого анализа файлов.

Запустить файл через Strelka просто. В этом разделе демонстрируются возможности извлечения и анализа Strelka для однократного анализа.
Пожалуйста, ознакомьтесь с документацией для получения сведений о том, как правильно собрать и развернуть Strelka в корпоративной среде.
# Ubuntu 23.04
sudo apt install -y wget git docker docker-compose golang jq && \
sudo usermod -aG docker $USER && \
newgrp docker
git clone https://github.com/target/strelka.git && \
cd strelka
rm configs/python/backend/yara/rules.yara && \
git clone https://github.com/Yara-Rules/rules.git configs/python/backend/yara/rules/ && \
echo 'include "./rules/index.yar"' > configs/python/backend/yara/rules.yara
Примечание: Вы можете пропустить процесс go build и использовать Strelka UI по адресу http://0.0.0.0:9980 для анализа файлов.
docker compose -f build/docker-compose-no-build.yaml up -d && \
go build github.com/target/strelka/src/go/cmd/strelka-oneshot
Примечание: Вы можете пропустить процесс go build и использовать Strelka UI по адресу http://0.0.0.0:9980 для анализа файлов.
docker compose -f build/docker-compose.yaml build && \
docker compose -f build/docker-compose.yaml up -d && \
go build github.com/target/strelka/src/go/cmd/strelka-oneshot
Используйте любой образец вредоносного ПО или другой файл, который вы хотите проанализировать с помощью Strelka.
wget https://github.com/ytisf/theZoo/raw/master/malware/Binaries/Win32.Emotet/Win32.Emotet.zip -P samples/
./strelka-oneshot -f samples/Win32.Emotet.zip -l - | jq
Следующий вывод был сокращен для краткости.
{
"file": {
"depth": 0,
"flavors": {
"mime": ["application/zip"],
"yara": ["encrypted_zip", "zip_file"]
},
"scanners": [
"ScanEncryptedZip",
"ScanEntropy",
"ScanFooter",
"ScanHash",
"ScanHeader",
"ScanYara",
"ScanZip"
]
},
"scan": {
"encrypted_zip": {
"cracked_password": "infected",
"elapsed": 0.114269,
"total": {"extracted": 1, "files": 1}
}
}
}
{
"file": {
"depth": 1,
"flavors": {
"mime": ["application/x-dosexec"],
"yara": ["mz_file"]
},
"name": "29D6161522C7F7F21B35401907C702BDDB05ED47.bin",
"scanners": [
"ScanEntropy",
"ScanFooter",
"ScanHash",
"ScanHeader",
"ScanPe",
"ScanYara"
]
},
"scan": {
"pe": {
"address_of_entry_point": 5168,
"base_of_code": 4096,
"base_of_data": 32768,
"checksum": 47465,
"compile_time": "2015-03-31T08:53:51",
"elapsed": 0.013076,
"file_alignment": 4096,
"file_info": {
"company_name": "In CSS3",
"file_description": "Note: In CSS3, the text-decoration property is a shorthand property for text-decoration-line, text-decoration-color, and text-decoration-style, but this is currently.",
"file_version": "1.00.0065",
"fixed": {"operating_systems": ["WINDOWS32"]},
"internal_name": "Callstb",
"original_filename": "NOFAstb.exe",
"product_name": "Goodreads",
"product_version": "1.00.0065",
"var": {"character_set": "Unicode", "language": "U.S. English"}
}
},
"yara": {
"elapsed": 0.068918,
"matches": [
"SEH__vba",
"SEH_Init",
"Big_Numbers1",
"IsPE32",
"IsWindowsGUI",
"HasOverlay",
"HasRichSignature",
"Microsoft_Visual_Basic_v50v60",
"Microsoft_Visual_Basic_v50",
"Microsoft_Visual_Basic_v50_v60",
"Microsoft_Visual_Basic_v50_additional",
"Microsoft_Visual_Basic_v50v60_additional"
],
"tags": [
"AntiDebug",
"SEH",
"Tactic_DefensiveEvasion",
"Technique_AntiDebugging",
"SubTechnique_SEH",
"PECheck",
"PEiD"
]
}
}
}
Если Strelka развернут и обрабатывает файлы в вашей среде, вы, возможно, собираете эти события в вашей SIEM. С помощью этого анализа вы можете написать правило, которое ищет события, соответствующие подозрительным тегам yara, предупреждая вас о потенциально вредоносном файле.
scan.yara.tags:("Technique_AntiDebugging" && "SubTechnique_SEH")
Пользовательский интерфейс Strelka доступен при сборке предоставленных контейнеров. Этот веб-интерфейс позволяет загружать файлы в Strelka и захватывать события, которые сохраняются локально.
Перейдите по адресу http://localhost:9980/ и используйте логин/пароль strelka/strelka.

Имея более 50 сканеров файлов для наиболее распространенных типов файлов (например, exe, docx, js, zip), Strelka предоставляет пользователям возможность получать новые сведения о файлах на их хосте, сети или предприятии. Хотя Strelka не является механизмом обнаружения сам по себе (хотя он использует YARA), он может предоставить достаточно метаданных для выявления подозрительных или вредоносных файлов. Некоторые возможные области применения Strelka включают:

Больше документации о Strelka можно найти в README, в том числе:
Рекомендации по внесению вклада можно найти здесь.
Пользователям рекомендуется предварительно компилировать свои правила YARA для оптимальной производительности и во избежание возможных проблем во время выполнения. Использование предварительно скомпилированных файлов YARA помогает сократить время загрузки и использование ресурсов, особенно в средах с большим набором правил. Убедитесь, что вы используете параметр компиляции в конфигурации Strelka, чтобы указать на предварительно скомпилированный файл правил.
Смотрите проблемы с меткой bug в трекере для получения информации о других проблемах.
Strelka и связанный с ним код выпущены на условиях Лицензии Apache 2.0.