当前位置: 首页 > 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;打开你…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制

目录 节点的功能承载层&#xff08;GATT/Adv&#xff09;局限性&#xff1a; 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能&#xff0c;如 Configuration …...

数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)

目录 &#x1f50d; 若用递归计算每一项&#xff0c;会发生什么&#xff1f; Horners Rule&#xff08;霍纳法则&#xff09; 第一步&#xff1a;我们从最原始的泰勒公式出发 第二步&#xff1a;从形式上重新观察展开式 &#x1f31f; 第三步&#xff1a;引出霍纳法则&…...