¿Cómo hacer un seguimiento de las violaciones de la política de MAC a la solicitud HTTP?

0

Supongamos que hay una aplicación web bajo carga pública que se ejecuta bajo una política muy restrictiva de MAC (por ejemplo, SELinux, TOMOYO, Grsecurity). Supongamos que detectamos y registramos una violación de la política de MAC, como un archivo que la aplicación web está leyendo o escribiendo y que no debería ser.

¿Se puede rastrear esta violación de la política de MAC a una solicitud HTTP que la causó? ¿Cómo?

La aplicación web está bajo una carga de más de 100 solicitudes / s. Todas las solicitudes son legítimas, excepto una, que es maliciosa. Es necesario encontrar la solicitud maliciosa para poder analizarla y determinar cómo pasó el filtro de seguridad dentro de la aplicación.

    
pregunta Matrix 14.10.2013 - 10:13
fuente

1 respuesta

2

En términos muy generales, su problema es mantener la información de contexto. SI asumimos lo siguiente:

  • Cada solicitud es manejada por algún código en el servidor, con uno de los hilos de ejecución .
  • Cada subproceso procesa una solicitud a la vez.
  • El código del servidor registra cada solicitud entrante con una marca de tiempo de alta precisión (milisegundos o menos) y el identificador del subproceso de administración.
  • El motor de políticas MAC, cuando detecta una infracción, la registra junto con una información de contexto de marca de tiempo de alta precisión y , en particular el identificador del subproceso infractor.

Entonces es fácil asignar violaciones a las solicitudes.

En la práctica, dependiendo de la tecnología involucrada (código de servidor, diseño de la aplicación, motor de políticas ...), es posible que falte algo de la información anterior. Por ejemplo, el motor de políticas puede registrar solo el ID de proceso y un proceso puede contener varios subprocesos (el sistema operativo maneja "subprocesos del sistema", pero a nivel de aplicación también pueden denominarse "hilos ligeros" que el sistema operativo no conoce. Algunos motores de servidor pueden seguir varias solicitudes simultáneamente (diseño de máquina de estado con poll() ). Los registros pueden carecer de precisión por debajo de un segundo. En el servidor, los accesos de E / S pueden ser centralizados y compartidos, por lo que el hilo que recibió la solicitud no es necesariamente el que hace el acceso al archivo.

Si no tiene toda la información necesaria, tendrá que analizar todas las solicitudes recibidas en el marco de tiempo relevante, hasta que encuentre la original. Es posible que desee recurrir a simulación : mantenga todas las solicitudes entrantes en un búfer circular, de modo que en cualquier momento tenga una copia del valor de último minuto de los datos solicitados; Si el motor de la política detecta una infracción, haga una instantánea (una copia de las solicitudes y el estado del servidor correspondiente). Luego, durante el análisis, vuelva a enviar todas estas solicitudes a una copia del servidor, una a la vez, hasta que encuentre la que provoca el problema.

    
respondido por el Tom Leek 14.10.2013 - 16:19
fuente

Lea otras preguntas en las etiquetas