跳板攻击中如何追踪定位攻击者主机(上)

news2024/11/26 13:49:48

前段时间西北工业大学遭受NAS攻击事件中,TAO在针对西北工业大学的网络攻击行动中先后使用了54台跳板机和代理服务器,主要分布在日本、韩国、瑞典、波兰、乌克兰等17个国家,其中70%位于中国周边国家,如日本、韩国等。

同时,为了进一步掩盖跳板机和代理服务器与NSA之间的关联关系,NSA使用了美国Register公司的匿名保护服务,对相关域名、证书以及注册人等可溯源信息进行匿名化处理,无法通过公开渠道进行查询。

一、跳板攻击

那么究竟什么是跳板攻击,跳板攻击究竟是如何做到信息进行匿名化的?

跳板攻击是指攻击者利用多个“跳板主机”, 即通过控制多个主机转发攻击数据包。

攻击者事先控制多个跳板主机, 利用跳板转发攻击数据包。但是在受害主机端, 只能看到攻击数据包来自于最后一跳的主机, 而不能识别出真正的攻击者,所以跳板攻击的真正目的就是隐藏攻击者。而且跳板路径越长, 越难追踪攻击者。

二、跳板检测Step-stone Detection

对于跳板攻击,取证人员在检测到攻击数据包后, 其源IP地址是最后一跳“跳板主机”的IP地址, 那么在这种情况下如何追踪定位攻击者的主机?

在这一问题中, 由于在受害主机端可以观察到最后一跳的IP地址, 因此追踪问题就转化为如何沿着攻击路径上的跳板, 逐跳验证是否确实存在“跳板主机”。

我们首先要解决:跳板检测(Step-stone Detection), 即如何确定本地网络中存在攻击者的跳板?

假设网络安全人员完全控制本地网络, 能够对进出本地网络的网络流量进行监控。

若攻击者的跳板位于本地网络内, 由于跳板只是起一个攻击数据包转发的功能, 一般不会对攻击数据包进行修改, 因此进出网络的攻击数据包会具有相似性, 通过对进出网络的网络流量进行监控, 检测这种攻击数据包的相似性, 即可判断本地网络内是否存在跳板。

若攻击者的主机就位于本地网络内, 则在一定时间内, 攻击者会发出攻击数据包, 而不会有进入本地网络的攻击数据包, 因此也可以通过对进出网络的网络流量进行监控,。

如发现只有出的攻击数据包而没有进入的网络数据包, 则可以判断攻击者主机位于本地网络内。

在跳板攻击检测中, 存在一个前提条件, 即进入的攻击流量和转发的流量间隔时间不能很长, 否则很难将入的流量和出的流量关联在一起。

这一间隔时间用攻击者的最大容忍时间来表示。如果间隔时间大于最大容忍时间, 例如攻击者向跳板发送命令后, 跳板不是立即转发攻击者的命令, 而是采用计划任务等方式, 让跳板在设定的时间再转发数据, 则在这种情况下现有的方法都将失效。

由于攻击者为了逃避检测, 可以将数据流量进行加密, 因此将情况分为流量未加密情况加密的情况

1) 数据包未加密

 S.Staniford-Chen与L.Heberlein首次提出跳板检测问题。即使用数据包的明文内容的指纹来判断不同的数据包是否具有相同的内容, 从而建立流量间的关联。

2) 数据包加密

由于数据包进行了加密, 无法对数据包的内容进行检查, 因此主要思想是对数据流的特征进行检测, 如数据包的时序特征。

(1) 假设攻击者不会有意识改变数据包的特征

Detecing stepping stones》中首次提出基于数据包时序特征的检测方法。他们观察到在一个数据流中存在没有数据传输的时间间隔, 将这一时间间隔定义为“关”周期, 而在相似的数据流中, “关”周期的特征是相同的, 因此通过这一特征来关联入的流量和出的流量,但该方法要求连接是同步的。

Finding a connection chain for tracing intruders》则定义了数据传输的平均延迟和最小延迟两个指标来识别数据流的模式, 通过这两个延迟时间计算两个数据流的偏离程度, 如偏离程度小于一定阀值, 则认为两个数据流具有较高的关联度。

文献《Inter-packet delay-based correlation for tracing encrypted connections through stepping stone》定义了一个滑动窗口, 计算滑动窗口内数据包之间的间隔时间, 根据数据包间隔时间的特征来进行关联。

Mining and detecting connectionchains in network traffic》中测试了基于关联规则挖掘算法, 若“入”数据包和“出”数据包的时间差值小于预设的数值, 则将这两个数据包进行关联, 根据流中数据包关联的置信度和支持度。来判断“入”的数据流与“出”的数据流是否具有关联关系。

(2) 假设攻击者有意识改变数据包特征

① 攻击者改变数据包的时序特征

