[心得] 如何駭入 Apple, MS 等大公司? (轉)

看板Soft_Job (軟體人)作者 (wanda wanda)時間3年前 (2021/03/31 21:59), 編輯推噓13(13015)
留言28則, 20人參與, 3年前最新討論串1/2 (看更多)
如何駭入 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
那些 repo 沒用 pgp 之類的東西做驗證嗎
03/31 22:35, 2F

03/31 23:25, 3年前 , 3F
前陣子docker也有
03/31 23:25, 3F

03/31 23:28, 3年前 , 4F
coooooooool
03/31 23:28, 4F

03/31 23:29, 3年前 , 5F
你知道這些大公司用third_party 是要人工審code的嘛..
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
阿阿 我沒待過Apple和MS 我不知道他們沒審 抱歉
03/31 23:31, 8F

03/31 23:37, 3年前 , 9F
樓上ww
03/31 23:37, 9F

03/31 23:54, 3年前 , 10F
這樣說的話,.net 相對安全,因為知名套件都有 stro
03/31 23:54, 10F

03/31 23:54, 3年前 , 11F
ng name 簽章,除非 snk 外流,不然不可能偽造
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
還以為是一直刷題一直刷題,拿到offer後就駭入了
04/01 01:20, 17F

04/01 04:09, 3年前 , 18F
不錯, 但這跟30分鐘解完2題Leetcode medium哪個難?
04/01 04:09, 18F

04/01 04:19, 3年前 , 19F
04/01 04:19, 19F

04/01 08:01, 3年前 , 20F
我們公司現在就準備不能直接用外部 maven repo 了,都要
04/01 08:01, 20F

04/01 08:01, 3年前 , 21F
用公司自己的 mirror,應該也是為了要防類似的問題。
04/01 08:01, 21F

04/01 09:21, 3年前 , 22F
原來是這樣 我以為大家都是用內部私有的repo
04/01 09:21, 22F

04/01 14:06, 3年前 , 23F
本來就都該用私有審過內容的repo,但是總是有為了方便就...
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
ex. react.js
04/01 14:18, 26F

04/02 00:19, 3年前 , 27F
之前學vuejs的時候就有看到一系列相關文章,主要是說儘
04/02 00:19, 27F

04/02 00:19, 3年前 , 28F
管是開源,但若npm裡面包什麼malware還是少有人check
04/02 00:19, 28F
文章代碼(AID): #1WP80o-X (Soft_Job)
文章代碼(AID): #1WP80o-X (Soft_Job)