Kata SUHU

9 July 2024 - Kategori: Knowledge - Oleh: SUHU

Mengenal ModSecurity: Core Rule Set dan Custom Rules

Mengenal ModSecurity: Core Rule Set dan Custom Rules

ModSecurity adalah firewall aplikasi web (WAF) yang open-source yang digunakan untuk melindungi aplikasi web dari berbagai serangan. ModSecurity bekerja dengan menganalisis lalu lintas HTTP yang masuk dan keluar dari web server, dan memblokir permintaan yang mencurigakan. ModSecurity dapat digunakan dengan berbagai aturan, termasuk Core Rule Sets dan Custom Rules.

Core Rule Set (CRS)

Core Rule Set (CRS) merupakan kumpulan aturan generik untuk deteksi serangan yang bisa digunakan dengan ModSecurity atau web application firewall yang kompatibel. CRS bertujuan untuk melindungi aplikasi web dari berbagai serangan, termasuk OWASP Top Ten, dengan seminimal mungkin kesalahan positif. Berbagai jenis serangan umum, termasuk:

- SQL Injection (SQLi)
- Cross-Site Scripting (XSS)
- Local File Inclusion (LFI)
- Remote File Inclusion (RFI)
- Remote Code Execution (RCE)
- HTTP Protocol Violation
- HTTPoxy
- Session Fixation
- Scanners Detection

CRS dimaintain oleh komunitas OWASP (Open Web Application Security Project) dan CRS diperbarui secara berkala dengan aturan baru untuk mengatasi ancaman terbaru.

Beberapa poin penting tentang CRS:

Struktur
Setiap aturan dalam CRS memiliki struktur yang terdefinisi dengan baik. Sebuah aturan terdiri dari beberapa bagian penting, termasuk:

- Rule ID: Identifier unik yang mengidentifikasi aturan secara spesifik.
- Action: Tindakan yang diambil jika aturan dipicu (contoh: block, deny, atau allow).
- Variables: Variabel atau conteks dari permintaan HTTP yang diawasi.
- Operator: Fungsi atau operasi yang digunakan untuk membandingkan variabel dengan pola yang didefinisikan.
- Patterns: Pola atau string yang dicocokkan dengan permintaan HTTP.
- Severity: Tingkat keparahan aturan jika dipicu.

Penggunaan
CRS dapat diunduh dan diintegrasikan langsung dengan ModSecurity. Administrator dapat mengkonfigurasi CRS untuk memblokir atau memodifikasi permintaan HTTP yang mencurigakan sesuai dengan kebutuhan.

Update
CRS secara teratur diperbarui untuk memasukkan aturan baru dan perbaikan keamanan, sehingga penting untuk selalu memperbarui versi CRS yang digunakan.

Custom Rules

Custom Rules merupakan aturan ModSecurity yang dibuat khusus untuk melindungi aplikasi web dari serangan tertentu. Custom Rules dapat digunakan untuk melindungi aplikasi web Anda dari ancaman spesifik yang tidak tercakup dalam CRS. Bisa juga untuk memberikan perlindungan tambahan terhadap serangan yang sudah tercakup dalam CRS.

Secara umum, disarankan untuk membatasi perubahan pada file Core Rule Set seminimal mungkin. Kenapa? Karena semakin banyak aturan bawaan yang Anda ubah sendiri, maka semakin kecil kemungkinan Anda ingin melakukan upgrade ke versi terbaru karena Anda harus membuat ulang dan menyesuaikan Custom Rules Anda.

Beberapa aspek penting tentang Custom Rules:

Rule IDs 
Setiap rules ModSecurity memiliki ID unik yang digunakan untuk merujuknya dalam konfigurasi. ID aturan terdiri dari dua bagian:

- ModSecurity Version: Versi ModSecurity yang kompatibel dengan aturan.
- Number Rules: Nomor unik yang mengidentifikasi aturan dalam versi ModSecurity tertentu.

Contoh ID rules:

ModSecurity: 3.002 OWASP: 002

Rules Syntax
Rules Syntax ModSecurity terdiri dari beberapa komponen utama seperti:

SecRule VARIABLES OPERATOR "PATTERNS" [ACTIONS]

- VARIABLES: Variabel atau konteks dari permintaan HTTP yang diawasi (misalnya: REQUEST_URI, ARGS).
- OPERATOR: Operasi logika atau perbandingan yang digunakan (misalnya: @rx untuk regex, @contains untuk pencocokan substring).
- PATTERNS: Pola atau string yang dicocokkan dengan variabel.
- ACTIONS: Tindakan yang diambil jika aturan dipicu (opsional).

Implementasi
Custom rules dapat diimplementasikan dalam file konfigurasi ModSecurity atau melalui antarmuka administrasi seperti cPanel.

Contoh Rules 

Berikut adalah contoh sederhana Rules ModSecurity yang mendeteksi dan memblokir permintaan yang berisi skrip berbahaya:

SecRule REQUEST_METHOD "^POST|PUT$" \

    "id:10001,\

    phase:2,\

    deny,\

    msg:'Blocked script attack (Rule ID: 10001)',\

    chain"

SecRule REQUEST_BODY "@rx <script[[:space:]]*>" \

    "t:none,\

    t:urlDecodeUni,\

    setvar:tx.alert_msg=%{rule.msg},\

    setvar:tx.anomaly_score=+%{tx.critical_anomaly_score},\

    setvar:tx.%{rule.id}-WEB_ATTACK/SCRIPT_DETECT-%{matched_var_name}=%{matched_var}"

 

SecRule REQUEST_BODY "@rx <script" \

    "t:none,\

    t:urlDecodeUni,\

    setvar:tx.alert_msg=%{rule.msg},\

    setvar:tx.anomaly_score=+%{tx.critical_anomaly_score},\

    setvar:tx.%{rule.id}-WEB_ATTACK/SCRIPT_DETECT-%{matched_var_name}=%{matched_var}"

Aturan ini akan memblokir semua permintaan POST dan PUT yang berisi tag <script>. Pesan Blocked script attack (Rule ID: 10001) akan dicatat di log ModSecurity.

Dengan memahami ModSecurity core rule set, custom rules, dan menggunakan rule IDs serta rule syntax dengan tepat, Anda dapat meningkatkan keamanan aplikasi web Anda secara signifikan. Pastikan untuk selalu memantau dan memperbarui rules tersebut sesuai dengan security developments terbaru.

Seperti itu penjelasan tentang Core Rule Set dan Custom Rules ModSecurity. Apabila Anda berminat untuk belajar dan meningkatkan kemampuan serta pemahaman dalam ModSecurity dan IT Security, silakan mengikuti pelatihannya bersama SUHU disini :

- Webinar ModSecurity, WAF OpenSource untuk Keamanan Website Publik
- Pelatihan Web Security with OWASP Framework
- Pelatihan Network Security
- Pelatihan Linux Network & Security

Silakan konsultasikan kebutuhan Anda bersama kami dengan klik link berikut: https://bit.ly/kontaksuhu

BAGIKAN ARTIKEL INI

Kata SUHU Terkait

Hubungi kami