Categoria:SpiderAssassin
De Blogx Populi - Wiki Català
SpiderAssassin és un projecte de creació d'un programa per a servidors que faci estadístiques d'ús per a determinar anomalies a l'accés i interacció amb pàgines web que permeti discernir l'ús no legítim del servidor web com spiders d'spam de comentaris o spiders de forats de seguretat. En un futur, pot arribar a determinar què és normal i què no en un lloc web determinat i enviar al tallafocs el que superi una determinada puntuació de no-normal. La base de dades del servei serà compartida entre tots els servidors que l'estiguin fent servir.
La implementació tècnica consta de 4 parts:
- Un core en perl
- Un frontend en PHP.
- L'ús de fail2ban per escriure a l'iptables
- L'ús de .htaccess a l'arrel de cada lloc web
La llicència és Affero GPL v.3.
L'estat del projecte és: inici del desenvolupament. Per a col·laborar envia un mail a al(arroba)blogmail.cc i a kenneth(arroba)gnun.net
Contingut |
[modifica] Introducció
En general, els IDS (intrusion detection systems) busquen patrons a les URL's / logs d'apache, i deneguen en funció d'aquests. (URL = '=http://' , 'SELECT '../../etc. Method Disabled = TRACE, TRACK, PUT, MKCOL ...).
Malauradament, aquests sistemes requereixen continua actualització manual, doncs cada dia hi ha nous patrons a cercar.
Els abans citats IDS, poden servir per a evitar entre un 85% i 90% (segons ells) dels atacs, però no foten quasi res de res contra Spam, que de fet és un percentatge important dels recursos i el temps de gestió/administració dels servidors web, encara que hi hagi un CAPTCHA, la càrrega (CPU, RAM, bbdd i disc) que provoca un continu accés a aquestes URLs, no ens la treu ningú.
El problema es que els IDS no detecten altres patrons si es té en consideració la variable temporal, ja que no són dissenyats per a això, però que són determinables fàcilment. És la tasca d'aquest projecte la de guardar a la base de dades aquests patrons i fer un estudi sobre ell.
[modifica] Patrons a treballar per SpiderAssassin
- Totes les peticions són POST: habitual en spiders que envien spam a fòrums i similars. Permet determinar patrons a la URL (mateix user-agent, mateix nombre de bytes, etc...). Redueix moltíssim la càrrega de la màquina.
- Es produeixen peticions des d'una determinada IP durant 24 hores seguides. Fàcil de detectar i també redueix la càrrega una pila.
- El percentatge de GET i POST és anòmalament rodó (en IP's amb més de 100 requests, és estrany veure ratios GET/POST quasi rodons 2:1 1:1 1:2 ...).
- Les aranyes no solen descarregar la multimèdia: ni CSS ni imatges, etc... Això pot confondre fàcilment amb els motors de cerca habituals, però amb una petita bbdd, es pot resoldre. A demés, els spiders fan coses rares com dir que són un firefox o un explorer, és fàcilment comprovable que és un robot mentint pel simple fet que un
firefox no deixarà de descarregar les imatges, encara que siguin a catxé, enviarà una petició HEAD.
- Els navegadors habituals quasi mai envien dades per POST en protocol HTTP/1.0
[modifica] Treball
[modifica] Enviar els logs a Base de dades
Així doncs, per a no inventar tota la roda, la idea és usar el "backend" del fail2ban, i enviar la informació analitzada sobre els atacants al syslog. Vía syslog, el fail2ban recull les dades i les gestiona (llista blanca de IP's i bloqueig/desbloqueig automàtic amb temps de bloqueig per regla, etc...).
Estat d'aquesta part: hi ha scripts que s'executen a maneta i fan tot aquest tripijoc i funcionen prou bé. El mòdul mod_log_sql d'apache desa els logs en la base de dades. Està disponible a Debian 5.
[modifica] Llegir Base de dades dades de logs via http
La "consola" PHP seria una mena de "super sistema d'estadístiques web", que permet veure individualitzadament o de forma creuada els diferents sites protegits, denegar / autoritzar una IP, saber la ruta d'instal·lació, etc.... molt útil per a provar d'identificar un atac desconegut. Amb unes hores més, fins i tot pot ajudar a crear les regular-expressions necessàries per a crear arxius .htaccess que protegeixin un lloc web específic.
Així, el sistema retorna feedback als admins, i els admins poden usar aquesta consola per a gestionar el sistema. El sistema pot funcionar sense una consola, o, al menys, a la mateixa màquina, doncs si el sistema es fa prou obert, pot ser usat per a identificar patrons d'atac/abús en altres protocols (ftp), irc,...
Comencem a treballar amb Skeith mod_log_sql Analyzer.
[modifica] Protecció de les màquines
Dues tècniques:
- fail2ban: bloqueig de IP's a nivell iptables. Pràctic per a bloquejar un atac ja patit.
- .htaccess a l'arrel de cada lloc web amb regles mantingudes automàticament pel nostre sistema, que protegirà les URL's atacades mitjançant patrons d'expressions regulars. Això té l'avantatge que el·limina futurs atacants, tot permetent un ús legítim i redueix molt la càrrega.
Aquesta categoria no té cap pàgina ni fitxer.