首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于图卷积网络的恶意脚本检测方法及模型 

申请/专利权人:杭州电子科技大学

申请日:2024-03-25

公开(公告)日:2024-06-25

公开(公告)号:CN118250051A

主分类号:H04L9/40

分类号:H04L9/40;H04L41/142;H04L41/16;H04L67/02;G06N3/042;G06N3/0464

优先权:

专利状态码:在审-公开

法律状态:2024.06.25#公开

摘要:本发明公开了一种基于图卷积网络的恶意脚本检测方法。本发明方法将收集到的大量带标签的真实用户请求作为训练集样本。首先,对样本进行预处理,减少样本中的冗余信息,得到简化后的样本和分词集合。然后,将样本和词作为节点,利用样本和词之间的组成关系以及词与词之间的共现关系,构造出词‑样本联合图。然后,利用TF‑IDF和PMI算法提取图中节点和边的特征矩阵,并输入到GCN模型中进行训练,得到XSSpayload检测器。最后根据XSSpayload检测器的检测结果,判断用户请求是否正常。本发明方法能够检测出攻击者使用各种绕过手段构造出的恶意脚本,弥补了现有检测方法的不足,提高了Web应用的安全性。

主权项:1.一种基于图卷积网络的恶意脚本检测方法,其特征在于,具体如下:步骤1样本预处理,具体如下:1-1对原始的样本进行解码;根据样本使用的编码方式,使用对应的解码方式处理,包括URL解码、HTML实体解码、Unicode解码和Base64解码;通过解码,将编码后的XSSpayload转换为原始形式;1-2对步骤1-1的结果进行泛化操作:将数字统一替换为“0”,将网址替换为“http:u”,得到简化样本集合;1-3对步骤1-2的结果进行分词操作;采用正则表达式匹配的方法进行分词,通过将样本分割为封闭符号、HTML标记、事件、属性、JavaScript函数、调用方法、URL和其他部分,得到分割后的的各部分字符即为词,得到分词集合;步骤2构造词-样本联合图结构,直观表示不同样本的拓扑结构;根据简化样本集合和分词集合,构造一个由样本和不重复的词作为节点,样本和词以及词与词之间的连接关系为边的词-样本联合图;具体步骤如下:2-1节点划分;词-样本联合图中包含两类节点,分别是样本节点Vtrain和词节点Vword,词-样本联合图中所有节点的集合V={Vtrain,Vword};样本节点中包括正样本节点和负样本节点,正样本节点即XSSpayload样本,负样本节点即良性样本;词节点为样本分词集合中的词;2-2无向边划分:词-样本联合图中包含两种边,分别是样本-词边Etrain-word和词-词边Eword-word,词-样本联合图中所有边的集合E={Etrain-word,Eword-word};2-3构造图结构:首先,根据词与样本之间的组成关系,在Vtrain与Vword之间建立无向边,即Etrain-word;然后,根据样本中词的共现关系,在同一分词集合中的词按照顺序,依次在Vword与Vword之间建立无向边,即Eword-word,最终得到基本的词-样本联合图G=V,E;所述词与样本之间的组成关系是指,样本由分词集合中的词组成;所述样本中词的共现关系是指,在样本的分词集合中,词按照排列顺序共同出现在同一集合中;步骤3样本特征提取,目的是提取词-样本联合图中的节点特征矩阵和边特征矩阵;根据基本的词-样本联合图G=V,E,提取出训练集样本节点特征矩阵H0和训练集样本边特征矩阵A,得到包含完整语义信息的词-样本联合图G=V,E,H0,A,具体步骤如下:3-1对节点的集合V计算节点特征矩阵H0:首先,对于词节点采用one-hot向量表示词节点的特征矩阵R表示实数集合;然后,对于样本节点通过TF-IDF算法,计算样本节点的TF-IDF值表示样本节点的特征矩阵阵第j个词节点对于第i个样本节点的TF-IDF值TF-IDFi,j=TFij×IDFj;其中, 每个样本节点与所有词节点之间的TF-IDF值,组成了样本节点的特征向量,所有的样本节点的特征向量,组成了样本节点的特征矩阵 样本节点的特征矩阵和词节点的特征矩阵最后组成整个词-样本联合图中节点的特征矩阵3-2计算边特征矩阵A;对所有边的集合E计算其特征矩阵A;对于两个词节点之间的边特征采用PMI算法计算得到;对于词节点与样本节点之间的边特征,使用TF-IDF值表示;通过点互信息PMI值衡量两个词之间的相关程度:第m个词节点与第n个词节点的PMI值其中,pm,n表示第m个词与第n个词在同一个样本出现的概率,pm和pn分别表示两个词单独出现的概率; 其中,#Co-occurrence表示两个词在同一样本中共同出现的次数,#Occurrence表示单独一个词出现的次数,#Windows表示样本数量;合并节点之间的PMI值和TF-IDF值,即可得到最终的边特征矩阵A; Amn表示边特征矩阵A中第m个节点与第n个节点之间的边特征值,PMIm,n表示词节点之间的边特征值,TF-IDFm,n与TF-IDFn,m表示样本节点与词节点之间的边特征值;通过添加节点的特征矩阵H0与边的特征矩阵A,使得词-样本联合图G包含完整语义信息;步骤4模型训练,训练GCN模型,得到XSSpayload检测器;将节点的特征矩阵H0与边的特征矩阵A作为输入,训练两层的GCN模型,得到XSSpayload检测器;具体步骤如下:本发明选择XSSED数据库中多个正样本和负样本组成的样本集合作为训练集,定义为X,对应的真实标签集合定义为Y;通过随机初始化权重矩阵W0和W1,设置学习率为0.02,循环执行步骤4-1~4-3共K轮,最终得到XSSpayload检测器;4-1计算第一层GCN,输出H1;第一层GCN用于学习词嵌入矩阵,输出隐藏层H1,σ·为激活函数,本发明采用RELU作为第一层GCN的激活函数;I为单位矩阵,表示每个节点都能连接自身特征信息,W0表示第一层GCN的权重矩阵;4-2计算第二层GCN,输出分类结果Z;将H1作为第二层GCN的输入,用于训练第二层GCN的权重矩阵W1,输出二维矩阵,再经过softmax激活函数得到预测分类结果Z,softmax·为第二层GCN的激活函数;4-3选择交叉熵作为损失函数,由分类结果Zi,与实际的训练集样本标签Yi,计算得到交叉熵;通过最小化交叉熵,实现权重矩阵W0和W1的反向传播,如下: 其中,Cross-Entropy·为损失函数,Zi和Yi是第i个样本的预测结果和真实标签,若Zi=Yi表示预测成功,Yi=1表示第i个样本为正样本,反之Yi=0为负样本;步骤5用户访问检测;利用XSSpayload检测器,对用户请求进行检测:首先,通过步骤1得到用户请求脚本和分词集合;然后,通过步骤2将用户请求脚本作为节点添加进入词-样本联合图G中,并在请求脚本节点与对应的词节点之间建立无向边;再然后,通过步骤3提取待检测的用户请求脚本的节点特征向量和边特征向量;最后,将节点特征向量和边特征向量作为输入,通过XSSpayload检测器的检测,判断用户请求是否为正常请求:如果用户请求携带XSSpayload,则拒绝执行用户请求,否则响应正常的用户请求;所述请求脚本为检测对象,所述样本为训练集中的样本,用于训练模型,二者结构相同,但描述的对象不同。

全文数据:

权利要求:

百度查询: 杭州电子科技大学 一种基于图卷积网络的恶意脚本检测方法及模型

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。