本篇文章探討的也是資安系列問題,而這次的目標主角則是 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...
「mac安裝homebrew」的推薦目錄:
- 關於mac安裝homebrew 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於mac安裝homebrew 在 卡斯伯 Facebook 的最讚貼文
- 關於mac安裝homebrew 在 蜜蜂先生的遊戲人間 Facebook 的最讚貼文
- 關於mac安裝homebrew 在 Wilson說給你聽 Youtube 的精選貼文
- 關於mac安裝homebrew 在 [教學] Homebrew使用教學- 看板MAC - 批踢踢實業坊 的評價
- 關於mac安裝homebrew 在 使用Homebrew 管理Mac 套件 的評價
- 關於mac安裝homebrew 在 用Homebrew 安裝macOS 軟體· Issue #1 · MonsterSupreme/blog 的評價
- 關於mac安裝homebrew 在 玩转Mac(四)homebrew的安装及使用 - YouTube 的評價
mac安裝homebrew 在 卡斯伯 Facebook 的最讚貼文
Mac 安裝 iTerm 及 Oh My ZSH
這裡有一篇從頭安裝 iTerm、Oh My ZSH 教學
擺脫一成不變的終端機介面
讓你掛著發呆都很有型 😎
https://goo.gl/qVbOie
- iTerm
另外一種終端機工具
可以分割多視窗、快捷切換
一個工具讓指令不慌不忙
- Oh My ZSH
終端機指令的強化工具
這個開源套件內建許多框架指令
強大的助攻讓開發自帶三倍速
感謝 pjchender 提供~
https://www.facebook.com/pjchender/
mac安裝homebrew 在 蜜蜂先生的遊戲人間 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
mac安裝homebrew 在 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 "磁碟代碼"
mac安裝homebrew 在 使用Homebrew 管理Mac 套件 的推薦與評價
Homebrew 使你可以使用指令管理Mac OS 上的套件。 本文會介紹如何安裝及使用Homebrew 。 為什麼要使用Homebrew. 應用程式的安裝方式百百種,管理起來 ... ... <看更多>
mac安裝homebrew 在 用Homebrew 安裝macOS 軟體· Issue #1 · MonsterSupreme/blog 的推薦與評價
Xcode Command Line Tools 可以先安裝Xcode Command Line Tools,不然待會還是會自動提醒安裝: xcode-select --install Homebrew 到Homebrew 網站, ... ... <看更多>
mac安裝homebrew 在 [教學] 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
... <看更多>