🔐 Sistema RBAC - Controle Colaborativo e Governança
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 compile2. Execute os Testes
# Testes unitários
mvn test
# Testes de integração
mvn verify
# Relatório de cobertura
mvn jacoco:report3. 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.RBACDemoApplication4. 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ário | Senha | Papel | Persmissões |
|---|---|---|---|
admin | admin123 | ADMIN | Todas |
joao.silva | joao.silva123 | DEVELOPER | Desenvolvimento |
maria.santos | maria.santos123 | REVIEWER | Revisão de código |
carlos.oliveira | carlos.oliveira123 | MAINTAINER | Manutenção |
ana.costa | ana.costa123 | GUEST | Apenas leitura |
pedro.security | pedro.security123 | ADMIN | Seguranç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
- Integração com LDAP/Active Directory
- Autenticação Multi-fator (MFA)
- API REST com JWT
- Dashboard Web com Spring Boot
- Integração com SIEM
- Machine Learning para Detecção Avançada
Para Ambiente Produtivo
- Persistência em Banco de Dados
- Cache Distribuído (Redis)
- Notificações por Email/Slack
- Métricas com Prometheus
- 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:
- Fork o projeto
- Crie uma feature branch (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças (
git commit -m 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/nova-funcionalidade) - 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