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

news2024/11/25 18:47:17

到 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(安全服务边缘),可以访问所需的资源,并启用机器学习算法和统计分析,以从大量网络流量数据中提取模式和行为。

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

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

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

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

相关文章

查看占用GPU资源的 进程所属docker容器,并杀死 docker 中的僵尸进程!

查看占用GPU资源的所属docker 进程,并杀死 docker 中的僵尸进程! 问题描述:查看当前占用GPU资源的进程属于哪个Docker容器杀死 docker 中的僵尸进程 问题描述: 问题1:一台服务器,每个人在上面 run 一个容器…

企业主流全链路监控系统 - OpenTelemetry(二)

OpenTelemetry 二 4. 部署(python)准备工作(1/5)创建 HTTP Server(2/5)Automatic instrumentation(3/5)增加观测项(Manual)(4/5)向 Co…

win11右键菜单栏改回win10

1.右键 WIN 图标,点击 " 终端(管理员) ” 2.执行以下命令 reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve3.重启电脑

【c++随笔03】构造函数、析构函数、拷贝构造函数、移动构造函数

【c随笔03】构造函数、析构函数、拷贝构造函数、移动构造函数 一、构造函数1、为何要有构造函数?2、构造函数定义3、无参构造、带参构造4、构造函数注意事项4.1 构造函数是特殊的,不是常规的成员函数,不能直接调d1.Date() 。4.2 如果通过无参…

R语言数据管理

1.将变量加入列表中 > mydata<-data.frame(x1c(2,3,4,5),x2c(2,5,7,9)) > mydatax1 x2 1 2 2 2 3 5 3 4 7 4 5 9 > sumx<-x1x2 Error: object x1 not found > sumx<-mydata$x1mydata$x2 > sumx [1] 4 8 11 14 > ls() [1] "mydata&…

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

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

RT-Thread I/O设备模型(一)

I/O设备模型 绝大部分的嵌入式系统都包括一些I/O&#xff08;Input/Output&#xff0c;输入/输出&#xff09;设备&#xff0c;例如仪器上的数据显示屏&#xff0c;工业设备上的串口通信、数据采集设备上用于保存数据的 Flash 或 SD 卡&#xff0c;以及网络设备的以太网接口等…

docker 笔记11: Docker容器监控之CAdvisor+InfluxDB+Granfana

1.原生命令 docker stats命令的结果 是什么 2.是什么 容器监控3剑客 CAdvisor监控收集InfluxDB存储数据Granfana展示图表 3.CAdvisor 4.InfluxDB 5.Granfana 6.总结 7.compose容器编排&#xff0c;一套带走 新建目录 7.1新建3件套组合的 docker-compose.yml version: 3.1vo…

如何写出一篇优秀的博客

写一篇优秀的博客需要经过以下几个步骤&#xff1a; 确定博客的主题和目的 首先要确定博客的主题和目的。这可以根据自己的专业领域、兴趣爱好或者行业热点来定。博客的主题应该具有一定的深度&#xff0c;能够吸引读者的关注&#xff0c;同时博客的目的应该明确&#xff0c;是…

基于x86_64 ubuntu22.04的framebuffer编程

文章目录 前言一、framebuffer简介二、framebuffer接口1.framebuffer设备描述信息2.framebuffer访问接口3.查询/设置可更改信息 三、使用步骤 前言 前段时间由于笔记本没有保管好&#xff0c;LCD显示屏压碎了。于是&#xff0c;将笔记本电脑拆开查看LCD型号。在淘宝上下单买了…

【Java 基础篇】玩转 Java String:技巧与实践

在Java编程中&#xff0c;字符串&#xff08;String&#xff09;是一个非常常见的数据类型&#xff0c;用于存储文本信息。无论是处理用户输入、读取文件内容还是与外部系统进行通信&#xff0c;字符串都扮演着重要的角色。本篇博客将深入讨论Java中的字符串&#xff08;String…

双边滤波 Bilateral Filtering

本文是对图像去噪领域经典的双边滤波法的一个简要介绍与总结&#xff0c;论文链接如下&#xff1a; https://users.soe.ucsc.edu/~manduchi/Papers/ICCV98.pdf 1.前言引入 对一副原始灰度图像&#xff0c;我们将它建模为一张二维矩阵u&#xff0c;每个元素称为一个像素pixel&am…

PID串行多闭环控制与并行多闭环控制的优缺点分析和应用比较

导言&#xff1a; 在自动控制领域&#xff0c;PID控制器是一种经典的控制策略&#xff0c;被广泛应用于各种工业和非工业过程。随着控制系统的复杂性增加&#xff0c;PID串行多闭环控制和PID并行多闭环控制成为解决复杂控制问题的重要方法。本文将从优点和缺点的角度对这两种控…

大数据Flink(七十二):SQL窗口的概述和Over Windows

文章目录 SQL窗口的概述和Over Windows 一、窗口的概述

【100天精通Python】Day53:Python 数据分析_NumPy数据操作和分析进阶

目录 1. 广播 2 文件输入和输出 3 随机数生成 4 线性代数操作 5 进阶操作 6 数据分析示例 1. 广播 广播是NumPy中的一种机制&#xff0c;用于在不同形状的数组之间执行元素级操作&#xff0c;使它们具有兼容的形状。广播允许你在不显式复制数据的情况下&#xff0c;对不同…

2022年09月 C/C++(七级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 第1题&#xff1a;二叉树的深度 给定一棵二叉树&#xff0c;求该二叉树的深度 二叉树深度定义&#xff1a;从根结点到叶结点依次经过的结点&#xff08;含根、叶结点&#xff09;形成树的一条路径&#xff0c;最长路径的…

读SQL学习指南(第3版)笔记10_元数据与大数据

1. 元数据 1.1. metadata 1.2. 关于数据的数据 1.3. 数据字典 1.3.1. ⒅与外键关联的数据表/列 1.3.2. ⒄外键列 1.3.3. ⒃外键名 1.3.4. ⒂存储索引的信息 1.3.5. ⒁索引列的排序&#xff08;升序或降序&#xff09; 1.3.6. ⒀已索引的列 1.3.7. ⑿索引类型&#xf…

CSDN的好处

社区交流&#xff1a;CSDN是一个广大的程序员社区&#xff0c;有很多技术大牛和优秀开发者&#xff0c;可以在这里进行技术交流和讨论&#xff0c;获取最新的技术动态和资源。 学习资源&#xff1a;CSDN上有很多高质量的技术文章、教程和视频资源&#xff0c;可以帮助程序员不…

2023-9-3 筛质数

题目链接&#xff1a;筛质数 埃氏筛法 #include <iostream>using namespace std;const int N 1000010;int cnt; bool st[N];bool get_primes(int n) {for(int i 2; i < n; i ){if(!st[i]){cnt ;for(int j i i; j < n; j i) st[j] true;}} }int main() {int …

linux深入理解多进程间通信

1.进程间通信 1.1 进程间通信目的 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程资源共享&#xff1a;多个进程之间共享同样的资源。通知事件&#xff1a;一个进程需要向另一个或一组进程发送消息&#xff0c;通知它&#xff08;它们&#xff09;发生了某种事件…