黑箱攻击是指攻击者在无法获取机器学习模型内部结构、参数及训练数据等详细信息的情况下,仅通过模型的输入和输出,来生成对抗样本以误导模型做出错误预测的攻击方式.以下是其相关介绍:
主要类型
- 基于迁移的攻击:利用在一个模型上生成的对抗样本对其他模型进行攻击,需找到模型间的共性和迁移性,攻击成功率不确定,访问次数少,约10次左右.
- 基于访问的攻击:通过大量查询模型获取输入输出信息来生成对抗样本,可细分为基于分数的攻击和基于决策的攻击。基于分数的攻击需获得连续预测分数,不适用于多数现实场景;基于决策的攻击则完全依赖模型最终决策,更贴合实际,如演化攻击就是一种高效的基于决策的黑箱攻击方法.
常用方法
- 训练替代模型:自行构建一个与目标模型结构相似的替代模型,用随机数据输入目标模型获取标签,以此训练替代模型,使其决策边界近似目标模型,再对替代模型攻击并迁移到目标模型.
- 基于梯度估计:利用有限的查询信息估计目标模型的梯度,进而找到能使模型输出产生较大变化的扰动方向,如通过随机采样、有限差分等方法近似计算梯度,但效率和精度较低。
应用领域
- 人脸识别领域:攻击者可生成特制的对抗样本图像,如带有微小扰动的眼镜或面部贴纸等,使人脸识别系统误判.
- 自动驾驶领域:通过在交通标志上添加对抗扰动,或改变道路场景的某些特征,使自动驾驶系统对路况识别错误,从而引发安全事故 。
- 网络安全领域:攻击者可利用黑箱攻击对基于机器学习的入侵检测系统、恶意软件检测系统等进行攻击,使其无法有效识别威胁 。
防御措施
- 被动防御:在模型前加filter削减attack signal效果,如模糊化、压缩再解压缩,或用generator产生和输入一样的图片,但被攻击方知道防御方式时效果会受限,可加入随机性增强防御.
- 主动防御:采用adversarial training,用攻击后的图片和正确label制造新训练资料重新训练模型,不断找漏洞补漏洞,但新攻击方法未被考虑到时防御可能失效.