💰

Módulo 1 - ¿Qué es el Bug Bounty?

El Bug Bounty

En este Curso vamos a hablar sobre un tema emocionante y relevante en el mundo de la ciberseguridad: el Bug Bounty.

Antes de comenzar quiero decirte que NO IMPORTA si tu experiencia laboral, personal o profesional viene de un campo diferente, o si no tienes experiencia alguna, el Bug Bounty es un campo que tiene cabida para todos! y en este curso te vamos a acompañar desde Cero para que vayas creciendo en conocimiento y confianza; así que considérate más que Bienvenid@ a este curso.

El Bug Bounty es un programa que ofrece recompensas a hackers éticos por descubrir y reportar vulnerabilidades de seguridad importantes en sitios web y aplicaciones populares. Los hackers éticos, y pentesters, buscan activamente debilidades críticas en las aplicaciones, las documentan meticulosamente y las envían a la empresa, entidad correspondiente o programa de Bug Bounty para su validación. Si se verifica que la vulnerabilidad es legítima, explotable y cumple con los criterios de gravedad del programa, el hacker o consultor recibe una recompensa monetaria o un reconocimiento en especie (Gorras, Camisetas, Morrales, etc.).

Estoy emocionado de compartir este conocimiento con ustedes y espero que tengan una experiencia de aprendizaje gratificante y enriquecedora. La ciberseguridad es un tema cada vez más importante en nuestro mundo en línea, y estoy seguro de que este curso les será de gran ayuda. ¡Vamos a empezar!

Video: Que es el Bug Bounty

¿Por qué es importante el Bug Bounty?

Bueno, para empezar, cada vez son más las empresas que dependen de la tecnología para llevar a cabo sus negocios. Con esta dependencia, surge la necesidad de proteger los datos que se poseen; desde los perfiles de redes sociales hasta las bases de datos de clientes, la información pasa a ser el activo más valioso de las empresas y de las entidades. Las vulnerabilidades pueden tener consecuencias desastrosas, como fugas de información, pérdida de reputación o incluso la pérdida de negocios. Los programas de Bug Bounty proporcionan una forma eficaz de abordar estos problemas y mejorar la seguridad en línea.

Este enfoque tiene varias ventajas significativas:

  1. Mejora drásticamente la seguridad de las aplicaciones al identificar y corregir rápidamente las debilidades críticas antes de que las encuentren los hackers malintencionados o cibercriminales.
  1. Reduce en gran medida los costos catastróficos asociados con violaciones de datos, fraudes y otras actividades maliciosas.
  1. Mejora la reputación y la lealtad de los clientes al demostrar que la compañía tiene un profundo compromiso con la privacidad, la seguridad y la protección de datos.

Video: Importancia del Bug Bounty

¿Qué Requisitos son necesarios para participar en Bug Bounty?

Para los hackers éticos experimentados, el Bug Bounty ofrece la oportunidad de ganarse la vida de manera legal y ética encontrando y reportando regularmente vulnerabilidades extremadamente valiosas en las aplicaciones más populares.

Con práctica y un excelente historial de reportes de alta calidad, es posible convertirse en un cazador de bugs de renombre y comenzar a cobrar recompensas de seis cifras por las vulnerabilidades más críticas. El Bug Bounty ha dado lugar a una profesión altamente especializada y lucrativa dentro de la industria de la ciberseguridad.

✍🏻
En este curso, exploraremos las técnicas, metodologías y herramientas necesarias para llevar a cabo una investigación exitosa de Bug Bounty. Comenzaremos por aprender los fundamentos de la ciberseguridad, e iremos profundizando gradualmente entregándote todo el conocimiento necesario para que te conviertas en un Bug Bounty Hunter!

Video: Puedes Vivir del Bug Bounty?

¿Es posible vivir del Bug Bounty?

La respuesta es Sí!; para muchos hackers éticos experimentados, el Bug Bounty se ha convertido en una carrera profesional viable y lucrativa. Algunas claves para vivir del Bug Bounty incluyen:

