这学期在360武汉研发中心实习,岗位是算法工程师,偏research,看了一些论文,整理了部分,以供参考。
实习的最大感受就是,虽然深度学习很火,每天也都有很多新的方法提升跑分效果,但是工业界的应用远远赶不上学术界的研究,有时候传统的特征方法+分类器的方法,反而比深度学习效果更好。论文地址
Predicting Domain Generation Algorithms with Long Short Term Memory Network
Abstract
DGA detection:
In order to block DGA C2 traffic
previous work:
using statistical properties to determine if they are DGA generated.
This paper:
A DGA classifier using long short-term memory (LSTM) network for real-time prediction of DGA.
Introduction
Previous work:
Blacklists;
DGA classifier: retrospective detection (using contextual information) and real-time detection(using no additional contextual information )
This paper:
LSTM
Background
A.DGA
B.DGA Classification
- Retrospective: take advantage of bulk statistical properties or common contextual information
- Real-time: classifying domains individually with no additional contextual information.
C.LSTM
Method
embedding layer
每个字符由128维的向量表示。
LSTM
Dropout
logistic regression
Experimental Setup
details of our experimental setups in both binary experiment (DGA vs. non-DGA) and multiclass experiment (which DGA?)
A. Evaluation Metrics
Precision, Recall, F1, ROC
B. Experimental Designs
C. Data
open datasets:
- Alexa top 1million domains for training
- OSINT DGA
D. Comparison to state of the art
对照组:HMM(隐马尔可夫模型);logistic 回归;random forest(随机森林)
人工特征:
1)域名长度(length of domain name)
2)entropy of character distribution in domain name(字符分布的交叉熵)
3)元音辅音率(vowel to consonant ratio)
Results
Conclusion
基于词素特征的轻量级域名检测算法
摘要
DNS交互报文检测
思路:挖掘域名字面蕴含的词素(词根、词缀、拼写、缩写),快速锁定可疑域名。
本文考虑单词的内在组成结构,选取构词学中最小的有意义的语言词素,作为基本单元,引入自然语言领域的word切割技术,以词素作为字符串切分的最小单元,变长切分域名。
传统方法:
黑名单:开销大,及时性差。
基于DNS活动特征的实时检测:
1)邮件蠕虫检测方法。
2)IP地址频繁变化:TTL值,A记录数目及其离散程度
轻量级检测算法(域名自身字符丰富的词法特征)
字符串的词法特征:字符串长度、字母数目、数字数目、n元组频率分布。分为词法特征统计和面向域名的word切割方法两类。后者准确度高但是要依赖庞大的语料库。
基于词素的轻量级检测算法
合法域名比恶意域名更可能使用词素。
pipline:
Step1: 通过聚类算法将待处理的标准域名集各自划分成组
Step2: 基于构件的词素库,设计启发式字符串切分算法快速切分域名。
Step3: 提出一组基于词素的特征测度,针对每一组域名,统计测度集合中每一个测度。
Step4: 监督机器学习算法。
域名聚类算法
三层域名标签:
baike.baidu.com
com 顶层域名标签;baidu 二层域名标签;baike三层域名标签。
依据是否具有相同的二层域名标签将域名聚类成组,通过分析组内各三层域名标签中包含的词素特征,以组为单位进行检测。
启发式字符切分算法
1)词素定义
不可再分的最小的有意义的语言单元定义为词素。
缩小词素规模的方法:可以分解的词素移出;只保留长度[3,5]范围内的词素。
处理后剩余87600个词素。
2)词素匹配与切分
设计数据结构时优先考虑查询速率,即查询时间优于内存开销。
3)分类测度选择
词素平均权重;词素平均相对个数;词素平均长度;非词素字母平均个数;平均记忆字元数;词素频率分布熵
分类算法
本文选择决策树中经典的C4.5算法
算法评估
数据集
1)实测数据集 1400万个不重复域名。
2)合法域名集 Alex网站上连续3次排名前1万的域名,并从中去除黑名单中的域名。
3)恶意域名集
4)随机数据集
基于通信行为分析的DNS隧道木马检测方法
摘要
DNS隧道技术:利用DNS协议建立隐蔽信道,实现隐蔽数据传输,例如iodine,dns2tcp, tcp-overodns, heyoka等。
DNS隧道木马检测技术分为两大类:载荷分析和流量监测
载荷分析:针对DNS请求和应答,对报文中的有效载荷进行分析。
流量监测:检测网络中DNS流量变化情况。
本文另辟蹊径,通过分析DNS隧道木马通信行为和正常DNS解析行为的差异性,提出一种基于通信行为分析的DNS隧道木马检测方法。
DNS隧道木马
分类:IP直连型、域名型
IP直连型DNS隧道木马
DNS隧道木马可以与本地主机通过IP直接通信,传输协议采用DNS协议,利用服务器端口53. 被控端利用UDP socket套接字建立连接。
域名型DNS隧道木马
被控端将要传输的内容封装在请求的域名中。
DNS隧道木马通信行为分析
区分会话的五元组:源IP地址、源端口、传输层协议、目的IP地址、目的端口。
本文拉长时间维度,从DNS会话角度分析隧道木马流量。
通过7个通信行为分析DNS隧道木马会话和正常DNS会话的特性。
1)DNS会话时长
定义:在一次DNS会话中,最后一个DNS报文的时间和第一个DNS报文的时间差。
正常情况下,一次 DNS解析过程首先由客户机
在本 地 随 机 开 启 一 个 UDP 端 口, 然 后 向 指 定 的
DNS服务器53端口发送 DNS请求报文。
时长:隧道木马会话时长远大于正常DNS会话
2)DNS会话中数据包总数
正常客户的DNS会话比较简短。
3)“上行大包”占请求报文总数的比例
上行大包:请求报文中queries字段字节数大于50
与 正 常 DNS 会 话 相 比, DNS隧道木马会话中“上行大包”占请求报文总数的比例较大
4)“下行小包”占响应报文总数的比例
下行小包:将 DNS应答报文中answers字段字节数小于50的数据包。
DNS隧道木马会话的上传下载比例比一般正常的 DNS会话大
5)有效载荷的上传下载比
6)有效载荷部分是否加密
7)域名对应的主机名数量
基于随机森林的决策模型构建
将第二章分析的7个特征提取成评估向量。
典型的二分类问题。
基于随机森林的DNS评估向量训练过程
信息增益过程求解
DNS隧道木马检测流程框架
实验分析
实验环境
测试主机10台,3太植入了隧道木马。
检测能力测试
基于统计学习的网络异常行为检测技术
摘要
高级持续性威胁(APT:advanced persistent threat)
传统方法:基于特征检测、边界防护
本文:介绍现状、分析技术路线和体系架构、介绍相关的参数提取和统计分析建模。
引言
传统:基于特征匹配、边界防护
新兴:基于异常行为的检测(终端异常行为、网络异常行为)
本文:
1)提出一种面向APT攻击的网络异常行为检测技术框架(特征建模)
2)给出特征提取的方法
3)对算法的有效性进行验证
基于统计学习的异常检测技术框架
技术路线选择
异常行为检测本质:分类问题
传统的人工特征提取;基于深度学习的特征提取。
本文:基于人工特征提取的方法。
基于大数据的异常检测技术特点
准确度低原因:
1)模型粒度问题
2)特征数量问题
3)模型训练问题
大数据异常检测平台框架
数据采集层、存储管理层、入侵行为分析挖掘层、展示及配置管理层
网络异常行为检测算法
APT攻击:情报收集、恶意代码组装、投递、激活、安装植入、命令与控制、获取
命令与控制通道行为检测
反向连接特征
定义1:活跃时间点
定义2:响应率
定义3:激活率
定义4:反向连接特征
心跳特征
获取行为检测
试验结果及分析
Classification for DGA-Based malicious Domin Names with Deep Learning Architecture
Abstract
preemptive defenses: manually-crafted domain features
this paper: transfer five advanced model
introduction
statistical features: length, bigram, entropy, life span, character frequency distribution
distribution:
- without manual creation of features
- a big dataset
- GPU learning and parallel
- transfer learning: Alex, VGG, Squeeze Net, Inception, Res Net
Background
Domain Generation Algorithm
DGA
DGA classification: using contextual information, using domain names only
Recurrent Neural Network
RNN -> LSTM
Deep learning architecture
Alex Net, VGG, Squeeze Net, Google Le Net architecture, Residual Network
Method
Transfer Learning
Image Net dataset
strategies for transferring the pre trained weights from image to DGAs domain names:
1)string->byte array 字符串转字节数组
2)resize [25,25,3 ]
3)去掉最后两层,以倒数第三层作为特征。
总结:将原始域名转化成整形数组,投入到预训练好的模型中,生成特性,再训练传统的分类器。(也就是说深度网络只是提取特征)
Classification
SVM, Logistic Regression, Random Forest classifier, Decision Tree
Experiment
Datasets
non-DGAs: Alexa top 1000,000 domains
DGAs: 33,000,000 real-world DGA-based malicious
domain names
Experimental Setting
three parts: 60% training set; 20% cross validation set; 20% test set
Results
P2P应用流量的高效分类方法研究
摘要
WMFA(滑动窗口多流关联)分类算法,降维,决策树算法,一次分类、二次识别
引言
传统方法:端口和负载特征;基于数据包负载分析的技术;基于主机网络行为进行P2P应用分类;基于机器学习的P2P应用分类。
相关工作
基于端口的P2P应用分类方法
端口跳变技术、端口的动态使用限制了该技术的使用。
基于负载
分析数据包的有效负载。
加密传输和私有协议限制了发展。
基于应用的交互行为
盲分类:不考虑端口号,不解析有效负载
不能满足实时性的要求
基于机器学习
流特征提取并用机器学习算法来训练。
朴素贝叶斯方法、KNN、C4.5决策树、谱聚类、SVM
WMFA方法(本文方法)
基于滑动时间窗口的多流在线关联方法集成C4.5和多元离群点检测方法,采用信息增益率来选择P2P流量特征,然后使用C4.5对P2P进行一次识别,利用时空关联将已经识别的流来关联未识别的流做二次精确识别。
特征选择
采用信息增益率来选择P2P流特征,针对TCP、UDP流量特征分别选出10个特征描述。
WMFA分类算法
主要目的:在线实时挖掘每个时间窗口中误识别的流(离群点检测算法),再进行时空关联将未识别的流标记为已识别的流。
离群点检测算法:利用$\chi^{2}$ 的计算值,在某个时间窗口中如果一个属性的$\chi^{2}$ 值较大,则将该属性去除。
时空关联算法:同一个时间窗口上,同一个IP和端口PORT的流中如果有未识别的流,则将其标记为已识别的流。
实验及分析
评估指标
查准率(precision) P
查全率(recall) R