ICMP隧道-调研笔记

news2024/11/28 18:50:19

ICMP隧道通信原理与通信特征
https://baijiahao.baidu.com/s?id=1652047934643855432&wfr=spider&for=pc
1.一个正常的 ping每秒最多只会发送两个数据包,而使用ICMP隧道的浏览器在同一时间会产生大量ICMP 数据包
2.ICMP隧道数据包中DATA 往往大于64 比特
3.正常的icmp数据包里,请求和回应部分数据是一致的

基于统计分析的ICMP隧道检测方法与实现
https://cloud.tencent.com/developer/article/1425907

1.正常操作系统下通过ping产生的data,转换为16进制后为从00开始不断递增然后一直到ff的重复序列中的一段或几段。对于icmp隧道产生的自定义data数据包,转换为16进制后内容是乱序没有规律的因此,可以根据ping产生的data数据包,转换为16进制后的内容是否有规律来做区分
2.检测同一来源数据包的数量。正常ping每秒只会发送2个数据包,而ICMP隧道可以每秒发送很多个;
3.检测数据包中 payload 的大小。正常ping产生的数据包payload的大小为固定,而ICMP隧道数据包大小可以任意;
4.检测响应数据包中 payload 跟请求数据包是否不一致。正常ping产生的数据包请求响应内容一致,而ICMP隧道请求响应数据包可以一致,也可以不一致;
5.检测数据包中 payload 的内容。正常ping产生的payload为固定字符串,ICMP隧道的payload可以为任意;
6.检测 ICMP 数据包的type是否为0和8。正常ping产生的带payload的数据包,type只有0和8,ICMP隧道的type可以为13/15/17

NIDS(suricata) 中的 ICMP隐蔽隧道检测
https://www.wangan.com/p/7fy7475d1d627395
作者认为ICMP隧道存在以下特征
1、ICMP 隧道短时间会产生大量 ICMP 数据包,用来数据发送,可能存在大于 64 比特的数据包。
2、ICMP 隧道发送的 ICMP 数据包前后 Data 字段不一样,而且响应数据包中 payload 跟请求数据包不一致。
3、ICMP 数据包的协议标签可能存在特殊字段。例如,icmptunnel 会在所有的 ICMP Data 前面增加 ‘TUNL’ 标记以用于识别隧道
4,Data 里面可能存在一些系统命令
作者认为可以通过ICMP Data 字段加白名单,针对特殊字段报警,或是使用发包频率进行检测

隧道技术之DNS和ICMP与其检测防御
https://www.anquanke.com/post/id/163240
检测:
1、检测同一来源 ICMP 数据包的数量。一个正常的 ping 每秒最多只会发送两个数据包,而使用 ICMP隧道的浏览器在同一时间会产生上千个 ICMP 数据包。
2、注意那些 ICMP 数据包中 payload 大于 64 比特的数据包。当然 icmptunnel 可以配置限制所有数据包的 payload 为 64 比特,这样会使得更难以被检测到。
3、寻找那些响应数据包中 payload 跟请求数据包不一致的 ICMP 数据包。
4、检查 ICMP 数据包的协议标签。例如,icmptunnel 会在所有的 ICMPpayload 前面增加 ‘TUNL’ 标记以用于识别隧道,这就是特征。

斗象科技TCC团队:基于统计分析的ICMP隧道检测方法与实现
提取了以下特征进行检测:

  1. 在一个时间窗内,ICMP请求响应的数据包数量;
  2. 捕获到的ICMP请求响应中,其payload部分是否是操作系统的正常长度;
  3. 序号相同的ICMP数据包应当属于一对ICMP请求响应消息,他们的payload是否一致;
  4. ICMP请求响应的payload内容是否正常(多模匹配);
  5. ICMP请求是否是畸形Ping报文(Type是否异常);
    对1/2/5直接使用统计组内的payload个数、payload_len长度值、是否有type不为0/8的数据包,直接得出。
    对与3的判断,需要根据正常ping和异常数据的不同点,依据组内统计得到的id_seq集合和payload集合去重后,做大小比较得出
    作者认为不考虑一些极端情况,可以简单通过 payloads_num > id_seq_num 即可认为请求响应内容不同

附:微步沙箱提供的ICMP隧道样本报告
https://mp.weixin.qq.com/s/YmqnCCcwBNkvHOVBiwGgIg

在这里插入图片描述
不过实际在微步自己的沙箱中查看时,该样本也没有表现出明显的icmp通信行为

最终检测方案:
如果icmp类型不为0或8,或者数据长度大于64bit,那么把该条icmp记录标记为疑似隧道通信。如果一个流量包里共出现至少10条疑似隧道通信记录时,才会打印icmp隧道记录,否则会把这些疑似隧道的记录按普通icmp记录输出

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

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

相关文章

TC275-11CCU6_PWM_Generation

基础知识 CCU6,Capture/Compare Unit 6捕获/比较单元,是一个专门用于电机控制而设计的16位捕获和比较单元。 CCU6包含多个定时器,将它们的计数值和参考值进行比较,来生成PWM信号。 定时器12(T12)配有三个…

Java并发编程(三)

临界区 临界资源:一次仅允许一个进程使用的资源成为临界资源 临界区:访问临界资源的代码块 竞态条件:多个线程在临界区内执行,由于代码的执行序列不同而导致结果无法预测,称之为发生了竞态条件 一个程序运行多个线…

日志框架之TLog讲解分析

文章目录1 TLog1.1 引言1.2 简介1.3 TLog操作1.3.1 pom.xml1.3.2 替换logback配置项1.3.3 测试1.4 TLog接入方式1.5 TLog的基本原理1.5.1 日志标签1.5.2 TLogContext1.5.3 TLogRPCHandler1.6 第三方框架的适配1.6.1 异步线程1.6.1.1 一般异步线程1.6.1.2 线程池1.6.2 对RPC框架…

