分析 npm 或 yarn lockfile 檢測安全問題
Lockfiles 被用作資源清單的受信任白名單,從中獲取套件。 然而追蹤到 lockfile 中的修改並不是一項簡單的任務,因為它們是為機器使用而設計的。
如果有人建立了一個 Pull Request 並且偷偷地使用一個惡意的資源套件來替換一個真正的程式庫,會發生什麼事呢?
檢查你的 lockfile ,以確保它們符合預先定義的安全策略,並減輕這種安全漏洞攻擊。
✍看更多開源資訊介紹,歡迎加入 Discord Github 俱樂部 https://discord.gg/DGR7uDqSSW
https://github.com/lirantal/lockfile-lint
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「github pull request」的推薦目錄:
- 關於github pull request 在 軟體開發學習資訊分享 Facebook 的最讚貼文
- 關於github pull request 在 矽谷牛的耕田筆記 Facebook 的精選貼文
- 關於github pull request 在 軟體開發學習資訊分享 Facebook 的最佳解答
- 關於github pull request 在 コバにゃんチャンネル Youtube 的最佳貼文
- 關於github pull request 在 大象中醫 Youtube 的最佳貼文
- 關於github pull request 在 大象中醫 Youtube 的最讚貼文
- 關於github pull request 在 與其它開發者的互動- 使用Pull Request(PR) - 為你自己學Git 的評價
- 關於github pull request 在 About pull requests - GitHub Docs 的評價
- 關於github pull request 在 GitHub 該如何發PR(pull request) | 是Ray 不是Array 的評價
- 關於github pull request 在 了解GitHub 的fork 與pull request 版控流程 - iT 邦幫忙 的評價
- 關於github pull request 在 GitHub 上常常出現的縮寫. PR 後,然後呢? 的評價
- 關於github pull request 在 Pull Request Merge Queue Limited Beta | GitHub Changelog 的評價
- 關於github pull request 在 How To Create A Pull Request on Github - Earth Data Science 的評價
- 關於github pull request 在 What Are GitHub Pull Requests? - dummies 的評價
- 關於github pull request 在 GitHub Pull Request Tutorial · Thinkful Programming Guides 的評價
- 關於github pull request 在 Better Pull Request for GitHub 的評價
- 關於github pull request 在 Creating a GitHub Pull Request from within PhpStorm 的評價
- 關於github pull request 在 How to Create Pull Requests on GitHub - Zepel 的評價
- 關於github pull request 在 How to create a pull request in GitHub | Opensource.com 的評價
- 關於github pull request 在 How to make your first pull request on GitHub - freeCodeCamp 的評價
- 關於github pull request 在 Create Your First GitHub Pull Request - Better Dev 的評價
- 關於github pull request 在 Github的branch權限設定- Required pull request ... - 歐斯瑞 的評價
- 關於github pull request 在 Merge Branches into Master Branch in GitHub using Pull ... 的評價
- 關於github pull request 在 How To Create a Pull Request on GitHub | DigitalOcean 的評價
- 關於github pull request 在 How to Make a Pull Request in Github - Linux Hint 的評價
- 關於github pull request 在 [Git] Github 上審查過的Pull Request 無法合併? - EPH 的程式 ... 的評價
- 關於github pull request 在 How To Create a Pull Request With GitHub Desktop 的評價
- 關於github pull request 在 如何在本地端取出和送出Github 的Pull Requests 的評價
- 關於github pull request 在 How can I check out a GitHub pull request with git? - Stack ... 的評價
- 關於github pull request 在 How can I check out a GitHub pull request with git? - Stack ... 的評價
- 關於github pull request 在 Github 使用Issue, Pull Request Template 更容易 ... - Mr. 沙先生 的評價
- 關於github pull request 在 發一個PR · Git Workshop - alincode 的評價
- 關於github pull request 在 GitHub Pull Requests - Gentoo Wiki 的評價
- 關於github pull request 在 Introducing GitHub Pull Requests for Visual Studio Code 的評價
- 關於github pull request 在 How to Create a Pull Request on GitHub using VS Code 的評價
- 關於github pull request 在 在Local 端處理Github 專案Pull Request - 小惡魔- AppleBOY 的評價
- 關於github pull request 在 Start to use GitHub pull requests like a master | Udemy 的評價
- 關於github pull request 在 Git 06: Sync GitHub Repos with Pull Requests - National ... 的評價
- 關於github pull request 在 Git GitHub Send Pull Request - W3Schools 的評價
- 關於github pull request 在 Using the Github UI to Make Pull Requests - Joomla ... 的評價
- 關於github pull request 在 How to create and review a GitHub pull request 的評價
- 關於github pull request 在 GitHub Pull Requests - Code Climate 的評價
- 關於github pull request 在 How to update a Pull Request on GitHub | egghead.io 的評價
- 關於github pull request 在 Better Pull Request for GitHub – Get this Extension for Firefox ... 的評價
- 關於github pull request 在 Contribute to CircuitPython with Git and GitHub - Adafruit ... 的評價
- 關於github pull request 在 GitHub | Lokalise Docs 的評價
- 關於github pull request 在 Chapter 4 GitHub Desktop-group | Minimal-Git-demo 的評價
- 關於github pull request 在 Using stacked pull requests in GitHub - LogRocket Blog 的評價
- 關於github pull request 在 What is github pull request? - Respuestas 的評價
- 關於github pull request 在 Create a Pull Request on GitHub using Pycharm 的評價
- 關於github pull request 在 git学习--GitHub上如何进行PR(Pull Request)操作 - CSDN博客 的評價
- 關於github pull request 在 How-to: Steps to create a Github pull request (git branch, etc.) 的評價
- 關於github pull request 在 Automate GitHub Pull Requests for Teams | Collaborator 的評價
- 關於github pull request 在 GitHub launches Suggested Changes to make it easier to ... 的評價
- 關於github pull request 在 Forking a GitHub Repository and Using Pull Requests 的評價
- 關於github pull request 在 github-pr step - Codefresh 的評價
- 關於github pull request 在 GitHub Pull Requests for Code Review – Make WordPress Core 的評價
- 關於github pull request 在 Your Github pull requests analyzed for effective code review 的評價
- 關於github pull request 在 Open a Pull Request via the GitHub API | Pluralsight 的評價
- 關於github pull request 在 Code navigation in GitHub pull requests - Sourcegraph 的評價
- 關於github pull request 在 如何讓GitHub 每個pull request (PR) 有預設模板· 小菜的Blog 的評價
- 關於github pull request 在 Tips for Better GitHub Pull Requests - Sparkbox 的評價
- 關於github pull request 在 A GitHub Pull Request Template for Your Projects 的評價
- 關於github pull request 在 Best Practices for Reviewing Pull Requests in GitHub - BackHub 的評價
- 關於github pull request 在 How to make your first Pull Request on GitHub - Flavio Copes 的評價
- 關於github pull request 在 Working with Pull Requests in Visual Studio Code and GitHub 的評價
github pull request 在 矽谷牛的耕田筆記 Facebook 的精選貼文
本篇文章探討的也是資安系列問題,而這次的目標主角則是 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
github pull request 在 軟體開發學習資訊分享 Facebook 的最佳解答
附有問題跟蹤、 Git 管理、Pull Request 和 Build Farm。 簡單而強大
✍ 歡迎加入 Discord Github 俱樂部 https://discord.gg/DGR7uDqSSW
https://softnshare.com/devops-onedev/
github pull request 在 コバにゃんチャンネル Youtube 的最佳貼文
github pull request 在 大象中醫 Youtube 的最佳貼文
github pull request 在 大象中醫 Youtube 的最讚貼文
github pull request 在 About pull requests - GitHub Docs 的推薦與評價
Pull requests let you tell others about changes you've pushed to a branch in a repository on GitHub. Once a pull request is opened, you can discuss and ... ... <看更多>
github pull request 在 GitHub 該如何發PR(pull request) | 是Ray 不是Array 的推薦與評價
PR 是一個很特別的GitHub 機制,當然Gitlab 也有相同的機制,可是我這邊主要只會介紹使用GitHub 如何發PR 唷。 ... <看更多>
github pull request 在 與其它開發者的互動- 使用Pull Request(PR) - 為你自己學Git 的推薦與評價
最白話、最深入淺出的Git 教學,教您使用Git 指令及圖形介面工具,建立正確的使用觀念,並使用GitHub 與其它人一起共同協作. ... <看更多>