jueves, 15 de agosto de 2013

Vulnerabilidades del software

Una de las fuentes más importantes de fallos de seguridad son las vulnerabilidades del software. Son errores que cometen los desarrolladores de software, en general, sin intención alguna. Estas fallas, por medio de un "abuso inteligente", podrían implicar un riesgo de seguridad que comprometa el sistema donde se esté ejecutando el mismo
Para explicar este concepto se podría exponer un ejemplo concreto. Suponga que el programador de MsPaint olvidó comprobar el valor de la variable que aloja el parámetro del tamaño de una imagen. Cuando un usuario abre cualquier imagen, el programa primero debe conocer su tamaño, para lo cual usa el módulo con la función correspondiente "hallar tamaño". Así, pues, como no se hace la comprobación (cruce de información) del valor de la variable, un atacante podría producir un desbordamiento de memoria intermedia, de tal forma que el programa MsPaint llegara a lugares de memoria donde se aloje código intencionalmente modificado por el atacante, y así comprometer el sistema víctima.

Hoy en día, debido al crecimiento exponencial en la cantidad de software que se viene desarrollando, la cantidad de vulnerabilidades ha aumentado exorbitantemente. En el segundo trimestre del 2011, Kaspersky Labs (una empresa dedicada a la seguridad informática) detectó más de 27 millones de vulnerabilidades y un promedio de 12 vulnerabilidades por computador. Estas vulnerabilidades se concentran precisamente en dos grandes desarrolladores. El primero sería Adobe (el creador de flash y Adobe PDF Reader) con las 10 vulnerabilidades más comúnes, seguido por Oracle, como lo confirma el siguiente gráfico tomado de MITRE.


Vulnerabilidades de Plataformas de Software. Fuente:
La vulnerabilidad más crítica se presentó en Adobe Flash Player. Afectaba al 40% de los usuarios y permitía la ejecución de código malicioso con permisos de administrador por parte de un hacker. Seguía una vulnerabilidad en Sun-Java-GDK, con una presencia del 31%, que permitía a los atacantes ejecutar malware para el robo y la manipulación de los datos y también la denegación de servicio en la máquina.
Cada día se encuentran docenas de vulnerabilidades. El gobierno estadounidense encargó a la organización MITRE crear estándares que faciliten la clasificación, comunicación y corrección de las vulnerabilidades. Se han creado tres estándares diferentes. El CVE (Common Vulnerabilities and Exposures), el CVSS (Common vulnerabilities Scoring System) y el CVRF (Common Vulnerability Reporting Framework). Tienen como objetivo que al encontrar vulnerabilidades se entregue información precisa a los fabricantes que permita incrementar la eficacia en la confirmación, entendimiento y más importante inmunización de la misma.
Dado este ambiente, en el cual las fallas son detectadas y corregidas una vez han sido aprovechadas para generar problemas, es recomendable mantener instalados solo los programas de uso frecuente. Aquellos que dejen de ser utilizados deben ser desinstalados del PC. Las actualizaciones de los programas son una estrategia de defensa que permite solucionar fallas y corregir vulnerabilidades. Por ello se debe asegurar que se permite al software instalado actualizarse regularmente. Por último, es muy importante validar la fuente del software instalado. Las aplicaciones gratuitas generalmente no cuentan con un equipo de desarrollo que respalde su mejoramiento continuo, y se convierten en la puerta de entrada a aplicaciones tipo Malware.








No hay comentarios:

Publicar un comentario