
Репозиторий для публикации общедоступного контента обнаружения Velociraptor
Репозиторий для публикации общедоступного массового контента обнаружения Velociraptor в удобном для использования виде.
Просто возьмите релиз VQL zip и импортируйте его в Velociraptor.
Это легко сделать через обмен артефактами Velociraptor: Server.Import.DetectRaptor.

Это должно импортировать артефакт «Import DetectRaptor».

Текущие артефакты включают:
Серверные артефакты:
Некоторые репозитории, внёсшие вклад:
Запустите регрессионные тесты Eventlogs, PSReadLine и MFT из корня репозитория:
python -m unittest discover -s tests -v
Проверьте CSV-файл обнаружения MFT напрямую:
python scripts/sync_mft_lolrmm.py
python scripts/normalize_mft_metadata.py
python scripts/assign_mft_metadata.py --check
python scripts/validate_mft.py
python scripts/validate_mft_whitelist.py
python scripts/build_mft_replay_coverage.py
python scripts/replay_mft.py --check
python scripts/benchmark_mft_replay.py --iterations 3
При добавлении правила MFT оставьте сгенерированные поля метаданных пустыми и выполните:
python scripts/assign_mft_metadata.py
Это назначает неизменяемый RuleID DR-MFT-<CATEGORY>-NNN и базовую категорию, уровень доверия, источник и метаданные ATT&CK. Существующие RuleID сохраняются.
sync_mft_lolrmm.py регенерирует правила MFT на основе LOLRMM из csv/lolrmm.csv, сохраняя идентификаторы через csv/MFT_RMM_IDs.csv и применяя csv/MFT_RMM_Overrides.csv. Источники, которые по своей природе непригодны для обнаружения MFT только по именам файлов, задокументированы в csv/MFT_RMM_Exclusions.csv. Затем normalize_mft_metadata.py применяет проверенную политику уровня доверия, критичности, области применения и ATT&CK. Сгенерированные индикаторы DLL сохраняются только в том случае, если их базовое имя содержит специфичный для продукта токен имени LOLRMM; отфильтрованные DLL и явные исключения записываются в csv/MFT_RMM_Coverage.csv. Известные неоднозначные базовые имена исполняемых файлов также отфильтровываются при генерации только по именам файлов. Подобранные переопределения разделения сохраняют общие имена файлов только в пределах стабильных вышестоящих путей продуктов.
build_mft_replay_coverage.py создаёт детерминированный синтетический позитивный сценарий для каждого правила MFT и записывает пересекающиеся совпадения правил в csv/MFT_Replay_Coverage.csv. replay_mft.py --check оценивает очищенные позитивные и негативные фикстуры из tests/fixtures/. Он также может сравнивать файл правил-кандидатов с базовым с помощью --baseline-rules и записывать подробный вывод совпадений, сравнений и сводок в явно выбранные пути.
csv/MFT_Whitelist.csv содержит встроенные политики подавления с учётом путей. Политики требуют точного RuleID и артефакта, а также соответствующих регулярных выражений для имени файла и пути. SuppressWhitelisted включён по умолчанию в MFT и Amcache; отключите его, чтобы проверить подавленные строки и их метаданные WhitelistID. Локальные или специфичные для заказчика одобрения RMM остаются параметрами времени выполнения и не фиксируются в репозитории.
benchmark_mft_replay.py объединяет очищенные фикстуры с одним сгенерированным позитивным сценарием на правило. Он сообщает о необработанных, сохранённых и подавленных совпадениях; уникальных файлах и строках путей; расширении множественных совпадений; расчётном количестве оценок правил и времени выполнения. Дополнительные CSV-входные данные в формате повторного воспроизведения можно указать с помощью --input. Бенчмарк JSON записывается только при явном указании --output.
Перегенерируйте затронутые артефакты из scripts/:
cd scripts
python evtx.py
python psreadline.py
python iseautosave.py
python mft.py
python amcache.py
Проверьте сгенерированные артефакты с помощью Velociraptor:
./velociraptor artifacts verify \
vql/Evtx.yaml \
vql/PSReadline.yaml \
vql/ISEAutoSave.yaml \
vql/MFT.yaml
docs/eventlogs-detection-review.mddocs/mft-detection-uplift.md