Write an article about
Essa é a fase que nós, pessoas desenvolvedoras, iremos atuar continuamente. Assim como arquitetos de software precisam entender sobre segurança, nós também precisamos conhecer sobre desenvolvimento seguro. Se esse conceito é novo para você e você trabalha com desenvolvimento web, recomendo começar pelo OWASP Top 10.
Mas a segurança vai além disso! Também existem outras referências importantes, como:
- CWE e CWE Top 25 - Lista de fraquezas comuns de segurança em software.
- CERT - Diretrizes para programação segura em diferentes linguagens.
- CVE - Base de dados de vulnerabilidades conhecidas em produtos e softwares específicos.
Nesta fase, colocamos a segurança em prática através de código seguro e ferramentas automatizadas.
Já temos o relatório da “Modelagem de ameaças”, sabemos quais são as possíveis ameaças e também como mitiga-las.
Também podemos usar a segurança na criação de histórias. Veja um exemplo:
Exemplo de Codificação Segura com OWASP ASVS
O OWASP ASVS (Application Security Verification Standard) é um guia estruturado para validar controles de segurança em aplicações web. Ele pode ser usado como checklist para assegurar que requisitos de segurança estão sendo cumpridos durante a codificação.
No login da plataforma, precisamos proteger contra acesso não autorizado.
- Problema: Precisamos proteger o sistema contra acessos não autorizados.
- Fonte: ASVS (Application Security Verification Standard)
- Seção do ASVS: V3 Gestão de Sessão
Formato da User Story:
Como [tipo de usuário], eu quero [meta ou objetivo] para que [benefício ou resultado]
User Story:
“Como uma pessoa desenvolvedora, eu quero que o sistema expire automaticamente as sessões após 30 minutos de inatividade, para reduzir o risco de acesso não autorizado.”
Requisito de Segurança (ASVS):
“O sistema deve expirar automaticamente as sessões após 30 minutos de inatividade, conforme o OWASP ASVS, seção V3 (Gestão de Sessão).”
Comportamento Esperado:
Expiração automática das sessões após 30 minutos de inatividade.
Critério Específico:
A sessão deve ser expirada após 30 minutos de inatividade do usuário.
Referência ao OWASP ASVS:
Seção V3 (Gestão de Sessão) do OWASP ASVS, que trata da gestão segura das sessões e o tempo limite de inatividade.
Implementação em Node.js (Express):
const session = require('express-session');
require('dotenv').config(); // Carrega variáveis de ambiente
app.use(session({
secret: process.env.SESSION_SECRET, // Chave armazenada em variável de ambiente
resave: false,
saveUninitialized: false,
cookie: {
secure: true, // Só transmite via HTTPS
httpOnly: true, // Impede acesso via JavaScript
maxAge: 30 * 60 * 1000 // 30 minutos
}
}));
Esse foi apenas um exemplo simples de como o time pode usar ASVS para criar suas histórias.
Implementação de Ferramentas de Segurança
Nessa fase também implementamos ferramentas de segurança que complementam o desenvolvimento de código seguro como SAST - analisa o código-fonte em busca de vulnerabilidades. Essas ferramentas não são a única solução, mas são aliados poderosos para aumentar a segurança da aplicação. Não podemos depender exclusivamente delas, mas usá-las como um suporte para mitigar vulnerabilidades.
Ferramentas para Automatizar a Segurança:
Análise Estática de Código:
Como SonarQube ou ESLint com regras de segurança para identificar vulnerabilidades durante o desenvolvimento.
Verificação de Dependências:
Como Snyk ou Dependabot para detectar bibliotecas com vulnerabilidades (ex: npm audit).
Implementação SAST no pipeline
main: main é o branch principal da aplicação. É o código estável.
feature: é onde estamos escrevendo nossos códigos
commit: commit das nossas alterações
pull request: estamos enviando uma solicitação para mesclar nossas alterações na main
github action: quando criamos PR ou fazemos um push com github actions configurado, ele é acionado para executar os fluxos de trabalho definidos.
CI: Toda vez que ele foi acionado, ele executa o trabalho: clona o projeto, roda todos os testes, gerar o build(arquivos que você precisa para a aplicação rodar) da aplicação. E também no nosso caso, executa o Horusec. Ou seja, todas as vezes que fizermos um PR, esse processo garante que código de forma segura possa estar integrado na aplicação principal.
horusec: O Horusec é uma ferramenta de segurança que analisa o código em busca de vulnerabilidades de segurança.
Notas:
- CVE e CWE: Consulte o CVE MITRE e CWE Top 25 para priorizar correções.
- LGPD: Garanta que dados sensíveis sejam criptografados em repouso (ex: PostgreSQL com pgcrypto).
- Documentação: Mantenha um registro de decisões de segurança para auditorias futuras.
.Organize the content with appropriate headings and subheadings ( h2, h3, h4, h5, h6). Include conclusion section and FAQs section with Proper questions and answers at the end. do not include the title. it must return only article i dont want any extra information or introductory text with article e.g: ” Here is rewritten article:” or “Here is the rewritten content:”