网络安全自学篇(二十二)| 基于机器学习的恶意请求识别及安全领域中的机器学习
3.网络安全
网络安全是指网络系统软硬件受保护,网络服务不中断。除了现有的隐藏信号识别等AI应用,本部分将列举“大数据DDoS检测”与“伪基站短信识别”两例。
抗DDoS——大数据DDoS检测
近年来,基于机器学习算法的分布式拒绝服务(distributeddenial-of-service,简称DDoS)攻击检测技术已取得了很大的进展。在攻击感知方面,可从宏观攻击流感知与微观检测方法两个角度,分别基于IP流序列谱分析的泛洪攻击与低速率拒绝服务(Low-rate Denial of Service,LDoS)方法进行感知。在此基础上,将DDoS攻击检测转化为机器学习的二分类问题。
从概率点判别角度,基于多特征并行隐马尔科夫模型(Multi-FeatureParallel Hidden Markov Model,MFP-HMM)的DDoS攻击检测方法,利用HMM隐状态序列与特征观测序列的对应关系,将攻击引起的多维特征异常变化转化为离散型随机变量,通过概率计算来刻画当前滑动窗口序列与正常行为轮廓的偏离程度。从分类超平面判别角度,基于最小二乘孪生支持向量机(LSTSVM)的DDoS攻击分类超平面检测方法,采用IP包五元组熵、 IP标识、TCP头标志和包速率等作为LSTSVM模型的多维检测特征向量,以体现DDoS攻击存在的流分布特性。
无线网络攻击——伪基站短信识别
为了解决“犯罪分子通过冒充10086、95533等机构发送短信来获得用户的账号、密码和身份证等信息”这一问题。2016年,360 手机依托 360公司研发的伪基站追踪系统,率先在全球推出了伪基站诈骗短信识别功能,拦截准确度达 98%,可有力的确保用户财产安全。360伪基站追踪系统的核心价值就在于它解决上述伪基站打击难题,依托海量的数据、高效的数据分析处理和数据可视化,可以为追查伪基站供精确的信息与准确的判断。
2015年12月,360手机在全球率先推出了伪基站垃圾、诈骗短信精准识别功能。由于垃圾和诈骗短信的识别和分类涉及到自然语言处理技术与机器学习模型, 360使用语言学规则与统计学方法相结合的方式来定义伪基站短信特征,可从海量数据中精确识别出伪基站短信,因而其识别精度可达 98%。对于360伪基站追踪系统的发布、部署,以及其在360手机中的成功运用,有力遏制猖獗的伪基站诈骗活动,有助于维护广大手机用户及其他群众的财产安全。
4.Web安全
Web安全是指个人用户在Web相关操作时不因偶然或恶意的原因受到破坏、更改、泄露。除了现有的SQL注入检测、XSS攻击检测等 AI应用,本部分将列举“恶意URL检测”与“ Webshell检测”两例。后续实验部分,作者将详细描述Python实现该过程。
安全网站检测——恶意URL检测
在市面上,Google的Chrome已将检测模型与机器学习相结合,支持安全浏览,向用户警示潜在的恶意网址。结合成千上万的垃圾邮件、恶意软件、有启发式信号的含勒索软件的附件和发送者的签名(已被标识为恶意的),对新的威胁进行识别和分类。
目前大多数网站检测方式是通过建立URL黑白名单的数据库匹配进行排查,虽然具有一定的检测效果,但有一定滞后性,不能够对没有记录在案的URL进行识别。而基于机器学习,从 URL特征,域名特征, Web特征的关联分析,使恶意URL识别具有高准确率,并具有学习推断的能力。一些开源工具如Phinn提供了另个角度的检测方法,如果一个页面看起来非常像Google的登录页面,那么这个页面就应该托管在Google域名。Phinn使用了机器学习领域中的卷积神经网络算法来生成和训练一个自定义的Chrome扩展,这个 Chrome扩展可以将用户浏览器中呈现的页面与真正的登录页面进行视觉相似度分析,以此来识别出恶意URL(钓鱼网站)。
注入攻击检测——Webshell检测
Webshell常常被称为匿名用户(入侵者)通过网站端口对网站服务器的某种程度上操作的权限。由于Webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。在攻击链模型中,整个攻击过程分为:踩点、组装、投送、攻击、植入、控制、行动。在针对网站的攻击中,通常是利用上传漏洞,上传Webshell,然后通过Webshell进一步控制web服务器。
常见传统的Webshell检测方法主要有静态检测、动态检测、语法检测、统计学检测等。随着AI的兴起,基于AI的Webshell文件特征检测技术要较之传统技术更胜一筹,通过词袋&TF-IDF模型、Opcode&N-gram模型、Opcode调用序列模型等特征抽取方式,采用合适的模型,如朴素贝叶斯和深度学习的MLP、CNN等,实现Webshell的检测。类似地,也可进行SQL注入、 XSS攻击检测等。
5.安全漏洞与恶意代码
安全漏洞是指漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷;恶意代码是指具有安全威胁的代码。除了现有的恶意软件检测与识别等AI应用,本部分将列举“恶意代码分类”与“系统自动化漏洞修补”两例。
代码安全——恶意代码分类
早期反病毒软件无论是特征码扫描、查找广谱特征、启发式扫描,这三种查杀方式均没有实际运行二进制文件,因此均可归为恶意代码静态检测的方法。随着反恶意代码技术的逐步发展,主动防御技术、云查杀技术已越来越多的被安全厂商使用,但恶意代码静态检测的方法仍是效率最高,被运用最广泛的恶意代码查杀技术。
2016年在Kaggle上微软发起了一个恶意代码分类比赛,冠军队采用了一种恶意代码图像绘制方法。将一个二进制文件转换为一个矩阵(矩阵元素对应文件中的每一个字节,矩阵的大小可根据实际情况进行调整),该矩阵又可以非常方便的转换为一张灰度图。再基于N-gram,统计概率模型。最后代入分类决策树与随机森林进行训练与测试。这个方法能够发现一些静态方法发现不了的变种,并且也可推广应用到Android和IOS平台的恶意代码检测中。
漏洞修复——系统自动化漏洞修补
2016年8月,DARPA在DEFCON黑客大会上举办Cyber Grand Challenge挑战赛,要求参赛者在比赛中构建一套智能化的系统,不仅要检测漏洞,还要能自动写补丁、并且完成部署。当今的软件漏洞平均发现周期长达312 天,发现后还需要对漏洞研究、开发补丁程序,到最后公布,在这期间,攻击者很有可能已经利用这个漏洞发起网络攻击。因此系统自动化漏洞修复十分必要。
2017年10月,MIT研究团队研发了一个称为“创世纪”的系统,能够对以前的补丁进行自动学习,生成补丁模板,并对候选补丁进行评估。据研究者说,“创世纪是第一个自动推理补丁生成转换或根据先前成功的补丁搜索候选补丁空间的系统”,它修复的 bug几乎是最好的手编模板系统的两倍,同时也更精确。这些模板是根据真实补丁的特定类型“订制”而成,因此不会产生尽可能多的无用备选。
6.入侵检测与防御
入侵检测与防御是指对入侵行为的发现并采取相应的防御行动。除了现有的内网入侵检测等AI应用,本部分将列举“APT检测与防范”与“C2链接分析”两例。
高级攻击入侵检测——APT检测与防范
进行APT攻击的攻击者从侦查目标,制作攻击工具,传递攻击工具,利用漏洞或者弱点来进行突防,拿下全线运行工具,后期远端的维护这个工具,到最后达到了长期控制目标的目的。针对这种现在日益广泛的APT 攻击,威胁情报存在于整个攻击的各个环节。
威胁情报是基于证据的描述威胁的一组关联的信息,包括威胁相关的环境信息,如具体的攻击组织、恶意域名。恶意域名又包括远控的IOC、恶意文件的HASH和URL以及威胁指标之间的关联性,时间纬度上攻击手法的变化。这些信息汇总在一起形成高级威胁情报。除此之外,所关注的情报,还包括传统威胁种类的扩充,包括木马远控,僵尸网络,间谍软件, Web后门等。利用机器学习来处理威胁情报,检测并识别出APT攻击中的恶意载荷,提高APT攻击威胁感知系统的效率与精确性,让安全研究人员能更快实现 APT攻击的发现和溯源。
DGA域名检测——C2链接分析
DGA(域名生成算法)是一种利用随机字符来生成C2域名,从而逃避域名黑名单检测的技术手段。而有了DGA域名生成算法,攻击者就可以利用它来生成用作域名的伪随机字符串,这样就可以有效的避开黑名单列表的检测。伪随机意味着字符串序列似乎是随机的,但由于其结构可以预先确定,因此可以重复产生和复制。该算法常被运用于远程控制软件上。
首先攻击者运行算法并随机选择少量的域(可能只有一个),然后攻击者将该域注册并指向其C2服务器。在受害者端恶意软件运行DGA并检查输出的域是否存在,如果检测为该域已注册,那么恶意软件将选择使用该域作为其命令和控制( C2)服务器。如果当前域检测为未注册,那么程序将继续检查其它域。因此,安全人员可以通过收集样本以及对DGA进行逆向,来预测哪些域将来会被生成和预注册并将它们列入黑名单中。