当前位置: 首页 > news >正文

被动操作系统指纹识别的强大功能可实现准确的物联网设备识别

到 2030 年,企业网络和互联网上的物联网设备数量预计将达到290 亿。这种指数级增长无意中增加了攻击面。

每个互连设备都可能为网络攻击和安全漏洞创造新的途径。Mirai 僵尸网络通过使用数千个易受攻击的 IoT 设备对关键互联网基础设施和热门网站发起大规模 DDoS 攻击,就证明了这一点。

为了有效防范物联网蔓延的风险,持续监控和绝对控制至关重要。然而,这需要准确识别企业网络内的所有物联网设备和操作系统 (OS)。

如果没有这些知识,IT 和安全团队就缺乏必要的可见性和理解,无法有效实施有针对性的安全控制、监控网络活动、识别异常情况并减轻潜在威胁。

了解物联网的身份困境

通常,管理员可以通过在网络端点上运行的软件代理分配的唯一设备 ID 来识别设备和操作系统,并收集设备识别信息。然而,在所有操作系统上安装此类代理可能是不可能或不可行的,尤其是在嵌入式系统和物联网设备中使用的操作系统。

这是因为物联网设备旨在执行特定功能,并且通常具有有限的资源(处理能力、内存和存储)。他们通常缺乏支持任何其他软件代理的能力。

出于这些原因,我们需要一种被动的识别方法,该方法不涉及软件安装,并且与定制和精简的系统同样有效,以满足特定的物联网设备要求。其中一种方法是基于网络的指纹识别和被动操作系统指纹识别。

什么是被动操作系统指纹识别?

在实践中,被动操作系统指纹识别就像试图在没有任何直接交互的情况下,仅根据人们的外表和行为来分析他们。

同样,设备与网络交互的方式泄露了很多有关其身份、功能和潜在风险的信息。被动操作系统指纹识别不需要安装软件代理,而是通过分析设备生成的网络流量模式和行为来确定其操作系统。

该方法依赖于已建立的技术和指纹数据库,这些数据库存储特定于各种操作系统的流量模式和行为。例如,TCP 标头或动态主机配置协议 (DHCP) 请求中设置的特定选项可能因操作系统而异。

操作系统指纹识别本质上是将设备的网络流量模式和属性与已知的操作系统配置文件进行匹配,并对流量进行相应的分类。

多种网络协议可用于操作系统指纹识别:

MAC 地址: MAC(媒体访问控制)地址是制造商分配给网络设备的唯一标识符。每个 MAC 地址通常都包含制造商独有的组织唯一标识符 (OUI)。例如,通过检查 MAC 地址“88:66:5a:12:08:8E”,管理员可以确定 Apple 制造该设备,因为字符串“88:66:5a”与 Apple Inc. 相关联。同样,物联网设备流量包括具有特定于设备制造商的 OUI 的 MAC 地址。

TCP/IP 参数: TCP 和 IP 协议在各自的数据包标头格式中具有多个字段。不同的操作系统以不同的方式实现 TCP/IP 属性,并且 TCP/IP 字段可能具有唯一的值,例如初始生存时间 (TTL)、Windows 大小、TCP 标志等。管理员可以分析和比较这些字段,并根据操作系统特定的 TCP/IP 实现来识别底层操作系统。

HTTP 用户代理字符串:当网络设备(客户端)使用 HTTP 协议通过网络与服务器通信时,HTTP 标头包含 HTTP 用户代理字段。该字段可以提供诸如客户端软件的名称和版本、操作系统以及其他相关信息等信息。管理员可以检查此字段以及 HTTP 标头中的其他字段以进行设备检测。

DHCP 请求: DHCP 是一种用于自动分配 IP 地址的网络协议。DHCP 请求可以包含提供有关客户端的附加信息的某些字段,例如主机名、供应商类别标识符或操作系统类型。由于定制和修改,DHCP 请求可能无法确定底层操作系统,但它们仍然可能有助于获取有关设备身份的更精细信息。

尽管存在局限性,但分析跨网络层的多个协议的行为和属性可以帮助准确识别设备。管理员可以使用操作系统指纹来做出有关访问控制和安全策略的明智决策。

跨企业网络的操作系统指纹识别

鉴于物联网网络的快速扩展及其引入的漏洞,操作系统指纹识别有助于被动设备识别。然而,手动操作系统指纹识别是一项艰巨的任务,需要广泛的领域知识和专业知识。

