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

TinyAP:使用TinyML对抗Wi-Fi攻击的智能接入点

论文标题:

  • 英文:TinyAP: An intelligent Access Point to combat Wi-Fi attacks using TinyML
  • 中文:TinyAP:使用TinyML对抗Wi-Fi攻击的智能接入点

作者信息:

  • Anand Agrawal 和 Rajib Ranjan Maiti,来自印度特伦甘纳邦塞康德拉的BITS Pilani,海得拉巴校区,计算机科学与信息系统系。

论文出处:

  • 本文接受发表于IEEE物联网杂志。DOI为10.1109/JIOT.2024.3467328。

主要内容概述:

摘要
论文提出了一个名为TinyAP的智能接入点(AP),旨在识别MAC层Wi-Fi攻击并生成警报。使用微控制器上的轻量级机器学习模型,利用TensorFlow Lite Micro(TFLite Micro)库实现。开发了一个框架,使用高效的神经架构搜索(NAS)和轻量级推理引擎来在AP级别对Wi-Fi攻击进行分类。系统由充当AP的Raspberry Pi 3 B+和作为插件的Arduino Nano 33 BLE Sense组成。Nano模块执行预训练的TinyML模型,模型在桌面PC上准备(搜索、训练和转换)。

第一节 引言
介绍了无线通信网络,特别是Wi-Fi在连接全球数十亿物联网(IoT)设备中的重要性。尽管WPA2协议是保护Wi-Fi网络的标准,但存在显著漏洞,如KRACK攻击,挑战了无线通信的安全性概念。

第二节 背景
简要描述了Wi-Fi攻击的概念和用于检测攻击的多层感知器(MLP)TinyML模型。

第三节 对抗Wi-Fi攻击
介绍了系统模型和攻击者模型,并提供了TinyAP框架的概述。该框架利用微控制器上的机器学习在AP级别检测Wi-Fi攻击。

4dfba898e8de455498e93490271eb143.png

第四节 TinyAP框架设计
详细介绍了TinyAP的架构设计。系统由八个不同的模块组成,每个模块执行一个明确定义的任务。

1acd86257e464a09a4a8e3b81608a5a9.png

TinyAP框架是一个为检测Wi-Fi攻击而设计的系统,它详细分解为八个不同的模块,每个模块执行特定的任务。该框架的架构设计旨在通过在接入点(AP)级别使用轻量级机器学习模型来被动地检测Wi-Fi攻击,如DeAuth、DisAssoc、Evil Twin、RogueAP、KRACK和Kr00k。以下是TinyAP框架的详细介绍:

A. 特征选择 在训练机器学习模型之前,首先分析Wi-Fi网络流量,从管理、控制和EAPOL帧中选择重要特征。研究者从AWID3数据集中选择了六种MAC层Wi-Fi攻击追踪,每种数据集有254个特征。通过额外树分类器从其中选择了70个MAC层特征,其中最重要的特征包括RadioTap头、帧长度、时间戳、速率、信道频率、信道编号和dBm AntSignal等。

B. 有效的神经架构搜索(Effective Neural Architecture Search) 利用LSTM控制器从大量可能的架构中搜索出最佳的神经网络架构。在这个过程中,控制器参数(θ)和子模型的共享参数(ω)是两组不同的参数。神经架构搜索(NAS)通过评估每个架构在给定输入数据集上的准确性来执行,以产生最佳的架构,然后使用这些架构来构建和训练机器学习模型。

C. 多层感知器模型 使用NAS生成的五个最佳架构来创建并保存不同的多层感知器(MLP)模型。这些模型使用两个隐藏层和一个输出层,每层的神经元数量和激活函数由NAS确定。模型通过损失函数、优化器和度量参数进行编译,然后保存为Keras H5格式,之后转换为TFLite Micro版本,以便在微控制器上运行。

D. TFLite转换器 TFLite转换器将训练好的MLP模型转换为适合在微控制器上部署的格式。这一步骤涉及评估、重构和优化(包括量化),以实现更小的模型大小、更快的推理速度和更高的能效。

