Close

Nuestro enfoque para la gestión de vulnerabilidades


Nuestro enfoque para la gestión de vulnerabilidades de seguridad en Atlassian

En Atlassian reconocemos que, hasta cierto punto, las vulnerabilidades de seguridad forman parte inherentemente de cualquier proceso de desarrollo de software. Sin embargo, nos esforzamos constantemente por reducir tanto la gravedad de las vulnerabilidades[1] como la frecuencia con la que estas surgen en nuestros propios productos y servicios.

Para ello, hemos establecido un enfoque polifacético para la gestión de vulnerabilidades que se basa en una combinación de procesos automatizados y manuales. Creemos que esta es la manera más eficaz de limitar la posibilidad de que las vulnerabilidades "se cuelen por las grietas" y pasen desapercibidas durante un periodo prolongado.

En este artículo, ofrecemos una síntesis de cómo gestionamos las vulnerabilidades de nuestros productos y nuestra infraestructura, y de cómo estamos desarrollando constantemente ese enfoque incorporando las últimas herramientas, los últimos métodos y las últimas ideas para garantizar que nuestra forma de gestionar las vulnerabilidades siga siendo eficaz en el futuro.

Una descripción general de nuestro proceso de identificación y resolución de vulnerabilidades

Disponemos de un proceso metódico para identificar las vulnerabilidades, hacer un seguimiento de ellas y resolverlas, sean del tipo que sean.

Identificación de vulnerabilidades

Utilizamos una amplia gama de las mejores herramientas de detección de vulnerabilidades que se ejecutan con regularidad en nuestros productos y nuestra infraestructura para analizar e identificar automáticamente las vulnerabilidades. Esto incluye los productos de Atlassian Cloud y Server, las imágenes de las aplicaciones de Docker, las aplicaciones internas, las móviles y las externas; así como nuestra infraestructura, tanto la local como la que está en la nube. Estas herramientas analizan e identifican de forma automática las vulnerabilidades existentes e incluyen las siguientes:

  • Análisis de la red: Actualmente, hemos elegido Nexpose para que sea nuestra principal herramienta de gestión de vulnerabilidades, la cual nos ayuda a identificar los servicios activos, los puertos abiertos y las aplicaciones que se ejecutan en todo nuestro entorno, así como cualquier vulnerabilidad que exista en el ámbito de la red.
  • Detección continua de activos externos: Utilizamos Assetnote para, de forma continua, detectar activos y analizar la seguridad en nuestro perímetro externo.
  • Análisis de imágenes de contenedores: Utilizamos contenedores de Docker para implementar muchas de nuestras aplicaciones y realizamos un análisis completo de la seguridad que efectúa una inspección en profundidad del contenido de dichos contenedores cada vez que se implementan en nuestros entornos de producción o preproducción. Para ello, empleamos una herramienta llamada Anchore. Más adelante en esta página se ofrecen más detalles al respecto.
  • Análisis de dependencias de código abierto: Utilizamos SourceClear para identificar cualquier vulnerabilidad que pueda existir en el código abierto o de terceros que puedan estar usando nuestros desarrolladores. Más adelante en este artículo se ofrecen más detalles al respecto.
  • Monitorización de la configuración de AWS: Utilizamos Cloud Conformity para ofrecer una monitorización continua de la configuración conforme a las guías de referencia establecidas para nuestros entornos de AWS.

Revisamos continuamente las últimas herramientas disponibles y las añadimos al paquete de productos y servicios que utilizamos si consideramos que mejorarán nuestras capacidades para detectar vulnerabilidades.

También disponemos de una serie de medios adicionales para identificar vulnerabilidades en combinación con los análisis automatizados que ejecutamos. Entre ellos se incluyen los siguientes:

Nuestro programa de recompensas por errores: Usamos Bugcrowd para ejecutar nuestro programa de recompensas por errores. Bugcrowd nos permite acceder a una comunidad experta y fiable formada por decenas de miles de investigadores en ciberseguridad que están continuamente probando nuestros productos y avisándonos de todas las vulnerabilidades que encuentran. Nuestro programa de recompensas por errores ha sido reconocido como el mejor del sector en los últimos dos años consecutivos (2018-19).

Los informes de los clientes y los usuarios: Los usuarios de nuestros productos pueden notificar cualquier error que encuentren en cualquier momento a través del soporte de Atlassian. Nos ponemos en contacto con ellos para recopilar todos los detalles necesarios, de forma que podamos identificar internamente dicha vulnerabilidad y proceder a corregirla (proceso sujeto a validación para asegurarnos de que la vulnerabilidad sea real y no un falso positivo). Esto también incluye al personal de Atlassian, que puede generar una incidencia para informar de cualquier vulnerabilidad que observe en nuestros productos (ya sea de forma externa o interna) y dirigirla directamente al equipo de seguridad, o bien generar un ticket de soporte.

