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

news2024/10/1 10:08:26

论文标题:

  • 英文: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集成到网络安全中的潜力。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2182086.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言常用标准库 -- 5.<time.h>

目录 引言 5. C标准库--time.h 5.1 简介 5.2 常量与宏 5.3 库变量 5.4 库宏 5.5 库函数 5.6 注意事项 🌈你好呀!我是 程序猿 🌌 2024感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅,挖掘无限可能,…

线程池面试集

目录 线程池中提交一个任务的流程是怎样的? 线程池有五种状态 如何优雅的停止一个线程? 线程池的核心线程数、最大线程数该如何设置? 如何理解Java并发中的可见性、原子性、有序性? Java死锁如何避免? 线程池中提交一个任务的流程是怎样的? 线程池有五种状态 如何优…

【docker学习】Linux系统离线方式安装docker环境方法

centos7-linux安装docker(离线方式) 下载docker的安装文件 https://download.docker.com/linux/static/stable/x86_64/ 下载的是:docker-18.06.3-ce.tgz 这个压缩文件 将docker-18.06.3-ce.tgz文件上传到centos7-linux系统上,用ftp工具上传即可 解压…

《RabbitMQ篇》基本概念介绍

MQ功能 解耦 MQ允许不同系统或组件之间松散耦合。发送者和接收者不需要直接连接,从而提高了系统的灵活性和可维护性。异步处理 使用MQ可以实现异步消息传递,发送者可以将消息放入队列后立即返回,不必等待接收者处理。这提高了系统的响应速度…

鸿蒙NEXT开发-ArkTS(基于最新api12稳定版)

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

Spring IoC笔记

目录 1.什么是 IoC? 2.IoC类注解(五大注解) 2.1那为什么要这么多类注解? 2.2五大注解是不是可以混用? 2.3程序被spring管理的条件是? 3.bean对象 3.1Bean 命名约定 3.2获取bean对象 4.⽅法注解 B…

《应急通信产业发展研究报告》蓝皮书解读

近日,中国信通院发布了《应急通信产业发展研究报告》蓝皮书,该报告是对中国应急通信产业现状、发展趋势及其政策环境的综合分析,旨在为行业发展提供参考与指导。以下是小编对该蓝皮书的一些内容解读: 1.应急通信的重要性 应急通信…

2.点位管理|前后端如何交互——帝可得后台管理系统

目录 前言点位管理菜单模块1.需求说明2.库表设计3.生成基础代码0 .使用若依代码生成器最终目标1.创建点位管理2.添加数据字典3.配置代码生成信息4.下载代码并导入项目 4.优化菜单——点位管理1.优化区域管理2.增加点位数3. 合作商4.区域管理中添加查看详情功能5.合作商添加点位…

【拥抱AIGC】通义灵码扩展管理

通义灵码提供了扩展管理,支持自定义指令,满足企业编码场景的扩展诉求。 适用版本 企业标准版、企业专属版 通义灵码管理员、组织内全局管理员(专属版)在通义灵码控制台-扩展管理中,进行自定义指令的管理、查看自定义…

解锁数据宝藏:AI驱动搜索工具,让非结构化数据“说话

哈哈,说起这个 AI 搜索演示啊,那可真是个有意思的话题!非结构化数据,这家伙虽然难搞,但价值却是杠杠的。今天呢,咱就好好聊聊怎么借助 Fivetran 和 Milvus,快速搭建一个 AI 驱动的搜索工具,让企业能从那些乱七八糟的数据里淘到金子! 一、非结构化数据的挑战与机遇 首…

PCL 点云条件滤波

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 条件定义与滤波 2.1.2 可视化函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇总(长期更新&#…

Python从入门到高手4.1节-掌握条件控制语句

目录 4.1.1 理解条件控制 4.1.2 if, elif, else 4.1.3 条件表达式 4.1.4 条件控制可以嵌套 4.1.5 if语句的三元运算 4.1.6 国庆节快乐 4.1.1 理解条件控制 在日常生活中,我们常喜欢说如果, "如果怎么样,那么就会怎么样"。"如果&qu…

240930_CycleGAN循环生成对抗网络

240930_CycleGAN循环生成对抗网络 CycleGAN,也算是笔者记录GAN生成对抗网络的第四篇,前三篇可以跳转 240925-GAN生成对抗网络-CSDN博客 240929-DCGAN生成漫画头像-CSDN博客 240929-CGAN条件生成对抗网络-CSDN博客 在第三篇中,我们采用了p…

【Lazy ORM +Netty+DB开发一个内网渗透工具 wu-lazy-cloud-network(1.2.8-JDK17-SNAPSHOT)】

【Lazy ORM NettyDB开发一个内网渗透工具 wu-lazy-cloud-network(1.2.8-JDK17-SNAPSHO)】 环境 Java 17Spring Boot 3.xLazy ORMNettyMysql、H2 更新日志 版本1.2.8-JDK17-SNAPSHOT [change] 原《内网穿透》更改为服务端渗透客户端 [change] 新增服务…

Unity 代码裁剪(Strip Engine Code)

文章目录 0.IL2CPP 打包运行闪退问题1.什么是代码裁剪2.为什么要使用代码裁剪3.代码裁剪设置与级别4.强制保留代码4.1 使用[Preserve]标签4.2 使用Link.xml文件 5.Strip中遇到的问题及解决方法6.注意事项 0.IL2CPP 打包运行闪退问题 Google Play要求从2019年8月1日起apk必须支…

Spring系列 AOP实现过程

文章目录 实现原理EnableAspectJAutoProxyAnnotationAwareAspectJAutoProxyCreator 代理创建过程wrapIfNecessarygetAdvicesAndAdvisorsForBeanfindCandidateAdvisorsfindAdvisorsThatCanApply createProxy AspectJ注解处理代理调用过程 实现原理 本文源码基于spring-aop-5.3.…

Arweave的经济学模型

一、存储成本和挖矿奖励 1.1 永久数据存储的成本 由于 Arweave 的核心功能是为其用户提供永久存储,因此必须定义这种存储的定价机制。 作为计算永久存储一份数据的成本的前提,我们必须首先定义单个时间段的数据存储成本: 自数字数据存储技…

算法-数组笔记

二分搜索 . - 力扣(LeetCode) 使用场景 前提是数组为有序数组,同时题目还强调数组中无重复元素。 因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件,当大…

【Ubuntu】git

文章目录 1.配置SSH key2. 基础知识操作命令1分支branch 如果对git命令使用不熟悉,推荐一个非常棒的git在线练习工具 Learn Git Branching。 https://m.runoob.com/git/git-basic-operations.html 1.配置SSH key ssh-keygen -t rsa -C "YOUR EMAIL"完成…

深入解析 Java 虚拟机:内存区域、类加载与垃圾回收机制

我的主页:2的n次方_ 1. JVM 内存区域划分 程序计数器(空间比较小)。保存了下一条要执行的指令的地址(指向元数据区指令的地址)堆。JVM 最大的空间,new 出来的对象都在堆上栈。函数中的局部变量&#x…