Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

🛡️ Sentinela

Uma plataforma integrada de monitoramento e detecção de ameaças para sistemas Linux, inspirada em operações profissionais de SOC (Security Operations Center).

📋 Visão Geral

SOC Platform é uma suite completa de ferramentas de segurança que fornece:

  • Detecção em Tempo Real de ataques e comportamentos suspeitos
  • Monitoramento Contínuo de integridade, rede e processos
  • Análise Profunda de logs e IOCs (Indicators of Compromise)
  • Dashboard Centralizado para visualização de alertas
  • Geração Automática de relatórios e alertas

🎯 Casos de Uso

  • Detecção de brute force attacks (SSH, SUDO)
  • Identificação de port scans e DDoS
  • Monitoramento de malware e comportamentos suspeitos
  • Rastreamento de integridade de arquivos críticos
  • Análise de tráfego de rede anômalo
  • Detecção de anomalias em processos
  • Análise de logs do firewall

🏗️ Estrutura do Projeto

soc-platform/
├── detectors/              # Módulos de detecção
│   ├── ssh_detector.sh     # Detecção de brute force SSH
│   ├── portscan_detector.sh # Detecção de port scanning
│   ├── malware_monitor.sh  # Monitor de comportamento malicioso
│   └── dns_monitor.sh      # Monitor de DNS anômalo
│
├── monitors/               # Monitores contínuos
│   ├── integrity_monitor.sh # File Integrity Monitor (FIM)
│   ├── network_monitor.sh   # Monitor de tráfego de rede
│   └── process_monitor.sh   # Monitor de processos
│
├── analyzers/              # Analisadores de logs
│   ├── login_analyzer.sh    # Análise de falhas de login
│   ├── ioc_scanner.sh       # Scanner de IOCs maliciosos
│   └── firewall_analyzer.sh # Análise de logs de firewall
│
├── dashboard/              # Interface visual
│   └── dashboard.sh         # Dashboard em tempo real
│
├── config/                 # Configuração
│   ├── soc.conf           # Arquivo de configuração principal
│   └── functions.sh       # Funções auxiliares compartilhadas
│
├── logs/                   # Diretório de logs (criado automaticamente)
├── reports/                # Diretório de relatórios (criado automaticamente)
├── main.sh                 # Script principal de entrada
└── README.md              # Este arquivo

🚀 Instalação

Pré-requisitos

  • Linux (Debian/Ubuntu, CentOS, etc.)
  • Bash 4.0+
  • Conhecimentos de comandos linux e Shell Script.
  • Privilégios de root para funcionalidades completas.
  • Ferramentas comuns: grep, awk, sed, netstat/ss, etc.

Passos de Instalação

# 1. Clonar ou descarregar o projeto
cd /opt/
git clone https://github.com/devguilhrm/Sentinela.git

# 2. Tornar scripts executáveis
chmod +x soc-platform/*.sh
chmod +x soc-platform/**/*.sh

# 3. Inicializar o sistema
sudo ./soc-platform/main.sh

📖 Guia de Uso

Iniciando o Sentinela

sudo ./main.sh

Isso abrirá o menu interativo com todas as opções disponíveis.

Usando Módulos Individuais

SSH Brute Force Detector

# Executar detecção
./detectors/ssh_detector.sh detect

# Listar IPs bloqueados
./detectors/ssh_detector.sh list

# Modo monitoramento contínuo
./detectors/ssh_detector.sh watch

# Bloquear um IP manualmente
./detectors/ssh_detector.sh block 192.168.1.100

# Remover IP da blacklist
./detectors/ssh_detector.sh remove 192.168.1.100

Port Scan Detector

# Detectar port scans
./detectors/portscan_detector.sh detect

# Análise detalhada
./detectors/portscan_detector.sh analysis

# Detectar SYN flood
./detectors/portscan_detector.sh syn

# Modo watch
./detectors/portscan_detector.sh watch

Malware Behavior Monitor

# Análise completa
./detectors/malware_monitor.sh full

# Verificar processos suspeitos
./detectors/malware_monitor.sh suspicious

# Verificar conexões externas
./detectors/malware_monitor.sh connections

# Detectar recursos anômalos
./detectors/malware_monitor.sh resources

# Modo watch
./detectors/malware_monitor.sh watch

DNS Monitor

# Análise completa
./detectors/dns_monitor.sh analysis

# Domínios suspeitos
./detectors/dns_monitor.sh suspicious

# Detectar beaconing
./detectors/dns_monitor.sh beaconing

# Estatísticas DNS
./detectors/dns_monitor.sh stats

File Integrity Monitor

# Inicializar banco de dados
./monitors/integrity_monitor.sh initialize

# Verificar integridade
./monitors/integrity_monitor.sh check

# Verificar arquivo específico
./monitors/integrity_monitor.sh verify /etc/passwd

# Relatório detalhado
./monitors/integrity_monitor.sh report

Network Monitor

# Análise completa
./monitors/network_monitor.sh analysis

# Estatísticas de rede
./monitors/network_monitor.sh stats

# Conexões estabelecidas
./monitors/network_monitor.sh connections

# Portas em escuta
./monitors/network_monitor.sh ports

# Detectar DDoS
./monitors/network_monitor.sh ddos

Process Monitor

# Análise completa
./monitors/process_monitor.sh full

# Alto uso de CPU
./monitors/process_monitor.sh cpu

# Alto uso de memória
./monitors/process_monitor.sh memory

# Detectar fork bomb
./monitors/process_monitor.sh forkbomb

Failed Login Analyzer

# Análise completa
./analyzers/login_analyzer.sh full

# Falhas SSH
./analyzers/login_analyzer.sh ssh

# Falhas SUDO
./analyzers/login_analyzer.sh sudo

# Gerar relatório
./analyzers/login_analyzer.sh report

# Exportar CSV
./analyzers/login_analyzer.sh csv

IOC Scanner

# Inicializar database
./analyzers/ioc_scanner.sh init

# Análise completa
./analyzers/ioc_scanner.sh full

# Escanear IPs
./analyzers/ioc_scanner.sh ips

# Escanear domínios
./analyzers/ioc_scanner.sh domains

# Escanear processos
./analyzers/ioc_scanner.sh processes

Firewall Log Analyzer

# Análise completa
./analyzers/firewall_analyzer.sh full

# Análise UFW
./analyzers/firewall_analyzer.sh ufw

# Análise IPTables
./analyzers/firewall_analyzer.sh iptables

# Padrões de ataque
./analyzers/firewall_analyzer.sh patterns

# Gerar relatório
./analyzers/firewall_analyzer.sh report

Dashboard

# Visualizar dashboard
./dashboard/dashboard.sh view

# Modo interativo
./dashboard/dashboard.sh interactive

⚙️ Configuração

Edite /config/soc.conf para customizar:

# Diretórios
PROJECT_DIR="/opt/soc-platform"
LOG_DIR="${PROJECT_DIR}/logs"
REPORT_DIR="${PROJECT_DIR}/reports"

# SSH Detector
SSH_FAILED_ATTEMPTS_THRESHOLD=5
SSH_TIME_WINDOW=300  # 5 minutos

# Port Scan
PORT_SCAN_THRESHOLD=10

# Process Monitor
PROCESS_CPU_THRESHOLD=80
PROCESS_MEMORY_THRESHOLD=80

# Threat Intelligence (API keys opcionais)
ABUSEIPDB_API_KEY=""
VIRUSTOTAL_API_KEY=""

# Modo Debug
DEBUG=false
VERBOSE=true

# Email para alertas críticos
ALERT_EMAIL="admin@example.com"

🔍 Detecção de Ameaças

SSH Brute Force

  • Monitora tentativas falhadas de login SSH
  • Threshold padrão: 5 tentativas em 300 segundos
  • Adiciona automaticamente à blacklist
  • Pode bloquear via iptables/UFW

Port Scanning

  • Detecta múltiplas conexões a várias portas
  • Análise de estados TCP
  • Detecção de SYN flood
  • Identifica padrões de reconhecimento

Malware

  • Monitora processos suspeitos
  • Detecta conexões externas anômalas
  • Identifica consumo anormal de recursos
  • Verifica alteração de binários do sistema

DNS

  • Detecção de domínios maliciosos
  • Identifica padrão de beaconing
  • Detecta DNS tunneling
  • Monitora resoluções anômalas

File Integrity

  • Calcula SHA256 de arquivos críticos
  • Detecta alterações não autorizadas
  • Monitora permissões suspeitas
  • Identifica symlinks maliciosos

Network

  • Monitora tráfego de rede
  • Detecta padrões de DDoS
  • Identifica portas suspeitas
  • Analisa conexões anômalas

Process

  • Alto consumo de CPU/Memória
  • Processos ocultos (rootkit detection)
  • Fork bombs
  • Execução de binários em /tmp

📊 Saídas e Relatórios

Logs

  • /logs/alerts.log - Alertas críticos e avisos
  • /logs/network_monitor.log - Eventos de rede
  • /logs/process_monitor.log - Eventos de processo
  • /logs/dns_monitor.log - Eventos DNS
  • Outros logs específicos de cada módulo

Relatórios

  • JSON reports com detalhes completos
  • CSV exports para análise em ferramentas externas
  • Relatórios consolidados em texto

Syslog

  • Integração com syslog para centralização
  • Priority levels: crit, alert, warning, info

🛠️ Desenvolvimento

Adicionar Novo Detector

# Criar arquivo
touch detectors/novo_detector.sh

# Template básico
#!/bin/bash
PROJECT_DIR="${PROJECT_DIR:-.}"
CONFIG_DIR="${PROJECT_DIR}/config"

source "${CONFIG_DIR}/soc.conf"
source "${CONFIG_DIR}/functions.sh"

main() {
    initialize_database
    
    case "${1:-detect}" in
        detect)
            # Sua lógica aqui
            ;;
        *)
            echo "Uso: $0 {detect|...}"
            ;;
    esac
}

main "$@"

Funções Auxiliares Disponíveis

# Logging
log_message CRITICAL|WARNING|INFO|DEBUG "mensagem"
send_syslog_alert "prioridade" "mensagem"
send_email_alert "subject" "body"

# Blacklist
add_to_blacklist "ip" "motivo"
is_blacklisted "ip"

# Hashes (FIM)
calculate_hash "arquivo"
save_hash_db "arquivo" "hash"
get_hash_db "arquivo"

# Relatórios
generate_json_report "nome" "dados_json"
generate_csv_report "nome" "header" "dados"

# Utilitários
validate_ip "ip"
extract_ip_from_line "linha"
format_bytes "bytes"
command_exists "comando"

🔐 Boas Práticas de Segurança

  1. Executar com root: Alguns módulos requerem privilégios elevados
  2. Revisar alertas regularmente: Configure email para alertas críticos
  3. Manter logs: Configure retenção apropriada
  4. Atualizar IOCs: Mantenha database de IOCs atualizada
  5. Backup de configuração: Faça backup de config/
  6. Monitorar o monitor: Verifique se o SOC está funcionando

📝 Troubleshooting

Os scripts não executam

chmod +x *.sh
chmod +x **/*.sh

Permissão negada

sudo ./main.sh

SSH log não encontrado

Verifique o caminho em config/soc.conf:

SSH_LOG="/var/log/auth.log"  # Debian/Ubuntu
SSH_LOG="/var/log/secure"    # CentOS/RHEL

Nenhum alerta sendo gerado

  1. Verifique o arquivo de configuração
  2. Ative modo DEBUG: DEBUG=true em config/soc.conf
  3. Verifique permissões dos arquivos de log

📚 Recursos e Referências

🤝 Contribuindo

Contribuições são bem-vindas! Por favor:

  1. Fork o projeto
  2. Crie uma branch para sua feature
  3. Commit suas mudanças
  4. Push para a branch
  5. Abra um Pull Request

📄 Licença

Este projeto está sob licença MIT. Veja LICENSE para detalhes.

👨‍💼 Autor

  • devguilhrm - Desenvolvido para ambientes Linux que necessitam de monitoramento de segurança profissional.

⚠️ Disclaimer

  • Use em ambientes que você tem permissão
  • Sempre teste em ambiente de laboratório primeiro
  • Responsabilidade legal é do usuário

🆘 Suporte

Para questões e problemas:

  1. Verifique a documentação
  2. Ative modo DEBUG
  3. Revise os logs
  4. Abra uma issue no GitHub

Última atualização: 2026 Versão: 1.0.0
Status: Production Ready

🎓 Aprendizados com este Projeto

  • ✅ Bash scripting avançado
  • ✅ Análise de logs e eventos
  • ✅ Detecção de padrões de ataque
  • ✅ Monitoramento de sistema
  • ✅ Geração de alertas e relatórios
  • ✅ Integração de ferramentas
  • ✅ Boas práticas de segurança Linux
  • ✅ Operações de SOC profissional

Esteja seguro Sempre!!! 🔒

About

SOC-inspired Linux security monitoring platform focused on threat detection, log analysis, network monitoring, file integrity verification, and real-time incident analysis using modular Bash tooling.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages