诱骗IoT恶意软件跟踪CC服务器

news2024/11/13 7:57:06

工作背景

在分析 IoT 僵尸网络时,识别C&C 服务器至关重要。C&C 服务器的 IP 地址一直都是商业威胁情报的重要组成部分,由于 C&C 服务器通信协议日渐复杂并且活跃周期较短,时效性和准确性也非常重要。如果可以自动化识别 IoT 恶意软件使用的 C&C 服务器,能够提供极有价值的威胁情报。

工作设计

首先在沙盒中执行 IoT 恶意软件触发C&C请求,紧接着 Profiler在所有流量中剥离出 C&C 流量,再通过 MitM 将流量重定向至给定的 IP:端口 空间范围,最后通过分析通信确定目标是否为 C&C 服务器。

激活 C&C 流量

要按照样本文件的架构使用对应架构的环境,使用 QEMU 和 RiotMan 来模拟所需环境。

C&C 流量剥离

算法如下所示。首先过滤掉不相关的协议(ICMP、DHCP、ARP、NTP等),接着计算与对端的连接次数/请求解析次数大不大。针对域名要过滤掉信誉高的域名,针对IP:端口计算连接频率与对端端口号出现的IP 地址数。

重定向探测

通过中间人模块来重定向流量,出于伦理考量需要做映射和限制。

确定C&C 服务器

在传输层使用两种方式:

(1)SYN-DATA 感知。在 SYN 设置低于阈值且存在数据交换时,即可认为是 C&C 服务器。即便握手也不代表在应用层面连接成功,但失败后一直重试也可能是C&C 服务器。

(2)指纹识别。将网络流建模成对话的模式:确定流的开始与结束,保证流符合 TCP 标准规范,再提取数据包属性。算法如下所示,属性可以是数据包大小、字节熵值或者 Payload 中的字符串等。通过这种方式,可以将每个流都转换成字符串。转换成字符串后,比较字符串间的相似度(最长公共序列,LCS)再进行聚类(K-Means)。

第一个流中,完成握手后客户端发送 11 字节数据,随后服务器回复 4 字节数据,客户端响应 1 字节数据结束。第二个流中,完成握手后客户端发送 2 字节数据,随后服务器回复 13 字节数据,紧接着服务器与客户端互相确认 FIN 流结束。

工作准备

C2Miner 使用 Python 和 Shell 编写,总计约 3500 行代码。

除了向 C&C 服务器发送的流量之外,全部都被过滤掉了。

从 MalwareBazaar 与 VirusTotal 中收集 1447 个 MIPS 架构的样本,平均每天可收集到四个新样本。

分析期间,样本向 15 万个“IP:端口”组合发出了 300 万次请求。一共有 202 个样本文件与 C&C 服务器建立了连接,生成了 230MB 流量(其中,C&C 流量只占 0.06%)。

这些样本覆盖了 11 个恶意软件家族,但 MIPS 样本的杀软标签很不准确。

工作评估

对比之下,最为稳定的就是指纹识别的方法。

聚类也可以很好地表征恶意软件家族的行为,但并不完美。大多数 Mirai 的样本模式为CLIENT_4.CLIENT_1.CLIENT_2.SERVER_2,大多数 Gafgyt 的样本模式为SERVER_4.SERVER_1.SERVER_4.SERVER_1,这二者就覆盖率 68% 的 C&C 通信。

该方法对 84% 的样本文件都有效。

工作思考

根据既定模式在大网展开探测,C2Miner 发现了好几个活跃的 C&C 服务器。

尽管每天识别出一个活跃 C&C 服务器,但受制于各方条件限制已经相当好了。

即使是正确的 C&C 服务器,也未必一定会正确响应。

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

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

相关文章

深度学习实战笔记3循环神经网络实现

我们要训练一个基于循环神经网络的字符级语言模型,根据用户提供的文本的前缀生成后续文本。 import math import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2l batch_size, num_steps 32, 35 train_iter, voc…

防震减灾知识竞赛的规则和流程方案

防震减灾知识竞赛的规则主要包括赛制、比赛形式、参赛对象、竞赛内容等方面。 赛制:通常包括选拔赛、分区预赛和全国决赛三个阶段。选拔赛可以根据地区实际情况选择合适的组织形式,预赛和决赛则以现场比赛形式进行,由主办单位统一组织。 比…

掌握 Spring Boot + MyBatis-Plus 动态数据源切换,只要5分钟!

数据量猛增&#xff0c;通过动态数据源切换&#xff0c;我们不仅能提高查询效率&#xff0c;还能保证系统的高可用性。 通过将写操作集中在主库&#xff0c;读操作分散到多个从库&#xff0c;可以有效减轻数据库的压力。 在pom.xml中添加以下依赖&#xff1a; xml <depend…

记录|LabVIEW从0开始

目录 前言一、表达式节点和公式节点二、脚本与公式2.1 公式 三、Excel表格3.1 位置3.2 案例&#xff1a;波形值存入Excel表中3.3 案例&#xff1a;行写入&#xff0c;列写入 四、时间格式化4.1 获取当前时间4.2 对当前时间进行格式化 更新时间 前言 参考视频&#xff1a; LabVI…

hadoop学习(二)

一.MapReduce 1.1定义&#xff1a;是一个分布式运算程序的编程框架 1.2核心功能&#xff1a;将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序&#xff0c;并发运行在一个Hadoop集群上。 1.3优点 1&#xff09;易于编程 它简单的实现一些接口&#…

从入门到精通:电商设计师的职业发展指南

