[論文レビュー] Large Language Models for Code Analysis: Do LLMs Really Do Their Job?
本論文は公開されている LLM(GPT-3.5/4、LLaMA-2-13B 系列)をコード分析タスクで体系的に評価し、難読化されていないコードと難読化コードを含む評価を行い、能力と限界を測る実世界のマルウェアケーススタディを2件提示する。
Large language models (LLMs) have demonstrated significant potential in the realm of natural language understanding and programming code processing tasks. Their capacity to comprehend and generate human-like code has spurred research into harnessing LLMs for code analysis purposes. However, the existing body of literature falls short in delivering a systematic evaluation and assessment of LLMs' effectiveness in code analysis, particularly in the context of obfuscated code. This paper seeks to bridge this gap by offering a comprehensive evaluation of LLMs' capabilities in performing code analysis tasks. Additionally, it presents real-world case studies that employ LLMs for code analysis. Our findings indicate that LLMs can indeed serve as valuable tools for automating code analysis, albeit with certain limitations. Through meticulous exploration, this research contributes to a deeper understanding of the potential and constraints associated with utilizing LLMs in code analysis, paving the way for enhanced applications in this critical domain.
研究の動機と目的
- LLMs が複数言語(JavaScript、Python、C)のソースコードを理解し、分析できるかを評価する。
- 難読化コードや可読性の低いコードを理解する能力を評価する。
- 防御用途を測るために、マルウェア分析への LLMS の実世界ケーススタディを提供する。
提案手法
- 複数言語(JavaScript、Python、C)で難読化されていないコードと難読化コードのデータセットを構築する。
- JavaScript コードを4つの方式で難読化し、IOCCC サンプルを de-obfuscation チャレンジとして含める。
- 複数の LLM(GPT-3.5-turbo、GPT-4、LLaMA-2-13B、Code-LLaMA-2-13B-instruct)をコード分析タスクで評価する。
- GPT-4 を参照として説明の手動のグラウンドトゥルースラベリングを行い、コサイン類似度、BERTベースの意味的類似度、GPT-4 に基づく精度を指標として算出する。
- IOCCC由来のサンプルについて、難読化解除後のコード生成とコンパイル/実行可能性をテストする。
- 実用的な防御分析を示すため、デコンパイル済みの Android マルウェアと WannaCry ランサムウェアの2つのケーススタディを実施する。

実験結果
リサーチクエスチョン
- RQ1RQ1: LLMはソースコードを理解できるか?
- RQ2RQ2: LLMは難読化コードや読みづらいコードを理解できるか?
- RQ3公開されている LLM は、実世界のコード分析およびマルウェア分析タスクでどのような性能を示すか?
主な発見
- GPT-4 は C、JavaScript、Python にまたがる非難化されていないコードで高精度を達成し、全体の精度は 97.4% である。
- LLaMA-2-13B や Code-LLaMA-2-13B-instruct のような小型モデルは、有意義なコード分析を生み出すのに苦戦する。
- 難読化された JavaScript は GPT-3.5 と GPT-4 の性能を低下させ、GPT-4 は難読化コードで 87% の精度を達成する。
- 難読化設定では一般的に GPT-4 が GPT-3.5 を上回るが、両方に影響がある。基本的な難読化(識別子の名前変更など)は、GPT モデルの性能をわずかにしか低下さない。
- IOCCCスタイルの C コードの難読化解除は GPT モデルにとって難しく、コンパイル可能で正しく実行可能な結果は稀である(GPT-3.5 約8%、GPT-4 約4% がテストサンプル中に正しく実行可能)。
- GPT-4 は IOCCC 例と入力の関連付け能力が高いが、正確な年/著者の詳細を提供できないことが多い。GPT-3.5 は IOCCC サンプルを特定する数が少ない。

より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。