論文の概要: Artificial-Intelligence Generated Code Considered Harmful: A Road Map for Secure and High-Quality Code Generation
- arxiv url: http://arxiv.org/abs/2409.19182v2
- Date: Sat, 12 Oct 2024 03:35:42 GMT
- ステータス: 処理完了
- システム内更新日: 2024-11-06 04:01:11.127469
- Title: Artificial-Intelligence Generated Code Considered Harmful: A Road Map for Secure and High-Quality Code Generation
- Title(参考訳): 安全で高品質なコード生成のためのロードマップ
- Authors: Chun Jie Chong, Zhihao Yao, Iulian Neamtiu,
- Abstract要約: 人書きコードとLLM生成コードのセキュリティと品質を比較した。
LLMは、必要な機能を実装するのに失敗する間違ったコードを生成することができることがわかった。
Flukeingによると、LLMの生成したコードは、人間が書いたコードよりもハングやクラッシュしやすい。
- 参考スコア(独自算出の注目度): 2.793781561647737
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Generating code via a LLM (rather than writing code from scratch), has exploded in popularity. However, the security implications of LLM-generated code are still unknown. We performed a study that compared the security and quality of human-written code with that of LLM-generated code, for a wide range of programming tasks, including data structures, algorithms, cryptographic routines, and LeetCode questions. To assess code security we used unit testing, fuzzing, and static analysis. For code quality, we focused on complexity and size. We found that LLM can generate incorrect code that fails to implement the required functionality, especially for more complicated tasks; such errors can be subtle. For example, for the cryptographic algorithm SHA1, LLM generated an incorrect implementation that nevertheless compiles. In cases where its functionality was correct, we found that LLM-generated code is less secure, primarily due to the lack of defensive programming constructs, which invites a host of security issues such as buffer overflows or integer overflows. Fuzzing has revealed that LLM-generated code is more prone to hangs and crashes than human-written code. Quality-wise, we found that LLM generates bare-bones code that lacks defensive programming constructs, and is typically more complex (per line of code) compared to human-written code. Next, we constructed a feedback loop that asked the LLM to re-generate the code and eliminate the found issues (e.g., malloc overflow, array index out of bounds, null dereferences). We found that the LLM fails to eliminate such issues consistently: while succeeding in some cases, we found instances where the re-generated, supposedly more secure code, contains new issues; we also found that upon prompting, LLM can introduce issues in files that were issues-free before prompting.
- Abstract(参考訳): LLMによるコード生成(スクラッチからコードを書くのではなく)は、人気を博している。
しかし、LLM生成コードのセキュリティへの影響はいまだ不明である。
我々は、データ構造、アルゴリズム、暗号ルーチン、LeetCode質問など、幅広いプログラミングタスクに対して、人間の書いたコードとLLM生成コードのセキュリティと品質を比較した。
コードのセキュリティを評価するために、ユニットテスト、ファジィ、静的分析を使用しました。
コード品質に関しては、複雑さとサイズに重点を置いています。
LLMは、特に複雑なタスクのために、必要な機能を実装するのに失敗する間違ったコードを生成することができる。
例えば、暗号アルゴリズムのSHA1では、LLMは不正な実装を生成した。
その機能が正しい場合、LLM生成コードは安全性が低く、主に防御的なプログラミング構造がないため、バッファオーバーフローや整数オーバーフローといったセキュリティ上の問題を招いている。
ファジングは、LLMの生成したコードは、人間が書いたコードよりもハングやクラッシュしやすいことを明らかにした。
品質面では、LLMは防御的なプログラミング構造が欠如しており、典型的には人間の書いたコードよりも複雑(一行あたりのコード)であるベアボーンコードを生成する。
次に、フィードバックループを構築し、LCMにコードを再生成し、見いだされた問題(例えば、maloc overflow、境界から配列インデックス、nullの参照)を取り除くように要求しました。
いくつかのケースでは、再生成された、よりセキュアと思われるコードが新しい問題を含むケースが見つかりました。
関連論文リスト
- Combining LLM Code Generation with Formal Specifications and Reactive Program Synthesis [0.7580487359358722]
大規模言語モデル(LLM)は精度に苦しむが、リスクの高いアプリケーションには適さない。
コード生成を LLM で処理する部分と,形式的なメソッドベースのプログラム合成で処理する部分の2つに分割する手法を提案する。
論文 参考訳(メタデータ) (2024-09-18T15:59:06Z) - HexaCoder: Secure Code Generation via Oracle-Guided Synthetic Training Data [60.75578581719921]
大規模言語モデル(LLM)は、自動コード生成に大きな可能性を示している。
最近の研究は、多くのLLM生成コードが深刻なセキュリティ脆弱性を含んでいることを強調している。
我々は,LLMがセキュアなコードを生成する能力を高めるための新しいアプローチであるHexaCoderを紹介する。
論文 参考訳(メタデータ) (2024-09-10T12:01:43Z) - "You still have to study" -- On the Security of LLM generated code [0.0]
日常的な(教室)プログラミングタスクにおいても,AIアシスタントの利用が増加しているのを目撃する。
プログラマがいわゆる"prompt"に基づいて生成するコードは、常に認められたセキュリティ基準を満たしているとは限らない。
論文 参考訳(メタデータ) (2024-08-13T07:57:53Z) - Can We Trust Large Language Models Generated Code? A Framework for In-Context Learning, Security Patterns, and Code Evaluations Across Diverse LLMs [2.7138982369416866]
大規模言語モデル(LLM)は、ソフトウェア工学における自動コード生成に革命をもたらした。
しかし、生成されたコードのセキュリティと品質に関する懸念が持ち上がっている。
本研究は,LLMの行動学習をセキュアにするための枠組みを導入することで,これらの課題に対処することを目的とする。
論文 参考訳(メタデータ) (2024-06-18T11:29:34Z) - VersiCode: Towards Version-controllable Code Generation [58.82709231906735]
大規模言語モデル(LLM)は、コード生成において大きな進歩を遂げていますが、既存の研究は、ソフトウェア開発の動的な性質を説明できません。
バージョン別コード補完(VSCC)とバージョン別コードマイグレーション(VACM)の2つの新しいタスクを提案する。
VersiCodeについて広範な評価を行い、バージョン管理可能なコード生成が確かに重要な課題であることを示した。
論文 参考訳(メタデータ) (2024-06-11T16:15:06Z) - Uncovering LLM-Generated Code: A Zero-Shot Synthetic Code Detector via Code Rewriting [78.48355455324688]
そこで本研究では,コードと書き直された変種との類似性に基づいて,ゼロショット合成符号検出器を提案する。
以上の結果から,既存のテキスト用合成コンテンツ検出装置よりも顕著な向上が見られた。
論文 参考訳(メタデータ) (2024-05-25T08:57:28Z) - InfiBench: Evaluating the Question-Answering Capabilities of Code Large Language Models [56.723509505549536]
InfiBenchは、私たちの知識に合ったコードのための、最初の大規模フリーフォーム質問回答(QA)ベンチマークです。
慎重に選択された234の高品質なStack Overflow質問で構成されており、15のプログラミング言語にまたがっている。
InfiBench上で100以上の最新のコードLLMに対して,系統的評価を行い,新しい知見と洞察に富んだ結果を得た。
論文 参考訳(メタデータ) (2024-03-11T02:06:30Z) - Assured LLM-Based Software Engineering [51.003878077888686]
この記事では,2024年4月15日にポルトガルのリスボンで開催された International Workshop on Interpretability, Robustness, and Benchmarking in Neural Software Engineering で,Mark Harman 氏による基調講演の内容の概要を紹介する。
論文 参考訳(メタデータ) (2024-02-06T20:38:46Z) - Code Prompting Elicits Conditional Reasoning Abilities in Text+Code LLMs [65.2379940117181]
自然言語の問題をコードに変換する一連のプロンプトであるコードプロンプトを導入します。
コードプロンプトは複数のLLMに対して高速に向上することがわかった。
GPT 3.5を解析した結果,入力問題のコードフォーマッティングが性能向上に不可欠であることが判明した。
論文 参考訳(メタデータ) (2024-01-18T15:32:24Z) - DeceptPrompt: Exploiting LLM-driven Code Generation via Adversarial
Natural Language Instructions [27.489622263456983]
DeceptPromptは、コードLLMを駆動し、脆弱性のある機能の正しいコードを生成する、逆の自然言語命令を生成するアルゴリズムである。
最適化プレフィックス/サフィックスを適用する場合、アタック成功率(ASR)はプレフィックス/サフィックスを適用せずに平均50%向上する。
論文 参考訳(メタデータ) (2023-12-07T22:19:06Z) - Can ChatGPT replace StackOverflow? A Study on Robustness and Reliability
of Large Language Model Code Generation [8.575560293086289]
大規模言語モデル(LLM)は、自然言語を理解し、プログラミングコードを生成する素晴らしい能力を示している。
生成されたコードにおけるAPIの誤用は、リソースリークやプログラムクラッシュといった深刻な問題を引き起こす可能性がある。
論文 参考訳(メタデータ) (2023-08-20T18:36:28Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。