💡
Construir una reputación sólida reportando regularmente vulnerabilidades valiosas a los principales programas Bug Bounty. Con el tiempo, los programas y los patrocinadores te conocerán como un cazador o cazadora de bugs de confianza y te pagarán recompensas cada vez mayores.
💡
Especializarse en tipos específicos de aplicaciones, tecnologías o industrias. Cuanto más profundo sea tu conocimiento, más valiosas serán las vulnerabilidades que encuentres.
💡
Convertirte en un cazador de bugs senior en uno o más programas Bug Bounty. Las recompensas suelen ser significativamente mayores para los cazadores de bugs senior y expertos.
💡
Diversificar tus ingresos reportando a múltiples programas Bug Bounty. No dependes de ningún programa individual.
💡
Considerar convertirte en un cazador de bugs independiente. Puedes buscar y validar tus propias vulnerabilidades para venderlas directamente a los patrocinadores o a los programas Bug Bounty.
💡
Mantener tus habilidades técnicas actualizadas con la práctica constante y la formación continua. La tecnología cambia rápidamente, por lo que debes seguir el ritmo.
💡
Ser persistente y paciente. Encontrar buenas vulnerabilidades lleva tiempo y esfuerzo. No te desanimes fácil y eventualmente se convertirá en una carrera lucrativa.

Terminología del Bug Bounty

Pentesting

La prueba de penetración o pentesting, es una técnica comúnmente utilizada en la investigación de Bug Bounty. Se trata de una simulación controlada de un ataque cibernético en la que se busca identificar las vulnerabilidades de una empresa o sistema.

✍🏻
En este curso, aprenderemos cómo llevar a cabo una prueba de penetración y cómo identificar las vulnerabilidades más comunes en un Sitio WEB. Además, discutiremos la importancia de la comunicación en la investigación de Bug Bounty. Aprenderemos cómo comunicar de manera efectiva los hallazgos de seguridad a las empresas y cómo garantizar que se tomen medidas para solucionar los problemas identificados.

Safe Harbor – Puerto Seguro

Safe Harbor es un término utilizado en el mundo de la ciberseguridad para referirse a un enfoque en el que las empresas ofrecen un "puerto seguro" a los investigadores de seguridad que divulgan vulnerabilidades en sus sistemas sin temor a represalias legales o de otra índole. Es decir, si un investigador de seguridad encuentra una vulnerabilidad en un sistema y la divulga según las reglas establecidas por el programa de Bug Bounty, la empresa no tomará medidas legales en su contra. Esto es importante porque los investigadores de seguridad a menudo se preocupan por divulgar vulnerabilidades, ya que temen represalias legales o de otro tipo.

VDP – Vulnerability Disclosure program

El programa de divulgación de vulnerabilidades (VDP, por sus siglas en inglés) es un proceso en el que una organización establece un canal para que las personas informen sobre las vulnerabilidades de seguridad que los investigadores encuentran en sus sistemas o aplicaciones.

Por ejemplo, si un investigador de seguridad descubre una vulnerabilidad en el sitio web de una empresa, puede informar de ella a través del VDP de la empresa en lugar de hacerlo pública. La empresa luego investiga la vulnerabilidad y toma las medidas necesarias para solucionarla antes de que pueda ser explotada por un atacante.

El VDP es similar al programa de Bug Bounty, pero en lugar de ofrecer una recompensa monetaria por la divulgación de vulnerabilidades, la empresa ofrece un canal seguro para informar sobre ellas sin temor a represalias.

Responsible Disclosure – Divulgación Responsable

La Divulgación Responsable es un proceso en el que un investigador de seguridad informa a una empresa sobre una vulnerabilidad que ha encontrado en su sistema o aplicación. En lugar de hacer público el hallazgo, el investigador informa a la empresa para que puedan solucionar el problema antes de que pueda ser explotado por un atacante. Este proceso requiere confianza entre el investigador y la empresa, y puede haber un plazo acordado para que la empresa solucione la vulnerabilidad antes de que el investigador haga pública su divulgación.

Security.txt

El archivo security.txt es un archivo creado por el propietario de un sitio web para informar a los investigadores de seguridad sobre cómo alertar acerca de cualquier problema de seguridad que encuentren. Este archivo se coloca en la raíz del sitio web y contiene información como el correo electrónico de contacto para informar de problemas de seguridad, la política de divulgación responsable de la empresa y cualquier otra información relevante.

El archivo security.txt es una forma eficaz de fomentar la divulgación responsable de vulnerabilidades y mejorar la seguridad en línea. Al proporcionar una forma clara y fácil de informar de problemas de seguridad, las empresas pueden tomar medidas rápidas para solucionar los problemas antes de que puedan ser explotados por atacantes malintencionados.

