資格暗記無料で始める

スタックカナリアとは?

スタックカナリアとは、関数のスタックフレーム内で、局所変数と戻りアドレスの間に予測困難な値を置き、関数から戻る直前にその値が変化していないか検査する仕組み。連続的な書き込みで戻りアドレスを上書きしようとすれば必ず途中の値が壊れるため、検知して異常終了できる。

すたっくかなりあ

情報処理安全確保支援士試験の頻出用語/午前II


スタックカナリアの意味

関数のスタックフレーム内で、局所変数と戻りアドレスの間に予測困難な値を置き、関数から戻る直前にその値が変化していないか検査する仕組み。連続的な書き込みで戻りアドレスを上書きしようとすれば必ず途中の値が壊れるため、検知して異常終了できる。

スタックカナリアの具体例

コンパイル時のオプションで有効化し、文字列操作を含む関数に自動で検査コードが挿入される。検査に失敗するとプロセスを即座に停止させるため、任意コード実行にはならず、サービス停止(可用性の影響)にとどめられる。

スタックカナリアは試験でどう引っ掛けられる?

連続書き込みを前提とする防御なので、添字を指定して特定位置だけを書き換える攻撃や、ヒープ領域の破壊には効かない。また値が漏えいすれば同じ値を書き戻して回避される。フォークで子プロセスを作るサーバでは値が継承され、1バイトずつ推測されうる。

スタックカナリアと関連する用語

最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。