論文の概要: Enabling Memory Safety of C Programs using LLMs
- arxiv url: http://arxiv.org/abs/2404.01096v1
- Date: Mon, 1 Apr 2024 13:05:54 GMT
- ステータス: 処理完了
- システム内更新日: 2024-04-03 22:25:32.516911
- Title: Enabling Memory Safety of C Programs using LLMs
- Title(参考訳): LLMを用いたCプログラムのメモリ安全性向上
- Authors: Nausheen Mohammed, Akash Lal, Aseem Rastogi, Subhajit Roy, Rahul Sharma,
- Abstract要約: C言語で書かれた低レベルのコードのメモリ安全性違反は、ソフトウェア脆弱性の主要な原因のひとつであり続けています。
このような違反を建設によって除去する方法の1つは、安全なC方言にCコードを移植することである。
このような方言は、最小限のランタイムオーバーヘッドで安全性を保証するためにプログラマが提供するアノテーションに依存している。
この移植は、プログラマに多大な負担をかける手作業であり、そのため、このテクニックの採用は限られている。
- 参考スコア(独自算出の注目度): 5.297072277460838
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Memory safety violations in low-level code, written in languages like C, continues to remain one of the major sources of software vulnerabilities. One method of removing such violations by construction is to port C code to a safe C dialect. Such dialects rely on programmer-supplied annotations to guarantee safety with minimal runtime overhead. This porting, however, is a manual process that imposes significant burden on the programmer and, hence, there has been limited adoption of this technique. The task of porting not only requires inferring annotations, but may also need refactoring/rewriting of the code to make it amenable to such annotations. In this paper, we use Large Language Models (LLMs) towards addressing both these concerns. We show how to harness LLM capabilities to do complex code reasoning as well as rewriting of large codebases. We also present a novel framework for whole-program transformations that leverages lightweight static analysis to break the transformation into smaller steps that can be carried out effectively by an LLM. We implement our ideas in a tool called MSA that targets the CheckedC dialect. We evaluate MSA on several micro-benchmarks, as well as real-world code ranging up to 20K lines of code. We showcase superior performance compared to a vanilla LLM baseline, as well as demonstrate improvement over a state-of-the-art symbolic (non-LLM) technique.
- Abstract(参考訳): C言語で書かれた低レベルのコードのメモリ安全性違反は、ソフトウェア脆弱性の主要な原因のひとつであり続けている。
このような違反を建設によって除去する方法の1つは、安全なC方言にCコードを移植することである。
このような方言は、最小限のランタイムオーバーヘッドで安全性を保証するためにプログラマが提供するアノテーションに依存している。
しかしこの移植は、プログラマに多大な負担をかける手作業であり、そのため、このテクニックの採用は限られている。
ポーティングのタスクはアノテーションを推論するだけでなく、そのようなアノテーションに対処するためにコードのリファクタリングや書き直しも必要かもしれない。
本稿では,これら2つの問題に対処するために,Large Language Models (LLMs) を用いる。
複雑なコード推論や大規模なコードベースの書き直しにLLM機能を利用する方法を示す。
また、軽量な静的解析を利用して、LLMによって効果的に実行できる小さなステップに変換を分解する、プログラム全体の変換のための新しいフレームワークを提案する。
We implement our ideas in a tool called MSA that target the CheckedC dialect。
マイクロベンチマークや,最大20K行までの実世界のコードに対して,MSAを評価した。
我々は,バニラLLMベースラインよりも優れた性能を示すとともに,最先端のシンボル(非LLM)技術よりも優れた性能を示す。
関連論文リスト
- 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 [69.99031792995348]
自然言語の問題をコードに変換する一連のプロンプトであるコードプロンプトを導入します。
コードプロンプトは複数のLLMに対して高速に向上することがわかった。
GPT 3.5を解析した結果,入力問題のコードフォーマッティングが性能向上に不可欠であることが判明した。
論文 参考訳(メタデータ) (2024-01-18T15:32:24Z) - If LLM Is the Wizard, Then Code Is the Wand: A Survey on How Code
Empowers Large Language Models to Serve as Intelligent Agents [81.60906807941188]
大型言語モデル(LLM)は、自然言語と形式言語(コード)の組み合わせに基づいて訓練される
コードは、標準構文、論理一貫性、抽象化、モジュール性を備えた高レベルの目標を実行可能なステップに変換する。
論文 参考訳(メタデータ) (2024-01-01T16:51:20Z) - DeceptPrompt: Exploiting LLM-driven Code Generation via Adversarial
Natural Language Instructions [27.489622263456983]
DeceptPromptは、コードLLMを駆動し、脆弱性のある機能の正しいコードを生成する、逆の自然言語命令を生成するアルゴリズムである。
最適化プレフィックス/サフィックスを適用する場合、アタック成功率(ASR)はプレフィックス/サフィックスを適用せずに平均50%向上する。
論文 参考訳(メタデータ) (2023-12-07T22:19:06Z) - Chain of Code: Reasoning with a Language Model-Augmented Code Emulator [119.0018170558366]
言語モデル(LM)はコード記述を活用して思考の連鎖推論を改善する。
我々は、LMコード駆動推論を改善するシンプルな、そして驚くほど効果的な拡張であるChain of Code (CoC)を提案する。
CoCは、大小のモデルと同様の規模でスケールし、LMが「コードを考える」ことで正しく答えられるような推論の問題の範囲を広げる。
論文 参考訳(メタデータ) (2023-12-07T17:51:43Z) - Can LLMs Patch Security Issues? [0.26107298043931204]
LLM(Large Language Models)は、コード生成に優れた習熟度を示している。
LLMはセキュリティ上の脆弱性や欠陥を含むコードを生成する。
そこで本稿では,Bandit からのフィードバックを受信するための LLM の利用について検討する。
論文 参考訳(メタデータ) (2023-11-13T08:54:37Z) - Generate and Pray: Using SALLMS to Evaluate the Security of LLM
Generated Code [0.7451457983372032]
大規模言語モデルによって生成されたコードが正しいだけでなく、脆弱性もないことを保証することが重要です。
LLM(Large Language Models)を評価するために使われる既存のデータセットは、セキュリティに敏感な真のソフトウェアエンジニアリングタスクを適切に表現していない。
生成されたコードのセキュリティを評価することに焦点を当てたベンチマークが明らかに欠落している。
論文 参考訳(メタデータ) (2023-11-01T22:46:31Z) - Guess & Sketch: Language Model Guided Transpilation [59.02147255276078]
学習されたトランスパイレーションは、手作業による書き直しやエンジニアリングの取り組みに代わるものだ。
確率的ニューラルネットワークモデル(LM)は、入力毎に可塑性出力を生成するが、正確性を保証するコストがかかる。
Guess & Sketch は LM の特徴からアライメントと信頼性情報を抽出し、意味的等価性を解決するためにシンボリック・ソルバに渡す。
論文 参考訳(メタデータ) (2023-09-25T15:42:18Z) - The potential of LLMs for coding with low-resource and domain-specific
programming languages [0.0]
本研究は,オープンソースソフトウェアGreetlのハンスル(Hansl)という,econometricスクリプティング言語に焦点を当てたものである。
この結果から, LLMはグレタブルコードの記述, 理解, 改善, 文書化に有用なツールであることが示唆された。
論文 参考訳(メタデータ) (2023-07-24T17:17:13Z) - Exploring Continual Learning for Code Generation Models [80.78036093054855]
継続的学習(CL)は、コードドメインの中でまだ過小評価されていない重要な側面である。
コード生成,翻訳,要約,改良など,幅広いタスクをカバーするCodeTask-CLというベンチマークを導入する。
即時選択機構の不安定な訓練により,プロンプトプール (PP) などの有効手法が破滅的な忘れ込みに悩まされることが判明した。
論文 参考訳(メタデータ) (2023-07-05T16:58:39Z) - LLMSecEval: A Dataset of Natural Language Prompts for Security
Evaluations [4.276841620787673]
Codexのような大規模言語モデル(LLM)は、コード補完とコード生成タスクを実行する強力なツールである。
これらのモデルは、パブリックGitHubリポジトリから言語やプログラミングプラクティスを学ぶことによって、自然言語(NL)記述からコードスニペットを生成することができる。
LLMはNL駆動によるソフトウェアアプリケーションのデプロイを約束するが、それらが生成するコードのセキュリティは広く調査されておらず、文書化されていない。
論文 参考訳(メタデータ) (2023-03-16T15:13:58Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。