Язык eXtraction and Processing (XP) используется для создания детектирующих правил на основе анализа событий c конечных точек, подобно Sigma-правилам. На языке XP вы можете разрабатывать правила нормализации, агрегации событий, их корреляции и обогащения.
Быстро ознакомиться с процессом создания правил можно тут.
Настоящее расширение разработано Dmitry Fedosov и контрибьютерами, оно позволяет разрабатывать и тестировать правила в VSCode и VSCodium, а также публиковать их в необходимый для вашего продукта формат.
Руководство по работе с расширением (частично устарела, идёт процесс актуализации): https://vscode-xp.readthedocs.io/
Возможности расширения:
- Просмотр и редактирование правил нормализации, агрегации, корреляции, обогащения и табличных списков.
- Создание из шаблонов правил корреляции, обогащения и нормализации.
- Просмотр, редактирование, создание интеграционных и модульных тестов для правил корреляции, обогащения и нормализации.
- Запуск интеграционных и модульных тестов для правил корреляции, обогащения и нормализации.
- Автоматическое дополнение ключевых слов, функций, типовых конструкций языка XP и полей таксономии.
- Статическая валидация исходного кода на типичные ошибки.
- Заполнение метаданных правил.
- Создание и редактирование правил локализации правил.
- Сбор графов правил, схемы и БД табличных списков.
- Проверка срабатываний всего графа корреляций на необработанные события.
- Распаковка и упаковка пакетов экспертизы в файлы формата KB.
Примечание. Для части этих операций расширение использует дополнительные утилиты, которые доступны в отдельном репозитории.
Вы можете легко получить готовое окружение для разработки на XP, если воспользуетесь проектом VSCode XP Workspace. В нём всё собрано в единый Docker-контейнер, а редактирование происходит через веб-версию VSCode. Подробности в репозитории проекта.
Для написания правил корреляции, в общем случае, Вам потребуются формулы нормализации событий. В нашем открытом репозитории с экспертизой вы сможете найти базовые формулы нормализации. В будущем там появятся другие виды правил на языке XP, созданные сообществом.
Разработкой расширения занимается сообщество Security Experts Community. Вы можете принять участие в проекте и внести в него свою экспертизу. Актуальный список задач проекта публикуется в списке задач. В удобном виде со списком задач можно ознакомиться в проекте репозитория.
Чтобы скомпилировать расширение:
git clone https://github.com/Security-Experts-Community/vscode-xp
- В корне проекта выполните команду
npm install
.
Основной на GitHub: https://github.com/Security-Experts-Community/vscode-xp
Зеркало на Codeberg: https://codeberg.org/Security-Experts-Community/vscode-xp
Зеркало на GitFlic: https://gitflic.ru/project/security-experts-community/vscode-xp
Чтобы вести разработку, нужно собрать клиент, сервер, ui тулкит для старых вью и новые вью со встраиванием реакта, используйте командуnpm run compile:all
.
При добавлении новых реакт приложений нужно обновить содержание скрипта react:build:all
сборкой таких реакт приложений.
Перед сборкой установочного пакета расширения (*.vsix-файл) вам нужно в корне проекта выполнить команду npm install -g vsce
.
Чтобы собрать установочный пакет расширения, выполните команду vsce package -o vscode-xp.vsix
или запустите скрипт publish.py
в корне проекта.
Неактуально, так как новые вью разрабатываются со встраиванием React. Удалить этот пункт, когда перепишем все вью на React.
-
В провайдер webview добавляем
const webviewUri = this.getUri(this._view.webview, this._config.getExtensionUri(), ["client", "out", "ui.js"]);
-
Прокидываем webviewUri в plain:
"WebviewUri": webviewUri
-
В вебвью добавляем в раздел скриптов добавляем
<script type="module" src="{{WebviewUri}}"></script>
-
Добавляем в вебвью любой компонент из документации тулкита
Такое очень редко, но бывает. Поочередно прописываем npm run package
и npm run compile