Detecting Vulnerabilities in Encrypted Software Code while Ensuring Code Privacy
本文介绍了 CoCoA,这是一种将静态分析与可搜索对称加密相结合的新型工具,能够在保护代码隐私的前提下实现加密源代码中软件漏洞的检测,与无保密基准相比,其精度达到 93%,性能开销仅为 42.7%。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你拥有一份制作世界上最美妙蛋糕的秘方。你想聘请一位著名的美食评论家来品尝它,并告诉你是否存在任何缺陷(比如盐放多了,或者饼皮烤焦了)。然而,你非常恐惧,如果你把食谱书交给他们,他们可能会偷走它、复印它,或者将其卖给你的竞争对手。
通常情况下,你只有两个糟糕的选择:
- 把书给他们:他们能发现缺陷,但也可能偷走你的食谱。
- 把书锁在保险箱里:他们偷不走,但也无法阅读它来发现缺陷。
这篇论文介绍了一种名为COCOA的魔法解决方案,它解决了这一困境。它允许评论家找出你食谱中的缺陷,而无需 ever 看到食谱的实际文字。
以下是其工作原理,分解为简单的步骤:
1. 问题:“玻璃屋”困境
软件开发者为网站编写代码(即食谱)。在黑客发现之前,他们需要专家检查这些代码是否存在安全漏洞。但是,为了检查代码,专家通常需要查看原始文本。如果他们看到了,可能会窃取开发者的知识产权;如果没看到,就无法完成工作。
2. 解决方案:“加密地图”
作者创建了一个名为COCOA(机密代码分析)的系统。开发者不是将原始代码直接发送给专家,而是先进行一种特殊的转换。
将代码想象成不是故事,而是一张路线图。
- 原始代码:实际的句子和单词。
- 地图:一张图表,显示道路(数据)如何相互连接,以及交通信号灯(控制流)位于何处。
COCOA 将原始代码转换为这种“地图”,然后使用高科技锁(加密)打乱地图。
- 它将特定名称(如“用户输入”或“数据库”)替换为通用标签,如“道路 A"或“交通信号灯 B"。
- 它创建一个特殊的索引(类似于图书馆的卡片目录),该索引也被打乱了。
3. 魔法戏法:不阅读即可搜索
现在,开发者将这张被打乱、加密的地图发送给专家(分析器)。专家想要找到特定的危险,比如“桥梁坍塌”(安全漏洞)。
在正常世界中,专家必须阅读整张地图才能找到桥梁。但在 COCOA 中,专家使用开发者提供的魔法密钥。
- 开发者说:“我授权你查找‘桥梁坍塌’。”
- 专家使用此密钥查询被打乱的地图。
- 系统立即跳转到地图的相关部分,并指出:“是的,这里有一座桥梁坍塌”,而无需揭示桥梁由什么制成、由谁建造,或地图其余部分的样子。
专家仅得知存在缺陷及其位置。他们一无所获关于实际代码、业务逻辑或开发者的秘密。
4. 工作原理(“倒排索引”)
从技术上讲,该论文使用了一种称为可搜索对称加密(SSE)的方法。
- 想象一个图书馆,每本书都锁在保险箱里。
- 通常,你无法搜索书内的单词,因为它们被锁住了。
- COCOA 创建了一个特殊的“索引”,其中单词的位置是加密的。
- 当专家询问“单词‘危险’在哪里?”时,系统检查加密索引,并指向包含该危险的具体保险箱,而无需打开其他保险箱或揭示书的内容。
5. 结果:快速且准确
研究人员在真实的 PHP Web 应用程序(一种非常常见的网站代码类型)上测试了此工具(COCOA)。
- 准确性:它发现漏洞的能力与那些确实读取代码的标准工具一样好(准确率约为 93%)。
- 速度:它仅比标准工具稍慢。处理 4,000 行代码大约需要 209 毫秒。这就像在通常只需眨眼一瞬的过程中增加了一个微小的延迟。
- 隐私:代码完全保持隐藏。由于系统去除了不必要的注释和细节,“打乱”后的版本实际上在硬盘上占用的空间比原始代码更少。
6. 为何这很重要
这篇论文定义了一个新领域,称为机密代码分析。它证明你不必在安全性(保护你的代码)和质量(发现错误)之间做出选择。
类比总结:
- 旧方法:你将秘密食谱交给评论家。他们修正了盐量,但也记住了食谱并将其出售。
- COCOA 方法:你给评论家一份食谱的锁定、打乱的地图。他们使用特殊钥匙找到“盐放多了”的位置,并确切地告诉你它在哪里。他们从未看到过配料、厨师的名字或食谱的其他部分。
这使得公司能够在不担心被盗的情况下将安全检查外包给第三方,并允许开发者在确保代码对公众安全的同时保持其代码的私密性。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。