Application Security com OpenSource. É possivel?
Tags: opensource, appsec, cybersecurity, devsecops
Published: 2023-03-09 00:44:57

Fala Devs!

Entregar software seguro hoje em dia é uma obrigação de toda empresa. Mas será que sempre temos recurso para analisar o que estamos produzindo? A empresa, está disposta a investir em Segurança? Se não está, qual alternativa temos para contornar esta situação?

Bom, são com essas perguntas que inicio a minha primeira publicação aqui no DEV.to, com base numa apresentação que  efetuei para a comunidade do Discord **Menina de CyberSec**, iniciativa da **Sabrina Ramos**.

Já trabalhei em empresas que o quesito segurança sempre era visto como um gasto/custo. Já cheguei a observar entregas de software com credenciais chumbadas em código, com intuíto de "facilitar" a conexão com o banco de dados. Sem contar outras inumeras situações de total despreocupação com o tema. Talvez por desconhecimento, talvez por pensar "estamos em um nicho pequeno, quem vai se importar conosco?". 

Se você passa ou passou por isso, seus problemas acabaram! Apresento abaixo algumas ferramentas OpenSource para executar um ciclo de desenvolvimento de software seguro (SSDLC). Assim, sem a necessidade inicial de investir em ferramentas enterprise, você pode analisar todo seu produto e corrigir as vulnerabilidades encontradas em tempo de desenvolvimento.

Vamos lá:

**- OWASP THREAT DRAGON - Threat Model**
OWASP Threat Dragon é uma ferramenta de modelagem de ameaças que ajuda a identificar e mitigar possíveis ameaças de segurança em seus aplicativos. Ele fornece uma interface gráfica amigável que permite criar e modificar modelos de ameaças usando as metodologias como **STRIDE** (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege) e **DREAD** (Damage, Reproducibility, Exploitability, Affected Users, Discoverability).

**- OWASP DEPENDENCY CHECK / TRACK - SCA**
O Dependency Check / Track são ferramenta de Software Composition Analysis (SCA) que ajudam as organizações a identificar e gerenciar vulnerabilidades nas dependências de seu software. Eles permitem que você examine seus projetos para identificar as bibliotecas, estruturas e outros componentes de terceiros dos quais seu código depende. 

**- SONARQUBE - SAST & QA**
SonarQube é uma plataforma de inspeção contínua de qualidade de código, análise de código e análise de código estático. Ele fornece um conjunto de ferramentas para analisar a qualidade do código, identificar bugs, vulnerabilidades de segurança e code smells (más práticas de codificação). Atende inúmeras linguagens de mercado, é possivel integração com CI/CD e pode ser personalizada para atender os níveis de qualidade que deseja.

**- OWASP ZAP - DAST**
O ZAP (Zed Attack Proxy) é um scanner de segurança de aplicativos Web/API de código aberto amplamente utilizado e uma ferramenta de teste de penetração. Ele foi projetado para ajudar profissionais de segurança e desenvolvedores a testar a segurança de aplicativos Web e encontrar vulnerabilidades. É possivel automatizar as análises, interceptações, verificar vulnerabildiades como SQLi, XSS, etc.

**- JENKINS - Pipeline**
Jenkins é um servidor de automação usado para automatizar vários aspectos do ciclo de vida de desenvolvimento de software, incluindo criação, teste e implantação de aplicativos de software. Jenkins é altamente personalizável e extensível, pode ser integrado a uma ampla variedade de ferramentas e sistemas de software. Permite aos usuários gerenciar e configurar sua instâncias, incluindo criação e agendamento de compilações, configuração de ambientes de compilação e configuração de plugins. Jenkins também oferece suporte a um rico ecossistema de plug-ins, que permite aos usuários estender e personalizar suas funcionalidades de várias maneiras.

**- AQUA TRIVY - Container**
Trivy é um scanner projetado para detectar vulnerabilidades em imagens de contêiner e outros artefatos, como pacotes de sistema operacional e dependências de aplicativos. É uma ferramenta leve e fácil de usar que pode ser integrada aos pipelines de DevOps para ajudar a automatizar a verificação de vulnerabilidades e melhorar a segurança de aplicativos em contêineres.

**- DEFECT DOJO - Vulnerability Management**
DefectDojo é uma ferramenta de gerenciamento de vulnerabilidade que ajuda as equipes de segurança a gerenciar o processo de teste de segurança para seus aplicativos de software. Ele permite que as equipes de segurança rastreiem e gerenciem vulnerabilidades descobertas durante vários estágios do ciclo de vida de desenvolvimento de software, incluindo teste, implantação e produção. Como um agregador de informações, permite integração com email, pipelines, ferramentas de versionamento, boards de tarefas e ainda gera relatórios e dashboards

**- TRUFFLE HOG - Secret Sniffer**
Trufflehog é uma ferramenta de segurançabusada para pesquisar informações confidenciais, como chaves de API, chaves criptográficas e outros segredos, que podem ter sido acidentalmente fixados em repositórios de código. Funciona escaneando o conteúdo dos repositórios de código, incluindo histórico de commits e ramificações, procurando padrões que correspondam a Secret Keys conhecidas e outras informações confidenciais. O Trufflehog pode procurar chaves em uma ampla variedade de tipos de arquivo, incluindo arquivos de código, arquivos de configuração e arquivos binários.

Com toda essa stack de ferramentas, você pode criar um ciclo de desenvolvimento seguro, permitindo que seu produto seja entregue ao seu cliente com o menor risco de ter uma brecha de segurança. Há outras ferramentas e Frameworks que podemos utilizar, mas este artigo já está grande demais... apresento uma outra hora!

Espero que essas informações possam servir para seu dia-a-dia e para deixar de lado as desculpas da sua empresa de que não tem dinheiro para ferramentas de segurança.

Até a próxima!