.png)
Gostaria de receber um alerta imediato sempre que algo ler o conteúdo da minha chave privada no Debian Linux. Como eu posso fazer isso?
Tenho uma chave privada RSA armazenada no disco do meu servidor no seguinte local:
/etc/ssl/private/super-secret.key
Só pode ser lido pelo root, mas ainda quero ter um registro de cada vez que essa chave secreta foi lida por uma pessoa ou processo e armazenar o contexto desse evento de leitura para fins de alerta e auditoria
Como posso configurar alertas imediatos quando um arquivo muito confidencial for lido no disco?
Responder1
Isso pode ser alcançado usando as duas ferramentas a seguir:
- auditadopara monitorar o arquivo (em vez disso, para dizer ao kernel para monitorar o inode do arquivo) e registrar todos os eventos de leitura em
/var/log/audit/audit.log
- wazuh(ou ossec) para monitorar o
audit.log
arquivo e enviar um alerta por e-mail quando apropriado
Pré-requisitos
Primeiro, instale o auditd.
sudo apt-get install auditd
Próximo,instalar wazuh. Se você nunca fez isso antes e é apenas um servidor, provavelmente desejará oinstalação "tudo em um".
sudo apt-get install wazuh-manager
configuração auditada
Para monitorar o arquivo /etc/ssl/private/super-secret.key
, adicione uma regra auditd para monitorar ( -w
) o arquivo para acesso de leitura ( -p r
) - e dê a essa regra um nome de "chave" arbitrário ( -k audit-wazuh-private-key-r
) para que possamos compará-la mais tarde.
cat > /etc/audit/rules.d/watch_private_keys.rules <<'EOF'
# monitor reads of our private keys for wazuh
-w /etc/ssl/private/super-secret.key -p r -k audit-wazuh-private-key-r
EOF
Reinicie o auditd para aplicar as regras
systemctl restart auditd
auditctl -l
configuração wazuh
Adicione as seguintes linhas ao seu arquivo de configuração principal do wazuh ( /var/ossec/etc/ossec.conf
) para ativar o monitoramento do arquivo de log auditd
<localfile>
<location>/var/log/audit/audit.log</location>
<log_format>audit</log_format>
</localfile>
Adicione o nome da "chave" da nossa regra acima à lista de chaves auditadas que o wazuh monitora
grep 'audit-wazuh-private-key-r:read' /var/ossec/etc/lists/audit-keys || echo 'audit-wazuh-private-key-r:read' >> /var/ossec/etc/lists/audit-keys
Adicione as seguintes linhas ao seu arquivo de regras locais do wazuh ( /var/ossec/etc/rules/local_rules.xml
) para informar ao wazuh que este evento é de nível 12 = "evento de alta importância" e que deve acionar um alerta por e-mail
<rule id="100002" level="12">
<if_sid>80700</if_sid>
<match>audit-wazuh-private-key-r</match>
<options>alert_by_email</options>
<description>Audit: Watch - Private Key Read</description>
</rule>
Reinicie o wazuh
systemctl restart wazuh
Agora, qualquer tentativa de ler o conteúdo do /etc/ssl/private/super-secret.key
arquivo enviará um alerta por e-mail.