De hacker a propietario del programa Bug Bounty: una experiencia de aprendizaje
Publicado: 2022-04-27La seguridad ha sido una prioridad importante aquí en Braze desde nuestra fundación en 2011. Nuestro enfoque en proteger los datos de nuestros clientes nos llevó a adoptar una mentalidad de seguridad y privacidad por diseño al construir nuestro producto, asegurarnos de que obtuviéramos la certificación en relación con ISO 27001 y SOC 2 Tipo 2, y para construir un clúster HIPAA dedicado para ayudar a las marcas a salvaguardar la información de salud protegida. Pero si bien todos esos pasos son importantes, no nos dormimos en los laureles. Siempre hay más que puedes hacer, y ese enfoque en encontrar nuevas formas de fortalecer nuestra seguridad es una gran razón por la que estoy aquí.
En 2020, Mark Shasha, jefe de seguridad de Braze, me trajo para ayudar a lanzar un programa de recompensas por errores aquí, con el objetivo de facilitar la identificación de problemas de seguridad que podrían afectar nuestro producto. Y ahora que el programa ha estado en funcionamiento durante poco más de un año, pensé que era hora de mirar hacia atrás en lo que construimos y lo que aprendí en el camino.
¿Qué es un programa de recompensas por errores?
En el programa de recompensas por errores de Braze, se invita a terceros a tratar de comprometer una versión limpia y sin datos de clientes de la plataforma Braze y se les paga cuando identifican un problema de seguridad válido y procesable. La creación de un programa de recompensas por errores hace posible que una empresa como Braze aproveche a los investigadores y profesionales de seguridad externos para identificar posibles problemas de seguridad, lo que nos permite abordar las vulnerabilidades de manera proactiva.
Estos programas son ampliamente vistos como una de las medidas de seguridad cibernética más importantes que una empresa puede adoptar, en parte, porque permite a las marcas obtener información de seguridad de una gran cantidad de personas diferentes con una amplia variedad de conjuntos de habilidades. Como regla general, lanzar y mantener una recompensa de errores pública exitosa es una señal de que una organización tiene un programa de seguridad saludable, ya que ejecutar un programa como este sin incidentes requiere un nivel de madurez de seguridad que requiere mucho pensamiento y cuidado para lograrlo.
Mis días como participante de Bug Bounty
Escuché por primera vez acerca de las recompensas por errores en 2014, pero como pensé que sonaban demasiado buenas para ser verdad, no terminé participando en una hasta 2016. Inspirándome en algunas publicaciones de blog escritas por otros hackers éticos, participé en el yahoo! programa de recompensas por errores y descubrí que tenía un verdadero don para el trabajo. Por un lado, me dieron la oportunidad de aprovechar mis habilidades de piratería para ayudar a proteger los sistemas informáticos, en lugar de comprometerlos. Por otro lado, me dieron la oportunidad de ganar grandes sumas de dinero mientras lo hacía.
A medida que crecía la cantidad de empresas y organizaciones gubernamentales que lanzaban programas de recompensas por errores, terminé especializándome en buscar errores de falsificación de solicitudes del lado del servidor (SSRF) para un programa de recompensas por errores asociado con una importante empresa de telecomunicaciones y gané poco menos de $ 1 millón de dólares solo con identificando esas vulnerabilidades. Pero si bien el aspecto financiero de trabajar con recompensas por errores realmente me estaba dando resultado, me encontré extrañando la estructura y las conexiones personales que conlleva tener un trabajo diario. Entonces, cuando Braze me ofreció la oportunidad de lanzar y supervisar un programa propio de recompensas por errores, aproveché la oportunidad.
Cómo lanzamos un programa Bug Bounty en Braze
En Braze, tuvimos que pasar por una serie de pasos antes de poder hacer realidad nuestra visión de un programa de recompensas por errores. Por un lado, debido a que a los participantes se les paga por cada error válido y procesable que encuentren, lanzar un programa de recompensas sin abordar todas y cada una de las vulnerabilidades conocidas puede llevar a las empresas a pagar mucho dinero por la información que ya tienen, reduciendo el impacto del programa y, al mismo tiempo, elevando su costo. Para ello, llevamos a cabo los siguientes pasos antes de prepararnos para un lanzamiento oficial:
Implementación de acuerdos de nivel de servicio (SLA) de seguridad interna con equipos de desarrollo
Creación de un programa de gestión de vulnerabilidades
Implementación de herramientas de prueba de seguridad de análisis dinámico (DAST)
Realización de pruebas de penetración interna.
Realizar pruebas de penetración de terceros
Asegurarse de que todos los problemas conocidos se hayan solucionado
Luego, una vez que estuvimos seguros de que la versión duplicada de la plataforma Braze creada para el programa de recompensas por errores estaba lo más ajustada posible, iniciamos un programa privado de alcance limitado utilizando la plataforma Bugcrowd. Lanzamos este programa a pedido de dos semanas de duración para poder usarlo como prueba de concepto y para ayudar a presentar a la organización Braze las realidades de ejecutar un programa de recompensas por errores. Después de todo, la idea de invitar a piratas informáticos e investigadores de seguridad a buscar fallas de seguridad en su producto puede parecer extraña o confusa si no ha encontrado recompensas por errores antes.
4 grandes aprendizajes del lanzamiento de un nuevo programa Bug Bounty
Aprendí bastante rápido que lanzar un nuevo programa de recompensas por errores es mucho más difícil que hacerse cargo de uno existente. Hay tantos factores diferentes que intervienen en la creación de un programa exitoso que no reciben tanta atención, en parte, porque no son tan emocionantes como identificar errores críticos, corregirlos rápidamente y pagar grandes recompensas. Dado eso, hablemos de algunos de mis mayores aprendizajes:
1. Lanzar un programa Bug Bounty requiere colaboración entre equipos
Originalmente, esperaba que lanzar el programa fuera tan simple como decidir hacerlo, elegir la plataforma correcta, decidir el alcance y las cantidades de recompensa, y luego simplemente comenzar. Pero hacerlo bien requiere mucha más planificación, preparación y atención al trato de lo que pensaba. Por un lado, no había tenido en cuenta a todos los otros equipos dentro de Braze que tenían un papel que desempeñar en el apoyo al lanzamiento del programa de recompensas por errores, a partir del trabajo que hizo nuestro equipo Legal para asegurarse de que tuviéramos la redacción adecuada para nuestro acuerdo de Puerto Seguro al trabajo realizado para crear nuestros SLA y garantizar que tuviéramos el proceso de escalamiento correcto cuando ocurren violaciones. Este trabajo puede ser desafiante, pero es absolutamente esencial. Un programa de recompensas por errores que no ha sido cuidadosamente planificado y ejecutado inevitablemente se enfrentará a muchos problemas que, a su vez, pueden dar lugar a malas palabras sobre el programa, lo que dificulta atraer a los piratas informáticos e investigadores de seguridad de primer nivel y, potencialmente, condenando todo el esfuerzo.
2. Nunca pierdas de vista tu relación con hackers e investigadores
Es importante que las marcas recuerden que un programa exitoso de recompensas por errores depende de la relación entre el programa y los piratas informáticos/investigadores que participan en él. Los piratas informáticos felices están mucho más dispuestos a dedicar su tiempo a su programa y, dado que cada programa de recompensas lucha por una parte de un recurso finito, es decir, el tiempo y la atención de los piratas informáticos/investigadores, es importante asegurarse de que se está preparando. para el éxito priorizando esta relación y haciendo lo que pueda para diferenciarse de otros programas. Algunas empresas hacen esto pagando recompensas mayores que el promedio de la industria por varias clases de errores y gravedades, pero esa no es la única (ni la mejor) forma de hacerlo.
Debido a mi experiencia como cazarrecompensas de insectos, he podido usar mis experiencias para ayudar a informar cómo Braze nutre esa relación. Por ejemplo, pude obtener la aceptación para garantizar que Braze ejecute programas de recompensas por errores tanto públicos como privados al mismo tiempo. Eso nos permite identificar a las personas involucradas en nuestro programa público que están reportando buenos y válidos informes y luego recompensarlos invitándolos a nuestro programa privado. Estos participantes tienen funcionalidad adicional para probar y obtener la primera oportunidad de agregar nuevos alcances antes de que los agreguemos al programa público. Creo que al hacer pequeñas cosas como esta, las empresas pueden mostrar su aprecio por los investigadores que contribuyen a su programa y alentarlos a profundizar su compromiso en el futuro.
3. Las recompensas por errores se ven diferentes desde el lado de la empresa
Antes de comenzar a ejecutar mi propio programa de recompensas por errores, no me gustaba trabajar con programas administrados por una plataforma de terceros. Para programas configurados como este, es común que las empresas confíen en triagers de terceros proporcionados por la plataforma, que revisan los envíos de piratas informáticos/investigadores y determinan la gravedad de cada error identificado, y tuve algunas experiencias en las que los triagers tenían Hice llamadas con las que no estaba de acuerdo.
Sin embargo, ahora que estoy del otro lado, puedo ver cuánto valor proporciona este tipo de enfoque impulsado por plataforma a las empresas que lo utilizan. Si bien todavía estamos involucrados en la supervisión directa del trabajo que realizan los triagers de terceros que usamos, descubrí que aprovecharlos puede hacer mucho para reducir la carga de tiempo y energía asociada con la ejecución de un programa como este. Los triagers con los que trabajamos son profesionales y han demostrado ser un gran activo para nuestro programa, ayudando a hacer posible nuestra implementación exitosa.
4. El trabajo no termina cuando se identifica un error
Antes de unirme a Braze, a menudo me frustraba con los programas de recompensas por errores que tardaban semanas o meses en corregir las vulnerabilidades que les había enviado. Desde mi perspectiva, los problemas en general parecían bastante sencillos y sentí que el parche para esos errores debería tomar poco o nada de tiempo para implementarse.
Pero ahora que he sido testigo de lo que sucede entre bastidores cuando se envía uno de estos errores, me di cuenta de que no tomé en cuenta todas las discusiones y el trabajo que se realiza entre bastidores durante el ciclo de vida de una vulnerabilidad de seguridad, desde la investigación. y la confirmación del error y la entrega de esos detalles al equipo responsable internamente para los cambios de codificación reales, las pruebas y los lanzamientos que deben ocurrir antes de que el error se solucione realmente. La realidad es que estas cosas toman tiempo y, como hacker, no siempre tomé en cuenta el trabajo involucrado, en parte porque quería que todo el proceso se hiciera lo más rápido posible para que me pagaran.
Pensamientos finales
Ejecutar un programa de recompensas por errores durante el último año ha cambiado toda mi perspectiva sobre la industria e incluso cambió la forma en que selecciono en qué programas de recompensas por errores me enfoco en mi tiempo libre. Este vistazo detrás de la cortina me ha dado mucho más respeto por el trabajo esencial que realizan los clasificadores de la plataforma y una mejor comprensión de cuáles son los plazos realistas para que las empresas evalúen y aborden los errores que envío. Con esta nueva perspectiva, tengo la esperanza de poder seguir mejorando y haciendo crecer el programa de recompensas por errores de Braze y al mismo tiempo ver aún más éxito como cazador de recompensas por errores en el futuro.
¿Está interesado en unirse al equipo aquí en Braze? ¡ Consulta nuestros puestos vacantes !