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攻击。
第四节 TinyAP框架设计
详细介绍了TinyAP的架构设计。系统由八个不同的模块组成,每个模块执行一个明确定义的任务。
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 加载缓慢的解决方案。 不过…...
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. 嵌套类 嵌套类是指定义在另一个类内部的类。内部类可以访问其外围类的所有成员(包括私有成员ÿ…...
匈牙利算法模板
P3386 【模板】二分图最大匹配 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路:最模板的一集.还未匹配则匹配,否则之前一个给现在这个让位置. 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在线购物商城系统报告文档指导搭建视频 基于深度学习的人脸识别与管理系统,Python实现 基于Python/机器学习链家网新房数据可视化及预测系统 Python豆瓣电影情感分析推荐系统爬虫可视化,过滤算法 基于python的django框架生鲜商城管…...
基于Python的人工智能应用案例系列(17):LSTM正弦波预测
概述 本案例展示了如何使用LSTM(长短期记忆网络)来预测正弦波序列的未来值。由于正弦波具有周期性,传统的神经网络难以准确预测其上升或下降趋势,而LSTM则能够通过学习值的模式来进行更精准的预测。本案例将训练LSTM模型并预测正弦…...
Python空间地表联动贝叶斯地震风险计算模型
🎯要点 使用贝叶斯推断模型兼顾路径和场地效应,量化传统地理统计曲线拟合技术。使用破裂和场地特征等地质信息以及事件间残差和事件内残差描述数学模型模型使用欧几里得距离度量、角距离度量和土壤差异性度量确定贝叶斯先验分布和后验分布参数ÿ…...
虚幻引擎-设置UI自适应屏幕大小
在游戏中,如果想实现不同分辨率下,都可以支持当前的UI界面布局,都需要用到锚点功能。 虚幻引擎中的UI锚点(Anchor)是指控件在屏幕或父物体上的固定点,用于确定控件的位置和布局。 锚点的作用是确保UI元…...
C++继承的三种方式[ACCESS]
C继承的定义 两个类的继承关系在派生类中声明,派生类定义使用以下语法: class DerivedClass: [ACCESS] BaseClass{ /…/ }; 冒号(:)后的[ACCESS]是继承的最高权限级别符,可以是以下三个值(存取权限级别&am…...
idea 同一个项目不同模块如何设置不同的jdk版本
在IntelliJ IDEA中,可以为同一个项目中的不同模块设置不同的JDK版本。这样做可以让你在同一个项目中同时使用多个Java版本,这对于需要兼容多个Java版本的开发非常有用。以下是设置步骤: 打开项目设置: 在IDEA中,打开你…...
1-仙灵之谜(区块链游戏详情介绍)
1-仙灵之谜(区块链游戏详情介绍) 前言(该游戏仅供娱乐)正文 前言(该游戏仅供娱乐) 依稀记得本科那会儿参加了一个区块链实验室,那时每周末大家都会爬山或者抽出一下午讨论区块链以及未来&#x…...
基于51单片机的温湿度上下限监测预警proteus仿真
地址:https://pan.baidu.com/s/1hSprWBYhKKx8Txzaj33YPA?pwdjp3d 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C52/AT89C51是一款经典的8位单片机,是意法半导体(STMic…...
考核总结.
事件循环 单线程的js在处理异步事件时进行的一种循环过程。 在 JS中任务分为同步与异步任务,其中异步任务又分为两种:宏任务和 微任务。宏任务和微任务的执行顺序:总方针是先同步再异步,异步中先微任务,在宏任务。一次…...
后端学习路线
后端学习路线 一、编程语言 至少需要学习一门编程语言,建议学习JAVA和GO语言。 二、数据库 数据库分为关系型数据库和非关系型数据库,区别在于分关系型数据库常用于大数据,而非关系型数据库一般不在大数据方面使用。 关系型数据库&#x…...
车辆重识别(注意力 U-Net:学习在哪些区域寻找胰腺)论文阅读2024/10/01
什么是注意力机制? 什么是加性注意力? 大致说一下流程: 对于一张特征图来说,对于这张图中的每一个像素向量(例如a),计算该向量与所有像素向量的相似度,对这些相似度进行激活函数…...
【区别】git restore --staged <文件> 和 git reset HEAD <文件> 都可以用于取消已暂存的文件
git restore --staged <文件> 和 git reset HEAD <文件> 都可以用于取消已暂存的文件,但它们的工作原理和适用场景有所不同。以下是对这两个命令的详细比较: 1. 命令概述 git restore --staged <文件>: 专门用于将指定文件…...
void类型
编程语言中的void类型是一种特殊的数据类型,它表示不存在任何值。void, 无或者空类型。大部分编程语言支持void, 用做函数无返回值类型。最早ALGOL 68引入void类型。 void的特别使用 经典C缺乏void类型,函数可以不指定返回值,默认是整型int.…...
10/1 力扣 49.字母异位词分组
基本知识: 关于字符串的排序: 1.多个字符串排序 1.1使用python内置的sorted() 使用该函数后原对象并不发生变化 1.2若多个字符串使用列表进行存储,使用列表的sort()方法 使用该函数后原对象原地变化 2.对单个字符串里的字母进行排序 使…...
✨机器学习笔记(六)—— ReLU、多分类问题、Softmax、Adam、反向传播
Course2-Week2: https://github.com/kaieye/2022-Machine-Learning-Specialization/tree/main/Advanced%20Learning%20Algorithms/week2机器学习笔记(六) 1️⃣ReLU(Rectified Linear Unit)2️⃣多分类问题3️⃣Softmax4️⃣Adam5…...
Xshell7下载及服务器连接
一、Xshell-7.0.0164p、Xftp 7下载 1.1、文件下载 通过网盘分享的文件:xshell 链接: https://pan.baidu.com/s/1qc0CPv4Hkl19hI9tyvYZkQ 提取码: 5snq –来自百度网盘超级会员v2的分享 1.2、ip连接 下shell和xftp操作一样:找到文件—》新建—》名称随…...
番禺区建设局网站/seo招聘职责
通过Flash的正弦函数可以模拟钟摆: 1、新建一fla文件,命名钟摆.fla 2、F9,在帧上添加脚本,如下: var mc:Sprite new Sprite ;addChild(mc);mc.graphics.lineStyle(3,0xff0066);mc.graphics.moveTo(0,0);mc.graphics.…...
asp爆网站绝对路径/seo岗位工作内容
背景 大家都知道,我们在通过 Selenium 执行 Web 自动化测试时,每次都需要启动/关闭浏览器,如果是多线程执行还会同时打开多个,比较影响工作的正常进行。那有没有办法可以不用让浏览器的自动化执行干扰我们的工作呢? 7…...
平面设计接单的网站/友情链接英语
QVector与QList 数据量比较小时(小于1000项),没什么区别。 如果你需要开辟连续的内存空间存储,或者你的元素远比一个指针大,可以用QVector 按照索引获取元素时,QList比较快 追加插入元素时QVector大概快个百分之5 查找元素时QLis…...
石景山网站建设公司排行/百度小说排行榜总榜
U盘没反应?我来帮你 你是不是也是这样?这里有显示但是我的电脑里没有? 看看以下步骤能不能帮到你 第一步:右击我的电脑,点击管理 第二,点击设备管理器 在设备管理器列表中展开找到通用串行总线控制器&am…...
wordpress批量上传文章/北京谷歌seo
【黑客联盟2016年12月02日讯】北京时间11月30日晚间消息,互联网安全公司今日发布报告称,一款名为“Gooligan”的特洛伊木马程序将自己伪装成合法应用(App)入侵Android智能手机和平板电脑,自8月份以来已控制了100多万个谷歌账号。 StopWatch、…...
sem分析是什么/专业seo培训
#节点选取 jQuery.parent(expr) 找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(".class")jQuery.parents(expr),类似于jQuery.parents(expr),但是是查找所有祖先元素,不限于父…...