¿Qué es el Bug Bounty?

El Bug Bounty se puede definir como una modalidad de seguridad ofensiva en el que una organización ofrece recompensa a aquellos hackers que encuentren diferentes vulnerabilidades en su infraestructura.

A través de un modelo de seguridad basado en el Crowdsourcing, las compañías logran atraer a grandes talentos de todo el mundo para que verifiquen si sus sistemas están seguros. Para los hackers, se presenta como un reto atractivo poder descubrir vulnerabilidades en los sistemas de compañías de la talla de Facebook, Google, Twitter,…etc y ganar dinero por ello. Por su parte, a las compañías les resulta interesante tener a una gran cantidad de investigadores, muchos de ellos con un alto nivel de conocimientos, auditando la seguridad de sus sistemas. Además, es común, que los hackers dediquen varios meses consecutivos investigando en búsqueda de vulnerabilidades, lo que les lleva a conseguir un amplio conocimiento en profundidad de los sistemas de la compañía.

Una gran peculiaridad del bug bounty, con sus ventajas y desventajas, es que no se paga por tiempo dedicado,sino por resultados. Esto conlleva una parte interesante en la que el hacker no está ligado de ninguna forma a la organización (No hay horarios, ni plazos, ni otro tipo de vinculación) pero a su vez trae el riesgo de que solo facturará si se encuentran vulnerabilidades (No bug, no money).

De una forma esquematizada, la mecánica es la siguiente:

  1. Una organización publica un programa en la que invita a los hackers a encontrar vulnerabilidades a cambio de recompensa. Cada programa tiene sus políticas y condiciones, en las que se indicará lo que se puede hacer y lo que no.
  2. Los hackers tendrán que emplear su conocimiento y habilidades para descubrir vulnerabilidades. Hay diferentes metodologías, cada hacker emplea la que mejor se le adapte.
  3. Cuando el hacker encuentra una vulnerabilidad, se lo debe comunicar a la empresa a través de un reporte en el que explicará en que consiste la vulnerabilidad, su impacto y pasos para reproducirla
  4. Los triagers (Personas encargadas en verificar y categorizar las vulnerabilidades) reproducirán la vulnerabilidad reportada y verificarán si cumple con las condiciones descritas en el programa, en ese caso, el hacker recibirá una recompensa. Hay que tener en cuenta que solo será el primer hacker en reportar la vulnerabilidad el que se lleve la recompensa.
Bug Bounty
Se buscan Bugs, se ofrece recompensa

En las siguientes secciones del artículo, se verán con más detalle los aspectos básicos para comprender el funcionamiento del mundo del bug bounty:

  • Programas
  • Plataformas
  • Escribir un reporte
  • Estados reporte
  • Vulnerabilidades mas destacadas
  • Como empezar?
  • Conclusión
  • Bonus Referencias

Programas

Las compañías invitan a los hackers a auditar sus infraestructuras a través de los programas.En estos, se presentan las condiciones y requisitos necesarios para poder ser recompensado.

Es fundamental leer con atención las condiciones descritas en la política del programa, pues es un error muy habitual lanzarse a investigar sin leer demasiado e ignorar los aspectos descritos en las políticas que son fundamentales para que todo el trabajo realizado por el investigador llegue a buen puerto. Hay que leer detenidamente y ver que activos están en el Scope, que vulnerabilidades se aceptan, instrucciones concretas para facilitar las labores de los equipos de seguridad,… etc

Las condiciones, además de ser un requisito básico para poder ser recompensado, también pueden servir para decantarse por un programa u otro. Así pues, se puede elegir en función de si interesa un scope reducido o amplio, si es buscar vulnerabilidades en determinados activos de diferentes tipos. Además también cuenta con distintas métricas para conocer el estado del programa. También aquí se determina que un programa es Safe Harbor, es decir que cumpliendo sus condiciones no hay problemas legales

A continuación se hace hincapié en aquellos aspectos básicos y comunes a tener en cuenta a la hora de leer las políticas de los programas:

  • Scope: Activos en los cuales se podrá investigar en búsqueda de vulnerabilidades(In Scope). También se puede excluir algún activo en concreto (Out of Scope). Solo serán validos los reportes que sean sobre activos dentro del Scope.

Aquí puede haber grandes variaciones de un programa a otro: algunos tendrán un scope amplio (Muchos activos) y otros tendrán un scope más pequeño (Algún programa puede centrarse exclusivamente en su web principal por ejemplo). También se pueden especificar activos IoT, Mobile Hacking, API o Análisis de código, por tanto cada hacker podrá elegir en función de sus habilidades

Scope del programa EpicGames
  • Vulnerabilidades permitidas: De la misma forma que para los activos, también habrá algunas vulnerabilidades que no se acepten y técnicas que no se puedan utilizar. Por ejemplo: uso de ingeniería social, uso de Nessus, etc suelen estar prohibidas. En muchos casos a cada tipo de vulnerabilidad se le asigna una recompensa
  • Recompensas: Relación entre criticidad de la vulnerabilidad y dinero con el que es recompensado.
Recompensas de un programa
  • Estadísticas del programa: Métricas relativas a como gestiona la organización los reportes: cuantos reportes se han recibido, cuantas vulnerabilidades solucionadas, tiempo medio de respuesta al reporte, …etc.
Estadísticas de un programa

Los puntos vistos suelen ser habituales a todos los programas, pero cada organización podrá poner en su programa aquello que considere necesario y que aporte para mejorar la experiencia de reporte de vulnerabilidades.

A modo de ejemplo, se puede ver el programa de Epic Games (público en Hackerone): https://hackerone.com/epicgames?view_policy=true o también el de Tomorrowland (Sí se puede hackear a Tomorrowland y ser recompensado por ello!) que es público en Intigriti https://app.intigriti.com/programs/tomorrowland/tomorrowland/detail

Tipos de programas

En función de las posibilidades de participación encontramos los siguientes programas:

  • Programa Público: Cualquier usuario puede acceder a las condiciones del programa e investigar en búsqueda de vulnerabilidades. Simplemente hace falta ponerse manos a la obra.
  • Programa Privado: Solo se podrá participar con una invitación. Estas invitaciones suelen llegar tras conseguir descubrir vulnerabilidades en otros programas dentro de una misma plataforma. Como se verá en la siguiente sección, las plataformas usan la gamificación para motivar a los hackers, y por cada vulnerabilidad se suman puntos para la clasificación. Tener una buena reputación (ganar puntos) facilitará que lleguen las invitaciones de programas privados. Debido que su acceso es exclusivo, suele haber menos hackers investigando simultáneamente.

Hay otro tipo de programas, sin compensación económica, los denominados VDP (Vulnerability Disclosure Program), en los cuales la recompensa es swag o puntos de reputación para la plataforma. (con los cuales se puede acceder a programas privados). Los VDP, también pueden ser públicos o privados.

Plataformas

Cuando una organización decide lanzar un programa de Bug Bounty puede hacerlo de diferentes formas:

  • Programa Self-Hosted: Las organizaciones gestionan su propio programa de bug bounty única y exclusivamente. El personal de ciberseguridad de la organización será el responsable de comunicarse con los hackers y verificar las vulnerabilidades recibidas. Microsoft, Meta, Apple, son algunas de las organizaciones que gestionan su propio programa.
  • Plataforma: Son entornos que albergan varios programas de diferentes organizaciones. Estos programas aparecen organizados en un directorio(Solo los públicos), acompañados de estadísticas y características del programa. Las plataformas sirven de intermediarias entre el hacker y el equipo de seguridad, facilitando tareas como la comunicación y el pago de la recompensa. Estos entornos, además, usan la gamificación para hacer más atractivo el proceso y que haya competencia, fomentando, por supuesto, la creación de una comunidad. Por último, también son unas fuentes de consulta de información muy interesante, ya que en las plataformas se podrán encontrar write-ups, artículos, tutoriales, etc.
Directorio de Programas en Hackerone

Plataformas populares

A continuación se listan algunas de las plataformas más populares

Cada plataforma tiene sus programas, por tanto es una cuestión subjetiva determinar cual es la mejor. Actualmente Hackerone y Bugcrowd son las más populares, aunque lo más común es que los hackers tengan cuenta en varias plataformas para así poder “pelearse” con los programas que más les gusten.

Reportes

