梅林

梅林:显式信息流问题的规范推理。在过去的几年中,发现程序中显式信息流导致的安全违规的静态和运行时分析工具激增。这种兴趣主要是由跨站点脚本和SQL注入等漏洞数量的增加引起的。事实上,这些常见于Web应用程序中的显式信息流漏洞现在超过了C和C++等类型不安全语言中常见的缓冲区溢出等漏洞。检查这些漏洞的工具需要规范才能运行。在大多数情况下,提供此类规范的任务被委托给用户。此外,这些工具的有效性仅与规范一样好。不幸的是,编写一个全面的规范带来了一个主要的挑战:规范的某些部分很容易被遗漏,从而导致漏掉漏洞;同样,不正确的规范也可能导致误报。本文提出了一种从程序代码中自动推断显式信息流规范的新方法Merlin。这些规范极大地减少了人工劳动,提高了结果的质量,同时使用了检查显式信息流导致的安全违规的工具。Merlin从表示程序中的过程间信息流的数据传播图开始,旨在自动推断信息流规范。Merlin利用概率约束对传播图中的信息流路径进行建模。一个简单的建模需要一个指数级的约束,在传播图中每个路径一个。对于可伸缩性,我们使用对所选三元组节点的约束来近似这些路径约束,从而得到立方数量的约束。我们利用McIver和Morgan提出的概率精化理论,将这种近似描述为概率抽象。我们使用因子图来解决由此产生的概率约束系统,因子图是一种用于执行概率推理的著名结构。我们将Merlin方法应用于10个大型业务关键型Web应用程序,并用CAT.NET这一最先进的静态分析工具对其进行了分析,从而实验性地验证了Merlin方法。我们发现总共有167个新的确认的规范,这导致在10个基准测试中总共有322个额外的漏洞。更精确的规范也会降低假阳性率:在我们的实验中,Merlin推断出的规范导致13个误报被删除;这10个程序的CAT.NET误报率降低了15%。在我们的实验中使用Merlin后,CAT.NET的最终假阳性率下降到1%以下。

此软件的关键字

这里的任何内容都将在支持canvas元素的浏览器上被替换