自分でウェブサイトを運営している人にとっては、ウイルス侵入の原因となりうるCMSの脆弱性など、ウェブサイトのセキュリティは気がかりなものです。「Probely」を使うと、自分のウェブサイトの脆弱性やセキュリティの問題をスキャンし、修正の方針まで指示してくれます。

Web Vulnerability Scanner | Web Application Security Testing - Probely

https://probely.com/web-vulnerability-scanner/



Probelyには「Free」「Starter」「Pro」「Premium」の4つのプランがあります。無料版でどこまで使えるか確かめたいので、ひとまず「Free」を選択することに。



氏名やメールアドレスなどを入力して「SUBMIT」をクリック。



入力したメールアドレスにパスワードの設定を求めるメールが届きます。「Set Password」をクリックし、設定を行います。



パスワードを入力して「SET NEW PASSWORD」をクリック。



メールアドレスとパスワードを入力して「SIGN IN」をクリックします。



スキャンする対象のウェブサイトを設定する画面が表示されました。「Free」プランで利用できるのは「FREE TARGET」のみ。選択したら「CONTINUE」をクリック。



ウェブサイトの名前とURLを入力し「CONTINUE」をクリックします。



カスタムヘッダーやカスタムCookie、BASIC認証といった、スキャンに関する設定を行う画面に移動します。今回はそのままの設定で「CONTINUE」をクリックします。



設定の確認画面が表示されるので、確認できたら「CONFIRM」をクリック。



スキャン画面に移動します。さっそくスキャンを行うため「SCAN NOW」をクリックすると……



スキャンが始まりました。



スキャン対象として用意したテスト用ウェブサイトが軽量だったためか、スキャンは一瞬で終了。「VIEW」をクリックして詳細を確認してみます。



問題が項目ごとに表示されました。



重大な脆弱性はありませんでしたが、青色で表される「LOW」レベルのセキュリティに関する問題や脆弱性が8つ見つかったとのこと。



試しに「Browser content sniffing allowed」の項目をクリックしてみます。



問題についての詳細が表示されました。「Browser content sniffing allowed」はウェブサイトを閲覧したブラウザがHTMLヘッダの「Content-Type」だけでなくコンテンツの内容も参照してContent-Typeを推測することを許している、という説明があり、クロスサイトスクリプティング攻撃につながるとのこと。



画面を下にスクロールすると、修正方法が記載されていました。ウェブサーバーにApacheを利用している場合はバーチャルホストの設定に赤枠部分の記述を追記すればよいとのこと。



「EVIDENCE」タブを見てみると、問題があると判断した根拠も示してくれました。HTMLヘッダに「X-Content-Type-Options」という項目がなかったことが問題ありと判断した根拠だと示されています。



「REQUEST」タブでは、項目のスキャンに使用したHTTPリクエストを表示できます。



「RESPONSE」タブを確認すると、HTTPリクエストに対するレスポンスを見ることができます。



さっそくウェブサーバー側で問題を修正したので、再度スキャンを行ってみることに。問題の項目画面で「CHOOSE」をクリックします。



項目ごとのスキャンの再実行を行う「Re-test」、結果が誤りだと報告する「Invalid」、リスクを受け入れる「Accept risk」、Probelyをチームで運用している場合は対処するメンバーを選ぶ「Assign」を行うことができます。今回は「Re-test」を実行。



「Browser content sniffing allowed」が「NOT FIXED」から「FIXED」になり、問題がきちんと修正できていることが確認できました。



左側の「DASHBOARD」をクリックすると、スキャンした結果をグラフなどにまとめて表示してくれます。



また、日時を指定してスキャン実行を予約することも可能。左の「SCAN」をクリックしてスキャン画面に移動し「SCHEDULE SCAN」をクリックします。



開始日時と頻度を設定したら「SAVE」をクリック。



スキャン実行が予約されました。



実は今回のスキャンに利用したウェブサイトにはマルウェアを仕込んであったのですが、Probelyの「Free」プランではマルウェアを検出することはできませんでした。「Free」プランでは簡単な「Lightning scans」しか行えませんが、「Pro」プランでは詳細な「Full Scans」が可能とのことなので、より詳細なスキャンを実行できる「Pro」プランを使ってみることに。

「Pro」プランには14日間の試用期間が設けられているので、最初は無料で使用できます。プランを変更するためにアカウント画面へ移動します。



「START TRIAL」をクリック。



先ほど設定したウェブサイトをそのまま使用するので、赤枠部分をクリックします。



今回は「Pro」プランなので、詳細なスキャンができる「SINGLE ENVIRONMENT」設定が利用可能。選択したら「CONTINUE」をクリックします。



この後の設定は「Free」プランの時と基本的には変わりありませんが、スキャンの詳細設定でBASIC認証以外の認証も設定できるようになりました。



AJAX用のホストを設定することも可能に。



また、「Pro」プランではより詳細なスキャンを実行するためか、ウェブサイトの所有者であることを確認する画面が表示されました。特定のファイル名と内容のファイルをウェブサーバーの指示された場所に置く方法と、DNSレコードを使って認証する方法があります。



今回はファイルを配置する方法を採用。赤枠部分にファイル名やファイルの内容、ファイルを配置するウェブサーバーのパスが表示されるので、指示通りウェブサーバーにファイルを配置して「VERIFY」をクリック。



無事ウェブサイトが認証されました。「CONTINUE」をクリックして先へ進みます。



「CONFIRM」をクリック。



ホーム画面が表示されました。「Free」プランの時と画面の操作感に変化はありません。



しかし、「SCAN NOW」を実行してスキャンを開始すると、「Free」プランの時よりも明らかにスキャンに時間がかかっており、より多くの項目をスキャンしていることがわかりました。



15分ほど待つとスキャンが完了。



「Free」プランのスキャンでは青色の「LOW」レベルの問題が8件検出されましたが、「Pro」プランでは「LOW」レベルの問題が18件になったことに加え、黄色の「MEDIUM」レベルの問題が1件検出されました。やはり検出できる問題の数は「Pro」プランの方が多いことがわかりました。



他にも「Pro」プランではPDFでスキャン結果のレポートを表示が可能。スキャン結果の詳細画面で「Download PDF」をクリックすると……



PDFでレポートが表示されました。



「Pro」プランでは設定画面でスキャンしたいウェブサイトのパスをホワイトリストやブラックリストで管理する機能や、スキャン設定のプロファイルによる管理もできます。



ただ、「Free」プランで検出できなかったマルウェアは「Pro」プランでも検出できず。そもそもウェブサイトの脆弱性をスキャンするサービスなので、自身のウェブサイトにマルウェアが仕込まれているかを確認する用途には適していないことがわかりました。

なお、Probelyの料金設定は「Free」が無料、「Starter」が月額49ユーロ(約5770円)、「Pro」が89ユーロ(約1万円)、「Premium」が399ユーロ(約4万7000円)となっており、それぞれのプランの違いなどは下記から確認することができます。

Pricing - Probely

https://probely.com/pricing/