抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

前言

事情起因:老师让我帮忙找一些人工智能在网络安全领域涉及到的技术和应用,刚好来个我接触过的小总结~

然后在前沿网络安全领域的应用(3-5),主要是一个在读研同学提供的,他们的实验室主要是搞AI安全,感谢~

一、用到的人工智能相关技术

用到的人工智能技术太多了,这里适当列举一些学习过的~

二、人工智能在传统网络安全领域的应用

1、图形验证码识别

【应用背景简述】

攻击者在进行需要登录操作的Web攻击时,会使用脚本或工具结合字典对用户弱口令(许多用户为了便捷易记,通常使用 123456、password等小于8位且没有组合大小写数字特殊字符密码)进行爆破。此外,通常许多管理员只使用了 admin/admin 等弱口令组合,使得攻击者可以轻易进入网站后台获取大量数据,危害性极大。

网站为了用户的安全性,增加了图形验证码操作,这些验证码通常是增加了字符重叠变形模糊等噪声,传统的OCR技术不能直接提取(如图1-1所示),所以攻击者无法直接通过脚本或工具获得图形验证码的文本信息,从而防止攻击者恶意爆破弱口令。

image-20210807233339406

图1-1 经过添加噪声的图形验证码

其实这本质上是一个从图形中提取文本信息问题,通过卷积、残差等神经网络在图像识别中都能取得了不错的效果,像图1-1中的验证码一般经过一定数据量的训练可以达到99%的准确率。

【相关开源项目 - 具体原理和过程可以看项目README】

1、基于 CNN/ResNet/DenseNet+GRU/LSTM+CTC/CrossEntropy 的图形验证码识别

https://github.com/kerlomz/captcha_trainer

2、基于Keras 和深度卷积神经网络的图形验证码识别

https://github.com/ypwhs/captcha_break

【相关论文】

[1]田勇.基于机器学习的字符图像验证码识别研究[J].集宁师范学院学报,2021,43(02):87-90.

[2]汤战勇,田超雄,叶贵鑫,李婧,王薇,龚晓庆,陈晓江,房鼎益.一种基于条件生成式对抗网络的文本类验证码识别方法[J].计算机学报,2020,43(08):1572-1588.

2、源代码安全审计

【应用背景简述】

代码审计是通过自动化分析工具和人工审查的组合审计方式,通过对源代码进行逐条分析,发现程序错误、安全漏洞和违反程序规范,最后提供代码修订措施和建议。如图2-1 kafka项目业务涉及到 OS 的 CLI 交互时,通常会拼接用户传入的参数,如果参数可控没有进行合理过滤会导致命令注入漏洞, 攻击者就可以通过拼接的方式注入攻击者想要执行的命令,从而控制目标计算机。但下图中,其实os.system 和 safe.system 都是存在命令注入的,传统的re匹配非常容易产生漏报和误报(当然还有很多单由规则匹配导致的误报漏报的场景)。实际场景中这些函数逻辑是十分复杂,代码量十分庞大的,单靠人工审计局限性也很明显。

因此一般结合一些NLP相关的,如词向量和语义分析等,来结合程序上下文语义来提高检测的精确率和召回率。

image-20210807233504356

【相关开源项目】

暂无发现

【相关论文】

[1] A Review of Machine Learning in Software Vulnerability Research

https://www.dst.defence.gov.au/sites/default/files/publications/documents/DST-Group-GD-0979.pdf

[2] 赵伟. 一种PHP代码审计技术的研究与实现[D].西安电子科技大学,2020.

[3] 陈璐璐. 基于机器学习的代码缺陷自动确认方法研究及实现[D].北京邮电大学,2020.

3、WebShell检测

【应用背景简述】

Webshell是指以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,攻击者一般通过向服务器植入恶意代码以实现控制Web服务器的目的。

一般的webshell可通过判断敏感函数(涉及到代码执行,如eval、system等)来进行判断,网站上是否存在Webshell,如图3-1右边所示。但一般有经验的攻击者会把Webshell经过混淆,和其他网页文件一样使用正常变量,接收参数,使用正常的函数,但人工很容易能看出是Webshell,通过传统的关键字匹配就无法识别。

image-20210807233513040

图3-1 经过混淆Webshell和正常Webshell

【相关开源项目】

1、提取PHP执行中的opcode,采用 opcode词袋 + tf-idf 进行关键信息提取,采用朴素贝叶斯算法进行训练。

https://github.com/hi-wenr0/mlcheckwebshell

补充:opcode 是汇编指令级代码,因为提取opcode更能还原恶意代码行为特征,而无需关心原有代码的混淆情况。但人直接看汇编代码,很难理解其上下文信息,很难判断一个文件是否为Webshell。

【相关论文】

[1] 周子恒,李琳,赵叙,李凯.基于深度学习的Webshell恶意代码检测方法研究[J].电脑知识与技术,2021,17(07):180-183.

[2] 岳子涵,薛质,沈兴文,吴毅良.基于语义分析的PHP Webshell检测方法研究[J].通信技术,2020,53(12):3051-3055.

4、恶意样本检测

【应用背景简述】

引用自:

Huang, X., Ma, L., Yang, W. et al. A Method for Windows Malware Detection Based on Deep Learning. J Sign Process Syst 93, 265–273 (2021). https://doi.org/10.1007/s11265-020-01588-1

随着互联网在人们工作生活中的深入应用和快速发展,恶意软件的种类和数量与日俱增,给网络用户的信息安全、隐私安全等带来极大威胁。

