Pentest-Report gRPC 09.-10.2019
Cure53, Dr.-Ing. M. Heiderich, M. Wege, MSc. D. Weißer, J. Larsson, BSc. J. Hector, MSc. N. Krein, Dipl.-Ing. A. Inführ
介绍
“gRPC是一个现代的开源高性能RPC框架,可以在任何环境中运行。它可以有效地连接数据中心内和跨数据中心的服务,并支持可插拔的负载平衡、跟踪、健康检查和身份验证。它也适用于分布式计算的最后一英里,将设备、移动应用程序和浏览器连接到后端服务。” - https://grpc.io/about/
本报告记录了针对gRPC软件的安全评估的结果。该项目由Cure53在2019年秋季实施,具体包括渗透测试和源代码审计。主要针对由谷歌维护的v1.2.4中的C++实现,测试由CNCF慷慨赞助。
至于资源,来自Cure53的7名高级测试人员负责完成这个项目。在CNCF的委托下,Cure53团队进行了评估,他们的预算是18人/天,在2019年9月下旬到10月上旬到中旬期间,所有人都花费在了范围和文件上。重点放在与HTTP2堆栈、gRPC压缩特性和缓冲机制相关的方面。
Cure53团队遵循白盒方法,这是CNCF项目的一种典型方法,它表示对代码库的访问,代码库实际上是开放源码的。此外,最初由Cure53创建的GCP环境后来被谷歌提供的两个附加环境所取代,这与在生产环境中可以找到的环境非常接近。Cure53还听取了谷歌关于上述审计的主要重点领域的简报。
为了最好地处理三个主要领域,准备了三个工作包(Work Package,WP)。WP1特别关注HTTP2协议栈,而WP2执行的测试需要研究加密和身份验证机制以及部署。最后,在WP3中Cure53磨练了压缩和缓冲功能。也采取了在CNCF资助的项目中很典型的双管其下策略,这意味着工作被划分为专门的渗透测试和代码审计阶段。本文件的覆盖(Coverage)部分将进一步阐述具体的任务。
项目按计划开始,进展很快。在评估过程中,Cure53通过共同使用的Slack渠道与谷歌团队进行交流,实现了实时交流。为了提高时间效率,将发现结果实时报告给gRPC团队,以便相关各方可以讨论修复问题。在代码库中发现的三个问题中,有一个被归类为安全漏洞,风险级别设置为“中等”。其余的缺陷被认为只是一般的弱点,没有多少开发潜力。这个结果非常令人印象深刻,特别是考虑到全面和集中的渗透测试、模糊和代码审计方法。因此,这个Cure53评估指向一个相当积极的结果,以及gRPC的代码成熟度。
现在,报告将进一步阐明用于评估的范围,然后详细说明测试方法和测试覆盖范围。然后按时间顺序讨论所有发现的问题,并提供足够的技术深度和细节。最后,报告将以结论结束,Cure53小组详细阐述了评估期间收集的印象。关于所测试的gRPC软件的安全性的广泛和更详细的建议接踵而至。
下载
这里下载gRPC安全审计结果(pdf):
https://github.com/grpc/grpc/blob/master/doc/grpc_security_audit.pdf