Cuando un hacker encuentre una vulnerabilidad, para comunicarse con la empresa en cuestión, deberá escribir un reporte. Un reporte es un informe, con carácter profesional, en el que de una forma clara y concisa se explicará cual es la vulnerabilidad, que impacto tiene y los pasos a seguir para explotarla.

¿Cómo escribir un reporte?

Un buen reporte facilitará el trabajo a los triagers, y hará que el proceso de resolución sea más eficiente. Ya se puede haber descubierto una vulnerabilidad espectacular, que sin un buen reporte se quedará en nada. Es fundamental saber transmitir el hallazgo y permitir así validar la vulnerabilidad y dejar constancia de su hallazgo.

Por lo general, las plataformas de Bug Bounty tienen un formulario o plantilla que ayudará a guiar la información que se debe proporcionar cuando se encuentre una vulnerabilidad. En cualquier caso, a continuación se listan varios aspectos a tener en cuenta:

  1. Título Descriptivo: Un titulo descriptivo puede contener el nombre de la vulnerabilidad, el endpoint en el que se haya encontrado y el impacto que causa. Estilo: <Nombre vulnerabilidad> en <nombre endpoint> permite <Lo que podemos hacer al explotar la vulnerabilidad>
  2. Resumen de la vulnerabilidad: Un breve resumen que contiene toda la información de la vulnerabilidad encontrada. En este resumen se añadirían detalles importantes que por simplicidad no se escribieron en el título
  3. Valoración criticidad: Se debe valorar la severidad que presenta la vulnerabilidad encontrada. Se pueden utilizar los siguientes recursos para dar una valoración acertada: Bugcrowd Taxonomy, CVSS calculator.
  4. Pasos a seguir – POC: En este punto se proporcionan las instrucciones guiadas, paso a paso, para que el triager pueda reproducir la vulnerabilidad. Añadir capturas de pantalla, o incluso, algún video haciendo la demostración de la explotación de la vulnerabilidad a modo de POC, siempre será una buena idea, sobre todo, en aquellos casos que la explotación sea más compleja de realizar.
  5. Describir Impacto: En este punto se describen las consecuencias que la explotación de la vulnerabilidad tiene sobre la organización. Este punto es fundamental, hay que mostrar que claramente que pasaría si la vulnerabilidad fuera explotada. Un mayor impacto, tendrá mayor CVSS y por tanto la recompensa será mayor.
  6. Posibles mitigaciones: Este punto no es estrictamentenecesario, pero puede ser interesante aportar una sugerencia para resolver el problema
  7. Recursos: Siempre es una buena idea añadir referencias sobre las que se puede apoyar el reporte.

Por último, es una buena técnica no dar nada por asumido, para que, de esta forma, el reporte sea autocontenido y proporcione todos los detalles necesarios para reproducir la vulnerabilidad y ser consciente de las consecuencias de explotarla.

Aquí se pueden ver más consejos en el blog oficial de YesWeHack:https://blog.yeswehack.com/yeswerhackers/tips-write-report-bug-bounty/

En Hackerone, los reportes ser pueden votar. Aquí está un repositorio con los reportes más votados en la plataforma https://github.com/reddelexc/hackerone-reports

Estados de un reporte

Una vez enviado y analizado, los triagers darán un estado al reporte:

  • Resolved: El reporte es válido y no se necesita más información. La vulnerabilidad será parcheada y el hacker recompensado. Este será el objetivo de todo bug hunter!
  • Duplicate: La vulnerabilidad descubierta es válida pero ya está pendiente de ser parcheada porque fue previamente descubierta por otro hacker. En el Bug Bounty se lleva la recompensa el que primero encuentre la vulnerabilidad. Deja un mal sabor de boca al hacker que se lleva el duplicado, pero mirándolo por el lado positivo, el trabajo está bien hecho y será cuestión de continuar trabajando para que lleguen las recompensas.
  • Informative: El reporte contiene información útil para la organización, pero simplemente con carácter informativo ya que carece de impacto contra su seguridad.
  • N/A: El reporte no aplica para llevarse recompensa ya que no es válido. Esto puede deberse a que no cumple algo de lo indicado en las condiciones del programa.
  • Triaged: El reporte está siendo evaluado pero todavía no está resuelto. Por lo general es buena señal, ya que se está investigando como parchear la vulnerabilidad.
  • Need more information: El triager necesita que el hacker aporte más información para poder determinar un estado final para el reporte.

Tras enviar un reporte, es habitual que haya un hilo de comunicación con los triagers para así poder validar el reporte de una forma eficiente. A menudo es necesario conocer más detalles para poder replicar la vulnerabilidad con éxito.

Para conocer mejor la labor de los triagers y entender como funciona el bug bounty desde otro punto de vista, se puede ver este artículo, escrito por la triager Shreya Pohekar.

La importancia del impacto

Como se mencionaba en la sección previa,explicar y recalcar el impacto de la vulnerabilidad encontrada, será un aspecto fundamental para que el reporte sea, ya no solo sea cerrado como “Resolved”, sino también recompensado de acorde a la criticidad del hallazgo. Cuando se habla de impacto, se hace referencia a las consecuencias que puede tener para la organización que la vulnerabilidad sea explotada.

Para cuantificar el impacto, se tendrá en cuenta la triada CIA (Confidencialidad, Integridad y Disponibilidad(Availability)) que determina los 3 principios de la ciberseguridad.

  • Confidencialidad: Asegura que la información solo sea accesible por usuarios autorizados
  • Integridad: Asegura que la información sea correcta y no sufra modificaciones
  • Disponibilidad: Asegura que la información y los sistemas siempre puedan ser utilizados sin sufrir interrupciones.

Cuando se encuentre una vulnerabilidad, habrá que cuestionarse si su explotación altera de alguna forma a alguno de estos 3 principios mencionados. Además, también habrá que tener en cuenta el scope del programa, ya que ahí se puede ver la prioridad que se otorga a los distintos activos (Una misma vulnerabilidad tendrá mayor recompensa en un activo principal para la organización)

Como ya se mencionó previamente, una forma de conocer el impacto es utilizando la calculadora de CVSS

Vulnerabilidades más destacadas

¿Qué se puede reportar? ¿Qué vulnerabilidades se pueden buscar? Este es el quid de la cuestión del Bug Bounty. Como se menciona en las secciones anteriores, se podrá reportar cualquier fallo que ponga en entredicho la seguridad de la organización y que esté dentro del scope determinado en el programa.

La siguiente gráfica muestra un TOP 10 de los tipos de vulnerabilidades encontradas en Hackerone en 2020 (https://www.hackerone.com/top-ten-vulnerabilities)

https://i0.wp.com/www.hackerone.com/sites/default/files/Top-10-Vulnerabilities@2x_0.png?resize=567%2C565&ssl=1

Como se puede observar, hay bastante relación con las vulnerabilidades de OWASP Top 10. OWASP es una organización que trabaja en promover y mejorar la seguridad de las aplicaciones, tanto en su versión web como en móvil. Por tanto, en OWASP podremos encontrar una gran cantidad de recursos que pueden servir de ayuda.

OWASP TOP 10

OWASP Mobile TOP 10

OWASP API TOP 10

En la sección de hackactivity de la plataforma Hackerone se podrán ver las vulnerabilidades que reportan los hackers a los distintos programas públicos de esta forma. En muchas de ellas practicamente solo podremos ver el nombre de la vulnerabilidad y un pequeño resumen sobre esta, pero en muchas otras se podrá ver el reporte completo, teniendo así una buena fuente de aprendizaje.

¿Cómo empezar?

Como dice Michael Jordan, para jugar al baloncesto “Get the fundamentals down and the level of everything you do will rise”(“Consigue dominar los fundamentos básicos y el nivel de todo lo que hagas subirá”). En el ámbito del Bug Bounty también se puede aplicar esa reflexión, tener dominados los aspectos básicos (sistemas, redes, hacking ….) incrementará mucho las posibilidades de éxito, y como en todo, proporcionará una buena base para ir afianzando los conocimientos que se van adquiriendo en el futuro y que a la larga marcarán una notable diferencia.

Ligado con esta reflexión y como una imagen vale más que 1000 palabras, hay un meme muy popular que refleja un error muy común, que es el de querer lanzarse a por los bugs sin dominar los aspectos básicos. Prácticar en CTFs es una buena opción para ganar conocimientos y soltura. Además de leer artículos, reportes, writeups,… y por supuesto investigar y “darse muchos cabezazos contra la pared” hasta que las piezas vayan encajando.

https://i0.wp.com/www.meme-arsenal.com/memes/34bb04d9d71a58a22237520fc9df0e4b.jpg?resize=535%2C678&ssl=1

Habitualmente se hace la analogía en la que alguien que está comenzando a entrenar a correr se dispone a participar en una maratón contra otros atletas más contrastados. Lo normal es que tenga un resultado decepcionante y esto le puede llevar a la frustración. Aquí pasa parecido. Cuidar los aspectos mentales es fundamental para disfrutar. Sobre salud mental tenemos este fantástico podcast de Securiters donde junto a la psicóloga Lucía Luengas se habla de aquellas situaciones que afectan psicológicamente a los profesionales de la ciberseguridad

Uno de los mejores hábitos que se puede tomar al comenzar es el de tomar notas. Apuntar todo aprendizaje y hallazgo del día a día. Da igual la forma, ahí depende de como a cada uno le vaya mejor. Hay muchas opciones como CherryTree, Notion, Obsidian,…etc y por supuesto con el clásico papel y boli. Llevar un registro de los aprendizajes y progresos siempre ayudará mucho.

Por último, en esta charla de Jaime Restrepo (Dragonjar) se puede descubrir el mundo del Bug Bounty y que detalles tener en cuenta para iniciarse

Al final de este artículo (en la sección de bonus) se puede encontrar un listado de recursos, artículos, etc que pueden servir para profundizar en el mundo del Bug Bounty

Conclusiones

Con el Bug Bounty se puede ganar dinero, pero no hay que confundirse, no es dinero fácil. Hay que tener muy claro que el éxito llegará con dedicación, esfuerzo y por supuesto disfrutar de este proceso. Tener la idea de que el Bug Bounty es sentarse un momento delante del ordenador y ejecutar una herramienta para que lleguen las vulnerabilidades y billetes solos de forma fácil es un planteamiento que llevará al burnout y la frustración tarde o temprano.

A nivel psicológico, el bug bounty puede ser muy exigente. Una mala gestión de las expectativas, poner mucha presión en uno mismo, una mala racha de hallazgos,… etc pueden llevar al famoso burnout. Por eso, prestar especial atención a la salud mental y llevar una vida equilibrada es muy recomendable.

El Bug Bounty es una actividad muy atractiva para los amantes del hacking. El hecho de poder investigar en los activos de las compañías y poder ser recompensado por poder ayudar a que el mundo sea más ciberseguro es algo muy satisfactorio. Además, para poder conseguir este objetivo se hace imprescindible tener conocimientos, los cuales llegan dedicando tiempo a experimentar, aprender, probar herramientas, leer artículos, preguntar a la comunidad,…etc. En definitiva, una serie de tareas que llevan a trabajar en progresar y ser mejor día a día. Y por supuesto disfrutando de este proceso, porque como decía Aristóteles: “El placer en el trabajo lleva a la perfección de la obra

Bonus

ENLACES A RECURSOS INTERESANTES:

https://github.com/nahamsec/Resources-for-Beginner-Bug-Bounty-Hunters

https://github.com/jhaddix/tbhm

zseano’s methodology | BugBountyHunter.com

Beginner to Advanced Bug Bounty Hunting Course | UPDATED

https://portswigger.net/web-security (Web Security Academy)

LevelUp Archives | Bugcrowd (BugCrowd University)

Top 20 bug bounty creators – Intigriti

Lista de Twitter con cuentas referencia sobre Bug Bounty

Bug Bounty ES (Grupo de Telegram en español sobre el Bug Bounty)

The Bug Bounty Hunter (Canal de Telegram dónde se recopilan artćulos sobre BB)

webs3c (community for web application security enthusiasts and professionals.)

Cómo dirigirte a una empresa o la importancia de la salud mental: 4 claves para ‘hackers’ que quieran ganar dinero reportando vulnerabilidades

The 10 rules to be successful in your bug bounty career

Hakluke’s huge list of resources for beginner hackers

¿Encontraste este artículo interesante? Sigue a DDR en TwitterMastodonLinkedInTiktok y Facebook suscríbete a nuestra newsletter.