尋找進行出站 HTTP 呼叫的進程,嘗試使用 syslog-ng 進行auditd

尋找進行出站 HTTP 呼叫的進程,嘗試使用 syslog-ng 進行auditd

某些應用程式(未知)使用HTTPS 協定向已知主機/連接埠/url(這是WAF 蜜罐,主機/url/連接埠已知)發出零星的、非常規的、罕見的短出站HTTP(S)請求。請求可能每 3-5 天發生一次。這實際上是每 3-5 天一次的簡短請求。目標是定義哪些應用程式(二進位檔案的路徑、PID 等)發出這些請求。伺服器安裝了很多軟體,包括nginx,,,,等等。phpmariadbredisdocker

為簡單起見,蜜罐 IP 此處為 7.7.7.7。

到目前為止我嘗試過的:

  1. tcp轉儲
$ sudo tcpdump -i any dst host 7.7.7.7 and "tcp[tcpflags] & (tcp-syn) != 0" and "tcp[tcpflags] & (tcp-ack) == 0" &> /tmp/out_7.7.7.7_$(date "+%Y.%m.%d-%H.%M.%S").log &

它似乎tcpdump不允許檢測發出出站 http 請求的進程 ID 或可執行檔。

  1. 審計控制/審計
sudo auditctl -a exit,always -F arch=b64 -S connect -k connectLog

auditctl/auditd好像可以輸出路徑和pid,但是缺少濾波功能。如果我啟動審核規則 3-5 天,我的磁碟將充滿審核日誌。或者,如果審核日誌正在輪換,我可能會錯過已輪換並擦除的日誌檔案中所需的日誌資料。如果auditctl具有按目標 IP 進行寫入(而不是解析日誌)的過濾功能,那麼它可能是最佳候選。也許我錯過了一些東西並且它具有過濾功能?

我想到的另一個選擇是製作一些 bash 腳本,其中:

  • 開始審核connect
  • 像這樣開始監控過程: ( tail -f -n0 /var/log/audit/audit.log & ) | grep -q "7.7.7.7"
  • 一旦監視器偵測到這一點,就停止審核auditctl -d...

問題是,此事件可能會在 3-5 天後發生,此時所有磁碟都已滿。

  1. 網路統計
$ sudo netstat -tupnc | grep 7.7.7.7

看來netstat-c選項(連續)每 1 秒重複讀取一次。由於請求非常短,因此可能會錯過此請求。

  1. SS

ss似乎不顯示發起出站連線的進程。

  1. 拉索夫
lsof -i TCP:80,443 -r 1

出站連線非常短且快,每 1 秒執行 lsof 可能不會記錄它

  1. Wireshark Wireshark 具有良好的過濾功能(按 IP),但它似乎不顯示連接發起者進程名稱或 pid。

  2. 目前我堅持解決方案:將syslog-ng(透過 TCP/網路接收日誌時具有過濾功能)作為接收器和auditd日誌事件發送器進行組合。我成功地syslog-ng從連接埠 2222 開始,從網路接收資料並通過一些字串過濾它(用 測試curl)。但我無法管理auditd將日誌發送到網路。

我做了什麼:

7.1) 安裝audisp-remote-plugin

$ sudo apt install audispd-plugins

7.2) 啟用audisp-remote plugin

在文件中/etc/audit/plugins.d/au-remote.conf:設定active = yes

7.3) 配置audisp-remote插件:

在文件中/etc/audit/auditsp-remote.conf

remote_server = 127.0.0.1
port = 2222

7.4) 停用寫入本機 log_file

在文件中/etc/audit/auditd.conf

write_logs = no

並重新啟動auditd:

$ sudo systemctl restart auditd

7.5) 新增審核規則以捕獲連接(connect系統呼叫):

$ sudo auditctl -a exit,always -F arch=b64 -F saddr_fam=2 -S connect -k sckt

7.6) 旋轉日誌以清除auditd日誌中先前的數據

$ service auditd rotate

7.7) 進行測試 HTTP 呼叫:

$ curl -v https://7.7.7.7/api/v1/t

7.8) 檢查syslog-ng日誌,但沒有預期的記錄。

如果有人知道最合適、最簡單、最好的方法來做到這一點,任何幫助將不勝感激!

答案1

您可以使用檔案來源將審核日誌攝取到 syslog-ng 中,然後對審核日誌使用相對較短的保留時間。

這樣,您可以在 syslog-ng 端套用過濾,並將感興趣的記錄輸出到單獨的日誌檔案中。

相關內容