ADVERTISEMENT
近年來,一款名為「perfctl」的 Linux 惡意軟體一直潛伏在網路上,鎖定 Linux 伺服器和工作站進行攻擊。其高度的隱蔽性和 Rootkit 技術的運用,使其在至少三年的時間裡幾乎未被察覺。
根據發現 perfctl 的艾夸·諾提勒斯(Aqua Nautilus)研究人員的說法,該惡意軟體近年來可能已鎖定數百萬台 Linux 伺服器,並可能感染了其中數千台。這一推論基於受害者在網路論壇提交的大量報告,所有報告都包含 perfctl 活動的獨特感染指標。
艾夸·諾提勒斯指出,perfctl 的主要目的是加密貨幣挖礦,利用受感染的伺服器挖掘難以追蹤的門羅幣 (Monero)。然而,它也很容易被用於更具破壞性的操作。
感染鏈
艾夸·諾提勒斯認為,攻擊者會利用錯誤配置或暴露的秘密資訊來入侵 Linux 伺服器。這些錯誤配置包括包含憑證的公開文件和暴露的登入介面等。
研究人員還觀察到攻擊者利用 CVE-2023-33246 和 CVE-2021-4034 (PwnKit) 進行攻擊。CVE-2023-33246 是一個影響 Apache RocketMQ 5.1.0 及更早版本的遠端程式碼執行漏洞,而 CVE-2021-4034 則是一個 Polkit 中的權限提升漏洞。
一旦建立初始存取權限,攻擊者就會從其伺服器下載名為「httpd」的打包和混淆的有效負載並執行。然後,它會將自身複製到 /tmp
目錄下,並命名為「sh」,接著刪除原始二進制文件。
為了確保在清理過程中能夠持續存在,惡意軟體還會在其他系統位置創建額外的副本,例如 /root/.config
、/usr/bin/
和 usr/lib
。
主要操作和規避機制
perfctl 啟動時會打開一個 Unix 套接字,用於內部通訊,並透過 TOR 與攻擊者的伺服器建立加密通道,使得通訊內容無法被破解。
然後,它會釋放一個名為 libgcwrap.so
的 Rootkit,該 Rootkit 會掛鉤到各種系統函數,以修改身份驗證機制並根據需要攔截網路流量,進而 facilitating 規避。
此外,惡意軟體還會部署其他使用者層 Rootkit,將 ldd、top、crontab 和 lsof 等工具替換為木馬化的版本,再次防止惡意軟體活動被直接檢測到。
最後,一個 XMRIG 挖礦程式會被釋放到系統中並執行,利用伺服器的 CPU 資源挖掘門羅幣。
加密貨幣挖礦程式透過 TOR 與設定的礦池進行通訊,因此網路流量會被隱藏,利潤也無法追蹤。
在某些情況下,艾夸·諾提勒斯還觀察到攻擊者部署了代理劫持軟體,這為攻擊者提供了額外的獲利途徑,可以透過 Bitping、Repocket、Speedshare 和其他類似服務出售未使用的網路頻寬。
惡意軟體的影響和移除
大多數使用者是在注意到 CPU 使用率由於挖礦而達到 100% 後,才開始懷疑他們的伺服器受到感染。
然而,該惡意軟體具有高度的隱蔽性,它會持續進行挖礦活動,直到使用者登入到伺服器。一旦使用者登入,它就會立即停止,並等待伺服器再次閒置。
「我只是因為我的監控設置提醒我 CPU 使用率達到 100% 才意識到惡意軟體的存在,」一位 Reddit 使用者報告說。「然而,當我透過 SSH 或控制台登入時,該行程會立即停止。一旦我登出,惡意軟體會在幾秒鐘或幾分鐘內恢復運行。」
由於 Rootkit 的使用,惡意軟體的移除也變得非常困難,因為這些行程會對使用者層工具和一般的惡意軟體移除技術隱藏起來,通常需要使用者將設備離線或透過 Live CD 啟動來檢查檔案系統。
然而,由於感染會修改和替換合法的 Linux 檔案,因此最好的建議是清除並重新安裝設備,以確保沒有任何殘留。
檢測和阻止 perfctl
艾夸·諾提勒斯提出了幾種檢測和阻止 perfctl 的方法,主要分為四大類:系統監控、網路流量分析、檔案和行程完整性監控以及主動防禦。
關於檢測,Aqua Nautilus 提供了以下建議:
- 定期檢查
/tmp
、/usr
和/root
目錄中是否有偽裝成合法系統檔案的可疑二進制文件。 - 監控 CPU 使用率峰值以及從意外位置運行的 httpd 和 sh 等行程。
- 檢查
~/.profile
、~/.bashrc
和/etc/ld.so.preload
是否存在未經授權的修改。 - 捕獲和分析基於 TOR 的與外部 IP 的網路流量。
- 查找與已知加密貨幣挖礦池或代理劫持服務的出站連接。
- 將報告的 IoC 部分中共享的 IP 添加到阻止列表中,以 disruption 與惡意主機的通訊。
系統管理員應確保修補面向網際網路的應用程式(例如 RocketMQ 伺服器 (CVE-2023-33246) 和 Polkit (CVE-2021-4043))上的所有已知漏洞。
此外,關閉未使用的 HTTP 服務、使用基於角色的存取控制以及對 /tmp
和 /dev/shm
等關鍵目錄應用 noexec
選項也是有效的防禦措施。
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!