論文の概要: Breaking Type Safety in Go: An Empirical Study on the Usage of the
unsafe Package
- arxiv url: http://arxiv.org/abs/2006.09973v4
- Date: Thu, 22 Jul 2021 18:51:48 GMT
- ステータス: 処理完了
- システム内更新日: 2022-11-19 21:38:45.467259
- Title: Breaking Type Safety in Go: An Empirical Study on the Usage of the
unsafe Package
- Title(参考訳): goにおける型安全性の破れ:unsafeパッケージの使用に関する実証的研究
- Authors: Diego Elias Costa, Suhaib Mujahid, Rabe Abdalkareem, Emad Shihab
- Abstract要約: 我々は,2,438のGoプロジェクトにおいて,安全でないパッケージの使用に関する大規模な研究を行った。
我々の調査によると、安全でないプロジェクトはGoプロジェクトの24%で使われており、主にオペレーティングシステムやCコードとの通信によって動機付けられています。
クラッシュするエラーや非決定的な振る舞いから、デプロイを制限するまで、安全でないプロジェクトによって直面する現実的な問題を報告します。
- 参考スコア(独自算出の注目度): 3.548075273599941
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: A decade after its first release, the Go programming language has become a
major programming language in the development landscape. While praised for its
clean syntax and C-like performance, Go also contains a strong static
type-system that prevents arbitrary type casting and arbitrary memory access,
making the language type-safe by design. However, to give developers the
possibility of implementing low-level code, Go ships with a special package
called unsafe that offers developers a way around the type-safety of Go
programs. The package gives greater flexibility to developers but comes at a
higher risk of runtime errors, chances of non-portability, and the loss of
compatibility guarantees for future versions of Go.
In this paper, we present the first large-scale study on the usage of the
unsafe package in 2,438 popular Go projects. Our investigation shows that
unsafe is used in 24% of Go projects, motivated primarily by communicating with
operating systems and C code, but is also commonly used as a source of
performance optimization. Developers are willing to use unsafe to break
language specifications (e.g., string immutability) for better performance and
6% of analyzed projects that use unsafe perform risky pointer conversions that
can lead to program crashes and unexpected behavior. Furthermore, we report a
series of real issues faced by projects that use unsafe, from crashing errors
and non-deterministic behavior to having their deployment restricted from
certain popular environments. Our findings can be used to understand how and
why developers break type-safety in Go, and help motivate further tools and
language development that could make the usage of unsafe in Go even safer.
- Abstract(参考訳): 最初のリリースから10年後、Goプログラミング言語は開発現場で主要なプログラミング言語となった。
クリーンな構文とCライクなパフォーマンスを称賛される一方で、Goには任意の型キャストと任意のメモリアクセスを防止する強力な静的型システムが含まれており、言語は設計上安全である。
しかし、開発者が低レベルのコードを実装できるようにするために、goはunsafeと呼ばれる特別なパッケージを出荷しており、開発者はgoプログラムの型安全性を回避できる。
このパッケージは開発者により大きな柔軟性を提供するが、ランタイムエラー、非移植性の可能性、将来のバージョンのgoの互換性保証の喪失のリスクが高い。
本稿では,2,438の人気のあるgoプロジェクトにおいて,unsafeパッケージの使用に関する最初の大規模研究を行う。
調査の結果、unsafeはgoプロジェクトの24%で使用されており、主にオペレーティングシステムとcコードとの通信を動機としているが、パフォーマンス最適化のソースとしても一般的に使用されている。
開発者は、安全でない言語仕様(例えば文字列不変性)をより良いパフォーマンスに破り、分析されたプロジェクトの6%は、プログラムのクラッシュや予期せぬ振る舞いを引き起こす危険なポインタ変換を実行している。
さらに、クラッシュするエラーや非決定的な振る舞いから、デプロイが特定の一般的な環境から制限されるまでの、安全でないプロジェクトによって直面する現実的な問題を報告する。
私たちの発見は、開発者がGoで型安全性を損なう理由と理由を理解し、Goで安全でない使用をさらに安全にするためのツールや言語開発を動機付けるのに役立ちます。
関連論文リスト
- Exploring Safety Generalization Challenges of Large Language Models via Code [126.80573601180411]
本稿では,自然言語入力をコード入力に変換するフレームワークであるCodeAttackを紹介する。
調査によると、CodeAttackは全モデルの80%以上の安全ガードレールを一貫してバイパスしている。
CodeAttackと自然言語の間の大きな分散ギャップは、安全性の一般化を弱める。
論文 参考訳(メタデータ) (2024-03-12T17:55:38Z) - On Prompt-Driven Safeguarding for Large Language Models [178.612893285033]
モデル表現空間において、有害で有害なクエリは、大きく区別できるが、これは安全プロンプトによって顕著に強化されない。
そこで本研究では,DRO(Directed Representation Optimization)と呼ばれる自動安全プロンプト最適化手法を提案する。
論文 参考訳(メタデータ) (2024-01-31T17:28:24Z) - GWP-ASan: Sampling-Based Detection of Memory-Safety Bugs in Production [30.534320345970286]
Heap-use-after-freeとheap-buffer-overflowのバグは、CやC++で記述されたアプリケーションのセキュリティ、信頼性、開発者の生産性の主要な問題である。
本稿では,この2種類のメモリセーフなバグを実運用環境でほぼゼロのオーバーヘッドで検出するツール群について述べる。
論文 参考訳(メタデータ) (2023-11-15T21:41:53Z) - All Languages Matter: On the Multilingual Safety of Large Language
Models [101.31394141244294]
我々は、大規模言語モデル(LLM)のための最初の多言語安全ベンチマークを構築した。
XSafetyは、複数の言語ファミリーにまたがる10言語にわたる14種類の一般的な安全問題をカバーしている。
本稿では,ChatGPTの多言語安全性向上のための簡易かつ効果的なプロンプト手法を提案する。
論文 参考訳(メタデータ) (2023-10-02T05:23:34Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - UNGOML: Automated Classification of unsafe Usages in Go [2.5338347389265294]
安全でないパッケージは、いくつかの目的のために現実世界のコードで頻繁に使用される。
本稿では,UNGOMLにおいて,安全でない使用のための最初の自動分類器を提案する。
UNGOMLは、グラフやセキュリティ監査のようなユースケースで、安全でない使用を効率的にフィルタするために使用することができる。
論文 参考訳(メタデータ) (2023-06-01T14:02:46Z) - CodeLMSec Benchmark: Systematically Evaluating and Finding Security
Vulnerabilities in Black-Box Code Language Models [58.27254444280376]
自動コード生成のための大規模言語モデル(LLM)は、いくつかのプログラミングタスクにおいてブレークスルーを達成した。
これらのモデルのトレーニングデータは、通常、インターネット(例えばオープンソースのリポジトリから)から収集され、障害やセキュリティ上の脆弱性を含む可能性がある。
この不衛生なトレーニングデータは、言語モデルにこれらの脆弱性を学習させ、コード生成手順中にそれを伝播させる可能性がある。
論文 参考訳(メタデータ) (2023-02-08T11:54:07Z) - Unsafe's Betrayal: Abusing Unsafe Rust in Binary Reverse Engineering
toward Finding Memory-safety Bugs via Machine Learning [20.68333298047064]
Rustは、プログラミングにおけるメモリセーフなバグを避けるために、メモリセーフなメカニズムを提供する。
Rustのユーザビリティを高めるアンセーフコードは、メモリセーフなバグを見つけるための明確な場所を提供する。
これらの安全でないスポットは、マシンラーニングを介してRustバイナリコードで識別可能である、と私たちは主張しています。
論文 参考訳(メタデータ) (2022-10-31T19:32:18Z) - SafeText: A Benchmark for Exploring Physical Safety in Language Models [62.810902375154136]
テキスト生成およびコモンセンス推論タスク用に設計された各種モデルのコモンセンス物理安全性について検討する。
最先端の大規模言語モデルは、安全でないテキストの生成に影響を受けやすく、安全でないアドバイスを拒否するのが困難であることがわかった。
論文 参考訳(メタデータ) (2022-10-18T17:59:31Z) - CryptSan: Leveraging ARM Pointer Authentication for Memory Safety in
C/C++ [0.9208007322096532]
CryptSanは、ARM Pointer Authenticationに基づくメモリ安全性アプローチである。
M1 MacBook Proで動作するLLVMベースのプロトタイプ実装について紹介する。
これにより、構造化されていないライブラリとの相互運用性とメタデータに対する攻撃に対する暗号化保護が組み合わさって、CryptSanはC/C++プログラムにメモリ安全性を適合させる実行可能なソリューションとなる。
論文 参考訳(メタデータ) (2022-02-17T14:04:01Z) - Predicting Vulnerability In Large Codebases With Deep Code
Representation [6.357681017646283]
ソフトウェアエンジニアは様々なモジュールのコードを書きます。
過去に(異なるモジュールで)修正された同様の問題やバグも、本番コードで再び導入される傾向にある。
ソースコードから生成した抽象構文木(AST)の深部表現とアクティブフィードバックループを用いた,AIに基づく新しいシステムを開発した。
論文 参考訳(メタデータ) (2020-04-24T13:18:35Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。