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

基于CNN-BiGUR的恶意域名检测方法

本文提出了一种基于 CNN 和 BiGRU 的恶意域名检测方法 CNN-BiGRU-Focal。利用卷积神经网络(CNN)提取域名字符的局部上下文特征。利用双向门控循环单元网络(BiGRU)捕捉域名字符序列的时间序列特征。同时,引入改进的 Focal Loss 函数,专注于难以分类的样本,以解决数据不平衡问题。

CNN-BiGRU-Focal结构

模型描述

CNN

在这里插入图片描述
卷积神经网络(CNN)被设计用于高效提取恶意域名中的字符级局部上下文特征,通过使用不同大小的卷积核并行处理字符序列,每个卷积核负责捕捉不同粒度的特征,同时利用256个滤波器来增强特征的捕捉能力;模型采用一维卷积层,每次处理三个字符,并通过步幅为1的方式滑动以提取特征,显著提高了计算效率;为了增加非线性并减少过拟合,使用了ReLU激活函数处理卷积后的特征;此外,模型还引入了K-Max平均池化方法,它结合了最大池化和平均池化的优点,通过选取K个最大值并计算平均值来保留更多的特征信息,这种方法不仅减少了特征维度,还保留了原始特征的强度,确保了从样本中提取出最有效的特征。

BiGRU

GRU本身相比于LSTM具有更简单的结构,减少了模型复杂度,加快了训练速度,同时保持了与LSTM相近的效果。
在这里插入图片描述

在这里插入图片描述
更新门(zt)和重置门(rt)通过公式(4)和(5)控制信息的流动。更新门决定从前一个时间步保留多少信息到当前状态,而重置门则决定在更新当前状态时忽略多少旧状态信息。公式(6)和(7)描述了GRU单元如何结合更新门、重置门以及当前输入来计算当前的隐藏状态。
在这里插入图片描述

为了克服单向GRU仅能捕捉序列的单方向信息的局限,本文采用了双向GRU结构,它能够同时考虑序列的过去和未来信息。双向GRU由两个GRU子网络组成,一个处理正向序列,另一个处理反向序列。
在这里插入图片描述

处理方法

词嵌入层

将输入的域名字符通过one-hot编码转换为数值向量。然后通过词嵌入层将这些离散的向量映射为具有语义信息的密集向量。

特征提取

特征提取层采用 CNN 和 BiGRU 这两种深度学习模型,对于词嵌入层输出的域名矩阵进行自动的特征提取。
将CNN和BiGRU提取的特征向量进行融合,通常是通过拼接(concatenation)的方式。融合后的特征向量包含了字符级和时序级的信息,为分类提供了丰富的特征表示。

分类

针对恶意域名检测可以分为两大类,一类属于二分类任务,此时全连接层仅仅设置为一个节点,另一类属于多分类任务,此时的全连接层节点数设置为域名的家族种类数量。
在这里插入图片描述在这里插入图片描述
使用改进的Focal Loss函数,该函数对难以分类的样本(即模型预测错误或置信度低的样本)赋予更高的权重。
通过这种方式,模型训练时更加关注那些难以识别的样本,从而提高整体的分类性能。

实验结果

在这里插入图片描述
在这里插入图片描述

[1]林梓宇,凌捷.基于CNN-BiGRU的恶意域名检测方法[J].计算机应用与软件,2024,41(06):336-341.

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • IDC基础学习笔记
  • Pycharm Remote Development 报错解决
  • HTTP 协议和 APACHE 服务
  • TikTok运营需要的独立IP如何获取?
  • Redis 入门 - 五大基础类型及其指令学习
  • 代码随想录冲冲冲 Day41 动态规划Part9
  • Mysql | 知识 | 事务隔离级别
  • Kylin Server V10 下 MySQL 8 binlog 管理
  • Spark底层逻辑
  • 高教社杯数模竞赛特辑论文篇-2013年B题:碎纸复原模型与算法
  • 分享一个基于微信小程序的医院挂号就诊一体化平台uniapp医院辅助挂号应用小程序设计(源码、调试、LW、开题、PPT)
  • WORD批量转换器MultiDoc Converter
  • Spring 框架——@Retryable 注解与 @Recover 注解
  • Centos9 网卡配置文件
  • Web安全之HTTPS调用详解和证书说明案例示范
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • gcc介绍及安装
  • HTTP中的ETag在移动客户端的应用
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • learning koa2.x
  • Netty 4.1 源代码学习:线程模型
  • Protobuf3语言指南
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • Vue全家桶实现一个Web App
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 讲清楚之javascript作用域
  • 蓝海存储开关机注意事项总结
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ###STL(标准模板库)
  • #include<初见C语言之指针(5)>
  • (11)MSP430F5529 定时器B
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (c语言)strcpy函数用法
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (JS基础)String 类型
  • (k8s)kubernetes集群基于Containerd部署
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET DataGridView数据绑定说明
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化