E. 调节器模块 调节器模块包含一个主函数,调用控制器函数,该函数将测试数据通过串行端口发送到微控制器。它确保测试数据从数据库中顺序读取,并传递到微控制器模块进行推理。

F. 预测器 预测器模块接收来自转换器模块的轻量级预训练机器学习模型,并使用这些模型对测试数据进行推理。在微控制器上实现的代码包括一个解析器来解析从调节器模块接收到的数据,以及一个TensorFlow解释器来执行推理。

G. 数据库 数据库模块用于存储从Wi-Fi网络中捕获的流量数据,以及用于训练和测试机器学习模型的数据。

H. 框架架构 TinyAP框架的架构图展示了各个模块之间的数据流和它们之间的关系。该图清晰地标识了每个模块的编号,以便于理解。

总的来说,TinyAP框架设计利用了TinyML技术,通过在AP级别集成轻量级机器学习模型,实现了对Wi-Fi攻击的有效检测。这种方法提高了检测速度,减轻了网关的负载,并为无线网络安全提供了一个创新的解决方案。

第五节 TinyAP的实现
描述了TinyAP系统的实现,该系统主要由Python编写,集成了多个模块。

TinyAP是一个由八个模块组成的系统,主要使用Python及其相关库进行编写。该系统详细实现了论文中提出的框架设计,将轻量级机器学习模型集成到一个微控制器中,使其能够在检测到Wi-Fi攻击时发出警报。以下是TinyAP各个模块的具体实现细节:

模块1:Wi-Fi数据包嗅探器

  • 使用支持监视模式的Wi-Fi适配器(例如Alfa AWUS036NHA)来捕获Wi-Fi流量,并将其转换为.csv格式,也可以直接采用.csv文件作为输入。
  • 这一模块负责捕获和预处理网络流量数据,为后续的特征提取和模型训练做准备。

模块2:特征提取

  • 利用Python兼容的Scapy包,将输入文件转换为数据框格式,进行深入的数据包检查。
  • 从捕获的Wi-Fi数据包中提取关键特征,为ML模型的训练提供必要的输入。

模块3和4:神经架构搜索和训练ML模型

  • 使用TensorFlow和Keras库进行神经架构搜索,生成最佳的网络架构。
  • 根据搜索到的架构训练ML模型,并将训练好的模型保存为Keras H5格式。

模块5:TFLite转换器

  • 使用TensorFlow Lite转换器的高级API将Keras模型转换为TFLite模型。
  • 这一步骤将模型转换为适合在微控制器上运行的格式。

模块6:调节器

  • 使用Python实现,负责将测试数据记录转换为字符串,并通过串行端口将它们一个接一个地发送给微控制器进行推理。
  • 调节器确保数据的顺序读取和发送,并与预测器模块同步。

模块7:预测器

  • 在Arduino Nano 33 BLE Sense微控制器上实现,包括TFLite Micro模型和用于解析测试数据的C++代码。
  • 利用TensorFlow解释器对测试数据进行推理,并生成关于数据是否表示攻击的推断结果。

模块8:数据库

  • 用于存储从Wi-Fi网络中捕获的流量数据以及用于训练和测试ML模型的数据。
  • 还用于存储模型的推断结果,以便进一步分析和评估模型性能。

系统运行方式

  • 将Arduino Nano作为插件插入到AP中,使其能够检测和警告各种Wi-Fi攻击。
  • 利用预先训练好的ML模型,通过微控制器进行实时推理,以检测攻击。

实现细节

  • TinyAP系统在保持现有Wi-Fi路由器架构不变的情况下运行,通过在Raspberry Pi上作为Wi-Fi路由器来提取嗅探到的Wi-Fi流量特征。
  • 使用高性能的桌面PC进行ML模型的训练,并将训练好的模型转换为TFLite Micro模型,然后传输到微控制器。
  • Arduino Nano微控制器配备有256KB的RAM,用于执行TinyML模型。

性能和效率

  • TinyAP展示了在2分类和多分类任务中的高平均准确率,证明了其在检测Wi-Fi攻击中的有效性。
  • 系统能够在保持低延迟的同时,有效地在AP级别检测攻击,减轻了网关的负载。

