Como utilizar uma ferramenta simples para buscar vulnerabilidades no código de programação

O Graudit suporta várias linguagens de programação e permite integrar testes de segurança da base de código diretamente no processo de desenvolvimento.

Como utilizar uma ferramenta simples para buscar vulnerabilidades no código de programação
Fonte: Unsplash (Markus Spiske)

O teste é uma parte importante do ciclo de vida do desenvolvimento de software. Existem muitos tipos de testes, cada um deles resolve sua própria tarefa. Hoje, quero falar sobre a identificação de problemas de segurança no código.

É evidente que, nas atuais realidades do desenvolvimento de software, é crucial garantir a segurança dos processos. Em seu tempo, até foi introduzido um termo especial, DevSecOps. Esse termo refere-se a um conjunto de procedimentos destinados a identificar e corrigir vulnerabilidades em aplicativos. Existem soluções open source especializadas para verificar vulnerabilidades de acordo com os padrões OWASP, que descrevem os vários tipos e comportamentos das vulnerabilidades no código-fonte.

Existem diferentes abordagens para resolver problemas de segurança, como o teste estático de segurança de aplicativos (SAST), o teste dinâmico de segurança de aplicativos (DAST), o teste interativo de segurança de aplicativos (IAST), a análise de componentes de software (Software Composition Analysis) e assim por diante.

O teste estático de segurança de aplicativos identifica erros em código já escrito. Essa abordagem não requer a execução do aplicativo, por isso é chamada de análise estática.

Vou me concentrar na análise estática do código e utilizar uma ferramenta open source simples para demonstrar tudo na prática.

Por que escolhi uma ferramenta open source para análise estática de segurança do código

Há várias razões: primeiro, é gratuito, pois você utiliza uma ferramenta desenvolvida por uma comunidade de pessoas que desejam ajudar outros desenvolvedores. Se você tem uma equipe pequena ou uma startup, tem uma ótima oportunidade de economizar utilizando software de código aberto para verificar a segurança de sua base de código. Em segundo lugar, isso elimina a necessidade de contratar uma equipe separada de DevSecOps, o que reduz ainda mais seus custos.

Boas ferramentas de código aberto sempre são criadas com foco em uma maior flexibilidade. Portanto, podem ser utilizadas em praticamente qualquer ambiente, abrangendo uma ampla gama de tarefas. Para os desenvolvedores, é muito mais simples integrar essas ferramentas ao sistema que já construíram enquanto trabalhavam em seus projetos.

Mas podem surgir situações em que você precise de uma funcionalidade que não está disponível na ferramenta que escolheu. Nesse caso, você tem a opção de bifurcar o código e desenvolver sua própria ferramenta com a funcionalidade necessária.

Como na maioria dos casos o desenvolvimento de software de código aberto é fortemente influenciado pela comunidade, as decisões sobre alterações são tomadas de forma rápida e objetiva: os desenvolvedores do projeto open source se baseiam no feedback e nas sugestões dos usuários, em suas mensagens sobre bugs encontrados e outros problemas.

Usando o Graudit para analisar a segurança do código

Para análise estática de código, podem ser usados diferentes ferramentas de código aberto, não existe uma ferramenta universal para todas as linguagens de programação. Os desenvolvedores de algumas delas seguem as recomendações da OWASP e buscam cobrir o maior número possível de linguagens.

Aqui nós vamos usar Graudit, uma simples ferramenta de linha de comando que nos permitirá encontrar vulnerabilidades em nossa base de código. Ela suporta diferentes linguagens, mas ainda assim seu conjunto é limitado. O Graudit foi desenvolvido com base na ferramenta utilitária grep, que na época foi lançada sob a licença GNU.

Existem ferramentas similares para análise estática de código — Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), flawfinder e assim por diante. Mas o Graudit é muito flexível e tem requisitos técnicos mínimos. No entanto, você pode ter tarefas que o Graudit não consegue resolver. Então, você pode procurar outras opções nesta lista.

Podemos integrar esta ferramenta em um projeto específico, torná-la disponível para um usuário selecionado ou usá-la simultaneamente em todos os nossos projetos. Essa também é uma demonstração da flexibilidade do Graudit. Então, vamos começar clonando o repositório:

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

Agora vamos criar um link simbólico para o Graudit, para usá-lo na linha de comando.

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

Adicione um alias no .bashrc (ou em outro arquivo de configuração que você utiliza):

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

Recarregue:

$ source ~/ .bashrc # OU
$ exec $SHELL

Vamos verificar se a instalação foi bem-sucedida:

$ graudit -h

Se você ver algo parecido, tudo está bem.

Como utilizar uma ferramenta simples para buscar vulnerabilidades no código de programação

Vou testar um dos meus projetos já existentes. Antes de rodar a ferramenta, é preciso passar um banco de dados correspondente à linguagem em que meu projeto foi escrito. Os bancos de dados estão na pasta ~/gradit/signatures:

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

Então, testei dois arquivos js do meu projeto, e o Graudit exibiu informações sobre vulnerabilidades no meu código:

Como utilizar uma ferramenta simples para buscar vulnerabilidades no código de programação

Como utilizar uma ferramenta simples para buscar vulnerabilidades no código de programação

Você pode tentar testar seus projetos da mesma forma. A lista de bancos de dados para diferentes linguagens de programação pode ser vista aqui.

Vantagens e desvantagens do Graudit

O Graudit suporta várias linguagens de programação. Portanto, é adequado para uma ampla gama de usuários. Ele pode competir dignamente com qualquer alternativa gratuita ou paga. E é muito importante que o projeto ainda esteja sendo desenvolvido, e a comunidade não só ajuda os desenvolvedores, mas também outros usuários que tentam entender a ferramenta.

É uma ferramenta conveniente, mas ainda não consegue sempre identificar exatamente qual é o problema relacionado a uma parte suspeita do código. Os desenvolvedores continuam aprimorando o Graudit.

Mas de qualquer forma, é útil prestar atenção a problemas de segurança potenciais no código, usando ferramentas como essa.

Começando...

Neste artigo, abordei apenas uma das muitas maneiras de buscar vulnerabilidades — o teste de segurança estática de aplicações. Realizar uma análise estática de código é fácil, mas isso é apenas o começo. Para entender mais sobre a segurança da sua base de código, você deve integrar outros tipos de teste ao ciclo de vida do desenvolvimento de software.

Em nome da publicidade

VPS confiável e a escolha certa do plano permitirão que você se preocupe menos com problemas indesejados durante o desenvolvimento — tudo funcionará sem interrupções e com um uptime muito alto!

Como utilizar uma ferramenta simples para buscar vulnerabilidades no código de programação

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster