論文の概要: C-to-Rust Fallacy: Automatic Refactoring != Memory Security
- arxiv url: http://arxiv.org/abs/2609.25682v1
- Date: Tue, 22 Sep 2026 04:36:46 GMT
- ステータス: 翻訳完了
- システム内更新日: 2026-09-23 18:04:04.225025
- Title: C-to-Rust Fallacy: Automatic Refactoring != Memory Security
- Title(参考訳): C-to-Rustの誤り:自動リファクタリング!=メモリセキュリティ
- Abstract要約: Rustは、主要なシステムプログラミング言語として登場した。
パフォーマンスを損なうことなく、強力なメモリと型安全性を提供する。
C言語をRustに手動で変換するには、Rust言語機能に関する詳細なドメイン知識が必要だ。
- 参考スコア(独自算出の注目度): 20.66855647699412
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Rust has emerged as the leading system programming language, offering strong memory and type safety guarantees without compromising performance. This positions it as a compelling alternative to traditional languages like C and C++, which are susceptible to memory security bugs. However, manually transforming C to Rust requires in-depth domain knowledge of the Rust language features, which requires significant effort for developers. To address this, tools for automatic C-to-Rust refactoring aim to generate safe Rust code leveraging static analysis and Large Language Models (LLMs). While these tools claim to achieve safety by reducing the unsafe Rust, the correlation with improving security is not clear. In this paper, we conduct a comprehensive empirical study on the reliability, safety, and correctness of various C-to-Rust refactoring methods. Specifically, we evaluate C2Rust-analyze, CROWN, C2SaferRust, and FLOURINE using a dataset of 116 C programs with memory security bugs from the NIST Juliet Test Suite. Based on 464 Rust programs generated by these tools, our evaluation focuses on three key aspects: the compilation correctness of the refactored programs, the effectiveness in mitigating original C bugs, and the tendency to introduce additional Rust bugs. The results indicate that 342 Rust programs fail to compile, 177 Rust programs inherit memory security bugs from the original C programs, and 77 new Rust bugs are introduced. We examine the rationale behind tool design and analyze the root cause of errors across various refactoring methods. Our findings indicate that current automated refactoring tools deliver memory safety as they define it, but not the broader memory security when adopting them.
- Abstract(参考訳): Rustが主要なシステムプログラミング言語として登場し、パフォーマンスを損なうことなく、強力なメモリと型安全性の保証を提供する。
これにより、メモリセキュリティのバグを受けやすいCやC++といった従来の言語に代わる魅力的な代替品として位置づけられる。
しかし、手動でCからRustに変換するには、Rust言語機能に関する詳細なドメイン知識が必要だ。
これを解決するために、自動C-to-Rustリファクタリングツールは、静的解析とLLM(Large Language Models)を利用した安全なRustコードを生成することを目的としている。
これらのツールは安全でないRustを減らすことで安全性を実現すると主張しているが、セキュリティ改善との相関は明確ではない。
本稿では,様々なC-Rustリファクタリング手法の信頼性,安全性,正確性に関する総合的研究を行う。
具体的には、NIST Juliet Test Suiteのメモリセキュリティバグを含む116個のCプログラムのデータセットを用いて、C2Rust-analyze、CROWN、C2SaferRust、FLOURINEを評価した。
これらのツールによって生成された464のRustプログラムに基づいて、我々の評価は、リファクタリングされたプログラムのコンパイルの正確性、オリジナルのCバグを緩和する効果、追加のRustバグを導入する傾向の3つの重要な側面に焦点を当てている。
結果は、342のRustプログラムがコンパイルに失敗し、177のRustプログラムが元のCプログラムからメモリセキュリティバグを継承し、77の新しいRustバグが導入されていることを示している。
ツール設計の背景にある理論的根拠を考察し,様々なリファクタリング手法でエラーの根本原因を解析する。
我々の知見は、現在の自動リファクタリングツールはメモリの安全性を定義できるが、それを採用する際の広範なメモリセキュリティは提供していないことを示唆している。
関連論文リスト
- SecPI: Secure Code Generation with Reasoning Models via Security Reasoning Internalization [50.71047638695205]
RLM(Reasoning Language Model)は、プログラミングにおいてますます使われている言語モデルである。
しかし、最先端のRLMでさえ、生成されたコードに重大なセキュリティ脆弱性を頻繁に導入する。
我々は、構造化されたセキュリティ推論を内部化するためのRTMを教える微調整パイプラインであるSecPIを提案する。
論文 参考訳(メタデータ) (2026-04-04T04:29:11Z) - RealSec-bench: A Benchmark for Evaluating Secure Code Generation in Real-World Repositories [58.32028251925354]
LLM(Large Language Models)は、コード生成において顕著な能力を示しているが、セキュアなコードを生成する能力は依然として重要で、未調査の領域である。
我々はRealSec-benchを紹介します。RealSec-benchは、現実世界の高リスクなJavaリポジトリから慎重に構築されたセキュアなコード生成のための新しいベンチマークです。
論文 参考訳(メタデータ) (2026-01-30T08:29:01Z) - RustAssure: Differential Symbolic Testing for LLM-Transpiled C-to-Rust Code [2.1413732583497826]
Rustは、ソフトウェアのセキュリティを大幅に改善するメモリセーフなプログラミング言語である。
Cのような安全でないメモリ言語で書かれた既存のものは、Rustの改善された安全性保証を活用するために、まずRustにコンパイルされなければならない。
RustAssureは、Large Language Models(LLM)を使用して既存のCをRustに自動的にトランスパイルするシステムを提供する。
論文 参考訳(メタデータ) (2025-10-08T22:52:34Z) - CRUST-Bench: A Comprehensive Benchmark for C-to-safe-Rust Transpilation [51.18863297461463]
CRUST-Benchは100のCリポジトリのデータセットで、それぞれが安全なRustとテストケースで手書きのインターフェースとペアリングされている。
我々は、このタスクで最先端の大規模言語モデル(LLM)を評価し、安全で慣用的なRust生成が依然として難しい問題であることを確認した。
最高のパフォーマンスモデルであるOpenAI o1は、ワンショット設定で15タスクしか解決できない。
論文 参考訳(メタデータ) (2025-04-21T17:33:33Z) - ReF Decompile: Relabeling and Function Call Enhanced Decompile [50.86228893636785]
逆コンパイルの目標は、コンパイルされた低レベルコード(アセンブリコードなど)を高レベルプログラミング言語に変換することである。
このタスクは、脆弱性識別、マルウェア分析、レガシーソフトウェアマイグレーションなど、さまざまなリバースエンジニアリングアプリケーションをサポートする。
論文 参考訳(メタデータ) (2025-02-17T12:38:57Z) - C2SaferRust: Transforming C Projects into Safer Rust with NeuroSymbolic Techniques [16.111888466557144]
我々はC2SaferRustを紹介します。
最初にC2Rustを使って、Cコードを非慣用的で安全でないRustに変換する。
安全でないRustコードをスライスに分解し、LLMによってより安全なRustに個別に変換します。
各スライスを処理した後、エンドツーエンドのテストケースを実行して、コードが期待通りに機能していることを確認する。
論文 参考訳(メタデータ) (2025-01-24T05:53:07Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。