🔐 Sistema RBAC - Controle Colaborativo e Governança

Java Maven JUnit License: MIT

Aula 05 - 3º DS | Desenvolvimento de Sistemas II
Sistema educacional completo demonstrando práticas avançadas de segurança, controle de acesso e governança para desenvolvimento colaborativo.

🎯 Visão Geral

Este projeto implementa um Sistema de Controle de Acesso Baseado em Papéis (RBAC) robusto e educacional, demonstrando as melhores práticas de segurança para ambientes de desenvolvimento colaborativo. O sistema abrange desde autenticação básica até resposta automatizada a incidentes de segurança.

🏆 Objetivos Educacionais

  • Segurança em Primeiro Lugar: Implementar controles de acesso granulares e seguros
  • Desenvolvimento Colaborativo: Demonstrar governança efetiva em equipes
  • Detecção de Ameaças: Análise automatizada de comportamentos anômalos
  • Resposta a Incidentes: Workflow completo de gestão de incidentes de segurança
  • Compliance: Auditoria e relatórios para conformidade regulatória

🏗️ Arquitetura do Sistema

graph TB
    UI[Interface Interativa] --> RBAC[Sistema RBAC Principal]
    RBAC --> AUTH[Módulo de Autenticação]
    RBAC --> AUTHZ[Módulo de Autorização]
    RBAC --> USER[Gestão de Usuários]

    AUDIT[Serviço de Auditoria] --> RBAC
    AUDIT --> ANOMALY[Detecção de Anomalias]
    AUDIT --> REPORTS[Relatórios de Compliance]

    INCIDENT[Gerenciador de Incidentes] --> RBAC
    INCIDENT --> AUDIT
    INCIDENT --> CONTAINMENT[Contenção Automática]
    INCIDENT --> ESCALATION[Escalação Inteligente]

    MODEL[Modelos de Dados]
    MODEL --> USER_MODEL[User]
    MODEL --> ROLE_MODEL[Role]
    MODEL --> PERM_MODEL[Permission]

🚀 Funcionalidades Principais

🔐 Controle de Acesso (RBAC)

  • 5 Níveis Hierárquicos: GUEST → DEVELOPER → REVIEWER → MAINTAINER → ADMIN
  • 18 Permissões Granulares: Controle fino sobre ações do sistema
  • Gestão de Sessões: Múltiplas sessões por usuário com limpeza automática
  • Validação de Entrada: Proteção contra ataques de injeção

🕵️ Auditoria e Monitoramento

  • Detecção de Anomalias: Análise de padrões comportamentais
  • Logs Abrangentes: Rastreamento completo de ações críticas
  • Alertas em Tempo Real: Notificações automáticas de atividades suspeitas
  • Análise de Tendências: Identificação proativa de riscos

🚨 Resposta a Incidentes

  • Classificação Automática: Severidade baseada em tipo e impacto
  • Contenção Inteligente: Ações automáticas para limitar danos
  • Escalação Dinâmica: Notificação baseada em gravidade e tempo
  • Investigação Forense: Coleta e análise de evidências

📊 Compliance e Relatórios

  • Métricas de Segurança: KPIs para efetividade dos controles
  • Relatórios Regulatórios: Conformidade com LGPD e frameworks
  • Análise de Gaps: Identificação de vulnerabilidades de processo
  • Dashboard Executivo: Visão consolidada para tomada de decisões

🛠️ Tecnologias Utilizadas

Core Framework

  • Java 21: Linguagem principal com features modernas
  • SLF4J + Logback: Sistema de logging robusto
  • Maven: Gerenciamento de dependências e build

Testes e Qualidade

  • JUnit 5: Framework de testes unitários e integração
  • Testes Parametrizados: Validação abrangente de cenários
  • Mocking: Simulação de componentes para testes isolados

Segurança e DevSecOps

  • SpotBugs: Análise estática de segurança
  • OWASP Dependency Check: Verificação de vulnerabilidades
  • Checkstyle: Padronização e boas práticas de código
  • JaCoCo: Cobertura de código para qualidade

🏃 Como Executar

Pré-requisitos

  • Java 21 ou superior
  • Maven 3.9+
  • Git

1. Clone e Configure

git clone <repository-url>
cd Aula05/projeto-pratico
mvn clean compile

2. Execute os Testes

# Testes unitários
mvn test
 
# Testes de integração
mvn verify
 
# Relatório de cobertura
mvn jacoco:report

3. Demonstração Interativa

# Compilar e executar
mvn exec:java -Dexec.mainClass="br.edu.etec.ds.aula05.demo.RBACDemoApplication"
 
# Ou usando Java diretamente
java -cp target/classes br.edu.etec.ds.aula05.demo.RBACDemoApplication

4. Análise de Código

# Verificação de estilo
mvn checkstyle:check
 
# Análise de segurança
mvn spotbugs:check
 
# Verificação de dependências
mvn dependency-check:check

🎮 Guia da Demonstração Interativa

👤 Usuários Pré-configurados

UsuárioSenhaPapelPersmissões
adminadmin123ADMINTodas
joao.silvajoao.silva123DEVELOPERDesenvolvimento
maria.santosmaria.santos123REVIEWERRevisão de código
carlos.oliveiracarlos.oliveira123MAINTAINERManutenção
ana.costaana.costa123GUESTApenas leitura
pedro.securitypedro.security123ADMINSegurança

🎯 Cenários de Demonstração

