购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

网络安全一直和AI相伴相生,从网络安全诞生的那一天起,人们就一直试图使用自动化的方式去解决安全问题。网络安全专家一直试图把自己对网络威胁的理解转换成机器可以理解的方式,比如黑白名单、正则表达式,然后利用机器强大的计算能力,夜以继日地从流量、日志、文件中寻找似曾相识的各类威胁。似乎这一切就是那么天经地义并无懈可击。事情似乎又没有那么简单,机器其实并没有完全学到人的经验,网络安全专家一眼就可以识破的变形,对于机器却难以理解;更可怕的是,恶意程序数量呈指数增长,各类新型攻击方式层出不穷,0day(零日攻击)的出现早已超过一线明星出现在新闻头条的频率,依靠极其有限的网络专家总结的经验和几个安全厂商所谓的样本交换,已经难以应付现在的网络安全威胁。如果安全专家一眼就可以识破的威胁,机器也能够自动化发现甚至做出相应的响应,这已经是很大的进步;如果让机器可以像AlphaGo理解围棋一样,能够理解网络威胁,那将是巨大进步。事情又回到最初的那个问题,如何能让机器真正学会识别安全威胁?机器学习可能是一个不错的答案。

目标读者

本书面向信息安全从业人员、大专院校计算机相关专业学生以及信息安全爱好者、机器学习爱好者,对于想了解人工智能的CTO、运维总监、架构师,本书同样也是一本不错的科普书籍。如果看完本书,可以让读者在工作学习中遇到问题时想起一到两种算法,那么我觉得就达到效果了;如果可以让读者像使用printf一样使用SVM、朴素贝叶斯等算法,那么这本书就相当成功了。

我写本书的初衷是帮助安全爱好者以及信息安全从业者了解机器学习,可以动手使用简单的机器学习算法解决实际问题。在写作中尽量避免生硬的说教,能用文字描述的尽量不用冷冰冰的公式,能用图和代码说明的尽量不用多余的文字,正如霍金说言,“多写一个公式,少一半读者”,希望反之亦然。

机器学习应用于安全领域遇到的最大问题就是缺乏大量的黑样本,即所谓的攻击样本,尤其相对于大量的正常业务访问,攻击行为尤其是成功的攻击行为是非常少的,这就给机器学习带来了很大挑战。本书很少对不同算法进行横向比较,也是因为在不同场景下不同算法的表现差别的确很大,很难说深度学习就一定比朴素贝叶斯好,也很难说支持向量机就不如卷积神经网络,拿某个具体场景进行横评意义不大,毕竟选择算法不像购买SUV,可以拿几十个参数评头论足,最后还是需要大家结合实际问题去选择。

如何使用本书

本书的第1章主要介绍了如何打造自己的深度学习工具箱,介绍了AI安全的攻与防,介绍了针对AI设备和AI模型的攻击,以及使用AI进行安全建设和攻击。第2章介绍了如何打造深度学习的工具箱。第3章介绍了如何衡量机器学习算法的性能以及集成学习的基本知识。第4章介绍了Keras的基本知识以及使用方法,这章是后面章节学习开发的基础。第5章介绍了强化学习,重点介绍了单智力体的强化学习。第6章介绍了Keras下强化学习算法的一种实现Keras-rl。第7章介绍了强化学习领域经常使用的OpenAI Gym环境。第8章~第10章,介绍了基于机器学习的恶意程序识别技术以及常见的恶意程序免杀方法,最后介绍了如何使用强化学习生成免杀程序,并进一步提升杀毒软件的检测能力。第11章介绍如何使用强化学习提升WAF的防护能力,第12章介绍如何使用强化学习提升反垃圾邮件的检测能力。第13章介绍了对抗生成网络的基础知识,第14章介绍了针对机器学习模型的几种攻击方式,包括如何欺骗图像识别模型让其指鹿为马。每个案例都使用互联网公开的数据集并配有基于Python的代码,代码和数据集可以在本书配套的GitHub下载。

本书是我机器学习三部曲的第三部,在第一部中,主要以机器学习常见算法为主线,以生活中的例子和具体安全场景介绍机器学习常见算法,定位为机器学习入门书籍,便于大家快速上手。全部代码都可以在普通PC电脑上运行。在第二部中,重点介绍深度学习,并以具体的11个案例介绍机器学习的应用,面向的是具有一定机器学习基础或者致力于使用机器学习解决工作中问题的读者。本书重点介绍强化学习和对抗网络,并介绍了AI安全的攻与防。一直有个遗憾的地方:深度学习的优势发挥需要大量精准标注的训练样本,但是由于各种各样的原因,我只能在书中使用互联网上已经公开的数据集,数据量级往往很难发挥深度学习的优势,对于真正想在生产环境中验证想法的读者需要搜集更多样本。

致谢

这里我要感谢我的家人对我的支持,本来工作就很忙,没有太多时间处理家务,写书以后更是花费了我大量的休息时间,我的妻子无条件承担起了全部家务,尤其是照料孩子方面的繁杂事务。我很感谢我的女儿,写书这段时间几乎没有时间陪她玩,她也很懂事地自己玩,我也想用这本书作为生日礼物送给她。我还要感谢编辑吴怡对我的支持和鼓励,让我可以坚持把这本书写完。最后还要感谢各位业内好友尤其是我boss对我的支持,排名不分先后:马杰@百度安全、冯景辉@百度安全、Tony@京东安全、程岩@京东安全、简单@京东安全、林晓东@百度基础架构、黄颖@百度IT、李振宇@百度AI、Lenx@百度安全、黄正@百度安全、郝轶@百度云、云鹏@百度无人车、赵林林@微步在线、张宇平@数盟、谢忱@Freebuf、李新@Freebuf、李琦@清华、徐恪@清华、王宇@蚂蚁金服、王泯然@蚂蚁金服、王龙@蚂蚁金服、周涛@启明星辰、姚志武@借贷宝、刘静@安天、刘元军@医渡云、廖威@易宝支付、尹毅@sobug、宋文宽@联想、团长@宜人贷、齐鲁@搜狐安全、吴圣@58安全、康宇@新浪安全、幻泉@i春秋、雅驰@i春秋、王庆双@i春秋、张亚同@i春秋、王禾@微软、李臻@paloalto、西瓜@四叶草、郑伟@四叶草、朱利军@四叶草、土夫子@XSRC、英雄马@乐视云、sbilly@360、侯曼@360、高磊@滴滴、高磊@爱加密、高渐离@华为、刘洪善@华为云、宋柏林@一亩田、张昊@一亩田、张开@安恒、李硕@智联、阿杜@优信拍、李斌@房多多、李程@搜狗、姚聪@face+、李鸣雷@金山云、吴鲁加@小密圈,最后我还要感谢我的亲密战友陈燕、康亮亮、蔡奇、哲超、新宇、子奇、月升、王磊、碳基体、刘璇、钱华沟、刘超、王胄、吴梅、冯侦探、冯永校。

我平时在Freebuf专栏以及“i春秋”分享企业安全建设以及人工智能相关经验与最新话题,同时也运营我的微信公众号“兜哥带你学安全”,欢迎大家关注并在线交流。

本书使用的代码和数据均在GitHub上发布,地址为:https://github.com/duoergun0729/3book,代码层面任何疑问可以在GitHub上直接反馈。 0rdAPkDtZnE/0Y4JRwqt1yaTnlC6qQl9ALXC0PZSZLuIPKgR8M+y/AryIAzy+AGW

点击中间区域
呼出菜单
上一章
目录
下一章
×