图像缩放攻击

2020-10-29 14:27:40

这篇文章是关于机器学习和人工智能的系列文章的一部分。点击博客标签“Huskyai”查看相关帖子。

几周前,在为我的GrayHat 2020-Red Team Village演示文稿准备演示时,我在Erwin Quiring等人的“对抗性预处理:理解和防止机器学习中的图像缩放攻击”一书中遇到了“图像缩放攻击”。

其基本思想是将较小的图像隐藏在较大的图像中(它应该是大图像的5-10倍大小)。事实上,这次攻击很容易解释:

攻击者通过将所需的目标图像隐藏在良性图像中来手工创建恶意输入图像。

如果你仔细观察,你会发现第二张照片周围确实有一些奇怪的点。但当以较小的版本查看时,这一点并不明显。

你可以在Github上找到密码。我使用Google Colab来运行它,一开始有一些错误,但它起作用了-如果感兴趣的话,让我知道,我可以清理并分享笔记本。

现在,看看使用默认设置使用OpenCV加载图像并调整其大小时会发生什么情况:

在左边你可以看到原始大小的图像,在左边同样的图像被缩小到128x128像素。

缩小后的图片现在完全不同了!当然,我选择了一只哈士奇,因为我想攻击“哈士奇人工智能”,并找到另一个旁路。

模型查询:模型预测的图像可能与用户上传的图像不同。

与ML无关的攻击:在其他非机器学习领域,这也可能是一个问题。

事实证明,赫斯基人工智能使用PIL,默认情况下,它不容易受到这种攻击。

我很幸运,因为最初赫斯基人工智能确实使用了OpenCV,它的默认设置是调整图像的大小。但出于某种原因,我在早期就改变了这一点(不知道这也会减轻这次攻击)。

如果使用OpenCV,则可以通过在调用RESIZE API时使用插值参数使其不使用默认值来修复该问题。

对抗性预处理:理解和防止机器学习中的图像缩放攻击(https://www.usenix.org/system/files/sec20-quiring.pdf)(Erwin Quiring,TU Braunschweig)