mod_security

Kdo používá apache a nepoužívá mod_security, nebo něco podobného, koleduje si o problémy. Jedná se o velice zajímavé rozšíření funkcionality systému o schopnost nejenom ukládat trochu detailnější logy, ale zároveň i provádět jejich analýzu a následně i určité aktivity na obranu před roboty. Domovská stránka projektu je na adrese Mod Security. Postup instalace je zde ukázán pro Apache v2.20

portinstall mod_security
cd /usr/local/etc/apache22
mkdir Includes/modsecurity2


Následně je nutné zkontrolovat konfigurační soubor Apache, pro příklad v souboru /usr/local/etc/apache22-httpd.conf a upravit podle verze mod_sec jeho konfiguraci:
LoadModule security_module libexec/apache22/mod_security.so
nebo
LoadModule security2_module libexec/apache22/mod_security2.so
které určuji zda se bude mod_sec načítat a jako poslední je potřeba upravit základní konfiguraci. Tu je možné upravit za Include sekcí, nebo v souboru /usr/local/etc/apache22/Includes/mod_security2/mod_security_crs_10_config.conf Veškerá nastavení zde jsou uvedená pro zmíněný mod_security2:
SecResponseBodyLimit 4194304
SecAuditEngine On
SecAuditEngine RelevantOnly
SecAuditLog /var/log/apache/modsec2_audit.log
SecAuditLogParts ABCFHZ
SecAuditLogType Serial
SecAuditLogStorageDir /var/logs/apache
SecDebugLog /var/log/apache/modsec2_debug.log
SecDebugLogLevel 0
SecGeoLookupDb /usr/local/share/GeoIP/GeoIP.dat


Více na stránce s dokumentací projektu.

Po nastavení mod_security je nutné provést konfiguraci pravidel. Ty je možné načíst po registraci na stránkách Breach Labs a to včetně konzole pro analýzu logů. Po stažení je nutné pravidla rozbalit do adresáře /usr/local/etc/apache22/modsecurity2 a upravit případně potřebné změny.

Na závěr jedna rada. Nejedná se o samospasitelné řešení, ale umožňuje in-line obranu proti útokům testujícím zranitelnost pomocí nevhodně formulovaných dotazů, brute-force testování hesel a dalším potenciálním slabinám systému. Například filtrování audit logu pomocí:
cat /var/log/apache/modsec2_audit.log | grep GET | grep http:// | awk '{ print $2 }'
vypíše všechny IP adresy, které se pokoušely vložit do vstupů nebo URL adresy jiných lokalit, což nepatří mezi úplně standardní činnosti klientů ... Tyto vstupy lze řešit pomocí pravidel a předávat tak například IP adresy paketovým filtrům.
Mimo stránkek projektu lze v češtině sehnat ještě docela slušné porovnání na adrese weblog.finwe.info

Vzhledem k značně intenzivnímu logování veškerých zaznamenaných událostí buď doporučuji audit a debug logy rotovat podle velikosti, snížit senzitivitu případně tyto logy vypnout nebo řešit jejich analýzu například programem OSSEC a průběžně odmazávat. Není problém, aby množství informací na systému s pár desítkami přístupů za vteřinu dosáhlo za den řádu gigabajtů.

Powered by Drupal - Design by artinet