Hacking ético, 2.

En la primera entrega de esta serie de artículos sobre hacking ético se introdujeron tanto el concepto del enunciado, como las fases y los fines de tal conjunto de técnicas. Vamos a seguir ampliando el abanico sobre esta interesante y fundamental metodología describiendo algunos conceptos asociados más y los tipos de vulnerabilidades habituales que se presenta actualmente en un análisis de penetración o estudio de hacking ético.

En primer lugar hay que hacer constar que hacking informático y hacking ético, son dos términos diferenciados.

Podíamos entender el hacking ético como el conjunto de técnicas llevadas a cabo por expertos en seguridad informática para diseñar una estrategia defensiva eficaz sobre los sistemas informáticos, detectando y previendo vulnerabilidades. Para realizar estas pruebas se utilizan herramientas llamadas pentesting o tests de penetración.

Frente a esto último existen las figuras del craker, grey hat o cualquier modalidad de los popularmente llamados, de manera general, hacker informático, en sentido peyorativo. Estos buscan vulnerar y penetrar en los sistemas informáticos de forma no autorizada con fines espurios, lúdicos, etc.

En gran parte de los casos, las herramientas que utilizan los atacantes maliciosos, son idénticas a las usadas por los profesionales de la seguridad y auditores informáticos. El experto que trabaja como hacker ético, sigue los mismos procedimientos que aquellos cuyos fines no son éticos.

Piratería y hacker

La piratería se vincula, básicamente, a la práctica ilegal consistente en reproducir o copiar obras literarias, musicales, audiovisuales, software… o cualquier otro producto protegido con directivas de derechos de autor. También puede aludir a aquellos crackers que se dedican a sustraer información por Internet. La piratería tendría diversos enfoques:

Piratería del usuario final. La más usual de todas, se realizan copias de un determinado software careciendo de licencia legal. Por ejemplo, hacer una copia de Windows o del paquete ofimático Office y distribuirla utilizando un crack o parche para activar el producto gratuitamente.

Piratería de carga de disco duro. En este caso se trataría de la práctica ilícita en la que las empresas venden equipos conteniendo software preinstalado sin las licencias correspondientes.

Piratería de Internet. Se trata de la distribución de programas por Internet de forma no autorizada; también incluiríamos en esta modalidad los ataques y robos de información en la red: sustracción de números de tarjetas de crédito, clonaciones, suplantaciones de identidad, etc.

En informática, el término vulnerabilidad define una debilidad presente en un sistema operativo, programa o infraestructura que permite a un atacante violar la confidencialidad, integridad, disponibilidad, control de acceso y consistencia del sistema o de sus datos y aplicaciones. Como se ha comentado, este el punto crítico de un hacker ético, detectar y prevenir las vulnerabilidades que posibilitan el acceso a la información de los sistemas informáticos constituye la parte troncal de su trabajo.

Veamos cuáles son las tipologías más comunes de vulnerabilidad a las que tendrá que hacer frente un hacker ético.

Tipos de vulnerabilidades

Como podemos imaginar, existe una gran diversidad de vulnerabilidades informáticas y según sus características se clasifican en un tipo u otro.

Vulnerabilidad de desbordamiento de buffer (Buffer Overflow)

Es un error de software que se produce cuando se copia una cantidad de datos sobre un área que no es lo suficientemente grande para contenerlos, sobrescribiendo de esta manera otras zonas de memoria. Esto se debe en general a un fallo de programación. La consecuencia de escribir en una zona de memoria imprevista puede resultar impredecible. Existen zonas de memoria protegidas por el sistema operativo. Si se produce la escritura fuera de una zona de memoria protegida se producirá una excepción del sistema de acceso a memoria seguido de la terminación del programa. Bajo ciertas condiciones, un usuario obrando con malas intenciones puede aprovecharse de este mal funcionamiento o una vulnerabilidad para tener control sobre el sistema.

En algunas ocasiones eso puede suponer la posibilidad de alterar el flujo del programa pudiendo hacer que éste realice operaciones no previstas. Esto es posible dado que en las arquitecturas comunes de computadoras, la memoria no tiene separación entre la dedicada a datos y a programa.

Si el programa que tiene el error en cuestión tiene privilegios especiales se convierte además en un fallo de seguridad. El código copiado especialmente preparado para obtener los privilegios del programa atacado se llama  shellcode.

Inyección SQL

SQL, Lenguaje de Consulta Estructurado (Structured Query Language), es un lenguaje de acceso a datos normalizado utilizado por muchos motores de bases de datos (como Microsoft Jet, usado por Access).

