《C-C加密信道检测模型实现方案案例》2800字_第1页
《C-C加密信道检测模型实现方案案例》2800字_第2页
《C-C加密信道检测模型实现方案案例》2800字_第3页
《C-C加密信道检测模型实现方案案例》2800字_第4页
《C-C加密信道检测模型实现方案案例》2800字_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C&C加密信道检测模型实现方案案例综述目录TOC\o"1-3"\h\u166281.1整体框架 1127061.2数据解析模块 2186211.3数据处理模块 24901.4特征提取模块 5279251.5C&C加密信道检测模型模块 6整体框架图4-1C&C加密信道检测整体框架 本文提出的C&C加密信道检测模型整体设计框架如图4-1所示,分为数据解析、数据处理、特征提取、C&C加密信道检测这四个模块。(1)数据解析模块通过NetCap框架对pcap文件进行解析,生成结构化审计记录,并通过NetCap自带的工具将ClientHello消息和ServerHello消息的审计记录转化成csv文件,方便后续的数据处理。(2)数据处理模块恶意加密流量样本中也可能会包含一些正常的加密流量包,错误的将这些正常流量标记为恶意的,会对分类器的识别准确度造成很大的影响,因此需要对恶意加密流量进行数据清洗,以过滤掉这些脏样本。然后将清洗过的ClientHello记录与ServerHello记录根据源ip、目的ip、源端口、目的端口进行关联,最后对关联好的数据进行标注。(3)特征提取模块从处理好的数据中提取相应的特征生成特征矩阵。由于存在特征值尺度单位差异大的问题,对每维特征进行归一化处理。(4)C&C加密信道检测模块由于数据集中存在正负样本比例悬殊问题,数据集的划分采用分层K折交叉验证方法。分类器模型采用随机森林模型,它已被证明在加密流量监测这种带有噪声标签和数据分布不平稳的背景设定下检测效果最好。数据解析模块Netcap(NETworkCAPture)框架能有效地将网络数据包流转换为代表特定协议的结构化审计记录。这些审计记录可以存储在磁盘上,很适合作为机器学习算法的数据源。本研究利用Netcap框架解析pcap文件,提取出pcap文件中TLS流中的元数据。Step1:解析pcap文件,对里面所有的流量包进行解析生成结构化审计记录(.ncap.gz文件)。1./net.capture

–r

./pcap/malware.pcap

–out

./ncap生成的审计记录中会有两个关于TLS的文件,TLSClientHello.ncap.gz和TLSServerHello.ncap.gz。Step2:将关于TLS的结构化审计记录输出为csv格式,生成两个csv文件,TLSClientHello.csv是pcap文件中所有ClientHello消息包的相关数据,TLSServerHello.csv文件是pcap文件中所有ServerHello消息包的相关数据。12./net.dump

–r

./ncap/TLSClientHello.ncap.gz

>

./NetCap-output/TLSClientHello.csv./net.dump

–r

./ncap/TLSServerHello.ncap.gz

>

./NetCap-output/TLSServerHello.csv数据处理模块数据清洗很多恶意软件在与C&C服务器通信前会先尝试访问Google、Facebook等正常服务,以判断受害主机网络是否连通。若简单把恶意流量捕获文件中的所有TLS流量都标记为恶意的,则这些正常流量也会被标记为恶意流量,这样会导致分类器面对这类流量时做出错误的判断。图4-2某恶意软件通过访问Google来判断主机网络连接是否正常Alexa是专门计算网站世界排名的网站。对数据解析模块得到的TLSClientHello.csv文件,通过查询每个TLS流中访问的主机是否在Alexa网站的流行度排名前100万,由此来过滤掉恶意流量捕获文件中的正常流量。(1)分析请求逻辑在/siteinfo网站上查询的世界流行度排名,用GET方法提交请求,网页跳转到/siteinfo/。由此可以推出,查询某域名的世界流行度排名的网址规律,为以下形式:1/siteinfo/待查询的域名(2)获取排名信息我们想得到的信息是某域名在全世界的排名,可以通过精确定位排名在网页中的位置,获得域名的排名。该排名所在元素(<pclass=bigdata>)在HTML文档中的结构如下:123456789101112113<div

class="rank-global">

<div>

<div>

<p

class="big

data">

<span

class="hash">#</span>

1

</p>

<p

class="information">

In

global

internet

traffic

and

engagement

over

the

past90days

</p>

</div>

</div>

...<div>根据以上分析,编写获取域名全球排名的代码段如下,若该函数返回1,则认为该域名对应的TLS流量正常,将流量记录从TLSClientHello.csv中移除。123456789101112131415161718192021def

getRank(url):

alexa_base_url

=

'/siteinfo/'url_for_rank

=

alexa_base_url

+

url

#要爬取的目标网页#访问URL,获取对应的HTML文档page

=

requests.get(url_for_rank)#使用BeautifulSoup解析HTML文档soup

=

BeautifulSoup(page.content,

'html.parser')#通过class来定位我们想要得到的<p

class="big

data">这个元素

global_rank

=