通过这种实现,TinyAP不仅提供了对Wi-Fi攻击的实时检测和警报,而且还展示了将机器学习技术应用于网络硬件的潜力,为无线网络安全提供了一个创新的解决方案。

第六节 TinyAP在真实数据上的有效性
使用了Aegean Wi-Fi Intrusion Dataset (AWID3)来分析Wi-Fi流量,并比较了MLP模型和TinyAP模型的性能。

第七节 相关工作
讨论了网络安全领域,特别是保护无线局域网(WLAN)免受MAC层Wi-Fi攻击的相关研究。

第八节 结论
总结了TinyAP在对抗Wi-Fi攻击方面的贡献,并指出了将TinyML集成到网络安全中的潜力。

 

相关文章:

TinyAP:使用TinyML对抗Wi-Fi攻击的智能接入点

论文标题: 英文:TinyAP: An intelligent Access Point to combat Wi-Fi attacks using TinyML中文:TinyAP:使用TinyML对抗Wi-Fi攻击的智能接入点 作者信息: Anand Agrawal 和 Rajib Ranjan Maiti,来自印…...

grafana频繁DataSourceError问题

背景 随着 Grafana 数据量的不断增加,逐渐暴露出以下问题: Grafana 页面加载缓慢;Grafana 告警频繁出现 DatasourceError 错误。 对于第一个问题,大家可以参考这篇文章:Grafana 加载缓慢的解决方案。 不过&#xf…...

python-ds:Python 中的数据结构库(适用于面试的数据结构和算法合集)

在软件开发中,数据结构是组织和存储数据的方式,对算法的效率和程序的性能至关重要。Python 提供了许多内置的数据结构,但在一些复杂的应用场景中,原生数据结构可能无法满足特定需求。这时,一个功能强大、易于使用的数据…...

AccessoriesqueryController

目录 1、 AccessoriesqueryController 1.1、 库存配件查询 1.2、 查询仓库 1.2.1、 //把数据库数据加到表格:跟默认然一行数据进行合并 1.3、 /// 查询 1.3.1、 配件编码查询 1.3.2、 配件名称查询 1.3.3、 配件类型查询 AccessoriesqueryControlle…...

M3u8视频由手机拷贝到电脑之后,通过potplayer播放报错找不到文件地址怎么解决?

该文章前面三节主要介绍M3u8视频是什么,视频播放错误(找不到地址)的解决方法在后面 M3U8是一种多媒体播放列表文件格式,主要用于流媒体播放。 一、文件格式特点 1. 文本文件:M3U8是一个采用 UTF-8 编码的文本文件,这意味着它可…...

【分布式微服务云原生】windows+docker+mysql5.7.44一主一从主从复制

目录 1. 主库设置2. 从库设置3. 验证主从复制内容汇总表格 摘要: 在Windows系统上通过Docker部署MySQL主从复制,以下是详细的步骤和命令,帮助你设置一主一从的MySQL复制环境。 1. 主库设置 步骤1:运行MySQL主库容器 docker run …...

鸿蒙NEXT开发-界面渲染(条件和循环)(基于最新api12稳定版)

注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…...

TypeScript 设计模式之【状态模式】

文章目录 状态模式:优雅切换的交通信号灯状态模式的奥秘状态模式有什么利与弊?如何使用状态模式来优化你的系统代码实现案例状态模式的主要优点状态模式的主要缺点状态模式的适用场景总结 状态模式:优雅切换的交通信号灯 当你站在繁忙的十字路口&#…...

MongoDB 聚合管道

参考: 聚合管道 - MongoDB 手册 v7.0 介绍 聚合管道由一个或多个处理文档的阶段组成: 每个阶段对输入文档执行一个操作。例如,某个阶段可以过滤文档、对文档进行分组并计算值。 从一个阶段输出的文档将传递到下一阶段。 一个聚合管道可以返回针对文档…...

python-patterns:Python 设计模式大全

python-patterns 是一个开源的 Python 项目,它提供了各种经典的设计模式的 Python 实现。设计模式是一种针对常见软件设计问题的可复用解决方案,通过使用设计模式,开发者可以编写出结构更加合理、易于维护和扩展的代码。 Python 是一门动态语…...

