揭秘代码作者归属:AuthAttLyzer-V2引领新一代源代码分析技术
摘要
本文介绍了一种名为“AuthAttLyzer-V2”的新型源代码特征提取器,专注于源代码作者归属(SCAA)。该研究通过分析C++代码中的词汇、语义、句法和N-gram特征,探索了作者识别的可能性。研究涉及24,000个源代码样本,来自3,000位作者,采用集成学习模型(如随机森林、梯度提升和XGBoost)并结合SHAP(SHapley Additive exPlanations)以提高解释性。该方法在识别编程风格方面表现出色,为恶意软件分类提供了关键见解。
原理
AuthAttLyzer-V2通过提取源代码中的多种特征,包括词汇、语义、句法和N-gram特征,来识别不同作者的编程风格。这些特征通过集成学习模型(如随机森林、梯度提升和XGBoost)进行分析,结合SHAP技术,以提供模型决策的透明度和解释性。SHAP通过计算每个特征对预测结果的贡献,帮助理解模型如何基于这些特征做出决策,从而增强了模型的可解释性和可靠性。
流程
- 数据收集:从Codeforces平台收集个人源代码数据集。
 - 数据预处理:对原始代码样本进行清洗和结构化处理。
 - 特征提取:使用AuthAttLyzer-V2提取54个关键特征,反映个人编程风格。
 - 模型训练:应用集成学习模型(如随机森林、梯度提升和XGBoost)进行作者归属分析。
 - 模型解释:通过SHAP技术解释模型决策过程,提供特征重要性的详细分析。
 - 模型验证:在独立的未见代码样本上测试模型性能,评估其泛化能力和准确性。
 
应用
AuthAttLyzer-V2的应用前景广泛,特别是在网络安全领域。准确识别代码作者可以帮助追踪恶意软件的来源,识别特定威胁行为者或团体,并增强威胁情报和缓解策略。此外,该技术还可用于软件分类、版权保护和代码质量评估,为软件开发和维护提供支持。
