Apa ModSecurity dan mengapa saya membutuhkannya?
ModSecurity bekerja sebagai lapisan pertahanan antara Server Web dan aplikasi dan bekerja pada
serangkaian aturan yang mendefinisikan bagaimana harus bereaksi terhadap jenis permintaan tertentu dan perilaku. Dengan tingkat serangan yang semakin meningkat ditujukan untuk aplikasi web, ModSecurity membantu menambahkan keamanan eksternal lapisan yang meningkatkan keamanan, mendeteksi, dan mencegah serangan sebelum mereka mencapai aplikasi web.

Instalasi ModSecurity
Panduan ini tidak akan masuk ke rincian untuk menginstal ModSecurity karena ada banyak panduan yang sangat baik sudah ada. Jika Anda belum berjalan ModSecurity dan ingin tahu lebih banyak, kita
menyarankan Anda untuk mengunjungi:
http://modsecurity.org/documentation/index.html
http://atomicplayboy.net/blog/2005/01/30/an-introduction-to-mod-security/

Konfigurasi Umum
Pengaturan konfigurasi berikut ini disertakan sebagai bagian dari proses instalasi standar, jadi pastikan bahwa Anda melkukan mirip dengan yang di bawah ini.
SecFilterEngine On
SecServerSignature “Go Away”
SecFilterCheckURLEncoding On
SecFilterCheckUnicodeEncoding Off
SecFilterForceByteRange 1 255
SecAuditEngine RelevantOnly
SecAuditLog /var/log/httpd/modsec_log
SecFilterScanPOST On
SecFilterDefaultAction “deny,log,status:500”
Aplikasi Tambahan Aturan Keamanan Web
Meskipun tidak secara langsung berhubungan dengan WordPress, aturan berikut mencegah serangan dan berbahaya yang dikenal
Aktivitas dan karenanya meningkatkan keamanan secara keseluruhan ke blog Anda.
# Do not accept GET or HEAD requests with bodies
SecFilterSelective REQUEST_METHOD “^(GET|HEAD)$” chain
SecFilterSelective HTTP_Content-Length “!^$”
# Require Content-Length to be provided with
# every POST request
SecFilterSelective REQUEST_METHOD “^POST$” chain
SecFilterSelective HTTP_Content-Length “^$”
# Generic SQL Injection Prevention
SecFilter “delete[[:space:]]+from”
SecFilter “insert[[:space:]]+into”
SecFilter “select.+from”
SecFilterSelective ARGS “(or.+1[[:space:]]*=[[:space:]]1|(or 1=1|’.+)–‘)”
“id:300014,rev:1,severity:2,msg:’Generic SQL injection protection'”
SecFilterSelective ARGS
“((alter|create|drop)[[:space:]]+(column|database|procedure|table)|delete[[:space:]]+from|update.
+set.+=)” “id:300015,rev:1,severity:2,msg:’Generic SQL injection protection'”
# PHP
#Protecting from XSS attacks through the PHP session cookie
SecFilterSelective ARG_PHPSESSID “!^[0-9a-z]*$”
SecFilterSelective COOKIE_PHPSESSID “!^[0-9a-z]*$”
SecFilterSelective REQUEST_URI
“(&(cmd|command)=(id|uname)\x20|cmd\?(cmd|command)=|(spy|cmd|cmd_out|sh)\.(gif|jpg|pn
g|bmp|txt)\?&(cmd|command)=|\.php\?&(cmd|command)=)”
#Generic PHP exploit signatures
SecFilterSelective POST_PAYLOAD|REQUEST_URI “<\?php
(chr|fwrite|fopen|system|echr|passthru|popen|proc_open|shell_exec|exec|proc_nice|proc_termin
ate|proc_get_status|proc_close|pfsockopen|leak|apache_child_terminate|posix_kill|posix_mkfifo|
posix_setpgid|posix_setsid|posix_setuid|phpinfo)\(.*\)\;" id:330002,rev:1,severity:2,msg:'Generic
PHP exploit pattern denied'"
#Generic PHP remote file injection
SecFilterSelective REQUEST_URI "!(/do_command)" chain
SecFilterSelective REQUEST_URI "\.php\?.*=(https?|ftp)\:/.*(cmd|command)="
#General [url] php forum protections (phpbb and others, to protect against script injection attacks in
url links)
SecFilterSelective THE_REQUEST "\.php\?" chain
SecFilter "\[url=(script|javascript|applet|about|chrome|activex)\:/.*\].*\[/url\]"
#Generic PHP exploit signatures
SecFilterSelective THE_REQUEST
"(chr|fwrite|fopen|system|e?chr|passthru|popen|proc_open|shell_exec|exec|proc_nice|proc_ter
minate|proc_get_status|proc_close|pfsockopen|leak|apache_child_terminate|posix_kill|posix_mkfi
fo|posix_setpgid|posix_setsid|posix_setuid|phpinfo)\(.*\)\;"
"id:330001,rev:1,severity:2,msg:'Generic PHP exploit pattern denied'"