在《Multiscale stepping-stone detection: detecting pairs of jittered interactive streams by exploiting maximum tolerable delay》首次考虑攻击者可能会有意识改变数据包的时序特征, 但假设有一个攻击者的最大延迟容忍时间。它基于小波变换来检测流量的关联性。假设攻击者数据包的到达服从泊松分布或者帕累托分布, 进行了一些理论分析, 但没有给出需要捕获多少数据包才能以一定概率得到正确检测结果的分析。

Robust correlation of encrypted attack traffic through stepping stones by manipulation of  inter-packet delays》给出了一个基于水印的方法检测流量关联性, 在入流量中填加水印信息, 在出流量中检测是否存在水印信息, 但它假设攻击者数据包之间的时间间隔是独立同分布的。《a robust and invisible non-blind watermark for network flows》同样采用嵌入水印的思想, 通过记录入流量数据包的到达时间, 在一个初始延迟时间的基础上, 再增加或减小一个微小的时间来作为水印信号, 能够获得更好的鲁棒性。

《A signal processing perspective to stepping-stone detection》中假设攻击者随机延迟数据包, 跳板中继的数据包不能丢包、不能乱序、不能增加数据包, 不依赖于数据包大小, 给出了检测方法和理论分析。

该方法根据两个约束条件: 出的数据包时间大于入的数据包时间; 出的数据包时间减去入的数据包时间小于最大延迟容忍时间, 将入的数据包关联到出的数据包, 然后假设数据包的顺序不会发生变化, 降低算法的复杂度。

②攻击者增加额外的数据包

攻击者可以有意识的在中继后的数据流中插入额外的无用数据包,来破坏输入和输出数据流之间的关联关系。针对这种情况假设攻击者在一段时间内能够插入的多余数据包数目是有限的, 通过匹配输入与输出的数据包, 给出了可以抵抗增加多余数据包的跳板检测算法。

③攻击者同时改变时序特征和增加额外数据包

《A signal processing perspective to stepping-stone detection》中Ting He, Lang Tong假设攻击者在跳板中同时增加数据包的随机延时和多余的数据包, 并假设这两种改变是统计独立的, 基于数据包匹配的方法给出了检测算法。

前述方法都是针对攻击者主机到受害者主机的流量通过跳板时的入流量与出流量的关联分析, 而《Stepping stone detection via request-response traffic analysis》文章中是将攻击者主机到受害者主机的流量通过跳板时的出流量与受害者主机回传给攻击者的流量通过跳板时的出流量进行关联, 定义前者的数据包数为 Send, 后者的数据包数为 Echo, 指出如果两个流量具有相关性, 则(Echo-Send)和(Echo+Send)具有线性关系, 而如果两个流量没有关系, 则不具有这种线性关系。

实验表明, 即使攻击者有意增加数据延时和增加多余数据包, 该方法也能检测出两个流量的相关性。

因此,如何确定本地网络中存在攻击者的跳板可以采取以下解决方案:

在跳板攻击中确定完本地网络中存在攻击者的跳板,那么接下来如何追踪定位攻击者主机?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/83802.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

芯片漫游指南(3)-- UVM通信

目录1.TLM通信1.1 概述1.2 基本概念1.3 分类1.4 端口的使用2. 单向通信2.1 概念2.2 方法2.3 示例3.双向通信3.1 概述3.2 分类3.3 transport4. 多向通信4.1 概述4.2 示例5.通信管道5.1 概述5.2 TLM FIFO5.3 Analysis Port5.4 analysis TLM FIFO5.5 request & response通信管…

[附源码]JAVA毕业设计疫情防控期间人员档案追演示录像下(系统+LW)

