Aturan Deteksi adalah rumah bagi aturan yang digunakan oleh Elastic Security. Repositori ini digunakan untuk pengembangan, pemeliharaan, pengujian, validasi, dan pelepasan aturan untuk Mesin Deteksi Keamanan Elastis.
Repositori ini pertama kali diumumkan pada postingan blog Elastic, Elastic Security membuka repo aturan deteksi publik. Untuk konten tambahan, lihat webinar yang menyertainya, Keamanan Elastis: Memperkenalkan repositori publik untuk aturan deteksi.
Aturan Deteksi
Daftar isi
Ikhtisar repositori ini
Memulai
Bagaimana cara berkontribusi
Perizinan
Pertanyaan? Masalah? Saran?
Aturan Deteksi berisi lebih dari sekadar file aturan statis. Repositori ini juga berisi kode untuk pengujian unit dengan Python dan diintegrasikan dengan Mesin Deteksi di Kibana.
map | keterangan |
---|---|
detection_rules/ | Modul Python untuk penguraian aturan, validasi, dan pengemasan |
etc/ | File lain-lain, seperti skema ECS dan Beats |
hunting/ | Direktori root tempat paket dan kueri perburuan ancaman disimpan |
kibana/ | Pustaka Python untuk menangani panggilan API ke Kibana dan Mesin Deteksi |
kql/ | Pustaka Python untuk parsing dan validasi Bahasa Kueri Kibana |
rta/ | Kode Otomatisasi Tim Merah digunakan untuk meniru teknik penyerang, digunakan untuk pengujian aturan |
rules/ | Direktori root tempat aturan disimpan |
rules_building_block/ | Direktori root tempat aturan blok penyusun disimpan |
tests/ | Kode Python untuk aturan pengujian unit |
Meskipun aturan dapat ditambahkan dengan membuat file .toml
secara manual, kami tidak menyarankannya. Repositori ini juga terdiri dari modul python yang membantu pembuatan aturan dan pengujian unit. Dengan asumsi Anda memiliki Python 3.12+, jalankan perintah di bawah ini untuk menginstal dependensi menggunakan makefile:
✗ makepython3.12 -m pip install --upgrade pip setuptoolsMencari indeks: https://pypi.org/simplePersyaratan sudah terpenuhi: pip di /opt/homebrew/lib/python3.12/site-packages (24.0)Persyaratan sudah terpenuhi : setuptools di /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 setuptoolsMencari indeks: https://pypi.org/ simpleRequirement sudah terpenuhi: pip di ./env/detection-rules-build/lib/python3.12/site-packages (24.0)Mengumpulkan alat setup Menggunakan setuptools yang di-cache-69.1.1-py3-none-any.whl.metadata (6.2 kB)Menggunakan setuptools yang di-cache-69.1.1-py3-none-any.whl (819 kB)Menginstal paket yang dikumpulkan: setuptoolsBerhasil setuptools yang diinstal-69.1.1Menginstal paket kql dan kibana......
Atau instal dependensi menggunakan perintah berikut:
$ pip3 install ".[dev]"Mengumpulkan jsl==0.2.4 Mengunduh jsl-0.2.4.tar.gz (21 kB)Mengumpulkan jsonschema==3.2.0 Mengunduh jsonschema-3.2.0-py2.py3-none- any.whl (56 kB) |████████████████████████████████| 56 kB 318 kB/sMengumpulkan permintaan==2.22.0 Mengunduh permintaan-2.22.0-py2.py3-none-any.whl (57 kB) |████████████████████████████████| 57 kB 1,2 MB/sMengumpulkan Klik==7,0 Mengunduh Click-7.0-py2.py3-none-any.whl (81 kB) |████████████████████████████████| 81 kB 2,6 MB/dtk...
Catatan: Paket kibana
dan kql
tidak tersedia di PyPI dan harus diinstal dari direktori lib
. Paket hunting
memiliki dependensi opsional untuk diinstal dengan pip3 install ".[hunting]
.
# Instal dari repositoripip3 instal git+https://github.com/elastic/detection-rules.git#subdirectory=kibanapip3 instal git+https://github.com/elastic/detection-rules.git#subdirectory=kql# Atau secara lokal untuk developmentpip3 instal lib/kibana lib/kql
Ingat, pastikan untuk mengaktifkan lingkungan virtual Anda jika Anda menggunakannya. Jika diinstal melalui make
, lingkungan virtual terkait dibuat di env/detection-rules-build/
. Jika Anda mengalami masalah dalam menggunakan lingkungan Python 3.12, silakan lihat bagian yang relevan di panduan pemecahan masalah kami.
Untuk mengonfirmasi bahwa semuanya telah terinstal dengan benar, jalankan dengan tanda --help
$ python -m deteksi_rules --helpUsage: deteksi_rules [PILIHAN] PERINTAH [ARGS]... Perintah untuk repositori aturan deteksi. Opsi: -d, --debug / -n, --no-debug Cetak stacktrace pengecualian penuh pada kesalahan -h, --help Tampilkan pesan ini dan keluar. Perintah: create-rule Buat aturan deteksi. dev Perintah untuk pengembangan dan pengelolaan oleh internal... es Perintah untuk berintegrasi dengan Elasticsearch. import-rules Impor aturan dari json, toml, atau Kibana aturan ekspor... kibana Perintah untuk berintegrasi dengan Kibana. pembaruan massal Perbarui beberapa aturan berdasarkan hasil eql. normalize-data Menormalkan stempel waktu dan pengurutan data Elasticsearch. pencarian aturan Gunakan KQL atau EQL untuk menemukan aturan yang cocok. test Jalankan pengujian unit pada semua aturan. toml-lint Bersihkan file dengan beberapa format toml sederhana. validasi-semua Periksa apakah semua aturan divalidasi terhadap suatu skema. validasi-rule Periksa apakah aturan yang dipentaskan dalam direktori aturan divalidasi terhadap... view-rule Melihat aturan internal atau file aturan tertentu.
Catatan:
Jika Anda menggunakan lingkungan virtual, pastikan untuk mengaktifkannya sebelum menjalankan perintah di atas.
Jika menggunakan Windows, Anda mungkin juga harus menjalankan <venv_directory>Scriptspywin32_postinstall.py -install
tergantung pada versi python Anda.
Panduan kontribusi menjelaskan cara menggunakan perintah create-rule
dan test
untuk membuat dan menguji aturan baru saat berkontribusi pada Aturan Deteksi.
Untuk penggunaan antarmuka baris perintah (CLI) lebih lanjut, lihat panduan CLI.
Kami menyambut kontribusi Anda pada Aturan Deteksi! Sebelum berkontribusi, harap pahami repositori ini, struktur direktorinya, dan filosofi kami tentang pembuatan aturan. Saat Anda siap berkontribusi, baca panduan kontribusi untuk mempelajari cara kami mengubah ide deteksi menjadi aturan produksi dan memvalidasi dengan pengujian.
Segala sesuatu di repositori ini — aturan, kode, RTA, dll. — dilisensikan di bawah Elastic License v2. Aturan ini dirancang untuk digunakan dalam konteks Mesin Deteksi dalam aplikasi Keamanan Elastis. Jika Anda menggunakan layanan terkelola Elastic Cloud kami atau distribusi default perangkat lunak Elastic Stack yang menyertakan serangkaian fitur gratis lengkap, Anda akan mendapatkan aturan terbaru saat pertama kali menavigasi ke mesin pendeteksi.
Terkadang, kita mungkin ingin mengimpor aturan dari repositori lain yang sudah memiliki lisensi, seperti MIT atau Apache 2.0. Hal ini diperbolehkan, selama lisensi mengizinkan sublisensi berdasarkan Elastic License v2. Kami menyimpan pemberitahuan lisensi tersebut di NOTICE.txt
dan mensublisensikan sebagai Lisensi Elastis v2 dengan semua aturan lainnya. Kami juga mewajibkan kontributor untuk menandatangani Perjanjian Lisensi Kontributor sebelum menyumbangkan kode ke repositori Elastic mana pun.
Ingin tahu lebih banyak tentang Mesin Deteksi? Lihat ikhtisarnya di Kibana.
Repositori ini mencakup aturan baru dan yang diperbarui yang belum dirilis. Untuk melihat kumpulan aturan terbaru yang dirilis bersama tumpukan, lihat Referensi aturan bawaan.
Jika Anda ingin melaporkan kesalahan positif palsu atau jenis bug lainnya, buatlah masalah GitHub dan periksa terlebih dahulu apakah ada masalah yang sudah ada.
Butuh bantuan dengan Aturan Deteksi? Posting masalah atau tanyakan di Forum Diskusi Keamanan kami atau saluran #security-detection-rules di ruang kerja Slack.