当前位置: 首页 > 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 开始向下搜索,搜索所走过的…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...

32位寻址与64位寻址

32位寻址与64位寻址 32位寻址是什么&#xff1f; 32位寻址是指计算机的CPU、内存或总线系统使用32位二进制数来标识和访问内存中的存储单元&#xff08;地址&#xff09;&#xff0c;其核心含义与能力如下&#xff1a; 1. 核心定义 地址位宽&#xff1a;CPU或内存控制器用32位…...

VSCode 使用CMake 构建 Qt 5 窗口程序

首先,目录结构如下图: 运行效果: cmake -B build cmake --build build 运行: windeployqt.exe F:\testQt5\build\Debug\app.exe main.cpp #include "mainwindow.h"#include <QAppli...