13日前

自動生成されたスマートコントラクトコードにおける脆弱性の効率的な回避に関する脆弱性制約付きデコード手法

André Storhaug, Jingyue Li, Tianyuan Hu
自動生成されたスマートコントラクトコードにおける脆弱性の効率的な回避に関する脆弱性制約付きデコード手法
要約

コードの自動補完は、開発者がコーディングを大幅に高速化できる技術である。近年、Transformerベースの大規模言語モデル(LLM)技術の進展により、コード生成(コード合成)への応用が進んでいる。しかし、既存の研究では、こうしたモデルによって生成されたコードの多くに脆弱性が含まれていることが指摘されている。本研究では、このようなモデルが生成する脆弱なコードの量を低減するため、新たな「脆弱性制約付きデコード(vulnerability-constrained decoding)」手法を提案する。少量のラベル付き脆弱コード行データを用いて、LLMを微調整し、コード生成時に脆弱性ラベルを付与するようにする。これにより、モデル内部に埋め込まれた分類器としての機能を実現する。その後、デコード段階においては、これらの脆弱性ラベルの生成を禁止することで、脆弱なコードの生成を回避する。本手法の有効性を検証するため、スマートコントラクト(SC)のセキュリティ要件が極めて厳しいことから、イーサリアムブロックチェーン上のスマートコントラクトの自動補完を事例として選定した。まず、221万7,692件のイーサリアムSCから重複を除去した18万6,397件を用いて、60億パラメータを持つGPT-Jモデルを微調整した。この微調整には、10台のGPUを用いて1週間以上を要した。その結果、微調整後のモデルは、平均BLEU(BiLingual Evaluation Understudy)スコア0.557でスマートコントラクトを合成できた。しかし、自動補完されたコードの多くに脆弱性が見られた。脆弱性を有する176件のスマートコントラクトについて、脆弱性が発生する行より前のコードを入力として自動補完を実施したところ、70%以上が不正なコード(セキュリティ的に不安定なコード)であった。このため、同様の脆弱性を有する941件のスマートコントラクトを用いてさらに微調整を行い、脆弱性制約付きデコードを適用した。この段階の微調整には、4台のGPUを用いてわずか1時間で完了した。その後、再び176件のスマートコントラクトを自動補完した結果、本手法により生成されるコードの62%を脆弱と識別し、そのうち67%を生成回避できた。この結果から、本手法は自動補完コードにおける脆弱性を効率的かつ効果的に回避できることが示された。

自動生成されたスマートコントラクトコードにおける脆弱性の効率的な回避に関する脆弱性制約付きデコード手法 | 最新論文 | HyperAI超神経