2024 · 会议论文

面向代码分析的大语言模型:LLM 真的胜任吗?

Large Language Models for Code Analysis: Do LLMs Really Do Their Job?

评估 GPT-3.5-turbo、GPT-4、LLaMA-2-13B、Code-LLaMA-2-13B-Instruct 与 StarChat-Beta 解释已去除注释的 JavaScript、Python 和 C 代码功能的能力,再在经 JavaScript Obfuscator(标识符重命名、死代码注入、控制流平坦化与字符串拆分)及 Wobfuscator WebAssembly 变换混淆的 JavaScript 上重复该任务。研究还要求 GPT-3.5 与 GPT-4 将 100 个 IOCCC 获奖程序改写为可读、可编译的代码。案例研究将 GPT 模型用于一个僵尸网络仓库与一个正常浏览器扩展仓库、经 JD-GUI 反编译的 Android 短信窃取程序,以及经 RetDec 反编译的 WannaCry 代码。

研究范围与局限

真实标签是 GPT-4 自身生成、经四名学生人工核查的解释;其他模型则通过相似度指标与 GPT-4 评判与这些文本比较,作者也指出该评判方法若无人工校准并不可靠。正确性在解释层面判断,并非依据恢复出的行为或可执行等价性。只有 JavaScript 经过工具生成的混淆变换;两个 GPT 模型都未能解读 Wobfuscator 插入的 WebAssembly,较小模型在施加混淆后则无法给出有意义的解释。作者报告 GPT-4 在未混淆代码上的准确率为 97.4%,在混淆 JavaScript 上为 87%;在 IOCCC 去混淆任务中,GPT-3.5 约 20%、GPT-4 19% 的目标得到可编译代码,最终仅分别有 8% 和 4% 产生正确结果。恶意软件分析是针对少量样本的定性案例研究:WannaCry 需人工分块输入,上下文被拆分时会漏掉行为,僵尸网络仓库中还出现误报。模型能认出来自热门仓库的代码,因此记忆效应是混杂因素。被评测的 GPT-3.5/GPT-4 时代模型及 LLaMA-2-13B 级别模型已经过时。研究分析的是源码或已反编译的文本,并不执行二进制反编译。

与本合集的关联

衡量 LLM 的代码解释在 JavaScript 混淆和反编译器输出下还能保持多少可靠性,与合集中的 JavaScript 去混淆基准和工具互补。

发表与复核详情

发表载体
USENIX Security 2024
发表状态
会议论文
出版/提交日期
2024 年 8 月
日期依据
采用 USENIX 官方论文集 BibTeX 中的出版月份,不以 2024 年 8 月 14–16 日的会议日期推定具体出版日。
arXiv 首次提交
2023 年 10 月 18 日
arXiv
2310.12357
已复核的 arXiv 版本
v2

USENIX 未为该论文提供 DOI;本条目记录 arXiv 标识符,最终 PDF 文件名 usenixsecurity24-fang.pdf 也不符合 secYY 出版方规则。USENIX 页面、其 BibTeX 与最终 PDF 一致给出 11 位作者顺序、单名作者 Asmita、第 829–846 页及 ISBN 978-1-939133-44-1;页面还提供一份预发表 PDF。arXiv v2(2024-03-05)备注为“Accepted by Usenix Security 2024”。论文点名了在线附录;在所审阅的 2024-08-28 提交中,附录包含数据集、结果与案例研究目录,但未声明许可证,其中的样本包括保留各自条款的第三方代码。该附录作为项目链接记录,而非代码。论文除模型家族名称外未说明具体模型版本。本次未下载附录内容或恶意软件样本,也未运行实验。

来源复核于

本合集仅做来源复核,未重新运行论文实验。请通过原始论文或 BibTeX 引用原作者。

一手来源

  1. https://www.usenix.org/conference/usenixsecurity24/presentation/fang
  2. https://www.usenix.org/system/files/usenixsecurity24-fang.pdf
  3. https://arxiv.org/abs/2310.12357
  4. https://arxiv.org/pdf/2310.12357v2
  5. README.md GitHub · aseec-lab/llms-for-code-analysis · 修订 f1bdb01
  6. https://github.com/aseec-lab/llms-for-code-analysis/tree/f1bdb01f1da9143bda796c259f06c7364683a102