En parte soy responsable de la seguridad y la detección de malware (en general) de una gran cantidad de cuentas de hosting. Nuestros métodos se basan en gran medida en la detección basada en firmas proporcionada por ClamAV para la cual también hemos creado una base de datos de firmas bastante decente (más de 500 muestras).
Recibimos hasta 30-40 notificaciones diariamente por el código malicioso que se detecta en la cuenta de un usuario. A medida que pasa el tiempo, los piratas informáticos se vuelven más intuitivos y siempre logran mantenerse al día con nuestro progreso (la comunidad de Whitehat en su conjunto) cuando intentamos detener sus intentos de explotar vulnerabilidades. Sin embargo, parece que la detección de códigos maliciosos basada en firmas se está volviendo cada vez más insuficiente: seguimos encontrando nuevas muestras de malware que nuestro análisis no pudo detectar inicialmente. Por lo tanto, me tomé la libertad de intentar y diseñar un sistema para la detección de anomalías estrictas.
Estoy pidiendo consejo sobre si mis planes actuales pueden considerarse razonables, ya que es la primera vez que me ocupo de esa tarea.
Creo que mientras más condiciones verifique el archivo, mejores resultados puedo obtener (eliminando los falsos positivos tanto como sea posible). Hasta ahora he creado la siguiente lista de condiciones:
- ubicación del archivo (5%)
- nombre de archivo (10%)
- código ordenado / alineación (5%)
- patrones de repetición (5%)
- nombres extraños / no lógicos de estructuras de datos (10%)
- apilamiento de funciones múltiples (3%)
- informe de errores inhabilitado (5%)
- supresión de errores utilizada (2%)
- contiene hex (es decir, \ x73) (3%)
Donde cada una de las condiciones le da al archivo un cierto porcentaje de lo que es potencialmente malicioso o tiene contenido malicioso dentro. Mis preguntas son: :
- ¿Es este un enfoque correcto / correcto para desarrollar un sistema de detección basado en anomalías estricto? Si no, ¿por qué?
- ¿Puede darme ejemplos de qué más puedo revisar un archivo? ¿Algún consejo o información útil?
Considera que:
- Está dirigido a aplicaciones web y en su mayoría a archivos PHP;
- Muchos de nuestros clientes utilizan CMS. Tal vez es mejor basar el sistema en un determinado CMS?
Gracias.