[附源码]JAVA毕业设计疫情防控期间人员档案追演示录像下(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#x…

Springboot内置的工具类之ObjectUtils

在实际业务开发中,有时候经常需要判断对象是否为空、数组是否为空、两个对象是否相等,数组中是否包含某个元素,往数组中追加元素等这些操作,每次都手写太麻烦,然后很多人的选择是封装成util工具类,实际上类…

Golang protobuf

文章目录protobuf 和 grpc 的区别下载工具 protoc为什么要使用 protocprotoc 基本语法基础用法结构体声明protoc生成结构体服务声明生成服务使用生成的服务端使用生成的客户端protobuf 和 grpc 的区别 grpc 是开源的rpc框架 protobuf是编码协议下载工具 protoc https://githu…

人工神经网络/ANN简介

目录 前言 1.什么是训练集、测试集和验证集? 2.人工神经网络和 生物神经元结构对应的理解 3.什么是梯度下降法,在神经网络上如何用于调节权重? 4.为什么神经网络要进行归一化处理? 5.激活函数的形式: 6.NN分类 …

序列模型(自回归模型,马尔可夫模型,因果关系)

李沐老师《动手学深度学习 PyTorch版》课程,小破站也有视频51 序列模型【动手学深度学习v2】_哔哩哔哩_bilibili 主要参考8.1. 序列模型 — 动手学深度学习 2.0.0 documentation 目录 1.基本原理 1.1自回归模型 1.2马尔可夫模型 1.3因果关系 2.训练 3.预测 4…

CMake中link_directories/target_link_directories的使用

CMake中的link_directories命令用于添加目录使链接器能在其查找库(add directories in which the linker will look for libraries),其格式如下: link_directories([AFTER|BEFORE] directory1 [directory2 ...]) 添加路径使链接器应在其中搜索库。提供给…

【云计算与大数据技术】数据分片哈希算法、路由算法、复制算法的讲解(图文解释 超详细)

一、大数据的存储问题 随着结构化数据量和非结构化数据量的不断增长,以及分析数据来源的多样化,之前的存储系统设计已经无法满足大数据应用的需求,对于大数据的存储,存在以下几个不容忽视的问题 容量 - “大容量”通常是指可达P…

Python+Qt相片更换背景颜色窗体程序

程序示例精选 PythonQt相片更换背景颜色窗体程序 如需安装运行环境或远程调试,见文章底部微信名片,由专业技术人员远程协助! 前言 QTPython是非常经典的窗体编程组合,功能完善,可视化界面美观易维护,这篇博…

fpga实操训练(按键输入)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在fpga上面进行按键的输入,要比stm32编写按键输入要容易的多。这里面最主要的工作就是把led输出和按键输入绑定在一起。当然&#xff0…

MySQL MVCC

1.隔离级别 1.1.理论 1.1.1.序列化(SERIALIZABLE) 如果隔离级别为序列化,则用户之间通过一个接一个顺序地执行当前的事务,这种隔离级别提供了事务之间最大限度的隔离; 1.1.2.可重复读(REPEATABLE READ,MySQL默认的隔离级别) 在可重复读在这一隔离级别上,事务不会被看成是一…

代码随想录刷题记录 day42 打家劫舍 1 2 3

代码随想录刷题记录 day42 打家劫舍 1 2 3 参考:代码随想录 198. 打家劫舍 思想 1.dp[i]表示偷取[0,i]房间内获取的最高的金额 2.递推公式 偷取第i号房间时的价值 dp[i]dp[i-2]nums[i]; 不偷取第i号房间时的价值 dp[i]dp[i-1] 所以递推公式 dp[i]Math.max(d…

【Linux】一文简单了解操作系统在硬件中的作用,解析操作系统是做什么的?

目录前言一.操作系统的介绍二.计算机软件体系结构接口各层接口三.操作系统做什么1.不要让CPU打盹多道程序分时系统多任务系统2.设备驱动操作系统对软硬件进行合理的管理,以达到为上层用户提供良好的,稳定的,安全的运行环境的目的!…

AppScan使用教程

一、安装 IBM AppScan 该产品是一个领先的 Web 应用安全测试工具,曾以 Watchfire AppScan 的名称享誉业界。Rational AppScan 可自动化 Web 应用的安全漏洞评估工作,能扫描和检测所有常见的 Web 应用安全漏洞,例如 SQL 注入(SQL-i…

多时点DID实证流程笔记(Aggregate Effects from Public Works: Evidence from India)

文章、数据及stata代码来源: 链接:https://pan.baidu.com/s/1nBvlYGXkV7ednEx93ge1ZQ 提取码:vs5q本文进行的平行趋势检验、异质性检验均与大部分中文文献的处理方式不同,以及Bacon分解的方法对交叠did的潜在偏误进行诊断的做法也是比较新颖的。另外&a…

林业数字孪生打造实时树木“管家”

数字孪生是物联网、人工智能、虚拟现实、云计算等技术高度融合的综合性集成技术,主要目的是进行数字模型的智能分析、预测,为实体提供决策支持。林业数字孪生应用是智慧林业的具体实现手段,服务于智慧林草的业务需求,从而实现实体…

C语言#include的用法详解(文件包含命令)

#include叫做文件包含命令,用来引入对应的头文件(.h文件)。#include 也是C语言预处理命令的一种。 #include 的处理过程很简单,就是将头文件的内容插入到该命令所在的位置,从而把头文件和当前源文件连接成一个源文件&…

AI-多模态-2021:FILIP【一种基于交互的细粒度图文预训练模型】

前言 FILIP(Fine-grained Interactive Language-Image Pretrain)是一种基于交互的细粒度图文预训练模型,用于解决图文双塔匹配模型中的细粒度匹配问题。本文对该论文进行阅读笔记, 论文:https://arxiv.org/abs/2111.…

【C#基础教程】第二十章、事件

目录 事件 1.事件 2.扩展EventArgs类 事件 1.事件 事件的组成:事件由事件发布者和事件订阅者组成。事件内包含一个私有委托。 当事件发布时,事件发布者会发布消息、而事件订阅者会接受到事件已发生的通知,并作出相应的处理。 其中&#xf…

计算机研究生就业方向之考编

我一直跟学生们说你考计算机的研究生之前一定要想好你想干什么,如果你只是转码,那么你不一定要考研,至少以下几个职位研究生是没有啥优势的: 1,软件测试工程师(培训一下就行) 2,前…