KOTORI 先行登録
← ガイド一覧に戻る サーバー情報露出のイメージ

セキュリティ

サーバー情報の露出とは?バージョン番号を隠すべき理由と対策

使用中のソフトウェアのバージョン情報が外部に漏れていないかの確認です。

サーバー情報露出とは何か

サーバー情報の露出とは、Webサーバーやアプリケーションが返すレスポンスの中に、使用しているソフトウェアの種類やバージョンといった内部情報が含まれてしまっている状態を指します。サーバーソフトウェアやCMSは自身の識別情報をレスポンスに自動で含める設定になっていることが多く、意図的に隠さない限り外部から閲覧可能な形で漏れ出します。攻撃者にとってこうした情報は、標的のシステム構成を把握するための手がかりになります。

どうして大事なのか

使用中のソフトウェアとその具体的なバージョンが公開されていると、攻撃者はそのバージョンに存在する既知の脆弱性を調べたうえで狙い撃ちの攻撃を仕掛けやすくなります。総当たりで手当たり次第に攻撃するより、脆弱性が判明しているバージョンのサイトを検索して狙うほうが効率的だからです。WordPressやPHP、nginxなど何を使っているか自体はサイトの作り自体からある程度推測できてしまうため、完全に隠すのは難しいという事情もあります。

ここで引っかかると…

具体的なバージョン番号まで公開されている場合、攻撃者は事前調査の手間をかけずにそのまま既知の脆弱性情報と照合でき、標的として優先的に狙われやすくなります。逆にServerヘッダーにバージョン番号を含む数字がなく、X-Powered-Byヘッダーも存在しない状態であれば、攻撃者にとって事前調査の手間が増えるため、標的として後回しにされやすくなります。generatorタグについても、可能であればバージョン番号を含まない表記にしておくとより安心です。

直す方法

Nginxなら Server Tokens設定を`server_tokens off;`にすることでバージョン番号を除去できます(Apacheの場合は`ServerTokens Prod`と`ServerSignature Off`)。PHPを使っている場合はphp.iniで`expose_php = Off`に設定するとX-Powered-Byヘッダーが送信されなくなります。WordPressなどCMSのgeneratorタグは、functions.phpに`remove_action('wp_head', 'wp_generator');`を追加する、またはセキュリティ系プラグインの設定で出力を無効化することで対応できます。

Kotoriではどうやって計測しているか

レスポンスに含まれるServerヘッダーとX-Powered-Byヘッダー、およびHTML内のmeta name="generator"タグの内容を確認します。Serverヘッダーの値に数字が含まれている場合(例: nginx/1.18.0のようにバージョン番号付きの場合)はバージョン情報の露出とみなし、X-Powered-Byヘッダーが存在する場合(例: PHP/7.4.3)もそのまま検出対象とします。HTML内のgeneratorタグも同様に取得し(例: WordPress 5.8のような表記)、Serverヘッダーに数字を含まず、かつX-Powered-Byヘッダーが存在しない場合にのみ「clean(情報漏えいなし)」と判定します。

セキュリティの他の項目

この項目、Kotoriが毎日自動でチェックします

URLを1つ登録するだけで、この記事の点検項目を含む15項目を日次で実施し、月次レターとしてクライアントへ自動送信します。

Kotoriを見る