在当今数字时代&#xff0c;电商设计师的作用越来越重要。从电子商务网站的整体造型设计到产品页面的具体布局&#xff0c;他们的工作范围是电子商务企业成功的关键因素之一。然而&#xff0c;并不是每个人都对这个职业有深刻的理解。因此&#xff0c;在本文中&#xff0c;我们…

web3d值得学习并长期发展,性价比高吗?

在数字化浪潮日益汹涌的今天&#xff0c;Web3D技术以其独特的魅力和广泛的应用前景&#xff0c;逐渐成为技术领域的焦点。对于许多热衷于技术探索和创新的人来说&#xff0c;学习并长期发展Web3D技术无疑是一个值得考虑的选择。那么&#xff0c;Web3D技术的学习和发展究竟是否性…

华为openEuler 24.03 LTS系统安装系统后用SSH工具不能连接

sudo dnf install vim #安装VIM vim /etc/ssh/sshd_config #修改文件如图systemctl restart sshd #重启服务再用SSH工具连接成功

【树莓派+OpenCV+STM32】智能小车巡线_提取线路数据并通过串口通信传输

一、所用材料 树莓派4B树莓派官方摄像头STM32F103C8T6最小系统板 二、实现功能 在树莓派上用OpenCV对摄像头中的图像进行处理&#xff0c;将图像处理后的数据通过串口通信给到下位机STM32F103C8T6&#xff0c;再由下位机给出控制信号&#xff0c;利用pid算法实现对小车运动轨…

备忘录系统

目录 一、 系统简介 1.简介 2需求分析 3 编程环境与工具 二、 系统总体设计 1 系统的功能模块图。 2 各功能模块简介 3项目结构 4 三、 主要业务流程 &#xff08;1&#xff09;用户及管理员登录流程图 &#xff08;2&#xff09;信息添加流程 &#xff0…

强烈推荐这三款IOS应用,让你的生活更美好

Dino记账 Dino记账是一款结合了简洁设计和强大功能的记账应用&#xff0c;它通过多维度图表帮助用户轻松掌握金钱流向。应用界面明亮且配色突出&#xff0c;使得记录内容易于阅读&#xff0c;让记账和管理账目变得更加简单。 主要特性&#xff1a; 极简风格与易用性&#xff1…

史上最全Spring的@Transactional不生效的12大场景

一、事务不生效 1、访问权限的问题 在Spring框架中&#xff0c;AbstractFallbackTransactionAttributeSource是用于确定一个给定的方法是否应该被事务管理的一个抽象类。它的computeTransactionAttribute方法用于计算并返回一个方法的TransactionAttribute。computeTransacti…

SD NAND存储卡:小尺寸下的大容量存储

SD NAND是一种基于NAND闪存技术的存储设备&#xff0c;采用SD卡形式&#xff0c;具备高存储容量、高速度和高可靠性的特点&#xff0c;广泛应用于嵌入式系统和消费电子产品中。 在如今数据驱动的世界&#xff0c;存储技术的发展至关重要。MK米客方德作为存储芯片行业的领先者&…

C++(week14): C++提高:(一)面向对象设计:设计原则、设计模式

文章目录 一、面向对象设计的概念4.统一建模语言&#xff1a;UML语言StartUML 二、类与类之间的关系0.总结(1)类与类的五种关系(2)区别(3)面向对象 vs 基于对象 1.继承 (泛化耦合)2.组合 (Composition)3.聚合 (Aggregation)4.关联(1)双向关联(2)单向关联 5.依赖 (Dependency) 三…

JNDI注入-RMI和Reference

参考博客&#xff1a; JNDI注入与动态类加载 JNDI Java命名和接口目录为用Java编程语言编写的应用程序提供命名和目录功能。 可以通过一种通用方式访问各种服务&#xff0c;类似通过名字查找对象的功能&#xff0c;和RMI有点类似。 原生JNDI支持RMI&#xff0c;LDAP&#…

2024最新前端学习路线指南!

2024最新前端学习路线指南&#xff01; 如果你正在寻找一份全面的前端学习路线图&#xff0c;那么这份精心打造的学习大纲恰好符合您的需求。无论您是新手还是经验丰富的开发者&#xff0c;这份路线图都能够帮助您系统地掌握前端开发的关键知识点&#xff0c;并在实践中不断提…

实验2-3-7 阶梯电价

//实验2-3-7 阶梯电价 /*为了提倡居民节约用电&#xff0c;某省电力公司执行“阶梯电价”&#xff0c; 安装一户一表的居民用户电价分为两个“阶梯”&#xff1a; 月用电量50千瓦时&#xff08;含50千瓦时&#xff09;以内的&#xff0c;电价为0.53元/千瓦时&#xff1b; 超过5…

java实现加水印功能

1-Word加水印 实现原理&#xff1a; ● 通过页眉页脚生成文字水印或图片水印&#xff0c;然后设置页眉页脚的高度以及旋转角度来设置水印。 源代码&#xff1a; 1、引入pom依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml…

家具购物小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;家具分类管理&#xff0c;家具新品管理&#xff0c;订单管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;家具新品&#xff0c;家具公告&#xff0…

给配置环境变量的小白们的一个tips

告诉什么也不懂的计算机小白包括我&#xff0c;配置环境变量的时候&#xff0c;系统变量配置好之后&#xff0c;path变量一定要去users里加&#xff0c;不要在系统变量里加&#xff0c;不然查版本号的时候你就会像我一样在命令行里傻傻的 你加到系统变量的path后&#xff0c;在…