Linux
從磁碟讀取私鑰時的電子郵件警報(honeypot,auditd)
每當有人在 Debian Linux 上讀取我的私鑰內容時,我希望立即收到警報。我怎樣才能做到這一點?
我在伺服器磁碟的以下位置儲存了一個 RSA 私鑰:
/etc/ssl/private/super-secret.key
它只能由 root 讀取,但我仍然希望記錄每次有人或程序讀取此密鑰時的日誌,並儲存該讀取事件的上下文以用於警報和審計目的
當從磁碟讀取非常敏感的文件時,如何設置立即警報?
這可以使用以下兩個工具來實現:
- auditd監控文件(更確切地說,告訴核心監控文件的 inode)並將所有讀取事件記錄到
/var/log/audit/audit.log
- wazuh(或 ossec)監控
audit.log
文件並在適當時發送電子郵件警報先決條件
首先,安裝auditd。
sudo apt-get install auditd
接下來,安裝 wazuh。如果您以前從未這樣做過並且它只有一台伺服器,那麼您可能想要“一體式”安裝。
sudo apt-get install wazuh-manager
審核的配置
要監視該文件
/etc/ssl/private/super-secret.key
,請添加一條 auditd 規則來監視 (-w
) 文件以進行讀取訪問 (-p r
) - 並為該規則指定一個任意“鍵”名稱 (-k audit-wazuh-private-key-r
),以便我們以後可以匹配它。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
重新啟動 auditd 以應用規則
systemctl restart auditd auditctl -l
wazuh 配置
將以下行添加到您的 wazuh 主配置文件 (
/var/ossec/etc/ossec.conf
) 以啟用對 auditd 日誌文件的監控<localfile> <location>/var/log/audit/audit.log</location> <log_format>audit</log_format> </localfile>
將上述規則的“key”名稱添加到 wazuh 監控的 auditd 密鑰列表中
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
/var/ossec/etc/rules/local_rules.xml
將以下行添加到您的wazuh 本地規則文件(<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>
重啟wazuh
systemctl restart wazuh
現在,任何讀取文件內容的嘗試
/etc/ssl/private/super-secret.key
都會向您發送電子郵件警報。也可以看看