GitHub告警:惡意軟件正通過流行開源 IDE 攻擊 Java 項目
GitHub 安全博客發(fā)布了一則通知,警告用戶目前正有一種新的惡意軟件在攻擊 Java 項目。據了解,這是一個針對 Apache NetBeans IDE 項目的開源供應鏈攻擊,GitHub 安全團隊將其稱為 Octopus Scanner。一旦感染,惡意軟件會尋找用戶開發(fā)系統(tǒng)上的 NetBeans 項目,然后將惡意負載嵌入到項目文件中,使得每次項目構建都會執(zhí)行惡意負載。
3 月 9 日,GitHub 收到了安全研究員 JJ 發(fā)來的警告通知:“我發(fā)現了一組感染了惡意程序 Octopus Scanner 的開源庫?!彪S后,GitHub 開始自查,在站點上共發(fā)現了 26 個包含 Octopus Scanner 惡意軟件的存儲庫。
據 GitHub 稱:“當用戶下載了這 26 個存儲庫中的任何一個時,該惡意軟件就會像自傳播病毒一樣,感染本地計算機,并掃描用戶的工作站,查看是否有本地 NetBeans IDE 安裝,如果有,會繼續(xù)深入影響計算機中的其他 Java 項目。”
安全研究員 JJ 表示,如果發(fā)現了 NetBeans IDE,Octopus Scanner 惡意軟件會通過以下兩個步驟繼續(xù)進行 NetBeans 項目的后門構建:
每次構建項目時,產生的 JAR 文件都會被 dropper 感染。執(zhí)行時,dropper 有效負載會確保本地系統(tǒng)持久性,并產生一個遠程管理工具(RAT),連接到 C2 服務器。
它會阻止新項目構建來替換受感染的構建,以確保惡意構建項目一直存在。
Octopus Scanner 的感染過程
Octopus Scanner 惡意軟件可以在 Windows、Linux 和 macOS 上運行,能夠識別 NetBeans 項目文件,并將惡意有效負載嵌入項目文件和構建 JAR 文件中。
安全研究員 JJ 發(fā)布了 Octopus Scanner 惡意軟件的具體攻擊過程:
-識別用戶的 NetBeans 目錄
-枚舉 NetBeans 目錄中的所有項目
-將惡意負載復制 cache.dat 到 nbproject/cache.dat
-修改 nbproject/build-impl.xml 文件以確保每次構建 NetBeans 項目時都執(zhí)行惡意有效負載
-如果惡意負載本身是 Octopus Scanner 的一個實例,則新建的 JAR 文件也會被感染。
據了解,Octopus Scanner 感染計算機的最后一步是下載一個遠程訪問木馬,這樣攻擊者就可以在用戶的計算機中搜集敏感信息。
需要注意的是,Octopus Scanner 在感染過程中可能會發(fā)生“變異”。雖然 GitHub 目前只能訪問一個 Octopus Scanner 樣本,但是在受感染的存儲庫中發(fā)現了四個不同版本的 NetBeans 感染項目,其中三個都是影響下游系統(tǒng),例如,直接在受感染的存儲庫中進行構建,或者是使用受感染的構建工具在下游系統(tǒng)中生成了受感染的工具,逐步形成“套娃”傳播。另外一個“變體”是執(zhí)行本地系統(tǒng)感染,但不影響構建工具。
攻擊者的目的是什么?攻擊者的真正目的可能不是要影響 Java 項目,而是想要在開發(fā)敏感項目或主流軟件開發(fā)公司內部人員的計算機上“留一手”,通過 RAT 病毒竊取到即將發(fā)布的工具、企業(yè)級軟件及閉源軟件的敏感信息。
GitHub 表示:“Octopus Scanner 惡意軟件已經運行多年了,最早可以追溯到 2018 年 8 月,當時是上傳到了 VirusTotal web scanner 上。截止到現在,Octopus Scanner 一直沒有被有效阻止,雖然這次只在 GitHub 的 26 個存儲庫中發(fā)現了 Octopus Scanner ,但是我們相信,在過去的兩年中,應該有更多的存儲庫被感染了。”
除了 NetBeans,其它 IDE 可能也會受影響
GitHub 安全團隊在一份報告中稱:“Octopus Scanner 惡意軟件主要攻擊的是 NetBeans 構建過程,但其實 NetBeans 并不是 Java 項目最常用的 IDE。”
由此,GitHub 猜測,如果攻擊者專門花時間開發(fā)了針對 NetBeans 的惡意軟件,那么就意味著這可能是有針對性的攻擊,也許他們針對 Make,MsBuild,Gradle 等構建系統(tǒng)也實施了相同的惡意攻擊,只是現在還沒有引起注意。
更令人不安的是,Octopus Scanner 很難被檢測出來,GitHub 向 VirusTotal 上傳了樣本,60 個殺毒軟件只有 4 個能將其檢測出來。惡意軟件偽裝成了 ocs.txt 文件,但實際上它是一個 JAR(Java Archive)文件。
參考閱讀:
https://securitylab.github.com/research/octopus-scanner-malware-open-source-supply-chain