Mas información: https://securitytxt.org/

Ejemplo de Archivo Security.txt:

💡
Contact: mailto: [email protected]

Expires: Mon, 10 May 2023 10:00:00

Canonical: https://www.secpro.co/.well-known/security.txt

Encryption: https://static.secpro.co/0xBG56JHFKUIP.asc

Policy: https://secpro.co/privacy-policy

Preferred-Languages: en, es

Vulnerabilidad

Una vulnerabilidad es una debilidad, falla o agujero de seguridad en un sistema, la cual puede tener varias causas; por ejemplo:

Si una Vulnerabilidad se materializa, podría afectar uno o más componentes de la Triada CID.

¿En dónde encuentro información sobre Vulnerabilidades?

Existen diversos portales en internet en donde podemos consultar acerca de las vulnerabilidades que han sido detectadas para la mayoría de los sistemas operativos y aplicaciones en el mercado; aquí tenemos algunos ejemplos:

💡
CVE Quiere decir: Common Vulnerabilities and Exposures - Vulnerabilidades Comunes y Exposiciones

La Triada CID o CIA: Confidentiality, Integrity, Availability

La triada CID es un concepto clave que se refiere a los tres componentes fundamentales de la seguridad de la información: confidencialidad, integridad y disponibilidad.

Estos tres componentes son cruciales para garantizar que la información esté protegida y sea útil para los usuarios autorizados.

Imagen: La Triada CID o CIA

Video: Triada CID

Confidencialidad

Se refiere a la protección de la información para que sólo las personas autorizadas tengan acceso. La confidencialidad se puede lograr mediante técnicas de cifrado, autenticación y control de acceso.

Integridad

Se refiere a la protección de la información para evitar su alteración o modificación no autorizada. Se puede lograr mediante técnicas de firma digital, control de versiones y auditorías.

Disponibilidad

Se refiere a la garantía de que la información esté disponible y accesible cuando se necesite. Se puede lograr mediante técnicas de redundancia, tolerancia a fallos y copias de seguridad.

Sistemas de Evaluación o Scoring Systems

Hemos hablado ya de las vulnerabilidades, pero cómo podemos determinar si una vulnerabilidad es más grave o importante que otra; es decir, una vez detectadas, ¿cómo saber en cuál de ellas debería enfocar sus esfuerzos de remediación el dueño de la infraestructura en donde detectamos vulnerabilidades?; la respuesta es relativamente simple; existen unas tablas que nos indican la severidad de una vulnerabilidad, dependiendo de varios factores, o sea: unas métricas.

Existen varios sistemas de evaluación; entre los más importantes podemos destacar:

💡
CVSS ( Common Vulnerability Scoring System) - https://en.wikipedia.org/wiki/Common_Vulnerability_Scoring_System el cual hasta la fecha va por su versión 3.1 (La última actualización se realizó el 17 de junio de 2019).
Common Vulnerability Scoring System
The Common Vulnerability Scoring System (CVSS) is a free and open industry standard for assessing the severity of computer system security vulnerabilities. CVSS attempts to assign severity scores to vulnerabilities, allowing responders to prioritize responses and resources according to threat. Scores are calculated based on a formula that depends on several metrics that approximate ease and impact of an exploit. Scores range from 0 to 10, with 10 being the most severe. While many utilize only the CVSS Base score for determining severity, temporal and environmental scores also exist, to factor in availability of mitigations and how widespread vulnerable systems are within an organization, respectively.
https://en.wikipedia.org/wiki/Common_Vulnerability_Scoring_System
👉🏻
En este enlace https://www.first.org/cvss/v3.1/specification-document puedes encontrar las especificaciones técnicas, pero voy a explicarte aquí cómo se mide la gravedad de una vulnerabilidad.

CVSS v3.1 Specification Document
https://www.first.org/cvss/v3.1/specification-document
Video: Sistemas de Evaluación de Vulnerabilidades

¿Cómo se calcula la gravedad de una vulnerabilidad?

