バナーチェック【banner grabbing】バナーグラビング
概要

多くのサーバソフトウェアは、外部から接続が確立された直後に製品名やバージョン番号、開発元などを記した短い文字情報を自動送信する。このメッセージを「バナー」(banner)と呼び、HTTPやFTP、SSH、SMTPなど様々なプロトコルで用いられる。ターミナルソフトなどで接続を試みて、このバナー情報を調べることをバナーチェックという。
バナーチェックはTelnetやNetcatなどの対話型接続ツールを使って手作業で行うこともできるが、NmapやNessusのようなセキュリティスキャナで各ポートへの接続を自動化するのが一般的である。取得したバナー情報をCVEやNVDなどの既知の脆弱性データベースと照合すれば、そのバージョンに未修正の欠陥が存在するかどうかを判定できる。
バナーチェック自体は対象システムに不正侵入したりデータを改竄したりするものではないが、攻撃者が本格的な攻撃を試みる前段階の偵察活動として行われる。古いバージョンのソフトウェアが動作していると判明した場合、既知の脆弱性に対応した攻撃手法を選択する材料となるためである。システム管理者が自組織のサーバに対して実施し、想定外のサービスが外部に公開されていないかを確認する監査目的でも用いられる。
防御策としては、バナーに含まれる情報を削除・偽装する設定変更が一般的である。例えば、Apacheであれば「ServerTokens Prod」の設定でバージョン情報の露出を抑制でき、OpenSSHも設定ファイルでバナー内容を変更できる。ただし、ポートの開放状況や通信の応答パターンからソフトウェアを推定する「フィンガープリンティング」(fingerprinting)は、バナーを隠しても防げない。不要なサービスの停止やソフトウェアの最新版への更新といった基本的な対策と組み合わせて運用することが求められる。