viernes, 20 de julio de 2012

Informe: Software Exploitation [INTECO]

Este informe pretende ayudar a responsables de seguridad a tener en consideración medidas preventivas con la que evitar y mitigar gran variedad de ataques relacionados con la explotación de software.

La incorrecta validación de datos de entrada, así como la falta de control sobre el tamaño de las variables siguen siendo uno de los mayores problemas, que desde hace tiempo, son los causantes directos de muchos problemas de seguridad críticos. Según detallan los Informes de vulnerabilidades de INTECO-CERT durante el primer y segundo trimestre de 2011, de un total de 4160 vulnerabilidades (2037 del primer semestre y 2123 del segundo), aquellas clasificadas como “Error de Buffer” son las más destacadas. A pesar de ser un tipo de vulnerabilidad bien conocida desde los años 80, este tipo de error sigue siendo aún uno de los motivos por lo que muchos sistemas son comprometidos.

Aunque la evolución de los sistemas operativos y compiladores han incorporado nuevas medidas de seguridad dirigidas a prevenir y mitigar multitud de ataques de este tipo, se ha demostrado que la eficiencia de dichas medidas por separado son ineficientes y que, únicamente en su conjunto, servirán como barrera para frenar gran variedad de ataques que se aprovechan del software vulnerable. Creer que DEP, SEHOP o ASLR pueden ser suficientes para mitigar la mayor parte de los ataques es como pensar que un firewall es suficiente para proteger las maquinas de nuestra DMZ. El concepto deep security empleado en el mundo del networking para proteger los equipos de una organización debe ser aplicado de igual forma en el mundo del software. Así, si para proteger un servidor web, se deberían de emplear firewalls, routers, IDS/IPS, WAFs, etc., para proteger correctamente software es necesario utilizar procedimientos rigurosos de programación, añadir mitigaciones en la fase de compilación y aprovecharse de las medidas de seguridad del sistema en el que se implantará el mismo. Cuantos menos eslabones se utilicen para construir la cadena de seguridad mayor será la probabilidad de que nuestro software sea vulnerable y, por tanto, que nuestros sistemas sean comprometidos.

Por este motivo y con objeto de concienciar a programadores y desarrolladores de software, INTECO-CERT ha preparado esta guía titulada Software Exploitation con la que pretende informar sobre los métodos utilizados para comprometer sistemas aprovechándose de vulnerabilidades de tipo buffer-overflow, off-by-one, use-after-free, format strings, etc. así como contramedidas existentes hoy en día tanto en los sistemas operativos actuales como en ciertos compiladores, para ayudar a mitigar (o reducir en mayor medida) este tipo de vulnerabilidades.
Por otro lado, ya que las entradas en el software (inputs) representan uno de los puntos más críticos y que más problemas de seguridad o inestabilidad suelen producir en los sistemas, se dará una gran importancia a las herramientas de fuzzing así como las de análisis de código estático/dinámico.
El informe se encuentra disponible en la siguiente dirección web:

No hay comentarios: