La paranoia constante de Mitnick le salvó de mi ataque de día cero. Esto también sirvió para demostrar que es difícil engañar a un ingeniero social profesional que está en su mejor momento.
Para más información sobre Kevin Mitnick
Si deseas más información acerca de Kevin Mitnick, consulta estos recursos:
■ Sitio web de Kevin Mitnick: https://mitnicksecurity.com/
■ Ghost in the Wires
■ The Art of Invisibility
■ The Art of Deception
■ The Art of Intrusion
■ Kevin Mitnick Security Awareness Training, de KnowBe4: https://www.knowbe4.com/products/kevin-mitnick-security-awareness-training/
■ Slashdot Q&A, de Kevin Mitnick: https://news.slashdot.org/story/11/09/12/1234252/Kevin-Mitnick-Answers
6
Vulnerabilidades de software
Las vulnerabilidades de software son debilidades susceptibles (es decir, «errores») en el software, a menudo a partir de defectos explotables escritos por el desarrollador o inherentes al lenguaje de programación. No todos los errores de software son vulnerabilidades de seguridad. Para llegar a ser amenaza o riesgo, el error debe ser explotable por un atacante. La mayoría de los errores de software causan problemas de funcionamiento (que en muchas ocasiones el administrador ni siquiera llega a percibir) o incluso una interrupción fatal en el procesamiento, pero no pueden ser aprovechados por un atacante para obtener acceso no autorizado al sistema.
Las vulnerabilidades explotables del software son responsables de un amplio (no el más amplio) porcentaje de ataques en un periodo de tiempo determinado, a pesar de que otros métodos de hackeo (como los troyanos o la ingeniería social) suelen ser muy competitivos. Algunos expertos en seguridad informática piensan que la mayoría de los problemas de seguridad informática desaparecerían si todo el software estuviera libre de errores, aunque esto no es ni cierto ni posible. Sin embargo, aunque no sea la panacea, un código más seguro con menos vulnerabilidades eliminaría una categoría significativa de problemas de hackeo y haría que nuestro entorno informático fuera evidentemente más seguro.
Número de vulnerabilidades de software
Existen varias fuentes que permiten seguir las vulnerabilidades de software públicas, aunque los errores listados para cada una de ellas pueden variar significativamente. De media, cada año, los desarrolladores de software y buscadores de errores más importantes hacen públicas entre 5.000 y 6.000 nuevas vulnerabilidades. Esto significa unos 15 errores por día todos los días. El Common Vulnerabilities and Exposures (CVE), cuya dirección web es http://cve.mitre.org, y sus listas (http://cve.mitre.org/data/downloads/index.html) están considerados como un sitio independiente, de confianza e inclusivo para el informe y seguimiento de vulnerabilidades públicas. Muchos otros proveedores también siguen sus propias vulnerabilidades, así como todas las vulnerabilidades conocidas. Puedes comprobar todos los problemas del Security Intelligence Report de Microsoft (http://www.microsoft.com/sir) para obtener las últimas cifras conocidas, así como un buen análisis.
Evidentemente, estos son solo los errores que el público puede conocer. Muchos proveedores no anuncian públicamente todos los errores y otros no anuncian los errores encontrados por recursos internos o solucionados en versiones de preproducción. Aunque no hay manera de confirmarlo, la mayoría de los expertos piensan que el número «real» de errores es significativamente más alto que la cifra de los que se conocen públicamente.
NOTA El número de vulnerabilidades de software solo es una medida y no es la imagen completa de toda la seguridad de un programa o sistema. La única medida en la que se puede confiar es el nivel de daños de los cuales las vulnerabilidades de software son responsables. Podría darse el caso que el número de vulnerabilidades disminuyera al mismo tiempo que aumentara la cantidad de daños, aunque por lo general tener programas más seguros es mejor para todos.
¿Por qué las vulnerabilidades de software todavía son un gran problema?
Actualmente, los proveedores suelen parchear la mayoría de las vulnerabilidades críticas en cuestión de horas o días. Si esto es así, ¿por qué las vulnerabilidades de software todavía son un problema tan importante, especialmente cuando la mayoría de los proveedores tienen mecanismos de actualización automática para parchear más rápido? La respuesta es que una pequeña parte de los dispositivos informáticos se parchean de forma más lenta o, en un número de casos bastante importante, nunca se parchean. Y cada parche tiene la posibilidad de causar un problema operacional inesperado, lo que a veces causa más frustración en el usuario que el propio error.
El número total de vulnerabilidades es bastante abrumador y constante. Una parte significativa de la gestión del ordenador se dedica a preparar y aplicar parches. Es una increíble pérdida de tiempo, dinero y otros recursos que podrían destinarse a cosas más productivas. Incluso si tanto usuarios como administradores convirtieran el proceso de aplicar parches en una ciencia exacta, en el tiempo que pasa desde que el proveedor lanza el parche hasta que el usuario o administrador lo aplica, los hackers tienen la oportunidad de ganar contra un sistema determinado. Si yo soy un hacker paciente y persistente contra un objetivo concreto, simplemente tengo que esperar a que el proveedor anuncie un nuevo parche y utilizarlo para atacar a mi objetivo.
Cuando los proveedores lanzan un parche, tanto los sombreros blancos como los sombreros negros lo analizan de inmediato para localizar vulnerabilidades. Seguidamente, crean explotaciones que pueden aprovecharse del error. Existen decenas de empresas comerciales, unos cuantos servicios gratuitos y un número no identificado de hackers que hacen esto todos los días. Se pueden comprar y/o descargar escáneres de vulnerabilidades para analizar todos los dispositivos e informar acerca de las vulnerabilidades sin parchear. Estos escáneres de vulnerabilidades suelen tener miles y miles de explotaciones integradas. Existen en todo el mundo muchos sitios web de hackers con miles de explotaciones independientes que se pueden descargar para explotar una vulnerabilidad determinada. Una de las herramientas gratuitas más populares que utilizan tanto sombreros blancos como sombreros negros es Metasploit (https://www.metasploit.com/).
Defensas contra vulnerabilidades de software
La defensa número uno contra vulnerabilidades de software es una mejor formación de los desarrolladores de software y unos lenguajes de programación por defecto más seguros.
Ciclo de vida de desarrollo de seguridad
El proceso de intentar reducir el número de vulnerabilidades de software se conoce actualmente como ciclo de vida de desarrollo de seguridad (Security Development Lifecycle [SDL]). El SDL se centra en cada componente del ciclo de vida de un programa informático, desde su creación hasta el parcheado de nuevas vulnerabilidades detectadas, con el fin de crear software más seguro. Aunque no es un invento de Microsoft, Microsoft Corporation es probablemente quien ha trabajado más en este ámbito y quien ha lanzado más información y herramientas gratuitas (https://www.microsoft.com/sdl)