Como usar unha utilidade sinxela para atopar vulnerabilidades no código do programa

Graudit admite varias linguaxes de programación e permítelle integrar as probas de seguranza da base de código directamente no proceso de desenvolvemento.

Como usar unha utilidade sinxela para atopar vulnerabilidades no código do programa
Fonte: Unsplash (Markus Spiske)

As probas son unha parte importante do ciclo de vida do desenvolvemento de software. Hai moitos tipos de probas, cada unha delas resolve o seu propio problema. Hoxe quero falar sobre como atopar problemas de seguridade no código.

Obviamente, nas realidades modernas do desenvolvemento de software, é importante garantir a seguridade dos procesos. Nun momento, incluso se introduciu o termo especial DevSecOps. Este termo fai referencia a unha serie de procedementos destinados a identificar e eliminar vulnerabilidades nunha aplicación. Existen solucións especializadas de código aberto para comprobar as vulnerabilidades de acordo cos estándares OWASP, que describen os diferentes tipos e comportamentos de vulnerabilidades no código fonte.

Existen diferentes enfoques para resolver problemas de seguridade, como probas de seguridade de aplicacións estáticas (SAST), probas de seguranza de aplicacións dinámicas (DAST), probas de seguranza de aplicacións interactivas (IAST), análise de composición de software, etc.

As probas de seguridade das aplicacións estáticas identifican erros no código xa escrito. Este enfoque non require que a aplicación se execute, polo que se chama análise estática.

Centrareime na análise de código estático e usarei unha ferramenta sinxela de código aberto para demostrar todo na práctica.

Por que escollín unha ferramenta de código aberto para a análise de seguranza do código estático

Hai unha serie de razóns para iso: primeiro, é gratuíto porque estás a usar unha ferramenta desenvolvida por unha comunidade de persoas afíns que queren axudar a outros desenvolvedores. Se tes un pequeno equipo ou startup, tes unha gran oportunidade de aforrar cartos usando software de código aberto para probar a seguridade da túa base de código. En segundo lugar, elimina a necesidade de contratar un equipo DevSecOps separado, reducindo aínda máis os seus custos.

As boas ferramentas de código aberto créanse sempre tendo en conta os requisitos máis elevados de flexibilidade. Polo tanto, pódense utilizar en case calquera ambiente, cubrindo unha ampla gama de tarefas. É moito máis doado para os desenvolvedores conectar este tipo de ferramentas co sistema que xa construíron mentres traballan nos seus proxectos.

Pero pode haber momentos nos que necesites unha función que non estea dispoñible na ferramenta que escollas. Neste caso, tes a oportunidade de fornear o seu código e desenvolver a túa propia ferramenta baseada nel coa funcionalidade que necesitas.

Dado que na maioría dos casos o desenvolvemento de software de código aberto está influenciado activamente pola comunidade, a decisión de facer cambios tómase bastante rápido e directo: os desenvolvedores do proxecto de código aberto confían nos comentarios e suxestións dos usuarios, nos seus informes de erros atopados e outros problemas.

Usando Graudit para a análise de seguranza do código

Podes usar varias ferramentas de código aberto para a análise de código estático; non hai ningunha ferramenta universal para todas as linguaxes de programación. Os desenvolvedores dalgúns deles seguen as recomendacións de OWASP e tratan de cubrir o maior número de idiomas posible.

Aquí usaremos Graudit, unha sinxela utilidade de liña de comandos que nos permitirá atopar vulnerabilidades na nosa base de código. Admite diferentes idiomas, pero aínda así o seu conxunto é limitado. Graudit desenvólvese baseándose na utilidade grep, que no seu día foi lanzado baixo a licenza GNU.

Existen ferramentas similares para a análise de código estático - Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), flawfinder, etc. Pero Graudit é moi flexible e ten requisitos técnicos mínimos. Non obstante, pode ter problemas que Graudit non pode resolver. Despois podes buscar outras opcións aquí nesta lista.

Podemos integrar esta ferramenta nun proxecto concreto, ou poñela a disposición dun usuario seleccionado, ou utilizala simultaneamente en todos os nosos proxectos. Aquí é tamén onde entra en xogo a flexibilidade de Graudit. Entón, primeiro clonemos o repositorio:

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

Agora imos crear unha ligazón simbólica para que Graudit o use en formato de comando

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

Engademos un alias a .bashrc (ou calquera ficheiro de configuración que esteas a usar):

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

Reiniciar:

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

Comprobamos se a instalación foi exitosa:

$ graudit -h

Se ves algo parecido, todo está ben.

Como usar unha utilidade sinxela para atopar vulnerabilidades no código do programa

Vou probar un dos meus proxectos existentes. Antes de executar a ferramenta, cómpre pasarlle unha base de datos correspondente á lingua na que está escrito o meu proxecto. As bases de datos están situadas no cartafol ~/gradit/signatures:

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

Entón, probei dous ficheiros js do meu proxecto e Graudit mostrou información sobre vulnerabilidades do meu código na consola:

Como usar unha utilidade sinxela para atopar vulnerabilidades no código do programa

Como usar unha utilidade sinxela para atopar vulnerabilidades no código do programa

Podes probar os teus proxectos do mesmo xeito. Podes ver unha lista de bases de datos para diferentes linguaxes de programación aquí.

Vantaxes e inconvenientes de Graudit

Graudit admite moitas linguaxes de programación. Polo tanto, é axeitado para unha ampla gama de usuarios. Pode competir adecuadamente con calquera análogo gratuíto ou de pago. E é moi importante que aínda se estean facendo melloras no proxecto, e a comunidade non só axuda aos desenvolvedores, senón tamén a outros usuarios que intentan descubrir a ferramenta.

Esta é unha ferramenta útil, pero ata agora non sempre pode identificar exactamente cal é o problema cunha peza de código sospeitosa. Os desenvolvedores seguen mellorando Graudit.

Pero en calquera caso, é útil prestar atención aos posibles problemas de seguridade no código cando se usan ferramentas como esta.

Comezando ...

Neste artigo, observei só unha das moitas formas de atopar vulnerabilidades: as probas de seguridade estáticas das aplicacións. Realizar análise de código estático é doado, pero é só o comezo. Para obter máis información sobre a seguridade da súa base de código, cómpre integrar outros tipos de probas no seu ciclo de vida de desenvolvemento de software.

Sobre os dereitos da publicidade

VPS fiable e a elección correcta do plan tarifario permitirache estar menos distraído do desenvolvemento por problemas desagradables: todo funcionará sen fallos e cun tempo de actividade moi elevado.

Como usar unha utilidade sinxela para atopar vulnerabilidades no código do programa

Fonte: www.habr.com

Engadir un comentario