网安AIGC专题
写在最前面
0、课程导论 1、应用 - 代码生成 2、应用 - 漏洞检测 3、应用 - 程序修复 4、应用 - 生成测试 5、应用 - 其他 6、模型介绍 7、模型增强 8、数据集 9、模型安全
写在最前面
本文为邹德清教授的《网络安全专题》课堂笔记系列的文章,本次专题主题为大模型。
本系列文章不仅涵盖了46篇关于前沿代码大模型的论文,还包含了24篇深度论文阅读笔记,全面覆盖了代码生成、漏洞检测、程序修复、生成测试等多个应用方向,深刻展示了这些技术如何在网络安全领域中起到革命性作用。同时,本系列还细致地介绍了大模型技术的基础架构、增强策略、关键数据集,以及与网络安全紧密相关的模型安全问题。
本篇博客旨在整理这些宝贵的笔记,方便未来的阅读和研究,同时也希望能够对广大读者产生启发和帮助。让我们一起踏上这场网络安全的未来探索之旅,共同在这个不断变化的领域中寻找属于我们的立足点。
一些碎碎念
纯散养、跨方向的直博开局,幸运的遇到了网络安全专题这门课,于是像每周组会一样在上课。 感谢邹德清、李珍、文明老师的授课,感谢课堂每一位同学的交流,受益匪浅。 带我打开一个全新视角,领略AIGC与大模型技术的革新之旅。同时理解最新的技术成就,发现它们的不足之处,并培养出创新能力。还有一些全英文PPT,“被迫”学了很多英文名词hh 对于我来说,这不仅仅是学术上的成长之旅,更是一次思维和视角的重大转变。通过课堂汇报、论文阅读和交流讨论,我逐渐培养了阅读论文的习惯,并学会了如何形成自己的思路。
这是2023秋季的三个月,也是积极的开始。希望之后的自己能延续每周阅读文献,积极推进科研进度,争取早日毕业!
课程简介
网络安全专题是针对当前热点安全问题进行研讨,通常分成四类热门主题进行介绍和研讨,包括的热门主题有:攻击行为与漏洞分析,分享最新的攻防进展;下一代网络安全,分享物联网、工控网络等相关协议安全、网络防御等技术;动态行为分析,分享内存相关安全以及动态污点技术等;人工智能安全,分享人工智能,人工智能安全应用,以及联邦学习安全等最新知识。
围绕着几个热门主题,在最近五年的信息安全顶尖会议上挑选一些代表性论文,组织学生研讨,启发他们理解最新成果,并发现最新成果的不足,从而达到培养创新能力的目的;另外也提高他们用英文介绍知识,以及进行讨论的能力。
0、课程导论
【网安AIGC专题10.11】软件安全+安全代码大模型 【网安AIGC专题10.11】①代码大模型的应用:检测、修复②其安全性研究:模型窃取攻击(API和网页接口) 数据窃取攻击 对抗攻击(用途:漏洞隐藏) 后门攻击(加触发器+标签翻转)
1、应用 - 代码生成
主题 论文 出处及时间 论文笔记 Enabling Programming Thinking in Large Language Models Toward Code Generation arXiv 2023.5.11 Self-Edit: Fault-Aware Code Editor for Code Generation arXiv 2023.5.6 Improving Code Example Recommendations on Informal Documentation Using BERT and Query-Aware LSH: A Comparative Study arXiv 2023.5.4 自动程序修复 Is Your Code Generated by ChatGPT Really Correct? Rigorous Evaluation of Large Language Models for Code Generation arXiv 2023.5.2 论文1:生成式模型GPT\CodeX填充式模型CodeT5\INCODER+大模型自动程序修复(生成整个修复函数、修复代码填充、单行代码生产、生成的修复代码排序和过滤) 代码生成 Self-collaboration Code Generation via ChatGPT arXiv 2023.4.15 论文3代码生成:ChatGPT+自协作代码生成+角色扮演(分析员、程序员、测试员)+消融实验、用于MBPP+HumanEval数据集 代码生成 Improving Code Generation by Training with Natural Language Feedback arXiv 2023.3.28 2 ILF利用人类编写的 自然语言反馈 来训练代码生成模型:自动化反馈生成+多步反馈合并+处理多错误反馈+CODEGEN -M ONO 6.1 B model Learning Performance-Improving Code Edits arXiv 2023.2.15
2、应用 - 漏洞检测
论文 出处及时间 Large Language Models of Code Fail at Completing Code with Potential Bugs arXiv Large Language Models and Simple, Stupid Bugs arXiv 2023.3.20 Prompting Is All Your Need: Automated Android Bug Replay with Large Language Models arXiv When GPT Meets Program Analysis: Towards Intelligent Detection of Smart Contract Logic Vulnerabilities in GPTScan arXiv
3、应用 - 程序修复
主题 论文 出处及时间 论文笔记 Towards Generating Functionally Correct Code Edits from Natural Language Issue Descriptions arXiv 2023.4.7 自动程序修复 Keep the Conversation Going: Fixing 162 out of 337 bugs for $0.42 each using ChatGPT arXiv 2023.4.1 5 ChatRepair:ChatGPT+漏洞定位+补丁生成+补丁验证+APR方法+ChatRepair+不同修复场景+修复效果(韦恩图展示) CCTEST: Testing and Repairing Code Completion Systems ICSE 2023 Examining Zero-Shot Vulnerability Repair with Large Language Models S&P 2023 自动程序修复 Automated Program Repair in the Era of Large Pre-trained Language Models ICSE 2023 大模型自动程序修复(生成整个修复函数、修复代码填充、单行代码生产、生成的修复代码排序和过滤)+生成式模型GPT\CodeX填充式模型CodeT5\INCODER 漏洞修复 How Effective Are Neural Networks for Fixing Security Vulnerabilities arXiv 论文6(顶会ISSTA 2023):提出新Java漏洞自动修复数据集:数据集 VJBench+大语言模型、APR技术+代码转换方法+LLM和DL-APR模型的挑战与机会 自动程序修复 Conversational Automated Program Repair arXiv 2023.1.30 论文7:Chatgpt/CodeX引入会话式 APR 范例+利用验证反馈+LLM 长期上下文窗口:更智能的反馈机制、更有效的信息合并策略、更复杂的模型结构、鼓励生成多样性 静默漏洞修复识别 CoLeFunDa-Explainable Silent Vulnerability Fix Identification ICSE 2023 8 CoLeFunDa华为团队:静默漏洞检测(识别+多分类)+数据增强、样本扩充+对比学习+微调+结果分析(降维空间,分类错误样本归纳,应用场景优势,有效性威胁分析)
4、应用 - 生成测试
主题 论文 出处及时间 论文笔记 No More Manual Tests? Evaluating and Improving ChatGPT for Unit Test Generation arXiv 2023.5.9 Finding Failure-Inducing Test Cases with ChatGPT arXiv 2023.4.30 Large Language Models are Edge-Case Fuzzers: Testing Deep Learning Libraries via FuzzGPT arXiv 2023.4.4 自动化测试 Large Language Models are Few-shot Testers: Exploring LLM-based General Bug Reproduction arXiv 2022.9.23 9 LIBRO方法(ICSE2023顶会自动化测试生成):提示工程+查询LLM+选择、排序、后处理(测试用例函数放入对应测试类中,并解决执行该测试用例所需的依赖) 模糊测试 Large Language Models are Zero-Shot Fuzzers: Fuzzing Deep-Learning Libraries via Large Language Models ISSTA 2023 10 TitanFuzz完全自动化执行基于变异的模糊测试:生成式(如Codex)生成种子程序,逐步提示工程+第一个应用LLM填充模型(如InCoder)+差分测试
5、应用 - 其他
主题 论文 出处及时间 论文笔记 信息提取 CODEIE: Large Code Generation Models are Better Few-Shot Information Extractors arXiv 2023.5.11 12 CODEIE用于NER和RE:顶刊OpenAI API调用、CodeX比chatgpt更好:提示工程设计+控制变量对比实验(格式一致性、模型忠实度、细粒度性能) 代码搜索 On Contrastive Learning of Semantic Similarity for Code to Code Search arXiv 2023.5.5 14Cosco跨语言代码搜索代码: (a) 训练阶段 相关程度的对比学习 对源代码(查询+目标代码)和动态运行信息进行编码 (b) 在线查询嵌入与搜索:不必计算相似性 生成知识图谱 CodeKGC: Code Language Model for Generative Knowledge Graph Construction arXiv 2023.4.18 软件工程 15 ChatGPT在软件工程中的全面作用:程序语法(AST生成、表达式匹配) 静态行为、动态分析(数据依赖和污点分析、指针分析) 提示设计(角色提示、指令提示) 代码摘要 Comparing Code Explanations Created by Students and Large Language Models arXiv 2023.4.13 17ASAP如何更好地改进少样本提示:在LLMs的prompt中添加语义信息,来提高代码摘要生成+代码补全任务的性能。CodeSearchNet数据集 代码解释 Active Code Learning: Benchmarking Sample-Efficient Training of Code Models arXiv 2023.4.8 论文13:理解和解释代码,GPT-3大型语言模型&学生创建的代码解释比较+错误代码的解释(是否可以发现并改正) 代码学习 The Scope of ChatGPT in Software Engineering: A Thorough Investigation arXiv 11 Coreset-C 主动学习:特征选择+11种采样方法+CodeBERT、GraphCodeBERT+多分类(问题分类)二元分类(克隆检测)非分类任务(代码总结) 许可证版权保护 CODEIPPROMPT: Intellectual Property Infringement Assessment of Code Language Models ICML 2023 16CODEIPPROMPT:顶会ICML’23 从GitHub到AI,探索代码生成的侵权风险与缓解策略的最新进展:训练数据`有限制性许可;模型微调+动态Token过滤 LLM4SE综述 Large Language Models for Software Engineering: A Systematic Literature Review arXiv 2023.9.12 18LLM4SE革命性技术揭秘:大型语言模型LLM在软件工程SE领域的全景解析与未来展望 - 探索LLM的多维应用、优化策略与软件管理新视角
6、模型介绍
论文 出处及时间 StarCoder: may the source be with you! arXiv 2023.5.9 Textbooks Are All You Need arXiv 2023.6.20 Analysis of ChatGPT on Source Code arXiv
7、模型增强
主题 论文 出处及时间 论文笔记 代码预训练 ContraBERT: Enhancing Code Pre-trained Models via Contrastive Learning ICSE 2023 19ContraBERT:顶会ICSE23 数据增强+对比学习+代码预训练模型,提升NLP模型性能与鲁棒性:处理程序变异(变量重命名) 持续学习 Keeping Pace with Ever-Increasing Data: Towards Continual Learning of Code Intelligence Models ICSE 2023 23REPEAT方法:软工顶会ICSE ‘23 大模型在代码智能领域持续学习 代表性样本重放(选择信息丰富且多样化的示例) + 基于可塑权重巩固EWC的自适应参数正则化 【网安AIGC专题11.22】 TRACED: Execution-aware Pre-training for Source Code arXiv Symmetry-Preserving Program Representations for Learning Code Semantics arXiv
8、数据集
主题 论文 出处及时间 论文笔记 The Vault: A Comprehensive Multilingual Dataset for Advancing Code Understanding and Generation arXiv 2023.5.9 错误代码补全 Large Language Models of Code Fail at Completing Code with Potential Bugs NeurIPS 2023 24 LLM错误代码补全:机器学习顶会NeurIPS‘23 智能体评估:自行构建数据集Buggy-HumanEval、Buggy-FixEval+错误代码补全+修复模型【网安AIGC专题11.22】 CCF C LLMSecEval: A Dataset of Natural Language Prompts for Security Evaluations arXiv 2023.3.16 22LLMSecEval数据集及其在评估大模型代码安全中的应用:GPT3和Codex根据LLMSecEval的提示生成代码和代码补全,CodeQL进行安全评估【网安AIGC专题11.22】 CrossCodeBench: Benchmarking Cross-Task Generalization of Source Code Models ICSE 2023 数据增强 Data Augmentation Approaches for Source Code Models: A Survey arXiv 20源代码模型的数据增强方法:克隆检测、缺陷检测和修复、代码摘要、代码搜索、代码补全、代码翻译、代码问答、问题分类、方法名称预测和类型预测对论文进行分组【网安AIGC专题11.15】
9、模型安全
主题 论文 出处及时间 Multi-target Backdoor Attacks for Code Pre-trained Models arXiv 对抗攻击 Discrete Adversarial Attack to Models of Code PLDI 2023