Ref: https://security.googleblog.com/2021/06/introducing-slsa-end-to-end-framework.html
今天要探討的是一個由 Google Blog 於上個月所推廣的軟體安全性框架,該框架名為 SLSA,全名則是 Supply Chain Levels for Software Artifacts,中文部分我不知道該怎麼翻譯才可以精準達到意思,所以建議就唸英文就好了。
該框架的目的是希望於整個軟體生產鏈中能夠進一步的去提升且確保所有產物的完整性(Integrity 這個詞該怎麼翻呢..)。
文章中用了一個很簡易的流程來清楚的解釋到底何謂 Software Supply Chain 以及整個流程中可能會有什麼問題。
Software Supply Chain 一個範例譬如
1. 開發者撰寫程式碼,並且提交到遠方的 SCM Repository
2. SCM Repo 因為程式碼改變,所以觸發相關的 CI/CD 流程
3. CI/CD 建置結束後則需要打包整個程式碼,產生最後的 Package.
4. 產生後的 Packet 則可以正式上場使用
文章認為上述的流程中有兩個不同類別的安全性問題,分別是
1. Source Integrity
2. Build Integrity.
Source Integrity 這邊主要是針對 Source Code 相關的問題,譬如
1. 開發者是否有意的故意塞入一些會不懷好意的程式碼到 SCM Repo 內。
範例: Linux Hypocrite commits, 之前美國某大學研究團隊基於研究嘗試上傳一些不太好的程式碼而影響的討論風波
2. SCM 的管理平台是否可能被惡意攻擊
範例: PHP 事件: 之前自架的 PHP Git Server 被攻擊者惡意攻擊並且塞入兩筆不懷好意的 Commit
而 Build Integrity 本身則是有更多不同的面向,譬如
1. SCM 觸發 CI/CD 過程是否有可能有問題
範例: Webmin 事件,攻擊者去修改團隊的建置系統去使用沒有被 SCM 所記錄的修改檔案。
2. CI/CD 建置系統本身被攻擊
範例: SolarWinds 事件,攻擊者攻破建置系統去安裝一些軟體來修改整的建置流程
3. CI/CD 建置過程中引用到錯誤的 Dependency
4. 攻擊者上傳一些惡意產物到應該只有 CI/CD 系統才可以存取的場所。
... 等
目前來說, SLSA 還處於非常早期階段,經由業界的共識來思考每個領域有什麼好的措施與指引來避免與偵測系統是否被攻破。其最終目標狀態是希望能夠根據環境自動產生出一套可整合到系統中的產物,並且最後可以給出 SLSA 憑證來給平台或是建置後的 Package。
對 SLSA 這個專案有興趣看看的請參考原始連結,內容不長但是頗有趣的
「git scm」的推薦目錄:
- 關於git scm 在 矽谷牛的耕田筆記 Facebook 的精選貼文
- 關於git scm 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
- 關於git scm 在 iThome Security Facebook 的最佳解答
- 關於git scm 在 git-scm.com - GitHub 的評價
- 關於git scm 在 Differences between Git-scm, msysGit & Git for Windows 的評價
- 關於git scm 在 What is VCS? (Git-SCM) • Git Basics #1 - YouTube 的評價
- 關於git scm 在 What is Git? (Git-SCM) • Git Basics #2 - YouTube 的評價
- 關於git scm 在 Git與GitHub介紹,軟體版本控制基本教學|ALPHA Camp Blog 的評價
- 關於git scm 在 git-scm.com from brunofbrito - Github Help 的評價
- 關於git scm 在 Beginning Git and GitHub: A Comprehensive Guide to Version ... 的評價
git scm 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
這篇文章要介紹的是 Jenkins Operator 這個有趣的應用程式,Operator 的概念先前有不少文章再探討其架構與意義,因此本篇文章會專注於 Jenkins Operator 這個應用程式能夠為 Jenkins 的環境與應用帶來什麼樣的變化。
首先本文開始前,要先準備三個東西
1. Kubernetes Cluster
2. Helm 安裝環境
3. 一個放有你 Jenkins pipeline 與 script 的 SCM(Source Code Management),通常都是 Git
接下來作者透過 Helm 安裝了 Jenkins Operator 該控制器到 Kubernetes 內並且準備了相關的 CRD 用來控制 Jenkins.
範例中的 CRD 主要會做兩件事情
1. 設定 Jenkins 本身,包含要安裝哪些 Plugin 等
2. SeedJobs: 可以將外部 SCM 內所描述的 Job 內容給直接設定到 Jenkins 內
當該 CRD 給套用到 Kubernetes 後,該 Jenkins Operator 就會幫忙初始化整個 Jenkins 以及相關的 Plugin。最後將 SeedJobs 內所描述的資訊給整合到 Jenkins 中來創建相關的 Job.
透過這整個 CRD 操作帶來的好處我認為有
1. 整個過程盡量減少手動操作,全部都依賴 Yaml 與 Pipeline 等程式碼的方式去維護
2. 與 Kubernetes 整合,對於熟悉 Kubernetes 的操作人員來說,學習過程不會太痛苦。
3. 把 Jenkins 變得稍微簡單一些,一些繁瑣過程讓 Jenkins Operator 去操作
我自己看完後,目前看到的壞處有
1. Jenkins 功能太多,生態系太複雜,我懷疑這種 Operaotr 只是一時的專案,沒有一直保持更新的話一定會有些功能終究還是要手動操作
2. 設定的內容我認為不如 Jenkins 生態系中的 Configuration as Code 這套 Plugin 來的專業與強大
3. Job 的設定部分我個人還是偏好使用 Jenkins Job Builder 這套基於 YAML 的解決方案來管理與定義全部
結論:
1. 我個人是當作一個新東西看看,但是不會有想要嘗試的慾望,因為覺得事情其實沒有變得簡單多少,甚至擔心引入一個半成品,導致多一個東西要維護..
https://medium.com/swlh/introduction-to-jenkins-operator-f4cb7ebc2e0b
git scm 在 iThome Security Facebook 的最佳解答
原本為了GitHub開發者可以控管大型檔版本的外掛程式Git LFS,研究人員發現,Git LFS出現了一個漏洞,駭客可以輸入ssh:// 網址來執行任何shell指令,取得管理權限。
【資訊產品漏洞】Git於運行'ssh://'URL之缺陷讓駭客可用遠端方式針對目標系統上執行任意命令(Execute Arbitrary Commands)
●概述:
Git近日提報了一個漏洞,駭客可利用特殊的”ssh://”網址針對目標用戶的系統執行任意shell命令,在執行代碼時將可提升為管理者權限,並在執行”clone”指令時觸發此漏洞。
●編註:
Git已修復了此漏洞,可至此處查看相關記事。
http://blog.recurity-labs.com/2017-08-10/scm-vulns
●受影響之版本
Linux(Any)
●解決辦法:
官方已發布修復漏洞,連結為
http://blog.recurity-labs.com/2017-08-10/scm-vulns
更多【資訊產品漏洞】請參考
https://www.twcert.org.tw/twcert/advistory
git scm 在 git-scm.com - GitHub 的推薦與評價
The git-scm.com website. Note that this repository is only for the website; issues with git itself should go to https://git-scm.com/community. ... <看更多>