Intrusión
Este es el paso que da nombre al hacker, (N. del T.: en inglés, to hack significa obtener acceso de forma ilegal). El éxito de este paso es crucial para todo el ciclo. Si el hacker ha hecho sus deberes en la etapa del fingerprinting, esta etapa realmente no es difícil. De hecho, yo siempre la he superado. Siempre hay software antiguo, cosas sin parchear e, incluso, algo mal configurado en la recopilación de software identificado.
NOTA Uno de mis trucos favoritos es atacar el software y los dispositivos que los defensores utilizan para defender sus redes. A menudo, estos dispositivos se denominan aparatos (appliances), que es simplemente otra forma de designar un ordenador con software difícil de actualizar. Estos aparatos son conocidos por estar años sin sin que se les apliquen parches.
Si, afortunadamente, todo el software y los dispositivos son perfectamente seguros (y nunca lo son), puedes atacar al elemento humano, que es siempre la parte más débil de la ecuación. Pero sin la intrusión inicial, el hacker lo tiene todo perdido. Afortunadamente para él, hay muchas maneras de entrar en el objetivo. Estas son las diferentes técnicas que un hacker puede utilizar para ello:
■ Ataque de día cero
■ Software sin parche
■ Software malicioso o malware
■ Ingeniería social
■ Problemas con contraseñas
■ Ataque de intermediario/MitM
■ Fuga de información
■ Configuración errónea
■ Ataque de denegación de servicio
■ Información privilegiada/socio/asesor/proveedor/terceras partes
■ Error de usuario
■ Acceso físico
■ Escalada de privilegios
Ataque de día cero Los ataques (exploits) de día cero no son tan frecuentes como las vulnerabilidades habituales, que los proveedores normalmente ya han parcheado hace tiempo. Un ataque de día cero es aquel para el cual el software objetivo todavía no ha sido parcheado y la gente (y normalmente el proveedor) lo desconocen. Cualquier sistema informático que utilice un software con un error de día cero es esencialmente explotable a voluntad, a menos que la víctima potencial desinstale el software o haya colocado en su lugar algún tipo de solución (por ejemplo, un cortafuegos, una lista de control de acceso [ACL], segmentación de VLAN, software antidesbordamiento de búfer, entre otros).
Los ataques de día cero son vulnerabilidades menos conocidas que las habituales, dado que no pueden ser ampliamente utilizadas por un atacante. Si un atacante lleva a cabo un ataque de día cero, el valioso agujero será descubierto y parcheado por los fabricantes y colocado en firmas antimalware. Actualmente, la mayoría de los fabricantes pueden parchear nuevas explotaciones en unas horas o hasta pocos días después de su descubrimiento. Cuando se lanza un ataque de día cero, o bien se utiliza contra muchos objetivos al mismo tiempo para una mayor posibilidad de explotación o bien «a fuego lento», que significa con moderación, a veces y solo cuando se necesita. Los mejores hackers profesionales del mundo suelen tener colecciones de ataques de día cero que solo utilizan cuando todo lo demás falla, y de tal forma que pasen totalmente desapercibidos. Un ataque de día cero debe utilizarse para conseguir un acceso inicial a un objetivo especialmente resistente; después, todas las pistas deberán ser eliminadas y, a partir de ese punto, se utilizarán métodos más tradicionales.
Software sin parchear El software sin parchear es siempre una de las razones más frecuentes por las que un ordenador o un dispositivo es explotado. Cada año, hay miles (normalmente, entre 5.000 y 6.000, o 15 al día) de nuevas vulnerabilidades anunciadas públicamente entre todo el software más utilizado. (Echa un vistazo a las estadísticas reportadas en cada edición de Microsoft Security Intelligence Report, http://microsoft.com/sir.) Por lo general, los fabricantes han mejorado en el desarrollo de código más seguro y la localización de sus propios errores; sin embargo, existe un número cada vez más elevado de programas y billones de líneas de código, por lo que el número total de errores se ha estabilizado relativamente durante las dos décadas anteriores.
La mayoría de los fabricantes realizan un buen trabajo parcheando sus programas de una manera oportuna, especialmente después de que una vulnerabilidad se haga pública. Desgraciadamente, los clientes tardan mucho en aplicar sus parches, llegan incluso a desactivar las rutinas automáticas de aplicación de parches establecidas por el fabricante. Un porcentaje moderado de usuarios no parchean nunca su sistema. Hay quien ignora las múltiples advertencias sobre parches y simplemente le aburren o desconoce que un parche deba aplicarse. (Por ejemplo, muchos sistemas de puntos de venta no notifican al cajero que es preciso aplicar un parche). La mayoría de los ataques de software ocurren contra programas que no han sido parcheados en muchos, muchos años.
Aunque una empresa concreta o un usuario parchee una vulnerabilidad crítica en cuanto esta se anuncia, un hacker paciente y persistente puede esperar a que se anuncie dicho parche, que está en el inventario de fingerprint de su objetivo, y lanzar el correspondiente ataque antes de que el defensor tenga tiempo de parchearlo. (Es relativamente fácil para un hacker hacer ingeniería inversa de un parche y descubrir cómo explotar una vulnerabilidad en concreto).
Tanto los ataques de día cero como las vulnerabilidades de software normales se explican por prácticas de codificación de software inseguras. Las vulnerabilidades de software serán tratadas en el Capítulo 6.
Software malicioso o malware Los programas maliciosos se conocen como malware y los tipos tradicionales más conocidos son los virus, los troyanos y los gusanos, aunque el malware actual suele ser una mezcla de varios tipos. El malware permite al hacker utilizar un método de explotación para atacar más fácilmente a sus víctimas o llegar a un mayor número de víctimas de forma más rápida. Cuando se descubre un nuevo método de explotación, los defensores saben que los desarrolladores de malware utilizarán malware automatizado para difundir la explotación más rápidamente en un proceso denominado weaponization. Aunque las explotaciones son algo que debería evitarse, suele ser la weaponization de la explotación lo que genera un mayor riesgo para el usuario final y la sociedad. Sin malware, un atacante está obligado a implementar un ataque contra una víctima a la vez. Con malware, millones de víctimas pueden ser explotadas en cuestión de minutos. El malware será tratado con más detalle en el Capítulo 9.
Ingeniería social Una de las estrategias de hackeo más exitosas es la ingeniería social. La ingeniería social, ya sea llevada a cabo manualmente por un adversario humano o mediante un método automatizado, es un truco de hackers que consiste en engañar a un usuario final para que haga algo perjudicial para su propio ordenador o seguridad. Puede ser un correo electrónico que engaña al usuario para que haga clic sobre un vínculo web malicioso o que ejecute un archivo adjunto falso. También puede ser algo o alguien que engaña a un usuario