ハッカー御用達のツール「Wappalyzer」とは。サイトのバージョンの非表示設定も解説。

どーも、マクドナルドは「マック」じゃなくて「マクド」、セブンイレブンは「セブン」じゃなくて「セブイレ」派のヨシダです。

今日は、Webアプリケーションのセキュリティ診断をやっている人ならみんな使用しているであろうツールを紹介します。その名も「Wappalyzer」。読み方は「ワパライザー」と読んでる人が多いみたいです。(僕は「アパライザー」と読んでました←)

このツールはサイトがどんなサーバー,CMS,言語などを使っているかがひと目でわかるツールで、Chromeの拡張機能Firefoxのアドオンで提供されています。何がすごいかと言うと、そのサイトが使用しているCMSや言語などの種類だけでなく、バージョンもわかるというところです。ハッカーはこの種類やバージョンをパッと見ただけで、「あー、このサイトはサーバーはこれを使ってて、CMSの古いバージョンを使ってるから、たしかこんな攻撃が行えるなー」などと攻撃手法を絞ってきます。例えばこちらはとあるサイトをWappalyzerで見たものになりますが、WebサーバーのApacheと使用言語のPHPのバージョンが露呈しちゃっており、しかもかなり古いバージョンを使っているのがわかります。

こちらのバージョンには、脆弱性が含まれていると発表されていますし、ハッカーにセキュリティが甘いと判断されて攻撃されやすくなります。だから、セキュリティ的に外部からはできるだけバージョンは表示させないようにするのが良いとされています。バージョンだけでなく、種類まで表示させないのが理想です。バージョンの非表示設定はあとで解説します。
実際に自分のサイトをお持ちの方はWappalyzerをダウンロードして、バージョンが露呈しちゃっていないかチェックしてみてはいかがでしょうか。もちろん無料でダウンロードできます。

ダウンロードは以下のページになります。

Chromeを使用の方
https://chrome.google.com/webstore/detail/wappalyzer/gppongmhjkpfnbhagpmjfkannfbllamg?hl=ja

Firefoxを使用の方
https://addons.mozilla.org/ja/firefox/addon/wappalyzer/

どちらも「追加する」を押せば、ブラウザの右上に追加されます。
2017年12月9日現在、Wappalyzerの最新バージョンは5.2.1となっております。

■Wappalyzerの解説

Wappalyzerは、Webサイトで使用されている技術を明らかにするブラウザ拡張機能です。コンテンツ管理システム、eコマースプラットフォーム、Webサーバー、JavaScriptフレームワーク、分析ツールなどを検出します。検出するアプリケーションの一覧は以下のページを参照してください。
https://www.wappalyzer.com/applications
例)CMSの一覧

Google Chrome、Mozilla Firefoxでご利用いただけます。
デフォルトでは、研究目的で匿名データが収集されることに注意してください。設定でオプトアウトすることができます。詳しくは以下のプライバシーポリシーページを参照してください。
https://www.wappalyzer.com/privacy

■Wappalyzerの使い方

使い方を解説するほどのことではないですが、右上のWappalyzerを押すだけです。はい。



ほとんど使われていないマイナーなものや、リリースされたばかりの新しいものでない限り、全て検出してくれます。

■バージョンの非表示設定の方法(Word PressとPHP)

Wappalyzerがどんな仕様でバージョン情報を取得しているかは今回解説しませんが、多くの人が利用しているWordPressとPHPについては、簡単にバージョンを外部から見えないように設定できるので解説したいと思います。Apacheもバージョンを簡単に非表示設定できますが、今回は省略させていただきます。その他、使用している技術でバージョンや種類を非表示にしたい、セキュリティを強化したい方はお気軽にレオンテクノロジーまでお問い合わせください。

1.Word Pressのバージョン非表示設定

WordPress本体のバージョンはHTMLのソースコードを見ると、headタグ内に「meta name=”generator” content=”WordPress 4.9.1″」と露呈されています。また、headタグ以外にもjsやcssによって「script type=’text/javascript’ src=’https://~/wp-includes/js/~.js?ver=4.9.1’」のように「?ver=4.9.1」と露呈されてしまっています。プラグインもこの「?ver=~」という形でバージョンが露呈してしまっているので、これら全てを外部から見えないように設定したいと思います。
まず、自分のWordPressサイトのダッシュボードページから「外観」の「テーマの編集」をクリック。

「functions.php」から以下のコードを追記して「ファイルを更新」。

  1. remove_action(‘wp_head’,’wp_generator’);
  2. function remove_cssjs_ver2( $src ) {
  3. if ( strpos( $src, ‘ver=’ ) )
  4. $src = remove_query_arg( ‘ver’, $src );
  5. return $src;
  6. }
  7. add_filter( ‘style_loader_src’, ‘remove_cssjs_ver2’, 9999 );
  8. add_filter( ‘script_loader_src’, ‘remove_cssjs_ver2’, 9999 );


これで完了です。

2.PHPのバージョン非表示設定

PHPのバージョンはレスポンスヘッダーに「X-Powered-By:PHP/5.4.45」のような形で露呈しています。これを見えないようにするには、サーバー上のphp.iniファイルを修正します。
まずサーバーにSSH接続して、php.iniファイルの場所を「find / -name php.ini」コマンドで探します。
僕と同じAWSのWordPress Certified by Bitnamiを使用している人は「/opt/bitnami/php/etc/php.ini」にあるみたいです。

etcファイル以下にある人が多いと思います。
次に、先ほどファイルの場所を指定してphp.iniを「vi /opt/bitnami/php/etc/php.ini」コマンドで編集していきます。
変更するのは「expose_php = On」を「expose_php = Off」にします。

保存(esc+:wq)したら「service httpd restart」コマンドでApacheを再起動してください。
あと念には念をということで、先ほどのfunctions.phpに以下のコードを追記して「ファイルを更新」しておきましょう。

  1. header_remove(‘X-Powered-By’);


これで完了です。

3.確認

実際にサイトをWappalyzerでWordPressとPHPのバージョンが露呈されていないか確認してみてください。ちゃんと設定できていれば表示されていないはずです。僕のサイトではちゃんと露呈されないようになりました。

■最後に

バージョンの非表示設定後の確認作業の時、僕は何度更新してもバージョンが表示されました。たぶんcssとかのキャッシュが残っていて消えなかったのでしょう。確認作業をする時はしっかりキャッシュを消してから行ってみてください。あと、Apacheのバージョン非表示の解説をしなかったのは、僕のサイトのようにデフォルトで見えないように設定されていることが多いからです。httpd.confファイルをいじれば設定できるみたいですよ。詳しくはこちら

ありがとうございました。

レオンテクノロジーは現在、一緒に働く仲間を募集しております!
興味がある方はこちらから!

セキュリティに関するご相談はこちらから!

こんな記事も読まれています