ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Fuzz(持续更新)

2022-08-18 03:02:05  阅读:224  来源: 互联网

标签:FTP 特征 持续 APT Fuzz 流量 更新 测试


1. 什么是Fuzz测试?

  漏洞挖掘有三种方法:白盒代码审计、灰盒逆向工程、黑盒测试。其中黑盒的Fuzz测试是效率最高的一种,能够快速验证大量潜在的安全威胁。

  Fuzz测试,也叫做“模糊测试”,是一种挖掘软件安全漏洞、检测软件健壮性的黑盒测试,它通过向软件输入非法的字段,观测被测试软件是否异常而实现。Fuzz测试的概念非常容易理解,如果我们构造非法的报文并且通过测试工具打入被测设备,那么这就是一个Fuzz测试的测试例执行,大多数测试工程师肯定都尝试过这种测试手段。

  对于网络协议漏洞挖掘来说,Fuzz测试也就意味着打入各种异常报文,然后观察设备是否有异常。

  2. 针对FTP sever的Fuzz测试

  在本节我们将设计一个简单的针对FTP server的Fuzz测试脚本。从原理上设计Fuzz测试用例是比较简单的,无非是阅读RFC,根据报文设计异常字段,但在实际实施过程中将会遇到以下几个问题。

  m 网络协议是有状态的,最常见的一种情况就是,我们需要在协议状态机进行到某种状态的时候发送某种报文,比如FTP协议,如果我们想对put命令的参数进行变异、发送异常报文,则我们需要先通过FTP认证;因此要想实现协议的fuzz测试,则只能手工编写脚本,现有的工具和测试仪都无法实现这些复杂逻辑。

  m 另外如何构造异常,这是一个和经验相关性比较大的问题,需要长期积累,以及对安全漏洞有较深入的研究。

  m 如何检测被测设备是否异常,这也是一个非常棘手的问题,比如内存泄露,可能只是泄露几个字节的内存,这时候被测设备外部表现正常。

  在本节中介绍的FTP server的Fuzz测试中,仅构造比较简单的异常—--超长的报文;设备异常通过检查FTP连接的状态来判断。被测设备选择MSR36设备和日常工作中常用的3CDaemon FTP server2.0。具体测试步骤分为如下。

  • 输入超长的FTP用户名,被测设备应该表现正常;
  • 正常登陆FTP后,对于FTP命令“mdelete、cd、mkdir、cwd、mdir、mput、rename”输入超长参数, 被测设备应该表现正常。

  根据测试用例设计相应的测试脚本,测试脚本使用python语言编写。脚本主要由三个函数组成。

  m get_fuzz_str()函数,用于生成Fuzz str,即异常报文的关键部分;在本例中用于生成超长的字符串“aaaaaa…”(如图3所示)。

  图3 get_fuzz_str代码

  m fuzz_FTP_usr()函数,用于发送超长的用户名,关键代码如图4所示,将超长的字符串4串拼接在一起,作为user的参数发送给服务器。

  图4 fuzz_FTP_user()函数关键代码

  m fuzz_FTP_cmd()函数,用于发送超长的命令,关键代码如图5所示,对每一个命令构造异常的参数,然后发送给服务器。

  图5 fuzz_FTP_cmd()函数关键代码

  之后,执行测试用例,设定被测设备为MSR36设备,MSR36设备表现正常,未发现任何问题(如图6所示)。

  图6 MSR36测试结果

  将被测设备设定为3CDaemon FTP server,测试结果如图7所示,看起来脚本找到了一个安全漏洞;为了验证我们用windbg调试FTP server看一看,如图8所示可以看到3CDaemon FTP server已经被溢出了,EIP寄存器被我们的字符串“aaaa”覆盖,从而导致程序崩溃,而且从调试器看到这是一个栈溢出漏洞,这些信息会为进一步的漏洞利用提供线索。

  图7 3CDaemon FTP server测试结果

  图8 3CDaemon FTP server调试结果

  通过这个简单的Fuzz测试脚本成功找到了一个缓冲区溢出漏洞。

  三、 结束语

  如果将漏洞作为理解黑客技术的核心,黑客技术本身已经不再神秘,在日常测试中,经过简单设计的测试用例即可完成漏洞挖掘的工作。但是应该看到的是随着安全技术的发展,挖掘漏洞和利用漏洞必定更为复杂。实际上针对协议设计Fuzz测试脚本并不是一件简单的事情,其复杂程度往往超过实现协议本身,在实际的测试中往往需要借助专业的测试框架、测试套件,或者根据实际情况设计比较有针对性的测试用例进行测试。

文章名称/相关信息

