DevSecOps es una práctica de implementación de la seguridad en cada paso del ciclo de vida de DevOps con herramientas DevSecOps.
En el desarrollo de software, DevOps es la combinación de actividades específicas de desarrollo con operaciones de TI. Esta combinación tiene como objetivo mejorar la calidad del software y permitir una entrega continua.
Si añadimos la gestión de la seguridad a DevOps, se convierte en DevSecOps: una disciplina que integra la seguridad como una responsabilidad compartida entre el mundo de TI y el mundo del desarrollo de software.
En el pasado, la seguridad era responsabilidad exclusiva de un equipo especializado que se unía a los proyectos en sus fases finales. Esto funcionaba bien en ciclos de desarrollo que duraban meses o años. Pero en los ciclos de desarrollo ágiles que se miden en semanas, las prácticas de seguridad deben tenerse en cuenta desde el principio hasta el final del proyecto, y las responsabilidades de seguridad deben ser compartidas por todos los equipos de desarrollo y de TI.
Para que DevSecOps funcione sin romper los paradigmas de las metodologías ágiles, su integración debe automatizarse. Es la única forma de que el flujo de trabajo DevOps no se ralentice al incorporar la gestión de la seguridad. Y esa automatización requiere mecanismos adecuados que integren herramientas de desarrollo, como los entornos de desarrollo integrados (IDE), con funciones de seguridad.
Tipos de herramientas DevSecOps
La combinación de seguridad y DevOps puede adoptar muchas formas. Por este motivo, existen diferentes tipos de herramientas DevSecOps, que pueden resumirse como sigue:
- Escaneo de vulnerabilidades en componentes de código abierto: Buscan posibles vulnerabilidades en componentes de código fuente abierto y bibliotecas residentes en la base de código analizada, junto con todas sus dependencias.
- Pruebas estáticas y dinámicas de seguridad de las aplicaciones (SAST/DAST): Las pruebas estáticas analizan el código fuente de los desarrolladores en busca de código inseguro para identificar posibles problemas de seguridad. Las pruebas dinámicas realizan pruebas de seguridad en aplicaciones en ejecución sin necesidad de acceder al código fuente.
- Escaneado de imágenes: Buscan vulnerabilidades en los contenedores Docker.
- Automatización de la infraestructura: Detectan y corrigen diversos problemas de configuración y vulnerabilidades en la configuración de la infraestructura, sobre todo en entornos de nube.
- Visualización: Proporcionan visibilidad de los KPI y las tendencias para detectar aumentos o disminuciones en el número de vulnerabilidades a lo largo del tiempo.
- Modelado de amenazas: Permita una toma de decisiones proactiva mediante la predicción de los riesgos de amenazas en toda la superficie de ataque.
- Alertas: Notifique al equipo de seguridad sólo cuando un evento anómalo haya sido identificado y priorizado como amenaza para reducir el nivel de ruido y evitar interrupciones en los flujos de trabajo DevSecOps.
La siguiente lista muestra una selección de herramientas DevSecOps en las que puede confiar para incorporar la palabra «Sec» a sus flujos de trabajo DevOps.
Invicti
Invicti es una herramienta que puede integrar en su SDLC para llevar a cabo la gestión de la seguridad en sus productos de software manteniendo la agilidad del proceso de desarrollo.
El análisis que realiza Invicti es exhaustivo, proporcionando precisión en la detección de problemas sin sacrificar la rapidez en la gestión del SDLC.
Las opciones de automatización que ofrece Invicti evitan la necesidad de intervención humana en la ejecución de las tareas de seguridad, generando un ahorro de esfuerzo para su equipo que puede ascender a cientos de horas al mes.
Este ahorro se incrementa al identificar las vulnerabilidades que realmente importan y asignarlas automáticamente a los recursos más adecuados para su remediación.
Invicti también proporciona una visibilidad completa de las vulnerabilidades de sus aplicaciones en desarrollo y de los esfuerzos que se están realizando para reducir el riesgo.
SonarQube
SonarQube comprueba automáticamente su código en busca de vulnerabilidades, olfateándolo en busca de errores que puedan convertirse en amenazas. En el momento de escribir estas líneas, es compatible con casi 30 lenguajes de programación diferentes.
Las exclusivas QualityGates de SonarQube representan una forma sencilla de detener los problemas antes de que un producto salga al mundo. También proporcionan al equipo de desarrollo una visión conjunta de la calidad, permitiendo que todos conozcan las normas y sepan si sus desarrollos las cumplen.
SonarQube se integra perfectamente en su pipeline DevSecOps, garantizando que todos los miembros del equipo tengan acceso a los informes y a los comentarios generados por la herramienta.
Con sólo instalarla, SonarQube le indica claramente si sus commits están limpios y si sus proyectos están listos para su publicación. Si algo va mal, la herramienta le informará inmediatamente de dónde está el problema y cuál puede ser la solución.
Aqua
Aqua le permite visualizar y detener las amenazas en cada etapa del ciclo de vida de sus productos de software, desde la escritura del código fuente hasta el despliegue de la aplicación en la nube.
Funcionando como una plataforma de protección de aplicaciones nativa de la nube (CNAPP), la herramienta ofrece comprobaciones de seguridad de la cadena de suministro del software, escaneado de riesgos y vulnerabilidades y protección avanzada contra el malware.
Las opciones de integración de Aqua le permiten proteger sus aplicaciones independientemente de las plataformas y los mecanismos que utilice para el desarrollo y la implantación, ya sean en la nube, en contenedores, sin servidor, conductos CI/CD u orquestadores. También se integra con plataformas SIEM y herramientas de análisis.
Un aspecto distintivo de Aqua es que permite el control de la seguridad en los contenedores Kubernetes con KSPM (Kubernetes Security Posture Management) y la protección avanzada en tiempo de ejecución de Kubernetes. El uso de funciones nativas de K8s permite una protección basada en políticas para todo el ciclo de vida de las aplicaciones desplegadas en contenedores.
ProwlerPro
ProwlerPro es una herramienta de código abierto creada específicamente para mantener la seguridad bajo control en los entornos de desarrollo de Amazon Web Services (AWS).
ProwlerPro está diseñada de tal forma que puede crear una cuenta y empezar a realizar escaneos de sus conductos de desarrollo en cuestión de minutos, proporcionando una visión holística de su infraestructura independientemente de la región en la que se encuentre. Sus herramientas de visualización le permiten ver el estado de seguridad de todos sus servicios AWS en una sola ventana.
Una vez que cree su cuenta ProwlerPro y se ponga en marcha, podrá configurar el sistema para que ejecute automáticamente una serie de comprobaciones recomendadas cada 24 horas. Los escaneos con ProwlerPro se ejecutan en paralelo para aumentar la velocidad y no entorpecer sus flujos de trabajo DevSecOps.
Los resultados de los escaneos se muestran en una serie de paneles predefinidos que pueden ser fácilmente compartidos y navegados mediante la perforación hacia abajo para obtener una visión directa a cualquier nivel de detalle de su postura de seguridad.
Probablemente
Si ya dispone de un flujo de trabajo DevOps y desea integrar en él escaneos de seguridad, Probely le permite hacerlo en cuestión de minutos, gracias a sus herramientas y API de escaneado de vulnerabilidades de aplicaciones web.
El enfoque de Probely se basa en el desarrollo API-first, lo que significa que cada nueva característica de la herramienta se ofrece primero a través de la API y luego se añade a la interfaz. Esta estrategia hace posible que si necesita integrar Probely con flujos de trabajo o software personalizado, siempre pueda utilizar su API.
También puede registrar webhooks para que sus aplicaciones reciban notificaciones por cada evento que genere Probely.
Dado que Probely ofrece una serie de integraciones «out-of-the-box», lo más probable es que no tenga que utilizar su API para integrarlo con sus herramientas. Si ya utiliza Jira y Jenkins en sus flujos de trabajo, la integración será instantánea.
Probely iniciará automáticamente escaneos en sus pipelines CI/CD y registrará las vulnerabilidades encontradas como issues en Jira. Una vez resueltas esas vulnerabilidades, las probará de nuevo y reabrirá la incidencia no resuelta en Jira, si es necesario.
Checkov
Checkov escanea configuraciones en infraestructuras en nube con la intención de encontrar fallos de configuración antes de desplegar un producto de software. Con una interfaz de línea de comandos común, escanea los resultados en diversas plataformas, como Kubernetes, Terraform, Helm, CloudFormation, plantillas ARM y marcos Serverless.
Con un esquema de políticas basado en atributos, Checkov permite escanear los recursos de la nube en tiempo de compilación, detectando errores de configuración en los atributos mediante un sencillo marco Python de políticas como código. Entre otras cosas, Checkov analiza las relaciones entre los recursos de la nube utilizando políticas YAML basadas en gráficos.
Al integrarse en canalizaciones CI/CD y sistemas de control de versiones, Checkov ejecuta, prueba y modifica los parámetros del corredor en el contexto de un repositorio de destino.
Gracias a una interfaz de integración extensible, su arquitectura puede ampliarse para definir políticas, términos de supresión y proveedores personalizados. Su interfaz también le permite integrarse con plataformas de soporte, procesos de compilación y sistemas de liberación personalizados.
Faraday
Con Faraday, puede automatizar la gestión de vulnerabilidades y las acciones de control para centrar su atención en el trabajo que realmente importa. Sus flujos de trabajo le permiten desencadenar cualquier acción con eventos personalizados que puede diseñar libremente para evitar la repetición de tareas.
Faraday le ofrece la posibilidad de estandarizar e integrar sus herramientas de seguridad en sus flujos de trabajo, obteniendo información sobre vulnerabilidades de más de 80 herramientas de escaneado. Mediante agentes, los escáneres se integran automáticamente en sus flujos de trabajo para ingerir y normalizar los datos con la máxima facilidad, generando resultados que pueden visualizarse a través de una interfaz web.
Un aspecto destacable e interesante de Faraday es que utiliza un repositorio centralizado para almacenar la información de seguridad, que puede ser analizada y probada fácilmente por distintos miembros del equipo DevSecOps.
Esto aporta un beneficio adicional, que es la capacidad de identificar y combinar problemas duplicados notificados por diferentes herramientas. Esto reduce los esfuerzos de los miembros del equipo, evitando que tengan que prestar atención varias veces al mismo problema del que se informa más de una vez.
CircleCI
Para integrar CircleCI con las herramientas de seguridad DevOps más populares, debe incluir a uno de sus numerosos socios en sus conductos de desarrollo. Los socios de CircleCI son proveedores de soluciones en varias categorías, como SAST, DAST, análisis estático de contenedores, aplicación de políticas, gestión de secretos y seguridad de API.
Si necesita hacer algo para asegurar el conducto de desarrollo que no puede hacer con ninguno de los orbs disponibles, puede aprovechar el hecho de que los orbs son de código abierto. Por esa razón, añadir funcionalidad a un orbe existente es sólo cuestión de obtener la aprobación para su PR y fusionarlo.
Incluso si tiene un caso de uso que cree que queda fuera del conjunto de orbes disponibles en el registro de CircleCI, puede crear uno y contribuir con él a la comunidad. La empresa publica una lista de las mejores prácticas para crear pipelines automatizados de compilación y prueba de orbes para facilitarle el camino.
Para asegurar su canalización, elimine la necesidad de desarrollo interno y permita que su equipo aproveche los servicios de terceros. Al utilizar orbes CircleCI, su equipo sólo necesitará saber cómo utilizar esos servicios, sin necesidad de aprender a integrarlos o gestionarlos.
Trivy
Trivy es una herramienta de seguridad de código abierto que cuenta con varios escáneres capaces de detectar problemas de seguridad y varios objetivos en los que puede encontrar dichos problemas. Entre los objetivos que Trivy escanea se encuentran: sistemas de archivos, imágenes de contenedores, repositorios Git, imágenes de máquinas virtuales, Kubernetes y repositorios AWS.
Al escanear todos estos posibles objetivos, Trivy puede encontrar vulnerabilidades conocidas, fallos de configuración, secretos o información sensible y licencias de software, así como detectar problemas en la cadena de suministro del software, incluidas las dependencias del software en uso y los paquetes del sistema operativo.
Las plataformas y aplicaciones con las que Trivy puede integrarse pueden consultarse en su página Ecosistema. Esta lista incluye los nombres más populares, como CircleCI, GitHub Actions, VS Code, Kubernetes o JetBrains.
Trivy está disponible en apt, yum, brew y dockerhub. No tiene requisitos previos como bases de datos, entornos de despliegue o bibliotecas del sistema, y se estima que su primer análisis se completa en sólo 10 segundos.
GitLeaks
Gitleaks es una herramienta de código abierto con una interfaz de línea de comandos que puede instalarse mediante Docker, Homebrew o Go. También está disponible como ejecutable binario para las plataformas y sistemas operativos más populares. También puede desplegarlo directamente en su repo como un gancho pre-commit o como un recurso compartido de GitHub a través de Gitleaks-Action.
Su interfaz de comandos es simple y minimalista. Consta de sólo 5 comandos para detectar secretos en el código, proteger secretos, generar scripts, obtener ayuda o mostrar la versión de la herramienta. El comando detectar permite escanear repositorios, archivos y directorios. Puede utilizarse tanto en máquinas de desarrollo como en entornos CI.
La mayor parte del trabajo con GitLeaks se realiza utilizando los comandos detect y protect. Estos operan en repositorios Git, analizando la salida de los comandos git log o git diff y generando parches que GitLeaks utilizará después para detectar y proteger secretos.
Mantenerse competitivo y seguro
Por un lado, la agilidad y la velocidad de sus canalizaciones CI/CD son clave para garantizar una rápida salida al mercado, lo que a su vez es clave para seguir siendo competitivo como desarrollador de software.
Por otro lado, incluir herramientas de seguridad en sus procesos de desarrollo es una necesidad indiscutible. Para incorporar la seguridad sin afectar negativamente a sus plazos de SDLC, las herramientas DevSecOps son la respuesta.