Nginx编译所需基本库pcre、zlib、openssl

一、基本库介绍 pcre:(Perl Compatible Regular Expressions) 是一个用 C 语言编写的正则表达式库,用于进行文本匹配和搜索。它提供了与 Perl 正则表达式兼容的功能,并且广泛用于许多不同的软件项目中,如网…...

C#进阶:探索嵌套类、匿名类及对象初始化器的强大运用

在C#中,嵌套类、匿名类以及对象初始化器是几种强大的特性,它们可以极大地提高代码的可读性和灵活性。下面分别介绍这些特性的运用。 1. 嵌套类 嵌套类是指定义在另一个类内部的类。内部类可以访问其外围类的所有成员(包括私有成员&#xff…...

匈牙利算法模板

P3386 【模板】二分图最大匹配 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路:最模板的一集.还未匹配则匹配&#xff0c;否则之前一个给现在这个让位置. int n,m,e; vector<int> vct[505]; int match[505]; bool vis[505]; bool mark[505][505]; bool dfs(int s)…...

ubuntu 安装harbor

#安装包 wget https://github.com/goharbor/harbor/releases/download/v2.10.3/harbor-offline-installer-v2.10.3.tgz wget https://github.com/goharbor/harbor/releases/download/v2.10.3/harbor-offline-installer-v2.10.3.tgz.asc#导入签名公钥 gpg --keyserver hkps://ke…...

Python/大数据/机器识别毕业设计选题题目推荐

基于Python和Diango在线购物商城系统报告文档指导搭建视频 基于深度学习的人脸识别与管理系统&#xff0c;Python实现 基于Python/机器学习链家网新房数据可视化及预测系统 Python豆瓣电影情感分析推荐系统爬虫可视化&#xff0c;过滤算法 基于python的django框架生鲜商城管…...

基于Python的人工智能应用案例系列(17):LSTM正弦波预测

概述 本案例展示了如何使用LSTM&#xff08;长短期记忆网络&#xff09;来预测正弦波序列的未来值。由于正弦波具有周期性&#xff0c;传统的神经网络难以准确预测其上升或下降趋势&#xff0c;而LSTM则能够通过学习值的模式来进行更精准的预测。本案例将训练LSTM模型并预测正弦…...

Python空间地表联动贝叶斯地震风险计算模型

&#x1f3af;要点 使用贝叶斯推断模型兼顾路径和场地效应&#xff0c;量化传统地理统计曲线拟合技术。使用破裂和场地特征等地质信息以及事件间残差和事件内残差描述数学模型模型使用欧几里得距离度量、角距离度量和土壤差异性度量确定贝叶斯先验分布和后验分布参数&#xff…...

虚幻引擎-设置UI自适应屏幕大小

在游戏中&#xff0c;如果想实现不同分辨率下&#xff0c;都可以支持当前的UI界面布局&#xff0c;都需要用到锚点功能。 ‌虚幻引擎中的UI锚点&#xff08;Anchor&#xff09;是指控件在屏幕或父物体上的固定点&#xff0c;用于确定控件的位置和布局。‌ 锚点的作用是确保UI元…...

C++继承的三种方式[ACCESS]

C继承的定义 两个类的继承关系在派生类中声明&#xff0c;派生类定义使用以下语法&#xff1a; class DerivedClass: [ACCESS] BaseClass{ /…/ }; 冒号&#xff08;:&#xff09;后的[ACCESS]是继承的最高权限级别符&#xff0c;可以是以下三个值&#xff08;存取权限级别&am…...

idea 同一个项目不同模块如何设置不同的jdk版本

在IntelliJ IDEA中&#xff0c;可以为同一个项目中的不同模块设置不同的JDK版本。这样做可以让你在同一个项目中同时使用多个Java版本&#xff0c;这对于需要兼容多个Java版本的开发非常有用。以下是设置步骤&#xff1a; 打开项目设置&#xff1a; 在IDEA中&#xff0c;打开你…...

从MWC 2016看5G与物联网:技术演进、产业博弈与生态构建