主要挑战是可扩展性。在企业网络的数千个流量中手动映射唯一标识符是不可能的。为了克服这一挑战,组织可以利用基于云的融合网络和安全堆栈的资源和规模。云原生安全堆栈,例如SASE(安全访问服务边缘)或SSE(安全服务边缘),可以访问所需的资源,并启用机器学习算法和统计分析,以从大量网络流量数据中提取模式和行为。

融合网络和安全功能可以自动收集和关联来自多个来源的网络和安全数据,例如入侵检测系统、防火墙日志和端点安全解决方案,以提供网络活动及其与操作系统和物联网设备的关系的概述。

融合有助于根据客户的独特特征自动识别和分类客户。最后,集中管理控制台可以帮助简化识别和分析过程,并允许立即采取有关访问控制和安全策略的行动。

相关文章:

被动操作系统指纹识别的强大功能可实现准确的物联网设备识别

到 2030 年,企业网络和互联网上的物联网设备数量预计将达到290 亿。这种指数级增长无意中增加了攻击面。 每个互连设备都可能为网络攻击和安全漏洞创造新的途径。Mirai 僵尸网络通过使用数千个易受攻击的 IoT 设备对关键互联网基础设施和热门网站发起大规模 DDoS 攻…...

QT/C++获取电脑系统,主板型号,CPU型号,硬盘型号,内存大小等相关信息(二)通过Windows Server (WMI)查询

Qt/C调用windows Api库通过wmi的方式查询电脑能获取更多详细信息,也更加合理有技术性。 建议使用MSCV编译器,如MSCV 2017 ,Qt版本 : 5.13.1 目录导读 关于 WMI示例:创建 WMI 应用程序示例:打印Wmi执行的查询项的所有属性头文件引用…...

自建音乐服务器Navidrome之一

这里写自定义目录标题 1.1 官方网站 2. Navidrome 简介2.1 简介2.2 特性 3. 准备工作4. 视频教程5. 界面演示5.1 初始化页5.2 专辑页 前言 之前给大家介绍过 Koel 音频流服务,就是为了解决大家的这个问题:下载下来的音乐,只能在本机欣赏&…...

ACL 访问控制 过滤数据 维护网络安全(第七课)

一 ACL 简介 ACL是Access Control List(访问控制列表)的缩写,是一种用于控制文件、目录、网络设备等资源访问权限的方法。ACL可以对每个用户或用户组设置不同的访问权,即在访问控制清单中为每个用户或用户组指定允许或禁止访问该资源的权限。它通常由一系列规则组成,规则…...

3D视觉测量:面对面的对称度 点对(附源码)

文章目录 0. 测试效果1. 基本内容2. 3D视觉测量对称度测量思路3. 代码实现4. 参考文章目录:3D视觉测量目录微信:dhlddxB站: Non-Stop_目标:通过3D视觉方法计算面对面的对称度0. 测试效果 数据说明:此测试点云是通过UG建模,Meshlab降采样得到,数据比较理想,仅作为测试使用…...

无涯教程-JavaScript - RANK函数

RANK函数取代了Excel 2010中的RANK.EQ函数。 描述 该函数返回数字列表中数字的等级。数字的等级是其相对于列表中其他值的大小。 如果对列表进行排序,则数字的排名将是其位置。 语法 RANK (number,ref,[order])争论 Argument描述Required/OptionalNumberThe number whose…...

蓝牙发展现状

目录 一、产品分类1、Bluetooth经典2、Bluetooth低能耗(LE)3、二者差异 二、出货量三、未来需要加强的方向四、技术行业细分五、学习资料1、蓝牙官网2、大神博客——于忠军 一、产品分类 1、Bluetooth经典 Bluetooth Classic无线电,也被称为Bluetooth 基本速率/增强…...

排序算法问题

