你需要了解的5個開源安全項目
云原生最活躍的細分領域之一,當數各類與安全相關的項目。與以往一樣,這些新型安全項目主要解決安全領域的某些特定難題;換言之,我們恐怕永遠也找不到能夠百試百靈、一勞永逸的安全工具。
在這里,我們將探索幫助團隊順利實施DevSecOps方法的五大開源工具。在它們的指引下,IT部門將把安全視為一項需要端到端加以集成的共同責任,由此突破以往“馬后炮”式的事后補救思維。隨著這些工具的成熟,各工具往往會全面集成至商業Kubernetes平臺當中,包括Red Hat OpenShift。但就目前來看,這些項目暫時只能作為安全創新的良好窗口,為各位OpenShift用戶提供有益的補充作用。
1. Clair
漏洞掃描是DevSecOps自動化CI/CD(持續集成/持續部署)工作流中的重要組成部分。這類掃描可以在整個工作流的多個位置進行——一旦將軟件部署到生產環境當中,我們就應該根據通用漏洞披露數據庫(CVE)上的全新威脅定義以及所部署鏡像中的潛在變化,執行相應的安全掃描。
Clair是一個開源項目,用于對應用程序容器內的安全漏洞進行靜態分析。Clair在本質上屬于一個API驅動型分析引擎,能夠逐層檢查容器中是否存在已知的安全漏洞。使用Clair,大家可以針對容器漏洞構建起持續監控服務。
對于需要經常下載容器鏡像的組織,這類服務就顯得尤為重要。但即使是采用內部源代碼構建容器的情況,隨著時間推移、特別是新的安全漏洞被不斷發展,這些漏洞同樣可能快速蔓延,因此定期掃描應當成為企業的最佳安全實踐。
2. Sigstore
對軟件供應鏈的正確保護,當然不可能只靠在固定時間點上對DevSecOps CI/CD管道進行部署掃描。在包括谷歌、Linux基金會、Red Hat以及普渡大學在內的各合作伙伴的支持和幫助下,sigstore結合開發者、軟件維護人員、軟件包管理人員以及安全專家的實際需求整理出一套高質量工具集合。它能夠處理數字簽名、驗證并記錄數據以供透明審計,從而更安全地分發并使用各類簽名軟件。Sigstore的目標是為每位用戶提供免費且透明的監管鏈跟蹤服務。目前sigstore服務作為一項非營利性的公益服務運行,持續為各方提供軟件簽名支持。
Cosgin于2021年7月發布了其1.0版本,可以對存儲在開放容器倡議(OCI)注冊表內的工件進行簽名和驗證。其中還包括用于存儲及發現簽名的基礎規范。
Fulcio則屬于代碼簽名證書的根證書頒發機構(CA),會根據Open ID Connect(OIDC)郵件地址進行證書頒發。Fulcio所頒發的工件簽名屬于短期證書,這樣用戶既可以輕松完成簽名、又不必擔心私鑰保護工作(可以在私鑰被竊取時隨時進行撤銷)。
Rekor提供不可變、防篡改的透明分類賬與時間戳服務,而且會在軟件供應鏈中生成元數據。軟件維護人員及各類構建系統可以將簽名的元數據記錄到不可變的記錄當中,以供其他各方查詢所述元數據、據此對目標對象生命周期的信任與不可否認性做出明確判定。
3. KubeLinter
KubeLinter的核心同樣在于漏洞掃描。傳統的漏洞掃描,在本質上可以理解成一種單元測試,其中各容器、庫等都需要經過單獨的測試。雖然這種方法本身頗具價值,但我們同樣有必要對較為復雜的集成對象執行整體掃描。
KubeLinter會結合各種最佳實踐對配置進行檢查,重點關注生產準備情況與安全性水平。KuberLinter會運行合理的默認檢查,并整理出關于Kubernetes YAML文件及Helm chart的實用信息。利用這些素材,團隊就能快速檢查安全配置錯誤并實施DevSecOps最佳實踐。KuberLinter關注的常見配置包括以非root用戶身份運行容器、強制執行最低權限以及僅在secret中存儲敏感信息等。
因此,KubeLinter不僅能夠掃描容器或庫中的漏洞,同時也能找出軟件配置及使用方式中的安全軟肋。
4. 開放策略代理與GateKeeper
過去幾年以來,策略管理成為Kubernetes安全領域中的一大關注焦點。開放策略代理(OPA)提供一種新型策略語言Rego,能夠將基礎設施堆棧及API中的各個層抽象出來。總結來講,OPA意在簡化安全策略,進而消除因復雜性而引發的安全漏洞。
OPA GateKeeper則是一種將OPA集成至Kubernetes當中的原生方式。它使用由Kubernetes定制化資源定義(CRD)構建的OPA約束框架進行策略的描述與實施。在3.0版本中,GateKeeper與OPA約束框架相集成,能夠強制執行基于Kubernetes CRD的策略,并允許用戶可靠地共享以聲明方式配置完成的各項策略。
如此一來,我們就能為Rego策略創建策略模板、將策略創建為CRD形式并在策略CRD上存儲審計結果。順帶一提,OPA GateKeeper屬于谷歌、微軟、Red Hat以及Styra共同參與的合作項目。
其下還包含多個子項目,例如用于策略共享的Rego Playground、用于策略創建的VS Code,以及用于最終控制的CLI和REPL等。
5. Falco
Falco最初由Sysdig于2016年開發并推出,屬于一套Kubernetes運行時威脅檢測引擎。Falco當中附帶一組默認規則,可用于檢查內核是否存在意外行為。例如,它可能會觸發警報以響應命名空間的變更、權限提升或者意外網絡連接。
Kubernetes Audit Events現在也被添加至Falco支持的事件源列表當中。如此一來,只要Kubernetes集群在配置中啟用審計日志,它就能將審計日志以事件的形式發送至Falco。開發人員可以編寫靈活的Falco規則以讀取事件內容,并檢測出一切可能的惡意主機/容器行為、活動或其他明顯的異常狀況。這些警報可被集成至事件響應工作流內,在顯著縮短響應時間的同時配合現有流程管理一切。
時至今日,DevSecOps與Kubernetes安全領域已經存在大量開源方案可供選擇。本文受篇幅所限,只向大家介紹了其中一部分相對較新、值得關注的內容。除此之外,還有多種其他掃描工具與不同成熟度的secret管理軟件,再加上經典但仍然意義重大的經典網絡與其他安全保護技術。畢竟面對復雜的威脅形勢,我們只能憑借同等復雜的安全軍備加以對抗。