Checkmarx發布開源靜態分析解決方案KICS,實現保護云原生應用安全!
Checkmarx近日重磅發布了開源靜態分析解決方案KICS (保持基礎架構即代碼安全),使開發人員能夠編寫更安全的基礎架構即代碼(IaC),并為保護傳統應用和云原生應用的專有代碼、開源組件及關鍵基礎架構安全提供了一個獨立平臺。免費下載地址:https://docs.kics.io/getting-started/ , 3月30日下午4-5點,Checkmarx將舉行KICS線上直播演示講座,誠邀您的參與!
+ 我們為什么開發KICS?
云原生的出現致使現代應用的設計、開發和部署方式的觀念徹底發生改變。最終,單體應用被分解成小型、獨立的微服務,且不受所處的環境約束。Orchestration 將它們粘合在一起,使應用程序變得更可擴展、更可靠、更靈活。
就此而論,Orchestration不僅涉及微服務通信或組成的方式,還涉及基礎架構需求或特定配置。雖然在不久之前,基礎架構和配置主要通過人工提供,但隨著DevOps理念的出現,自動化現在已經普及并在代碼中定義。因此,基礎架構即代碼(IaC)時代已經來臨。
IaC通過工具和技術建立了一種方法,用于通過代碼進行基礎架構配置和提供服務。基礎架構即代碼的優點包括:自動化、冪等性(例如,復制用于測試和生產的基礎架構)、一致性、自文檔化、降低成本等。然而,與傳統的軟件開發類似,基礎架構即代碼也容易出現錯誤配置或安全漏洞等問題,這些問題不僅可能危及某一特定的應用程序,還可能在更大范圍內危及整個業務及其底層基礎架構。
引入KICS(保持基礎架構即代碼安全):這是一個由Checkmarx(靜態代碼分析領域的市場領導者)提供的開源獨立引擎,用于在本地云應用的環境中檢測源自基礎架構即代碼的漏洞、合規問題或錯誤配置。截至發布之日,KICS已提供1000多條安全規則(用Cx語言查詢),支持Terraform、Kubernetes、Docker、AWS CloudFormation和Ansible,跨越多個云提供商(如AWS、谷歌云或微軟Azure)。
+ 我們如何開發KICS?
起初,KICS僅有50個查詢,沉寂在一個私有存儲庫中,并作為一個獨立的引擎存在。當時,引擎只能讀取少量的IaC文件類型,將它們轉換為內部展現形式,并以JSON格式生成結果。
為了讓KICS成為一個產品,Checkmarx制定了一個雄心勃勃的目標,即在不到三個月的時間內達到1000個REGO/OPA查詢,并在不到兩個月的時間內使其完全開源化。
KICS規則—使用REGO創建超1000條規則
兩周內,Checkmarx招募了一批學生人才加入團隊,并專注于創建更多使用REGO開發的規則。
REGO/OPA是一種用于查詢結構化文檔的高級說明性語言。因此,我們選擇它作為獲取IaC掃描規則的方法。學生們很快學會了使用REGO進行開發,并在不到一周的培訓內,按照Checkmarx應用安全研究團隊提供的建議漏洞列表和描述編寫出規則和IaC樣本(每項查詢一個真正樣本和一個真負樣本)。
- 創建1000條規則的目標是一個重大挑戰。我們調整了我們的流程與設計,并創建了可重用的存儲庫,以避免在我們的REGO代碼中復制。
有意思的是,完成這些工作后,難題就變成了代碼合并請求批準,而不是開發本身。到最后的截止時間時,團隊不僅達到了1000個查詢的里程碑,并超過了這個里程碑(大約1200個)。
KICS核心——開源查詢
核心團隊最初的重點在使KICS完全開源化。
經過本項目開源軟件顧問Lior Kaplan的密切監督,并根據他提出的寶貴建議,Checkmarx打破了對于私有存儲庫的依賴性,重寫了更合適的commit歷史記錄,并根據Apache 2.0許可將其移到了公有GitHub存儲庫
https://github.com/Checkmarx/kics 中。
在這個過程期間,Checkmarx利用GitHub Actions搭建了CI流水線,將所有KICS的基礎架構保持在GitHub環境中。很快,按照代碼合并請求在流水線中運行一系列的驗證。它解決了幾個質量方面問題:
- 代碼測試覆蓋率(使用Codecov)
- 代碼質量(使用SonarCloud和Codacy)
- 代碼安全性(通過KICS GitHub action使用Checkmarx提供的CxSAST和我們自己的KICS)
所有這些驗證都出奇地快,只花費大約一分鐘,這是在每次成功的“代碼合并請求”之后讓KICS準備發布的時間。
只要質量等級在每個CI步驟中通過,KICS就可以隨時發布。遵循開源的最佳實踐,我們產生了:
- 一次夜間發布,使用相應commit的哈希值來命名。
- 每兩周發布一次官方版本,使用SemVer標準。
每次KICS發布包括裸源、Windows、Linux和MacOS二進制文件,以及一個docker鏡像,詳見DockerHub 。
KICS文檔——共享財富
KICS擁有一個強大的核心功能,其能夠分析多種類型的IaC文件,并且有數千條安全規則,持續每兩周發布一次。
為此,Checkmarx建造了一個網站,并將其存儲在AWS中。但這只是漂亮的登錄頁。文檔站點是根據markdown文件通過MkDocs動態生成的,詳見GitHub頁面。
Checkmarx試圖使KICS文檔盡可能清晰易懂,包含本項目的所有內容,包括路線圖,以及使用或貢獻方法說明。此外,我們還使用Gitter建立了一個KICS社區。一些人開始對外評論,提出問題,并立即提供反饋。
KICS管理——敏捷、規范化
團隊遵循看板管理法以敏捷的方式開展工作。以這種方式管理工作變得很容易,因為可以輕而易舉地利用GitHub的集成管理功能。
Checkmarx將工作劃分為小項目并為此劃定了目標,以便更好地組織要處理的問題和請求。每個開放的問題運用標簽,以便于理解它們的本質:漏洞、特性、安全性、查詢、增強等等。
為了指導和更好地管理KICS用戶的貢獻,Checkmarx為漏洞、特性、新查詢和代碼合并請求定義了模板。有了模板,我們能獲取重要的信息,并最終標準化描述工作的質量。
總體而言,KICS是一個由架構師、開發人員、DevOps和經理組成的多學科團隊。目前已有一些關注者給予 KICS更多的貢獻、反饋等。Checkmarx期待聽到更多使用者的聲音!
在此,誠邀您使用Checkmarx的產品!免費下載KICS并向我們提供反饋意見,前30位最詳細的反饋意見提供者將獲得1000 元京東代金券!
此外,3月30日北京時間下午4-5點,Checkmarx將在線上直播演示KICS,并在線進行答疑!我們在此誠邀您的參與!
【責任編輯:張燕妮 TEL:(010)68476606】