# πŸ›‘οΈ Script de Teste de SeguranΓ§a - SGSE Script Python para testar e validar o sistema de seguranΓ§a do SGSE atravΓ©s de simulaΓ§Γ΅es de ataques cibernΓ©ticos. ## πŸ“‹ DescriΓ§Γ£o Este script simula diferentes tipos de ataques cibernΓ©ticos para validar se o sistema SGSE estΓ‘ detectando e bloqueando adequadamente tentativas de intrusΓ£o. Os testes incluem: - βœ… **Brute Force** - Tentativas repetidas de login com diferentes senhas - βœ… **SQL Injection** - Tentativas de injeΓ§Γ£o de cΓ³digo SQL - βœ… **XSS (Cross-Site Scripting)** - Tentativas de injeΓ§Γ£o de scripts maliciosos - βœ… **DDoS** - MΓΊltiplas requisiΓ§Γ΅es simultΓ’neas - βœ… **Path Traversal** - Tentativas de acesso a arquivos do sistema - βœ… **Command Injection** - Tentativas de execuΓ§Γ£o de comandos do sistema - βœ… **NoSQL Injection** - Tentativas de injeΓ§Γ£o NoSQL - βœ… **XXE (XML External Entity)** - Tentativas de ataque via XML ## πŸš€ PrΓ©-requisitos ```bash # Instalar Python 3.8+ (se ainda nΓ£o tiver) python3 --version # Criar ambiente virtual (recomendado) cd scripts python3 -m venv venv_seguranca # Ativar ambiente virtual source venv_seguranca/bin/activate # Linux/Mac # ou venv_seguranca\Scripts\activate # Windows # Instalar dependΓͺncias pip install requests ``` **Nota:** Em sistemas Arch Linux/CachyOS, o Python usa ambientes gerenciados (PEP 668). Por isso, Γ© necessΓ‘rio usar um ambiente virtual. O ambiente jΓ‘ foi criado automaticamente em `scripts/venv_seguranca`. ## πŸ“– Uso ### Teste Completo (Todos os Ataques) ```bash # Ativar ambiente virtual (se ainda nΓ£o estiver ativo) cd scripts source venv_seguranca/bin/activate # Executar todos os testes python3 teste_seguranca.py # Ou tornando o script executΓ‘vel chmod +x teste_seguranca.py ./teste_seguranca.py ``` ### Teste EspecΓ­fico ```bash # Testar apenas Brute Force python3 scripts/teste_seguranca.py --teste brute_force # Testar apenas SQL Injection python3 scripts/teste_seguranca.py --teste sql_injection # Testar apenas XSS python3 scripts/teste_seguranca.py --teste xss # Testar apenas DDoS python3 scripts/teste_seguranca.py --teste ddos # Testar apenas Path Traversal python3 scripts/teste_seguranca.py --teste path_traversal # Testar apenas Command Injection python3 scripts/teste_seguranca.py --teste command_injection # Testar apenas NoSQL Injection python3 scripts/teste_seguranca.py --teste nosql # Testar apenas XXE python3 scripts/teste_seguranca.py --teste xxe ``` ### OpΓ§Γ΅es AvanΓ§adas ```bash # Testar em servidor especΓ­fico python3 scripts/teste_seguranca.py --url http://192.168.1.100:5173 # Testar Brute Force com mais tentativas python3 scripts/teste_seguranca.py --teste brute_force --brute-force-tentativas 20 # Testar DDoS com mais threads e duraΓ§Γ£o maior python3 scripts/teste_seguranca.py --teste ddos --ddos-threads 100 --ddos-duracao 30 # Ver todas as opΓ§Γ΅es python3 scripts/teste_seguranca.py --help ``` ## πŸ“Š InterpretaΓ§Γ£o dos Resultados ### βœ… DETECTADO O sistema bloqueou ou detectou o ataque com sucesso. Isso Γ© esperado e desejado. ### ❌ NΓƒO DETECTADO O sistema nΓ£o bloqueou ou nΓ£o detectou o ataque. Pode indicar uma vulnerabilidade que precisa ser corrigida. ### ⚠️ AVISO O sistema pode estar parcialmente protegido, mas recomenda-se revisar a implementaΓ§Γ£o. ## πŸ” O Que o Script Verifica ### 1. Brute Force - βœ… Bloqueio apΓ³s 5 tentativas falhas - βœ… Retorno de status 429 (Too Many Requests) - βœ… Retorno de status 403 (Forbidden) - βœ… Headers de rate limiting (X-RateLimit-Remaining) ### 2. SQL Injection - βœ… Bloqueio de payloads SQL maliciosos - βœ… Retorno de status 400/403/422 - βœ… Mensagens de erro especΓ­ficas sobre SQL ### 3. XSS - βœ… SanitizaΓ§Γ£o de tags HTML/JavaScript - βœ… Bloqueio de scripts maliciosos - βœ… Retorno de status 400/403/422 ### 4. DDoS - βœ… Rate limiting de requisiΓ§Γ΅es simultΓ’neas - βœ… Bloqueio de trΓ‘fego excessivo - βœ… Taxa de bloqueio > 50% ### 5. Path Traversal - βœ… Bloqueio de caminhos relativos (../) - βœ… PrevenΓ§Γ£o de acesso a arquivos do sistema ### 6. Command Injection - βœ… Bloqueio de caracteres especiais de shell - βœ… PrevenΓ§Γ£o de execuΓ§Γ£o de comandos ### 7. NoSQL Injection - βœ… ValidaΓ§Γ£o de objetos JSON maliciosos - βœ… Bloqueio de operadores MongoDB maliciosos ### 8. XXE - βœ… RejeiΓ§Γ£o de conteΓΊdo XML nΓ£o esperado - βœ… PrevenΓ§Γ£o de external entity attacks ## πŸ› οΈ PersonalizaΓ§Γ£o O script pode ser personalizado editando `teste_seguranca.py`: - Adicionar novos payloads de teste - Modificar limites de requisiΓ§Γ΅es - Ajustar timeouts e delays - Adicionar novos tipos de testes ## ⚠️ Avisos Importantes 1. **Use apenas em ambientes de teste/desenvolvimento** - Nunca execute este script em produΓ§Γ£o sem autorizaΓ§Γ£o 2. **Este script simula ataques reais** - Pode gerar logs de seguranΓ§a no sistema - Pode bloquear temporariamente seu IP - Use com responsabilidade 3. **Alguns testes podem ser bloqueados pelo firewall** - Isso Γ© normal e esperado - Indica que o sistema estΓ‘ protegido 4. **Execute com o sistema SGSE rodando** - Certifique-se de que o SITE e backend estΓ£o ativos - URLs padrΓ£o: http://localhost:5173 (SITE) e http://127.0.0.1:3210 (backend) ## πŸ“ Exemplo de SaΓ­da ``` ╔══════════════════════════════════════════════════════════════════════╗ β•‘ TESTES DE SEGURANΓ‡A - SGSE β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• [INICIO] URL Base: http://localhost:5173 [INICIO] URL Convex: http://127.0.0.1:3210 ────────────────────────────────────────────────────────────────────── [BRUTE_FORCE] Iniciando teste de forΓ§a bruta (10 tentativas)... [BRUTE_FORCE] βœ… DETECTADO! Bloqueio apΓ³s 5 tentativas (429) ────────────────────────────────────────────────────────────────────── [SQL_INJECTION] Iniciando testes de SQL Injection... [SQL_INJECTION] βœ… DETECTADO! Payload: ' OR '1'='1... ────────────────────────────────────────────────────────────────────── [DDOS] Iniciando teste DDoS (50 threads, 10s)... [DDOS] βœ… DETECTADO! 45/50 requisiΓ§Γ΅es bloqueadas (90.0%) ══════════════════════════════════════════════════════════════════════ RELATΓ“RIO DE TESTES DE SEGURANΓ‡A - SGSE ══════════════════════════════════════════════════════════════════════ [BRUTE FORCE] Status: βœ… DETECTADO Sucessos: 0 Falhas: 0 [SQL INJECTION] Status: βœ… DETECTADO Sucessos: 0 Falhas: 0 ... ══════════════════════════════════════════════════════════════════════ Total de Testes: 8 Ataques Detectados: 7/8 ══════════════════════════════════════════════════════════════════════ ``` ## 🀝 Contribuindo Para adicionar novos testes de seguranΓ§a: 1. Adicione um novo mΓ©todo na classe `SegurancaTeste` 2. Adicione o teste ao dicionΓ‘rio `resultados` em `__init__` 3. Adicione o teste Γ  lista `testes` em `executar_todos_testes` 4. Atualize este README com a descriΓ§Γ£o do novo teste ## πŸ“„ LicenΓ§a Este script Γ© parte do projeto SGSE e deve ser usado apenas para fins de teste e validaΓ§Γ£o de seguranΓ§a.