Cómo utilizar una utilidad sencilla para encontrar vulnerabilidades en el código del programa

Graudit admite múltiples lenguajes de programación y le permite integrar pruebas de seguridad de la base de código directamente en el proceso de desarrollo.

Cómo utilizar una utilidad sencilla para encontrar vulnerabilidades en el código del programa
Fuente: Unsplash (Markus Spiske)

Las pruebas son una parte importante del ciclo de vida del desarrollo de software. Hay muchos tipos de pruebas, cada una de ellas resuelve su propio problema. Hoy quiero hablar sobre cómo encontrar problemas de seguridad en el código.

Obviamente, en las realidades modernas del desarrollo de software, es importante garantizar la seguridad del proceso. Hubo un tiempo en que incluso se introdujo el término especial DevSecOps. Este término se refiere a una serie de procedimientos destinados a identificar y eliminar vulnerabilidades en una aplicación. Existen soluciones especializadas de código abierto para comprobar vulnerabilidades de acuerdo con los estándares. OWASP, que describen los diferentes tipos y comportamientos de las vulnerabilidades en el código fuente.

Existen diferentes enfoques para resolver problemas de seguridad, como las pruebas de seguridad de aplicaciones estáticas (SAST), las pruebas de seguridad de aplicaciones dinámicas (DAST), las pruebas de seguridad de aplicaciones interactivas (IAST), el análisis de composición de software, etc.

Las pruebas de seguridad de aplicaciones estáticas identifican errores en el código ya escrito. Este enfoque no requiere que la aplicación se ejecute, por eso se llama análisis estático.

Me centraré en el análisis de código estático y utilizaré una herramienta sencilla de código abierto para demostrar todo en la práctica.

Por qué elegí una herramienta de código abierto para el análisis de seguridad de código estático

Hay varias razones para esto: en primer lugar, es gratis porque estás utilizando una herramienta desarrollada por una comunidad de personas con ideas afines que quieren ayudar a otros desarrolladores. Si tiene un equipo pequeño o una startup, tiene una gran oportunidad de ahorrar dinero utilizando software de código abierto para probar la seguridad de su código base. En segundo lugar, elimina la necesidad de contratar un equipo de DevSecOps independiente, lo que reduce aún más sus costos.

Las buenas herramientas de código abierto siempre se crean teniendo en cuenta los mayores requisitos de flexibilidad. Por lo tanto, se pueden utilizar en casi cualquier entorno, cubriendo una amplia gama de tareas. Es mucho más fácil para los desarrolladores conectar dichas herramientas con el sistema que ya han creado mientras trabajan en sus proyectos.

Pero puede haber ocasiones en las que necesite una función que no esté disponible en la herramienta que elija. En este caso, tienes la oportunidad de bifurcar su código y desarrollar tu propia herramienta basada en él con la funcionalidad que necesitas.

Dado que en la mayoría de los casos el desarrollo de software de código abierto está influenciado activamente por la comunidad, la decisión de realizar cambios se toma con bastante rapidez y va al grano: los desarrolladores del proyecto de código abierto confían en los comentarios y sugerencias de los usuarios, en sus informes de errores encontrados y otros problemas.

Uso de Graudit para el análisis de seguridad del código

Puede utilizar varias herramientas de código abierto para el análisis de código estático; no existe una herramienta universal para todos los lenguajes de programación. Los desarrolladores de algunos de ellos siguen las recomendaciones de OWASP e intentan abarcar la mayor cantidad de idiomas posible.

Aquí usaremos Graudit, una sencilla utilidad de línea de comandos que nos permitirá encontrar vulnerabilidades en nuestro código base. Admite diferentes idiomas, pero aún así su conjunto es limitado. Graudit se desarrolla sobre la base de la utilidad grep, que una vez se lanzó bajo la licencia GNU.

Existen herramientas similares para el análisis de código estático: herramienta de auditoría aproximada para seguridad (RATS), herramienta de análisis de aplicaciones web Securitycompass (SWAAT), buscador de fallos, etc. Pero Graudit es muy flexible y tiene requisitos técnicos mínimos. Sin embargo, es posible que tenga problemas que Graudit no pueda resolver. Entonces puedes buscar otras opciones aquí. en esta lista.

Podemos integrar esta herramienta en un proyecto específico, o ponerla a disposición de un usuario seleccionado, o utilizarla simultáneamente en todos nuestros proyectos. Aquí también entra en juego la flexibilidad de Graudit. Así que primero clonemos el repositorio:

$ git clone https://github.com/wireghoul/graudit

Ahora creemos un enlace simbólico para que Graudit lo use en formato de comando.

$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit

Agreguemos un alias a .bashrc (o cualquier archivo de configuración que esté usando):

#------ .bashrc ------
alias graudit="~/bin/graudit"

Reiniciar:

$ source ~/.bashrc # OR
$ exex $SHELL

Comprobemos si la instalación fue exitosa:

$ graudit -h

Si ves algo similar, entonces todo está bien.

Cómo utilizar una utilidad sencilla para encontrar vulnerabilidades en el código del programa

Probaré uno de mis proyectos existentes. Antes de ejecutar la herramienta, es necesario pasarle una base de datos correspondiente al idioma en el que está escrito mi proyecto. Las bases de datos están ubicadas en la carpeta ~/gradit/signatures:

$ graudit -d ~/gradit/signatures/js.db

Entonces, probé dos archivos js de mi proyecto y Graudit mostró información sobre las vulnerabilidades en mi código en la consola:

Cómo utilizar una utilidad sencilla para encontrar vulnerabilidades en el código del programa

Cómo utilizar una utilidad sencilla para encontrar vulnerabilidades en el código del programa

Puedes intentar probar tus proyectos de la misma manera. Puede ver una lista de bases de datos para diferentes lenguajes de programación. aquí.

Ventajas y desventajas de Graudit

Graudit admite muchos lenguajes de programación. Por tanto, es adecuado para una amplia gama de usuarios. Puede competir adecuadamente con cualquier análogo gratuito o de pago. Y es muy importante que todavía se estén realizando mejoras en el proyecto y que la comunidad no sólo ayude a los desarrolladores, sino también a otros usuarios que están intentando descubrir la herramienta.

Esta es una herramienta útil, pero hasta ahora no siempre puede identificar exactamente cuál es el problema con un código sospechoso. Los desarrolladores continúan mejorando Graudit.

Pero en cualquier caso, es útil prestar atención a posibles problemas de seguridad en el código al utilizar herramientas como esta.

Empezando ...

En este artículo, analicé solo una de las muchas formas de encontrar vulnerabilidades: las pruebas de seguridad de aplicaciones estáticas. Realizar un análisis de código estático es fácil, pero es sólo el comienzo. Para obtener más información sobre la seguridad de su código base, debe integrar otros tipos de pruebas en su ciclo de vida de desarrollo de software.

Sobre los derechos de publicidad

VPS confiable y la elección correcta del plan de tarifas le permitirá distraerse menos del desarrollo con problemas desagradables: ¡todo funcionará sin fallas y con un tiempo de actividad muy alto!

Cómo utilizar una utilidad sencilla para encontrar vulnerabilidades en el código del programa

Fuente: habr.com

Añadir un comentario