De todos los subtipos de inteligencia de amenazas, la inteligencia de código abierto (OSINT) es quizás la más utilizada, lo que tiene sentido. Después de todo, es principalmente gratuita, ¿y quién puede decir que no a eso?
Desafortunadamente, al igual que los otros subtipos principales: inteligencia humana, inteligencia de señales e inteligencia geoespacial, por nombrar algunos, la inteligencia de código abierto es ampliamente incomprendida y mal utilizada.
En este post, cubriremos los fundamentos de la inteligencia de código abierto, incluyendo cómo se usa y las herramientas y técnicas que se pueden usar para recopilarla y analizarla.
Indice
¿Qué es la inteligencia de código abierto?
Antes de analizar las fuentes y aplicaciones comunes de la inteligencia de código abierto, es importante comprender qué es realmente.
La inteligencia de código abierto:
- Se produce a partir de información disponible públicamente
- Se recopila, analiza y difunde de manera oportuna a un público apropiado
- Aborda un requisito de inteligencia específico
La frase importante en la que centrarse aquí es «disponible al público».
El término «código abierto» se refiere específicamente a la información disponible para el consumo público. Si se requieren habilidades, herramientas o técnicas especializadas para acceder a una información, no puede considerarse razonablemente de código abierto.
Fundamentalmente, la información de código abierto no se limita a lo que puedes encontrar utilizando los principales motores de búsqueda. Las páginas web y otros recursos que se pueden encontrar usando Google ciertamente constituyen fuentes masivas de información de código abierto, pero están lejos de ser las únicas fuentes.
Para empezar, una gran proporción de Internet no se puede encontrar utilizando los principales motores de búsqueda. Esta llamada «web profunda» es una masa de sitios web, bases de datos, archivos y más que no pueden ser indexados por Google, Bing, Yahoo o cualquier otro motor de búsqueda. A pesar de esto, gran parte del contenido de la web profunda puede considerarse de código abierto porque está fácilmente disponible para el público.
Además, hay mucha información de acceso libre en línea que se puede encontrar utilizando herramientas en línea que no sean los motores de búsqueda tradicionales. Veremos esto más adelante, pero como un ejemplo simple, se pueden usar herramientas como Shodan y Censys para encontrar direcciones IP, redes, puertos abiertos, cámaras web, impresoras y prácticamente cualquier otra cosa que esté conectada a Internet.
La información también puede considerarse de código abierto si es:
- Publicada o transmitida para una audiencia pública (por ejemplo, contenido de noticias)
- Disponible al público por solicitud (por ejemplo, datos del censo)
- Disponible para el público por suscripción o compra (por ejemplo, revistas de la industria)
- Puede ser visto o escuchado por cualquier observador casual
- Obtenido visitando cualquier lugar o asistiendo a cualquier evento que esté abierto al público
En este punto, probablemente estés pensando: «Hombre, eso es mucha información …»
Y tienes razón. Estamos hablando de una cantidad de información realmente inimaginable que está creciendo a un ritmo mucho más alto de lo que cualquiera podría esperar. Incluso si reducimos el campo a una sola fuente de información, digamos Twitter, nos vemos obligados a hacer frente a cientos de millones de nuevos puntos de datos todos los días.
Esto, como probablemente hayas deducido, es la compensación inherente de la inteligencia de código abierto.
Como analista, tener una cantidad tan grande de información disponible es una bendición y una maldición. Por un lado, tienes acceso a casi todo lo que puedas necesitar, pero por otro lado, debes poder encontrarlo en un torrente de datos sin fin.
¿Por qué es útil?
La información recopilada con OSINT es útil de varias maneras:
- Puede identificar la superficie de ataque: Esto es especialmente importante si ofreces servicios en línea. ¿Qué tipo de información de versión está disponible? ¿Expone solo los servicios y la información necesarios? ¿Qué pasa con la red de tu oficina? ¿Hay alguna impresora, interfaz de administración de controlador WLAN u otros hosts inesperados accesibles desde Internet? ¿Puedes identificar personas potenciales a las que apuntar con ataques de ingeniería social? Esta fase de recopilación de información es una etapa típica en las pruebas de penetración y la formación de equipos rojos también. Sin embargo, es esencial comprender que si bien la recopilación de datos pasivos y semi-pasivos de fuentes abiertas se considera legal, los métodos activos de recopilación de información, como el escaneo de puertos o vulnerabilidades, se consideran ilegales si no tiene permiso.
- Puede identificar lagunas de seguridad: ¿has fortalecido los sistemas operativos y las aplicaciones que están expuestos? ¿Existen vulnerabilidades o debilidades conocidas? ¿Qué tipo de formas hay para contactarte a ti o a tu organización, y están todas bien protegidas?
- Puede combatir las filtraciones de información: los accidentes suceden: alguien podría publicar accidentalmente material que se suponía que aún no se había publicado. Tal vez otro servicio en línea sufrió una violación de datos, y las direcciones de correo electrónico y las contraseñas ahora están en Pastebin, incluidas las contraseñas de tus empleados que también podrían funcionar para sus servicios web. Si notas problemas temprano, tienes más tiempo para reaccionar.
La seguridad externa, las técnicas y las herramientas de inteligencia de código abierto pueden ser útiles para investigar oportunidades de mercado y verificar lo que están haciendo tus competidores.
¿Cómo se usa la inteligencia de código abierto?
Ahora que hemos cubierto los conceptos básicos de la inteligencia de código abierto, podemos ver cómo se usa comúnmente para la ciberseguridad. Hay dos casos de uso comunes:
1. Hacking ético y pruebas de penetración
Los profesionales de seguridad usan inteligencia de código abierto para identificar posibles debilidades en redes amigables para que puedan ser remediados antes de que sean explotados por actores de amenazas.
Las debilidades encontradas comúnmente incluyen:
- Fugas accidentales de información confidencial, como a través de las redes sociales.
- Puertos abiertos o dispositivos no seguros conectados a Internet
- Software sin parches, como sitios web que ejecutan versiones antiguas de productos CMS comunes
- Activos filtrados o expuestos, como código propietario en pastebins
2. Identificación de amenazas externas
Como hemos discutido muchas veces en el pasado, Internet es una excelente fuente de información sobre las amenazas más apremiantes de una organización. Desde la identificación de las nuevas vulnerabilidades que se explotan activamente hasta la interceptación de la «charla» del actor de amenazas sobre un próximo ataque, la inteligencia de código abierto permite a los profesionales de seguridad priorizar su tiempo y recursos para abordar las amenazas actuales más importantes.
En la mayoría de los casos, este tipo de trabajo requiere que un analista identifique y correlacione múltiples puntos de datos para validar una amenaza antes de tomar medidas. Por ejemplo, si bien un solo tweet amenazante puede no ser motivo de preocupación, ese mismo tweet se vería de una manera diferente si estuviera vinculado a un grupo de amenazas que se sabe que está activo en una industria específica.
Una de las cosas más importantes que debes comprender sobre la inteligencia de código abierto es que a menudo se usa en combinación con otros subtipos de inteligencia.
La inteligencia de fuentes cerradas, como la telemetría interna, las comunidades cerradas de web oscura y las comunidades externas de intercambio de inteligencia, se usan regularmente para filtrar y verificar la inteligencia de código abierto. Hay una variedad de herramientas disponibles para ayudar a los analistas a realizar estas funciones, que veremos más adelante.
El lado oscuro de la inteligencia de código abierto
En este punto, es hora de abordar el segundo problema importante con la inteligencia de código abierto: si algo está disponible para los analistas de inteligencia, también está disponible para los actores de amenazas.
Los actores de amenazas utilizan herramientas y técnicas de inteligencia de código abierto para identificar objetivos potenciales y explotar las debilidades en las redes objetivo. Una vez que se identifica una vulnerabilidad, a menudo es un proceso extremadamente rápido y simple explotarla y lograr una variedad de objetivos maliciosos.
Este proceso es la razón principal por la cual tantas pequeñas y medianas empresas son pirateadas cada año. No se debe a que los grupos de amenazas se interesen específicamente en ellos, sino a que se encuentran vulnerabilidades en su red o arquitectura del sitio web utilizando técnicas simples de inteligencia de código abierto. En resumen, son objetivos fáciles.
Y la inteligencia de código abierto no solo permite ataques técnicos a los sistemas y redes de TI. Los actores de la amenaza también buscan información sobre individuos y organizaciones que puedan usarse para informar campañas sofisticadas de ingeniería social mediante phishing (correo electrónico), vishing (teléfono o correo de voz) y SMiShing (SMS).
A menudo, la información aparentemente inocua que se comparte a través de redes sociales y blogs se puede utilizar para desarrollar campañas de ingeniería social muy convincentes, que a su vez se utilizan para engañar a los usuarios bien intencionados para que comprometan la red o los activos de su organización.
Esta es la razón por la que es tan importante utilizar la inteligencia de código abierto con fines de seguridad: brinda la oportunidad de encontrar y corregir las debilidades en la red de su organización y eliminar información confidencial antes de que un actor de amenazas use las mismas herramientas y técnicas para explotarlas.
Técnicas de inteligencia de código abierto
Ahora que hemos cubierto los usos de la inteligencia de código abierto (tanto buenos como malos), es hora de ver algunas de las técnicas que se pueden usar para recopilar y procesar información de código abierto.
Primero, debes tener una estrategia clara y un marco establecido para adquirir y usar inteligencia de código abierto. No se recomienda abordar la inteligencia de código abierto desde la perspectiva de encontrar cualquier cosa y todo lo que pueda ser interesante o útil; como ya hemos discutido, el gran volumen de información disponible a través de fuentes abiertas simplemente te abrumará.
En cambio, debes saber exactamente lo que estás tratando de lograr, por ejemplo, para identificar y remediar las debilidades en tu red, y enfocar tus energías específicamente en lograr esos objetivos.
En segundo lugar, debes identificar un conjunto de herramientas y técnicas para recopilar y procesar información de código abierto. Una vez más, el volumen de información disponible es demasiado grande para que los procesos manuales sean incluso ligeramente efectivos.
En términos generales, la recopilación de inteligencia de código abierto se divide en dos categorías: recopilación pasiva y recopilación activa.
La recopilación pasiva a menudo implica el uso de plataformas de inteligencia de amenazas (TIP) para combinar una variedad de fuentes de amenazas en una única ubicación de fácil acceso. Si bien este es un paso importante desde la recolección manual de inteligencia, el riesgo de sobrecarga de información sigue siendo significativo.
Las soluciones de inteligencia de amenazas más avanzadas resuelven este problema mediante el uso de inteligencia artificial, aprendizaje automático y procesamiento del lenguaje natural para automatizar el proceso de priorizar y descartar alertas basadas en las necesidades específicas de una organización.
De manera similar, los grupos organizados de amenazas a menudo usan botnets para recopilar información valiosa utilizando técnicas como el rastreo de tráfico y el registro de teclas.
Por otro lado, la recopilación activa es el uso de una variedad de técnicas para buscar información o conocimientos específicos. Para los profesionales de seguridad, este tipo de trabajo de recolección generalmente se realiza por una de dos razones:
- Una alerta recopilada pasivamente ha puesto de manifiesto una amenaza potencial y se requiere una mayor comprensión.
- El enfoque de un ejercicio de recopilación de inteligencia es muy específico, como un ejercicio de prueba de penetración.
Herramientas de inteligencia de código abierto
Para finalizar, veremos algunas de las herramientas más utilizadas para recopilar y procesar inteligencia de código abierto.
Si bien hay muchas herramientas gratuitas y útiles disponibles para los profesionales de la seguridad y los actores de amenazas por igual, algunas de las herramientas de inteligencia de código abierto más utilizadas son los motores de búsqueda como Google, pero no como la mayoría de nosotros los conocemos.
Como ya hemos explicado, uno de los mayores problemas que enfrentan los profesionales de la seguridad es la regularidad con la que los usuarios normales y bien intencionados dejan accidentalmente activos e información sensibles expuestos a Internet. Hay una serie de funciones de búsqueda avanzada llamadas consultas de «Google dork» que se pueden utilizar para identificar la información y los activos que exponen.
Hay una gran cantidad de herramientas gratuitas y premium que se pueden utilizar para buscar y analizar información de código abierto, con funciones comunes que incluyen:
- Búsqueda de metadatos
- Búsqueda de código
- Investigación de personas e identidad
- Número de teléfono de investigación
- Búsqueda y verificación de correo electrónico
- Vinculación de cuentas de redes sociales
- Análisis de imagen
- Investigación geoespacial y mapeo
- Detección de red inalámbrica y análisis de paquetes.
Vamos a ver las principales herramientas de inteligencia de código abierto.
Maltego
Maltego es desarrollado por Paterva y es utilizado por profesionales de seguridad e investigadores forenses para recopilar y analizar inteligencia de código abierto.
Puede recopilar fácilmente información de varias fuentes y usar varias transformaciones para generar resultados gráficos.
Las transformaciones están incorporadas y también se pueden personalizar según el requisito. Maltego está escrito en Java y viene preempaquetado en Kali Linux.
Para usar Maltego, se requiere el registro del usuario, el registro es gratuito. Una vez que los usuarios se registran pueden usar esta herramienta para crear la huella digital del objetivo en Internet.
Shodan
Google es el motor de búsqueda para todos, pero Shodan es el motor de búsqueda para los piratas informáticos. En lugar de presentar el resultado como otros motores de búsqueda, mostrará el resultado que tendrá más sentido para un profesional de la seguridad.
Como profesional certificado en seguridad de la información, una de las entidades importantes es el activo digital y la red. Shodan te proporciona mucha información sobre los activos que se han conectado a la red.
Los dispositivos pueden variar de computadoras, cámaras web, señales de tráfico y varios dispositivos IOT. Esto puede ayudar a los analistas de seguridad a identificar el objetivo y probarlo para detectar diversas vulnerabilidades, configuraciones predeterminadas o contraseñas, puertos disponibles, banners y servicios, etc.
Google Dorks
Google es uno de los motores de búsqueda más utilizados cuando se trata de encontrar cosas en Internet. Para una sola búsqueda, los resultados pueden ser de varios cientos de páginas ordenadas por orden de relevancia. Los resultados varían de anuncios, sitios web, publicaciones en redes sociales, imágenes, etc.
Google Dorks puede ayudar a un usuario a orientar la búsqueda o indexar los resultados de una manera mejor y más eficiente. Digamos que el usuario quiere buscar la palabra nombres de usuario pero solo requiere los resultados con archivos PDF y no con sitios web. Esto se hace de la siguiente manera:
<Tipo de archivo: busca una cadena particular en un archivo pdf>
Algunas de las otras opciones de indexación son:
- Inurl: busca una cadena en la URL de la página.
- Intitle: para buscar el título de una palabra clave.
- Ext: para buscar una extensión particular.
- Intext: busca un texto en particular en una página.
A veces también se conoce como piratería de Google.
The Harvester
The Harvester es una excelente herramienta para obtener información relacionada con el correo electrónico y el dominio. Este está incluido previamente en Kali y puede ser muy útil para obtener información.
Metagoofil
Metagoofil está escrito por Christian Martorella y es una herramienta de línea de comandos que se utiliza para recopilar metadatos de documentos públicos. La herramienta viene incluida en Kali Linux y tiene muchas características que buscan el tipo de documento en el destino, descarga local, extracción de metadatos e informes de resultados.
Por ejemplo: los usuarios pueden escanear en busca de un tipo particular de documentos en un dominio particular.
Recon-ng
Recon-ng es una gran herramienta para la recopilación de información de destino. Esto también se incluye en Kali. El poder de esta herramienta radica en el enfoque modular.
Para aquellos que han usado Metasploit, conocerán el poder de las herramientas modulares. Se pueden usar diferentes módulos en el destino para extraer información según las necesidades. Simplemente agrega los dominios en el espacio de trabajo y usa los módulos.
Check usernames
Los sitios web de redes sociales contienen mucha información, pero será muy aburrido y tomará tiempo si necesitas verificar si un nombre de usuario en particular está presente en algún sitio web de redes sociales. Para obtener dicha información, hay un sitio web www.checkusernames.com.
Buscará la presencia de un nombre de usuario en particular en más de 150 sitios web. Los usuarios pueden verificar la presencia de un objetivo en un sitio web en particular para hacer que el ataque sea más específico.
Una versión más avanzada del sitio web es https://knowem.com, que tiene una base de datos más amplia de más de 500 sitios web junto con algunos servicios más.
Tineye
Tineye se utiliza para realizar una búsqueda relacionada con la imagen en la web. Tiene varios productos como el sistema de alerta de tineye, API de búsqueda de color, motor móvil, etc.
Puede buscar si una imagen ha estado disponible en línea y dónde ha aparecido esa imagen. Tineye utiliza redes neuronales, aprendizaje automático y reconocimiento de patrones para obtener los resultados. Utiliza la coincidencia de imágenes, la identificación de marcas de agua, la coincidencia de firmas y varios otros parámetros para hacer coincidir la imagen en lugar de la coincidencia de palabras clave.
El sitio web ofrece extensiones de API y extensiones de navegador también.
Ejemplos de uso de herramientas OSINT en una empresa
Usar la información que está disponible gratuitamente es una tarea importante para la organización. Veamos algunos ejemplos en los que estas herramientas y medios manuales nos rescatan y generan beneficios para la organización.
Contratación de un empleado
La empresa X quiere contratar a algunos empleados para un equipo que maneja los datos sensibles a la organización. Por lo general, las organizaciones realizan una verificación de antecedentes de los empleados antes de contratarlos.
Una verificación de antecedentes incluirá referirse a varios tipos de información para verificar la integridad de la información.
Un empleado podría decir que también ha pasado de la Universidad B presentando los certificados. ¿Cómo nos aseguramos de que la universidad esté allí o no? Varias universidades ofrecen sistemas de búsqueda en línea que pueden verificarse para la validación del certificado.
La verificación policial de antecedentes penales y la búsqueda en varios portales de trabajo para obtener la información también es una forma de información. Las organizaciones también comparten comentarios de los candidatos sobre los portales de trabajo en caso de que tengan que incluir a alguien en la lista negra. ¿Te interesaría contratar a un candidato que está en la lista negra? Quizás sí, pero esto debe pensarse dos veces.
Estamos siendo atacados
La seguridad cibernética está en auge debido al aumento de las amenazas cibernéticas. Consideremos un escenario en el que una organización obtiene un gran tráfico de países inesperados. Esto plantea la preocupación de que este es un ataque de DOS.
Hacer referencia a varias bases de datos que están disponibles gratuitamente en Internet puede ayudarte a tener una idea clara del incidente. ¿Está la IP en la lista negra? ¿Se espera este tráfico? Se pueden obtener varios detalles sobre la fuente de Internet utilizando técnicas OSINT.
Hay muchas herramientas gratuitas basadas en red disponibles en Internet que se han conectado a varias bases de datos para este tipo de información.
Somos los Originales
Las organizaciones que se ocupan del contenido pueden consultar la inteligencia abierta para identificar la autenticidad del contenido.
- Las universidades pueden verificar los envíos de tareas y proyectos copiados.
- Las industrias pueden verificar los códigos copiados.
- Rastrea el uso de imágenes y contenido con derechos de autor.
- Identificar artículos plagiados y literatura.
Conclusión
Cualesquiera que sean tus objetivos, la inteligencia de código abierto puede ser tremendamente valiosa para todas las disciplinas de seguridad. En última instancia, sin embargo, encontrar la combinación correcta de herramientas y técnicas para tus necesidades específicas llevará tiempo, así como un grado de prueba y error.
Las herramientas y técnicas que necesitas para identificar activos inseguros no son las mismas que te ayudarían a realizar un seguimiento de una alerta de amenaza o conectar puntos de datos a través de una variedad de fuentes.
El factor más importante para el éxito de cualquier iniciativa de inteligencia de código abierto es la presencia de una estrategia clara: una vez que sepas lo que estás tratando de lograr y hayas establecido los objetivos en consecuencia, identificar las herramientas y técnicas más útiles será mucho más realizable.