[心得] 如何駭入 Apple, MS 等大公司? (轉)
如何駭入 Apple, Microsoft 等大公司? (轉)
原始文章:
https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610
作者一直對這行指令感興趣
pip install package_name
大部分的人不管在 pip(python) 或 npm (node) 安裝套件,基本上都是相信發佈者的
那如果有人惡意利用信任呢?
沒有一個套件託管服務可以保證它託管的套件都是沒後門的 (malware-free)
在之前的研究,對於這類的漏洞通常是基於知名套件,新增一個 typo 版本等等
The Idea
作者在 github 上發現了 Paypal 的一個 package.json 檔案
https://i.imgur.com/DckciS2.png
看得出來這個檔案同時含有 public 與 private packages
應該是被內部的 registry hosted
所以一個假設來了:
如果在 public registry 去上傳惡意程式,並使用這些 private package name
Paypal 內部預設會不會使用在 public 的這些套件呢?
可能是 developer 或 CICD System 都可能預設使用 public registry 的套件
然後,作者發現 npm 允許在安裝套件時執行任意程式碼
因此作者在 preinstall script 寫了些程式去取得一些主機資料
ps. 作者其實是想跟目標公司提供這些漏洞賺獎金為前提,
取得一些內部主機資料證明有駭入
然而一般大公司資安嚴密,怎麼會那麼容易讓你把資料往外送呢?
作者利用了 DNS protocal,把偷到的主機資訊夾在 DNS query 上,
該 DNS query 直接或間接通過 intermediate resolvers
到達了自架的 authoritative name server
計畫大概是這樣
接下來就是如何知道內部的 private package name
除了從 github 找一些沒處理好的 config 外
其實從 js 中最容易發現 (從一些公司公開的網址)
package.json 通常會隨著 build,把一些相依定義包入 js 中
https://i.imgur.com/Nj6P3j5.png
然後作者就開始把這些"測試套件"依照這些 private package name
上傳到 public registry
然後各大公司就.....輕易被駭入了
後續作者有得到獎金,並講很多後續,有興趣的再到原文續讀
原文: https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.73.26.66 (日本)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1617199154.A.FA1.html
推
03/31 22:04,
3年前
, 1F
03/31 22:04, 1F
推
03/31 22:35,
3年前
, 2F
03/31 22:35, 2F
推
03/31 23:25,
3年前
, 3F
03/31 23:25, 3F
推
03/31 23:28,
3年前
, 4F
03/31 23:28, 4F
→
03/31 23:29,
3年前
, 5F
03/31 23:29, 5F
→
03/31 23:29,
3年前
, 6F
03/31 23:29, 6F
→
03/31 23:30,
3年前
, 7F
03/31 23:30, 7F
→
03/31 23:31,
3年前
, 8F
03/31 23:31, 8F
推
03/31 23:37,
3年前
, 9F
03/31 23:37, 9F
推
03/31 23:54,
3年前
, 10F
03/31 23:54, 10F
→
03/31 23:54,
3年前
, 11F
03/31 23:54, 11F
→
04/01 00:09,
3年前
, 12F
04/01 00:09, 12F
推
04/01 00:43,
3年前
, 13F
04/01 00:43, 13F
推
04/01 00:48,
3年前
, 14F
04/01 00:48, 14F
推
04/01 00:58,
3年前
, 15F
04/01 00:58, 15F
→
04/01 01:09,
3年前
, 16F
04/01 01:09, 16F
→
04/01 01:20,
3年前
, 17F
04/01 01:20, 17F
推
04/01 04:09,
3年前
, 18F
04/01 04:09, 18F
推
04/01 04:19,
3年前
, 19F
04/01 04:19, 19F
推
04/01 08:01,
3年前
, 20F
04/01 08:01, 20F
→
04/01 08:01,
3年前
, 21F
04/01 08:01, 21F
→
04/01 09:21,
3年前
, 22F
04/01 09:21, 22F
→
04/01 14:06,
3年前
, 23F
04/01 14:06, 23F
→
04/01 14:16,
3年前
, 24F
04/01 14:16, 24F
→
04/01 14:16,
3年前
, 25F
04/01 14:16, 25F
→
04/01 14:18,
3年前
, 26F
04/01 14:18, 26F
推
04/02 00:19,
3年前
, 27F
04/02 00:19, 27F
→
04/02 00:19,
3年前
, 28F
04/02 00:19, 28F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):