論文の概要: TYPEPULSE: Detecting Type Confusion Bugs in Rust Programs
- arxiv url: http://arxiv.org/abs/2502.03271v1
- Date: Wed, 05 Feb 2025 15:27:08 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-02-06 14:26:13.065379
- Title: TYPEPULSE: Detecting Type Confusion Bugs in Rust Programs
- Title(参考訳): TypePULSE: Rustプログラムにおける型コンフュージョンバグの検出
- Authors: Hung-Mao Chen, Xu He, Shu Wang, Xiaokuan Zhang, Kun Sun,
- Abstract要約: Rustは型変換をサポートし、安全なRustはこれらの変換のセキュリティを保証する。
これらの変換は、メモリ破損の深刻な問題を引き起こす可能性がある。
C/C++の型混乱バグに関する広範な研究にもかかわらず、Rustの型混乱バグの研究はまだ不足している。
- 参考スコア(独自算出の注目度): 17.491119986027925
- License:
- Abstract: Rust supports type conversions and safe Rust guarantees the security of these conversions through robust static type checking and strict ownership guidelines. However, there are instances where programmers need to use unsafe Rust for certain type conversions, especially those involving pointers. Consequently, these conversions may cause severe memory corruption problems. Despite extensive research on type confusion bugs in C/C++, studies on type confusion bugs in Rust are still lacking. Also, due to Rust's new features in the type system, existing solutions in C/C++ cannot be directly applied to Rust. In this paper, we develop a static analysis tool called TYPEPULSE to detect three main categories of type confusion bugs in Rust including misalignment, inconsistent layout, and mismatched scope. TYPEPULSE first performs a type conversion analysis to collect and determine trait bounds for type pairs. Moreover, it performs a pointer alias analysis to resolve the alias relationship of pointers. Following the integration of information into the property graph, it constructs type patterns and detects each type of bug in various conversion scenarios. We run TYPEPULSE on the top 3,000 Rust packages and uncover 71 new type confusion bugs, exceeding the total number of type confusion bugs reported in RUSTSEC over the past five years. We have received 32 confirmations from developers, along with one CVE ID and six RUSTSEC IDs.
- Abstract(参考訳): Rustは型変換をサポートし、ロバストな静的型チェックと厳格なオーナシップガイドラインを通じて、これらの変換のセキュリティを保証する。
しかしながら、特定の型変換にアンセーフなRustを使用する必要があるインスタンス、特にポインタを含むインスタンスがある。
その結果、これらの変換は深刻なメモリ破損を引き起こす可能性がある。
C/C++の型混乱バグに関する広範な研究にもかかわらず、Rustの型混乱バグの研究はまだ不足している。
また、型システムにおけるRustの新機能のため、C/C++の既存のソリューションはRustに直接適用することはできない。
本稿では,不整合,不整合レイアウト,不整合スコープを含む,Rustの型混乱バグの3つの主要なカテゴリを検出するために,TypePULSEという静的解析ツールを開発した。
TypePULSEは、まず型変換解析を行い、型ペアの特性境界を収集し、決定する。
さらに、ポインタのエイリアス関係を解決するために、ポインタエイリアス解析を行う。
プロパティグラフへの情報の統合に続いて、さまざまな変換シナリオにおいて、タイプパターンを構築し、各タイプのバグを検出する。
我々は、上位3000のRustパッケージでTypePULSEを実行し、過去5年間でRUSTSECで報告されたタイプ混乱バグの総数を超える71の新しいタイプ混乱バグを発見しました。
開発者から32の確認を受けており、CVE IDが1つ、RUSTSEC IDが6つあります。
関連論文リスト
- ReF Decompile: Relabeling and Function Call Enhanced Decompile [50.86228893636785]
逆コンパイルの目標は、コンパイルされた低レベルコード(アセンブリコードなど)を高レベルプログラミング言語に変換することである。
このタスクは、脆弱性識別、マルウェア分析、レガシーソフトウェアマイグレーションなど、さまざまなリバースエンジニアリングアプリケーションをサポートする。
論文 参考訳(メタデータ) (2025-02-17T12:38:57Z) - RustMC: Extending the GenMC stateless model checker to Rust [0.2799243500184682]
RustMCは、並行するRustプログラムの検証を可能にするステートレスモデルチェッカーである。
本ツールでは,GenMCの拡張に対処する上で重要な課題について述べる。
論文 参考訳(メタデータ) (2025-02-10T09:33:24Z) - C2SaferRust: Transforming C Projects into Safer Rust with NeuroSymbolic Techniques [16.111888466557144]
我々はC2SaferRustを紹介します。
最初にC2Rustを使って、Cコードを非慣用的で安全でないRustに変換する。
安全でないRustコードをスライスに分解し、LLMによってより安全なRustに個別に変換します。
各スライスを処理した後、エンドツーエンドのテストケースを実行して、コードが期待通りに機能していることを確認する。
論文 参考訳(メタデータ) (2025-01-24T05:53:07Z) - SVTRv2: CTC Beats Encoder-Decoder Models in Scene Text Recognition [77.28814034644287]
CTCモデルであるSVTRv2を提案する。
SVTRv2は、テキストの不規則性に対処し、言語コンテキストを利用するための新しいアップグレードを導入した。
我々は,SVTRv2を標準ベンチマークと最近のベンチマークの両方で評価した。
論文 参考訳(メタデータ) (2024-11-24T14:21:35Z) - A Study of Undefined Behavior Across Foreign Function Boundaries in Rust Libraries [2.359557447960552]
Rustは、他の言語との相互運用に頻繁に使用される。
Miriは、これらのモデルに対してアプリケーションを検証できる唯一の動的解析ツールである。
Miriは、外部機能のバグ発見をサポートしておらず、Rustエコシステムに重大な正当性ギャップがあることを示唆している。
論文 参考訳(メタデータ) (2024-04-17T18:12:05Z) - FoC: Figure out the Cryptographic Functions in Stripped Binaries with LLMs [54.27040631527217]
削除されたバイナリの暗号関数を抽出するFoCと呼ばれる新しいフレームワークを提案する。
まず、自然言語における暗号関数のセマンティクスを要約するために、バイナリ大言語モデル(FoC-BinLLM)を構築した。
次に、FoC-BinLLM上にバイナリコード類似モデル(FoC-Sim)を構築し、変更に敏感な表現を作成し、データベース内の未知の暗号関数の類似実装を検索する。
論文 参考訳(メタデータ) (2024-03-27T09:45:33Z) - Fixing Rust Compilation Errors using LLMs [2.1781086368581932]
Rustプログラミング言語は、C/C++のような従来の安全でない代替言語よりも、低レベルのシステムプログラミング言語に実行可能な選択肢として、自らを確立している。
本稿では,Large Language Models(LLMs)の創発的機能を活用し,Rustコンパイルエラーの修正を自動的に提案するRustAssistantというツールを提案する。
RustAssistantは、人気のあるオープンソースRustリポジトリの実際のコンパイルエラーに対して、約74%の驚くべきピーク精度を達成することができる。
論文 参考訳(メタデータ) (2023-08-09T18:30:27Z) - Is unsafe an Achilles' Heel? A Comprehensive Study of Safety
Requirements in Unsafe Rust Programming [4.981203415693332]
Rustは、効率性とメモリ安全性を重視した、新しく、強く型付けされたプログラミング言語である。
標準ライブラリの現在の安全でないAPIドキュメントには、一貫性や不十分さなど、さまざまなバリエーションがあった。
Rustのセキュリティを強化するために、ユーザに従うべき安全要件の体系的な記述をリストアップするために、安全でないAPIドキュメントを提案する。
論文 参考訳(メタデータ) (2023-08-09T08:16:10Z) - Generative Type Inference for Python [62.01560866916557]
本稿では静的解析から静的ドメイン知識を取り入れた数ショットの生成型推論手法であるTypeGenを紹介する。
TypeGenは、静的解析の型推論ステップを、型依存グラフ(TDG)に基づいたプロンプトに変換することで、COTプロンプトを生成する。
実験の結果、TypeGenは引数型予測では10.0%、Top-1 Exact Matchでは22.5%で最高のベースラインであるType4Pyを上回っている。
論文 参考訳(メタデータ) (2023-07-18T11:40:31Z) - TypeT5: Seq2seq Type Inference using Static Analysis [51.153089609654174]
本稿では,型予測をコード入力タスクとして扱う新しい型推論手法を提案する。
本手法では静的解析を用いて,型シグネチャがモデルによって予測されるコード要素毎に動的コンテキストを構築する。
また,モデルの入力コンテキストに事前の型予測を組み込んだ反復復号方式を提案する。
論文 参考訳(メタデータ) (2023-03-16T23:48:00Z) - VarCLR: Variable Semantic Representation Pre-training via Contrastive
Learning [84.70916463298109]
VarCLRは変数名のセマンティック表現を学ぶための新しいアプローチである。
VarCLRはコントラスト学習に適しており、明示的に類似した入力間の距離を最小化することを目的としている。
VarCLRはBERTのような洗練された汎用言語モデルを効果的に適用できることを示す。
論文 参考訳(メタデータ) (2021-12-05T18:40:32Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。