miércoles, 27 de julio de 2011

PHP-Intrusion Detection System

Saludos Mundo Libre.



PHPIDS (PHP-Intrusion Detection System) es un sistema sencillo de utilizar, bien estructurado, rápido y el estado de la técnica decapa de seguridad para su aplicación PHP basado en la web. ElIDS no tiras, desinfecta ni filtros de cualquier entrada malintencionada, sino que simplemente reconoce cuando un atacante trata de romper su sitio y reacciona exactamente de la manera que usted desea. Basado en un conjunto de metodologías aprobadas y probadas en gran medida las reglas de filtrado se da una calificación de cualquier ataque impacto numérico que hace que sea fácil decidir qué tipo de acción debe seguir el intento de hacking. Esto puede variar desde el registrosimple de enviar un correo electrónico de emergencia para el equipo de desarrollo, mostrando un mensaje de advertencia para el atacante, o incluso poner fin a la sesión del usuario.

PHPIDS le permite ver quién está atacando a su sitio y cómo, y  todo ello sin la tediosa la pesca de arrastre de archivos de registro o búsqueda de foros de hackers para su dominio. Por último, pero no menos importante es bajo la licencia LGPL!



Instalación / Integración


En primer lugar, los archivos PHPIDS (que llega al directorio "lib /IDS") se pueden cargar en el servidor. El directorio "IDS / tmp"requiere acceso de escritura si desea colocarlo en los archivos de registro o memoria caché. Luego que el archivo config.ini (IDS/ Config) un par de ajustes que desea ajustar. El archivo seexplica por sí mismo, pero sólo he ajustado los caminos, porqueno lo hice para mi prueba de almacenamiento en caché o acceder a una base de datos.


La integración de PHPIDS en un proyecto existente, por supuesto, depende en gran medida el proyecto en sí. En mi caso de prueba, todas las solicitudes serán desviados a través demod_rewrite index.php al archivo. Allí, entre otras instancias deseguridad de una clase que los diferentes métodos de validación de entrada va a contener. Uno de estos métodos(validate_request) se ejecuta en cada invocación del proyecto y por lo tanto el punto de partida ideal para PHPIDS.


Esto aquí es la parte correspondiente de la clase de seguridad:





// include-path auf den Ordner mit IDS setzen:
ini_set('include_path', '/path/to/libs');
// IDS einbinden:
require_once 'IDS/Init.php';
// Array mit möglichen User-Inputs bilden:
$request = array(
 'REQUEST' => $GLOBALS['_REQUEST'],
 'GET' => $GLOBALS['_GET'],
 'POST' => $GLOBALS['_POST'],
 'COOKIE' => $GLOBALS['_COOKIE']
);
// IDS initialisieren:
$init = IDS_Init::init('/path/to/libs/IDS/Config/Config.ini');
// Caching ausschalten:
$init->config['Caching']['caching'] = 'none';
// Request-Array analysieren:
$ids = new IDS_Monitor($request, $init);
$result = $ids->run();
// Impact abfragen und ggf. reagieren:
if($result->getImpact() > 1)
{
 die('Hacking attempt detected. IP logged.');
}
// include-path auf seinen ursprünglichen Wert zurücksetzten:
ini_restore('include_path');



¿Qué está pasando aquí es simple:

Se forma una matriz que contiene todas las variables pueden ser controladas por el usuario, tales como la entrada de un formularioo algo parecido. El contenido de esta serie está siendoinvestigado por los intentos de PHPIDS posible ataque. Los posibles ataques que por ejemplo, XSS o ataques de inyección SQL. Ataques detectados pueden ser evaluados por PHPIDS. Elmás "peligroso" o "amenaza" es un ataque, mayor será el impacto de valor. En el ejemplo anterior el guión terminado inmediatamente si el valor es mayor que 1.

rendimiento

Debido a que muchas expresiones regulares, etc PHPIDSciertamente no es de buen calidad, pero no es extremadamente lento. En mi prueba, sólo hubo un ataque ha obligado a laPHPIDS prácticamente de rodillas. (Más detalles a continuación)Ya sea que usted puede utilizar esta herramienta ahora en un sitio web de alto rendimiento es difícil de decir. Aquí va a estar aquí en el servidor, el almacenamiento en caché, y muchas otras cosas.
Aquí, sin embargo validate_request una breve comparación de los métodos con y sin PHPIDS (incorporado como se describió anteriormente). Se trata de una simple llamada a la página sin ningún tipo de ataque se trató.






En la norma intenta XSS ataque como nuevo aquí es el momento de subir un poco, pero estar siempre en el marco. Aquí están los resultados de un parámetro GET con el Imhalt siguientes:



1





Sin embargo, no pude encontrar un caso en que se derrumbaPHPIDS fuerte. Se trata de un ataque de inyección SQL que se utilizó recientemente la ejecución de JavaScript en muchos sitios web. (Artículo en heise.de)


Si la cadena que se pasa de este ataque con parámetros GETaumenta la carga del procesador a muy largo y el guión tiene que ejecutar. Responsable de 164 llamadas a la función son lospreg_match tomamos muy largo. En mi prueba, había alrededor de 4.000 ms.










conclusión


PHPIDS es una herramienta muy útil para detectar muchos ataques en los proyectos Web. La instalación es muy fácil ytambién para integrar en un proyecto existente, no debe habermayores problemas.


Dos cosas que quiero, pero señala:


Primero PHPIDS es un sistema para detectar ataques, que no tiene la intención de impedir o bloquear. Esta tarea debe tener un desarrollador de sí mismo.
Segundo PHPIDS muchas parcialmente utilizado expresiones regulares que están ávidas de recursos. Para proyectos de alto tráfico, por tanto, mantener un ojo en la carga del servidor y el almacenamiento en caché PHPIDS una mirada más cercana.



Descarga: https://phpids.org/



Saludos Mundo Libre.

No hay comentarios:

Publicar un comentario