Pentesting: Detectando problemas de seguridad antes que alguien con malas intenciones lo haga

A lo largo de los años, los ciberataques han ido creciendo exponencialmente, haciendo un gran daño a diversas organizaciones. La mayoría de los ataques, comienzan por la explotación de una vulnerabilidad. El pentesting es un servicio profesional para detectar esas vulnerabilidades y mitigarlas a tiempo.

¿A qué llamamos Pentesting?

Pentesting (un acrónimo de Penetration Testing, al cual más adelante también denominaremos “Test de intrusión”) es la actividad mediante la cual se busca comprometer un sistema informático a través de la exploración de una o varias vulnerabilidades. Es decir, en un penetration test, las técnicas y procedimientos que se utilizan son las mismas que utilizan los cibercriminales. Lo que diferencia al pentester de un cibercriminal, es la finalidad que persigue. Mientras que este último busca, en la mayoría de los casos, obtener algún beneficio económico como robar información, espiar o «romper» (o simplemente demostrar sus conocimientos), el pentester por su parte busca detectar las vulnerabilidades para que la organización pueda mitigarlas a tiempo y así prevenir futuros ataques.

El pentester tiene la responsabilidad de reportar todas las fallas que detecte, que puedan representar un peligro para la organización o empresa para la que trabaje. Los pentesters son denominados «Ethical Hackers» dado el compromiso moral que tienen con la entidad que los contrata.

Tipos de pentesting (modelos contractuales habituales)

Existen 3 formas de trabajo,  el pentester las acuerda con la organización en su contrato. Ellas son:

White box: La entidad contratante le entrega información al pentester, por ej, usuarios y claves, rangos de red utilizados internamente, etc. Con esto el pentester ya tiene una gran cantidad de información para comenzar a trabajar, reduciendo el tiempo de “recon” (recopilación y conocimiento).

Black box: El pentester debe trabajar «a ciegas», como si fuera un atacante, sin información obtenida de antemano. El pentester debe comenzar a investigar y recopilar toda la información posible para realizar el ataque. Obviamente, este tipo de penetration test tiene un costo más elevado, dado el tiempo que insume.

Grey box: Es una combinación de White y Black box donde el pentester dispone de  información parcial de la organización. Por ejemplo, diagramas de arquitectura de red e información sobre aplicaciones/servicios utilizados. Un Penetration Test de tipo Grey Box simula lo que podría ser un ataque desde el interior de la organización dado el conocimiento parcial del objetivo.

Metodología a seguir para realizar un Pentest

Para realizar un Pentest (y no morir en el intento), debemos seguir una metodología de trabajo, algo que nos marque los pasos a seguir con el fin de no omitir nada. Al seguir una metodología, también sabremos qué límites se pueden cruzar y cuáles no. Recordemos que al realizar un test de intrusión es posible llegar a dañar los componentes que estamos auditando. La metodología nos ayudará a lo largo de toda la auditoría, y al llegar al final, a realizar un reporte completo y comprensible (recordemos que el reporte será visto por gente que tiene conocimientos de informática y gente que no). 

Metodologías de trabajo hay muchas. Cual elegir queda a gusto de cada pentester. Algunos especialistas de seguridad combinan distintas partes de cada una armando su propia metodología. A continuación se citan enlaces con metodologías a tener en cuenta:

OSSTMM (Open Source Security Testing Methodology Manual)

http://isecom.securenetltd.com/OSSTMM.es.2.1.pdf

Penetration Testing Execution Standard:

http://www.pentest-standard.org/index.php/Main_Page

La metodología está dividida en 5 fases. Estas fases pueden agruparse en 3 grandes partes:

Parte 1 – Recolectando información

Por lo expuesto más arriba, seguir un conjunto de pasos se vuelve fundamental, y sobre todo para esta primera fase que vamos a presentar, la fase de obtención de información (information gathering) del objetivo.

Mientras más información obtengamos del objetivo, mayores probabilidades tenemos de comprometerlo, dado que vamos a conocer la mayoría de los vectores de ataque. En esta fase podemos tener una recolección de datos en forma pasiva y otra activa. Cuando hablamos de Information Gathering pasivo nos referimos a aquellos datos que podemos conseguir de la organización objetivo sin tener que interactuar con ella directamente. En el caso de la recolección de datos activa, interactuamos directamente con la organización, por ej. al realizar un escaneo a la infraestructura. Dentro de esta primera parte tenemos:

Footprinting: En esta fase armamos el perfil de la organización, buscamos información en la web, ya sea mediante buscadores (Google y el famoso “Google hacking”), sitios que brindan información sobre dominios o herramientas especialmente desarrolladas para esta etapa.

Scanning: En esta fase realizamos un escaneo de red y vulnerabilidades. Aquí identificamos puertos abiertos, servicios que corren en esos puertos, sistemas operativos utilizados y vulnerabilidades. Hay múltiples herramientas para estos fines.

Enumeration: En la enumeración tratamos de obtener información sobre nombres de usuario, claves, elementos compartidos que no se encuentren bien protegidos, recursos de red y aplicaciones. Generamos un mapa completo de la red que se encuentra detrás de la organización.

