Dapr 釋出模糊測試報告|Dapr 完成模糊測試稽核

2023-07-04 09:01:29

Dapr 團隊最近在部落格上釋出了 Dapr 完成模糊測試稽核[1]的文章,該審計是 CNCF 通過模糊測試改善[2]開源雲原生專案安全狀況的計劃的一部分。該審計由 Ada Logics[3] 於 2023 年 5 月和 6 月進行的,Ada Logics 團隊為了改善 Daprs 安全狀況,並且由於建立了大量模糊器,發現的問題數量很少,一共開發了 39個 fuzzer,發現了3個問題,三個問題的數量非常少,這證明了 Dapr 專案編寫良好且維護良好的程式碼庫。這也表明了程式碼庫的成熟水平。 審計中的所有模糊器都是開源的,最初被新增到 CNCF 的模糊測試儲存庫[4]中,團隊已經開始將模糊器遷移到Dapr 倉庫中[5]來完善Dapr的測試。

該審計為 3 個 Dapr 專案新增了模糊器:Dapr 執行時 (github.com/dapr/dapr)、Dapr 工具包 (github.com/dapr/kit) 和 Components-contrib。Ada Logics通過將Dapr整合到Google的開源專案OSS-Fuzz[6] -中開始了審計,該專案大規模執行關鍵開源專案的模糊器。在設定初始整合後,Ada Logics 編寫了 39 個模糊器並將它們新增到 Daprs OSS-Fuzz 整合中。連續性是強大的模糊測試套件的重要組成部分;在連續執行模糊程式的幾個 CPU 年之後,發現了一些錯誤。Daprs OSS-Fuzz 整合可確保其模糊程式即使在稽核完成後也能執行,以繼續探索程式碼庫。

Ada Logics為許多複雜且特別公開的端點編寫了模糊器,其中一些包括:

  • Dapr 工具包加密包:金鑰解析和序列化。
  • Dapr Runtime HTTP/GRPC 端點。
  • 後設資料解碼在Components-Contrib中廣泛使用。
  • Apache Dubbo 序列化。
  • Dapr Sidecar注入器的請求處理
  • Raft紀錄檔處理。
  • 存取控制

Fuzzing 是一種通用技術,用於自動識別可靠性和安全問題。它通常被安全研究人員用來發現系統中的漏洞,該技術已成功應用於各種 CNCF 專案,如 Kubernetes、Envoy、Helm、Linkerd2-proxy 和 Fluent-bit。fuzzing 的一般方法是使用遺傳演演算法(genetic algorithm)與複雜的程式分析和軟體儀器技術相結合,以生成在目標軟體中實現高水平程式碼覆蓋的輸入。

image

最後 這裡我非常想分享一個案例:昨天我去 中國財產再保險集團 深度體驗了 Dapr 在中國的早期Dapr 案例, 我驚奇的發現 Dapr 在他們的環境中已經持續執行了3年多,系統一直很穩定,雖然一定程度上上可以體現出Dapr 的連續性非常好,但是這不是一個鼓勵的案例,還一直停留在 0.11.2版本,上個月dapr 已經發布了1.11版本[7]。 現在Dapr 有了更完善的測試,包括模糊測試,我們可以非常放心的對Dapr 進行版本升級。

image

你已經看到了這裡,肯定對Dapr 有興趣吧,下個週六 7.15 我們有個雲原生的社群活動[8]我會分享Dapr 的進一步資訊,歡迎報名參會。

圖片

相關連結: