HackerOne logra implementaciones 5 veces más rápidas con la seguridad integrada de GitLab
¿Quiere ver lo que GitLab Ultimate puede hacer por su equipo?
La empresa de seguridad impulsada por hackers más confiable del mundo, HackerOne, adoptó GitLab para eliminar cadenas de herramientas dispares y aplicar la metodología de prueba shift left a la seguridad.
HackerOne mejoró el tiempo de pipeline, la velocidad de implementación y la eficiencia del desarrollador con GitLab Ultimate.
Plataforma de seguridad impulsada por hackers
HackerOne empodera al mundo para crear un Internet más seguro. Como la plataforma de seguridad impulsada por humanos más confiable del mundo, HackerOne brinda a las organizaciones acceso a la comunidad de hackers más grande del planeta. Con la base de datos más sólida de tendencias de vulnerabilidad y puntos de referencia de la industria, la comunidad de hackers mitiga el riesgo cibernético al buscar, encontrar e informar de manera segura las debilidades de seguridad del mundo real para organizaciones de todas las industrias y superficies de ataque.
A medida que el mundo está más conectado y las organizaciones se trasladan a la nube, la ciberseguridad debe estar a la altura. HackerOne ayuda a los equipos de seguridad a escalar con sus superficies de ataque ágiles al proporcionar pruebas de seguridad impulsadas por hackers e información sobre vulnerabilidades que ayudan a reducir el riesgo en todo el SDLC.
En busca de la velocidad de desarrollo e implementación
HackerOne es una empresa distribuida globalmente, por lo que existen dependencias entre equipos para completar proyectos. A menudo ocurría que un desarrollador en los Países Bajos trabajaba en el código, y luego alguien en América del Norte continuaba donde el otro lo había dejado. Los largos tiempos de pipeline podían interrumpir los traspasos. Mitch Trale, jefe de Infraestructura de HackerOne afirma: «En muchos casos, una solicitud de fusión se quedaba varada en un lugar en el que se tendría que haber puesto en marcha… si hubiéramos tenido herramientas más rápidas, podríamos haberlo hecho».
HackerOne estaba utilizando herramientas separadas para el control de versiones de código y la integración continua. A medida que HackerOne comenzó a escalar, y aumentó el equipo de ingeniería de 10 a 30 miembros, Mitch indicó que estas herramientas eran «significativamente limitadas… un ejemplo de esto es el tiempo que tomó ejecutar un solo pipeline dentro de nuestro antiguo sistema que hizo que fuera prohibitivo hacerlo con frecuencia», dijo Trale. «Así que los ingenieros comenzaron a trabajar en torno a estas limitaciones. Comenzamos a crear estos efectos secundarios downstream, que luego tuvimos que tratar por separado». El equipo necesitaba una herramienta que pudiera crecer junto con el desarrollo de HackerOne y que pudiera gestionar múltiples proyectos que afectarían a múltiples equipos.
Los principales factores que impulsaron al equipo a considerar nuevas herramientas de software fueron la velocidad de desarrollo, la velocidad de implementación y la satisfacción de los desarrolladores. «Optimizamos para que los ingenieros estén satisfechos, siempre que sea posible. Las mejores herramientas nos ayudan a automatizar más, lo que nos proporciona un mejor rendimiento y una mayor calidad», aclaró Trale. El equipo necesitaba una plataforma que mejorara la experiencia del desarrollador de principio a fin, desde el desarrollo hasta la implementación.
Escalabilidad y propiedad de los desarrolladores
HackerOne adoptó GitLab a finales de 2018 para la gestión de fuentes, gestión de tickets, CI/CD y funcionalidades de seguridad y cumplimiento que no existían en el sistema de herramientas anterior del equipo. El respaldo de GitLab aumentó drásticamente en toda la empresa debido a las diversas ofertas de agilidad que pueden funcionar en diferentes entornos. «HackerOne adoptó GitLab en todos los aspectos, pero también descubrimos nuevas funcionalidades que los gerentes de productos y los propietarios de sprints podían aprovechar. Ahora vemos que los equipos hacen una planificación cruzada más allá en el futuro», informa Trale. «Vemos diagramas de Gantt que representan dependencias. Y ese tipo de sofisticación fue realmente fundamental en esa etapa del desarrollo de HackerOne, porque estábamos escalando».
GitLab no solo proporcionó un medio que les permitiera a los equipos escalar, sino también uno para hacer los procesos de desarrollo de aplicaciones más igualitarios. Gracias a la interfaz de usuario intuitiva de GitLab, la cantidad de usuarios se expandió en HackerOne. «Contamos con gerentes de productos técnicos que ahora pueden realizar cambios en el código que afecten al texto en el sitio o que afecten, por ejemplo, a un color de fuente», agregó Trale. «Es más fácil para las personas utilizar las herramientas de edición visual de GitLab y una solicitud de fusión que se puede aprobar e implementar fácilmente de forma atómica. Eso simplemente no era viable antes».
La facilidad de uso de GitLab hace que el trabajo dentro de la plataforma sea más manejable para desarrolladores e ingenieros. Como herramienta de código abierto, GitLab es moderno, pero no demasiado complejo. Ofrece muchas capacidades, pero está funcionalmente disponible para los ingenieros en todos los niveles de la empresa. «Ahora podemos democratizar el control sobre nuestros pipelines. Podemos tener ingenieros individuales que actúen como DevOps, que actúen como infraestructura… y que gestionen las herramientas de una manera forma antes simplemente no podían. Nuestras herramientas antiguas eran torpes, difíciles de mantener y gestionar», dijo Trale.
La seguridad integrada genera implementaciones más rápidas
Uno de los mayores beneficios de adoptar GitLab es la capacidad de encontrar tickets de código en una etapa anterior en el pipeline. Cuando se combinan con pipelines más rápidos, los equipos ahora pueden trabajar de forma iterativa para resolver fallas de seguridad. El equipo de ingeniería solía dedicar al menos 60 minutos a cada ejecución de pipeline de integración. Iban de principio a fin, de la confirmación a la prueba, a la prueba de humo, a la prueba, a la implementación, y tardaban una hora. Si había un solo error, tenían que volver a ejecutar todo el proceso.
«Esto hizo que las personas fueran demasiado cautelosas a la hora de hacer push al código. Y lo que realmente queremos hacer es que la duración del ciclo sea lo más ajustada posible y reducir el riesgo asociado con cualquier lanzamiento de código», explicó Trale. «Así que GitLab fue estratégicamente importante para nosotros porque realmente nos permitió refinar este código y desarrollarlo de acuerdo con nuestras propias especificaciones de calidad».
El equipo también puede volver a ejecutar partes específicas del pipeline, lo que antes no era factible. Pueden centrarse en la parte del pipeline de integración continua que podría estar fallando, sin tener que reiniciar. «La velocidad importa… ahora tardamos unos ocho minutos en ejecutar un pipeline. Esos ocho minutos son realmente importantes. Solo eso habría sido lo suficientemente significativo como para que consideráramos el cambio, la promesa de este pipeline de integración continua de alta velocidad», comentó Trale. Además, ahora hay una mayor visibilidad de los registros de auditoría, por lo que se puede ver lo que está pasando entre bastidores y comprender lo que está contribuyendo a la degradación del rendimiento.
Mediante la API de GitLab y las capacidades de seguridad, el equipo de ingeniería creó un bot que genera solicitudes de fusión automáticamente en función de paquetes obsoletos. El bot analiza los repositorios y crea solicitudes de fusión de acuerdo con lo que debe actualizarse. Los ingenieros solo deben revisarlas y aprobarlas para realizar la implementación después. Esta automatización ahorra tiempo de ciclo manual y agiliza el análisis de seguridad. Ya no es tarea de una persona dedicar una hora adicional a cada implementación para comprobarlo. «Implementamos el código varias veces al día. Ahora, al menos entre una y cinco veces al día, las nuevas versiones de HackerOne se publican en la web. Un ingeniero dedicaba al menos una hora a cada una de ellas», describió Trale. «Tal vez media hora entre dos ingenieros, para asegurarse de que el trabajo tuviera sentido. Creo que, de manera conservadora, estamos ahorrando de cuatro a cinco horas al día de energía por ingeniero al consolidar este trabajo mediante las herramientas».
Antes de GitLab, el ciclo de implementación de HackerOne se acercaba a una o dos veces al día. Pero con todo en un mismo lugar, correctamente etiquetado y organizado de forma eficiente, los líderes de proyecto y quienes gestionan los sprints ahora pueden elegir en qué quieren trabajar. «GitLab nos ayuda a detectar todo esto antes: lo integra en el flujo del desarrollador.
Tener todas las herramientas en un solo lugar ha hecho que el análisis y las auditorías de seguridad sean un proceso más fácil que el flujo de trabajo anterior del equipo. «El costo de ejecutar análisis de seguridad en GitLab es significativamente menor que antes. Y por eso nos inclinamos mucho más por realizar análisis más exhaustivos, más rápidos. Ya sea en paquetes individuales o incluso ejecutando un conjunto de pruebas de seguridad. Creo que somos mucho más conscientes de ello y utilizamos GitLab para este fin», explicó Trale.
El equipo de ingeniería también creó un bot de Slack personalizado que se integra con GitLab y activa las implementaciones. Todas las implementaciones son públicas en el canal de Slack, donde se realiza una gran cantidad de trabajo para HackerOne. Con la integración, se puede ver el estado de la implementación en Slack en lugar de localizar el pipeline o el registro de auditoría. En los casos en que la implementación sale mal, hay 30 personas que pueden ayudar a depurar en tiempo real. Acercar las implementaciones a Slack y usar GitLab para CI/CD proporciona un acceso más fácil y rápido a la gestión de código y seguridad.
Si bien la consolidación de herramientas y la velocidad de implementación son prioridades que llevaron a HackerOne a hacer el cambio, es el desarrollo activo de GitLab lo que continúa impresionando a los miembros del equipo. GitLab tiene lanzamientos mensuales que se basan en las funcionalidades existentes, como la seguridad, utilizando los comentarios de los clientes. «Nuestra asociación con GitLab se profundiza cada vez más. Mientras que otras herramientas que evaluamos no tenían la fuerza de desarrollo ni el impulso que tiene GitLab», dijo Trale. «La cadencia mensual se trata de esto: con frecuencia llegan nuevas funcionalidades que podemos aprovechar. Ese desarrollo activo es una mentalidad contemporánea que tiene GitLab y que nos resulta atractiva».
Toda la información y las personas involucradas en el estudio de caso son precisas en el momento de la publicación.