论文学习:Seeing is Not Believing:Camouflage Attacks on Image Scaling Algorithms
论文题目:Seeing is Not Believing:Camouflage Attacks on Image Scaling Algorithms
来源:28th USENIX Security Symposium 2019
链接:https://www.usenix.org/conference/usenixsecurity19/presentation/xiao
主要内容:
作者发现了一种在图像处理过程中潜藏的安全风险——图像维度变换攻击。攻击者可以通过构造攻击图片,致使输入图像在经过尺寸维度变化后发生明显的内容语义改变,造成人与机器的认知差异,从而达到欺骗、逃逸检测的攻击效果。与针对深度学习模型的对抗样本不同,该攻击方法不局限于特定模型,因为其是针对基于深度学习的计算机视觉应用的必要功能:图像伸缩函数,这一步是位于深度学习模型进行训练/预测之前的,因此该攻击影响范围更大。
为验证攻击方法的有效性,作者对基于Caffe、Tensorflow、Torch等流行深度框架搭建的多个AI视觉应用成功实施了欺骗攻击。此外,作者还考察了该风险对商业视觉服务的影响。实验结果证明,即使是黑盒系统,仍然能够通过测试策略获取被攻击对象的算法和相关参数,并发动图像维度变换攻击。经测试,在国内主流云AI服务和微软Azure等国际厂商提供的机器视觉服务中,均发现了类似风险。此外作者还通过实验发现有些主流浏览器,比如Firefox、Microsoft Edge(Old)也存在该漏洞,而Chrome并没有这问题。
攻击流程:
创新点:
①本文揭示了计算机视觉应用中图像缩放过程中存在的安全隐患。我们对目前流行的深度学习框架中常用的图像缩放算法进行了验证和验证,结果表明,基于DL框架的图像应用几乎都存在安全风险。
②本文将缩放攻击形式化为一个约束优化问题,并给出了相应的实现方法,实现了伪装图像的自动高效生成。
③此外,作者证明了所提出的攻击对云视觉服务仍然有效,即使这些云服务的图像缩放算法的实现细节和参数对用户是隐藏的(但是可以通过相关测试获取这些云服务厂商所采用的图像缩放算法的相关参数)。
④为了消除伸缩攻击带来的威胁,作者从攻击预防和检测两个方面提出了几种潜在的防御策略,
可能的攻击应用:
①数据中毒:通过向公开数据集(如ImageNet)中注入经过缩放攻击篡改过后的图像,比如放入一张看上去是羊的图片,并且标签也是羊,但通过缩放后实际是狼,通过这样让数据中毒攻击更加隐蔽,使得数据集使用者无法发现这种数据污染。
②逃避内容审查。内容审查是最广泛使用的计算机视觉应用程序之一。许多供应商提供内容过滤服务,以防止攻击性内容。攻击者可能会利用缩放攻击来避开这些内容,传播不适当的图片,这可能会在线社区引发严重问题。例如,假设攻击者想在iPhone XS上向用户发布非法药物广告。攻击者可以使用缩放攻击来创建一种伪装效果,使iPhone XS浏览器上的缩放结果是预期的药物图像,而原始大小的图像包含良性内容。
③利用显示器之间的不一致进行欺诈。攻击者可以使用缩放攻击创建具有欺骗性的数字合同。攻击者可以创建一个包含扫描合同的图像文档,但当缩放到不同的比例时呈现不同的内容。然后,攻击者可以让双方共享同一文档。如果它们使用不同的浏览器,那么显示的内容也会不同。这种不一致可能导致潜在财务欺诈。
防范与检测:
防范:
①过滤掉与DL模型输入不符合的输入(但是这种方法在实际中是很不人性化的,用户的输入都是随机的)
②在进行尺寸缩放之前,进行一些其他预处理,比如上述所说的过滤,裁剪等
检测:
检测在缩放过程中输入特征的变化,如颜色直方图和颜色散射分布。如果是没有被篡改过的图片,其输入和缩放后的输出,在这两个图上的分布是基本一致的。具体如下图
缺点:
对于黑盒攻击(也就是实战中的大部分情况),即对于那些基于云服务的CV应用来说,目标缩放算法和输入尺寸都是不知道的,需要进行构造一系列的探测序列图像来推测具体的缩放算法和输入尺寸。(尽管本文中提出了推测具体缩放算法和输入尺寸的步骤)这会导致攻击成功率下降,和不确定性增大,且会增大攻击成本。而且对于这种CV应用,可能对输入的图片预处理不单单只是图像尺寸缩放,还可能有图像裁切、过滤、仿射变换、颜色变换等预处理操作。如果这些步骤是先于图像尺寸缩放的话,那就很可能严重降低图像缩放攻击的成功性。
总结:
该攻击算法本质上是强行计算出一对系数矩阵,使得输入图像乘以这对系数矩阵的结果,通过缩放算法后能输出攻击者想要的目标图像。其实是对缩放算法的一个逆运算。这种攻击的原理不难,却能广泛应用在各种图像处理应用上,包括本地CV应用、云服务CV API甚至是当前主流的Web浏览器上,但凡可能用到图像缩放函数的应用都可能遭受此攻击。尽管该攻击需要了解对缩放函数和输入尺寸的具体细节才能有高效的攻击成功率,且尽量不要有其他图像预处理步骤来干扰,也就是说这种攻击可能在现实环境中的效率可能不会太高,但对于思考CV模型的安全,减少AI应用的安全隐患,特别是对于图像应用,其整体的pipeline是否设置规范,有着很大的启发意义。