La criticidad de una vulnerabilidad se calcula utilizando el sistema de puntuación del Common Vulnerability Scoring System (CVSS). Este sistema utiliza una fórmula matemática para determinar la criticidad de una vulnerabilidad, basándose en una serie de factores que incluyen la gravedad del impacto de la vulnerabilidad, la facilidad de explotación, la complejidad del ataque y la disponibilidad de soluciones.

El puntaje CVSS se mide en una escala del 0 al 10, donde 0 indica que la vulnerabilidad no es crítica y 10 indica que es extremadamente crítica. El puntaje se calcula utilizando tres métricas: Base, Temporal y Ambiental.

Imagen: Métricas de Evaluación de Criticidad de Vulnerabilidades

Imágen tomada de: https://www.first.org/cvss/v3.1/specification-document

Métrica Base

Representan las características intrínsecas de la vulnerabilidad, que son constantes en el tiempo y en el entorno del usuario.

Métrica Temporal

Refleja el estado actual de la vulnerabilidad, que puede cambiar con el tiempo debido a factores como la disponibilidad de exploits o parches

Métrica Ambiental o de Entorno

Las métricas de entorno se refieren al impacto específico de la vulnerabilidad en el contexto particular de cada organización o usuario.

Cada grupo de métricas tiene una fórmula para obtener un puntaje parcial, que luego se combina para obtener el puntaje final

👉🏻
En este enlace encontrarás la Calculadora de Vulnerabilidades: https://www.first.org/cvss/calculator/3.1
Common Vulnerability Scoring System Version 3.1 Calculator
https://www.first.org/cvss/calculator/3.1
Imagen: CVSS Scoring System

Video: Calculadora CVSS

¿Qué es un Exploit?

Un exploit es un programa o código malicioso diseñado para aprovechar una vulnerabilidad o debilidad en un sistema informático con el fin de ejecutar acciones no deseadas o tomar control del sistema.

Un ejemplo común sería un exploit diseñado para aprovechar una vulnerabilidad en un sistema operativo y permitir al atacante tomar el control remoto del equipo. Esto podría permitir al atacante robar información confidencial, instalar programas maliciosos, o utilizar el equipo para llevar a cabo ataques adicionales.

Ejemplo de repositorio de Exploits:

OffSec’s Exploit Database Archive
The Exploit Database - Exploits, Shellcode, 0days, Remote Exploits, Local Exploits, Web Apps, Vulnerability Reports, Security Articles, Tutorials and more.
https://www.exploit-db.com/

Video: Que es un Exploit

Programas de Bug Bounty

Un programa Bug Bounty es una iniciativa de una empresa o organización para encontrar y solucionar vulnerabilidades de seguridad en sus sistemas y aplicaciones. En lugar de depender únicamente de pruebas de seguridad internas, la empresa invita a hackers éticos y profesionales de seguridad a encontrar vulnerabilidades y reportarlas a cambio de una recompensa monetaria.

Estos programas suelen incluir una lista de objetivos de seguridad y definir claramente las recompensas ofrecidas por cada vulnerabilidad reportada. Los cazadores de bugs pueden buscar vulnerabilidades en cualquier lugar de la aplicación o sistema, y las recompensas suelen variar según la gravedad de la vulnerabilidad encontrada.

Por ejemplo, una empresa podría ofrecer una recompensa de US $1,000 por una vulnerabilidad que permita a un atacante acceder a información confidencial de los usuarios, y una recompensa de US $5,000 por una vulnerabilidad que permita a un atacante tomar el control completo de un sistema.

El objetivo final de un programa Bug Bounty es mejorar la seguridad de la empresa al identificar y solucionar vulnerabilidades antes de que sean explotadas por atacantes malintencionados. Al mismo tiempo, los cazadores de bugs pueden ganar dinero legalmente y demostrar sus habilidades técnicas.

