【要約】バージョン情報の露出を防ぐサーバー設定まとめ ── nginx/Apache/PHP/WordPress対応 [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
Webサイトの運用者は、意図せずソフトウェアのバージョン情報を外部へ公開してしまうリスクを抱えている。攻撃者はこの情報を手がかりに、既知の脆弱性を突く攻撃を仕掛けてくる。具体的には以下の経路から情報が漏洩する。
- ・HTTPレスポンスヘッダ(Server, X-Powered-By)からの露出。
- ・HTML内のmetaタグ(generator)による情報の表示。
- ・readme.htmlなどの同梱ファイルによる詳細情報の提供。
// Approach
著者は、攻撃者の調査コストを上げるため、多層防御の一環として各ソフトウェアの設定変更を提案している。各レイヤーに対して以下の具体的な対策を講じる。
- ・nginx:
server_tokens off;による番号非表示、またはngx_http_headers_moreによるヘッダ削除。 - ・Apache:
ServerTokens ProdおよびServerSignature Offの適用。 - ・PHP:
expose_php = Offによるヘッダの非表示化。 - ・WordPress:
functions.phpを用いたメタタグやクエリ文字列の削除、および特定ファイルへのアクセス拒否。
// Result
適切な設定を適用することで、攻撃者による自動スキャンや標的化のリスクを低減できる。設定後の効果は以下の通りである。
- ・Serverヘッダから詳細なバージョン番号が消失する。
- ・HTMLソースからWordPressのバージョン情報が隠蔽される。
- ・攻撃者に対して「調査に手間がかかるサイト」という印象を与えられる。
Senior Engineer Insight
> 本手法は脆弱性修正ではなく、偵察を阻むための多層防御である。本質的な対策はパッチ適用だ。WordPressの
?ver=削除は、ブラウザキャッシュの更新目印を消すため、運用設計に注意が必要となる。大規模環境では、これらの設定をIaC(Infrastructure as Code)に組み込み、標準化すべきである。