1. 从巴塞罗那看2016年移动通信的十字路口 时间回到2016年初&#xff0c;如果你身处通信行业&#xff0c;那么2月底的日程表上&#xff0c;巴塞罗那的“移动世界大会”绝对是一个绕不开的焦点。那不是一个普通的展会&#xff0c;更像是一个行业在技术迭代、市场转型和地缘政治多…...

HsMod炉石插件:如何彻底改变你的炉石传说游戏体验?

HsMod炉石插件&#xff1a;如何彻底改变你的炉石传说游戏体验&#xff1f; 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 还在为炉石传说游戏中的等待时间而烦恼吗&#xff1f;HsMod这款基…...

程序员转智能体开发,从入门到落地,看这一篇就够了

文章目录前言一、为什么2026年是转智能体开发的最佳时机1.1 市场需求爆炸式增长&#xff0c;薪资再创新高1.2 传统程序员转型有三大天然优势二、智能体开发到底是什么&#xff1f;和传统开发有什么区别&#xff1f;2.1 从"命令式"到"声明式"的思维转变2.2 …...

中国半导体设计产业:从制造到创新的演进逻辑与未来挑战

1. 从“制造”到“设计”&#xff1a;中国半导体产业的真实图景2012年&#xff0c;当《EE Times》那篇题为“Why China?”的文章发表时&#xff0c;它所描绘的中国半导体产业图景&#xff0c;在今天看来更像是一份精准的预言书。文章里提到&#xff0c;将中国仅仅视为技术产品…...

算法创新驱动AI效率革命:算力增强型进步如何超越摩尔定律

1. 项目概述&#xff1a;算法进步如何重塑计算机视觉的效率版图如果你在2012年告诉一个计算机视觉研究员&#xff0c;十年后我们能在ImageNet上训练出准确率超过90%的模型&#xff0c;他可能会觉得这需要天文数字般的计算资源。但现实是&#xff0c;我们不仅做到了&#xff0c;…...

AI Agent Harness Engineering 未来生态:开源 vs 闭源的竞争与合作格局

AI Agent Harness Engineering 未来生态&#xff1a;开源 vs 闭源的竞争与合作格局 引言&#xff1a;AI Agent不是终点&#xff0c;Harness才是通用智能落地的核心阀门 1.1 从“AI大模型&#xff08;LLM&#xff09;元年”到“AI Agent生态元年”&#xff1a;技术拐点的悄然发…...

为什么你的Perplexity Science搜索总错过最新预印本?——基于arXiv/medRxiv/SSRN实时源的3层校验机制(含Python自动化脚本)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;为什么你的Perplexity Science搜索总错过最新预印本&#xff1f;——基于arXiv/medRxiv/SSRN实时源的3层校验机制&#xff08;含Python自动化脚本&#xff09; Perplexity Science 依赖第三方索引快照…...

Unity中Spine混合模式插槽的Shader实现与优化

1. Spine混合模式插槽的核心问题解析 当你把Spine动画导入Unity后&#xff0c;发现角色颜色变得灰蒙蒙的&#xff0c;就像蒙了一层雾。这种情况在游戏开发中特别常见&#xff0c;尤其是当美术同学在Spine编辑器中精心调制的渐变效果&#xff0c;到了Unity里却完全走样。问题的根…...

Python金融数据分析实战:从数据清洗到LLM智能问答机器人构建

1. 项目概述&#xff1a;一个金融数据分析与智能问答的实战项目 最近在整理一些数据分析的实战项目&#xff0c;正好翻到了之前为Forage BCGX GenAI项目做的一个金融分析案例。这个项目麻雀虽小&#xff0c;五脏俱全&#xff0c;它完整地走了一遍从原始数据清洗、指标计算、可视…...

Neovim涂抹光标插件:提升编码体验的动态轨迹设计

1. 项目概述&#xff1a;一个为Neovim设计的“涂抹光标”插件 如果你和我一样&#xff0c;是个重度Neovim用户&#xff0c;每天有超过8小时的时间泡在终端和代码编辑器里&#xff0c;那你肯定对光标的“存在感”有要求。默认的方块或下划线光标&#xff0c;在长时间编码后&…...