資格暗記無料で始める

書式文字列攻撃とは?

書式文字列攻撃とは、書式指定を伴う出力関数へ、外部から受け取った文字列をそのまま書式指定子として渡してしまう欠陥を突く攻撃。書式指定子を含む入力を与えることでスタック上の値を読み出したり、書き込み用の指定子を使って任意アドレスへ値を書き込んだりできる。

しょしきもじれつこうげき

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


書式文字列攻撃の意味

書式指定を伴う出力関数へ、外部から受け取った文字列をそのまま書式指定子として渡してしまう欠陥を突く攻撃。書式指定子を含む入力を与えることでスタック上の値を読み出したり、書き込み用の指定子を使って任意アドレスへ値を書き込んだりできる。

書式文字列攻撃の具体例

ログ出力処理が利用者名をそのまま書式引数に渡していると、%xを並べた名前でメモリ内容が読み出され、ASLRを無効化するためのアドレス漏えいに使われる。対策は、書式は必ずコード内の定数とし、外部データは引数側で渡すこと。

書式文字列攻撃は試験でどう引っ掛けられる?

「文字列を表示するだけ」に見えて、読み出しだけでなく書き込みまで可能な点が過小評価されやすい。また警告として検出しやすいため、コンパイラの書式検査を有効にして警告をエラー扱いにするだけで大半が防げるのに、警告が放置されがち。

書式文字列攻撃と関連する用語

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