¿De qué va el Hardening?

Conceptualmente, el hardening es el proceso de securizar los sistemas, infraestructuras y aplicativos con el objetivo de reducir la superficie de ataque. Esto requiere de un amplio y profundo conocimiento de sistemas y de cómo funcionan. Etimológicamente, proviene del vocablo en inglés HARD = DURO, por lo tanto, hardening es endurecer, en este caso la seguridad de los sistemas.

Para realizar un proceso de hardening en los sistmas, es cierto que se requiere un conocimiento a bajo nivel de su fucionamiento. Sin emabargo, empezar por pequeños pasos siempre es mejor que no empezar.

Se puede aplicar Hardening en:

1) Hardware:

  • Data centers

  • Racks

  • Equipos de torre o portátiles

2) Softwares:

  • Sistemas Operativos:

  • Los Servicios

  • Autenticación

  • Políticas de contraseñas

  • Políticas de usuarios

  • El Arranque

  • Los Accesos

3) Aplicativos:

  • Navegadores

  • Apache

  • Nginx

  • Mysql

  • OpenSSH

Este proceso es complejo por el amplio abanico de vectores de ataque que pueden existir, tanto conocidos como vulnerabilidades 0 days. En este punto es importante recordar que la tecnología, en principio, se crea para que sea funcional, para que cumpla su objetivo, la seguridad suele venir luego por malas experiencias propias o ajenas. Afortunadamente y dado a estas experiencias, en los últimos años se han hecho esfuerzos importantes para poder tomar en cuenta la seguridad a la hora de diseñar tecnología, al menos dentro de lo que se puede, lograr un desarrollo seguro.

Nosotros podemos prever el comportamiento de salida de un sistema al recibir los parámetros esperados. Pero no podemos contemplar el comportamiento del sistema al recibir parámetros que no espera. Por esto, es que es prácticamente imposible cubrir todos los flancos que existen, porque no podemos prever los fallos de seguridad que pueda tener determinada tecnología y el proceso de fortificación debe estar siempre en constante seguimiento.

Anteriormente comentamos que el hardening busca disminuir la superficie de ataque sobre un sistema o un activo. Para ellos es conveniente definir lo que es una superficie de ataque.

Superficie de Ataque

Se refiere a toda exposición o brecha que pueda presentar una potencial amenaza. Está representada por la totalidad de las vulnerabilidades y vectores de ataque. Por ejemplo, la suma de un servicio con versión obsoleta junto a un tráfico no cifrado y malas configuraciones en los servidores web en donde se exponen de forma pública información sensible de la empresa. A esto le podemos añadir que, para esos vectores de ataque, posiblemente ya exista algún exploit público y que se este explotando de forma abierta con mucha facilidad.

Las vulnerabilidades pueden darse por fallas en el desarrollo a nivel de código o simplemente por configuraciones inadecuadas por parte de los administradores.

Veamos de forma práctica estos conceptos en el mundo cotidiano y en el mundo tecnológico.

En nuestro día a día podemos identificar la superficie de ataque imaginando una casa, que viene a ser nuestro activo. Y nuestra casa contiene ciertos espacios que forman parte de la propiedad, por lo tanto, la forma de cuidar nuestra casa seria poner atención a los accesos.

En primer lugar, imaginemos que no tenemos puerta principal en el jardín, o que solo tenemos la puerta, pero sin paredes o muros.

Luego nos faltan algunas ventanas o hay algún acceso por el techo o terraza.

En este sentido, esa exposición que tenemos con la suma de estas potenciales amenazas de intrusión, representa la superficie de ataque.

Ejemplo práctico a nivel de tecnología.

Digamos que tenemos un equipo que aloja un recurso compartido en donde se exponen ficheros de interés y que ese servicio compartido se este dando mediante el protocolo SMB puerto 445. Comprobamos que la versión del protocolo SMB es la 1, si… ¡¡¡Queremos llorar!!!. Adicional a esto, este equipo no posee las últimas actualizaciones a nivel de sistema operativo y parches de seguridad y por último el equipo no cuenta con protección a nivel de antimalware en tiempo real que contenga alguna amenaza que se pueda colar.

Vemos que es un ejemplo bastante llamativo por el riesgo que representa, pero la suma de esas vulnerabilidades representa la superficie de ataque.

¿Cuáles serían las soluciones a nivel de hardening para los dos casos planteados?

Para el primer caso en donde se detectaron vulnerabilidades en el hogar, el plan de hardening seria implementar sistemas que puedan reforzar esas brechas que se han identificado, como muros externos que protejan y delimiten el perímetro.

Luego reforzar las puertas con cerraduras robustas. Incorporar las ventanas y sellar la entrada no autorizada por el techo o terraza. De esta forma he disminuido la superficie de ataque en diferentes capas. ¿Eso sería todo? Afortunadamente podemos hacer mucho más, pero dejemos esas capas adicionales para los próximos artículos.

En nustro ejemplo técnico El plan de hardening seria desplegar un servicio para compartir ficheros mediante protocolo seguro. Alguas alternativas a esto serian: SFTP (Secure File Transfer Protocol), SCP (Secure Copy Protocol) o MFT (Managed File Transfer). Estos metodos nos pueda garantizan que el tráfico viaja bajo protocolos seguros y cifrados, que supone una mejora notable al protocolo SMB de versión 1. Aplicar todas las actualizaciones a nivel de sistema operativo incluyendo los parches de seguridad e instalar un antimalware con protección en tiempo real para que podamos contar con una monitorización al instante de cualquier anomalía que se este explotando de forma masiva en el momento.

Estas medidas corresponden a nuestro ejemplo con el equipo bajo sistema Windows, pero aplica perfectamente para cualquier otra plataforma: Linux, OSX, Android, Arduino, Raspeberrypi, etc.

Cualquier sistemas mal gestionado es vulnerable. Es importante tener esto en cuenta para saber detectar engaños cuando nos vendan la seguridad como un producto que viene con un determinado sistema. La seguridad no es un producto, es un proceso que no termina nunca porque cada dia hay mas tecnologia nueva y la ya existente evoluciona.

Con esto hemos visto que es de vital importancia la parte defensiva en este mundo cada dia mas digital y que es, sin exagerar, un campo de batalla en donde el santo grial de este siglo es la información. Por ello, debemos estar cada día mas concientes de como gestionamos nuestros datos en la red. No se trata de no compartir nada, aislarnos no es una opción, se trata de entender los riesgos que existen para ser mucho mas responsables con el tratamiento de nuestra informaión.

Pueden revisar mi publicación en instagram sobre los datos que no deberiamos compartir en internet.

Resumen: Hardening es el proceso de robustecimiento de la seguridad de algún activo, reduciendo su superficie de ataque. Esto puede ser disminuyendo las vulnerabilidades, cerrando accesos, desinstalando softwares innecesarios, cerrando puertos que no deban estar abiertos, etc.

Este es el primer articulo sobre hardening ya que este tema es necesario ampliarlo más para poder abordar la seguridad desde una perspectiva defensiva.