Social Engineering: La ingeniería social puede servirnos en cualquiera de las fases para conseguir información. La ingeniería social es el arte de engañar al factor humano (lo que algunos llaman, «hackear a las personas»). Apelando a la bondad, al temor, al deseo de ayudar, a la lástima y otros aspectos de las personas, se puede obtener ciertos datos muy útiles de la organización. 

Esta etapa es fundamental, una vez finalizada se tiene una idea de la mayoría de los vectores de ataque posibles y se puede planificar la siguiente actividad.

Parte 2 – Explotación: Comprometiendo la organización

En esta fase nos dedicaremos a explotar las vulnerabilidades que encontramos en la etapa de INFORMATION GATHERING o de RECOLECCIÓN DE INFORMACIÓN.

Entre los vectores de ataque que podemos identificar tenemos: 

APLICACIONES

SERVIDORES 

SISTEMAS OPERATIVOS 

HUMANOS 

REDES WIFI 

APLICACIONES, SERVIDORES Y SISTEMAS OPERATIVOS: Como vimos anteriormente, en la fase de SCANNING, al escanear equipos de la organización obtendremos información sobre los servicios que están corriendo, así como también de los sistemas operativos utilizados. Estos servicios pueden ser recursos conocidos (Servidores Web, bases de datos, Servidores FTP, Correo, etc.) o aplicaciones web propias de la organización. Estos servicios que se encuentran corriendo pueden tener bugs que nos permitan comprometerlos mediante el uso de exploits. Los exploits son programas que aprovechan cierta vulnerabilidad de un servicio para conseguir un comportamiento no deseado del mismo. 

Es importante mantenerse actualizado para conocer las últimas vulnerabilidades publicadas, dado que en muchos casos las organizaciones tardan en actualizar sus servicios o en parchearlo para evitar ser atacados.

Un sitio web donde podemos consultar las vulnerabilidades publicadas es el National Vulnerability Database: http://nvd.nist.gov/. Allí podemos buscar por nombre de vendor, tecnología, fecha de publicación, etc. 

HUMANOS: A través de la información recopilada sobre los usuarios de la organización (nombres, cuentas de email, perfiles en redes sociales) podemos hacer uso de la ingeniería social para, por ejemplo, llamar a un empleado y engañarlo para obtener cierta información que puede ser útil al momento de intentar atacar el sistema. Esto genera un ciclo dado que existe retroalimentación. Pensemos que:  

1º Obtenemos información de un usuario (haciendo uso de ingeniería social o buscando en la red)  

2º Con los datos obtenidos podemos seguir buscando información en la red o hacer uso nuevamente de ingeniería social. 

Por ej: Obtenemos datos sobre la dirección de correo electrónico de un usuario perteneciente a la organización. Luego enviamos un mail a ese usuario, falseando la dirección del remitente, haciéndonos pasar por un empleado del área de sistemas el cual le solicita que por un cambio en la gestión de seguridad de las claves de correo electrónico debe clickear en un enlace que lo llevará a un sitio de la empresa donde deberá ingresar su clave actual y la clave nueva. Obviamente ese enlace lo llevará a una página alojada en un servidor nuestro el cual guardará los datos. Con las credenciales de ese usuario, podemos ingresar a su correo y obtener más información para continuar con nuestro ataque. Por eso los usuarios de las organizaciones deben ser capacitados sobre ciertos temas de seguridad, ya que son el eslabón más débil en la cadena de la seguridad informática.   

REDES WIFI: Muchas veces, debito a la arquitectura de red, las redes wifi de las organizaciones, se permite que  los usuarios conectados a ella puedan visualizar los equipos pertenecientes a la organización, o incluso los dispositivos personales de los empleados, lo cual permitiría a un atacante con acceso a ella capturar información sensible o atacar los mencionados equipos.

Parte 3 – Manteniendo el acceso

Una vez que el atacante obtiene acceso a un sistema, va a querer obtener información en archivos alojados en el equipo víctima, información de la red (analizando tráfico, mapeando otros equipos) así como también escalar privilegios (es decir, lograr pasar de un usuario de bajos privilegios a otro con grandes privilegios de acceso al sistema). Como todo esto lleva tiempo, lo más lógico es que el atacante deje, por ejemplo, un backdoor (puerta trasera) en el equipo víctima con el fin de lograr un acceso más sencillo cada vez que quiera conectarse nuevamente. 

El Pentester debe realizar estas actividades con el fin de demostrar hasta donde se puede llegar una vez vulnerado el sistema, generando el reporte correspondiente. Obviamente, se podrá avanzar hasta donde lo permita el acuerdo firmado con la organización. 

Otra cuestión a tener en cuenta en esta fase es la de borrado de huellas, dado que cada vez que nos conectamos a un equipo queda un registro de esa «visita» y de las cosas que modificamos, con lo cual se vuelve de suma importancia eliminar toda evidencia de nuestro paso por los equipos de la víctima. 

Conclusión:

Como se puede apreciar, un pentest ayuda mucho a las organizaciones a obtener una foto del estado de su seguridad. Obviamente, además de estas tareas, es necesario acompañarlo de otros procesos, como por ej Vulnerability and Patch Management, para mantener constantemente actualizada la infraestructura ante la aparición de nuevas vulnerabilidades.

Ing.Alejandro Fanjul

Infraestructure Security & Red Team Manager en Despegar.com

Pentester Senior

Ver más