重点摘要
- 我們發現了一個使用 Golang 撰寫的勒索病毒會利用 Amazon S3 (Simple Storage Service) Transfer Acceleration 傳輸加速功能來將受害者的檔案上傳到駭客掌控的 S3 儲存貯體。
- 勒索病毒樣本內含一些寫死的 Amazon Web Services (AWS) 登入憑證,不僅可用來追蹤涉入惡意活動的 AWS 帳號 ID,還可當成重要的入侵指标 (IoC)。
- 此 Golang 勒索病毒會冒充惡名昭彰的 LockBit 勒索病毒,此舉應該是為了利用 LockBit 勒索病毒家族的惡名來讓受害者備感壓力。
- 我們已經將研究發現通報給 AWS Security 團隊,很重要一點要說明的是,我們的通報內容並非關於 AWS 服务的任何漏洞,我們只是向 AWS 確認了我們發現的駭客行為,並發現該行為已違反 AWS 的使用政策 ()。此外,我們通報的 AWS 存取金鑰和帳號目前也已經都被停用。
介绍
从资讯窃取程式研发到资料外传,云端服务供應商越来越常被骇客滥用,用以从事惡意活動。儘管我們檢視的勒索病毒樣本當中含有寫死的 AWS 登入憑證,但這只是單一駭客的作法,一般來說,勒索病毒開發者會利用其他線上服务來配合他們的攻擊手法。針對這點,我們檢視了使用 (亦稱 Golang) 開發的 Windows 和 MacOS 環境勒索病毒樣本。這些樣本絕大多數都含有寫死的 AWS 登入憑證,而竊取的資料也會被上傳到駭客掌控的 Amazon S3 儲存貯體。
在攻击的最后,装置的桌布会变成一张含有 LockBit 字樣的圖片。這可能會讓使用者以為這是一起 LockBit 感染事件,尤其 LockBit 勒索病毒家族近年來一直相當活躍,甚至在今年上半年擁有最高的档案侦测数量。但實際並非如此,駭客似乎只是利用 LockBit 的惡名來加深受害者的恐懼。
我們懷疑勒索病毒作者使用的是自己的 AWS 帳號,或是已遭入侵的 AWS 帳號。我們發現了 30 多個勒索病毒樣本,這些樣本很可能都來自同一作者,這表示駭客在 AWS 停用其存取金鑰和 AWS 帳號之前,一直在積極開發和測試這款勒索病毒。此外,透過寫死的登入憑證 (AWS 存取金鑰 ID),就能對應的 AWS 帳號 ID。這項發現提供了另一個思考方向,那就是:可以將惡意或已遭入侵的 AWS 帳號 ID 當成跨帳號活動的一項入侵指标。
本文探討這些樣本、它們的功能,以及它們如何將 Amazon S3 功能應用於攻擊當中。
技术面分析
Golang 讓開發人員只需撰寫一套核心原始程式碼,就能搭配不同平台的相依元件來進行組譯,進而產生對應該平台的執行檔,這讓開發專案能跨平台移植而不會被綁死。駭客正是看上了這些優點,所以使用 Golang 來製作各種惡意檔案,例如 Agenda 勒索病毒,以及最新發現且 Earth Lusca 正在使用的 KTLVdoor 後門程式。
在我們分析到的勒索病毒樣本當中,絕大多數都含有寫死的 AWS 存取金鑰 ID (Access Key ID) 和存取密鑰 (Secret Access Key)。當我們在研究樣本的內部運作時,我們發現它使用了一個名叫「S3 Transfer Acceleration」() 的 AWS S3 功能。
我们的分析主要根据以下样本:
- 14fe0071e76b23673569115042a961136ef057848ad44cf35d9f2ca86bd90d31
- 0c54e79e8317e73714f6e88df01bda2c569ec84893a7a33bb6e8e4cf96980430

当勒索病毒在受感染的电脑上执行时,首先会执行以下步骤来初始化:
- 取得主機的通用唯一識別碼 (UUID)。
- 匯入写死的公开金钥。
此公开金钥使用来加以编码。