Two statistical traffic features for certain APT group identification---2022.06

作者想解决什么问题

作者想解决APT攻击C2阶段的检测问题。

作者通过什么理论/模型来解决该问题

1、特征选择:C2Load_fluct被添加到DNS特性集,而Bad_rate被添加到TCP和HTTP/HTTPS特性集。

2、PADASYN sampling algorithm对不平衡的样本常用处理

3、使用优化后的adaboost算法的对恶意流量辨识。

作者给出的答案/解决方案是什么

作者着重于C&C连接阶段,分析了某个APT组样本的特征,提出了两种新的流量统计特征。同时,为了解决数据集不平衡的问题,提出了一种数据采样算法,并使用优化后的AdaBoost算法对APT组进行识别。

作者为什么研究这个课题

因为作者发现了某一APT组攻击的DNS和TCP流量,构建了C2 Load_fluct(C2响应包负荷波动)和Bad_rate(坏包率)两个新特征,可用于APT组的识别。

C2Load_fluct描述了单位长度所携带的信息与域名之间的相关性。C2Load_fluct的值越低,使用域名进行信息传输的可能性就越高。Bad_rate反映了生成APT恶意流量和正常流量时的网络状态。

目前这个课题的研究进行到了什么阶段?

作者使用AdaBoost分类器,并与决策树、KNN、朴素贝叶斯和SVM算法进行了比较,采用f1分数对识别效果进行评价。

 

 

这篇文章存在哪些缺陷?

Bad_rate特征在其他APT组流量中也有相当多的0,因此该特征对其他APT组的识别影响很小,即坏包率的特征对APT检测不具有普适性。

作者关于这个课题的构思有哪几点?

1、在数据传输阶段,大多数攻击者通过DNS获取与域名对应的IP信息,并将远程C&C与TCP、HTTP/HTTPS协议进行连接起来。

2、APT恶意软件产生的流量有两个主要目的:一是与远程C&C服务器建立连接;另一个是数据被窃取并传输到远程服务器,导致数据泄漏。除了恶意流量分类的常见特征外,还需要考虑隧道传输造成的数据泄露等情况。

3、APT组使用远程控制命令窃取数据。在数据传输过程中,可能会受到网络限制和C&C端迁移的影响,导致数据包无序和重传。因此,正常流量的无序和重传可能性低于APT恶意流量。

 

自己的反思

1、可以从特征入手,发现C&C传输阶段没有发掘到的,特殊的特征。

2、通过杀伤链模型和因果场景生成算法来映射流量和攻击阶段。针对C2通信,有在被入侵主机的尝试连接阶段,也有成功入侵以后的传送数据阶段,特征不同。

3、Gans

相关APT的研究

从特征角度分析:

1、Yan等。[6]认为在一些APT攻击中,DNS的解析过程是不寻常的,所以他们提出了一个特征即APT攻击中DNS响应与识别可疑DNS行为的请求之间的时间间隔。

2、[7]发现大多数APT攻击会定期使用DNS定位C&C服务器进行信息传输,这将在网络流量和DNS日志中留下一些记录。他们结合了字符串匹配和基于DNS流量的傅里叶变换来检测到的APT恶意软件。

3、HTTP流量特性[8],即由APT恶意软件产生的HTTP流量与正常上网用户的正常HTTP流量无关。基于这一观察结果,他们分析了HTTP流量的报头字段,以发现与数据泄露和其他可疑的APT活动相关的APT恶意软件流量。

深度学习提取特征:(缺点是样本要足够大,然而,APT攻击样本的数量很少,而且标记网络流量数据集的过程特别昂贵)

1、10]提出了一种基于多路径残差学习的卷积神经网络(CNN)结构,以学习不同粒度的特征,以提高神经网络的表达能力和特征表示的多样性。

2、11]利用一维卷积网络分析混合神经网络的序列特征,并使用深度神经网络进行学习高维特征向量的特征,包括一般统计特征和环境特征,对网络异常检测进行综合分析。以及其他研究12]提出了多分布式变分自动编码器(MVAE)。标签信息允许MVAE在潜在特征空间中强制/划分网络数据样本在不同区域的不同类别。还有一些文学作品13]使用标准化的UTF-8字符编码进行空间特征学习(SFL),可以完全提取实时HTTP流量的特征,而无需使用加密、熵计算或压缩。其他研究14]设计了一个基于元学习框架的深度神经网络(DNN)全卷积网络(FC-Net),该网络由一个特征提取网络和一个比较网络组成。

 

 

标签:FTP,特征,持续,APT,Fuzz,流量,更新,测试
来源: https://www.cnblogs.com/gqgqa/p/16597407.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有