1. Autenticação e Controle de Acesso

  • Login com diferentes usuários
  • Verificação de permissões por papel
  • Gestão de sessões múltiplas
  • Proteção contra força bruta

2. Gestão de Usuários

  • Criação de novos usuários
  • Modificação de papéis
  • Ativação/desativação de contas
  • Bloqueio por violações de segurança

3. Auditoria de Segurança

  • Análise de eventos de segurança
  • Detecção de anomalias comportamentais
  • Geração de alertas automáticos
  • Investigação de atividades suspeitas

4. Resposta a Incidentes

  • Criação manual de incidentes
  • Detecção automática via anomalias
  • Workflow de investigação
  • Resolução e documentação

5. Cenários Automatizados

  • Ataque de Força Bruta: Simulação de tentativas de invasão
  • Escalação de Privilégios: Detecção de mudanças suspeitas
  • Acesso Não Autorizado: Monitoramento de tentativas negadas
  • Análise Completa: Relatório consolidated de segurança

🔍 Estrutura do Código

src/
├── main/java/br/edu/etec/ds/aula05/
│   ├── model/                          # Modelos de dados
│   │   ├── User.java                   # Usuário com RBAC
│   │   ├── Role.java                   # Hierarquia de papéis
│   │   └── Permission.java             # Permissões granulares
│   │
│   ├── security/                       # Módulos de segurança
│   │   ├── RBACSystem.java            # Sistema principal
│   │   ├── SecurityAuditService.java  # Auditoria e anomalias
│   │   └── IncidentResponseManager.java # Gestão de incidentes
│   │
│   └── demo/                           # Interface interativa
│       └── RBACDemoApplication.java   # Demonstração educacional
│
└── test/java/br/edu/etec/ds/aula05/
    ├── model/
    │   └── UserTest.java              # Testes do modelo User
    │
    └── security/
        └── RBACSystemIntegrationTest.java # Testes de integração

📊 Métricas de Qualidade

Cobertura de Testes

  • Unitários: >90% de cobertura de linha
  • Integração: Workflows completos end-to-end
  • Segurança: Validação de todos os controles

Análise Estática

  • SpotBugs: Zero vulnerabilidades críticas
  • Checkstyle: Conformidade 100% com padrões
  • OWASP: Dependências seguras e atualizadas

Performance

  • Autenticação: <100ms para operações típicas
  • Sessões: Suporte a 1000+ sessões simultâneas
  • Auditoria: Logs limitados a 1000 eventos por usuário

🎓 Conceitos Educacionais Demonstrados

Segurança de Aplicações

  • Princípio do Menor Privilégio: Usuários recebem apenas permissões necessárias
  • Defesa em Profundidade: Múltiplas camadas de proteção
  • Falha Segura: Sistema falha em estado seguro
  • Auditoria Abrangente: Rastreamento completo para forense

Desenvolvimento Colaborativo

  • Hierarquia de Papéis: Estrutura organizacional clara
  • Workflow de Aprovação: Controles para mudanças críticas
  • Segregação de Funções: Separação de responsabilidades
  • Governança Técnica: Políticas automatizadas

DevSecOps

  • Security by Design: Segurança incorporada desde o início
  • Automação de Segurança: Detecção e resposta automatizadas
  • Compliance Continuous: Monitoramento contínuo de conformidade
  • Incident Response: Preparação e resposta a incidentes

🚀 Extensões Sugeridas

Para Estudos Avançados

  1. Integração com LDAP/Active Directory
  2. Autenticação Multi-fator (MFA)
  3. API REST com JWT
  4. Dashboard Web com Spring Boot
  5. Integração com SIEM
  6. Machine Learning para Detecção Avançada

Para Ambiente Produtivo

  1. Persistência em Banco de Dados
  2. Cache Distribuído (Redis)
  3. Notificações por Email/Slack
  4. Métricas com Prometheus
  5. Logs Centralizados (ELK Stack)

📚 Referências e Padrões

Frameworks de Segurança

Padrões de Desenvolvimento

Compliance e Regulamentações

🤝 Contribuindo

Este é um projeto educacional desenvolvido para fins de ensino. Sugestões de melhorias são bem-vindas:

  1. Fork o projeto
  2. Crie uma feature branch (git checkout -b feature/nova-funcionalidade)
  3. Commit suas mudanças (git commit -m 'Adiciona nova funcionalidade')
  4. Push para a branch (git push origin feature/nova-funcionalidade)
  5. Abra um Pull Request

📄 Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

👨‍🏫 Autor

Prof. Ricardo Pires
Escola Técnica Estadual (ETEC)
3º Desenvolvimento de Sistemas - Desenvolvimento de Sistemas II


🎯 Objetivos de Aprendizagem Alcançados

Implementação de RBAC robusto com 5 níveis hierárquicos
Sistema de auditoria with detecção de anomalias automatizada
Workflow completo de resposta a incidentes de segurança
Relatórios de compliance para regulamentações
Demonstração interativa com cenários educacionais
Testes abrangentes (unitários + integração)
Análise de segurança com ferramentas DevSecOps
Documentação técnica e educacional completa

“A segurança não é um produto, mas sim um processo. Este projeto demonstrates como incorporar segurança efetiva no desenvolvimento colaborativo desde o primeiro dia.” 🔐


🎓 Desenvolvido com foco educacional para formar desenvolvedores conscientes de segurança

0 items neste arquivo.