DataCon 2019大数据安全分析比赛writeup收集

=Start=

缘由:

收集、整理一下首届DataCon大数据安全分析比赛的writeup和相关资料,学习一下这些获奖选手的解题思路和方法,方便以后要用的时候快速参考。

正文:

参考解答:
DataCon的比赛背景:

为积极探索网络安全人才选拔和培养机制,网络安全相关比赛正如火如荼地开展。然而,目前国内的比赛大多以CTF(夺旗赛)类比赛为主,偏重漏洞挖掘,同质化较为严重,大数据安全分析在却鲜被提及。据相关统计数据显示,与大数据安全分析相关的比赛仅占1%左右,存在极大空白。

为填补这一空白,推动网络安全产业健康发展,360企业安全集团和清华大学主办、贵州师范大学协办,并且联合北京大学、中科院软件所、复旦大学、西安交通大学、吉林大学等20余所全国知名高校共同举办的DataCon大数据安全分析比赛即将召开,线上报名于3月11日正式开启。

比赛题目方向:

方向1:DNS恶意流量检测

攻防演练过程中发现大数据会议官网无法正常访问、无法注册、发布会议及活动信息。主办单位已采集到大会DNS流量,请从中分析出恶意流量。

方向2:恶意代码行为检测

攻防演练过程中发现会议主办单位部分电脑遭遇恶意代码攻击,并感染会议现场的用于演讲和展区展示的电脑,影响会议运行。主办单位已通过沙箱分析出所有软件的行为数据,并已对其中部分已知恶意样本进行了标注。请分析已标注的训练样本,从测试样本中识别出所有恶意代码及其家族。

方向3:攻击源与攻击者分析

在大数据会议举办期间,重保小组发现了大量针对政府、大型企业网站、数据库发起攻击的可能攻击源。重保小组通过大网上的多维度数据,把与这些攻击源相关的线索全部串联起来。尝试对所有可能的攻击源进行分析。

DataCon排行榜说明:

1、DNS恶意流量检测方向的题目评审以80%客观得分和20%WriteUp得分计算两道题目的总得分并进行排名,其中题目一得分占总分的60%,题目二得分占总分的40%。

2、恶意代码行为检测方向的题目评审以80%客观得分和20%WriteUp得分计算两道题目的总得分并进行排名,其中题目一得分占总分的50%,题目二得分占总分的50%。

3、攻击源与攻击者分析方向的题目评审综合了三道题目的总得分并进行排名,其中题目一得分占总分的20%,题目二得分占总分的40%,题目三得分占总分的40%。得分要点主要考察选手们对日志中攻击的识别的准确性以及识别的攻击种类数;选手们对数据的敏感程度、数据视野以及同源分析能力和思路,能否从多个维度体系化的对攻击者/组织进行同源分析;以及选手们的数据分析能力,选手们是否通过比赛提供的数据全面的,从更多维度来综合评价一个攻击者/组织的网络攻击能力。


以上是比赛的背景、题目类型的相关说明,下面摘录一些选手的部分解题策略和思路,方便快速查阅和学习:

Q1 DNS恶意流量检测

  • 解题思路:结合专家经验在多个维度做统计特征,滤出超越统计基线3sigma的异常行为,人工检验异常数据确认攻击,然后编写规则滤出该类攻击全部数据包。

通过对数据的初步人工浏览和简单可视化分析发现:
……

据此,我的解题策略为:
原始日志->特征工程->异常检测->人工验证(得到部分答案)->pattern提取->规则匹配->全部答案。

接下来开始思考本题的特征维度。根据我的安全经验,将DNS攻击分为三种建模:
1、密集请求型:例如随机子域名DDoS、反射型DDoS。其特征为QPS高、时序特征强,一般能够可视化观察到波峰。
2、漏洞攻击型:例如针对DNS server的已知漏洞攻击。其特征为数量少、受DNS type影响,适合分类统计。如果批量PoC的话,则特征同1。
3、数据传输型:例如DNS Tunnel、Malware DGA、PoC中的DNS回显、SSRF重绑定等。其特征在于域名文本特征明显、适用于规则匹配。