公開金鑰的數值解碼後顯示它使用了 RSA 加密與 2048 位元的模數 (modulus)。
- 隨機產生的「主金鑰」是使用先前匯入的 RSA 公開金鑰來產生與加密。(這表示只有擁有私密金鑰的駭客才能用它來解開主金鑰。)
- 將加密後的主金鑰寫入讀我檔案 (README.txt)。
- 使用 函式庫的 StaticCredentialsProvider 來載入靜態登入憑證。靜態登入憑證包括寫死的 AccessKeyID、SecretAccessKey 以及 AWS_REGION。

在初始化之后,勒索病毒会呼叫 函式來列出「/」目錄 (macOS 變種的根目錄) 當中的所有檔案。每個列舉出來的檔案都會進一步核對它是否位於要排除的資料夾內。如果是,該檔案就不會加密。

勒索病毒含有一份要被加密的副檔名清單 (通常是文件、照片和資料檔案)。

README.txt 档案不会被加密。
资料外传
勒索病毒樣本會根據所取得的主機 UUID,使用一組寫死的登入憑證在駭客掌控的 AWS 帳號上建立一個 Amazon S3 儲存貯體。

建立儲存貯體之後,就會修改組態設定來啟用 S3TA 功能。
最後一步是將檔案从頭到尾加密。加密演算法是 AES-CTR,密碼是「檔案名稱」與「主金鑰」拼湊在一起之後計算出來的 MD5 雜湊碼。
例如,勒索病毒會隨機產生 16 位元組的主金鑰「20 60 A3 EA 54 84 C9 27 57 76 1E CC 1F FC 12」。要被加密的檔案名稱是「text.txt」。
所以拼湊後的位元組順序是「74 65 78 74 2E 74 78 74 63 20 60 A3 EA 54 84 C9 27 57 76 1E CC 1F FC 12」,計算出來的 MD5 雜湊碼則是「23 a3 ec c5 58 2d 97 41 07 3c 3b dc 31 7d 49 30」。

接著,檔案會从受害者的電腦上傳到駭客掌控的 AWS 帳號。
S3TA?能讓使用者更快地从遠距離傳輸資料。它利用了 Amazon CloudFront 遍布全球的邊緣據點。要使用此功能,必須在儲存貯體上啟用此功能。儲存貯體名稱應符合網域名稱系統 (DNS) 規範,且不得有英文句點。視 AWS 環境的類型而定,已啟用 S3TA 的 S3 儲存貯體可以被下列端點存取:
- bucketname[.]s3-accelerate.amazonaws.com
- bucketname[.]s3-accelerate.dualstack.amazonaws.com
每個通過先前的副檔名檢查且大小低於 100 Mebibyte (MiB) 的檔案都會呼叫 函式來上傳到 AWS。這是因為要節省 AWS 的空間和費用,因為上傳大檔案會讓駭客花更多錢。

最後一步是將檔案从頭到尾加密。加密演算法是 AES-CTR,密碼是「檔案名稱」與「主金鑰」拼湊在一起之後計算出來的 MD5 雜湊碼。
勒索病毒會隨機產生一個 16 位元組的主金鑰 (例如「63 20 60 A3 EA 54 84 C9 27 57 76 1E CC 1F FC 12」)。要被加密的檔案名稱是「text.txt」。

所以,拼湊後的位元組序列是「74 65 78 74 2E 74 78 74 63 20 60 A3 EA 54 84 C9 27 57 76 1E CC 1F FC 12」,計算出來的 MD5 雜湊值則是「23 a3 ec c5 58 2d 97 41 07 3c 3b dc 31 7d 49 30」,如下圖所示 (經由 ,在此仅供视觉化用途)。

产生出来的杂凑码会当成 函式的 AES 金鑰參數。初始化向量是隨機產生的 16 位元組,會傳入 crypto.cipher.NewCTR 函式。
被加密之後的檔案會依照以下格式重新命名:「<original file name>.<initialization vector>.abcd」。例如,「text.txt」档案将重新命名為「迟别虫迟.迟虫迟.别5肠331611诲诲7462蹿42补5别9776诲2281诲3.补产肠诲」。

我們在除錯器當中執行了勒索病毒樣本並擷取出主金鑰。接著,我們確認我們可以正確解開先前加密的檔案,只要選擇適當的密碼並傳入正確的參數即可,如下圖所示 (經由 ,在此仅供视觉化用途)。

