
我希望每當有人在 Debian Linux 上讀取我的私鑰內容時立即收到警報。我怎樣才能做到這一點?
我的伺服器磁碟上的以下位置儲存有 RSA 私鑰:
/etc/ssl/private/super-secret.key
它只能由 root 讀取,但我仍然希望記錄每次由個人或進程讀取此金鑰的日誌,並儲存該讀取事件的上下文以用於警報和審核目的
當從磁碟讀取非常敏感的檔案時,如何設定立即警報?
答案1
這可以使用以下兩個工具來實現:
- 審計監視檔案(更確切地說,告訴內核監視檔案的 inode)並將所有讀取事件記錄到
/var/log/audit/audit.log
- 瓦祖赫(或 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 主設定檔 ( /var/ossec/etc/ossec.conf
) 以啟用對auditd日誌檔案的監視
<localfile>
<location>/var/log/audit/audit.log</location>
<log_format>audit</log_format>
</localfile>
將上面規則的「鍵」名稱加入到 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
將以下行新增至您的 wazuh 本地規則檔案 ( /var/ossec/etc/rules/local_rules.xml
) 以告訴 wazuh 該事件是等級 12 =「高度重要事件」並且它應該觸發電子郵件警報
<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>
重新啟動瓦祖
systemctl restart wazuh
現在,任何讀取文件內容的嘗試/etc/ssl/private/super-secret.key
都會向您發送電子郵件警報。