# pattern_recognition_assignment **Repository Path**: shrugging/pattern_recognition_assignment ## Basic Information - **Project Name**: pattern_recognition_assignment - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-31 - **Last Updated**: 2023-12-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 模式识别课程作业 ## 姓名:卢俊羲 学号:239288 学院:网络空间安全学院 ## 引言 作为最为常见的Web攻击手段之一,钓鱼攻击旨在通过伪造界面窃取受害者的敏感信息。钓鱼网站攻击者通常尝试冒充众所周知并广泛使用的服务,如社交媒体、银行和电子商务网站。这些仿冒网站通常建立在与原始站点相同的代码基础上,这可能使它们在第一眼看来难以被发现。我们可以通过许多相关指标来区分良性和钓鱼网站。例如,大多数钓鱼URL往往非常长,带有多个子域和特殊字符。域名通常托管在可疑的主机上,并使用由不受信任的机构颁发的安全套接层(SSL)证书。目前有许多工作旨在实现针对钓鱼网站攻击的防御。其中一些实现使用传统技术,如黑名单或URL词汇特征分析。然而,黑名单存在多个缺点,如需要人工辅助更新且缺乏全面性。此外,它们不能用于未知和隐藏的URL。其他技术利用机器学习来训练模型,根据一定数量的样本对网站进行分类。然而,在大多数方法中,并未涉及网站的超链接结构。 本次课程作业设计了一个利用超链接结构特征进行网站分类的模型。此外还对模型的表现进行了评估。获得的性能结果证明了的方法在检测精度方面的效率和有效性,以及其在超越现有检测方法方面的能力。 ## 方案 ### 相关基础 图神经网络 图神经网络(GNNs)是一种以图数据为输入的神经网络类型。与其他神经网络架构不同,GNNs能够处理非欧几里得数据和对象之间的复杂关系。大多数GNNs遵循消息传递模型(MPNN)(Gilmer等,2017年),可以被认为是图的卷积神经网络(CNN)的概括。这种消息传递算法以图G=(V,E)作为输入,其中n个节点vi属于V,m条边(vi,vj)属于E,G可以是有向或无向的。每个节点和边都可以分别存储一个特征向量,称为节点特征和边特征。通常,所有这些信息都通过三个矩阵表示: A:图结构矩阵,邻接矩阵情况下形状为n×n,对于CSR(压缩稀疏行)或COO(坐标)稀疏矩阵则为2×n。 X:节点特征矩阵,形状为n×d。 E:边特征矩阵,形状为m×e。 其中,n=|V|,m=|E|,d和e分别是每个节点和每条边的特征数量。 消息传递模型由四个步骤组成,其中步骤1到3由一个GNN层实现,并且随着层数的增加多次重复。步骤4是一个最终步骤,应在通过所有GNN层后应用。 消息:每个节点根据其节点特征创建一个消息并发送给所有邻居。 聚合:节点使用聚合函数聚合来自每个邻居的传入消息。 更新:节点的旧特征通过与聚合的新特征合并来更新,创建节点嵌入。 读出:将所有节点嵌入组合成一个表示,可以用于下游机器学习算法进行预测。 每个步骤通常是一个具有可学习参数的函数,即在两个步骤的计算中使用权重矩阵和激活函数。一个GNN层通常对应于特征在1-hop邻域内的传播,所以堆叠n个GNN层将导致节点特征传播到n个远程节点。在这些层中,每个节点收集其邻居的特征,以产生图嵌入。 ### 模型介绍 本次作业完成了一个基于图神经网络的网站分类(钓鱼或良性)模型。模型可以被认为是GNN架构的附加层。模型使用图来表述网站的超链接结构。模型将钓鱼网站分类的任务视为一个节点分类任务,其中要分类的节点是给定的URL,其他节点代表从该URL发出的每个可能的链接,直到用户定义的深度。从这些链接中可以构建一个图,其中节点代表URL,边是从`
`或`