組込みシステムにおけるメモリ安全性(Memory Safety)の確保

メモリ安全性(Memory Safety)とは、バッファオーバーラン、Use-After-Free、二重解放、未初期化メモリ参照などのメモリ破壊脆弱性を言語処理系やランタイムが防ぐ性質を指します。Rustなどのメモリ安全な言語を採用することが代表例です。 ハードウェアの放射線耐性・ソフトエラー対策(フォールトトレランス)の事例です。 ECC(Error Correction Code)メモリ等のハードウェア的な信頼性向上機構の説明です。 リソース枯渇(OOM)を防ぐための静的リソース設計であり、メモリ破壊に対するメモリ安全性の定義とは異なります。

組込みシステムにおける、ソフトウェアのメモリ安全性(Memory Safety)を考慮した事例として、適切なものはどれか。

出典令和7年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問17
ア
宇宙線によって引き起こされるメモリのエラーを回避するために、ソフトウェアの処理を多重化してエラーを検出することによって、安全な動作を行う。
イ
エラー検出及び訂正が可能なメモリを使用することによって、エラーの発生と訂正をソフトウェアから隠蔽して、ソフトウェアの動作の健全性を確保する。
ウ
バッファオーバーフロー、メモリリークなどの潜在的なセキュリティ上の問題を回避するために、メモリの保護機能を備えたプログラム言語を使用する。
エ
ヒープ及びスタックメモリの必要量を静的解析ツールで算出し、十分な空きメモリ領域を確保することによって、メモリ不足が発生しないようにする。