可能的三种类型的攻防:
1、对抗样本
2、ai平台外部部件漏洞
3、ai平台内部漏洞
对抗样本:
属于利用ai训练的基本原理产生的一种根本性的攻击方法。
主要原理是对训练模型添加适当的干扰,或者是故意向训练集中添加标签错误的数据,扰动训练出来的模型,使得模型不能正确识别某些物。主要针对分类模型。
案例可以参考:Kaggle首席技术官发布——(Kaggle)NIPS 2017对抗学习挑战赛起步指南。一个比赛,其中提供了对抗案例的生成过程。
ai平台外部部件漏洞:
属于ai平台调用外部依赖库,例如tensorflow调用python中的numpy库。
![]() |
主要原理是外部依赖库可能造成某些非逻辑错误。numpy库主要针对数据处理,所以很容易在训练的过程中出现数组溢出或者整数溢出的情况,而这些在python中并未明确有检查模块。而在目前能够查出来的案例中包含了下面几种漏洞。
其中就tensorflow平台来说,主要是面对DOS攻击,主要方式是缺少对输入数据的大小或者类型的验证。参考:https://www.suse.com/security/cve/CVE-2017-12852/ 。为针对numpy提出的攻击案例。
ai平台内部漏洞:
查到的主要就是腾讯提出的tensorflow的框架漏洞。
漏洞发生在 Tensorflow 处理AI模型部分,属于逻辑型的漏洞。需要重新设计 AI 模型输入处理机制,属于处理机制的问题。具体案例本身并未找到详细的内容。
https://github.com/tensorflow/tensorflow/blob/master/SECURITY.md
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/security/index.md
以上是腾讯团队提出的几个tensorflow漏洞,主要针对平台本身的框架,例如错误的解析gif图像可能会导致程序崩溃(解析某些无效的GIF文件时,GIF解码器中的内部函数返回一个空指针,该指针(空指针)随后用作strcat的参数)。
https://github.com/tensorflow/tensorflow/commit/c48431588e7cf8aff61d4c299231e3e925144df8
上面是官方提供的代码修改部分。