偵測規則是 Elastic Security 使用的規則的所在地。此儲存庫用於 Elastic Security 檢測引擎的規則的開發、維護、測試、驗證和發布。
該儲存庫首次在 Elastic 的部落格文章 Elastic Security 開放公共偵測規則儲存庫中公佈。如需其他內容,請參閱隨附的網路研討會 Elastic Security:介紹檢測規則的公共儲存庫。
檢測規則
目錄
該存儲庫的概述
入門
如何貢獻
授權
問題?有問題嗎?建議?
檢測規則不僅包含靜態規則文件。該儲存庫還包含用於 Python 單元測試以及與 Kibana 中的檢測引擎整合的程式碼。
資料夾 | 描述 |
---|---|
detection_rules/ | 用於規則解析、驗證和打包的 Python 模組 |
etc/ | 其他文件,例如 ECS 和 Beats 架構 |
hunting/ | 儲存威脅搜尋包和查詢的根目錄 |
kibana/ | 用於處理對 Kibana 和檢測引擎的 API 呼叫的 Python 庫 |
kql/ | 用於解析和驗證 Kibana 查詢語言的 Python 函式庫 |
rta/ | 紅隊自動化程式碼用於模擬攻擊者技術,用於規則測試 |
rules/ | 儲存規則的根目錄 |
rules_building_block/ | 儲存建構塊規則的根目錄 |
tests/ | 單元測試規則的Python程式碼 |
儘管可以透過手動建立.toml
檔案來新增規則,但我們不建議這樣做。該儲存庫還包含一個有助於規則建立和單元測試的 python 模組。假設您有 Python 3.12+,請執行以下命令以使用 makefile 安裝依賴項:
✗ makepython3.12 -m pip install --upgrade pip setuptools查看索引:https://pypi.org/simple 要求已滿足:pip in /opt/homebrew/lib/python3.12/site-packages (24.0)要求已滿足: /opt/homebrew/lib/python3.12/site-packages 中的setuptools (69.1.1)python3.12 -m venv ./env/detection-rules-build./env/detection-rules-build/binles /pip install --upgrade pip setuptools查看索引:https://pypi.org/simple要求已滿足:pip in ./env/detection-rules-build/lib/python3.12/site-packages (24.0)收集setuptools使用快取的setuptools -69.1.1-py3-none-any.whl.metadata (6.2 kB)使用快取的setuptools-69.1.1-py3-none-any.whl (819 kB)安裝收集的套件:setuptools成功安裝setuptools-69.1.1安裝kql和kibana 套件......
或使用以下命令安裝相依性:
$ pip3 install ".[dev]"收集 jsl==0.2.4 下載 jsl-0.2.4.tar.gz (21 kB)收集 jsonschema==3.2.0 下載 jsonschema-3.2.0-py2.py3-none-任何.whl (56 kB) |███████████████████████████████| 56 kB 318 kB/s收集請求==2.22.0 下載請求-2.22.0-py2.py3-none-any.whl (57 kB) |████████████████ █ ███████████████| 57 kB 1.2 MB/s 收集點擊==7.0 下載Click-7.0-py2.py3-none-any.whl (81 kB) |██████████████████ █ ███████████| 81 kB 2.6 MB/秒...
注意: kibana
和kql
軟體包在 PyPI 上不可用,必須從lib
目錄安裝。 hunting
包具有可選的依賴項,可以使用pip3 install ".[hunting]
安裝。
# 從儲存庫安裝pip3 install git+https://github.com/elastic/detection-rules.git#subdirectory=kibanapip3 install git+https://github.com/elastic/detection-rules.git#subdirectory=kql #或在本地進行開發 pip3 安裝 lib/kibana lib/kql
請記住,如果您正在使用虛擬環境,請務必啟動虛擬環境。如果透過make
安裝,則會在env/detection-rules-build/
中建立關聯的虛擬環境。如果您在使用 Python 3.12 環境時遇到問題,請參閱我們的故障排除指南中的相關部分。
若要確認所有內容已正確安裝,請使用--help
標誌運行
$ python -m偵測規則--helpUsage:偵測規則[選項]指令[參數]...偵測規則儲存庫的指令。異常堆疊追蹤-h, --help 顯示此訊息並退出。 dev 用於內部開發和管理的命令... es 用於與 Elasticsearch 整合的命令。 import-rules 從 json、toml 或 Kibana 匯出的規則匯入規則... kibana 用於與 Kibana 整合的命令。 Mass-update 根據 eql 結果更新多個規則。 Normalize-data 規範化 Elasticsearch 資料時間戳記並排序。 規則搜尋 使用 KQL 或 EQL 尋找符合規則。 測試 對所有規則執行單元測試。 toml-lint 使用一些簡單的 toml 格式清理檔案。 validate-all 檢查所有規則是否都針對模式進行驗證。 validate-rule 檢查規則目錄中暫存的規則是否針對... view-rule 查看內部規則或指定的規則檔案。
筆記:
如果您使用的是虛擬環境,請確保在執行上述命令之前已啟動它。
如果使用 Windows,您可能還需要執行<venv_directory>Scriptspywin32_postinstall.py -install
具體取決於您的 python 版本。
貢獻指南描述了在貢獻檢測規則時如何使用create-rule
和test
命令建立和測試新規則。
有關更進階的命令列介面 (CLI) 使用方法,請參閱 CLI 指南。
我們歡迎您對檢測規則做出貢獻!在貢獻之前,請熟悉此儲存庫、其目錄結構以及我們對規則建立的理念。當您準備好做出貢獻時,請閱讀貢獻指南,以了解我們如何將檢測想法轉化為生產規則並通過測試進行驗證。
此儲存庫中的所有內容(規則、程式碼、RTA 等)均根據 Elastic License v2 授權。這些規則旨在在 Elastic Security 應用程式內的偵測引擎上下文中使用。如果您使用我們的 Elastic Cloud 託管服務或包含全套免費功能的 Elastic Stack 軟體的預設發行版,您將在首次導航至偵測引擎時獲得最新規則。
有時,我們可能會想要從另一個已經擁有授權的儲存庫(例如 MIT 或 Apache 2.0)匯入規則。只要許可證允許在彈性許可證 v2 下進行再許可,這是受歡迎的。我們將這些許可證聲明保留在NOTICE.txt
中,並將子許可證作為 Elastic License v2 與所有其他規則一起使用。我們還要求貢獻者在向任何 Elastic 儲存庫貢獻程式碼之前簽署貢獻者授權協議。
想了解更多有關檢測引擎的資訊嗎?查看 Kibana 中的概述。
該儲存庫包含尚未發布的新規則和更新規則。若要查看隨堆疊發布的最新規則集,請參閱預先建置規則參考。
如果您想報告誤報或其他類型的錯誤,請建立 GitHub 問題並先檢查是否有現有問題。
需要有關檢測規則的協助嗎?在我們的安全討論論壇或 Slack 工作區中的#security-detection-rules頻道中發布問題或提問。