スタックカナリアとは?すたっくかなりあ
スタックカナリアとは、関数の戻り番地の手前に見張り用の値を置き、関数から戻る直前に値が変化していないかを検査する仕組み。スタックバッファオーバフローによる戻り番地の書換えを検出し、攻撃の成立を防ぐ手法として問われる。
最終更新:2026-10-06
エンベデッドSPを最短で暗記・合格する →具体例
コンパイラのスタック保護オプションで自動的に挿入され、破壊を検出すると異常処理へ分岐する。組込みではその場で停止させるのではなく、出力を安全側の状態にしてからリセットする設計にすることが多い。
試験での引っ掛け
検出は関数から復帰する時点なので、それ以前に生じる被害は防げない。ローカル変数どうしの上書きやヒープ領域のオーバフローにも効かないため、配列の境界検査そのものの代わりにはならない。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。