PHPIDS: PHP-Intrusion Detection System.

Muchos conocerán los Intrusion Detection System (IDS) o Sistema de Detección de Intrusos, pero a lo que mas relacionan estas palabras son a: Snort, Snoop o AIDE (entre otros..). Según Wikipedia en español, un IDS es lo siguiente:
Es un programa usado para detectar accesos desautorizados a un computador o a una red.
Pero creo, y estoy mas que seguro, que engloba muchos mas aspectos que los dichos en una simple oración. Algunos de estos aspectos son: la detección de ataques y logueo con información de lo que se trataba el ataque, algunos implementan contramedidas a los ataques, notificación de el ataque, etc. Pero ninguno esta orientado a una aplicación que todos usamos, que es una aplicación a nivel web, que se trata de PHP . Pero ahora surge un “modulo”, por así decirlo, que actúa de la misma manera que los mencionados anteriormente, pero con la diferencia de ser a nivel de aplicación web, ya que con un simple código se integra a cualquier tipo de aplicación web que estemos desarrollando o que sea de desarrollo exterior, como foros, CMSs, etc.
Las principales acciones de PHPIDS son sanar inputs que no son validos (ej: XSS y SQL Injection) o filtrarlos, tomar contramedidas o contraataques para los atacantes, recolección de datos en logs de archivos planos o en bases de datos, y (sabiendo PHP) lo que se te ocurra. PHPIDS se basa en una serie de filtros que actúan de diferentes formas analizando el ataque y comparándolo con una tabla de impactos.
Por ejemplo, este es uno de los filtros que se puede encontrar en sla.ckers.org ( que se va corrigiendo gracias a RSnake):
([”|’][\s]*\>)|([”|’][\s]*\<)|(\+A[\w]{2}-)|(&#[\w]+)|(\\[\w]{3})|((”|’)[\s]*(\)|\}))|((\(|\{)[\s]*(”|’))|(%[\w]{2})|(\.\.\/\.\.)|(=\/\/)|(¼\/)|(@import|;base64|alert\()|(>[\w]=\/)|((\?\<)|(\)\>))|([\w]+[\s]*=[\s]*(”|’))
Una buena forma de probar la aplicación en cuestion es visitar el “demo” de PHPIDS, cosa que también nos mostrara los filtros y la puntuación que recibe cada impacto a medida que vamos tratando inyectar HTML o querys SQL. Voy a compartir una entrada al log, de alguna persona que trato de encontrar un XSS en el buscador (suerte!):
URL: http://radiorebelde.99k.org/?s=ascriptalert%28document.cookie%29%2Fscript
Tag: HTTP_REFERER
Pagina: /index.php…
IP: 190.188.4.173
Impacto: 0
Fecha: 2008-03-09 03:53:39
Pero tengamos algo en cuenta: Esto es una protección que suma a la protección ya implementada en toda la web, no es la respuesta a todos nuestros problemas, ya que son FILTROS los que detectan los ataques para toman una acción concreta y en la historia del hacking saltear filtros ha sido y es muy importante. Esto lo puedo comprobar mediante lo dicho por RSnake en el foro de sla.ckers.org. Pero esta es una “tecnología” nueva para todos y que va a seguir creciendo por ser altamente configurable y adaptable a las necesidades del usuario final.