给你一个整数数组 nums,请你将该数组升序排列。 示例 1: 输入:nums [5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:nums [5,1,1,2,0,0] 输出:[0,0,1,1,2,5] 代码如下: 1.插入排序(简…...

PlotlyJs 指定画布的宽度并页面居中

可以通过CSS样式来实现指定画布的宽度并使其在页面居中。具体方法如下&#xff1a; 在HTML文件中定义一个div&#xff0c;用来包含PlotlyJs画布。如下所示&#xff1a; <div id"plotly-div"></div>在CSS样式中指定该div的宽度和居中方式。如下所示&…...

java基础-----第八篇

系列文章目录 文章目录 系列文章目录一、Java类加载器二、双亲委托模型 一、Java类加载器 JDK自带有三个类加载器&#xff1a;bootstrap ClassLoader、ExtClassLoader、AppClassLoader。 BootStrapClassLoader是ExtClassLoader的父类加载器&#xff0c;默认负责加载%JAVA_HOME…...

【Java 基础篇】StringBuilder的魔力:Java字符串处理探究

在Java编程中&#xff0c;字符串是一个常见的数据类型&#xff0c;用于存储文本信息。然而&#xff0c;与字符串相关的操作可能会导致性能问题&#xff0c;因为字符串是不可变的&#xff0c;每次对字符串进行操作都会创建一个新的字符串对象。为了解决这个问题&#xff0c;Java…...

Shell 编程技巧:批量转换Markdown文件

由于一些原因&#xff0c;需要将以前编写的所有markdown文件转成docx文件&#xff0c;以便做一个备份&#xff0c;特别是原文档中引用的图片需要嵌入docx文件&#xff0c;作本地化保存。先上脚本吧&#xff1a; sudo yum -y install pandoc # set new line char as IFS IFS$\…...

EasyAVFilter的初衷:把ffmpeg.c当做SDK来用,而不是当做EXE来用

之前我们做一个视频点播的功能&#xff0c;大概的流程就是将上传上来的各种格式的视频&#xff0c;用FFmpeg统一进行一次转码&#xff0c;如果probe到视频的编码格式是H.264就调用-vcodec copy&#xff0c;如果probe到视频的编码格式不是H.264就调用-vcodec libx264&#xff0c…...

内存管理之:内存空间分布和栈攻击(黑客常用攻击手段)

目录 C语言内存管理及栈攻击 内存管理 Linux虚拟内存空间分布&#xff08;重要&#xff09; 栈溢出&#xff08;栈攻击&#xff09; 堆栈的特点 栈攻击 栈攻击的实现 原理 编译器选项 实现案例 linux修改栈空间大小方式 内存泄漏 如何避免野指针&#xff1f; 如何…...

一米facebook功能点

用户信息批量修改 可批量修改已登录用户的头像、密码、个人说明等信息。 小号批量刷赞、评论 可以批量用facebook小号给帖子、主页等刷赞或评论。 直播帖刷人气/评论/分享 可以直接刷直播帖子的人气、评论&#xff0c;并可一键分享到小组或个人时间线、公共主页等。 小组成员…...

uni-app:监听数据变化(watch监听、@input事件)

方法一&#xff1a;文本框监听,使用input事件 <template><view><input type"text" v-model"wip_entity_name" input"handleInputChange" /></view> </template><script> export default {data() {return {…...

提升C语言的方法?

我个人的习惯&#xff0c;学一门新的编程语言一定是需要目的的。 也就是学这个语言是干什么&#xff1f; 单纯的上学学习C语言一般都是工科的专业作为专业课而开设的学科&#xff0c;这种很多都是使用谭浩强的教材&#xff0c;很多同学也基本没听&#xff0c;所以学习效果也是…...

WPF_布局基础

布局容器 Grid 定义由列和行组成的灵活的网格区域。 行 <Grid.RowDefinitions><RowDefinition/><RowDefinition/></Grid.RowDefinitions> 列 <Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDe…...

【SA8295P 源码分析】87 - SA8295P HQNX + Android 编译环境搭建指导

【SA8295P 源码分析】87 - SA8295P HQNX + Android 编译环境搭建指导 一、Android 编译环境搭建:Android + sa8295p-hqx-4-2-4-0_hlos_dev_la.tar.gz1.1 更新 Ubuntu 18.04 源路径1.2 安装基础编译环境1.3 设置JDK8 的环境变量1.4 配置sh为bash(默认为dash)1.5 Android 编译…...

java基础-----第九篇

系列文章目录 文章目录 系列文章目录前言一、GC如何判断对象可以被回收前言 一、GC如何判断对象可以被回收 引用计数法:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计 数为0时可以回收, 可达性分析法:从 GC Roots 开始向下搜索,搜索所走过的…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

SpringAI实战:ChatModel智能对话全解

一、引言&#xff1a;Spring AI 与 Chat Model 的核心价值 &#x1f680; 在 Java 生态中集成大模型能力&#xff0c;Spring AI 提供了高效的解决方案 &#x1f916;。其中 Chat Model 作为核心交互组件&#xff0c;通过标准化接口简化了与大语言模型&#xff08;LLM&#xff0…...