Las pruebas de penetración externas: Recurrimos a consultoras especializadas en seguridad para realizar pruebas de penetración de caja blanca y asistidas por código en productos e infraestructuras de alto riesgo. Si deseas información más detallada, consulta "Nuestro enfoque sobre las pruebas de seguridad externas".

El equipo de seguridad de productos de Atlassian: Realizamos revisiones de código específicas, tanto manuales como asistidas por herramientas, y colaboramos estrechamente con nuestros equipos de desarrollo de productos para mejorar su capacidad de detectar las vulnerabilidades por su cuenta y resolverlas antes de que el código llegue a nosotros.

El equipo rojo de Atlassian: Tenemos un equipo rojo interno cuya función es simular el papel de los adversarios que intentan identificar y explotar las vulnerabilidades que existen en nuestros sistemas, procesos y entornos, de forma que podamos asegurarnos de que se identifiquen y solucionen cuanto antes.

Seguimiento y resolución de vulnerabilidades

Para maximizar la eficiencia y eficacia de nuestro programa de gestión de vulnerabilidades, integramos los procesos que utilizamos para identificar vulnerabilidades en nuestros sistemas de tickets internos. En concreto, independientemente de si una vulnerabilidad se identifica mediante alguna de nuestras herramientas de análisis o por alguna de las otras vías que hemos comentado más arriba, se crea un ticket específico por cada vulnerabilidad generada en la instancia de Jira pertinente, a fin de informar al equipo de producto adecuado para su resolución, de conformidad con los SLA que hemos publicado en nuestra política de corrección de errores de seguridad.

Nuestro equipo de seguridad supervisa este proceso y trabaja con nuestros equipos de productos e infraestructura para garantizar que todas las vulnerabilidades se resuelvan de acuerdo con los compromisos adoptados en nuestro SLA.

Además, hemos creado una herramienta específica que proporciona una vista única para hacer un seguimiento del estado actual de las vulnerabilidades existentes en nuestros productos y nuestra infraestructura en todo el ecosistema de Atlassian. Esto significa que tenemos un punto centralizado desde el cual podemos hacer un seguimiento de cada vulnerabilidad que se haya identificado y, de este modo, asegurarnos de que nada se olvide o se pase por alto accidentalmente.

En cuanto se desarrolla una corrección para una vulnerabilidad, se prueba a fondo y, en el caso de nuestros productos en la nube, se incorpora posteriormente a nuestra canalización de CI/CD para su implementación. En el caso de los productos de servidor, las correcciones se incluyen en una nueva versión y se implementan junto con otras correcciones de forma periódica, de conformidad con nuestra cadencia de publicación estándar.

Prevención de vulnerabilidades durante el proceso de desarrollo

Análisis de imágenes de contenedores

Atlassian implementa la mayor parte de sus aplicaciones utilizando imágenes de contenedores de Docker. Los contenedores de Docker proporcionan un entorno empaquetado y autónomo que consta de las bibliotecas del sistema pertinentes, las herramientas, los ajustes de configuración y cualesquiera otras dependencias necesarias para que nuestros productos puedan funcionar, independientemente de los parámetros de configuración de cada máquina. El contenedor proporciona de forma efectiva una capa de abstracción, que desvincula el código de software de la infraestructura subyacente para que nuestros productos puedan funcionar sin problemas en diferentes máquinas.

A pesar de que los contenedores aportan grandes ventajas para nuestros desarrolladores y clientes en lo tocante a la capacidad para implementar código apto para su uso en diversos entornos, pueden ser una fuente de vulnerabilidades de seguridad si el contenido de las imágenes consta de componentes o bibliotecas obsoletos o inseguros por cualquier otro motivo.

Para hacer frente a esto, Atlassian integra un proceso exhaustivo de análisis de seguridad de los contenedores en nuestra canalización de CI/CD para cualquier contenedor que se implemente en nuestros entornos de desarrollo, ensayo o producción. A tal efecto, utilizamos el motor de código abierto de Anchore. Anchore aporta una serie de herramientas que llevan a cabo una inspección en profundidad de todas las imágenes de los contenedores que implementan nuestros desarrolladores. Dicha inspección incluye un análisis pormenorizado de esas imágenes para identificar los diversos componentes que contienen (incluidos el sistema operativo y los paquetes de aplicaciones, las bibliotecas de terceros y los archivos de configuración).

Dependencias de código abierto

Aunque es importante detectar y corregir vulnerabilidades en nuestro propio código, nuestros productos y servicios también dependen de numerosas bibliotecas de código abierto. Por lo tanto, resulta igual de importante que sepamos cuáles son las bibliotecas que usamos y que estas estén actualizadas con las últimas correcciones de errores de seguridad. Nosotros empleamos una herramienta llamada SourceClear que nos ayuda a lograr este propósito. SourceClear proporciona un escáner capaz de identificar dependencias en cualquiera de las compilaciones de nuestro software y, luego, de comparar estas bibliotecas con una base de datos de vulnerabilidades de seguridad conocidas.