Un ataque por inyección SQL consiste en la inserción o inyección de una consulta SQL por medio de los datos de entrada desde el cliente hacia la aplicación. Un ataque por inyección SQL exitoso puede leer información sensible desde la base de datos, modificar la información (Insert/ Update/ Delete), ejecutar operaciones de administración sobre la base de datos (tal como parar la base de datos), recuperar el contenido de un determinado archivo presente sobre el sistema de archivos del DBMS y en algunos casos emitir comandos al sistema operativo. Los ataques por inyección SQL son un tipo de ataque de inyección, en el cual los comandos SQL son insertados en la entrada de datos con la finalidad de efectuar la ejecución de comandos SQL predefinidos.

Vulnerabilidad de Cross Site XSS

XSS es un ataque de inyección de código malicioso para su posterior ejecución que puede realizarse a sitios web, aplicaciones locales e incluso al propio navegador.

Sucede cuando un usuario malintencionado envía código malicioso a la aplicación web y se coloca en forma de un hipervínculo para conducir al usuario a otro sitio web, mensajería instantánea o un correo electrónico. Asímismo, puede provocar una negación de servicio (DDos).

Ataque al usuario

Se trata del tipo de ataque más utilizado y donde se puede conseguir más informaciones como las cookies de los usuarios. También se puede utilizar el ataque por vía del correo electrónico, donde se envía un correo con un link incrustado que tiene un script. La idea es hacer que a través de este link pueda motivar al usuario a ejecutarlo y poner en machar algún comando malicioso. Para complementar el ataque del usuario, hablemos de la publicación en sitio web vulnerables que consiste en la incluir algún dato en libro de visita, foros, blogs o cualquier sitio Web, donde permite al usuario introducir sus datos sin ser validados por el servidor, con esto se permite robar alguna información del propio usuario.

Ataque a la aplicación 

Consiste en introducir en alguna aplicación Web vulnerable algún código malicioso, normalmente las aplicaciones Web están protegidas, pero siempre es posible hacer el ataque mediante algún tag que no está previsto. Los tags son etiquetas internas que ponemos en los códigos.

Cracking

El  cracking es el acceso ilícito y dañoso a un sistema informático. Supone la intrusión, penetración en allanamiento en dicho sistema e implica la carencia de autorización o justificación para ese acceso.

Conlleva la producción de un daño en el sistema al que se accede. Este elemento distingue esta conducta del hacking.

En cuanto al concepto de sistema informático debe entenderse en sentido amplio, es decir, comprensivo de equipo, elemento componente o redes de comunicación.

Otras denominaciones para esta ciberconducta son las de daños o sabotaje informático; vandalismo digital y hasta ciberterrorismo. También a ella se hace referencia al hablar del black hat hacking, por oposición al white hat hacking o hacking sin más. 

El cracking es una conducta de por sí inherente a la informática y a internet. Supone que alguien lleva a cabo una actividad para interferir en el normal funcionamiento de un sistema informático ajeno causando un daño en este.

Ingeniería Social

La Ingeniería Social es el conjunto de actividades o engaños que los atacantes usan para obtener información o bienes de las organizaciones a través de la manipulación de los usuarios legítimos. Es decir, la Ingeniería Social es la ciencia y el arte de hackear a las personas.

​A pesar de que las tecnologías que mitigan las vulnerabilidades informáticas evolucionan rápidamente, es fácil olvidarse del elemento más importante presente en todas las TIC: el ser humano. Por lo tanto, es importante que conozca el procedimiento que pone en peligro la seguridad de la información de su organización y los cuatro pasos fundamentales que se deben seguir para mitigar los riesgos.

Vulnerabilidades de condición de carrera (race condition)

La condición de carrera se cumple generalmente cuando varios procesos tienen acceso a un recurso compartido de forma simultánea. En este sentido, un buen ejemplo son las variables, cambiando su estado y obteniendo de esta forma un valor no esperado de la misma.

Redes wifi 

Por reflejar un ejemplo de la dimensión del problema de inseguridad de las redes wifi, diremos que, según un análisis de la compañía rusa de seguridad informática Kaspersky, más de 7000 de las 32000 redes wifi disponibles en las ciudades sede de la Copa del Mundo de Fútbol Rusia 2018, el 20% del total, no cifraban el tráfico de datos, lo que las exponía a evidentes problemas de seguridad.

 

 

Gustavo Romero Sánchez

Gestor de Redes y Recursos Informáticos en el sector de la Seguridad.

Criminólogo y Antropólogo Forense

Tutor Tecnológico en Curso Superior de Ciberseguridad

Fuentes 

  • Webs

Seguridadpcs.wordpress.com

Tecnologia-informatica.com

ciberderecho.com

gmsseguridad.com 

  • Trabajos 

Hacking ético y seguridad en red, TFC – UOC, 2014, autor: Cristiano Dias

Síguenos en...