惡意軟體製造者詭計多端 使用“小眾”程式語言逃避常見安全檢測
黑莓研究人員報告稱,不常見的程式語言——包括 Go、Rust、Nim和DLang——正在成為惡意軟體作者的最愛,它們試圖繞過安全防禦或解決開發過程中的弱點。
研究團隊注意到這四種語言的惡意用途增加以及使用它們的惡意軟體家族數量增加後,選擇了這四種語言。使用新程式語言的攻擊者並不新鮮。然而,研究人員指出,這些語言正變得越來越發達,並預計隨著趨勢的繼續,它們的使用會增加。
有人可能採用一種新的程式語言有幾個原因:它可以解決現有語言的弱點,或者為開發人員提供更簡單的語法、更有效的記憶體管理或效能提升。研究人員指出,新語言也可能更適合其環境——例如,物聯網裝置大多使用低階語言。
當攻擊者利用這些特點時,對防禦者構成了挑戰。惡意軟體分析工具並不總是支援鮮為人知的語言,與C或C++ 等傳統語言相比,用Go、Rust、Nim和 DLang 編寫的二進位制檔案在反彙編時可能會顯得更加複雜。分析師可能不熟悉較新的語言。
報告指出,較舊的惡意軟體通常會在第一階段以加密形式儲存,並使用XOR、RC4、AES 或其他加密和編碼方法。
研究人員表示,一旦解碼,二進位制檔案就會被放入磁碟或注入正在執行的程式並載入到記憶體中,並指出這對攻擊者很有吸引力,因為它可以為他們省去重新編碼惡意軟體的麻煩。相反,他們可以將舊惡意軟體“包裝”在這些交付方法之一中。
基於簽名的安全工具可能已經使用眾所周知的惡意軟體捕獲了投放器或載入器的第二階段,無論是投放到磁碟還是載入到記憶體中;然而,用不同的語言重寫惡意軟體使其有可能繞過防禦,因為現有的簽名可能不起作用。
Go由Google於2007年開發,屬於C家族,但具有更簡化的語法。它可以交叉編譯到所有主要作業系統,以及 Android、JavaScript 和 WebAssembly。
Nim可以編譯成多種語言,例如 C、C++ 和 JavaScript。DLang 帶來了C的語法改進;它可以交叉編譯。
Rust開銷低,效能高效,並幫助開發人員解決報告指出的其他流行語言中的“痛點”。
攻擊者換檔,防禦者跟進
正如研究人員指出的那樣,惡意軟體作者並不是唯一採用不常見語言的人——近年來,安全社群也採用這些語言來實施紅隊工具的攻擊性使用,其中許多研究人員指出,它們是開源的或公開可用的。
該報告指出了去年的FireEye漏洞,其中民族國家攻擊者從安全公司竊取了紅隊工具。FireEye表示,被盜軟體位於第三方儲存庫,其中包括被盜工具和檢測簽名。
研究人員指出,用這些鮮為人知的語言編寫的惡意軟體通常不會像用更常見和成熟的語言編寫的惡意軟體那樣被檢測到。此時,攻擊者正在改變感染過程的第一階段,而不是其活動的核心,但安全團隊必須意識到這些鮮為人知的語言風險以及如何影響他們的防禦。
關鍵案例:APT28和APT29的“Go”流暢度不斷提高
當談到這些更晦澀的語言時,惡意軟體開發人員歷來主要用Go編寫:一種與C++非常相似的通用語言,因為它是靜態型別和編譯的。
C 語言惡意軟體仍然是最普遍的。但APT28和APT29已經開始比其他組織更頻繁地在惡意軟體集中使用更奇特的語言。APT28又名 Fancy Bear 或 Strontium 等,而APT29又名 Nobelium、Cozy Bear 或 the Dukes 等。
APT28使用的Go重寫選擇:
2018年:一個與 APT28 相關聯的基於Go的木馬被確定為Zebrocy 變體,具有原始 Delphi下載器的重寫版本。
2019年:研究人員在針對東歐和中亞大使館和外交部的同一個 Zebrocy 活動中發現了一個Nim下載器和 Go 後門。
2020年及之前幾年: APT28 越來越喜歡 Go,使用其他重寫的 Zebrocy 核心元件:後門負載和下載器。最近,APT28使用 COVID-19 大流行作為誘餌,於 12 月釋出了Go 下載程式變體。
就 APT29/Cozy Bear 而言,以其在2020 年初的SolarWinds 供應鏈攻擊中的作用而聞名,它在 2018 年使用WellMess(一種用 Go 和 .NET 編寫的遠端訪問木馬(RAT))針對 Windows和Linux機器。
研究人員指出,WellMess 最流行的變體是Go版本,它有32位和64位變體作為PE和 ELF檔案,“使 APT29能夠將其部署到不止一種型別的架構和作業系統。”
APT29通常透過首先掃描組織的外部IP地址中的漏洞,然後對易受攻擊的系統進行公開攻擊來滲透受害者的網路。
時間線
除了Go及其對APT28和APT29日益增長的吸引力之外,過去十年中其他稀有語言也越來越多地被其他威脅行為者用於越來越多的惡意軟體系列。下面是這四種語言如何越來越多地出現的時間表,特別是 Rust、Nim 和D語言。
DLang惡意軟體似乎是不斷演變的威脅環境中最不受歡迎的語言,但它在過去一年中出現了一些溫和的增長。報告預測,這可能標誌著惡意軟體開發人員更普遍地採用DLang的趨勢。
如何進行反擊
網路安全研究組織建議,為了捕獲這些多語言惡意軟體家族,軟體工程師和威脅研究人員如果採用動態或行為簽名、透過沙箱輸出標記行為的簽名或端點檢測和響應 (EDR),將更有利,在這些情況下,這些技術可能更加可靠。
如果靜態簽名失敗,採用與實現無關的檢測規則來標記動態行為會有所幫助,因為惡意軟體通常以相同的方式執行,尤其是當惡意軟體被重新編碼時。“在其他情況下,例如通常使用 Windows API 呼叫的有限子集註入程式的shellcode載入器,可以使用該有限子集識別它們。同樣,在二進位制檔案中使用庫通常可以“簽名”。“
軟體檢測及分析工具要和惡意軟體同步還需要一段時間,但企業及組織的安全意識必須提高起來,要積極主動去防禦新出現的技術和惡意軟體手段。加強軟體安全防禦能力,從底層 原始碼安全檢測做起,不給惡意軟體可乘之機。
參讀連結:
https://threatpost.com/malware-makers-using-exotic-programming-languages/168117/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2783990/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 記憶體安全週報第27期 | 惡意軟體使用 Ezuri加密工具逃避檢測記憶體加密
- 常見惡意軟體型別及危害型別
- 嚴重的程式設計錯誤或致檔案刪除、駭客使用新惡意軟體逃避檢測|1月26日全球網路安全熱點程式設計
- 從SharPersist思考惡意軟體持久化檢測持久化
- 超簡單整合華為惡意URL檢測,保障使用者訪問安全
- 惡意軟體開發——shellcode執行的幾種常見方式
- Snatch勒索軟體使系統進入Windows安全模式以逃避檢測Windows模式
- D語言編譯器被多個防毒軟體誤報是惡意程式編譯防毒
- 如何檢測手機惡意應用?整合華為應用安全檢測,提升App使用安全APP
- 深度分享|關於惡意軟體加密流量檢測的思考加密
- 駭客在開源網站植入秘密後門、惡意軟體透過非常規IP逃避檢測|1月25日全球網路安全熱點網站
- Windows使用者注意!“紫狐”惡意軟體來襲Windows
- Amazon GuardDuty 的新增功能 – Amazon EBS 卷的惡意軟體檢測
- 知識點!!8類常見惡意軟體以及如何識別它們
- 在 Linux 上安裝和使用惡意軟體檢測工具 LMD 及防毒引擎 ClamAVLinux防毒
- 一種難以檢測到的惡意軟體正在快速傳播
- 亞馬遜雲科技推出Amazon GuardDuty 惡意軟體檢測新功能亞馬遜
- 物體檢測(YOLO)示例:使用 C 語言YOLO
- 結構相似,執行相同!26%的惡意JavaScript軟體利用混淆技術逃過安全檢測JavaScript
- 最新惡意軟體來襲!專攻Windows盜版使用者Windows
- 機器學習&惡意程式碼靜態檢測機器學習
- go語言初學者常見錯誤Go
- 小程式多端框架全面測評框架
- 無法檢測到的Linux惡意軟體;惡意軟體團隊解散,10萬美元拍賣原始碼;美團疑取消支付寶支付Linux原始碼
- C語言常見使用問題2C語言
- 每日安全資訊:研究人員發現能逃避防毒軟體檢測的 Linux 後門防毒Linux
- linux ddos惡意軟體分析Linux
- 惡意軟體Linux/Mumblehard分析Linux
- Zero Access惡意軟體分析
- C 語言實現物體檢測:使用 YOLO 模型YOLO模型
- 使用 Go 語言與 OpenCV 進行物體檢測GoOpenCV
- Facebook季度安全報告:假冒ChatGPT的惡意軟體激增ChatGPT
- 卡巴斯基釋出輕量級工具,可檢測Pegasus及其他iOS惡意軟體iOS
- 針對Linux和Windows使用者的新型多平臺惡意軟體LinuxWindows
- 程式設計師常見軟體下載連結程式設計師
- Python是最強語言?看看俄羅斯Turla黑客開發的Python惡意軟體Python黑客
- 安卓被曝安全漏洞:允許攻擊者透過藍芽向使用者傳送惡意軟體安卓藍芽
- 安卓被曝安全漏洞:允許攻擊者通過藍芽向使用者傳送惡意軟體安卓藍芽