Linux

從磁碟讀取私鑰時的電子郵件警報(honeypot,auditd)

  • December 26, 2020

每當有人在 Debian Linux 上讀取我的私鑰內容時,我希望立即收到警報。我怎樣才能做到這一點?

我在伺服器磁碟的以下位置儲存了一個 RSA 私鑰:

/etc/ssl/private/super-secret.key

它只能由 root 讀取,但我仍然希望記錄每次有人或程序讀取此密鑰時的日誌,並儲存該讀取事件的上下文以用於警報和審計目的

當從磁碟讀取非常敏感的文件時,如何設置立即警報?

這可以使用以下兩個工具來實現:

  1. auditd監控文件(更確切地說,告訴核心監控文件的 inode)並將所有讀取事件記錄到/var/log/audit/audit.log
  2. 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都會向您發送電子郵件警報。

也可以看看

  1. https://wazuh.com/blog/monitoring-root-actions-on-linux-using-auditd-and-wazuh/
  2. https://documentation.wazuh.com/4.0/user-manual/capabilities/system-calls-monitoring/audit-configuration.html

引用自:https://serverfault.com/questions/1046021