La seguridad puede ser un mundo difícil y caro de navegar. Así que decidimos crear una guía completa de herramientas de seguridad de código abierto para dejarnos de tonterías y mostrar cuáles son las herramientas más importantes que hay que implementar, qué activos necesitas proteger y cómo puedes crear un plan de seguridad a largo plazo utilizando únicamente herramientas gratuitas y de código abierto.

¿Cuáles son las herramientas más importantes?
Existen herramientas de seguridad aparentemente infinitas, el primer paso es siempre decidir por dónde empezar. Aunque siempre puede variar en función de las características específicas, siempre recomendamos empezar por lo más fácil para los atacantes. Asegúrate de que tu infraestructura en la nube es segura, de que no tienes secretos que los atacantes puedan encontrar fácilmente, de que no hay simples errores de codificación que conduzcan a errores y de que no tienes vulnerabilidades críticas en tu cadena de suministro de código abierto. A partir de ahí puedes implementar más herramientas para mejorar la seguridad y detrás implementar más buenas prácticas a lo largo del ciclo de vida de desarrollo de software.

¿Qué herramientas hay disponibles?
Hay un montón de herramientas de código abierto disponibles y mucho dependerá de su pila y las necesidades exactas, pero a continuación se presentan algunos de los que consideramos que son el estándar de oro y un gran lugar para empezar.
CSPM (Gestión de posturas de seguridad en la nube)
Cloudsploit
CSPM es una herramienta esencial para proteger nuestros activos en la nube, Cloudsploit es un CSPM de código abierto. El proyecto detecta riesgos de seguridad en cuentas de infraestructura en la nube, incluidos Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP) y Oracle Cloud Infrastructure (OCI).
Detección de secretos
Trufflehog | gitleaks.
Los secretos son objetivos de alto valor para los atacantes, ya que permiten rápidos movimientos laterales en nuevos sistemas, de hecho, los secretos se utilizan en el 83% de las brechas. Es esencial detectarlos allí donde viven, especialmente en tus repositorios git. Dos de las mejores herramientas de código abierto para detectar secretos son Trufflehog y gitleaks.
SCA (Análisis de la composición del software)
Trivy | Dependency-Check | Dependency-Track
Las dependencias de código abierto constituyen el 85% del código de nuestras aplicaciones, ¡esto puede significar que los atacantes conocen su código mejor que usted! Es fundamental que sepamos qué componentes de código abierto contienen vulnerabilidades. Las herramientas de SCA analizan qué dependencias de código abierto utilizamos en nuestras aplicaciones y determinan cuáles tienen vulnerabilidades conocidas. Trivy, Dependency-Check y Dependecy-Track son excelentes herramientas para ayudarnos a comprender nuestros riesgos de código abierto.
SAST (Pruebas estáticas de seguridad de las aplicaciones)
Bandit | Breakeman| GoSec |SemGrep
SAST revisa su código fuente en busca de errores que puedan provocar problemas de seguridad. Algunos de los errores más comunes que SAST puede descubrir son vulnerabilidades de inyección, fallos de cifrado y desbordamientos de búfer. Las herramientas que elijas deberán ser específicas para tu pila tecnológica concreta. Algunas buenas opciones son Bandit (Python), Breakeman (Ruby), GoSec (Go) y SemGrep (Generic).
DAST (Pruebas dinámicas de seguridad de las aplicaciones)
Nuclei | Zap
Las herramientas DAST actúan como un hacker automatizado que ejecuta ataques contra tus dominios para descubrir vulnerabilidades explotables, esto también se conoce a veces como monitorización de superficie. Dos excelentes herramientas de código abierto son Nuclei y Zap.
Detección de malware
Phylum
Las herramientas SCA clásicas se basan en vulnerabilidades que han sido divulgadas públicamente. La detección de malware consiste en descubrir código malicioso dentro de paquetes que pueden no haber sido informados. Phylum es una gran herramienta para esto, aunque técnicamente no es completamente de código abierto, pero tiene una versión gratuita que se puede utilizar con su herramienta de escaneo CLI.
Escaneado IaC
Checkov
La infraestructura como código nos ha permitido aprovisionar y desplegar infraestructura en la nube con mayor confianza y facilidad. Sin embargo, esto puede llevar a una mala configuración que introduzca problemas de seguridad. Las herramientas CSPM de las que hemos hablado antes pueden encontrar errores en tu infraestructura en la nube, mientras que el análisis IaC puede evitar que se produzcan errores antes del despliegue. Checkov es una gran herramienta que puede escanearlos en busca de problemas de seguridad.
Firewall en la aplicación
Zen-Node | Zen Python
Ha habido una tendencia real sobre el cambio a la izquierda en la seguridad (moviendo la seguridad antes en el ciclo de vida), mientras que esto es genial no debemos descuidar el otro lado de esto e implementar la seguridad para nuestras aplicaciones en ejecución. Zen by Aikido es un cortafuegos de código abierto que puede bloquear ataques como la inyección en tiempo de ejecución añadiendo un nivel secundario de protección. Zen-Node | Zen Python
Componentes al final de su vida útil
endoflife.date
Un gran riesgo de nuestra cadena de suministro de código abierto son los componentes que ya no se mantienen, endoflife.date es una gran base de datos de proyectos que ya no se mantienen y que no deberían utilizarse en producción.
Protección de licencias
Trivy
Es importante estar consciente de que está utilizando la licencia de código abierto correcta con su aplicación, Trivy proporciona una gran comprensión de los tipos de licencia de código abierto y cómo se están utilizando.
¿Son las herramientas de código abierto tan buenas como las versiones comerciales?
Las herramientas de código abierto pueden ser de muy alta calidad en cuanto a sus capacidades de escaneado. Sin embargo, las herramientas comerciales aportan más cuando se trata de reducción de ruido, corrección y supervisión. Muchas herramientas comerciales, como Aikido, utilizan escáneres de código abierto. No hay que tener miedo a utilizar herramientas de código abierto, pero hay que ser consciente de que el uso de herramientas de código abierto, sobre todo a medida que se crece, requerirá mucho tiempo de ingeniería.
Por qué utilizar herramientas de seguridad de código abierto
- Sin barreras de entrada (rápido y gratuito)
- El código abierto es una gran herramienta para conseguir la participación de la junta directiva (estas herramientas pueden utilizarse para poner de relieve los problemas de seguridad).
- Escáneres de alta calidad (muchas herramientas de código abierto igualan las capacidades de escaneado)
- Apoyo comunitario
¿Por qué no utilizar herramientas de seguridad de código abierto?
- Difícil configuración, las herramientas de código abierto utilizan un mosaico de lenguajes y marcos de trabajo, por lo que es difícil conseguir que se comuniquen bien.
- Las herramientas ruidosas y de código abierto tienden a centrarse en el descubrimiento, por lo que pueden aportar muchos falsos positivos si no se crean capas adicionales de filtrado.
- Asistencia limitada, si las herramientas se rompen estás solo
- Sin RBAC. En el desarrollo moderno, es importante que todo el equipo participe. La seguridad de código abierto no permite ningún filtro entre roles, lo que supone una pesada carga para el equipo de seguridad.
No hay una respuesta correcta para el código abierto sobre las herramientas comerciales y ambos tienen su lugar, leer más sobre este tema aquí.
La diferencia del Aikido
Si está investigando herramientas de seguridad de código abierto, probablemente se habrá dado cuenta de que las herramientas comerciales son caras, mientras que las de código abierto requieren mucho trabajo para poder centralizarlas en un panel de control. En Aikido entendemos ese reto y hemos creado un producto que reúne a la perfección los proyectos de código abierto, centralizados en un único panel de control que aporta contexto a cada problema de seguridad con flujos de trabajo de auto-triage y remediación. Esto le permite tener el poder de una gran herramienta comercial a una fracción del precio.
