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:
Publicar un comentario