DevSecOps
CARTILHA DEVSECOPS
Objetivo
Este documento tem como objetivo definir o fluxo de desenvolvimento seguro das aplicações para o GAB.
Preparação para o desenvolvimento
Durante a fase de preparação do ambiente, o desenvolvedor deve instalar as ferramentas necessárias de acordo com a stack de desenvolvimento que atua. Uma lista de ferramentas homologadas está disponível em anexo para ajudar na escolha da IDE. Nossos projetos são revisados pelas plataformas SonarLint e SonarQube, que pertencem à SonarSource, uma empresa suíça especializada em soluções para varredura de código fonte. Essas plataformas garantem qualidade e segurança nas entregas contínuas. SonarLint é uma ferramenta que ajuda o desenvolvedor a seguir boas práticas de desenvolvimento seguro, identificando pontos vulneráveis no código e sugerindo soluções antes de enviar para o gerenciador de repositórios. Para configurar, o desenvolvedor deve solicitar ao time de infraestrutura a vinculação de seu usuário de rede ao projeto no SonarQube e gerar um token para integração com o SonarLint. O acesso ao Sonar é necessário para analisar os resultados da validação automática. Após a requisição do token de acesso, o desenvolvedor deve configurar o SonarLint para buscar as regras através do SonarQube.
✔️ Ao final desta etapa você deve ter conseguido:
- Instalar a IDE para desenvolvimento
- Acesso ao Token do SonarQube
- Acesso ao projeto no SonarQube
- Configurar o SonarLint na IDE
Se o desenvolvedor precisar se conectar ao banco de dados, ele deve instalar uma ferramenta de administração de banco de dados, que pode ser encontrada na tabela anexa.
✔️Ao final desta etapa você deve ter conseguido:
- Instalar uma ferramenta de administração de banco de dados
- Acessar o banco de dados
Para acessar o repositório do GitLab, o desenvolvedor deve acessar o link http://gitlab-gab.aguiabranca.com.br/ pela primeira vez, usando suas credenciais de rede. Isso vincula o usuário e permite que ele se torne membro dos projetos hospedados. Para concluir a configuração do ambiente de desenvolvimento, é necessário instalar uma ferramenta de gestão de repositórios Git, conforme indicado na tabela de apoio anexa.
✔️Ao final desta etapa você deve ter conseguido:
- Efetuar o primeiro acesso no GitLab
- Acessar o projeto no GitLab
- Instalar a ferramenta do Git
✔️ Checklist para início das atividades
- IDE para desenvolvimento instalada
- Acesso ao Token do SonarQube
- Ferramenta de administração de banco de dados instalada
- Primeiro acesso no GitLab realizado
- Acesso ao projeto no GitLab
- Acesso ao projeto no SonarQube liberado
- SonarLint configurado na IDE
- Acesso ao banco de dados realizado
- Ferramenta do Git instalada
Durante o desenvolvimento
Nesta etapa, o desenvolvedor deve prestar atenção às advertências do SonarLint e aplicar as correções antes de enviar o código final para o Git. Isso evita problemas de Code Smell e acelera o desenvolvimento, pois não é necessário submeter o código ao teste do SonarQube novamente
Sempre crie branches de acordo com a atividade em andamento e evite fazer commits com muitas alterações ou inclusões de código fonte. Isso facilita a revisão de código e torna o processo mais preciso.
Todo commit deve passar por uma revisão em par do código gerado para evitar publicações com falhas lógicas no código e melhorar ainda mais a qualidade da entrega. Para solicitar a revisão de código, o desenvolvedor deve seguir os seguintes passos:
Realizar o merge request para a branch “dev”;
Marcar o desenvolvedor que será responsável por realizar a revisão;
Submeter o merge request.
Quando o desenvolvedor receber uma solicitação de revisão de código, ele deve abrir o merge e avaliar as mudanças no código para identificar problemas e melhorar a qualidade. Se necessário, ele pode propor uma solução alternativa para alcançar o mesmo objetivo, usando comentários no trecho do código fonte afetado. Depois que a revisão do código for concluída, o desenvolvedor responsável pelo código inicial deve aplicar as correções sugeridas e submeter novamente para análise. Ao final do ciclo de revisão do código, o desenvolvedor responsável pela análise aprova o merge e inicia o deploy no ambiente direcionado.
Testando a aplicação
Nesta etapa, o desenvolvedor deve usar a ferramenta apropriada para realizar testes unitários na linguagem de desenvolvimento escolhida. O sistema deve ter pelo menos 30% de cobertura de código nos testes unitários para atender aos critérios do SonarQube. Os critérios de teste são definidos ==durante o planejamento das atividades de desenvolvimento==.
DEPLOY
Todas as aplicações desenvolvidas são publicadas através de um processo de CI/CD, adotando o Git Flow. Quando um merge request é aprovado para uma branch vinculada a um serviço de aplicação (dev/hmg/prd), a pipeline é iniciada automaticamente.
A pipeline é responsável por realizar todo o fluxo de compilação, análise estática e de segurança, publicação e validação do serviço. Se houver algum problema nos passos programados ou se as métricas do Sonar não forem atingidas, a pipeline pode falhar. Se a pipeline falhar no passo do Sonar, o desenvolvedor deve acessar o relatório gerado, que está disponível através do link no log ou no link http://sonar-gab.aguiabranca.com.br/. Para acessar, basta usar suas credenciais de rede.
ANEXOS
Ferramentas
🛠️ IDE
🛠️ APOIO
🛠️ BANCO DE DADOS
Instalação do SonarLint no Visual Studio Code
- Clique em “Extensões”, pesquisar por SonarLint e clique em “Instalar”;
- Clique em “Configurações” e depois em “Configurações de Extensão”;
- Clique em “Editar em settings.json” na seção “Sonarlint > Connected Mode > Connections: Sonarqube”;
- Editar os parâmetros “serverUrl” e “token” de acordo com os dados entregues pelo time de infra;
- Acione as teclas “CTRL+SHIFT+P”, digite o comando “Update all project bindings to SonarQube/SonarCloud” e acione a tecla “Enter”; Após seguir os passos de instalação o SonarLint cria uma aba no rodapé da IDE chamada “Problemas” com as advertências encontradas.
Instalação do SonarLint no Visual Studio
Acesse o site https://www.sonarlint.org/visualstudio, clique em “Install for Free” e selecione a versão do Visual Studio instalada;
Clique em “Download” e salve o arquivo de extensão do VS;
Abra o arquivo de instalação baixado e clique em “Install”;
Após finalizada a instalação, clique em “Close”.
Após instalado o SonarLint o código vai começar a ser analisado
Relatório do SonarQube
- Acesse a URL http://sonar-gab.aguiabranca.com.br/ do SonarQube e efetuer o login com suas credenciais de rede;
- Verifique o resultado da análise;
- Navegue para a aba Issues e clique sobre os itens do relatório gerado;
- Verifique o motivo do problema e se necessário, busque uma solução;
- Faça um novo merge das melhorias aplicadas na plataforma.