最早的恶意软件检测技术是基于特征码匹配的检测,分析人员提取恶意软件中一或多段段具有标志性的代码序列作为“特征码”,加入到杀毒软件的特征库中,杀毒软件扫描时,将文件与特征库中的特征码一一匹配,若发现特征一致,则判定该文件为恶意。这种检测技术的好处是准确率较高、误报率较低,因为特征是由人工分析提取,所以不容易出现将正常文件错认为病毒的情况;但坏处是面对新出现的恶意软件力不从心,用户不受保护的空窗期较长,检测具有滞后性。

为弥补特征码的这种缺陷,又出现了基于启发式规则的检测和云检测。所谓启发式规则就是一些经验法则,将分析人员判定恶意文件的一些经验融入到杀毒软件中,例如一个文件加了一些不常见的“壳”,就可以认为这个文件比较可疑,这种检测技术可以应对部分新出现的恶意软件,但有可能产生较多误报。云检测则是将本地的病毒特征库移到了云端,从而消除了用户手动更新本地特征库的需要,使得空窗期大大缩短。

由于传统特征码匹配技术的滞后性和启发式扫描的高误报率,安全公司和研究人员把目光转向机器学习领域,希望借助机器学习检测恶意软件,实现一种既准确又及时的检测。

前人研究已将恶意文件可视化为图像,根据文件信息熵、字节频率值的相对大小将PE文件转化为RGB图,然后赋予危险的API调用赋予越醒目的颜色(恶意软件通常调用一些危险的API),再提取图像特征用传统机器学习算法进行分类。

5、自动渗透测试工具

【应用背景简述】

现有的内网nday批量利用工具多为使用枚举式利用工具,通常在内网造成的动静较大,极易被EDR、态势感知等系统发现,这主要是因为Fofa、ZoomEye、云悉指纹等成熟的在线资产指纹探测工具无法在内网使用,从而无法得知目标主机的指纹信息。只能使用线下工具对目标进行指纹识别意味着指纹库较少,无法准确识别目标资产类型,使得只能针对每个nday进行枚举渗透。

强化学习技术通常可以用相对较少的数据训练出一个不错的拟合模型,在现有信息较少的情况下,如A2C、A3C算法,通过与环境的交互过程中通过学习策略以达成回报最大化,以实现更加精准的nday利用。

image-20210807233535696

【相关开源项目】

1、利用Nmap进行信息收集(同时结合朴素贝叶斯算法识别传统指纹识别方法无法识别的一些特征)、MSF为nday利用框架、A3C强化学习算法实现更加精准的nday利用。

https://github.com/13o-bbr-bbq/machine_learning_security/tree/master/DeepExploit

三、人工智能在前沿网络安全领域的应用

1、人脸识别攻击

【应用背景简述】

人脸识别作为生物指纹验证技术,现已在全国大范围普及开来,也作为公认作为一种安全、适应于支付场景的身份验证方式。人脸识别主要是通过深度学习模型通过提取人脸特征向量的方式进行,而生成对抗网络通过网络上应用到了的模型来生成一种肉眼不可见,但是对机器影响很大的噪声加载造恶这个模型的输入上面,这样的输入就可以导致模型给出错误的结果。如通过添加了恶意噪声来生成一个3D面具并3D打印从而骗过人脸识别算法,从而伪造他人身份。

【相关文章】

深度伪造(Deepfake)原理分析及实战

https://www.anquanke.com/post/id/249632

涉及的论文和开源项目

https://arxiv.org/pdf/2104.11280.pdf

https://github.com/AliaksandrSiarohin/first-order-model

【相关开源项目】

1、通过AdvHat算法对人脸识别系统进行黑盒攻击

https://github.com/papermsucode/advhat

【相关论文】

[1] Yin, Bangjie, et al. “Adv-Makeup: A New Imperceptible and Transferable Attack on Face Recognition.” arXiv preprint arXiv:2105.03162 (2021).

2、态势感知

态势感知是一种基于环境的、动态、整体地洞悉安全风险的能力,是以安全大数据为基础,从全局视角提升对安全威胁的发现识别、理解分析、响应处置能力的一种方式,最终是为了决策与行动,是安全能力的落地。

态势感知虽然更多的利用的是大数据处理技术,因为其应用场景多为大企业内部安全、市级、省级甚至国家级安全层面对威胁风险的感知,数据量多为PB级及其以上。但如何从海量数据中自动分析潜在风险和应对未知威胁,也是个值得研究的问题,许多企业都把特征工程和神经网络技术应用与态势感知系统中,通过关联分析、联动响应和告警降噪等提高高级威胁与异常行为的精确度。

3、成员推理攻击

近年来国家对用户隐私数据越发重视,数据泄漏事件也是层出不穷。深度学习模型通常需要大规模数据集进行训练。成员推理攻击根据一个模型的输出结果以及部分这个模型的参数来反推出包含隐私数据的数据成员,这样可以通过网络上已经应用到的网络模型来反推一些隐私数据。

4、模型窃取攻击

模型窃取攻击就是,比如说网络上应用到一种人工智能模型,那么攻击者就可以通过一部分这个模型的可获得的参数以及一定量的输入来够推断出这个模型的大部分参数,从而重构一个窃取模型来达到盗取专利的效果。

5、数据投毒攻击

人工智能模型的训练需要大量的数据,如果攻击者在训练数据里面做一些投毒处理,比如说把一个正确的标签,改成一个错误的标签,这个模型的训练结果就会出错。应用到网络安全方面,网络上可能一些模型需要用户这边传入数据,但是攻击者就会从用户传入的这些数据里面下毒,这样模型就会出现错误的情况。

参考链接

见相关开源项目和相关论文部分~

评论