├── AI for Security:智能化安全对抗的困境.md ├── README.md ├── 从Black Hat Speaker到国内外研究者:强化学习的安全应用.md └── 划重点.md /AI for Security:智能化安全对抗的困境.md: -------------------------------------------------------------------------------- 1 | 本篇文章主要结合自己的亲身经历和体会表达一下对AI for Security的看法,整体态度偏消极。 2 | ## 0x01 背景 ## 3 | 本段将由大到小从国家、网上公开资料、项目三个方面说明智能化安全对抗时代的来临。 4 | 正如有时候觉得学得好不如嫁得好,在网络安全方面有时也是学得好不如运气好跟上了历史的进程。网络战早已被美军纳入作战体系,现如今中美关系对抗愈加激烈,随之而来的可能是成规模的网络对抗,从当前看来,AI技术比较适合大幅度提升网络对抗能力,所以智能化的网络对抗技术可能得到国家级的重点推进。笔者跟踪了几年来网上关于智能化安全的一些研究和进展,发现几年前大家重点研究的是AI安全检测,仅仅是弱智能化的安全防护,远达不到对抗的烈度,现如今随着对抗样本等对抗技术的火热,智能化安全对抗越来越得到学术界研究者的关注,无论是算法领域研究者,还是安全领域研究者。按照时间线,我经历的几个项目主题分别是:防御、反制、进攻、对抗,对抗烈度明显增加,这也许正验证着开头分析过的国家面临的安全对抗问题,相较于传统对抗手段,智能化的安全对抗技术显得不可或缺。 5 | 6 | ## 0x02 智能化安全对抗 ## 7 | AI和安全之间的关系可分为四点: 8 | - 应用安全 9 | - 用AI来做应用安全防护 10 | - 用AI来攻击应用 11 | - AI本身安全 12 | - (用AI)攻击AI(模型、系统、框架) 13 | - AI模型防护 14 | 15 | AI是手段,目标是安全,包括应用安全和AI安全。所以是AI for Application and AI Security,即AI for Security。 16 | 17 | 从应用安全的角度来说,用AI来做应用安全防护,比如做WAF或入侵检测,属于基础安全,做反欺诈检测,属于业务安全;用AI来攻击应用,比如用AI来自动化漏洞挖掘,属于系统安全,用AI来攻击验证码,属于业务安全;而从AI本身安全来说,(用AI)攻击AI,比如用对抗样本攻击AI模型,属于AI模型安全,用数据污染的手段攻击AI模型,属于AI数据安全;AI模型防护,比如对抗对抗样本和对抗数据污染,比较小众。 18 | 19 | 四者相辅相成,假如我们在防守位,正遭遇外界的攻击,包括传统攻击和AI攻击,如果我们用AI来做应用安全防护,对手可能采用对抗样本来攻击我们的AI,那么我们就要对AI模型进行防护,也就是对抗对抗样本。假如我们在攻击位,之前的过程颠倒即可。总的来说,攻防就是一个动态博弈的过程。 20 | 21 | ## 0x03 学术界和工业界前沿智能化安全对抗 ## 22 | 学术界研究者近几年比较关注对抗样本等智能化对抗技术,在四大顶会上也不断发表了系列关于机器学习和安全对抗的文章,有传统的机器学习安全检测文章,也有机器学习模型本身安全性对抗的文章,比如11月28日在湖北武汉举办的第八届全国网络与信息安全防护峰会(XDef2018安全峰会)第二天的议题中,来自中科院信工所和浙江大学的两位博士生展示了他们的研究成果:“恶魔音乐”攻击智能语音系统和DEEPSEC:面向深度学习模型的安全性评估系统,两项成果都是关于机器学习的安全对抗,分别发表在全球四大安全顶会中的Usenix Security 2018和IEEE S&P 2019,代表着学术界最新的研究进展。可以看出学术界的研究点开始转向了关于机器学习的对抗性技术研究。前几天去参加的XDef2018会议,对阿里巴巴集团安全部资深算法专家周涛博士分享的议题《机器学习还是统计模型:大数据安全分析应用实战》很感兴趣,可能代表着工业界对AI for Security的理解和做法,可能由于需求导致出发点不同,该议题重点在于防:AI安全检测和抵抗机器学习流量。AI作为一种手段,可以降维打击传统攻击,抵抗同级的AI攻击,但是要在实际场景中大规模应用还需要做大量工作,现在AI还只是弱智能化,适合加以利用做辅助决策。分享的内容都是主流的做法,所以我想工业界最新的成果大多不会公开,现在随着学术流高学历人才不断加入互联网公司,从而学术工程化,所以工业界的实力也应该是天花板。这就可能造成一个问题,我们容易得到并且消化的智能化安全对抗技术的资料都是价值过剩的资料。比如学术界研究的智能化对抗性技术都是偏研究性质的论文,实际的工程化可能较难,并且学术界可能也不会太关注工程化,对许多人来说,要吸收学术界前沿知识的门槛很高,对于大公司的尖端人才来说,可能再加以研究再工程化,成果当然不会公开。所以对于一般人来说,很难获取一手的学术界和工业界的智能化对抗技术,并且很难做到前沿技术工程化。 23 | 24 | 我们现在容易获取的资料主要集中在是AI安全检测方面,大部分文章都在自娱自乐,反反复复换汤不换药,都是同样的套路,未加以优化,质量低,只适合做做实验,很少在实际的生产环境下测试,效果未加以验证。 25 | 26 | ## 0x04 我的AI for Security 学习笔记 ## 27 | 针对上面分析到的问题,我筛选整理了一份安全场景、基于AI的安全算法和安全数据分析学习资料,希望对AI for Security感兴趣的朋友们有所帮助。 28 | 29 | # AI-for-Security-Learning 30 | 安全场景、基于AI的安全算法和安全数据分析学习笔记(工程类学习笔记,不包含论文、书籍、视频等,不花里胡哨嘻嘻哈哈) 31 | 32 | 项目地址:https://github.com/404notf0und/AI-for-Security-Learning 33 | 34 | 最近更新日期为:2018/12/2 35 | 36 | 同步更新于:[404 Not Found:AI for Security](http://www.4o4notfound.org) 37 | 38 | 目录: 39 | - [防护篇](#防护篇) 40 | - [使用AI保护应用](#使用AI保护应用) 41 | - [恶意软件和代码](#恶意软件和代码) 42 | - [恶意流量检测](#恶意流量检测) 43 | - [域名安全检测](#域名安全) 44 | - [业务安全检测](#业务安全) 45 | - [Web安全检测](#Web安全) 46 | - [URL异常检测](#Web安全之URL异常检测) 47 | - [XSS检测](#Web安全之XSS检测) 48 | - [Web攻击多分类检测](#Web安全之攻击多分类检测) 49 | - [Webshell检测](#Web安全之Webshell检测) 50 | - [Other](#Web安全之其他) 51 | - [杂项](#杂项) 52 | - WindowsRDP检测 53 | - PowerShell检测 54 | - 用户行为(UBA)检测 55 | - 弱口令检测 56 | - 安全运营 57 | - [(使用AI)保护AI(框架、数据、模型、系统)](#保护AI) 58 | - [对抗篇](#对抗篇) 59 | - [使用AI攻击应用](#使用AI攻击应用) 60 | - [(使用AI)攻击AI(框架、数据、模型、系统)](#攻击AI) 61 | - [攻击AI框架](#攻击AI框架) 62 | - [攻击AI模型](#攻击AI模型) 63 | 64 | 65 | # 防护篇 # 66 | ## 使用AI保护应用 ## 67 | ### 恶意软件和代码 ### 68 | - [深度学习在恶意软件检测中的应用](https://xz.aliyun.com/t/2447) 69 | - [恶意软件与数据分析](https://iami.xyz/AliSEC3/) 70 | - [利用机器学习进行恶意代码分类](http://drops.xmd5.com/static/drops/tips-8151.html) 71 | - [用机器学习检测Android恶意代码](http://drops.xmd5.com/static/drops/mobile-13428.html) 72 | - [Malware Detection in Executables Using Neural Networks](https://devblogs.nvidia.com/malware-detection-neural-networks/) 73 | - [基于深度学习的恶意样本行为检测(含源码)](https://www.freebuf.com/articles/system/182566.html) 74 | 75 | ### 恶意流量检测 ### 76 | - [利用机器学习检测HTTP恶意外连流量](https://www.freebuf.com/column/170483.html) 77 | 78 | ### 域名安全检测 ### 79 | - [使用fasttext进行DGA检测](https://iami.xyz/DGA-Detect/) 80 | - [使用CNN检测DNS隧道](https://github.com/BoneLee/dns_tunnel_dectect_with_CNN) 81 | - [机器学习与威胁情报的融合:一种基于AI检测恶意域名的方法](https://www.freebuf.com/articles/es/187451.html) 82 | 83 | ### 业务安全检测 ### 84 | - [基于设备指纹的风控建模以及机器学习的尝试](https://xz.aliyun.com/t/2801) 85 | - [如何在安全风控中评估和量化机器学习有效性](https://xz.aliyun.com/t/2951) 86 | - [人工智能反欺诈三部曲——特征工程](https://www.anquanke.com/post/id/85741) 87 | 88 | ### Web安全检测 ### 89 | ### Web安全之URL异常检测 ### 90 | - [基于机器学习的web异常检测](https://www.freebuf.com/articles/web/126543.html) 91 | - [基于大数据和机器学习的Web异常参数检测系统Demo实现](https://www.freebuf.com/articles/web/134334.html) 92 | - [基于机器学习的web应用防火墙](https://github.com/faizann24/Fwaf-Machine-Learning-driven-Web-Application-Firewall) 93 | - [LSTM识别恶意HTTP请求](https://www.cdxy.me/?p=775) 94 | - [基于URL异常检测的机器学习模型mini部署](http://4o4notfound.org/index.php/archives/84/) 95 | - [我的AI安全检测学习笔记(一)](http://4o4notfound.org/index.php/archives/127/) 96 | 97 | ### Web安全之XSS检测 ### 98 | - [机器学习识别XSS实践](https://www.cdxy.me/?p=773) 99 | - [使用深度学习检测XSS](http://webber.tech/posts/%E4%BD%BF%E7%94%A8%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%A3%80%E6%B5%8BXSS/) 100 | - [使用深度学习检测XSS(续)](http://webber.tech/posts/%E4%BD%BF%E7%94%A8%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%A3%80%E6%B5%8BXSS%28%E7%BB%AD%29/) 101 | 102 | ### Web安全之攻击多分类检测 ### 103 | - [基于机器学习的WEB攻击分类检测模型](https://www.freebuf.com/news/184687.html) 104 | - [基于机器学习的攻击检测系统](https://www.freebuf.com/column/189981.html) 105 | 106 | ### Web安全之Webshell检测 ### 107 | - [基于机器学习的分布式webshell检测系统-特征工程(1)](https://www.s0nnet.com/archives/fshell-feature-1) 108 | - [深度学习PHP webshell查杀引擎demo](https://www.cdxy.me/?p=788) 109 | - [使用机器学习识别WebShell](https://github.com/lcatro/WebShell-Detect-By-Machine-Learning) 110 | - [基于机器学习的分布式Webshell检测系统](https://github.com/Lingerhk/fshell) 111 | - [GitChat · 安全 | 基于机器学习的 Webshell 发现技术探索](http://blog.csdn.net/GitChat/article/details/77932384?locationNum=4&fps=1) 112 | - [刘焱: Webshell 发现技术实战解析](http://gitbook.cn/books/5964d154cc597d3e0c08667c/index.html) 113 | - [安普诺张涛:再谈webshell检测](http://www.cnetsec.com/article/22593.html) 114 | - [新开始:webshell的检测](https://iami.xyz/New-Begin-For-Nothing/) 115 | - [基于机器学习的WebShell检测方法与实现(上)](https://www.freebuf.com/articles/web/181169.html) 116 | 117 | ### Web安全之其他 ### 118 | - [Web安全检测中机器学习的经验之谈](https://iami.xyz/ML-IN-Webshell-Detection-Advantages-And-Disadvantages/) 119 | 120 | ### 杂项 ### 121 | - [机器学习在WindowsRDP版本和后门检测上的应用](https://www.anquanke.com/post/id/157175) 122 | - [用机器学习检测恶意PowerShell](https://xz.aliyun.com/t/2437) 123 | - [机器学习算法在用户行为检测(UBA)领域的应用](http://dearcharles.cn/2017/11/11/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AE%97%E6%B3%95%E5%9C%A8%E7%94%A8%E6%88%B7%E8%A1%8C%E4%B8%BA%E6%A3%80%E6%B5%8B-UBA-%E9%A2%86%E5%9F%9F%E7%9A%84%E5%BA%94%E7%94%A8/) 124 | - [利用机器学习和规则实现弱口令检测](https://manning23.github.io/2018/10/12/%E5%88%A9%E7%94%A8%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%92%8C%E8%A7%84%E5%88%99%E5%AE%9E%E7%8E%B0%E5%BC%B1%E5%8F%A3%E4%BB%A4%E6%A3%80%E6%B5%8B/) 125 | - [解决机器学习和安全运营之间的最后一公里问题](https://www.anquanke.com/post/id/163637) 126 | 127 | ## 保护AI ## 128 | - [如何利用AI对抗“数据污染”和”数据中毒“?](https://www.anquanke.com/post/id/150653) 129 | - [对抗数据中毒--机器学习在阿里巴巴网络安全的应用](https://www.leiphone.com/news/201806/rYrfwtaeCNohEf0D.html) 130 | 131 | # 对抗篇 # 132 | ## 使用AI攻击应用 ## 133 | - [AI与Android漏洞挖掘的那些事儿](https://www.zybuluo.com/qinyun/note/957067) 134 | - [AI与安全的恩怨情仇五部曲「1」Misuse AI](https://www.zuozuovera.com/archives/1565/) 135 | - [一种基于机器学习的自动化鱼叉式网络钓鱼思路](https://www.freebuf.com/articles/web/132811.html) 136 | 137 | ## 攻击AI ## 138 | ### 攻击AI框架 ### 139 | - [深度学习框架中的魔鬼——探究人工智能系统中的安全问题](https://www.anquanke.com/post/id/86989) 140 | 141 | ### 攻击AI模型 ### 142 | - [安全领域中机器学习的对抗和博弈](http://bindog.github.io/blog/2016/11/13/game-playing-with-ml-in-security/) 143 | - [基础攻防场景下的AI对抗样本初探](https://www.cdxy.me/?p=798) 144 | - [机器学习在安全攻防场景的应用与分析](https://www.freebuf.com/articles/neopoints/152457.html) 145 | - [使用生成对抗网络(GAN)生成DGA](http://webber.tech/posts/%E4%BD%BF%E7%94%A8%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9C%28GAN%29%E7%94%9F%E6%88%90DGA/) 146 | - [详解如何使用Keras实现Wassertein GAN](https://mp.weixin.qq.com/s/F2gBP23LCEF72QDlugbBZQ) 147 | - [Is attacking machine learning easier than defending it?](http://www.cleverhans.io/security/privacy/ml/2017/02/15/why-attacking-machine-learning-is-easier-than-defending-it.html) 148 | - [对深度学习的逃逸攻击 ——探究人工智能系统中的安全盲区](https://www.anquanke.com/post/id/87037) 149 | 150 | ## 0x05 对现状的个人理解 ## 151 | 从上面我收集的资料来看,目前易工程化的还主要集中在AI安全检测方面,但是大规模应用还是较难,还存在相当多的问题,尤其是深度学习。从场景来说,安全领域的场景非常复杂,各不相同,想找到通用的方法论解决所有问题怕是天方夜谭,所以需要对每种小场景结合机器学习技术具体处理,这就涉及到大量的人力财力和物力;从数据来说,就算不牵扯复杂的安全场景,安全数据的同构化也是一项挑战,李飞飞教授(是犹他大学的李飞飞,好像现在在阿里,不是斯坦福的李飞飞)发表在CCS的研究成果:DeepLog,可以解决这个问题;从模型来看,不考虑模型效果,机器学习和深度学习训练的模型的可解释性还是较弱,学术界已经开始尝试突破深度学习的可解释性问题,希望可以看见曙光。总的来说,连目前相对容易做的AI安全检测大规模应用都还存在问题,更何况智能化安全对抗技术了,但是形势不等人啊,智能化安全对抗已经来了,然而技术还没准备好。也许是因为在同一个环境太久,接触到的资源比较局限,所以限制了自己的视野,所以希望年后能找实习历练一下,让机器学习真正的在安全场景中落地。 152 | 153 | ## 0x06 Reference ## 154 | Machine Learning Blog: 155 | 156 | https://plushunter.github.io 157 | 158 | http://phoebepan.cn 159 | 160 | http://scarletpan.github.io 161 | 162 | http://www.jeyzhang.com 163 | 164 | Machine Learning+Security Blog: 165 | 166 | http://webber.tech/ 167 | 168 | http://bindog.github.io 169 | 170 | https://www.cdxy.me 171 | 172 | https://iami.xyz 173 | 174 | https://www.zuozuovera.com/ 175 | 176 | https://www.cnblogs.com/LittleHann 177 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AI-for-Security-Learning 2 | 安全场景、基于AI的安全算法和安全数据分析学习笔记(偏工程类学习笔记),持续阅读,保持对业界技术的跟进和迭代 3 | 4 | 项目地址:https://github.com/404notf0und/AI-for-Security-Learning 5 | 6 | 最近更新日期为:2021/07/28 7 | 8 | 新增: 9 | - [基于机器学习的Web管理后台识别方法探索](https://security.tencent.com/index.php/blog/msg/176) 10 | - [基于机器学习的GitHub敏感信息泄露监控](https://xz.aliyun.com/t/7805) 11 | - [机器学习检测Cobalt Strike木马初探](https://www.freebuf.com/articles/network/279190.html) 12 | 13 | 同步更新于:[404 Not Found:AI for Security](http://4o4notfound.org/index.php/archives/177/) 14 | 15 | 目录: 16 | - [综述篇](#综述篇) 17 | - [防护篇](#防护篇) 18 | - [使用AI保护应用](#使用AI保护应用) 19 | - [威胁情报](#威胁情报) 20 | - [黑客工具检测](#黑客工具检测) 21 | - [敏感数据检测](#敏感数据检测) 22 | - [恶意样本检测](#恶意样本检测) 23 | - [入侵检测](#入侵检测) 24 | - [域名安全检测](#域名安全检测) 25 | - [业务安全检测](#业务安全检测) 26 | - [Web安全检测](#Web安全检测) 27 | - [URL异常检测](#Web安全之URL异常检测) 28 | - [SQLi检测](#Web安全之SQLi检测) 29 | - [XSS检测](#Web安全之XSS检测) 30 | - [Web攻击多分类检测](#Web安全之攻击多分类检测) 31 | - [WAF建设](#Web安全之WAF建设) 32 | - [Webshell检测](#Web安全之Webshell检测) 33 | - [Other](#Web安全之其他) 34 | - [APT检测](#APT检测) 35 | - [安全运营](#安全运营) 36 | - [二进制安全](#二进制安全) 37 | - [杂项](#杂项) 38 | - WindowsRDP检测 39 | - PowerShell检测 40 | - 用户行为(UBA)检测 41 | - 弱口令检测 42 | - [(使用AI)保护AI(框架、数据、模型、系统)](#保护AI) 43 | - [对抗篇](#对抗篇) 44 | - [使用AI攻击应用](#使用AI攻击应用) 45 | - [(使用AI)攻击AI(框架、数据、模型、系统)](#攻击AI) 46 | - [攻击AI框架](#攻击AI基础框架) 47 | - [攻击AI模型](#攻击AI模型) 48 | - [攻击AI系统](#攻击AI系统) 49 | - [心得体会篇](#心得体会篇) 50 | - [学习交流篇](#学习交流篇) 51 | 52 | 53 | # 综述篇 # 54 | - [安全智能应用的一些迷思](https://zhuanlan.zhihu.com/p/88042567) 55 | - [深度总结 | 机器智能的安全之困](https://mp.weixin.qq.com/s?__biz=MzU5ODUxNzEyNA==&mid=2247484911&idx=1&sn=6a7cc2268dda2aab38085c555c04b209&chksm=fe43b104c934381294eba27b1385bffbfaf9c984773eba4cf489f26357afb50f19b382c6b500&mpshare=1&scene=1&srcid=&sharer_sharetime=1571808765043&sharer_shareid=5dc01f49f38fd64ff3e64844bc7d2ea7&key=bad1bd95c2b983fbcd2131a6fe96a7eeee59983a46ca6da6917131030413a4871bd05d4f62253d3680caf742fedcc2273637369cd4b3193eea2832db38b59be8aa0f01f4c9526a8e0c14a2805d252e95&ascene=1&uin=MTA5NjU5ODIxNg%3D%3D&devicetype=Windows+7&version=6207014a&lang=zh_CN&pass_ticket=LGfguXV%2FO1DU8mbAUL8nHSOLBI0LcXBegrVpx%2FcaDZi0HZOJ1h6pp23xChmPHqPu) 56 | - [在网络安全领域应用机器学习的困难和对策](https://mp.weixin.qq.com/s/a04Lh49CKKrIbFW8-P1_Nw) 57 | 58 | # 防护篇 # 59 | ## 使用AI保护应用 ## 60 | ### 威胁情报 ### 61 | - [基于开源信息平台的开源威胁情报挖掘简述](https://cn-sec.com/archives/285474.html) 62 | 63 | ### 黑客工具检测 ### 64 | - [机器学习检测Cobalt Strike木马初探](https://www.freebuf.com/articles/network/279190.html) 65 | 66 | ### 敏感数据检测 ### 67 | - [基于机器学习的GitHub敏感信息泄露监控](https://xz.aliyun.com/t/7805) 68 | - [基于机器学习的Web管理后台识别方法探索](https://security.tencent.com/index.php/blog/msg/176) 69 | 70 | ### 恶意样本检测 ### 71 | - [深度学习在恶意软件检测中的应用](https://xz.aliyun.com/t/2447) 72 | - [恶意软件与数据分析](https://iami.xyz/AliSEC3/) 73 | - [利用机器学习进行恶意代码分类](http://drops.xmd5.com/static/drops/tips-8151.html) 74 | - [用机器学习检测Android恶意代码](http://drops.xmd5.com/static/drops/mobile-13428.html) 75 | - [Malware Detection in Executables Using Neural Networks](https://devblogs.nvidia.com/malware-detection-neural-networks/) 76 | - [基于深度学习的恶意样本行为检测(含源码)](https://www.freebuf.com/articles/system/182566.html) 77 | - [用机器学习进行恶意软件检测——以阿里云恶意软件检测比赛为例](https://xz.aliyun.com/t/3704) 78 | - [第二届微软恶意软件预测挑战赛初探](http://4o4notfound.org/index.php/archives/179/) 79 | - [DataCon大数据安全分析比赛冠军思路分享:方向二-恶意代码检测](https://zhuanlan.zhihu.com/p/64252076) 80 | - [第三届阿里云安全赛季军-0day](https://zhuanlan.zhihu.com/p/77492583) 81 | - [第三届阿里云安全算法挑战赛冠军代码](https://github.com/poteman/Alibaba-3rd-Security-Algorithm-Challenge) 82 | - [使用TextCNN模型探究恶意软件检测问题](https://xz.aliyun.com/t/6785) 83 | - [基于卷积神经网络的恶意代码家族标注](https://xz.aliyun.com/t/6705) 84 | 85 | ### 入侵检测 ### 86 | - [利用机器学习检测HTTP恶意外连流量](https://www.freebuf.com/column/170483.html) 87 | - [ExecScent: Mining for New C&C Domains in Live 88 | Networks with Adaptive Control Protocol Templates](https://www.usenix.org/system/files/conference/usenixsecurity13/sec13-paper_nelms.pdf) 89 | - [MADE: Security Analytics for Enterprise Threat Detection](http://www.ccs.neu.edu/home/alina/papers/MADE.pdf) 90 | - [机器学习在互联网巨头公司实践](https://mp.weixin.qq.com/s/NFqUF824Rpr4g6wYWFpSNQ) 91 | - [机器学习在入侵检测方面的应用 - 基于ADFA-LD训练集训练入侵检测判别模型](https://www.cnblogs.com/LittleHann/p/7806093.html#_lab2_0_1) 92 | - [datacon比赛方向三-攻击源与攻击者分析writeup](https://github.com/ReAbout/datacon) 93 | - [基于机器学习的恶意软件加密流量检测研究分享](https://blog.riskivy.com/%e5%9f%ba%e4%ba%8e%e6%9c%ba%e5%99%a8%e5%ad%a6%e4%b9%a0%e7%9a%84%e6%81%b6%e6%84%8f%e8%bd%af%e4%bb%b6%e5%8a%a0%e5%af%86%e6%b5%81%e9%87%8f%e6%a3%80%e6%b5%8b/?from=groupmessage&isappinstalled=0) 94 | - [anomaly-detection-through-reinforcement-learning](https://zighra.com/blogs/anomaly-detection-through-reinforcement-learning/) 95 | 96 | ### 域名安全检测 ### 97 | - [机器学习与威胁情报的融合:一种基于AI检测恶意域名的方法](https://www.freebuf.com/articles/es/187451.html) 98 | - [使用fasttext进行DGA检测](https://iami.xyz/DGA-Detect/) 99 | - [机器学习实践-DGA检测](http://galaxylab.org/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%AE%9E%E8%B7%B5-dga%E6%A3%80%E6%B5%8B/) 100 | - [使用生成对抗网络(GAN)生成DGA](http://webber.tech/posts/%E4%BD%BF%E7%94%A8%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9C%28GAN%29%E7%94%9F%E6%88%90DGA/) 101 | - [使用CNN检测DNS隧道](https://github.com/BoneLee/dns_tunnel_dectect_with_CNN) 102 | - [DNS Tunnel隧道隐蔽通信实验 && 尝试复现特征向量化思维方式检测](https://www.cnblogs.com/LittleHann/p/8656621.html) 103 | - [探秘-基于机器学习的DNS隐蔽隧道检测方法与实现](https://blog.riskivy.com/%e6%8e%a2%e7%a7%98-%e5%9f%ba%e4%ba%8e%e6%9c%ba%e5%99%a8%e5%ad%a6%e4%b9%a0%e7%9a%84dns%e9%9a%90%e8%94%bd%e9%9a%a7%e9%81%93%e6%a3%80%e6%b5%8b%e6%96%b9%e6%b3%95%e4%b8%8e%e5%ae%9e%e7%8e%b0/) 104 | - [DataCon 2019: 1st place solution of malicious DNS traffic & DGA analysis](https://www.cdxy.me/?p=806) 105 | - [DataCon 9102: DNS Analysis](https://github.com/shyoshyo/Datacon-9102-DNS) 106 | - [Datacon DNS攻击流量识别 内测笔记](http://momomoxiaoxi.com/数据分析/2019/04/24/datacondns1/) 107 | 108 | ### 业务安全检测 ### 109 | - [基于设备指纹的风控建模以及机器学习的尝试](https://xz.aliyun.com/t/2801) 110 | - [如何在安全风控中评估和量化机器学习有效性](https://xz.aliyun.com/t/2951) 111 | - [阿里巴巴直播内容风险防控中的AI力量](https://zhuanlan.zhihu.com/p/24690287) 112 | - [人工智能反欺诈三部曲——特征工程](https://www.anquanke.com/post/id/85741) 113 | - [人工智能反欺诈三部曲之:设备指纹](https://zhuanlan.zhihu.com/p/31712434) 114 | 115 | ### Web安全检测 ### 116 | ### Web安全之URL异常检测 ### 117 | - [基于机器学习的web异常检测](https://www.freebuf.com/articles/web/126543.html) 118 | - [基于大数据和机器学习的Web异常参数检测系统Demo实现](https://www.freebuf.com/articles/web/134334.html) 119 | - [基于机器学习的web应用防火墙](https://github.com/faizann24/Fwaf-Machine-Learning-driven-Web-Application-Firewall) 120 | - [LSTM识别恶意HTTP请求](https://www.cdxy.me/?p=775) 121 | - [基于URL异常检测的机器学习模型mini部署](http://4o4notfound.org/index.php/archives/84/) 122 | - [我的AI安全检测学习笔记(一)](http://4o4notfound.org/index.php/archives/127/) 123 | - [A Deep Learning Based Online Malicious URL and DNS Detection Scheme](https://link.springer.com/chapter/10.1007/978-3-319-78813-5_22) 124 | - [POSTER: A PU Learning based System for Potential Malicious URL Detection](https://dl.acm.org/citation.cfm?id=3138825) 125 | 126 | ### Web安全之SQLi检测 127 | - [三种特征向量对深度学习攻击检测的影响](https://manning23.github.io/2017/08/08/三种特征向量对深度学习攻击检测的影响/) 128 | 129 | ### Web安全之XSS检测 ### 130 | - [机器学习识别XSS实践](https://www.cdxy.me/?p=773) 131 | - [使用深度学习检测XSS](http://webber.tech/posts/%E4%BD%BF%E7%94%A8%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%A3%80%E6%B5%8BXSS/) 132 | - [使用深度学习检测XSS(续)](http://webber.tech/posts/%E4%BD%BF%E7%94%A8%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%A3%80%E6%B5%8BXSS%28%E7%BB%AD%29/) 133 | 134 | ### Web安全之攻击多分类检测 ### 135 | - [基于机器学习的WEB攻击分类检测模型](https://www.freebuf.com/news/184687.html) 136 | - [基于机器学习的攻击检测系统](https://www.freebuf.com/column/189981.html) 137 | 138 | ### Web安全之WAF建设 139 | 140 | - [WAF建设运营及AI应用实践](https://mp.weixin.qq.com/s/fTm1hUfRmm6ujmjvSHRLUA) 141 | 142 | ### Web安全之Webshell检测 ### 143 | - [基于机器学习的分布式webshell检测系统-特征工程(1)](https://www.s0nnet.com/archives/fshell-feature-1) 144 | - [深度学习PHP webshell查杀引擎demo](https://www.cdxy.me/?p=788) 145 | - [使用机器学习识别WebShell](https://github.com/lcatro/WebShell-Detect-By-Machine-Learning) 146 | - [基于机器学习的分布式Webshell检测系统](https://github.com/Lingerhk/fshell) 147 | - [基于机器学习的Webshell发现技术探索](https://mp.weixin.qq.com/s/1V0xcjH-6V5qJoJILP0pJQ) 148 | - [刘焱: Webshell 发现技术实战解析](http://gitbook.cn/books/5964d154cc597d3e0c08667c/index.html) 149 | - [安普诺张涛:再谈webshell检测](http://www.cnetsec.com/article/22593.html) 150 | - [新开始:webshell的检测](https://iami.xyz/New-Begin-For-Nothing/) 151 | - [基于机器学习的WebShell检测方法与实现(上)](https://www.freebuf.com/articles/web/181169.html) 152 | - [初探机器学习检测PHP Webshell](https://paper.seebug.org/526/) 153 | - [基于AST的Webshell检测](http://foreversong.cn/archives/1386) 154 | 155 | ### Web安全之其他 ### 156 | - [Web安全检测中机器学习的经验之谈](https://iami.xyz/ML-IN-Webshell-Detection-Advantages-And-Disadvantages/) 157 | 158 | ### APT检测 159 | - [APT detection based on machine learning](https://mp.weixin.qq.com/s?__biz=MzU5MTM5MTQ2MA==&mid=2247484139&idx=1&sn=0da63a49f341eccc0bb48c954d8ebbb4&chksm=fe2efd60c95974767521fe6a6b7257a1d05e5482fc7ddeda281bdf0f0deb20add82d1a82d8ec&mpshare=1&scene=1&srcid=&pass_ticket=bjnNiDKomd79pQvRonW%2BXsTe6JrO%2FFs6oII12dZaLBPuQOtNK6Rzh9WSJ%2B%2F89ZUA#rd) 160 | - [RSAC 2019 | 机器学习算法分析引擎助力安全威胁推理分析](http://blog.nsfocus.net/machine-learning-algorithms-analysis-engine-security-threat-reasoning/) 161 | 162 | ### 安全运营 163 | - [解决机器学习和安全运营之间的最后一公里问题](https://www.anquanke.com/post/id/163637) 164 | - [Data-Knowledge-Action: 企业安全数据分析入门](https://www.cdxy.me/?p=803) 165 | - [RSAC 2019 | 采用NLP机器学习来进行自动化合规风险治理](http://blog.nsfocus.net/automated-compliance-risk-management-nlp-machine-learning/) 166 | 167 | ### 二进制安全 168 | - [机器学习在二进制代码相似性分析中的应用](https://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458303210&idx=1&sn=345f8cec156ada8fa9bf6a6d6de83906&chksm=b1818a6086f60376e766baf472171d8e2c780b2913568b46b683e3112fcc5f86c9bf4c19e38b&mpshare=1&scene=1&srcid=&sharer_sharetime=1580984631757&sharer_shareid=5dc01f49f38fd64ff3e64844bc7d2ea7&exportkey=A0qHBeUryuXO6zhGWt5OJNw%3D&pass_ticket=gjTFXl4hPMTBWzlKpWZWqK8HivXQ8q7ChNndmw4I8JrdAK0jWWFvKIq7OMnO3BhL#rd) 169 | 170 | ### 杂项 ### 171 | - [机器学习在WindowsRDP版本和后门检测上的应用](https://www.anquanke.com/post/id/157175) 172 | - [用机器学习检测恶意PowerShell](https://xz.aliyun.com/t/2437) 173 | - [Deep learning rises: New methods for detecting malicious PowerShell](https://www.microsoft.com/security/blog/2019/09/03/deep-learning-rises-new-methods-for-detecting-malicious-powershell/) 174 | - [机器学习算法在用户行为检测(UBA)领域的应用](http://dearcharles.cn/2017/11/11/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AE%97%E6%B3%95%E5%9C%A8%E7%94%A8%E6%88%B7%E8%A1%8C%E4%B8%BA%E6%A3%80%E6%B5%8B-UBA-%E9%A2%86%E5%9F%9F%E7%9A%84%E5%BA%94%E7%94%A8/) 175 | - [利用机器学习和规则实现弱口令检测](https://manning23.github.io/2018/10/12/%E5%88%A9%E7%94%A8%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%92%8C%E8%A7%84%E5%88%99%E5%AE%9E%E7%8E%B0%E5%BC%B1%E5%8F%A3%E4%BB%A4%E6%A3%80%E6%B5%8B/) 176 | - [一个关于人工智能渗透测试分析系列](https://github.com/hongriSec/AI-Machine-Learning-Security) 177 | - [机器学习在安全攻防场景的应用与分析](https://www.freebuf.com/articles/neopoints/152457.html) 178 | 179 | ## 保护AI ## 180 | - [如何利用AI对抗“数据污染”和”数据中毒“?](https://www.anquanke.com/post/id/150653) 181 | - [对抗数据中毒--机器学习在阿里巴巴网络安全的应用](https://www.leiphone.com/news/201806/rYrfwtaeCNohEf0D.html) 182 | 183 | # 对抗篇 # 184 | ## 使用AI攻击应用 ## 185 | - [AI与Android漏洞挖掘的那些事儿](https://www.zybuluo.com/qinyun/note/957067) 186 | - [AI与安全的恩怨情仇五部曲「1」Misuse AI](https://www.zuozuovera.com/archives/1565/) 187 | - [一种基于机器学习的自动化鱼叉式网络钓鱼思路](https://www.freebuf.com/articles/web/132811.html) 188 | - [Weaponizing data science for social engineering: 189 | Automated E2E spear phishing on Twitter](https://www.blackhat.com/docs/us-16/materials/us-16-Seymour-Tully-Weaponizing-Data-Science-For-Social-Engineering-Automated-E2E-Spear-Phishing-On-Twitter-wp.pdf) 190 | - [Deep Exploit: Fully automatic penetration test tool using Machine Learning](https://securityonline.info/deep-exploit/) 191 | - [GyoiThon: Fully automatic penetration test tool using Machine Learning](https://github.com/gyoisamurai/GyoiThon) 192 | - [CNN+BLSTM+CTC的验证码识别从训练到部署](https://mp.weixin.qq.com/s/2v86piOgtK_t--Pzu28LgQ) 193 | - [Generating Adversarial Malware Examples for Black-Box Attacks Based on GAN](https://arxiv.org/abs/1702.05983) 194 | 195 | ## 攻击AI ## 196 | ### 攻击AI基础框架 ### 197 | - [深度学习框架中的魔鬼——探究人工智能系统中的安全问题](https://www.anquanke.com/post/id/86989) 198 | - [对深度学习的降维攻击 — 人工智能系统数据流中的安全风险](https://www.anquanke.com/post/id/95095) 199 | - [DEFCON CHINA议题解读 | 对深度学习系统的数据流攻击](https://www.anquanke.com/post/id/144837) 200 | - [AI繁荣下的隐忧——Google Tensorflow安全风险剖析](https://security.tencent.com/index.php/blog/msg/130) 201 | - [AI与安全「2」:Attack AI(4)聊聊机器学习框架相关的CVE](https://www.anquanke.com/post/id/205508?from=timeline) 202 | 203 | ### 攻击AI数据/模型 ### 204 | - [安全领域中机器学习的对抗和博弈](http://bindog.github.io/blog/2016/11/13/game-playing-with-ml-in-security/) 205 | - [基础攻防场景下的AI对抗样本初探](https://www.cdxy.me/?p=798) 206 | - [使用生成对抗网络(GAN)生成DGA](http://webber.tech/posts/%E4%BD%BF%E7%94%A8%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9C%28GAN%29%E7%94%9F%E6%88%90DGA/) 207 | - [详解如何使用Keras实现Wassertein GAN](https://mp.weixin.qq.com/s/F2gBP23LCEF72QDlugbBZQ) 208 | - [Is attacking machine learning easier than defending it?](http://www.cleverhans.io/security/privacy/ml/2017/02/15/why-attacking-machine-learning-is-easier-than-defending-it.html) 209 | - [对深度学习的逃逸攻击 ——探究人工智能系统中的安全盲区](https://www.anquanke.com/post/id/87037) 210 | - [NLP机器学习模型安全性及实践](https://bbs.pediy.com/thread-230125.htm) 211 | - [机器学习对抗性攻击报告](https://mp.weixin.qq.com/s/QKXd9AKkVwk3CO45-BbZSA?) 212 | - [从安全视角对机器学习的部分思考](https://mp.weixin.qq.com/s/kP4YuiksI1dfZdT8Z_j_cQ) 213 | - [污染TensorFlow模型: XCTF 2019 Final tfboys命题思路](https://www.cdxy.me/?p=813) 214 | - [中科院信工所发布《深度学习系统的隐私与安全》综述论文,187篇文献总结](https://mp.weixin.qq.com/s/B0FTTAppy_AUt6SXVFL-Pg) 215 | - [Towards Privacy and Security of Deep Learning Systems: A Survey](https://arxiv.org/pdf/1911.12562v1.pdf) 216 | 217 | ### 攻击AI系统 218 | 219 | - [门神WAF众测总结](https://mp.weixin.qq.com/s/w5TwFl4Ac1jCTX0A1H_VbQ) 220 | 221 | # 心得体会篇 222 | 1. 随着学习门槛的提高,公开的工业界资料已经相对匮乏,所以开始学习一些学术界较新的paper,理解吃透再工程化。 223 | 2. Reinforcement Learning + Deep Learning = AI 224 | 3. 人工智能技术应用于网络安全等各个垂直领域已经是大势所趋(虽然不得不承认有其局限性,但是我们可以通过细划分场景有针对性的进行安全问题分解、抽象,结合机器学习技术解决问题) 225 | 4. 对安全场景、攻击模式、数据的认识深度,远比选择工具重要 226 | 5. 加高自己的技术壁垒:业务业务业务,锻炼业务敏感性,理解业务需求,给出解决方案(基于业务的特征工程) 227 | 6. 万物皆规则,机器学习训练的模型也是一种规则。用传统规则还是机器学习模型规则取决于对业务场景的先验知识的掌握程度。 228 | 229 | # 学习交流篇 230 | 为适配(碎片化时间)移动端阅读与知识传播,后续持续更新内容,将同步在个人微信公众号:404 Not F0und,同时公众号提供了该项目的PDF版本,关注后回复"智能安全" 即可下载。公众号致力于分享原创高质量干货,包括但不限于:应用安全、机器智能、安全算法、安全数据分析、企业安全建设。知识分享的价值在于既能系统化梳理自己的研究和思考,又可能和他人思维碰撞,发生一些有意思的事情。​ 231 | 232 | ![](https://i.imgur.com/C9qsWz6.jpg) 233 | 234 | 235 | 236 | 237 | 238 | 239 | -------------------------------------------------------------------------------- /从Black Hat Speaker到国内外研究者:强化学习的安全应用.md: -------------------------------------------------------------------------------- 1 | # 从Black Hat Speaker到国内外研究者:强化学习的安全应用 2 | ## 强化渗透测试、强化入侵检测、强化攻击和防御策略 3 | 深度长文,看完的我敬你是条汉子。 4 | ## 前言 5 | 人工智能技术下的分支有很多,有机器学习、深度学习、强化学习、联邦学习等。笔者直观的理解,强化学习较其他人工智能技术而言,擅长决策和多步决策,而“决策”二字才更可能接近于人的智能,也即强化学习更可能体现人的智能。 6 | 7 | 纵观强化学习发展史和应用史,在应用于网络空间安全领域方面,笔者找到为数不多的一些资料。这里挑选出三个有代表性的例子来实践,分别是强化攻击、强化防御、强化攻击绕过和反绕过,其中有强用强化学习疑似灌水的例子,也有有实际意义的强化学习的安全应用。 8 | 9 | ## 强化渗透测试 10 | 先来看看第一例,记得今年三月份面试头条的时候,向面试官提到过Black Hat上有一款基于深度强化学习的自动化渗透工具,当时没有仔细研究,只是觉得这种应用属实新颖,如今深入分析后,发现pr的意义大于实践的意义。 11 | 12 | 关于这款名为DeepExploit的工具,网上有为数不多的几篇分析,但大多是翻译了这款工具的readme.md,或是没有强化学习领域的背景知识,没有触及到核心算法,即深度强化学习到底怎么被使用来打造自动化渗透工具的。 13 | 14 | 先看看这款工具公开的Presentation: 15 | * February 17th,2018: SECCON YOROZU 2018 16 | * August 9th,2018: Black Hat USA 2018 Arsenal 17 | * August 10th,2018: DEF CON 26! AI Village 18 | * October 24th,2018: CSS2018 19 | * November 3rd,2018: AV TOKYO 2018 Hive 20 | * December 6th,2018: Black Hat EURO 2018 Arsenal 21 | 22 | 初次看到这里,笔者的内心是激动的,终于看到强化学习被成功用来强化渗透测试了。但是仔细一看介绍,是要配合metasploit来渗透,可以说是基于深度强化学习的metasploit渗透工具,更具体的说,这款工具只是帮助使用者使用metasploit渗透时,根据目标机器状态快速决策出大概率能执行成功的payload。那么这里就有个比较明显的问题是:这款工具的天花板受限于metasploit本身的能力。 23 | 24 | 当掌握DeepExploit的基本描述后,接着(不分析源码)来试用一下。先在kali中按readme安装好DeepExploit,再利用metasploitable2安装了一个靶机,接着使用DeepExploit来做攻击训练,观察其工作流程。 25 | 26 | 先通过nmap扫描端口和服务信息1 27 | 28 | 再载入metasploit的exploit模块和payloads,并基于这两者构造exploit_tree,exploit_tree可以看成是按照一定格式排列的metasploit漏洞库2 29 | 30 | 接着对web端口及服务做精细化分析,通过爬虫和分析http响应包,规则匹配,提取web服务信息,这其中包括了对CMS进行指纹识别3 31 | 32 | 然后根据端口选择metasploit中可以利用的exploit模块4 33 | 34 | 最后开始训练,找到了靶机的漏洞5 35 | 36 | 到这里为止,训练结束,测试的时候一击即中。看上去可以完美地结束了,然而到这里还是没法回答笔者心中的疑惑:深度强化学习到底是怎么被用来帮助metasploit做决策的。 37 | 38 | 我们的分析才刚开始。在开始之前,首先得补习一下强化学习的基本知识。强化学习的学习思路和人类似,是在实践中学习,比如学习走路,如果跌倒了,大脑就会给出一个负反馈和负奖励值,说明走路的姿势不对,然后我们从跌倒的状态中爬起来,继续行走,如果正常走了一步没有跌倒,大脑就会给出一个正反馈和正奖励值,我们就会知道这是一个好的走路姿势,不断重复此过程。 39 | 40 | 强化学习大概有8个基本要素:环境的状态S、个体的动作A、环境的奖励R、个体的策略π、个体在策略π和状态S时,采取行动后的价值V、奖励衰减因子γ、环境的状态转换模型、探索率ϵ。这其中环境的状态S、个体的动作A和环境的奖励R是比较简单且基本的三要素。总的来说,强化学习就是个体agent和环境的不断交互不断进化的过程,基于环境此时的状态S,个体agent根据策略π和价值V选取一个动作A并执行,得到下一个状态S'和奖励值R,不断循环,直到满足特定条件退出。 41 | 42 | 强化学习和监督学习最大的区别是它没有监督学习准备好的训练数据和输出值,强化学习只有奖励值。同时强化学习的每一步与时间顺序前后关系紧密,而监督学习的训练数据之间一般是独立的,没有这种前后的依赖关系。 43 | 44 | 有了强化学习的基本知识后,继续来分析DeepExploit。笔者分析完提出了几个问题,搞清楚这些问题,基本上就可以真正掌握这款工具了。 45 | 46 | 1. 主循环结构?主循环迭代5000次&&内循环迭代20次?5000是指主循环总共最大能执行5000步,每次选择payload算一步。20次是指固定exploit模块,对每个exploit,最多可以选择20次payload。 47 | 48 | 2. 用的什么强化学习算法?A3C,Asynchronous Advantage Actor Critic,一种分布式训练的强化学习高级版算法。如果选择10个线程,那么每个线程都可以迭代主循环的5000次。 49 | 50 | 3. 此场景下,强化学习八大基本要素之一的动作要素,作者是如何定义的?是选择exploit还是payload?针对端口的可利用exploit模块们,随机固定exploit模块,动作空间是此exploit模块下可以利用的payloads。 51 | 52 | 4. 状态是如何定义的?以端口为索引,状态为:系统类型,产品/服务名称,版本号,exploit模块索引,target索引。发现状态的定义可能有问题,作者定义的状态有五个参数,其中四个参数都是固定不变的,只有一个target索引在变,分析了代码,发现target索引的变化完全是随机的,不是由动作action引发的状态变化,同时各个状态之间可能也没有必然的内在联系。 53 | 54 | 5. 如何训练和测试?前期准备:Nmap扫描,获取端口信息,载入exploit和payload得到exploit tree,针对web端口精细化操作,例如通过爬虫和分析HTTP响应包,使用静态规则和ML得到产品名称和版本,根据端口,选择msf中available的exploit modules。之后开始训练:以单线程为例,开启主循环:设置初始状态(状态为:系统类型,产品/服务名称,版本号,exploit模块索引(exploit模块),target索引(攻击的目标类型),同时随机选择一个端口、exploit module,target),开启循环:选择当前状态的动作(选择此时exploit module对应的payload list中的一个payload作为动作执行),得到下一个状态(target索引会随机改变),循环,跳出,跳到主循环,循环,跳出主循环。 55 | 56 | 6. 如何多次增量训练?即训练记忆如何持久化?每次训练加载以往训练结果,即神经网络中的参数,再训练更新参数,做决策。 57 | 58 | 7. 有哪些问题/局限性?天花板的问题,DeepExploit的上限受制于metasploit框架的天花板。状态的问题,上面已经说到的状态的定义可能有问题,那么这个问题可能会导致的问题是,第一次迭代可能需要执行一百次动作来获取可以执行成功的payload,第二次迭代可能需要执行十次动作来获取payload,最后可能一次迭代就可以获取payload。我们想要的结果其实就是一个动作,一个payload,而不是一条动作链。这直接导致了这种训练与传统的暴力破解找payload有什么区别呢?看上去在用强化学习解决问题,但是实际运行的思想可能和穷举型的暴力破解的思想差不多。平行世界的问题,训练VS测试永远是个难题,但在此处问题更甚,搭建的漏洞环境VS真实漏洞场景,感觉在过家家,搭建100个靶机训练可能都解决不了一个实际问题。作者的本意可能是想仿照AlphaGo,通过输入大量棋盘数据,学习人类对弈,通过更多的渗透师使用,学习渗透师们在各种实际场景下如何做决策,来缓解此问题。 59 | 60 | 8. 可以怎样改进?在天花板范围下,尽量挖掘出最大潜力,比如不止是做payload的决策,也可以做exploit模块的决策,根据端口直接选择大概率能利用成功的exploit模块和payload。升高天花板,可以开发自己的漏洞脚本,自定义exploit和payload。状态的问题还没想好如何优化,可能这个场景就不太适合使用强化学习,因为个体对环境(目标机器)执行动作(exploits和payloads),环境的状态可能一直一成不变或是状态之间无内在联系。 61 | 62 | 9. 实际意义如何?选取的问题点比较小,只是做payload的决策,同时程序总体执行的时间很长。pr的意义>实战意义,实际意义不大。 63 | 64 | 针对一些疑惑,笔者给DeepExploit的作者发了封邮件,希望得到作者的解惑。 65 | 66 | 67 | ## 强化入侵检测 68 | 再来看看第二例,国外有研究者使用强化学习来做入侵检测。作者使用NSL-KDD数据集,得到特征数据和标签数据。把特征定义为状态,标签定义为动作,也即是对某一条流量的状态(特征数据)做出是否告警的动作(标签0代表不告警,标签1代表告警),整个算法流程能跑的通,性能也还可以。但是这里笔者觉得可能有两个问题,其一是问题的抽象,直观来说流量应该定义为动作action,机器本身的状态定义为状态,不过作者这种定义一定程度上也能说得通。其二是状态的问题,作者直接选取下一条数据的特征作为下一个状态,也就是说无论对上一条数据做出的动作action是0还是1,都不影响下一个状态,每时每刻的状态不受动作影响,都是固定的。笔者认为这种把入侵检测问题抽象成强化学习的建模方式不太合适,仿佛又回到了有监督学习。如果把是否告警改成是否拦截,选择拦截动作的话,那么下一个状态数据可能就会变化了,这也许更契合强化学习的问题抽象,但是这种建模方式可能会导致业务问题,同样达不到最理想的强化学习建模状态。 69 | 70 | 71 | ## 强化攻击绕过和反绕过 72 | 最后看强化学习安全应用比较成功的第三例,国内外有研究者使用强化学习来做攻击绕过和反绕过的策略选择。比如兜哥的书《Web安全之强化学习与GAN》中,有三个相关的例子,分别是智能提升恶意程序检测能力、智能提升WAF的防护能力和智能提升垃圾邮件检测能力。这三个例子核心思想大体相同,比如定义payload的特征数据是状态,常见攻击绕过方式为动作,比如waf中的16进制编码,大小写混淆,插入注释等。原始状态连续经过几个动作,比如原始状态->动作a->状态a(原始状态执行动作a)->动作b->状态b(状态a执行动作b)->动作c->状态c(状态b执行动作c)->每一个状态都会被传统机器学习模型检测,如果检测到的话,继续执行绕过动作得到下一个状态,直到绕过成功。如果绕过成功的话,每一步执行的动作ation组合起来,就是一条可以绕过传统机器学习模型检测的一环扣一环的bypass链路。同时可以将最后传统机器学习模型不能成功检测的状态(特征数据),作为训练数据,对机器学习模型重新训练,以提升模型防御bypass的能力。 73 | 74 | 尽管强化学习更可能接近于人的智能,理论上来说强化学习的天花板远高于机器学习、深度学习等技术,但是因为各种各样的原因,导致强化学习在安全领域的应用还很局限,这其中的原因和解决方法需要大家一起来挖掘。 75 | 76 | 77 | ## Ref 78 | - [Deep Exploit:Fully automatic penetration test tool using Deep Reinforcement Learning](https://github.com/13o-bbr-bbq/machine_learning_security/tree/master/DeepExploit) 79 | - [gym-network_intrusion](https://github.com/harik68/gym-network_intrusion) 80 | - [Reinforcement Learning for Anomaly Detection](https://github.com/harik68/RL4AD) 81 | - [anomaly-detection-through-reinforcement-learning](https://zighra.com/blogs/anomaly-detection-through-reinforcement-learning/) 82 | - [《Web安全之强化学习与GAN》](https://github.com/duoergun0729/3book) 83 | - [DeepExploit工具调研](https://gh0st.cn/archives/2019-07-04/1) 84 | - [强化学习Tutorial:偏理论(笔者感受)](https://www.cnblogs.com/pinard/category/1254674.html) 85 | - [强化学习Tutorial:简单易懂(笔者感受)](https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/) 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /划重点.md: -------------------------------------------------------------------------------- 1 | # AI-for-Security-Learning 2 | 3 | 最近更新日期为:2020/05/27 4 | 5 | - [在网络安全领域应用机器学习的困难和对策](https://mp.weixin.qq.com/s/a04Lh49CKKrIbFW8-P1_Nw)
6 | 我的思路为:安全场景->数据->算法->系统->结果。
7 | 按照我的理解,将文中7大困难和对策梳理为:确定任务、考虑任务对错误的容忍度、考虑任务的对抗环境->数据的质和量->模型的可解释性->机器学习系统难以部署和维护->难以全面评估。 8 | 9 | --------------------------------------------------------------------------------