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为许多复杂且特别公开的端点编写了模糊器,其中一些包括:
Fuzzing 是一种通用技术,用于自动识别可靠性和安全问题。它通常被安全研究人员用来发现系统中的漏洞,该技术已成功应用于各种 CNCF 项目,如 Kubernetes、Envoy、Helm、Linkerd2-proxy 和 Fluent-bit。fuzzing 的一般方法是使用遗传算法(genetic algorithm)与复杂的程序分析和软件仪器技术相结合,以生成在目标软件中实现高水平代码覆盖的输入。
最后 这里我非常想分享一个案例:昨天我去 中国财产再保险集团 深度体验了 Dapr 在中国的早期Dapr 案例, 我惊奇的发现 Dapr 在他们的环境中已经持续运行了3年多,系统一直很稳定,虽然一定程度上上可以体现出Dapr 的连续性非常好,但是这不是一个鼓励的案例,还一直停留在 0.11.2版本,上个月dapr 已经发布了1.11版本[7]。 现在Dapr 有了更完善的测试,包括模糊测试,我们可以非常放心的对Dapr 进行版本升级。
你已经看到了这里,肯定对Dapr 有兴趣吧,下个周六 7.15 我们有个云原生的社区活动[8]我会分享Dapr 的进一步信息,欢迎报名参会。
相关链接: