johnmccausland/Graph-Signal-Processing-for-Malware-Prediction
GitHub: johnmccausland/Graph-Signal-Processing-for-Malware-Prediction
该项目实现图傅里叶变换与组合拉普拉斯矩阵分析来清理恶意软件图特征数据,并跟踪从探索性数据分析到滤波后 GIN 模型执行的完整实验流程。
Stars: 0 | Forks: 0
# 用于改进恶意软件预测的图信号处理
## 会议仓库
- **展示于** RAITE 2025 研讨会
## 项目摘要
在一个呈指数级发展的技术世界中,恶意软件攻击急剧增加,并且其策略变得更加先进。图神经网络 (GNNs) 已迅速成为分析图结构数据的强大工具。此外,图信号处理 (GSP) 在评估图结构数据(包括社交网络和分子图)方面展现出了巨大的潜力。由于 GNNs 能够利用恶意软件固有的图结构来捕获局部和全局模式,因此它们被广泛用作恶意软件检测的强大工具。然而,关于在恶意软件和良性图数据上使用 GSP 来过滤噪声并提高模型准确性的研究却很少。由于 GSP 在网络安全环境中的应用存在空白,本研究探讨了使用图傅里叶变换和滤波器来清理恶意软件和良性图数据,从而提高模型准确性并更好地预测文件类型。
## 实验生命周期结构与仓库结构
本项目按三个阶段进行组织,以展示 pipeline 的渐进式发展;但更重要的是,它展示了我学习构建这些模型并实现 GSP 的过程中代码的逐步演进。
### 第一阶段:探索性数据分析与基线建模
* **'GNN_EDA.ipynb'**:对数据集进行探索性数据分析,分析原始数据集特征,并分析恶意软件与干净文件之间的差异。
* **'GNN_baseline_model.ipynb'**:确立了性能基准。训练了两个图同构网络 (GIN),学习率分别为 $lr=0.01$ 和 $lr=0.001$。准确率分别为 $93.69\%$ 和 $97.94\%$。
### 第二阶段:信号滤波与数学变换:
* **'Comb_lap_eda.ipynb'**:计算考虑自环的组合拉普拉斯矩阵 $$x^TL_gx = \sum_{i}c_ix(i)^2 + \sum_{i \sim j} a_{ij}(x(i) - x(j))^2$$,以评估自环对信号变化的影响程度。
* **'GSP_filter_experimentation.ipynb'**:这是一个实验性的草稿本,用于调整和测试 GSP 滤波器的不同超参数值,并分析滤波器对其中一个文件中图的作用效果。基于拉普拉斯矩阵探索性数据分析的发现,最终决定使用高通滤波器。
### 第三阶段:模型与 Pipeline 的最终执行
* **'GSP_Model_Testing.ipynb'**:通过编程实现高通 GSP 滤波器,执行 Pytorch geometric 训练循环,并展示 NetworkX 弹簧布局,以可视化文件的正确分类与错误分类情况。准确率分别为 $94.72\%$ 和 $97.67\%$。
## 技术栈
- **语言:** Python
- **图框架:** NetworkX、PyGSP、PyTorch-Geometric
- **数据与可视化:** Numpy、Pandas、Seaborn、Matplotlib
- **模型执行:** PyTorch、Scikit-Learn
## 参考文献与开源许可
1. **数学基础:** Ortega, A. (2022). *Introduction to Graph Signal Processing*. Cambridge University Press.
- *核心框架:* 用于 GFT(图傅里叶变换)、频谱滤波的数学推导,以及通过组合拉普拉斯矩阵的二次型来评估信号平滑度/总变分。
2. **实现基础:** 架构机制和结构性 GNN 层改编自 Maxime Labonne 所著的《Hands-on Graph Neural Networks Using Python》(Pakt Publishing,2023 年),遵循 **MIT License**。
3. **数据集致谢:** 本次会议使用的数据集是 kaggle 上的 *graph-features* 数据集,并且使用了 dataset_scdg.pickle,因为它包含基于动态图的特征。
标签:AI安全, Apex, Chat Copilot, 凭据扫描, 图信号处理, 图神经网络, 数据科学, 机器学习, 特权检测, 资源验证, 逆向工具