令和7年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問17
組込みシステムにおける、ソフトウェアのメモリ安全性(Memory Safety)を考慮した事例として、適切なものはどれか。
キーボード:1〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:ウ
-
ア: 宇宙線によって引き起こされるメモリのエラーを回避するために、ソフトウェアの処理を多重化してエラーを検出することによって、安全な動作を行う。
誤り。これはメモリ安全性ではなく、主にハードウェアレベルの信頼性向上(フォールトトレランス)に関する対策です。 -
イ: エラー検出及び訂正が可能なメモリを使用することによって、エラーの発生と訂正をソフトウェアから隠蔽して、ソフトウェアの動作の健全性を確保する。
誤り。これはECCメモリの説明であり、ハードウェア側でのエラー検出・訂正による信頼性向上であって、メモリ安全性(Memory Safety)とは異なります。 -
ウ: バッファオーバーフロー、メモリリークなどの潜在的なセキュリティ上の問題を回避するために、メモリの保護機能を備えたプログラム言語を使用する。
正しい。不要な領域アクセス、バッファオーバーフロー、メモリリークなどの問題を防止するために、安全なメモリ管理機能を持つ言語(Rust、Javaなど)を利用することは、メモリ安全性を確保する典型的な手法です。 -
エ: ヒープ及びスタックメモリの必要量を静的解析ツールで算出し、十分な空きメモリ領域を確保することによって、メモリ不足が発生しないようにする。
誤り。これはメモリ不足防止のための容量確保の話であり、メモリ安全性の観点(不正アクセス防止など)とは異なります。
答え
ウ: バッファオーバーフロー、メモリリークなどの潜在的なセキュリティ上の問題を回避するために、メモリの保護機能を備えたプログラム言語を使用する。
出典:令和7年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問17