网络安全101: 如何通过数据分析检测数据泄露 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

网络安全101: 如何通过数据分析检测数据泄露

atp7bkil 资讯 2020-02-03 11:23:13
522001
收藏

导语:本文的内容既是2019年趋势科技举办的 CTF 挑战赛中网络安全101 数据分析: 检测数据泄露 Wildcard 400 挑战解决方案的演练,也是关于网络安全监控的一些笔记。 我建议你先在这里尝试一下这些挑战。 所有解决方案的实现都可以在这个内核中找到。

本文的内容既是2019年趋势科技举办的 CTF 挑战赛中网络安全101 数据分析: 检测数据泄露 Wildcard 400 挑战解决方案的演练,也是关于网络安全监控的一些笔记。 我建议你先在这里尝试一下这些挑战。 所有解决方案的实现都可以在这个内核中找到。

前提

假设你是中型企业 XYZcorp 公司的网络安全管理员。 你经常使用网络流数据来发现异常的安全事件。 这个挑战提供了一些关于流的聚合数据示例,并使用来自异常事件的答案构造标志。

本文所使用的数据是合成的,没有模拟典型的网络协议和行为。 因此,对于这些挑战,不需要对网络协议有深入的了解。

我们要找什么?

这一挑战中的所有问题都与后漏洞利用活动有关,后漏洞利用活动构成了网络杀伤链的后半部分。

现代的网络安全方法并不仅仅停留在试图阻止漏洞利用上。 漏洞利用只是攻击的第一步,最终目标通常是数据窃取。

* 除了勒索软件攻击等攻击外

攻击者如何从最初的立足点接触到你的数据的?

· 为了拿到数据,攻击者需要将数据外泄

· 为了进行数据外泄,攻击者需要接触到数据(横向移动)

· 要进行横向移动,攻击者需要与他们的立足点(C&C)进行协调

如果我们能够在任何这些阶段中检测和阻止攻击者,那么我们可以认为我们取得胜利了!

预防是理想的,但检测是必须的。”—— Eric Cole 博士

当然,这是一系列相当复杂的事件的简化版本。 如果你想了解更多关于这方面的信息,你可以查阅ATT&CK 矩阵

数据外泄

image.png 

数据外泄是数据窃取的一种奇特说法。 某种程度上,数据必须从网络内部流向攻击者 *

* 当然也有例外,例如物理上的数据外泄

明目张胆的外泄

我们的知识产权正在大量流失。 里面的一台机器被用来发送我们所有的小部件设计。 一台主机从企业发出的数据要比其他主机多得多。 它的 IP 地址是什么?

在这里,我们可以假设攻击者并没有试图隐藏。 他们试图传输尽可能多的数据,而不设置数据传输的限制。 让我们看看具有最多出站网络流量的主机。

image.png

13.37.84.125看起来像一个坏 IP

我们将13.37.84.125确定为坏 IP,并查看流量出站的分布情况,发现属于非典型的情况。 

image.png

13.37.84.125显然是个异常值

这是你能做的最简单的警报。 查看你的出站流量的日常分布,并找到一个警报阈值。 如果攻击者在一小时内将50GB 的数据上传到 Google Drive3天后发现数据泄露将会很尴尬。

你可能会发现正常的异常值! 一个异常值并不一定等同于恶意活动。 你可以找到与网络其他部分相比有极大出站流量的主机,结果却发现它们是正常的。

假设你的公司使用了 web 代理服务器,并要求通过此服务器代理 HTTPS 流量。 那么我们会期望这个代理服务器的流量比网络的其余部分大几个数量级。 我们从中观察到的流量是数百个用户的 HTTPS 流量的组合。

在这种情况下,你应该记录这些特殊服务器,并分别对它们进行分析。 同时,你可能也想检查那些即使不消耗高带宽,也能直接传出 HTTPS 流量的桌面程序,因为它们也应该通过代理。

下班后的活动

假设有另一个攻击者有一个想导出我们内部 wiki 内容的作业计划。 一台主机在下班时间从企业发送的数据比其他主机多得多。 它的 IP 地址是什么?

通常,我们应该对工作时间和非工作时间有一些概念。 对于这一挑战,我们首先必须推断工作时间。

image.png

办公时间在16:0023:00之间

现在我们已经确定了公司的办公时间,我们只对0:0016:00之间产生的流量进行过滤,并查看在非工作时间内出站流量最大的主机。

image.png

12.55.77.96看起来很可疑

这一次,我们看到12.55.77.96可能是个有问题的 IP 我们查看在非工作时间内总出站流量的分布情况,并且我们也看到这是一个异常值。

image.png

12.55.77.96是个异常值

只关注下班时间的流量是很重要的,因为如果我们只关注整个出站流量,我们可能无法检测到这些流量。

image.png

12.55.77.96看起来正常,如果我们把上班时间的流量也算进去的话。

很明显,我们应该分别建立上班下班的模型。 这是相当直观的---- 你期望在白天看到的活动类型与晚上看到的不同。 这包括周末和特殊假期。

这些休息时间也是你建立基线的一个好起点。 你可以了解你的网络的背景辐射

糟糕的流量通常会在工作时间出现,也可能在下班时间出现。

你也可能发现内部威胁。在休假、生病或非正常时间远程访问网络非正常工作时间未经授权是内部威胁的行为指标[1] 人们对物理监视更加敏感; 当周围没有人时,他们更有可能尝试做坏事,而没有意识到他们的行为在网络层面却是显而易见的。

