通過趨勢科技的蜜罐和監測技術,研究人員能夠觀察到攻擊者濫用原生Linux 工具對Linux 環境發起攻擊的實例。
採用容器已經成為主流,各類企業的使用率都在上升。根據CNCF 的一項調查,93% 的受訪者目前正在或計劃在其運行中使用容器。像Kubernetes這樣的容器項目和其他在雲和互聯網上可用的工具,已經導致了組織運作方式發生變化,從單一架構到創建由微服務組成的分佈式系統。
由於使用了容器這些變化也導致了攻擊面的擴大,特別是通過在部署中引入的安全錯誤配置或漏洞。對於使用容器的企業來說,補丁管理常常是一項巨大的任務,這意味著更新並不總是及時地實現,這使得云安全更加複雜。
研究人員已經在面向公眾的Web 應用程序中發現了各種來源的嚴重漏洞,從易受攻擊的開源庫(Log4Shell 和Spring4Shell)到框架(Apache Struts 和Drupal),甚至是諸如Atlassian Confluence、Oracle WebLogic Server 和Apache HTTP Server等應用程序。一旦漏洞的概念證明(POC) 被披露,攻擊者就可以利用它們執行惡意任務,從挖掘加密貨幣到有時部署勒索軟件。
從防御者的角度來看,理想的結果是阻止攻擊者獲得最初的立足點。然而,情況並非總是如此。如果攻擊者確實設法進入系統,則防御者的工作就是通過使用縱深防禦策略使攻擊者更難成功地完成攻擊。
通過蜜罐網絡和監控分析,研究人員能夠觀察到大多數成功利用嘗試的一些有趣特徵,特別是攻擊者如何在其例程中使用本機Linux 工具。
在Linux 環境中使用合法實用程序和工具檢查攻擊對基於Linux 的系統的攻擊通常遵循標準的利用鏈。首先,攻擊者利用一個漏洞或一系列漏洞來獲得對環境的初始訪問權限(我們現在可以將其視為受到攻擊)。此時,攻擊者可以採取不同的路徑進一步進入被破壞的環境:
1.枚舉當前環境的上下文(發現);
2.從環境中洩露敏感數據(洩露、影響);
3.通過刪除應用程序執行拒絕服務攻擊(影響);
4.通過下載挖礦軟件來挖掘加密貨幣(影響);
5.嘗試其他技術(權限升級、橫向移動、持久性或憑據訪問);
攻擊者如何在受感染的環境中進一步發起攻擊
基於真實世界的攻擊和蜜罐捕獲的樣本,研究人員觀察到攻擊者使用與Linux 發行版捆綁在一起的各種啟用工具,例如curl、wget、chmod、chattr、ssh、base64、chroot、crontab、ps 和pkill ,這些工具都可以被攻擊者利用。
我們已經看到攻擊者在野外濫用這些工具。至少應該考慮這些實用程序的存在,尤其是在容器環境中,因為它們為攻擊者提供了額外的途徑。
使用base64解碼有效負載,以便稍後執行
base64 工具是一個Linux 實用程序,用於解碼以base64 格式編碼的字符串。攻擊者經常使用base64 編碼來混淆他們的有效載荷和命令以逃避檢測(T1027),我們在之前的文章《恶意Shell脚本的进化》 中詳細描述了這種技術。
使用“cat”進程查看所有用戶的.bash_history
.bash 歷史文件存儲在用戶的主目錄中,記錄用戶在其bash shell 上執行的命令。眾所周知,攻擊者會從這些文件中提取信息以了解當前環境的上下文,正如我們之前在另一篇文章中所詳述的那樣,錯誤配置的Docker 守護程序API 端口因Kinsing 惡意軟件活動而受到攻擊。
使用“cat”進程查看“/etc/passwd”
作為枚舉步驟的一部分,攻擊者訪問/etc/passwd 文件,該文件包含環境中已註冊用戶的列表,並顯示給定用戶是否具有與其登錄相關聯的shell(T1003.008)。此信息有助於攻擊者了解環境並確定有價值的用戶。
使用“chattr”` 將/etc/crontab 文件修改為可變
chattr 實用程序用於更改文件和文件夾屬性,以控製文件的刪除和修改等突發操作。上圖中的示例顯示/etc/crontab 文件的屬性已被更改,導致文件不安全。正如《分析TeamTNT 的活动》 中所討論的,該實用程序之前已被觀察到被TeamTNT 濫用。
使用“chmod”使文件可執行
chmod工具用於修改文件模式,實現用戶/組訪問粒度化。它需要執行新下載的可執行文件,在本例中,我們看到/tmp路徑上的agettyd文件被設置為可執行位。
使用“crontab”刪除所有現有的cron 作業
cron作業是用於調度任務(或作業)的實用工具。眾所周知,攻擊者濫用cron作業並修改“crontab”來執行執行、持久性,有時還會使用特權升級技術(T1053.003)。上圖中的示例顯示了對現有cron作業的刪除。這種情況很常見,加密貨幣挖礦軟件通過刪除其他挖礦軟件的痕跡來劫持盡可能多的資源。《Linux 加密货币挖矿软件之战》 深入討論了這些活動。
使用“curl”將系統信息洩露給攻擊者
curl 或cURL 實用程序用於跨不同協議傳輸數據,例如HTTP、HTTPS 和文件傳輸協議(FTP)。上圖中的示例顯示操作系統版本和發布版本等系統信息作為POST 請求發送到攻擊者的基礎設施。
使用“curl”從GitHub 下載xmrig 二進製文件
在本例中,curl用於從Github下載XMRig 挖礦軟件的二進製文件。眾所周知,攻擊者濫用像Github和Netlify這樣的合法平台來服務於加密挖掘工具,正如我們在之前的《通过 GitHub、Netlify 提供的门罗币挖掘恶意软件漏洞》 博客中解釋的那樣。
使用“pkill”阻止競爭進程/coinminer
kill 套件實用程序用於向進程發送信號,如上圖中的示例所示,它將SIGKILL 信號發送到名為“kdevtmpfsi”的進程。早在2020 年,我們就一直在追踪名為kdevtmpfsi 的加密貨幣挖礦軟件,《分析 Kinsing 恶意软件对 Rootkit 的使用》 展示了另一個競爭挖礦軟件被終止的例子。
使用“ps”查看正在運行的進程
ps 實用程序用於查看進程的狀態。上圖顯示了ps aux 命令獲取有關進程的詳細信息,例如係統上當前正在運行的進程、進程ID 和進程權限。此信息可以幫助攻擊者執行與發現相關的技術(T1057 ——進程發現)並獲取有關他們所處環境的信息。
使用“rm”從/tmp 目錄中刪除隱藏文件
在上圖中,我們看到rm 工具用於刪除/tmp 目錄下的隱藏文件和文件夾。在文件或文件夾名稱之前,攻擊者可以通過添加“.”來創建隱藏目錄以逃避檢測(隱藏工件:隱藏文件和目錄- T1564.001)。
使用“ssh”通過XMR 挖礦軟件感染底層主機
ssh 實用程序是用於通過Secure Shell (SSH) 以類似蠕蟲的方式訪問系統的遠程客戶端。在上圖中,攻擊者嘗試下載Monero 挖礦軟件(使用wget/curl)並感染正在嘗試SSH 的遠程計算機(127.0.0.1)。一旦攻擊者由於容器的不安全配置(例如,特權容器)而掛載了底層主機的文件系統,他們就會創建新的SSH 密鑰對,使用它來建立“ssh”會話,並用加密貨幣挖礦軟件感染底層主機。
使用“wget”、“curl”、“chmod”下載並執行Mirai 惡意軟件
在此示例中,我們看到了不同Linux 實用程序的組合使用,其中下載了二進製文件,修改了權限,然後再執行。名為“runnable”的可執行文件是在CVE-2021-44228跟踪的Log4shell漏洞被利用後發布的Mirai示例。
使用“whoami”查看當前用戶上下文
顯示攻擊者使用“chroot”和“base64”的工作台
使用Vision One 工作台,我們看到攻擊者正在使用chroot 和base64 實用程序。請注意,chroot 用於將根更改為提供的目錄(在本例中為/host),其中底層主機的文件系統安裝在容器中。在《为什么特权容器很容易被攻击》 一文中,我們探討了此函數在授予容器時所帶來的風險。
保護Linux 系統免受實用程序濫用的最佳實踐使用distroless 鏡像通過觀察上一節中討論的技術,我們看到攻擊者可以使用一組與完整操作系統捆綁在一起的工具。作為防御者,使用只包含我們需要的工具的容器映像並刪除不需要的工具會更安全。
這種安全方法可以在很大程度上幫助降低風險,即使是針對諸如Log4Shell 之類的關鍵漏洞也是如此。減少應用程序運行所需的工具數量也減少了由開源庫和工具中的依賴漏洞引入的攻擊面。這裡介紹無發行映像的概念,這些映像被描述為僅包含應用程序及其運行時依賴項的映像,消除了你期望在典型Linux 發行版中找到的程序,例如包管理器和shell。
Cloud One 工作負載安全——應用程序控制從防御者的角度來看,重點應該是通過縱深防禦策略抵禦。雖然對系統進行更改以盡量緩解甚至防止濫用會有所幫助,但利用多種安全措施的多層方法將提供最強的安全級別,理想情況下是將最佳實踐與有效的防禦技術結合起來。
對於非容器化環境,Cloud One 工作負載安全提供了應用程序控制模塊,該模塊監控軟件更改並根據設置的配置允許或阻止它們。它創建現有應用程序的基線並將規則應用於下載和安裝的新應用程序。它基於二進製文件的SHA256 哈希值工作。
它為用戶提供了執行以下操作的選項:
在明確允許之前阻止無法識別的軟件;
在明確阻止之前允許無法識別的軟件;
我們在Ubuntu 20.04 長期支持(LTS) 服務器上使用wget 從GitHub 下載nmap 網絡枚舉工具的預編譯二進製文件。然後,服務器配置了Cloud One 工作負載安全代理,該代理運行應用程序控制模塊,為無法識別的軟件設置為“阻止”模式。如下圖所示,應用程序控制阻止了執行。
使用來自Cloud One Workload Security的Application Control模塊防止“nmap”二進製文件的執行
在Cloud One Workload Security上對應的事件,我們看到“nmap”二進製文件被阻止執行
總結由於攻擊者利用了內置在操作系統中的合法工具和實用程序,防御者將需要優先考慮如何在攻擊的不同階段設置控制。通過在容器中使用無分發映像和應用預防性控制(如Cloud One Workload Security的應用程序控制)來最小化攻擊面,可以大大降低針對雲環境的攻擊者的速度。在組織無法使用無發行版實現的情況下,也可以使用相同映像的“精簡”版本來減少攻擊面並加強雲部署的安全性。
Recommended Comments