กฎการตรวจจับคือบ้านของกฎที่ใช้โดย Elastic Security พื้นที่เก็บข้อมูลนี้ใช้สำหรับการพัฒนา การบำรุงรักษา การทดสอบ การตรวจสอบ และการเผยแพร่กฎสำหรับ Detection Engine ของ Elastic Security
พื้นที่เก็บข้อมูลนี้ได้รับการประกาศครั้งแรกในบล็อกโพสต์ของ Elastic โดย Elastic Security จะเปิด repo กฎการตรวจจับสาธารณะ สำหรับเนื้อหาเพิ่มเติม โปรดดูการสัมมนาผ่านเว็บที่แนบมาด้วย Elastic Security: การแนะนำพื้นที่เก็บข้อมูลสาธารณะสำหรับกฎการตรวจจับ
กฎการตรวจจับ
สารบัญ
ภาพรวมของที่เก็บนี้
เริ่มต้นใช้งาน
วิธีการมีส่วนร่วม
การออกใบอนุญาต
คำถาม? ปัญหา? ข้อเสนอแนะ?
กฎการตรวจจับมีมากกว่าไฟล์กฎแบบคงที่ พื้นที่เก็บข้อมูลนี้ยังมีโค้ดสำหรับการทดสอบหน่วยใน Python และบูรณาการกับ Detection Engine ใน Kibana
โฟลเดอร์ | คำอธิบาย |
---|---|
detection_rules/ | โมดูล Python สำหรับการแยกวิเคราะห์กฎ การตรวจสอบ และการบรรจุ |
etc/ | ไฟล์เบ็ดเตล็ด เช่น ECS และ Beats schema |
hunting/ | ไดเร็กทอรีรากที่จัดเก็บแพ็คเกจการค้นหาภัยคุกคามและการสืบค้น |
kibana/ | ไลบรารี Python สำหรับจัดการการเรียก API ไปยัง Kibana และ Detection Engine |
kql/ | ไลบรารี Python สำหรับการแยกวิเคราะห์และตรวจสอบภาษา Kibana Query |
rta/ | โค้ด Red Team Automation ใช้เพื่อจำลองเทคนิคของผู้โจมตี ใช้สำหรับการทดสอบกฎ |
rules/ | ไดเร็กทอรีรากที่เก็บกฎ |
rules_building_block/ | ไดเร็กทอรีรากที่เก็บกฎแบบเอกสารสำเร็จรูป |
tests/ | รหัส Python สำหรับกฎการทดสอบหน่วย |
แม้ว่ากฎจะสามารถเพิ่มได้ด้วยการสร้างไฟล์ .toml
ด้วยตนเอง แต่เราไม่แนะนำให้ทำเช่นนั้น พื้นที่เก็บข้อมูลนี้ยังประกอบด้วยโมดูลหลามที่ช่วยในการสร้างกฎและการทดสอบหน่วย สมมติว่าคุณมี Python 3.12+ ให้รันคำสั่งด้านล่างเพื่อติดตั้งการพึ่งพาโดยใช้ makefile:
✗ makepython3.12 -m pip install --upgrade pip setuptoolsLooking ในดัชนี: https://pypi.org/simpleRequirement พอใจแล้ว: pip ใน /opt/homebrew/lib/python3.12/site-packages (24.0) ตอบสนองความต้องการแล้ว : setuptools ใน /opt/homebrew/lib/python3.12/site-packages (69.1.1)python3.12 -m venv ./env/detection-rules-build./env/detection-rules-build/bin/pip install --upgrade pip setuptoolsLooking ในดัชนี: https://pypi.org/ simpleRequirement เป็นที่พอใจแล้ว: pip ใน ./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) การติดตั้งแพ็คเกจที่รวบรวม: setuptoolsSuccessfully ติดตั้ง setuptools-69.1.1 การติดตั้ง kql และ kibana แพ็คเกจ......
หรือติดตั้งการพึ่งพาโดยใช้คำสั่งต่อไปนี้:
$ pip3 ติดตั้ง ".[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 กิโลไบต์ 2.6 เมกะไบต์/วินาที...
หมายเหตุ: แพ็คเกจ kibana
และ kql
ไม่มีให้บริการบน PyPI และต้องติดตั้งจากไดเรกทอรี lib
แพ็คเกจ hunting
มีการพึ่งพาเพิ่มเติมที่จะติดตั้งด้วย pip3 install ".[hunting]
# ติดตั้งจาก repositorypip3 ติดตั้ง git+https://github.com/elastic/detection-rules.git#subdirectory=kibanapip3 ติดตั้ง git+https://github.com/elastic/detection-rules.git#subdirectory=kql# หรือภายในเครื่องสำหรับ developmentpip3 ติดตั้ง lib/kibana lib/kql
โปรดจำไว้ว่า อย่าลืมเปิดใช้งานสภาพแวดล้อมเสมือนของคุณหากคุณใช้งานอยู่ หากติดตั้งผ่าน make
สภาพแวดล้อมเสมือนที่เกี่ยวข้องจะถูกสร้างขึ้นใน env/detection-rules-build/
หากคุณประสบปัญหาในการใช้สภาพแวดล้อม Python 3.12 โปรดดูส่วนที่เกี่ยวข้องในคู่มือการแก้ไขปัญหาของเรา
เพื่อยืนยันว่าทุกอย่างได้รับการติดตั้งอย่างถูกต้อง ให้รันด้วยแฟล็ก --help
$ python -m DETECTION_rules --helpUsage: DETECTION_RULES [ตัวเลือก] คำสั่ง [ARGS]... คำสั่งสำหรับพื้นที่เก็บข้อมูลกฎการตรวจจับ ตัวเลือก: -d, --debug / -n, --no-debug พิมพ์สแต็กเทรซข้อยกเว้นแบบเต็มเมื่อมีข้อผิดพลาด -h, --help แสดงข้อความนี้และออกคำสั่ง: create-rule สร้างกฎการตรวจจับ คำสั่ง dev สำหรับการพัฒนาและการจัดการโดยภายใน... es คำสั่งสำหรับการทำงานร่วมกับ Elasticsearch กฎการนำเข้า กฎการนำเข้าจาก json, toml หรือกฎที่ส่งออกของ Kibana... คำสั่ง kibana สำหรับการผสานรวมกับ Kibana การอัปเดตจำนวนมาก อัปเดตกฎหลายข้อตามผลลัพธ์ eql ทำให้ข้อมูลเป็นมาตรฐาน ทำให้การประทับเวลาข้อมูล Elasticsearch และเรียงลำดับเป็นปกติ ค้นหากฎ ใช้ KQL หรือ EQL เพื่อค้นหากฎที่ตรงกัน ทดสอบ รันการทดสอบหน่วยเหนือกฎทั้งหมด ไฟล์การล้างข้อมูล toml-lint พร้อมการจัดรูปแบบ toml อย่างง่าย ตรวจสอบทั้งหมด ตรวจสอบว่ากฎทั้งหมดตรวจสอบกับสคีมาหรือไม่ ตรวจสอบกฎ ตรวจสอบว่ากฎที่อยู่ในกฎ dir ตรวจสอบกับ... กฎมุมมอง ดูกฎภายในหรือไฟล์กฎที่ระบุ
บันทึก:
หากคุณใช้สภาพแวดล้อมเสมือน ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานแล้วก่อนที่จะรันคำสั่งด้านบน
หากใช้ Windows คุณอาจต้องเรียกใช้ <venv_directory>Scriptspywin32_postinstall.py -install
ขึ้นอยู่กับเวอร์ชันของ python
คู่มือการสนับสนุนจะอธิบายวิธีใช้คำสั่ง create-rule
และ test
เพื่อสร้างและทดสอบกฎใหม่เมื่อสนับสนุนกฎการตรวจจับ
สำหรับการใช้งานอินเทอร์เฟซบรรทัดคำสั่ง (CLI) ขั้นสูงเพิ่มเติม โปรดดูคู่มือ CLI
เรายินดีที่คุณมีส่วนร่วมในกฎการตรวจจับ! ก่อนที่จะมีส่วนร่วม โปรดทำความคุ้นเคยกับพื้นที่เก็บข้อมูลนี้ โครงสร้างไดเรกทอรี และปรัชญาของเราเกี่ยวกับการสร้างกฎ เมื่อคุณพร้อมที่จะมีส่วนร่วม โปรดอ่านคู่มือการมีส่วนร่วมเพื่อเรียนรู้วิธีที่เราเปลี่ยนแนวคิดการตรวจจับให้เป็นกฎการใช้งานจริง และตรวจสอบด้วยการทดสอบ
ทุกอย่างใน Repository นี้ — กฎ, โค้ด, RTA ฯลฯ — ได้รับอนุญาตภายใต้ Elastic License v2 กฎเหล่านี้ได้รับการออกแบบเพื่อใช้ในบริบทของกลไกการตรวจจับภายในแอปพลิเคชัน Elastic Security หากคุณกำลังใช้บริการที่ได้รับการจัดการ Elastic Cloud ของเรา หรือการแจกจ่ายซอฟต์แวร์ Elastic Stack ตามค่าเริ่มต้นที่มีคุณสมบัติฟรีครบชุด คุณจะได้รับกฎล่าสุดในครั้งแรกที่คุณนำทางไปยังกลไกการตรวจจับ
ในบางครั้ง เราอาจต้องการนำเข้ากฎจากพื้นที่เก็บข้อมูลอื่นที่มีใบอนุญาตอยู่แล้ว เช่น MIT หรือ Apache 2.0 ยินดีเป็นอย่างยิ่ง ตราบใดที่ใบอนุญาตอนุญาตให้ใช้สิทธิ์ช่วงภายใต้ Elastic License v2 เราเก็บประกาศใบอนุญาตเหล่านั้นไว้ใน NOTICE.txt
และใบอนุญาตย่อยเป็น Elastic License v2 ร่วมกับกฎอื่นๆ ทั้งหมด นอกจากนี้ เรายังกำหนดให้ผู้มีส่วนร่วมลงนามในข้อตกลงสิทธิ์การใช้งานผู้ร่วมให้ข้อมูลก่อนที่จะบริจาคโค้ดให้กับพื้นที่เก็บข้อมูล Elastic ใดๆ
ต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือตรวจจับหรือไม่ ตรวจสอบภาพรวมใน Kibana
พื้นที่เก็บข้อมูลนี้มีกฎใหม่และกฎที่อัปเดตซึ่งยังไม่ได้เผยแพร่ หากต้องการดูชุดกฎล่าสุดที่เผยแพร่พร้อมกับสแต็ก โปรดดูการอ้างอิงกฎที่สร้างไว้ล่วงหน้า
หากคุณต้องการรายงานผลบวกลวงหรือข้อบกพร่องประเภทอื่น โปรดสร้างปัญหา GitHub และตรวจสอบว่ามีปัญหาที่มีอยู่ก่อนหรือไม่
ต้องการความช่วยเหลือด้านกฎการตรวจจับหรือไม่? โพสต์ปัญหาหรือสอบถามในฟอรัมพูดคุยเรื่องความปลอดภัยของเรา หรือช่องทาง #security-detection-rules ภายในพื้นที่ทำงาน Slack