业余时间是很宝贵的。 如果我想识别拨号的家庭,文件外泄,和其他可疑的活动,我喜欢通过观察下班时间发现威胁。 这个时间内的流量少了,人也少了... ... 这就是我喜欢跟踪公司自己的特殊休息时间的原因。 对于某些人来说,通过将所有活动保持在周一至周五的 9-5 点来隐藏他的流量是很容易的,但是如果攻击者不知道公司给了圣斯威辛节的假期,那么他就更有可能出现。

——迈克尔 · 柯林斯

尽管如此,如果你在进行威胁狩猎,你会发现这里有很多合法(可能没有正式文件)的业务流程,比如那些试图在夜间卸载关闭,以便在白天对业务产生最小影响的进程。 例如,你可能会发现数据库团队已经计划在每周的某天的凌晨 12 点将你的数据库备份到你的亚马逊 S3 存储桶。 这些绝对是你应该能够检测到的。

使用通用协议的隧道

一些攻击者拿到了所有员工和供应商的电子邮件地址,并将它们发送到通常用于其他用途的通道上。 这类似于攻击者滥用 DNS 进行数据外泄。 一台主机在企业端口上发送的数据比其他主机多得多。 它的端口是什么?

Dns 隧道技术是一种利用 DNS 协议的特性来进行数据外泄的技术。 如果一个主机试图通过 DNS 外泄数据,那么我们希望53 端口的请求数量远远大于其他主机,后者只使用 DNS 解析域名的 IP 地址。 因此,我们正在寻找的流量是不正常的特定端口。

实际上,我们可以使用与前面章节相似的方法,通过查看流量的最大值的来源,看看它们是否是基于端口的单变量分布的异常值。 但是,当你现在必须遍历许多端口时,这个扩展性并不好。

让我们首先分析几个端口,我们看到它们中的大多数都是好的”(可能太好了) ,但是具有不同的方式和差异。

 image.png

请注意,这些都是来自合成数据

在查看了一些分布之后,分布情况看起来是钟形的,因此使用 Z-score 可能是合适的。 然而,如果你发现分布是高度倾斜的,那么你可能需要做一些转换,比如对数转换,以使分布更像钟形。

对于每个端口,我们将出站流量标准化,并获得每个端口的最高 z-score

image.png

显然,端口124具有最离群的特点

分析端口124的分布情况,我们发现12.30.96.87看起来更像是我们要找的 IP

image.png

如果我们将端口124的总出站流量与其他端口进行比较,我们会发现,如果使用全局阈值,这是无法检测到的。

image.png

如果我们只看右侧那条尾巴,那么也许能发现

那么我们如何检测到这种情况呢? 与前一节类似,还有一个重复出现的主题: 分别为不同类型的网络活动建模。 如果你可以在网络流量中识别不同的组,那么试着分别分析它们。 如果你的数据是同分布的,则更容易检测出异常值。

此外,我们还应该考虑分析长尾。 如果你看到通向不常用端口的出站流量,那么你应该调查它是什么。 如果它有合法用途,记录下来。 否则,首先就不应该允许出站连接到未知端口。

但是,对于 DNS 通信等协议,是网络服务必不可少的。 所以你会发现这些端口都是开放的。 类似于网络代理,为了让我们的生活更简单,你应该要求所有的 DNS 查询通过一个内部的 DNS 服务器,并阻止除了你的内部 DNS 服务器在端口53上的所有出站流量。 从你的 DNS 服务器的日志中你可以获得大量的信息,这些信息能使你所使用的检测技术,如 DNS 隧道更容易。 你不必仅仅限制警报的频率和连接大小,因为你可以使用唯一子域名的数量或查询的唯一域名的数量。

如果你想了解更多关于 DNS 隧道化的信息,你可以阅读 Akamai 的博客 另一种类似的有趣的隧道方式是通过 ICMP

保护你的数据

image.png

想到当你检测出站网络流量中的数据外泄时,可能已经太晚了,这有点滑稽! 为了检测峰值较高的出站流量,攻击者必须首先窃取大量数据。

为了缓解这种情况,你必须考虑你真正关心的数据:

· 数据在哪里?

· 谁能访问这些数据?

· 他们如何访问这些数据?

假设一个攻击者想要从你的 SQL 数据库中窃取50GB 的数据。 他首先必须将 SQL 服务器的表导出到主机,然后将这些表上传到某个外部云存储。

如果你能在以下任何一种情况下发出警报,你就可以在攻击者能够窃取数据之前发现他:

· 未经授权的 SQL 数据库导出

· SQL服务器传输的流量异常的大

例如,你查看你的 SQL 服务器通常是做什么的,然后发现大部分的 SQL 服务器的流量通常是 web 应用服务器,或者一些 ETL 进程,也许还有一些备份进程。 然后,从 SQL 服务器到 SQL 管理工作站的高速数据传输可能也会被认为是异常的。

与其监视网络中的所有流量以发现任何奇怪的事情,还不如进行一些分析,你可以将注意力集中在网络的一些组件上。

缩小一些关键用户或系统的警报范围可以提高模型的效率,并能够检测到更微妙的高影响攻击。

接下来: 横向移动

image.png

在下一篇博文中,我们将回顾一些关于发现横向运动行为的问题。

攻击者控制的初始跳板主机可能无法访问攻击者想要的数据。 然后攻击者必须在网络中探索和导航,通过不同的主机和帐户,直到他到达最终目标。 这可能是我们能够在正确的有利位置发现的东西。

参考资料

[1] US-CERT, 对抗内部威胁(2014)  (2014)

[2] M. Collins,《通过数据分析实现网络安全》(2014)

[3] SEC511: 持续监测和安全运营

本文翻译自:https://towardsdatascience.com/data-analysis-for-cybersecurity-101-detecting-data-exfiltration-ae887594f675如若转载,请注明原文地址:
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2024 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务