天天看點

雲效安全那些事兒—通路控制與資料安全

已經聊了三期和安全相關的話題,涉及安全審計和洞察、源碼安全檢測、資料備份和恢複,今天我們來聊聊通路控制與資料可信。

網際網路這個虛拟的世界,無數的人們在其中互動溝通,創造着海量的資料和資訊。在這個世界中,自然也存在居心叵測的惡意使用者,希望通過資訊攫取利益。是以,服務提供者通常會采取一系列通路控制措施,對不受信任的通路者執行隔離。

那麼什麼是通路控制?

通路控制,就是依據授權,對提出的資源通路請求進行控制,防止未授權的通路,避免未經授權的使用、洩露、銷毀和篡改。

防控住通路權限之後,企業還需要關心的是資料本身的安全性,包括資料送出的可信性、送出的合規性和品質,避免風險入庫,影響線上安全。

連結針對資料可信,

雲效 Codeup

提供了代碼 GPG 簽名,拒絕未簽名的送出;支援代碼屬主驗證,限制送出記錄屬主。

在品質管控上,雲效 Codeup 精細化讀寫權限管控,支援代碼送出卡點機制,保障送出品質。

接下來我們一起看看雲效 Codeup 的這些安全防護功能如何使用。

通路控制 —— IP白名單

通路控制首先是要讓危險進不來,Codeup 支援對倉庫的通路 IP 進行限制,包括頁面通路限制和部署密鑰通路限制。

  • 頁面通路限制:包括 Codeup 的全部頁面通路、部署密鑰通路、代碼克隆、下載下傳、送出、合并等行為一緻受限;
  • 部署密鑰通路:完備考慮了部署密鑰由于人員管理不善被盜用的風險場景,禁止白名單之外的 IP 使用部署密鑰通路企業代碼庫,加強代碼庫安全;
雲效安全那些事兒—通路控制與資料安全

通路控制 —— 代碼不落盤

現代企業常常需要雇傭外包團隊支援開發工作,但是由于外包流動性強,規範性相對較弱,企業通常希望能夠限制部分人員對代碼的下載下傳權限,但是不下載下傳代碼怎麼進行開發工作呢?雲效 Codeup 為這類場景提供了解決方案。

代碼不落盤即資料不落本地磁盤,保證代碼不被意外或惡意帶走洩露,支援設定哪些角色允許下載下傳代碼到本地,針對無法下載下傳代碼的開發人員允許其使用雲端 WebIDE 進行開發工作。

雲效安全那些事兒—通路控制與資料安全

資料可信 —— GPG 簽名

GPG 簽名可以杜絕送出僞造事件。Git 雖然是密碼級安全的,但并不是萬無一失的。當使用者密碼洩露,或者有人想惡意僞造他人的送出,就有可能冒名信任的人,向你的代碼倉庫送出惡意代碼。你可以使用GPG 在本地簽署你的送出記錄(Commit)或者标簽(Tag), Codeup 将對這些簽名做驗證,來確定送出記錄或者标簽來自受信任的來源。 

雲效安全那些事兒—通路控制與資料安全

資料可信 —— 送出屬主檢查

在開始使用 git 進行版本管理之前,我們都知道需要先進行使用者配置。

git config --global user.name "你的名字"
git config --global user.email "你的郵箱"

也許你每天都在用,但是清楚送出記錄的作者(Author)與送出者(Committer)的差別嗎?

Git 本身允許重寫曆史,或代表其他人送出代碼。通常,我們在使用 git log 檢視曆史送出記錄時,所展示的便是作者 Author。我們常用 Author 來作為代碼統計的歸屬依據。從這個角度上來說,作者 Author 與代碼貢獻者直接挂鈎。是以,在統計代碼貢獻等場景下需要規範送出代碼屬主和服務端目前登入使用者的對應關系。

在執行 git commit 時,可以通過 --author 來指定這個送出記錄的貢獻者是誰。在開源社群也有這樣的例子,雖然我并沒有使用你的代碼,但我使用了你的創意,仍然以你作為作者,以示對原創的尊重。

是以簡單地了解 Author 是第一作者,Committer 是生成 Commit 的人。Codeup 支援針對 Author 和 Committer 對目前登入使用者已驗證的雲效主郵箱做檢查,若郵箱資訊無法比對,可以警告或禁止其推送,以保證代碼貢獻屬主的準确性,避免由于無法比對使用者導緻的貢獻量計算失真。

雲效安全那些事兒—通路控制與資料安全

資料安全 —— 送出權限限制

對企業來說,送出到遠端庫通常是一個比較嚴肅的過程,為了規範送出格式和限制權限,Codeup 支援了企業和倉庫級别的送出規則設定。

首先在送出推送規則上,支援:

  • 送出注釋檢查:Commit Message 必須按照規定的正則格式描述,比對時才允許推送;
  • 送出郵箱檢查:送出人(Committer)的郵箱資訊需要比對正規表達式才允許推送;
  • 禁止強制推送;
  • 代碼屬主檢查:基于送出中的作者和送出者郵箱和雲效側使用者綁定主郵箱是否比對做校驗,可以設定警告和禁止推送兩個安全級别;
雲效安全那些事兒—通路控制與資料安全

另外,在送出權限控制上,通過保護分支設定支援:

  • 推送規則:可選擇允許哪類角色直接推送代碼,可控制不允許使用者直接對保護分支進行送出,而必須通過合并請求進行自動化測試和人工稽核後合入送出,保證合入重要分支的内容都是可信安全的;
  • 合并規則:可設定哪類角色有權限合并代碼;
雲效安全那些事兒—通路控制與資料安全

在資料安全最嚴苛的場景下,如果要求每次送出都要經過自動化檢查和人工評審,可以設定不允許任何人直接送出代碼,所有送出都必須通過合并請求評審後合入。

但這種情況可能會産生非常多的臨時開發分支,不太容易管理,别擔心,雲效 Codeup 對基于主幹的研發模式有完備的支援,基于創新的 Agit-Flow (阿裡巴巴集中式 Git 工作流),不用建立分支,讓建立代碼評審就像執行 git push 指令一樣的簡單。開發者不用切換工具,将原來需要幾分鐘才能完成的代碼評審建立過程,縮短到幾秒鐘,是不是很酷?

雲效團隊研發的 Agit-Flow 是一套開放的協定,目前已被 Git 官方社群合入,感興趣的話立即去試試吧:

http://t.tb.cn/36VCKdTVaMGVfKFMLFcyuo

更多能力

除了以上豐富的安全特性外,還有更多實用的安全能力等你發現,例如:

  • 支援釘釘內建統一的成員權限安全管理,例如釘釘組織成員同步、釘釘組織成員離職後雲效側權限的自動清理等;
  • 企業級代碼加密即将釋出,保證存儲層代碼資料高度加密,在未授權密鑰的情況下,存儲内容任何人包括雲效服務提供方也無法破譯,加強使用者資料存儲安全;
點選了解更多雲效