PlataformaURLDescripción
HackerOnehttps://www.hackerone.com/HackerOne es la plataforma líder en Bug Bounty. Ofrece programas de Bug Bounty para más de 100 marcas importantes, incluyendo Uber, Twitter, Cloudflare, Dropbox, etc.
Bugcrowdhttps://www.bugcrowd.com/Bugcrowd es una de las primeras plataformas de bug bounty y aún ofrece programas de bug bounty para más de 200 clientes, incluyendo Facebook, Google, Microsoft, etc. https://www.bugcrowd.com/bug-bounty-list/
Cobalthttps://cobalt.io/Cobalt se especializa en programas de bug bounty privados y dirigidos a grandes empresas de tecnología como Uber, Twitter, Cloudflare, etc.
Googlehttps://bughunters.google.com/about/rules/6625378258649088/google-and-alphabet-vulnerability-reward-program-vrp-rulesEl Programa de Recompensa por Vulnerabilidades de Google ofrece recompensas que van desde $100 hasta $31,337 por encontrar y reportar vulnerabilidades de seguridad en los servicios, software y hardware de Google.
Synackhttps://www.synack.com/Synack es una plataforma de seguridad que utiliza cazadores de bugs para identificar vulnerabilidades en los sistemas y aplicaciones de los clientes. La plataforma se enfoca en la seguridad y la privacidad.
Microsofthttps://www.microsoft.com/en-us/msrc/bountyEl Programa de Bug Bounty de Microsoft ofrece recompensas que van desde $500 hasta $250,000 por encontrar y reportar vulnerabilidades de seguridad en los productos y servicios de Microsoft.
Zerocopterhttps://www.zerocopter.com/Zerocopter es una plataforma que ayuda a las empresas a mejorar su ciberseguridad permitiéndoles lanzar programas de recompensas por errores de seguridad (bug bounty).
Immunefihttps://immunefi.com/explore/La principal plataforma de Bug Bounty de Web3, protegiendo $60 mil millones en fondos de usuario.
Hacken Proofhttps://hackenproof.com/Hacken Proof es una plataforma de Bug Bounty que permite a las empresas mejorar su ciberseguridad lanzando programas de Bug Bounty. En estos programas, los hackers éticos son invitados a encontrar vulnerabilidades en los sistemas de la empresa y reportarlas a cambio de una recompensa monetaria.
Yes We Hackhttps://www.yeswehack.com/Crowdsourced security & Vulnerability Disclosure: France, Singapore, Switzerland, Germany

Video: Programas de Bug Bounty

Guias de Pruebas

Las guías de pruebas para Bug Bounty son documentos que describen los pasos y técnicas necesarias para llevar a cabo una investigación de Bug Bounty. Estas guías suelen ser específicas para una aplicación o tecnología en particular, y se utilizan para ayudar a los investigadores a identificar vulnerabilidades y debilidades en el sistema. Las guías de pruebas suelen incluir información sobre las herramientas y técnicas de pruebas de penetración, así como sobre los posibles vectores de ataque. Al seguir estas guías, los investigadores de seguridad pueden asegurarse de que están llevando a cabo una investigación exhaustiva y completa.

PlataformaURLDescripción
OWASP Testing Guidehttps://owasp.org/www-project-web-security-testing-guide/v42/Una guía completa de pruebas de penetración para aplicaciones web, que incluye una lista de verificación de vulnerabilidades comunes, así como una descripción general de las técnicas y herramientas de pruebas de penetración.
OWASP Testing Check Listhttps://github.com/tanprathan/OWASP-Testing-Checklist/raw/master/OWASP_WSTG_Checklist.xlsxUn excelente Checklist en Excel sobre cada una de las pruebas de OWASP

CWE - Common Weakness Enumeration

CWE (Common Weakness Enumeration) es un lenguaje común para describir vulnerabilidades de software y errores de programación. Es una lista completa y organizada de debilidades de software y errores comunes que pueden ser explotados por atacantes malintencionados.

Por ejemplo, una debilidad común es la inyección SQL, que permite a los atacantes manipular bases de datos y obtener información confidencial. Otra debilidad común es la falta de validación de entradas, lo que permite a los atacantes insertar código malicioso en una aplicación.

CWE se utiliza para clasificar y organizar debilidades de software de acuerdo con su tipo y gravedad. Cada debilidad tiene un ID único y una descripción detallada de cómo se puede explotar. Esta información es útil para los desarrolladores de software y los investigadores de seguridad, ya que les ayuda a identificar y solucionar debilidades de software antes de que puedan ser explotadas por atacantes malintencionados.

CWE es mantenido por el Instituto Nacional de Estándares y Tecnología (NIST) de los Estados Unidos. Se actualiza regularmente para incluir nuevas debilidades y errores de programación descubiertos en el software.

CWE - Common Weakness Enumeration
Common Weakness Enumeration (CWE) is a list of software and hardware weaknesses.
https://cwe.mitre.org/index.html