一、机器学习场景落地:物联网设备入侵检测系统
1、项目简介
项目名称:物联网设备入侵检测系统
随着物联网(IoT)设备的普及,其安全性成为重大挑战。传统的入侵检测系统(IDS)难以应对物联网设备的异构性、资源限制和新型攻击手段。本项目旨在设计一个基于机器学习和深度学习的物联网设备入侵检测系统,通过实时分析设备网络流量和系统行为,识别异常模式,防范恶意攻击(如DDoS、设备劫持、数据窃取等)。
2、项目功能
(1)业务功能
物联网设备入侵检测系统(IoT IDS)的业务功能主要围绕实时监控、威胁检测、安全响应等方面设计,以满足物联网环境特有的安全需求。以下是其核心业务功能:
1. 实时监控与流量分析
设备行为监控:跟踪设备的活动状态(如连接频率、数据收发模式),识别异常行为(如非工作时间活跃)。
网络流量分析:解析物联网通信协议(如MQTT、CoAP、Zigbee等),检测异常流量(如DDoS攻击、数据窃取)。
资源使用监测:监控设备的CPU、内存、功耗等资源消耗,发现异常负载(可能为恶意代码运行)。
2. 威胁检测与攻击识别
已知攻击检测:匹配特征库识别常见攻击(如恶意固件注入、中间人攻击、暴力破解)。
零日攻击检测:通过机器学习或行为分析模型识别未知威胁(如设备突然发送加密数据到陌生IP)。
协议漏洞利用检测:识别针对物联网协议弱点的攻击(如MQTT未授权访问、LoRaWAN密钥泄露)。
3. 设备身份与权限管理
设备认证:验证设备身份(如数字证书、设备指纹),阻止未授权设备接入网络。
权限动态控制:根据设备行为动态调整权限(如限制异常设备的通信范围)。
4. 异常行为分析与建模
基线建模:建立设备正常行为基线(如数据包大小、通信周期),自动标记偏离行为。
多设备关联分析:检测设备群组的协同异常(如多个设备同时向同一目标发送数据,可能为僵尸网络攻击)。
5. 安全响应与自动化处置
实时告警:通过可视化界面或API通知管理员(如短信、邮件、SIEM系统集成)。
自动化阻断:隔离受感染设备或阻断恶意IP,防止横向渗透。
取证支持:记录攻击日志(如攻击时间、类型、来源),辅助后续调查。
6. 漏洞管理与合规性
固件/软件漏洞扫描:检测设备固件中的已知漏洞(如CVE列表),提供修复建议。
合规审计:确保符合行业标准(如GDPR、ISO 27001、NIST IoT安全框架),生成合规报告。
7. 边缘计算与轻量化部署
边缘侧检测:在网关或边缘节点部署轻量级IDS,减少云端延迟和带宽压力。
资源优化:适应低功耗设备,采用低计算复杂度的检测算法(如轻量级机器学习模型)。
8. 可视化与报告
威胁看板:展示实时攻击地图、高风险设备列表、威胁趋势统计。
自定义报告:生成周期性安全报告(如每周漏洞分布、攻击类型占比)。
(2)技术实现功能
【1】数据的采集
设备本体数据、网络流量数据、云平台日志数据
【2】数据的预处理
数据的清洗预处理:去除噪声、缺失值和异常值。
数据转换预处理:对数据进行编码、归一化或标准化等操作。
特征工程:选择有用的特征并创建新的特征。
数据划分:将数据集划分为训练集、验证集和测试集。
【3】入侵检测系统建模
根据物联网设备入侵检测系统的常用功能,可考虑的但不限于的建模算法如下:
【1】KNN分类:已知攻击分类(非法登录、业务流分析、重放攻击等)
【2】K-means:发现数据中的异常簇(如设备行为分组异常)。
【3】强化学习:动态调整检测策略以适应新型攻击。
【4】RNN/LSTM:DDoS时间序列分析、设备行为模式预测。
【5】Transformer 模型:应用注意力机制处理长序列依赖,适用于多设备协同攻击检测。
【4】模型的选择
选择算法:根据问题类型选择合适的机器学习算法(如线性回归、决策树、随机森林、神经网络等)。
参数调整:设置模型的超参数,例如学习率、正则化系数等。
【5】模型的训练
训练过程:使用训练集数据训练模型。
验证过程:使用验证集数据评估模型性能,并进行调优。
调整与优化:根据验证结果调整模型参数和算法选择。
【6】模型的评估
评估指标:选择合适的评估指标(如准确率、精确度、召回率、F1 分数、均方误差等)。
交叉验证:使用交叉验证技术进一步验证模型的泛化能力。
测试过程:使用测试集数据进行最终评估。
【7】后台管理
用户行为分析:通过分析设备用户(人或服务)的操作模式,识别异常行为(如非授权访问、高频操作、协议滥用),防范内部威胁和外部攻击。
智能决策分析:恶意攻击事件的可追溯性分析
可视化监控:基于流式计算的可疑IP/设备动态排名
3、主要涉及的技术
【1】开发环境:
Jupyter或者PyCharm;腾讯云、阿里云等GPU、TPU服务器;VMWare虚拟机(可选)
可选技术框架:Hadoop框架、Spark框架;MySQL、MongoDB
【2】深度学习大模型
熟练使用DeepSeek API应用开发
了解DeepSeek Function Calling
了解规则库、知识库的搭建技术
了解检索增强生成RAG技术
了解大模型幻觉的解决方案
【3】AI方面的软件开发辅助技能
熟练Python程序设计、面向对象相关技能
会使用Python数据分析相关的类库Pandas等
会使用高性能框架fastAPI;python的web Flask框架(可选)
会使用可视化pyEcharts、matplotlib、web展现技术
【4】物联网设备入侵检测系统的体系结构建议
二、《物联网设备入侵检测系统》案例的培养目标
(1)AI模型的应用能力
经典机器学习模型的应用能力;
经典深度学习模型的应用能力;
深度学习大模型的应用能力。
(2)AI的建模过程能力
数据集的划分、模型的建立、调参;
模型的预测、评估和优化。
(3)培养学生AI方面软件开发能力
AI开发运行环境、运行环境、算力环境搭建的能力;
算法 + 数据集 + 数据库 + 后端 + 前端的综合能力。
(4)数据(海量数据)分析的能力
数据的清洗预处理,例如缺失值、异常值、重复值等;
数据的转换预处理,例如特征选择、去除多重共线性等。
(5)实际场景落地的能力
经典机器学习场景落地,例如:多元线性回归;
经典深度学习场景落地,例如:卷积神经网络;
深度学习大模型场景落地,例如:DeepSeekAPI、RAG。
三、功能实现举例:威胁检测与攻击识别(数据包分类)
1、对数据包进行分类
在入侵防御系统中使用KNN对数据包进行分类时,需将网络层、传输层、应用层等特征转换为数值型数据,并通过标准化处理确保模型效果。在入侵防御系统(IPS)中,数据包分类是检测和阻止恶意活动的关键步骤。
特征名称 |
数据类型 |
说明 |
协议类型编码 |
整数 |
0=TCP, 1=UDP, 2=ICMP, 3=其他 |
源端口是否为常见端口 |
0或1 |
常见端口(如80、443)为1,否则为0 |
有效载荷长度 |
整数 |
应用层数据的字节长度 |
数据包大小 |
整数 |
整个数据包的字节大小 |
流量速率(包/秒) |
浮点数 |
当前会话中每秒的数据包数量 |
异常标志位计数 |
整数 |
不符合协议规范的标志位数量(如TCP同时出现SYN和FIN) |
加密流量 |
0或1 |
TLS/SSL加密流量为1,否则为0 |
敏感关键词匹配数 |
整数 |
有效载荷中包含的敏感关键词(如exec, root, SELECT *)数量 |
登录尝试次数 |
整数 |
同一源IP在1分钟内的失败登录次数 |
2、相关的特征变量设计
【1】 网络层特征
源IP地址和目的IP地址
协议类型(IPv4/IPv6)
IP分片信息、TTL(生存时间)值
数据包长度、校验和状态(如校验和错误可能为异常)。
【2】传输层特征
源端口和目的端口号
协议类型(TCP、UDP、ICMP等)
TCP标志位(如SYN、ACK、RST)、序列号、窗口大小
UDP数据包长度和校验和。
【3】应用层特征
有效载荷内容(如HTTP请求中的URL、参数,DNS查询内容)
应用协议识别(HTTP、FTP、SMTP、DNS等)
加密流量元数据(如TLS/SSL握手信息、证书合法性)。
【4】 统计和行为特征
流量速率(如单位时间内数据包数量)
数据包大小分布、会话持续时间
同一源IP或目的IP的并发连接数
流量突发性(如短时间内大量请求)。
【5】 时间相关特征
数据包到达时间间隔异常
周期性流量模式(如心跳包、C2服务器通信)。
【6】异常特征
不符合协议规范的数据包结构(如畸形包)
非法的分片组合或重叠。
3、相关的目标变量设计
【1】正常流量
符合预期行为,无需拦截或告警。
【2】扫描与探测
端口扫描、主机扫描(如Nmap工具发起的探测)
漏洞扫描(如利用Nessus等工具)。
【3】拒绝服务攻击(DoS/DDoS)
SYN Flood、UDP Flood等泛洪攻击
资源耗尽型攻击(如HTTP慢速攻击)。
【4】入侵尝试
漏洞利用(如缓冲区溢出、SQL注入、命令注入)
权限提升尝试(如提权漏洞利用)。
【5】 恶意软件传播
病毒、蠕虫、僵尸网络流量(如C2通信)
勒索软件或间谍软件活动。
【6】应用层攻击
Web攻击(如XSS、CSRF、目录遍历)
邮件钓鱼(Phishing)或恶意附件。
【7】未经授权访问
暴力破解(如SSH、RDP登录尝试)
非法访问敏感资源(如未授权数据库访问)。
【8】数据泄露
可疑数据外传(如大量数据加密传输到外部服务器)
DNS隧道隐蔽通信。
【9】策略违规
访问黑名单中的IP或域名
使用禁止的协议或服务(如P2P下载)。
【10】可疑流量
无法明确分类但存在异常特征,需进一步分析。
4、数据采集
物联网设备入侵检测系统的数据主要来自设备日志,设备日志数据可以实时或者离线传到云端。其部分样本数据如下所示:
其中目标变量“类别” 有中危、高危、误报等具体分类的值,如果用经典机器学习的KNN分类可以适合部署在边缘端设备(侧端),当然把数据采集、预处理和模型部署在边缘端可以较少云端的压力。这里我们用DeepSeek API来实现分类,其分类的准确性取决于我们的规则库、知识库建设的质量,这样更能发挥大模型DeepSeek的性能,把大模型的幻觉降低到我们允许的阈值范围内。
这里我们为了把这个流程跑通,规则可以先别搞得太复杂,大模型既可以识别自然语言生成的规则,也可以识别形式化语言(即人造语言,比如Java语言)生成的规则,我这里给出形式化语言的规则,请大家在跑流程(流程指的是:业务 + 算法 + 数据库 + 数据集 + 前后端)将形式化语言翻译成自然语言试试,这样大模型在embedding阶段可以将输入数据和规则数据进行相似度计算,尽可能的消除大模型幻觉。分类规则如下:
if row['流量速率'] > 1000 or row['敏感关键词'] >= 3 or row['登录尝试'] >= 5:
return '高危'
elif (row['流量速率'] > 500 and row['异常标志'] >= 1) or row['敏感关键词'] >= 1:
return '中危'
elif row['流量速率'] < 100 and row['异常标志'] == 0:
return '低危'
else:
return '误报'
5、DeepSeek API实现数据包分类
首先需要大家到www.deepseek.com官网注册个api_key,然后安装openai 包,如下:
pip install openai
from IPython.display import Markdown
from openai import OpenAI
ds_api_key = '你自己的api_key'
# 实例化客户端
client = OpenAI(api_key=ds_api_key, base_url=”https://api.deepseek.com”)
import pandas as pd
data = pd.read_excel('ips_DeepSeek_dataset.xlsx')
data_str = data.to_string()
sContent = f'''
请根据下面规则对网络数据包进行分类:
if row['流量速率'] > 1000 or row['敏感关键词'] >= 3 or row['登录尝试'] >= 5:
return '高危'
elif (row['流量速率'] > 500 and row['异常标志'] >= 1) or row['敏感关键词'] >= 1:
return '中危'
elif row['流量速率'] < 100 and row['异常标志'] == 0:
return '低危'
else:
return '误报'
需要分类的数据为:{data_str}
'''
# 调用 deepseekv3 模型
response = client.chat.completions.create(
model=”deepseek-chat”,
messages=[
{“role”: “user”, “content”: sContent}
]
)
# 输出生成的响应内容
Markdown(response.choices[0].message.content)
如果在“物联网安全业务 + 算法 + 数据集 + 知识库 + 前后端”流程跑通后,可以使用专有的图数据库Neo4j构建你专属的知识图谱数据库。web端通信、可视化展现可以改成异步通信、高性能的Fast API。
四、其它经典的深度学习模型的应用场景举例
在入侵检测系统(IDS)中,时间序列模型循环神经网络(RNN)及其变体(如LSTM、GRU)特别适合处理具有时序依赖性和上下文关联性的安全事件。以下是适合RNN建模的典型业务场景及具体应用方式。
(1) 网络流量异常检测
适用原因:网络流量具有天然的时间序列特性
具体应用:
【1】检测DDoS攻击的流量模式演变;
【2】识别端口扫描的时间序列特征(如慢速扫描);
【3 发现隐蔽的C2通信心跳信号
数据集示例:
# 输入特征维度:[时间步长, 特征维度]
# 每个时间步包含:包数量、流量大小、协议类型等
X = [
[100, 1024, 6], # t=0 (TCP流量)
[500, 51200, 6], # t=1 (攻击开始)
[4500, 1048576, 6] # t=2 (攻击峰值)
]
(2) 用户/实体行为分析
适用原因:用户行为具有习惯性和连续性
具体应用:
【1】 检测账号劫持后的异常操作序列
【2】识别内部人员的横向移动路径
【3】 发现权限提升的异常步骤组合
(3) 多阶段攻击检测
适用原因:高级持续性威胁(APT)具有阶段特征
应用案例:
【1】识别攻击链:侦察→漏洞利用→横向移动→数据渗出
【2】 检测勒索软件的攻击模式(文件加密顺序)
(4) 日志序列分析
适用原因:系统日志具有强时序相关性
典型应用:
【1】从Syslog序列中检测漏洞利用尝试
【2】 通过Windows事件日志识别Golden Ticket攻击
日志编码示例:
log_embeddings = [
[0.2, -0.3], # t=0: SSH登录失败
[0.8, 0.1], # t=1: 敏感文件访问
[1.2, -0.5] # t=2: 可疑进程创建
]
暂无评论内容