若惡意黑客參與了小型開源軟件的開發,在自身關鍵應用中包含了這些開源軟件的公司企業就可能面臨遭遇漏洞利用的風險。安全專家指出,這些項目的開源本質和代碼的廣泛應用,對企業造成了切實的威脅。
一旦潛入開源項目,罪犯就有多種下手方式可供選擇,但必須動作夠快。因為無論是后門鍵盤記錄器還是某種木馬,如果不是動手夠快,或者真的非常非常隱蔽,用不了多久就會被 “眾人之眼” 揪出。
網絡罪犯之所以熱衷于黑開源項目,正是由于開源項目兼具靈活性和可用性的特點,能為黑客行動的開展帶來大量機會。真可謂眾所周知的攻擊途徑了。而且開源項目被黑概率很可能比大眾認知的要高得多。
安全公司 Checkmarx 安全研究主管 Eran Yalon 就表示:這可不是什么道聽途說,而是身邊時時刻刻在發生的事。以前就曾出現過這種事情,我們沒理由認為現在就絕跡了。
幾乎所有開源項目都要求貢獻者的工作要經過項目其他成員審核才能并入項目。審核層級隨貢獻者個人聲譽而遞減,貢獻者受信度越高,則審核層級越少。尤其是在大型知名開源項目中,比如主流 Linux 發行版,整個審核過程非常精細完備,也有充足的人力資源持續執行這一規程。
項目越小,則可供保障安全的資源就越少。所以,小型項目被黑的情況也就更常見了。
小項目,大影響
專家指出,超小型開源項目是黑客注入惡意代碼的重災區。
超小型開源軟件包也有可能是大型軟件包的依賴,無論依賴層有多深。你覺得自己的項目只有一兩個依賴,但實際上可能有成百上千的,而且你根本無法徹查。
比如說,由個人開發并維護的開源項目 Event-stream 就被惡意黑客接手,成功向經由流行 JavaScript 包管理器 NPM 分發的代碼庫中注入了惡意代碼。
Event-stream 項目的開發人員沒有足夠的時間來維護。一名惡意用戶說服了開發者,接管了該項目。
剛剛接管的時候該項目還是像以往一樣維護。此后,這名惡意用戶修改了 Event-stream 自身依賴的一個包,注入了可以劫持特定比特幣錢包的代碼。
該攻擊的影響范圍有多大?該項目代碼每周下載量近 150 萬次,用在其他 1,600 多個軟件包中,而這些軟件包自身又各有數百萬次的下載量。
另一起非惡意事件例證了小型開源軟件包的深遠影響:2016 年 3 月 23 日,開發者 Azer Ko?ulu 刪除了他通過 NPM 分發的 250 個模塊。其中一個模塊非常之小,僅含 11 行代碼,是往文本字符串左側添加空格以適應變量定義的。結果,這個名為 “left-pad” 的模塊是全世界成千上萬的企業和商業軟件所用依賴包的一部分,包括用 JavaScript 開發的中流砥柱 Babel 和 Node 構建的那些。
而由于 “left-pad” 下架,這些數以千萬計的應用全都失靈了。雖說開發者重新創建該功能也不是很難,但如此簡單的動作受到的短期影響也已經十分巨大。
(近) 普遍威脅
開源的普遍性眾所周知。Gartner 數據顯示,95% 的企業在內部項目中使用開源代碼。
鑒于敏捷開發運維方法的時間壓力,由內部開發團隊編寫自有功能和函數庫來打造確定性防御的做法,是不太可能被采用的。
于是,開發團隊怎么增強代碼安全性呢?
第一步就是甄選納入技術棧的庫和開源項目。有些項目的 “履歷” 優于其他項目。
第二步,確保所用項目是活躍項目,有定期更新。查看項目的活動歷史可以確保項目是有眾多活躍開發者支持的好項目。有漏洞出現時能被及時修復的概率也高得多。
而一旦補丁可用,要確保及時應用補丁修復漏洞。常有關注零日漏洞和黑客國家隊的組織機構自己的 “基本代碼安全” 卻沒做好。保持開源代碼更新和做好基礎的代碼掃描,才是最基本而堅實的網絡威脅防線。
這就是個信任問題:對開源項目和使用該代碼的內部開發人員的信任。惡意開源代碼包如果沒人用,也是不會造成嚴重后果的。IT 部門里誰能升級或修改軟件包必須有著非常明確的規定。必須有人監管著所發生的一切。
-
黑客
+關注
關注
3文章
284瀏覽量
21876 -
開源
+關注
關注
3文章
3368瀏覽量
42567
原文標題:黑客是怎樣滲透開源項目的
文章出處:【微信號:ibmsoftware,微信公眾號:ibm軟件技術聯盟】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論