AI模型安全学习记录一

一、背景:

        随着5G以及AIOT时代的到来,未来逐渐的成为一个数据主导的时代,AI等技术型的公司,会成为新的主流,和各行各业做大跨度的融合,这种融合当然在学术以及产业中会一直的存在,并且近年来的AI一直在各个世界顶级互联网大会中被频频的提到,现实中的成果也已经很多惠及到我们,比如目前成熟的人脸识别,以及前一段时间比较火的换脸—“ZAO”,还有未来不久百度为主导的无人驾驶车的量产等等。这个时候肯定会有越来越多的安全问题出现,如果AI在使用中出现了主动或者被动的安全问题,后果是不堪设想的,比如,由于攻击者对于图片的处理导致人脸识别出错,一个马路上的指示牌由于物理因素(风吹日晒或者人为)等导致无人车识别出错等等。这些中的安全问题不单单是一个AI在发挥作用过程中的安全问题,同时对于AI角色的使用中也会是一个值得关注的问题,比如黑客利用AI技术进行各种各样的攻击,网站图片验证码的识别进行攻击等等,并且AI安全是一个持久性的,声明周期会很长的安全需求。

二、主动AI安全:

2.1:静态模型安全——PP:

     目前的AI主要是分为训练和预测,一个AI模型是承载着整个结果呈现的核心,需要花费巨大的人力和数据投喂、经过反复的调参训练的一个模型,预测是对于一个输入做出的一个判断。从AI模型的放置位置角度看,虽然目前的很多训练模型会放在云服务端,但是存在的问题是延迟响应慢,对于服务器的压力比较大,所以这个时候可能有人会问:为什么这个时候不借助于手机端本身存在的资源去进行模型的存储和训练以及预测呢,百度安全团队已经做了这个事情并开源了PaddlePaddle:Github:https://github.com/PaddlePaddle/Paddle-Lite, 主要从编译、模型的改进减小模型的体积、利用移动端的指令集增大响应速度等。

接下里拿一个Demo来简单的说明:

这里重点关注三个问题:

第一:copyModels(),对于模型的拷贝,一般会放到手机的sdcardPath中,这样可能对于一个成熟项目进行更好的热更吧,毕竟模型是需要不断的进行调节的,然后服务端下发的。

第二:我们可以看到asset下面存放的是模型和一些图片数据文件。

第三:libpaddle-mobile.so文件为移动端的模型加载解析文件。

从静态代码安全的角度来讲,上面三个里面存在的一个最大安全问题就是,模型被攻击者进行盗取。

    override fun load() {
        val assetPath = "pml_demo"
        val sdcardPath = (Environment.getExternalStorageDirectory().toString()
                + File.separator + assetPath + File.separator + type)
        PML.load(sdcardPath,false)
    }

根据以上的代码模型的加载可以看出,我们可以做的是对于模型的加密以及对于libpaddle-mobile.so load函数的处理等。

2.2静态模型安全——Tensorflow:

         Tensorflow作为谷歌开源的深度学习框架目前已经被广泛的应用,包括谷歌出针对移动设备优化的Tensorflow版本——Tensorflow Lite。

对于Tensorflow Lite存在的静态安全问题,不进行详细的介绍,已经有详细的文章进行了说明。参考:Tensorflow + Android应用安全初探

2.3动态模型安全:

         2.1和2.2只是重点从静态的保护角度讲到模型的安全问题,比较偏向于防止白盒的攻击,让攻击者得不到你的模型,设想一种情况,攻击者在不知道你的模型的情况下,通过输入,输出等无限的逼近于你的模型,从而找到你模型的攻击点和缺点,这个时候静态的防御是不能起到一定的作用的,可以参照百度安全AI实验室的研究成果:“聚焦HITB + CyberWeek 2019 ¦ 云端黑盒模型安全伪命题?攻击只需2步”:云端黑盒模型制造的仅仅是虚假的安全感,当模型架构、参数及输入规则不可知的情况下,攻击者依然可通过有限的查询次数,利用同一张对抗图像,令大部分云端图像分类模型做出错误判断。这个时候就要动态模型的防护,怎么进行数据流的监控和模型的输出监控都是需要考虑的一个问题,后面的文章再进行详细的谈论。

三、被动AI安全:

       AI技术从正义的角度被广泛的进行应用,如果说攻击者利用AI技术去做一些攻击,比如:一套基于GAN的验证码AI识别系统,能在0.5秒之内识别出验证码;用AI破解Captcha验证码等等。

那我们作为一个正义的使者,能不能想出一个办法就是让攻击者无法短时间进行攻击或者需要花费他更多的精力使他难以成功呢?答案是有的:当然我们不是去考虑怎么更大程度上去区分人和机器,比如我们都经历过12306的那些反人类的验证码,这些我们不考虑。我们应该从随机性和样本攻击的角度使得攻击者训练的AI模型进行失效,后面的文章会详细的谈论这一块。

 

四、总结:

      作为一个AI安全的初学研究者,第一篇本文从AI技术的使用角色定义中存在的安全问题分为:主动AI模型安全和被动AI模型安全,然后主动AI模型安全又分为模型的静态防护和动态的防护。希望给想研究这一块的朋友们有个简单的介绍,后面会再详细的更新每一块上具体的实验操作。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本课程详细讲解了以下内容:    1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程    2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例    3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题     4.session与cookie问题及application、cookie补充说明及四种范围对象作用域     5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别     6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据     7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)     8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析     9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)    1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)     11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet     12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题     13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove     14.过滤器、过滤器通配符、过滤器链、监听器     15.session绑定解绑、钝化活化     16.以及Ajax的各种应用     17. Idea环境下的Java Web开发

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值