README.txt 檔案內含 base64 編碼內容。解碼之後就會顯示一個由 crypto.rsa.EncryptPKCS1v15 加密的主金鑰 (加密時是以一個寫死的公開金鑰作為參數,接著再以 base64 編碼)。此 base64 編碼的二進位大型物件 (Blob) 後面接著是主機名稱、作業系統版本以及被感染的電腦識別碼。要解開主金鑰,我們需要勒索病毒開發人員的私密金鑰,但我們並沒有。


當所有檔案都處理完畢之後,勒索病毒就會變更裝置的桌布。我們發現它使用了兩個不同的桌布,兩者都是从 LockBit 攻擊或某篇提到該勒索病毒家族的窃取或复製而来。但值得注意的是,最新的 LockBit 版本並非 2.0 版。此外,勒索病毒集團背後的重要人物也在遭到逮捕。


在 macOS 上,勒索病毒會使用 來修改系統桌布,osascript 指令如下:
“tell application "System Events" to tell every desktop to set picture to "%s”
若是在 Windows 上,勒索病毒會呼叫 並將 uiAction 參數設為 SPI_SETDESKWALLPAPER 來變更桌布。
在某些 Windows 樣本當中,我們還會找到一些刪除備份資料 () 的程式碼。有趣的是,勒索病毒開發者很可能在不知情的狀況下从一個专案当中复製了「蝉丑补诲辞飞肠辞辫测.驳辞」档案并留下了「」参数而未加以变更。

结论
駭客越來越常利用云端服务和功能來从事惡意活動。在這篇部落格中,我們分析了一個使用 Amazon S3 Transfer Acceleration 傳輸加速功能將受害者檔案上傳到駭客掌控 S3 儲存貯體的 Golang 勒索病毒。這類進階功能可讓駭客在使用云端服务供應商時,更有效率地竊取資料。
此外,云端廠商的帳戶識別碼,例如與惡意活動相關的 AWS 帳號 ID,也可當成重要的入侵指标 (IoC)。藉由追蹤這些 ID,公司就能更有效發掘及防範其云端環境內的威脅,而這也突顯出密切監控云端資源的必要性。
此外,骇客还会偽装成其他更广為人知的勒索病毒,这原因不难理解:因為恶名昭彰的勒索病毒可以让受害者备感压力,因而屈服。
為了進一步提升資安,公司也可採用 Vision One 這類資安解决方案來及早偵測及攔截威脅,不論威脅在系統內何處。
AWS Security 的回覆
我們就這起事件聯絡了 AWS 並收到以下回覆:
AWS 可確認 AWS 的所有服务目前都正常運作。所發現的活動已違反了 AWS 的,而且所通報的 AWS 存取金鑰和帳號皆已被停用。
勒索病毒并非任何运算环境所独有,不过,在针对方面,AWS 為客戶提供了更好的資安狀況可視性與控管。
客戶若懷疑或知悉有 AWS 資源被用於可疑活動的狀況,請填寫,或联络?trustandsafety@support.aws.com。
我們很感謝趨勢科技與 AWS Security 聯繫。
Trend Vision One 威脅情報
要隨時掌握持續演變的威脅,趨勢科技客戶可从 Trend Vision One 內部取得各種情報與威脅洞見。Threat Insights 可幫助客戶在威脅發生之前便提前掌握,並對新興的威脅預先做好準備。這些洞見提供了有關駭客、惡意活動及駭客技巧的完整資訊。善用這些情報,客戶就能主動採取步驟來保護自己的環境、防範風險,並且有效回應威脅。
Trend Vision One Intelligence Reports 應用程式 [IoC 掃描]
- LockBit 是假的、損害是真的:勒索病毒利用 AWS S3 竊取資料
Trend Vision One Threat Insights 應用程式
- 新兴威胁:
追踪查询
Trend Vision One 應用程式
Trend Vision One 客戶可以使用 Search 應用程式來尋找或追蹤本文提到的惡意指標,看看是否也出現在自己的環境中。
偵測 BOCKLIT 恶意程式是否存在:
malName:*BOCKLIT* AND eventName: MALWARE_DETECTION
除此之外,Vision One 客戶還可啟用 Threat Insights 權利來取得更多追踪查询。
入侵指标
在我们监控期间,我们看到这个勒索病毒有多个不同版本,它们全都具备加密功能,但只有某些具备上传功能和有效的金钥。这一点,再加上变种之间的其他差异,显示勒索病毒仍在开发当中。
如需完整的入侵指标 (IoC) 清單,請至。