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

news2024/12/26 11:41:25

本文提出了一种基于 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.

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

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

相关文章

十三、MySQL高级—读写分离(6)

🌻🌻 目录 一、Mycat 介绍1.1 是什么1.2 干什么的1.3 原理 二、安装启动2.1 解压缩文件拷贝到linux下 /usr/local/2.2 三个文件2.3 启动前先修改schema.xml(配置)2.4 再修改server.xml2.5 验证数据库访问情况2.6 启动程序2.7 启动…

Hive SQL子查询应用

目录 环境准备看如下链接 子查询 查询所有课程成绩均小于60分的学生的学号、姓名 查询没有学全所有课的学生的学号、姓名 解释: 没有学全所有课,也就是该学生选修的课程数 < 总的课程数。 查询出只选修了三门课程的全部学生的学号和姓名 环境准备看如下链接 环境准备h…

应用层 思维导图

绪论&#xff1a; ​“有志者自有千计万计&#xff0c;无志者只感千难万难。” 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&#xff09;。 思维导图能很好的帮助到我们去学习和理解记忆知识&#xff0c;当我们对一个知识有了一定的框架后就能有逻辑性的去…

关于我的阿里云服务器被入侵 - 分析报告

目录 引言一、事件概述1. 异地登陆2. 挖矿程序3. 密钥未注册4. 勒索病毒 二、问题分析1. 异地登陆2. 挖矿程序3. 密钥登录失效&#xff08;密钥未注册&#xff09;4. 勒索病毒 三、安全知识讲解1. 密钥登录 四、总结 引言 因为是第一次租云服务器&#xff0c;所以出现了很多的…

Clion配置ESP32开发,一文就够了

目录 1.下载ESP-IDF2.配置ESP32开发环境2.1方法1:Clion官方手册2.2方法2: 3.测试Clion开发ESP32的环境4.关于Clion的monitor无法正常运行的解决方法 我这里使用的CLiion版本是2023.2.1&#xff0c;网上激活方法有很多&#xff0c;这里就不赘述。 电脑是WIn11系统。 1.下载ESP-I…

无线感知会议系列【1】【增强无线感知应用的鲁棒性】

前言&#xff1a; 这个是2021年 泛在可信智能感知论坛&#xff0c;汤战勇 &#xff08;西北大学物联网研究院 )教授的 一个讲座《wireless signals like WiFi, RFID and (ultra) sound as a powerful modality for ubiquitous sensing》 参考连接&#xff1a; 4.见微知萌—…

02_硬件基础知识学习

通过上一课的学习&#xff0c;我们貌似成功的点亮了一个 LED 小灯&#xff0c;但是有一些知识大家还没彻底搞明白。单片机是根据硬件电路图的设计来编写代码的&#xff0c;所以我们不仅仅要学习编程知识&#xff0c;还要学习基本的硬件知识&#xff0c;这节课我们就要来穿插介绍…

萱仔环境记录——git的使用流程:以上传一个项目进入GitHub仓库为例子

前段时间我已经不使用学校的电脑了&#xff0c;在自己的笔记本上安装了git&#xff0c;准备好好把我这几年做的项目整理一下进行开源&#xff0c;由于前几次的面试&#xff0c;一些公司考核到了git的用法&#xff0c;虽然平时我也在使用git对自己的项目进行管理&#xff0c;但还…

为什么腾讯难以再现《黑神话:悟空》这样的游戏大作?

自《黑神话:悟空》发布以来,它凭借令人惊艳的画面和深入人心的故事情节,迅速在全球范围内收获了大量粉丝。这款游戏的成功,不仅让全球玩家看到了国产游戏的新高度,也让许多人开始好奇:作为中国游戏行业的巨头,腾讯为什么没能推出类似《黑神话:悟空》这样震撼的作品?今…

c++166面下该过程 向面向对象的转变

#include<iostream> using namespace std; //设计类 属性 函数 //案例一 &#xff1a;立方体 面积和体积 //求两个立方体是否相等 &#xff08;全局函数和成员函数&#xff09; class Cube { private:int m_a;int m_b;int m_c;int m_v;int m_s;public://void setA(int a…

视频剪辑软件大盘点:四款神级工具让你工作更高效!

工作中&#xff0c;视频剪辑是一项不可或缺的技能。而选择一款好用的视频剪辑软件&#xff0c;更是提升工作效率的关键。今天&#xff0c;我就将从功能、易用性、效果以及个人使用感受等方面为大家推荐四款免费的视频剪辑软件&#xff1a; 第一款&#xff1a;福昕视频剪辑 我…

中秋之约,尽在食家巷小程序

中秋&#xff0c;那是一个被月光温柔包裹&#xff0c;被亲情浓浓环绕的节日。在这个象征团圆的日子里&#xff0c;美食就像是情感的纽带&#xff0c;将人们的心紧紧系在一起。而食家巷的美味绝对能让你的中秋更添几分甜蜜。 现在呀&#xff0c;我要给大家推荐一个超级方便的好东…

毫欧表设计整体思路

原因 对于焊接设备的低阻值测量&#xff0c;一般都是mΩ级别的&#xff0c;但万用表的电阻档一般都是以200Ω做为最小档位 设计原理及软件实现设计 设计思路原理图 通过串联在电路中的电流相等&#xff0c;根据阻值和电压的关系得到电阻对应大小 设计中需要考虑的问题 1…

[ccs调试记录]

解决方式&#xff1a;删除code_strat 提示Page0内存不够&#xff0c;找到Page0&#xff0c;根据红叉提示&#xff0c;Ram1内存不足&#xff0c;进行修改 Ram1 length从1000修改为2000&#xff0c;即可&#xff1a;

MIT6.824 课程-PrimaryBackupReplication

Primary Backup Replication 背景 为实现可容错的服务器&#xff0c;主从备份是一种常用的解决方案&#xff1a;在开启了主动备份的系统中&#xff0c;备份服务器的状态需要在几乎任何时候都与主服务器保持一致&#xff0c;这样当主服务器失效后备份服务器才能立刻接管。实现…

计算机网络(二) —— 网络编程套接字

目录 一&#xff0c;认识端口号 1.1 背景 1.2 端口号是什么 1.3 三个问题 二&#xff0c;认识Tcp协议和Udp协议 三&#xff0c;网络字节序 四&#xff0c;socket编程接口 4.1 socket常见API 4.2 sockaddr结构 一&#xff0c;认识端口号 1.1 背景 问题&#xff1a;在进…

C++,Qt学习 2024.9.10

制作ui界面实现&#xff1a;模拟定时闹钟功能 启动后&#xff0c;lab实时获取系统时间&#xff0c;当系统时间走到设置的时间时&#xff0c;语音播报下方lineEdit中的内容&#xff0c;启动前取消按键不可用&#xff0c;启动后除了取消按键可用其他部分都设为不可用&#xff0c…

Java 创建对象方法的演变

1、普通 Java 代码 public class Rectangle {private int width;private int length;public Rectangle() {System.out.println("Hello World!");}public void setWidth(int widTth) {this.width widTth;}public void setLength(int length) {this.length length;}…

个人随想-如何开发一个code agent

随着sonnet的普及&#xff0c;现在的开发确实可以达到事半功倍的效果&#xff0c;再加上cursor、claude dev等工具的加持&#xff0c;现在的软件开发&#xff0c;确实门槛降低了很多&#xff0c;我们可以快速的让ai给我们大量的提示、重构、单元测试、explain甚至是完全用自然语…

c++指针和引用专题

一 基本概念 图解C++指针与引用的区别_指针与引用 图解-CSDN博客https://blog.csdn.net/shang_0122/article/details/104755481 为什么C+