https://s4.itho.me/sites/default/files/styles/picture_size_large/public/field/image/octopus-github.png?itok=gSQ2aFn0

供應鏈攻擊鎖定GitHub開源軟體專案,讓開發人員上傳程式碼就一併植入後門程式

駭客利用程式碼共享平臺來架設與C&C中繼站通訊的管道,又有新的手法,GitHub揭露滲透開發者電腦的攻擊事件,一旦執行程式碼編譯,惡意軟體就會在專案裡納入後門,進而汙染GitHub上的程式碼,成為駭客用來與C&C中繼站通訊的管道

by

針對開發人員的供應鏈攻擊可說是日益氾濫,而且駭客的手法不斷推陳出新。過往攻擊者主要是直接竊取用戶帳密或是憑證,進而取得程式碼共享平臺帳號的控制權,但現在有研究人員發現新的攻擊管道,攻擊者鎖定開發人員的電腦下手,讓他們於上傳程式碼時,無意間就幫自己在GitHub上架設後門,攻擊者再將這些後門用於與C&C中繼站通訊。最近,GitHub公布了上述攻擊手法細節,希望開發人員能夠加以防範。

今年3月,一個署名為JJ的資安人員,向GitHub資安事件因應團隊通報,他發現一波新的攻擊事件,駭客鎖定採用NetBeans整合開發環境的電腦發動攻擊,導致這些開發者提交到GitHub的程式碼帶有後門。該團隊獲報後,隨即展開調查,發現有26個開源專案,被惡意軟體借殼上架後門。GitHub資安事件因應團隊表示,他們經常獲報有人刻意利用GitHub,將其做為C&C中繼站運作的一部分,但這次研究人員提出的情報相當不同,程式碼資料庫的所有人完全不曉得自己遭駭,持續在自己的GitHub帳號提交帶有後門的程式碼。

https://s4.itho.me/sites/default/files/images/octopus-figure-1-c.jpg

研究人員將這次發現駭客作案的惡意軟體,命名為Octopus Scanner。駭客攻擊的方式,是先將這款惡意軟體植入到開發用的電腦,接著Octopus Scanner會在電腦裡掃描,找出所有的NetBeans專案檔案與資料夾,並且將惡意負載(Payload)檔案植入指定的資料夾,然後修改編譯的XML組態檔案內容,使得開發者每次編譯程式時,惡意軟體就會一併載入所有類別,而且還會感染編譯好的JAR檔案。

GitHub指出,他們在調查過程中,Octopus Scanner的C&C中繼站似乎還沒有上線,但這不代表遭感染的專案就安全,駭客還是很有可能藉此複製專案的內容。基於前述用戶應該不知情的前提,GitHub認為不應該直接封鎖使用者的帳號來處置,取而代之的是,他們會充分了解惡意軟體散播的途徑,再從這些專案妥善移除相關程式碼。

不過,根據GitHub的調查,與獲報資訊有所不同的是,Octopus Scanner不光是會感染編譯過程產生的JAR檔案,而是整個專案資料夾裡的所有的JAR檔案。該公司清查受害專案後進一步發現,Octopus Scanner至少有4種版本,其中一種還會感染下游系統,也就是說,假如其他GitHub用戶複製了受害專案來進行開發,也可能會一併繼承了這個惡意軟體。至於其他3種Octopus Scanner,則是以開發者本機電腦為主要感染目標。

https://s4.itho.me/sites/default/files/images/octopus-decompiled-c.png

GitHub也將其中一個Octopus Scanner上傳到VirusTotal,所有的60個防毒引擎中,竟然只有4個發現是惡意軟體,這樣的結果很可能會被當作是誤判。

https://s4.itho.me/sites/default/files/images/octopus-virustotal-c.jpg

值得注意的是,NetBeans並非Java程式語言最常見的輔助開發工具,但為何駭客要針對使用這款整合開發環境的開發者下手?GitHub認為,假如此次攻擊並非特定目標攻擊,就是駭客已經同時對其他開發環境悄悄下手,像是使用Make、MsBuild,以及Gradle等開發工具的電腦,也可能會出現類似Octopus Scanner的惡意軟體攻擊。