应用程序性能瓶颈中的CPU缓存优化

1.前言 在应用程序中会有大量的对变量的操作,在一般情况下不会导致问题,但在多线程操作共享变量时,不当的操作会产生大量的冗余操作,造成性能的浪费。这篇文章主要从编码方式与逻辑策略对变量从CPU寄存器,CPU缓存&…

Redis面试题整理

认识Redis 什么是Redis? 一种基于内存的数据库;在内存中完成对数据的读写操作;读写速度非常快;常用于缓存,消息队列,分布式锁等场景 Redis和Memcached有什么区别? 共同点 都是基于内存的数据库&#x…

PaddleNLP系列课程二:RocketQA、SKEP(属性级情感分析)、通用信息抽取技术UIE

文章目录一、使用RocketQA搭建端到端的问答系统1.1 问答系统介绍1.2 RocketQA1.2.1 检索式QA VS预训练时代QA1.2.2 RocketQA简介1.3 使用RocketQA搭建问答系统1.3.1 安装1.3.2 使用预置模型完成预测1.3.3 搭建问答系统1.3.3.1 使用Faiss搭建自己的问答系统1.3.3.2 使用Jina搭建…

Leecode---141、142环形链表

141 难度 : easy 个人主要思路是, 循环遍历每个节点, 判断该节点此前是否被访问过。 方法一: 时间8ms , 内存 6.8M , func hasCycle(head *ListNode) bool {var val map[*ListNode]*ListNode{}if head nil {return …

l2逐笔接口数据传输延时高吗?

l2逐笔接口数据传输延时高吗?信息服务商的机器部署在交易所机房内,并通过接口直接向用户转发。按照交易所的规定,每个接收用户均需支付成本十几万,使用l2逐笔接口数据做量化是需要一定门槛。但用户端SDK直连的方式,能最…

C++学习 Day.9(宏和模板简介)

好久没更了,摆还是爽 遗留问题: (16条消息) int&作为函数返回类型-编程语言-CSDN问答(已解决) 宏: 预处理器编译指令都以#打头 #define(宏常量)使得预处理器进行文本替换,而不…

Acwing---795.前缀和

前缀和1.题目2.基本思想3.代码实现4.总结1.题目 输入一个长度为n的整数序列。 接下来再输入m个询问,每个询问输入一对l,r。 对于每个询问,输出原序列中从第l个数到第 r 个数的和。 输入格式 第一行包含两个整数n和m。 第二行包含n个整数&am…

一种简洁又不失优雅的工作流:极狐 flow

本文来自: 万金 极狐(GitLab)解决方案专家 杨周 极狐(GitLab) 高级解决方案架构师 极狐(GitLab) 市场部内容团队 我们提到的 Workflow 是指什么? 我们在日常开发工作中提到的 Workflow 通常是指通过 Git(版本控制工具)实现的分布式…

JavaSE学习day1_03, Java的发展

5. Java语言的扩展知识,重点 5.1 Java语言的发展 java语言前身是oka语言. JDK5:第一个大版本号更新 JDK8:企业中最常用的版本 JDK17:课程中学习的版本 特点:兼容性。 用jdk8编写的代码,用17可以运行 用jdk17编写…

定位bug

1、bug定位常用工具   Firefox——firebug、web developer、 live http headers、http fox IE插件——httpwatch 第三方工具——fiddler 慢速网模拟工具——firefox throttle 1.该选择框使用来选择资源的,当网页被加载的时候向服务器端请求出来的文件包括.htm…

二维码识别率优化实践

本文字数:5939字预计阅读时间:15 分钟概述长按图片识别二维码在移动端是很常见的操作,长按后需要对图片进行识别,并且将二维码中所包含的数据解码出来。在我们的业务场景中,是通过点击图片进入大图预览页面。长按大图预…

项目管理工具dhtmlxGantt甘特图入门教程(六):dhtmlxGantt的扩展完整列表

dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足项目管理控件应用程序的所有需求,是最完善的甘特图图表库。 这篇文章给大家讲解dhtmlxGantt的扩展完整列表。 DhtmlxGantt正版试用下载(qun:764148812&…

【NI Multisim 14.0原理图环境设置——电路总体设计流程】

目录 序言 🍊知识点 一、电路板总体设计流程 🍉 1.创建电路文件 🍉2.规划电路界面 🍉3.放置元器件 🍉4.连接线路和放置节点 🍉5.连接仪器仪表 🍉6. 运行仿真并检查错误 🍉7…

Dropzone4 for MAC 文件拖拽增强工具

前言 ​​Dropzone for mac是一款文件拖拽操作增强工具,可以让我们把大部分工作都通过拖拽来完成,只需将文件拖拽到菜单栏上的窗口即可。比如保存文本、发送邮件、FTP上传、打开应用等等。提高了用户的工作效率。 下载 Dropzone4 特征 -打开应用程序…

连接格式优化,支持自定义

12月, eKuiper 团队继续专注于 1.8.0 版本新功能的开发。我们重构了外部连接(source/sink) 的格式机制,更加清晰地分离了连接、格式和 Schema,同时支持了格式的自定义;受益于新的格式机制,我们大幅完善了文…

echarts中formatter修改鼠标悬浮事件信息操作、echarts地图块、散点区分触发点击事件 只触发散点问题详解

这里写目录标题1、实例2、案例详解1、实例 这次我拿echarts中 地图组合散点图的实例 !!!实现效果:滑到散点显示不同于地图块的信息 及 formatter 提示窗自定义!!! 这个显示项目名称为"文昌…