Toda vulnerabilidad identificada, ya se detecte a través de Anchore o de SourceClear, se comunica automáticamente generando un ticket formal de Jira con el equipo de producto pertinente siguiendo el proceso de gestión de vulnerabilidades que hemos expuesto más arriba en este artículo.

Otras iniciativas que empleamos para ayudar a combatir las vulnerabilidades

Hasta ahora, en este artículo hemos expuesto en gran medida los pasos que adoptamos para gestionar las vulnerabilidades en el back-end (es decir, lo que hacemos para corregir una vulnerabilidad identificada en nuestros productos o plataformas). Sin embargo, nos esforzamos constantemente por reducir la frecuencia con la que surgen en primer lugar. Con este propósito, hemos incorporado algunas iniciativas únicas en el front-end de nuestro proceso de desarrollo para garantizar que nuestros productos se compilen desde cero pensando en la seguridad.

Programa Campeones de la seguridad

En 2017 comenzamos a implementar en todo Atlassian un programa llamado "Campeones de la seguridad" para integrar a los líderes de seguridad en todos y cada uno de nuestros equipos de productos y servicios. Nuestros campeones también reciben formación específica que les ayuda a conocer e identificar las vulnerabilidades de seguridad de las aplicaciones, así como los procesos para programar de forma segura. El objetivo de este programa es que cada equipo cuente con un campeón exclusivo que asuma la responsabilidad de promulgar mensajes clave de seguridad entre los demás miembros del equipo y que plantee cualquier incidencia de seguridad a nuestro equipo central de seguridad para, de este modo, promover la mejora en los flujos de comunicación.

Los campeones de seguridad de Atlassian se reúnen cada mes para intercambiar información sobre herramientas y conocimientos sobre los últimos problemas e incidencias de seguridad a los que se enfrentan, de forma que todos nuestros equipos puedan salir beneficiados. En última instancia, el objetivo es utilizar el programa de campeones como trampolín para posibilitar que la seguridad forme una parte aún más integral de nuestra cultura. Creemos que este tipo de enfoque constituye un pilar fundamental de nuestro enfoque para minimizar las vulnerabilidades.

Ingenieros de seguridad de productos

Ninguna discusión sobre la gestión de vulnerabilidades estaría completa sin explicar el papel esencial que desempeñan nuestros ingenieros de seguridad de productos, tanto para corregir los errores como para diseñar las herramientas de corrección.

Cada uno de nuestros equipos de productos cuenta con un ingeniero de seguridad exclusivo que colabora con el equipo para garantizar la seguridad del producto en cuestión. Este planteamiento garantiza que todos los equipos de productos tengan un enlace directo con un especialista en seguridad exclusivo, así como que la seguridad esté engarzada en todos los aspectos del ciclo de vida de desarrollo de software.

Nuestros ingenieros de seguridad desempeñan funciones de seguridad tanto proactivas como reactivas en relación con el producto que se les ha asignado, entre las que se incluyen las siguientes:

  • Revisar y analizar los modelos de amenazas hasta la fecha de riesgos nuevos y emergentes.
  • Revisar y analizar la seguridad de las funciones nuevas.
  • Revisar código manualmente.
  • Efectuar pruebas de penetración.
  • Revisar la plataforma y la arquitectura.
  • Hacer un seguimiento de las principales actividades relacionadas con los proyectos y orientar cuando sea preciso.
  • Cribar, archivar, recompensar y garantizar la resolución oportuna de las incidencias notificadas a través de nuestro programa de recompensas por errores.
  • Crear automatizaciones nuevas y hacer un mantenimiento de la automatización y las herramientas existentes para maximizar la cobertura y la eficiencia.

Puntuaciones de seguridad

Con los datos recopilados de los sistemas expuestos en este documento, podemos cotejar los equipos y productos entre sí para identificar proactivamente los aspectos que se pueden mejorar.

El resumen

Atlassian adopta un enfoque polifacético para gestionar las vulnerabilidades en todos nuestros productos y plataformas, que combina las mejores herramientas de análisis, nuestro programa de recompensas por la notificación de errores y una serie de mecanismos de otra índole que evolucionan constantemente. Todo ello con el fin de garantizar que identifiquemos y resolvamos las vulnerabilidades que surjan con la máxima rapidez posible y que, en primer lugar, minimicemos su frecuencia.

¿Quieres profundizar?

Existen diversos recursos de otro tipo que hemos mencionado en este documento o que puedes consultar por otro lado para obtener más información sobre nuestro enfoque de gestión de vulnerabilidades, así como de la seguridad en general.

[1] En este artículo, "vulnerabilidades" es un término que puede utilizarse indistintamente con respecto a "errores", que es el que utilizamos en un artículo independiente relativo a nuestro enfoque sobre las pruebas de seguridad.