IPA過去問ドリル

令和7年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問17

テクノロジ/セキュリティ

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

出典:令和7年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問17

正解:ウ

解説

ソフトウェアのメモリ安全性(Memory Safety)とは,バッファオーバーフローや解放済みメモリへのアクセス,メモリリークといった,メモリの誤った扱いに起因する脆弱性やバグが発生しないようにすることです。C/C++ のようにポインタ操作の自由度が高い言語では危険性が高いため,メモリの境界チェックや所有権管理などの保護機能を備えたプログラム言語(Rust など)を採用することが,メモリ安全性を高める代表的な対策です。

選択肢ごとの解説

  • 誤り。宇宙線による一過性のメモリエラー(ソフトエラー)への対策は,信頼性向上の施策であり,バッファオーバーフローなどメモリ安全性が問題にする脆弱性への対策ではありません。
  • 誤り。ECC メモリによるエラー訂正は,ハードウェア上のビット化けなどの物理的な誤りに対する信頼性対策であり,ソフトウェアの実装に起因するメモリ安全性の問題への対策ではありません。
  • 正しい。バッファオーバーフローやメモリリークなどの潜在的なセキュリティ上の問題を防ぐために,メモリの境界チェックなどの保護機能を備えたプログラム言語を使用することは,メモリ安全性を考慮した代表的な事例です。
  • 誤り。ヒープやスタックの必要量を静的解析で見積もり,メモリ不足を防ぐことはリソース管理の対策であり,バッファオーバーフローなどのメモリ安全性の問題そのものへの対策ではありません。
エンベデッドシステムスペシャリストの過去問を演習モードで解く