Seguridad en el desarrollo de software en Atlassian
En Atlassian, integramos la seguridad en todas las etapas del ciclo de vida del desarrollo para que nuestro código, nuestros productos y nuestros clientes permanezcan protegidos. Utilizamos prácticas de desarrollo seguras en todas las etapas del ciclo de vida del desarrollo.
- El desarrollo está respaldado por programas de formación en seguridad de aplicaciones y una base de conocimientos sobre seguridad mantenida por el equipo de seguridad.
- En la fase de diseño, se incluyen prácticas como el modelado de amenazas, la revisión del diseño y nuestra biblioteca de estándares de seguridad, que se actualiza periódicamente. De este modo, nos aseguramos de que se tengan en cuenta los requisitos de seguridad adecuados.
- Durante el desarrollo, nos basamos en un proceso obligatorio de revisión por pares como primera línea de revisión de seguridad. Este proceso cuenta con comprobaciones de análisis estático automatizadas (SAST) y pruebas de seguridad manuales, tanto por parte de equipos internos como por expertos externos, como determina nuestro proceso de evaluación de riesgos.
- Los procesos formales de preparación operativa y control de cambios garantizan que solo se implementen en la producción los cambios aprobados. Después de la implementación, hacemos regularmente análisis de vulnerabilidades automatizados y contamos con un programa de recompensas por errores líder del sector para tener un control permanente de nuestras aplicaciones. Medimos constantemente el nivel de seguridad de nuestros productos a lo largo del tiempo con un sistema de cuadro de mandos de seguridad.
Cultura
Participación
Formación
Estándares
Prácticas
CONTROLES
Revisión de seguridad
Mejora de la seguridad
Fomentamos una cultura de seguridad
En Atlassian fomentamos una cultura de la seguridad, ya que capacitamos a nuestros equipos a través de una sólida formación en este ámbito.
Formación sobre seguridad para desarrolladores
Utilizamos contenido desarrollado internamente y de terceros para la formación. De este modo, nos aseguramos de que nuestros equipos de desarrollo cuentan con los conocimientos de seguridad necesarios para crear aplicaciones seguras. Nuestro programa de formación se supervisa constantemente para garantizar su calidad y evoluciona para adaptarse al cambiante panorama de amenazas.
Fase de diseño
En la fase de diseño, utilizamos el modelado de amenazas, la revisión del diseño y nuestra biblioteca de estándares de seguridad para asegurarnos de que se tengan en cuenta los requisitos de seguridad adecuados.
Modelado de amenazas
Recurrimos al modelado de amenazas para conocer mejor los riesgos de seguridad cuando los proyectos se enfrentan a amenazas complejas o conllevan cambios en funciones cruciales para la seguridad. Supone un intercambio de ideas entre ingenieros, ingenieros de seguridad, arquitectos y gestores de productos, a fin de identificar amenazas y establecer las prioridades. Esta información, a su vez, se utiliza en el proceso de diseño y garantiza la implementación de unos controles adecuados. También sirve para la revisión y las pruebas selectivas en posteriores fases del desarrollo.
Nuestro modelado de amenazas incluye:
- La aplicación de una estrategia centrada en los riesgos para determinar la necesidad de realizar modelado de amenazas
- Un proceso depurado para el modelado de amenazas, que incluye materiales complementarios y herramientas
- Vídeos formativos y material de lectura para ayudar a los equipos de software a llevar a cabo el modelado de amenazas
Fase de desarrollo
Durante el proceso de desarrollo, utilizamos una serie de procesos y prácticas de seguridad para que nuestro código permanezca protegido.
Revisión de seguridad
El equipo de seguridad lleva a cabo un proceso de revisión de seguridad para proporcionar controles de seguridad en todos los proyectos de software de Atlassian. Se sigue un proceso de evaluación de riesgos para priorizar dónde centrar las revisiones de seguridad y determinar las actividades necesarias para mitigar el riesgo del proyecto. Dependiendo del nivel de riesgo identificado, las actividades de control combinan los siguientes elementos:
- Revisión del diseño y modelado de amenazas
- Revisión del código y pruebas de seguridad
- Controles independientes con investigadores y consultores expertos externos
Revisión por compañeros
Durante el desarrollo, todo el código pasa por nuestro proceso de pruebas, que llamamos "Revisión por compañeros, compilación correcta" (PRGB). Este proceso requiere que varios desarrolladores sénior o principales revisen todas las confirmaciones antes de que se envíen a producción. Además, el proceso cuenta con comprobaciones de análisis estático automatizadas (SAST) y pruebas de seguridad manuales, tanto por parte de equipos internos como por expertos externos, como determina nuestro proceso de evaluación de riesgos. El desarrollo también está respaldado por programas de formación en seguridad de aplicaciones y una base de conocimientos sobre seguridad mantenida por el equipo de seguridad.
Separación de entornos
Mantenemos una separación lógica y física de los entornos de producción y no producción (desarrollo) de todos nuestros servicios cruciales. Nuestro entorno de ensayo está separado de forma lógica, pero no física, y se gestiona mediante procesos de acceso y control de cambios diseñados para la producción.
Atlassian también cuenta con políticas de seguridad que prohíben el uso de datos de producción en entornos que no son de producción. Asimismo, tenemos directrices sobre cómo neutralizar o proteger datos restringidos, incluidos los datos personales, utilizando técnicas de anonimización, hash y tokenización.
Fase de mantenimiento
Antes de enviar el código a producción, debe pasar nuestros procesos formales de preparación operativa y control de cambios.
Una vez implementado un sistema, realizamos análisis automatizados de vulnerabilidades con regularidad. Como hemos mencionado ya en nuestras prácticas de seguridad, también contamos con un programa de recompensas por errores líder en el sector, que proporciona controles continuos de la seguridad de nuestros sistemas a través de un grupo de investigadores de seguridad de colaboración abierta.
Puntuaciones de seguridad
Hemos creado un sistema automatizado de responsabilidad y control denominado “cuadro de mandos de seguridad de productos”, que permite medir el nivel de seguridad de todos los productos de Atlassian. Utilizamos una amplia gama de criterios centrados en la seguridad (por ejemplo, vulnerabilidades actuales, extensión de la formación e incidentes de seguridad recientes) para proporcionar una puntuación diaria de seguridad global para cada producto.
Este proceso de puntuación proporciona a cada equipo de productos una visión objetiva de las áreas de seguridad que requieren atención. Además, identifica las lagunas existentes que deben abordarse y las medidas para subsanarlas. El proceso de puntuación de seguridad también permite al equipo de seguridad de Atlassian realizar un seguimiento fácil del rendimiento de los productos desde la perspectiva de la seguridad a lo largo del tiempo, especialmente a medida que nuestro paquete de productos sigue ampliándose.