soup.select('.rank-global

.data')try:#用text方法获取元素中的文本内容,并去掉里面的换行,然后正则表达式匹配数字

match

=

re.search(r'[\d,]+',

global_rank[0].text.strip())#match得到的排名是字符形式的数字,且含有逗号分隔符,将其去掉逗号分隔符,并转换为数字形式

ranking=int(match.group().replace(',',''))#若url位于top前100w返回1,否则返回0

if

ranking

<

1000000:

return

1

else:

return

0

except:

return

0数据关联与标注用Netcap框架解析TLS流,会生成两个csv文件,TLSClientHello.csv是pcap文件中所有ClientHello消息包的相关数据,TLSServerHello.csv文件是pcap文件中所有ServerHello消息包的相关数据。我们要提取的特征中既包含ClientHello消息包的相关数据也包含ServerHello消息包的相关数据。因此,我们需要将TLSClientHello.csv和TLSServerHello.csv中的记录关联起来,方便后续特征提取操作。根据TLS来源标记数据,若TLS来自正常流量,则标记为0,反之,若TLS来自恶意加密流量,则标记为1。具体关联与标注流程见以下伪代码。表4-1数据关联与标注伪代码算法数据关联与标注12345678910111213输入:TLSServerHello.csv,TLSClientHello.csv,label输出:data.csvfunctioncorrelate_data(s_hellolist,label,chelloentry):fors_hello_datainshellolist:ifshello_data的源ip==chelloentry的目的ip&&shello_data的目的ip==chelloentry的源ip&&shello_data的源端口==chelloentry的目的端口&&shello_data的目的端口==chelloentry的源端口:entry<-shello_data中目的ip与源ip移除,然后与chelloentry、label连接将entry写入data.csv文件df_serverhello<-读取TLSServerHello.csvdf_clienthello<-读取TLSClientHello.csv#用partial函数将correlate_data的部分参数预先绑定为指定值fn<-partial(fn,df_serverhello,label)#用多进程方法调用fn对df_clienthello中的数据进行关联Executor.map(fn,df_clienthello)特征提取模块特征矩阵C&C加密信道检测模型所需要的特征已经在3.3.2节进行了详细的介绍,因此,本节主要关注特征是如何提取的。本模块的输入是数据处理模块输出的data.csv文件,该文件已经过数据清洗、关联与标记。但是输入的内容是文本形式,本模块将其转化成一个格式规整的特征矩阵,具体转化方法见下表。表4-2特征矩阵转化方法特征大小数据类型特征值转化方法源端口是否由操作系统随机分配1Int源端口位于49152-65535范围内,则特征值为1,否则为0目的端口是否为常见TLS端口1Int目的端口为附录。。中给出的常见TLS端口,则特征值为1,否则为0客户端提供的加密组件146Vector提供了哪个加密组件,则对应的特征值为1,没提供的加密组件对应的特征值为0,如某TLS流提供了50这个加密组件,则该流对应的cs_50特征值为1客户端支持的扩展16Vector转化方法同加密组件特征客户端支持的扩展数量1Integer计算客户端支持的扩展数量客户端支持的椭圆曲线36Vector转化方法同加密组件特征客户端支持的椭圆曲线点4Vector转化方法同加密组件特征证书有效时长1Int证书有效时间-证书颁发时间证书中SAN扩展中域名的数量1Int计算证书中SAN扩展中域名的数量是否是自签名证书1Int若证书是自签名证书,则特征值为1,否则为0特征矩阵归一化由于提取出的特征值单位尺度不同,为了消除特征间单位和尺度差异的影响,以对每维特征同等对待,需要对提取出的特征进行归一化。本文零均值归一化方法(公式4-1)对特征进行归一化,使得每维特征均值维0方差维1。经过此方法归一化处理后的特征将符合标准正态分布。xC&C加密信道检测模型模块数据集划分由3.1节可知,处理完后分别得到正常流量样本110490个,恶意流量样本6422个,这种过于悬殊的样本比可能会在训练过程中使模型产生偏差,如果该组数据用于验证,则可能使测试结果产生偏差。因此,采用分层K折交叉验证(StratifiedK-Foldcross-validator)方法来对模型进行训练。该方法将包含正常流量(负样本)和恶意流量(正样本)的打乱数据集分解为K组。其中1组作为测试集,另外的K-1组用于训练模型。该过程重复K次,每次选择不同的组作为测试集。最后计算K次运行的评价指标的平均值。通过这种方法,K组数据不是随机划分的,而是通过保留正负样本的百分比进行划分,这种分层确保了一个组不会只包含正样本或负样本。分类器构建Cisco团队提出不准确的基本事实和高度不固定的数据分布使得机器学习算法在恶意网络流量监测中结果不理想ADDINEN.CITE<EndNote><Cite><Author>Anderson</Author><Year>2017</Year><RecNum>12</RecNum><DisplayText><styleface="superscript">[3]</style></DisplayText><record><rec-number>12</rec-number><foreign-keys><keyapp="EN"db-id="rr0wseffnsaffqex0v05x25wa00fsp5vvsrx"timestamp="1619964716">12</key></foreign-keys><ref-typename="ConferenceProceedings">10</ref-type><contributors><authors><author>Anderson,Blake</author><author>McGrew,David</author></authors></contributors><titles><title>Machinelearningforencryptedmalwaretrafficclassification:accountingfornoisylabelsandnon-statio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论