本篇文章探討的也是資安系列問題,而這次的目標主角則是 MAC 系統上廣為流傳的 Homebrew 系統。
結論:
作者透過觀察 Homebrew 的 Github Action 流程,成功得上傳一個會列印一行的程式碼到 iterm2 套件中,讓所有安裝的使用者都會於 Terminal 上看到一行作者客製化的訊息。
本次的漏洞是作者刻意從 Homebrew 的 Vulnerability Disclosure Program 專案中去嘗試尋找可能的問題,所有的操作都有跟官方專案的人探討過流程,並且一切的 PoC 都是單純證明該攻擊的可行性,所以有興趣研究的人請遵循一樣的想法去做,不要認真的想攻擊。
原因:
1. Homebrew 透過 Github Action 執行 CI/CD 動作
2. Homebrew 撰寫了一個自動合併 Pull Request 的 Action
3. CI 內會透過一個Ruby的 Git Diff 第三方函式庫來驗證,只要符合下列條件就可以自動合併
- Modifying only 1 file
- Not moving/creating/deleting file
- Target filepath matches \ACasks/[^/]+\.rb\Z
- Line count of deletions/additions are same
- All deletions/additions matches /\A[+-]\s*version "([^"]+)"\Z/ or - -\A[+-]\s*sha256 "[0-9a-f]{64}"\Z
- No changes to format of versions (e.g. 1.2.3 => 2.3.4)
作者一開始想要從該規則下手,找尋有沒有可能塞入惡意攻擊並且騙過系統讓其自動合併,然而這些規則看起來沒有什麼太多問題,於是作者轉往其他領域去找尋問題,其中一個想法就是到底該 Ruby 的 Git Diff 是如何實作,也許從實作下手更有辦法去欺騙這一切。
很順利的是,作者真的於該函式庫中找到問題,對於一個 Git Diff 的結果來說,該函式庫會透過 +++ "?b/(.*) 這樣的正規表達式來判別檔案路徑的資訊而並非程式修改內容,譬如下列 diff
```
diff --git a/source file path b/destination file path
index parent commit hash..current commit hash filemode
--- a/source file path
+++ b/destination file path
@@ line information @@
Details of changes (e.g.: `+asdf`,`-zxcv`)
```
作者就開始思考,如果讓程式碼可以符合 +++ "?b/(.*) 的規則,是否有辦法讓程式碼不被視為一個檔案的修改,因此就可以修改多行程式碼但是讓 CI 系統認為只有一行程式碼於是進行自動合併
作者最初的想法如下,第一行用來放惡意程式碼,第二行用來偽裝檔案路徑,經過一番嘗試後作者真的成功塞入了類似 PRINTF 的程式碼到環境中並觸發自動合併。接者各地使用者透過 brew 安裝 iterm 版本都會看到使用者塞入的程式碼。
```
++ "b/#{Arbitrary codes here}"
++ b/Casks/cask.rb
```
原文還有更多作者的思路過程,有興趣的不要錯過
原文:
https://blog.ryotak.me/post/homebrew-security-incident-en/#fn:7
測試用PR:
https://github.com/Homebrew/homebrew-cask/pull/104191
同時也有1部Youtube影片,追蹤數超過2萬的網紅Wilson說給你聽,也在其Youtube影片中提到,#m1 #macbookair #imac #威大小技巧 [威大小技巧] M1 Macbook air 如何檢查磁碟健康度? 很多人都有點怕怕M1 mac SSD是不是不耐用 這邊Wilson教學如何查詢硬碟健康度喔 安裝home brew: /usr/bin/ruby -e "$(curl -f...
「brew安裝」的推薦目錄:
- 關於brew安裝 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
- 關於brew安裝 在 Food Insane 疯狂食客 Facebook 的最讚貼文
- 關於brew安裝 在 蜜蜂先生的遊戲人間 Facebook 的最佳貼文
- 關於brew安裝 在 Wilson說給你聽 Youtube 的最佳貼文
- 關於brew安裝 在 [教學] Homebrew使用教學- 看板MAC - 批踢踢實業坊 的評價
- 關於brew安裝 在 C語言—安裝brew+gcc+git+VSCode (Mac) - YouTube 的評價
- 關於brew安裝 在 MacBook M1筆記brew安裝,先從youtube-dl 及firefox 開始 的評價
- 關於brew安裝 在 [教學] Homebrew使用教學- 看板MAC | PTT數位生活區 的評價
brew安裝 在 Food Insane 疯狂食客 Facebook 的最讚貼文
柯基的小天地
如果你喜歡狗狗,你一定要來這裡
如果你喜歡抹茶,你更要更要來這裏!!
超級超級超級好喝的抹茶飲料!!!
新開張的 Corgi & The Gang 是在之前介紹的 JungWon-정원 Korean BBQ Buffet 隔幾間罷了!
我們點了
Cold Brew with Milk RM 14.90
Matcha Ice Blended RM 12.90
店家有三只 Poodle, 兩隻 Corgi 和一隻 Husky
是的,就是你喜歡的萌屁股 Corgi,你看那个屁股是不是很可愛呵呵呵呵
狗狗都很 Friendly, 你一進入他們的場地時,他們會來舔舔你的腳呵呵
好可愛好可愛好可愛!!!!(已瘋狂)
最重要的是,他們安裝了 Coway 的空氣淨化機
我們去的時候沒有臭喔!
店員更是親切和 prompt,一入門就有燦爛的笑容,萬一狗狗大小便時他們也第一時間清理和消毒。
開張優惠: 如果顧客家裡有狗狗,店家會送上可愛的 Bow Tie, 先到先得,送完就沒有了喔
(如果家裡沒有狗狗,你可以自己戴,我真的是開玩笑的啦!)
他們也有提供狗狗的 Hotel 服務,如果你要出門而不能帶狗狗去,你可以放毛孩在這裏。記得告訴店家你的毛孩的日常習慣
Corgi & The Gang
80P, Jalan Mount Erskine,
Mount Erskine, Tanjong Tokong,
Penang
Business Hour: 10am to 10pm
这里看看别的 Review:http://iamfoodinsane.blogspot.my/
#corgiandthegang #penangcafe #iamfoodinsane #petstore
brew安裝 在 蜜蜂先生的遊戲人間 Facebook 的最佳貼文
#科技 #Mac
介紹Mac專用的套件系統(就是像ubuntu的apt-get):
http://brew.sh/index_zh-tw.html
可以用來裝一些系統沒有的元件~(啥joe或是wget之類的)
http://caskroom.io
然後再裝這個cask擴充套件,就可以用來安裝GUI的App…
之後就只要用指令就能裝應用程式了~完全不用自己去下載安裝檔跟點安裝~
入手新Mac,安裝完新系統後,重新建立工作環境中,順便記錄一下自己裝了哪些套件:
- ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- brew install caskroom/cask/brew-cask
- brew install joe
- brew install wget
- brew cask install firefox
- brew cask install google-chrome
- brew cask install flash-player
- brew cask install dropbox
- brew cask install 1password
- brew cask install xtrafinder
- brew cask install sublime-text
- brew cask install iterm2
- brew cask install google-drive
- brew cask install xmind
- brew cask install nally
- brew cask install synology-cloud-station
- brew cask install filezilla
- brew cask install microsoft-office
- brew cask install adobe-photoshop-cc adobe-illustrator-cc
- brew cask install diskmaker-x
brew安裝 在 Wilson說給你聽 Youtube 的最佳貼文
#m1 #macbookair #imac #威大小技巧
[威大小技巧] M1 Macbook air 如何檢查磁碟健康度?
很多人都有點怕怕M1 mac SSD是不是不耐用
這邊Wilson教學如何查詢硬碟健康度喔
安裝home brew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝檢測工具:
brew install smartmontools
執行檢測:
smartctl -a "磁碟代碼"
brew安裝 在 C語言—安裝brew+gcc+git+VSCode (Mac) - YouTube 的美食出口停車場
安裝Mac 上的brew 套件管理程式2. 使用brew 安裝git 3. 使用brew 安裝gcc 4. 使用brew 安裝 ... ... <看更多>
brew安裝 在 MacBook M1筆記brew安裝,先從youtube-dl 及firefox 開始 的美食出口停車場
安裝 完成後即可跑看看能不能安裝程式 brew install youtube-dl ffmpeg youtube-dl -f mp4 id 順利的話就會幫你把該影片下載下來. 如果要裝firefox ... <看更多>
brew安裝 在 [教學] Homebrew使用教學- 看板MAC - 批踢踢實業坊 的美食出口停車場
查了一下板上好像沒有相關的教學,所以來分享一下Homebrew這個套件系統…
(其實早期我也是都用ports的…)
【關於Homebrew】
Homebrew是Mac專用的套件系統(就是像ubuntu的apt-get):
中文官網:https://brew.sh/index_zh-tw.html
可以用來裝一些系統沒有的元件~(啥joe或是wget之類的)
不過說真的,如果你不是工程師背景的話,這些系統工具應該用不太上…
【關於cask】
那麼到底裝Homebrew有啥好處呢,
對於一般的Mac user來說其實還是在於應用程式的安裝
cask官網:https://caskroom.io
透過brew安裝這個cask擴充套件,就可以用來安裝GUI的App…
之後就只要用指令就能裝應用程式了~完全不用自己去下載安裝檔跟點安裝~
【前置作業】
預設的cask安裝App會出現捷徑在個人目錄的Application目錄下,
如果你習慣用Launcher的話其實是沒有差的,但如果你習慣用「應用程式」目錄的話,
可參考官方說明 https://goo.gl/i6CQRI 在 .bash_profile裡面加上
export HOMEBREW_CASK_OPTS="--appdir=/Applications"
(此設定為非必要,看個人使用習慣)
【安裝指令】
基本上只要開啟Mac上的終端機,依照以下指令一行一行貼上按Enter讓它跑就可以了~
ruby -e "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/master/install)"
homebrew安裝指令,這兩行請接在一起再跑
brew install caskroom/cask/brew-cask
安裝cask
以下的東西有用到再選擇安裝:
brew install joe
不會用vim的傻瓜方案
brew install wget
抓東西用
brew cask install firefox-zh-tw
安裝FireFox瀏覽器
brew install mpv
指令列的多媒體播放器
brew cask install google-chrome
安裝Chrome瀏覽器
brew cask install dropbox
安裝Dropbox
brew cask install 1password
安裝1Password密碼管理器
brew cask install xtrafinder
安裝xtrafinder檔案總管擴充套件
brew cask install sublime-text
安裝Sublime編輯器,新版已更新至3.x了~
brew cask install iterm2
安裝iTerm終端機
brew cask install google-drive
安裝Google雲端硬碟
brew cask install xmind
安裝xmind心智圖工具
brew cask install welly
brew cask install nally
上PTT的重要工具
brew cask install synology-cloud-station
自家的NAS同步套件
brew cask install filezilla
ftp工具
brew cask install teamviewer
遠端管理工具
brew cask install microsoft-office
如果你有OFFICE的正版授權,可以直接用這個裝
brew cask install adobe-photoshop-cc adobe-illustrator-cc
連Adobe系列都能用cask裝,超方便的!
brew cask install diskmaker-x
有時候會需要做安裝碟…
brew cask install openemu
玩點老遊戲…XD
brew cask install obs
要玩直播的話…
brew cask install parallels-desktop
Mac上最好用(?)的VM軟體
brew cask install virtualbox
佛心來著的免費VM,不想付費買Parallels的授權的話,虛擬盒其實也很夠用了
簡單寫個教學拋磚引玉一下,
希望有在用的人也可以分享一下應用的情境或是好用的套件囉!
網友推薦套件:
brew install ffmpeg
超強的影音轉檔工具
brew install youtube-dl
更新很頻繁的youtube下載器 功能很多
brew cask install sketch
最近很紅的UI設計工具
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.74.214
※ 文章網址: https://www.ptt.cc/bbs/MAC/M.1451965224.A.4C4.html
brew cask install的話就都是GUI的應用程式了~
※ 編輯: killbee (59.127.74.214), 01/06/2016 11:58:38
... <看更多>