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免安裝」的推薦目錄:
- 關於git免安裝 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於git免安裝 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於git免安裝 在 紀老師程式教學網 Facebook 的最佳解答
- 關於git免安裝 在 第02 天:在Windows 平台必裝的三套Git 工具 - GitHub 的評價
- 關於git免安裝 在 Git 版本控制系統- 環境安裝與基本指令 - Roya's Blog 的評價
- 關於git免安裝 在 Git與GitHub介紹,軟體版本控制基本教學|ALPHA Camp Blog 的評價
- 關於git免安裝 在 在Windows 10 安裝Git 串連Sourcetree直到我能push 上GitHub ... 的評價
- 關於git免安裝 在 Git 教學和GitHub 設定指引 的評價
- 關於git免安裝 在 Git 安裝在Windows 作業系統|為你自己學Git-教學|高見龍 的評價
- 關於git免安裝 在 使用git指令下載github任何的程式碼 - 愛耍廢 的評價
- 關於git免安裝 在 Git 筆記- Git初始設定& Github入門 的評價
- 關於git免安裝 在 Git - Git 與Github 版本控制超簡易教學 的評價
- 關於git免安裝 在 授权Git 免密访问Github 的評價
- 關於git免安裝 在 Git 與Github 版本控制基本指令與操作入門教學 - TechBridge ... 的評價
git免安裝 在 矽谷牛的耕田筆記 Facebook 的最佳解答
今天這篇文章探討的是 Git 的 pre-commit hook 系統,透過這種 pre-commit 的系統,能夠幫助開發者與本地開發時,先行進行一些處理,避免什麼問題都要丟到遠方的 CI/CD pipeline 去檢查。畢竟程式碼更新,觸發 CI/CD 流程,等待結果告知,這部分有時候都要花上數分鐘,往往就是檢查到一個格式錯誤,譬如拼字錯誤,多一個空白,格式錯誤等。
如果今天可以將一些常用的檢查給複製一份到本地端去執行,這樣開發者可以更快地找出錯誤,同時也可以節省很多等待的時間,因此本篇文章就要針對 git pre-commit hook 來介紹。
本篇文章要介紹的並不是直接使用 git 的 pre-commit hook,而是要使用 python 的套件 git pre-commit hook,其龐大的生態系可以幫助使用者輕鬆的使用常見的 yaml 格式來管理 git 本身的 pre-commit hook。舉例來說,可以於專案底下放置一個有下列內容的檔案
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.2.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
透過 python 的 pre-commit hook 系統,會將其中描述的四個功能 (trailing-whitespace....check-added-large-files)實際的程式碼給轉換並且安裝到 .git/hooks/pre-commit 底下。
同時透過這種框架,開發者也可以自行開發屬於自己的 pre-commit hook並整合到該 yaml 檔案之中。整個使用的方式非常簡單
1. 透過 python 的方式安裝 git pre-commit
2. 準備一個名為 .pre-commit-config.yaml 的檔案,並且描述你希望使用的 hook
3. 透過 pre-commit install 的方式將該 yaml 的內容轉換為真正 git 所使用的內容
4. 可以開始透過 git commit 來幫助你進行本地檢查囉
如果對於提升本地開發效率有興趣的人,不要錯過研究看看 git pre-commit 這種機制,不論是直接撰寫 git 或是透過這種 python 的 git pre-commit 框架,只要能夠幫忙解決相關問題,提升效率就會是一個值得研究的方法。
更多的 hook 參考以及該框架介紹,請點選下列全文來觀賞囉
https://towardsdatascience.com/pre-commit-hooks-you-must-know-ff247f5feb7e
git免安裝 在 紀老師程式教學網 Facebook 的最佳解答
[免費教學] 千萬次播放的 Python 初學者影音課程,四個半小時馬拉松連播!
(含簡體中文字幕)
YouTube 網址: https://youtu.be/rfscVS0vtbw
------------
大家 2020 年新年快樂! :-D
今天要介紹給大家的,是我在 YouTube 上找到的一部四個半小時的影片:「學習 Python - 初學者全教程」。它一口氣把 Python 的基礎語法,在一支影片裡全部講出來!雖然沒有涵蓋到 Python 所有語法,但 80% 的情況也夠用了!希望大家會喜歡!
影片雖然是英文發音,但是已經有熱心人士,翻譯出十種語言的字幕了。其中也包含「簡體中文」。如果您對於直接聽英文沒有信心的話,可以把簡體中文字幕打開,應該能幫助您更好了解影片的內容。
附上該影片內容的時軸索引。如果您有特別想聽的內容,可以直接跳到特定時間點觀看:
0:00 簡介
1:45 環境安裝(IDLE & PyCharm)
6:40 設定&您的第一個程式
10:23 繪製幾何圖形
15:06 變數與資料型態
27:03 如何在 Python 內使用文字
38:18 如何在 Python 內使用數字
48:26 讀取使用者的輸入
52:37 範例:一個簡單的計算機
58:27 範例:填字遊戲
1:03:10 資料結構:串列(Lists)
1:10:44 串列相關函數
1:18:57 資料結構:元組(Tuples)
1:24:15 函數
1:34:11 函數傳回值
1:40:06 分支(if 指令)
1:54:07 分支與比較運算子
2:00:37 範例:改良簡單的計算機
2:07:17 資料結構:字典(Dictionaries)
2:14:13 迴圈(while 指令)
2:20:21 範例:猜字遊戲
2:32:44 迴圈(for 指令)
2:41:20 範例:製作一個指數函數
2:47:13 二維串列與巢狀迴圈
2:52:41 範例:一個簡單的翻譯器
3:00:18 註解(Comments)
3:04:17 例外處理(Try/Except 指令)
3:12:41 讀取檔案內容
3:21:26 寫資料到一個檔案裡
3:28:13 模組製作與安裝
3:43:56 類別與物件
3:57:37 範例:建立一個選擇題測驗
4:08:28 物件相關函數
4:12:37 物件導向的「繼承」
4:20:43 Python 直譯器
如果您聽完上述影片後覺得不過癮,或者想聽更完整的 Python 程式設計內容,或許可以考慮購買我在 YOTTA 這個平台製作的 Python 課程。網址是:
https://bit.ly/2k0zwCy
裡面包含:
1. 32+ 小時的精采內容!
除了 Python 語法外,還包含「計算機概論」、「Git」、「LINE 聊天機器人」等主題。
2. 26 個與課程內容緊密搭配的課後作業!
讓您學完後馬上練習,我會一題一題仔細地親自批改,徹底變身成為懂程式設計的珍貴人才!
課程目前已經全部製作完畢!600+ 位同學一致五星評價。購買後馬上可以享有完整 32 小時課程內容。
希望各位能夠喜歡今天的分享!在新的一年裡,祝福各位每天工作都順順利利、收獲滿滿!
PS: 本文歡迎轉發、按讚、留言鼓勵我一下!您的隻字片語,都是讓我繼續提供好物的動力喔!
--------
看更多的紀老師,學更多的程式語言:
● YOTTA Python 課程購買: https://bit.ly/2k0zwCy
● Facebook 粉絲頁: https://goo.gl/N1z9JB
● YouTube 頻道: https://goo.gl/pQsdCt
● Instagram 日常生活: https://goo.gl/nBHzXC
● Twitter 碎碎念: https://is.gd/xFZeub
如果您覺得這個粉絲頁不錯,請到「評論區」給我一個好評喔!
https://www.facebook.com/pg/teacherchi/reviews/
git免安裝 在 Git 版本控制系統- 環境安裝與基本指令 - Roya's Blog 的推薦與評價
安裝Git 至Windows 環境下. 由於我本身是Windows 的環境,故以下教學都是針對此環境進行。 官方連結:Git. Git ... ... <看更多>
git免安裝 在 Git與GitHub介紹,軟體版本控制基本教學|ALPHA Camp Blog 的推薦與評價
Git 和GitHub 是什麼?軟體開發常聽到的這兩個名詞有什麼關係?這篇Git和GitHub教學,將介紹工程師必備技能「版本控制系統」Git,還有以Git 為核心 ... ... <看更多>
git免安裝 在 第02 天:在Windows 平台必裝的三套Git 工具 - GitHub 的推薦與評價
要開始使用Git 版本控管,首先要安裝適當的Git 工具,這個系列的文章主要還是以Windows 平台為主,這篇文章將會介紹三套我們最常用的Git 版控工具,並介紹這幾套工具之 ... ... <看更多>