Como usar um utilitário simples para encontrar vulnerabilidades no código do programa

Graudit suporta múltiplas linguagens de programação e permite integrar testes de segurança de base de código diretamente no processo de desenvolvimento.

Como usar um utilitário simples para encontrar vulnerabilidades no código do programa
Fonte: Unsplash (Markus Spiske)

O teste é uma parte importante do ciclo de vida de desenvolvimento de software. Existem muitos tipos de testes, cada um deles resolve seu próprio problema. Hoje quero falar sobre como encontrar problemas de segurança no código.

Obviamente, nas realidades modernas de desenvolvimento de software, é importante garantir a segurança do processo. Ao mesmo tempo, o termo especial DevSecOps foi introduzido. Este termo refere-se a uma série de procedimentos que visam identificar e eliminar vulnerabilidades em uma aplicação. Existem soluções especializadas de código aberto para verificação de vulnerabilidades de acordo com os padrões OWASP, que descrevem os diferentes tipos e comportamentos de vulnerabilidades no código-fonte.

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

O teste estático de segurança de aplicativos identifica erros em códigos já escritos. 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 de código e usar uma ferramenta simples de código aberto para demonstrar tudo na prática.

Por que escolhi uma ferramenta de código aberto para análise de segurança de código estático

Há uma série de razões para isso: primeiro, é gratuito porque você está usando uma ferramenta desenvolvida por uma comunidade de pessoas com ideias semelhantes que desejam ajudar outros desenvolvedores. Se você tem uma equipe pequena ou uma startup, tem uma grande oportunidade de economizar dinheiro usando software de código aberto para testar a segurança de sua base de código. Em segundo lugar, elimina a necessidade de contratar uma equipe DevSecOps separada, reduzindo ainda mais seus custos.

Boas ferramentas de código aberto são sempre criadas levando em consideração maiores requisitos de flexibilidade. Portanto, eles podem ser usados ​​em praticamente qualquer ambiente, abrangendo uma ampla gama de tarefas. É muito mais fácil para os desenvolvedores conectarem essas ferramentas ao sistema que já construíram enquanto trabalhavam em seus projetos.

Mas pode haver momentos em que você precise de um recurso que não está disponível na ferramenta escolhida. Nesse caso, você tem a oportunidade de bifurcar seu código e desenvolver sua própria ferramenta baseada nele com as funcionalidades que você precisa.

Como na maioria dos casos o desenvolvimento de software de código aberto é ativamente influenciado pela comunidade, a decisão de fazer alterações é tomada de forma bastante rápida e direta: os desenvolvedores do projeto de código aberto confiam no feedback e nas sugestões dos usuários, em seus relatórios de erros encontrados e outros problemas.

Usando Graudit para análise de segurança de código

Você pode usar várias ferramentas de código aberto para análise de código estático; não existe uma ferramenta universal para todas as linguagens de programação. Os desenvolvedores de alguns deles seguem as recomendações do OWASP e tentam cobrir o máximo de idiomas possível.

Aqui vamos usar Graudite, um utilitário de linha de comando simples que nos permitirá encontrar vulnerabilidades em nossa base de código. Suporta diferentes idiomas, mas ainda assim seu conjunto é limitado. Graudit é desenvolvido com base no utilitário grep, que já foi lançado sob a licença GNU.

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

Podemos integrar esta ferramenta num projeto específico, ou disponibilizá-la a um utilizador selecionado, ou utilizá-la simultaneamente em todos os nossos projetos. É também aqui que a flexibilidade do Graudit entra em jogo. Então, vamos clonar o repositório primeiro:

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

Agora vamos criar um link simbólico para o Graudit usar em formato de comando

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

Vamos adicionar um alias ao .bashrc (ou qualquer arquivo de configuração que você esteja usando):

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

Reinício:

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

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

$ graudit -h

Se você vir algo semelhante, está tudo bem.

Como usar um utilitário simples para encontrar vulnerabilidades no código do programa

Estarei testando um de meus projetos existentes. Antes de executar a ferramenta, é necessário passar um banco de dados correspondente à linguagem em que meu projeto está escrito. Os bancos de dados estão localizados 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 no console:

Como usar um utilitário simples para encontrar vulnerabilidades no código do programa

Como usar um utilitário simples para encontrar vulnerabilidades no código do programa

Você pode tentar testar seus projetos da mesma maneira. Você pode ver uma lista de bancos de dados para diferentes linguagens de programação aqui.

Vantagens e desvantagens do Graudit

Graudit oferece suporte a muitas linguagens de programação. Portanto, é adequado para uma ampla gama de usuários. Pode competir adequadamente com quaisquer análogos gratuitos ou pagos. E é muito importante que melhorias ainda estejam sendo feitas no projeto, e que a comunidade não ajude apenas os desenvolvedores, mas também outros usuários que estão tentando descobrir a ferramenta.

Esta é uma ferramenta útil, mas até agora nem sempre é possível identificar exatamente qual é o problema com um trecho de código suspeito. Os desenvolvedores continuam a melhorar o Graudit.

Mas em qualquer caso, é útil prestar atenção aos possíveis problemas de segurança no código ao usar ferramentas como esta.

Começando ...

Neste artigo, examinei apenas uma das muitas maneiras de encontrar vulnerabilidades: testes estáticos de segurança de aplicativos. Conduzir análise estática de código é fácil, mas é apenas o começo. Para saber mais sobre a segurança da sua base de código, você precisa integrar outros tipos de testes ao seu ciclo de vida de desenvolvimento de software.

Como a publicidade

VPS confiável e a escolha correta do plano tarifário permitirá que você se distraia menos do desenvolvimento por problemas desagradáveis ​​​​- tudo funcionará sem falhas e com um tempo de atividade muito elevado!

Como usar um utilitário simples para encontrar vulnerabilidades no código do programa

Fonte: habr.com

Adicionar um comentário