Um monitor de integridade de ficheiros em Python para verificar alterações inesperadas em diretórios críticos.
O programa cria uma baseline com hashes SHA-256 dos ficheiros monitorizados e, em seguida, compara o estado atual com a referência original. Caso haja ficheiros:
- adicionados
- removidos
- modificados
é emitido um alerta com data, hora e nome do ficheiro afetado.
- Python 3
- hashlib
- pathlib
- json
- logging
file_integrity_monitor/
├── main.py
├── baseline.json
├── events.log
├── monitored/
│ └── (ficheiros a vigiar)
├── README.md
└── .gitignore
python3 main.py initpython3 main.py checkpython3 main.py watch --interval 5python3 main.py init --forceCria ficheiros de teste:
mkdir -p monitored
printf "servidor de teste\n" > monitored/server.txt
printf "porta ssh: 22\n" > monitored/config.txtCria a baseline:
python3 main.py initModifica um ficheiro:
printf "porta ssh: 2222\n" > monitored/config.txt
python3 main.py checkResultado esperado:
[ALERT] Alterações detetadas:
~ config.txt
- A baseline deve ficar fora da pasta monitorizada.
- O ficheiro de log deve ser protegido por permissões adequadas.
- Em ambientes profissionais, a baseline pode ser armazenada num sistema seguro ou assinada digitalmente.
- A deteção de hash confirma alteração de conteúdo, mas não identifica por si só a causa da mudança.
- Se alguém modificar também a própria baseline, a deteção pode falhar.
- Ficheiros muito grandes continuam a funcionar, mas o cálculo de hash consome CPU e I/O.
- O script é ideal para monitorização local e laboratórios de cibersegurança.
0xander