エンベデッドシステムスペシャリスト暗記無料で始める

メモリ安全性とは?めもりあんぜんせい

メモリ安全性とは、確保していない領域への読み書きや解放済み領域の参照といった不正なメモリ操作が起こらないことを、言語や処理系の側が保証する性質。C/C++はこの保証を持たないため、バッファオーバフローや解放後使用がそのまま脆弱性になる。Rustは所有権と借用の規則でこれをコンパイル時に担保する。

最終更新:2026-10-06

試験情報

エンベデッドシステムスペシャリスト試験の過去問では1回出題されています。

エンベデッドシステムスペシャリスト試験の頻出用語/午前II

別名:memory safety

この語が出る過去問を解く →

背景

組込みで長くCが使われてきたのは、メモリ配置を自分で決められること自体が要求だったからで、その自由と引き換えに範囲の検査を捨てている。ところが機器がネットワークにつながると、外から与えられた長さを信じて配列へ書き込む処理が、そのまま任意コード実行の入口になる。攻撃面が広がったことで、書き手の注意深さに頼るのではなく言語や処理系の側で保証させる方向へ関心が移り、公的機関がメモリ安全な言語への移行を勧告する状況になった。

具体例

Linuxカーネルは2022年からドライバをRustで書く仕組みを取り込み、Androidも新規コードのRust化を進めている。境界検査や参照の有効期間をコンパイル時に検証する方式は、実行時のチェックを増やさずに済むため、資源に余裕の無いマイコンでも採りやすい。

試験での引っ掛け

MISRA-Cへ準拠してもこの性質は得られない(規約は危険な書き方を減らす手続きであって、処理系による保証ではない)。ガベージコレクションがあれば解放後使用は防げるが、配列の範囲外アクセスは境界検査の有無で決まる別の論点。型安全性とも同義ではなく、型が合っていても範囲外へ書けば破れる。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では1回出題
  • 分野:午前II
  • MISRA-Cへ準拠してもこの性質は得られない(規約は危険な書き方を減らす手続きであって、処理系による保証ではない)。