将DNS日志的Request和Response join到一起,然后做统计特征和文本特征:

  • DNS请求时序分布
  • QPS min/max/avg
  • QPS均值
  • QPS波动性
  • 连接成功率
  • DNS响应率
  • TCP报文占比
  • 请求响应比
  • 单域名平均访问次数
  • 单目标高频访问
  • 多级子域名变化率
  • DNS type时序分布
  • DNS type源IP分布
  • 长随机域名
  • DNS Tunnel特征
  • 部分DNS RCE
  • 心跳包

异常检测
将以上统计特征通过全量数据建立基线,然后在每个特征维度滤出超越3sigma的异常值。

总结:
从结果来看,本题最高效的特征如下:
1、DNS type。
2、src_ip维度的统计分析特征(QPS、域名数量、请求响应数),因为出题人将src_ip的行为做的非常干净,找到了IP就找到了攻击。

分析方法只用了3sigma异常基线一种,人工排序观察Top的异常结果,确认攻击后写规则捞出全部同类攻击。


Q2 DGA域名检测与家族聚类

  • 解题思路:首先通过专家经验做强关联社区发现洗出一部分DGA域名,以此为正样本训练二分类模型识别DGA域名,然后对结果分别进行社区发现、社区聚合、标签传播扩展与降噪,最终得到结果。

主要问题和待提高的地方

  • 结合malware reverse engine进行辅助和分析确认。我们队在比赛过程中针对这道题的现实意义进行了讨论,dga检测与识别,毫无疑问是要进行实时防御,或者说是准实时防御,即dns sinkhole,这就是一个典型的“双百场景”,即“recall 100% + precision 100%”。
  • dga C&C本质上是黑客的一种隐蔽通信手段,如果不能100% recall识别,漏报一个等于防御失败。反过来,dns域名是一个互联网核心基础设施,如果在骨干网设备上产生拦截误报,影响是非常巨大的。这和Xorddos马的自我繁殖防御类似。从这个角度来说,这道题我们没有拿到100%,等于防御失败了。
  • 在工程化中,这道题最有效的方法是是对dga malware进行监控和逆向分析,通过精确的dga generate function,提前预知未来可能产生的dga域名,从而进行提前防御,当然也要关注dga生成算法与常规域名的碰撞问题。
  • 社区节点间边权重计算方式需要优化:在实际场景中,一台机器可能中多个木马,而且在中马的同时可能正在进行其他的高频业务访问行为,因此只基于简单的共享同一个肉鸡ip的社区边定义很容易引入像msn.com这种误报,对边权重的计算需要引入更多肉鸡-域名行为时序上的特征。
参考链接:

=

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/4473.html

《DataCon 2019大数据安全分析比赛writeup收集》上有1条评论

  1. python异常数据预警之3sigma
    https://zhuanlan.zhihu.com/p/36297816

    3sigma原理一般在工程科学中比较常用,我们在故障预警中用过这个原理,数据是用传感器采集的数据,这些数据假定符合正态分布,然后在进行模型识别后用3sigma原则来对异常数据进行准确定位。在实际应用中可以根据业务场景来确定 k sigma中的k值。

    3sigma原理可以简单描述为:若数据服从正态分布,则异常值被定义为一组结果值中与平均值的偏差超过三倍标准差的值。即在正态分布的假设下,距离平均值三倍 \sigma (为标准查)之外的值出现的概率很小(如下式),因此可认为是异常值。

    P(|x-μ|>3σ)≤0.003

    若数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述(这就使该原理可以适用于不同的业务场景,只是需要根据经验来确定 k sigma中的k值,这个k值就可以认为是阈值)。

    正态分布中什么是1 sigma原则,2sigma原则,3sigma原则
    https://zhidao.baidu.com/question/1693646488397754788.html

    σ是希腊字母,英文表达sigma,汉语译音为“西格玛”。
    在正态分布中σ代表标准差,μ代表均值x=μ即为图像的对称轴。
    三σ原则即为:
    数值分布在(μ—σ,μ+σ)中的概率为0.6526
    数值分布在(μ—2σ,μ+2σ)中的概率为0.9544
    数值分布在(μ—3σ,μ+3σ)中的概率为0.9974

    可以认为,数值分布几乎全部集中在(μ-3σ,μ+3σ)区间内,超出这个范围的可能性仅占不到0.3%.

    正态分布及3Sigma原理
    https://www.cnblogs.com/hellochennan/p/6706884.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注