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

