令和7年度 秋期 午前Ⅱ 問17
セキュリティ実装技術
メモリ安全性に関する問題
組込みシステムにおける,ソフトウェアのメモリ安全性(Memory Safety)を考慮した事例として,適切なものはどれか。
- ア宇宙線によって引き起こされるメモリのエラーを回避するために,ソフトウェアの処理を多重化してエラーを検出することによって,安全な動作を行う。
- イエラー検出及び訂正が可能なメモリを使用することによって,エラーの発生と訂正をソフトウェアから隠蔽して,ソフトウェアの動作の健全性を確保する。
- ウバッファオーバーフロー,メモリリークなどの潜在的なセキュリティ上の問題を回避するために,メモリの保護機能を備えたプログラム言語を使用する。
- エヒープ及びスタックメモリの必要量を静的解析ツールで算出し,十分な空きメモリ領域を確保することによって,メモリ不足が発生しないようにする。
答えと解説を見る
✓ これが正解ウバッファオーバーフロー,メモリリークなどの潜在的なセキュリティ上の問題を回避するために,メモリの保護機能を備えたプログラム言語を使用する。
解説
メモリ保護機能を備えたプログラム言語の使用がメモリ安全性の事例です。
メモリ安全性は、プログラムが確保した範囲の外を読み書きしたり、解放済みの領域を使ったりする誤りを起こさない性質を指します。こうした誤りはバッファオーバーフローなどの脆弱性につながります。メモリの保護機能を備えたプログラム言語を使えば、範囲外のアクセスなどを言語の仕組みで防げるので、ソフトウェア自身のメモリ安全性を高める事例として当てはまります。見分ける軸は、ソフトウェアのメモリの使い方の誤りを防ぐ対策か、ハードウェアの故障や容量不足への対策かです。プログラムの書き方に起因する問題を言語で防ぐ、と押さえると選べます。
ほかの選択肢はなぜ違うのか
- ア宇宙線によって引き起こされるメモリのエラ…:宇宙線によるメモリのエラーは、ハードウェアに起きる一時的な誤りです。処理を多重化して検出する対策は、こうした誤りに対する信頼性を高める工夫であり、プログラムのメモリの使い方の誤りを防ぐものではありません。
- イエラー検出及び訂正が可能なメモリを使用す…:エラー検出及び訂正が可能なメモリは、ハードウェアで生じたビットの誤りを直す仕組みです。プログラムが範囲外を書き換えるような誤りは防げないので、ソフトウェアのメモリ安全性を考慮した事例ではありません。
- エヒープ及びスタックメモリの必要量を静的解…:ヒープとスタックの必要量を静的解析で求めて空き領域を確保するのは、メモリ不足を防ぐための資源の見積りです。確保した範囲の外へアクセスするような誤りを防ぐ対策ではなく、焦点が異なります。
この問題の用語
- バッファオーバーフロー用意したメモリ領域を超えて書き込ませ、異常終了や不正な実行を招く攻撃です。入力欄にスクリプトを送り込む攻撃とは別のものです。
- プログラム言語プログラムを書くための文法や記号の体系のこと。目的に合わせて多くの種類があり、Java、C、Pythonなどがよく使われます。
出典:令和7年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問17
同じ用語が出る問題
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)