本篇文章探討的也是資安系列問題,而這次的目標主角則是 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
同時也有2部Youtube影片,追蹤數超過2萬的網紅Wilson說給你聽,也在其Youtube影片中提到,#m1 #macbookair #imac #威大小技巧 [威大小技巧] M1 Macbook air 如何檢查磁碟健康度? 很多人都有點怕怕M1 mac SSD是不是不耐用 這邊Wilson教學如何查詢硬碟健康度喔 安裝home brew: /usr/bin/ruby -e "$(curl -f...
「homebrew mac」的推薦目錄:
- 關於homebrew mac 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於homebrew mac 在 GIGAZINE Facebook 的最佳貼文
- 關於homebrew mac 在 GIGAZINE Facebook 的最佳貼文
- 關於homebrew mac 在 Wilson說給你聽 Youtube 的精選貼文
- 關於homebrew mac 在 BorntoDev Youtube 的最佳解答
- 關於homebrew mac 在 [大學國文]Mac小教學~HomeBrew的安裝與應用 - YouTube 的評價
- 關於homebrew mac 在 Homebrew - GitHub 的評價
- 關於homebrew mac 在 Installing Homebrew on Mac 的評價
- 關於homebrew mac 在 Homebrew doesn't stay installed? M1 Macbook - Stack Overflow 的評價
- 關於homebrew mac 在 Which of Homebrew or mas-cli to choose when a package is ... 的評價
homebrew mac 在 GIGAZINE Facebook 的最佳貼文
2021年2月8日のヘッドラインニュース
homebrew mac 在 GIGAZINE Facebook 的最佳貼文
macOS向けパッケージ管理システム「Homebrew」がApple Silicon搭載Macに正式対応
homebrew mac 在 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 "磁碟代碼"
homebrew mac 在 BorntoDev Youtube 的最佳解答
อยากรู้ไหมว่า Mac Mini ตัวใหม่มันแรง ดี สมชื่อหรือไม่ ? วันนี้เรามาดูรีวิวสำหรับโปรแกรมเมอร์ที่ต้องการใช้งาน Mac รุ่นใหม่ไปพร้อมกัน
Chapters:
00:00 Intro
00:52 ราคาและสเปค
02:26 ทดสอบคะแนน GeekBench
04:25 เจาะลึกหัวข้อการให้คะแนน
07:33 Visual Studio Code
9:00 Homebrew
10:00 Xcode
10:24 Application iOS ที่รองรับ และ คำแนะนำเพิ่มเติม
▲ ติดตามช่องของเราได้ที่ : http://bit.ly/borntoDevSubScribe
▲ Facebook : https://www.facebook.com/borntodev
▲ Website : http://www.borntodev.com
?BorntoDev Channel คือ ช่องยูทูปที่เน้นสาระด้านเทคโนโลยี การพัฒนาโปรแกรม ไปพร้อมกับความสนุกสนาน และ รอยยิ้มเข้าไว้ด้วยกันทั้งในรูปแบบบทเรียน และ vlog.เพื่อการเปลี่ยนรูปแบบการเรียนรู้ด้านการพัฒนาโปรแกรม และ เทคโนโลยีแบบเดิม ๆ ที่เป็นเรื่องเฉพาะกลุ่มให้เข้าถึง เข้าใจได้ง่ายยิ่งขึ้น โดยพัฒนาเน้นไปที่รูปแบบการนำเสนอใหม่ ๆ ที่เป็นมิตรกับทุกคน
▲ กิจกรรมใน Channel BorntoDev เป็นส่วนหนึ่งในการดำเนินงานของ บริษัท บอร์นทูเดฟ จำกัด ที่เปิดรับ Partners ที่สนใจร่วมเปลี่ยนแปลงให้สังคมไทยเป็นสังคมด้านวิทยาศาสตร์ และ เทคโนโลยีมากยิ่งขึ้น หากคุณสนใจสนับสนุน และ ก้าวไปพร้อมกัน สามารถติดต่อร่วมงานได้แล้ววันนี้
▲ ติดต่อโฆษณา สนับสนุน และ ร่วมงานได้ที่: support@borntoDev.com
homebrew mac 在 Homebrew - GitHub 的推薦與評價
Homebrew has 34 repositories available. Follow their code on ... Bundler for non-Ruby dependencies from Homebrew, Homebrew Cask and the Mac App Store. ... <看更多>
homebrew mac 在 Installing Homebrew on Mac 的推薦與評價
Homebrew is package manager for Macs which makes installing lots of different software like Git, Ruby, and Node simpler. Homebrew lets you avoid possible ... ... <看更多>
homebrew mac 在 [大學國文]Mac小教學~HomeBrew的安裝與應用 - YouTube 的推薦與評價
Windows 和Linux 的觀眾朋友抱歉囉 Homebrew 官網brew.shbrew search 搜尋brew install 安裝brew upgrade 升級brew update 更新brew uninstall 解除 ... ... <看更多>