[心得] 如何駭入 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
--
很酷!!
那些 repo 沒用 pgp 之類的東西做驗證嗎
前陣子docker也有
coooooooool
你知道這些大公司用third_party 是要人工審code的嘛..
而且版本都是鎖定 每次更新都要人工審
所以別傻了好嗎- -
阿阿 我沒待過Apple和MS 我不知道他們沒審 抱歉
樓上ww
這樣說的話,.net 相對安全,因為知名套件都有 stro
ng name 簽章,除非 snk 外流,不然不可能偽造
不是新招...
好恐怖
多年前中國人就搞過......
不是新招
文中說的是私人套件 在公共平台再傳一個同名的套件
還以為是一直刷題一直刷題,拿到offer後就駭入了
不錯, 但這跟30分鐘解完2題Leetcode medium哪個難?
酷
我們公司現在就準備不能直接用外部 maven repo 了,都要
用公司自己的 mirror,應該也是為了要防類似的問題。
原來是這樣 我以為大家都是用內部私有的repo
本來就都該用私有審過內容的repo,但是總是有為了方便就...
會自己審的公司不多啦 畢竟套件那麼多有些又很肥,沒那個
高手又沒那個錢做不來
ex. react.js
之前學vuejs的時候就有看到一系列相關文章,主要是說儘
管是開源,但若npm裡面包什麼malware還是少有人check
70
[Vtub] YT聊天室顯示PTT推文 20220605YT聊天室顯示PTT推文 3.0大改版 更新搜尋功能,現在搜尋功能更多用途了 新增關鍵字黑名單功能 更多修正請到更新說明查看27
[問卦] 寫程式解bug好煩怎麼辦?就是我在玩python的pandas跟matplotlib。玩到現在的感覺就是,好像每個module 的作者,都有自己的定義,以至於我找文件,找到眼睛都花了,程式還是不斷地拋 出例外,然後我解決玩一個例外,下一個例外馬上就出現,永遠解不完的bug, 我 好痛苦.... 我目前的狀況是吼,遠端主機它設置不知道是怎樣,我的python會拋出簽章問題,38
[Vtub] YT聊天室顯示PTT推文 20210830YT聊天室顯示PTT推文 Holodex支援度更新 現在能支援holodex的分割功能 支援新版holotools的介面 請按page down繼續16
[問卦] 到底學C語言要幹麻= =如題 常常看到人拿 某某專案 說C語言可以作到這些喔 來說服人學C語言 可是87%的人都黑框框,函式庫只用過libc 因為都2022年惹18
[情報] YT聊天室顯示PTT推文大家好 我是PttChatOnYt套件的作者 上次有來這邊發過文 可能有少部分人有看到 在這段期間進行了許多的改版 現在套件更穩定 並且可以直接在裡面推文聊天了 已經是一個我覺得非常好用的套件了18
[Vtub] YT聊天室顯示PTT推文 20220708YT聊天室顯示PTT推文 3.0版正式上線 更新搜尋功能,現在搜尋功能更多用途了 新增關鍵字黑名單功能 更多修正請到更新說明查看9
[推坑] 分享自己做的 Manim side project[專案分享] 大家好,想跟大家分享近期做的一個有趣的小專案 RBtreeManim。 最近對 Manim 這個動畫渲染套件很有興趣,所以用 Manim 做了一個自動生成 RBtree 的專案,順便練習資料結構的實作。 雖然花了不少時間,但做起來蠻有成就感的。 只要照著 github 連結裡面的 README.md QuickStart,安裝完 docker 並執行指令就可以產生出一模一樣的動畫 Demo。5
Re: [討論] 亞太電信似乎開通IPv6 網路承接塵封已久的舊文: #1Rm0xgef (MobileComm) 關於 IPv6 Public IP 的部分, 參考網路幾篇文章:- core-js是javascript一個常見的package 每周下載量高達3000萬 可是作者一直在積極找工作 Github 上面有寫