Skip to main content

Webサイトのセキュリティスコアを解説

著者
Licenting blog feature

2020年5月12日

0 分で読めます

SnykはWebPageTestとのインテグレーションを開始しました。WebPageTestが提供する速度テストやパフォーマンス指標に加えて、Webサイトのセキュリティチェックに関するセキュリティ情報を確認できます。

WebPageTestでスキャンを実行すると、セキュリティスコアが表示されます。このスコアは何を測定し、どのように算出されるのでしょうか?

WebPageTestとは?

WebPageTestは、実際のブラウザーを使って世界各地から無料でWebサイトの速度をテストするサービスです。開発者がWebサイトを最適化するのに役立つパフォーマンス指標を提供します。

セキュリティスコアを取得してWebサイトのセキュリティをテストするには、WebPageTestにアクセスしてWebサイトのアドレスを入力し、[Start Test]ボタンをクリックします。スキャンが完了すると、セキュリティスコアが表示されます。

セキュリティスコアについて説明するために、https://www.foxnews.comをスキャンしました。下の画像のとおり、このWebサイトの評価はEで、修正すべき問題が多くあることがわかります。

WebPageTestの結果ページ。セキュリティスコアはEと評価され、マゼンタ色の円と矢印で強調表示されている
セキュリティスコアをクリックすると、ウェブサイトのセキュリティに関する詳しい情報を確認できます

具体的にどのような問題があり、なぜこのWebサイトはEと評価されたのでしょうか?

スコアをクリックすると、Snykの結果ページで問題の詳細を確認できます。

Webサイトのセキュリティスキャン結果。スコアはEで、脆弱なJavaScriptライブラリと不足しているHTTPセキュリティヘッダーが表示されています。
このウェブサイトのセキュリティスコアにおける、脆弱なJavaScriptライブラリと不足しているHTTPセキュリティヘッダー

ご覧のとおり、スコアは次の2つの主要な指標に基づいています。

  1. ページ上で検出された、潜在的なセキュリティリスクとなる脆弱なバージョンのJavaScriptライブラリ。

  2. セキュリティヘッダー。Webサイトに設定されているHTTPセキュリティヘッダーと、設定されていないものの有効化が推奨されるヘッダーを確認します。

Webサイトのセキュリティチェック

Webサイトが安全でないとは、どういう意味ですか?

スコアの計算方法を説明する前に、ページ上で測定する指標について詳しく見ていきましょう。

HTTPセキュリティヘッダー

上のSnykページの詳細な結果を見ると、HTTPセキュリティヘッダーstrict-transport-securityが1つ使用されていることがわかります。詳しくはMDNの開発者向けページをご覧ください。一方、テストしたWebサイトには次のセキュリティヘッダーがありません。

  • X-Content-Type-Options

  • X-Frame-Options

  • Content-Security-Policy

  • X-XSS-Protection

脆弱なJavaScriptライブラリ

テスト結果ページの2つ目のセクションには、Webサイト上で検出されたJavaScriptライブラリのうち、セキュリティ脆弱性のあるバージョンが一覧表示されます。検出された脆弱性には、jQueryのプロトタイプ汚染やLodashのプロトタイプ汚染などがあります。

Webサイトのセキュリティスキャンはどのように採点される?

最高評価はA+、最低評価はFです。評価は次のスコアに基づいて決まります。

  • スコアが95以上:A+

  • スコアが75以上:A

  • スコアが60以上:B

  • スコアが50以上:C

  • スコアが29以上:D

  • スコアが14以上:E

  • スコアが0以上:F

スコアは、Scott Helmがhttps://securityheaders.com向けに作成した計算式に基づいて算出されます。この計算式は公開されており、検出されたJavaScriptの脆弱性に応じてスコアを下げる要素が含まれています。

セキュリティヘッダーのスコアは次のとおりです。

  • Content-Security-Policy:25ポイント加算

  •  X-Frame-Options:20ポイント加算

  • X-XSS-Protection:20ポイント加算

  • X-Content-type-options:20ポイント加算

  • Strict-transport-security:25ポイント加算(テスト対象のWebサイトがHTTPSの場合のみ)

ページ上でJavaScriptの脆弱性が検出されると、次のように総合スコアが下がります。

  • 脆弱なライブラリが1つ以上見つかった場合:

  • 深刻度「高」の脆弱性があると、スコアは70に下がります

  • それ以外の場合:

  • 深刻度「中」の脆弱性が1つあるごとに、スコアが25ポイント下がります

  • 深刻度「低」の脆弱性が1つあるごとに、スコアが20ポイント下がります

Snykアカウントをお持ちでない場合は、無料で登録して、Webアプリケーションの構築に使用するnpmパッケージなどのオープンソース依存関係をSnykでスキャンし、セキュリティ脆弱性がないことを確認しましょう。Snykは依存関係を継続的に監視し、アラートを送信するほか、問題を修正するプルリクエストを自動で作成します。

Capture the Flagを始めよう

オンデマンドのバーチャル入門ワークショップを見て、Capture the Flagの課題の解き方を学びましょう。

続きを読む

blog feature ai lilac
Blog

エージェント型修正で脆弱性バックログをプルリクエストに変える

Evo Remediation Agentがオープンプレビューで利用可能になり、Evo Agentic AppSecに依存関係の自動解決機能が加わりました。AppSecチームは継続的な修正キャンペーンを実施できるようになりました

AI Background min crop
Blog

AIが、あなたが受け入れてきたあらゆるリスクを一気に顕在化させる:AI Security Panel: Unfilteredから得た7つの洞察

AIによって攻撃はより安価かつ高速になり、組織がすでに抱えているリスクが露呈しています。4人のセキュリティリーダーが、機械の速度に対応する防御と迅速な修復が今不可欠である理由を語ります。

blog feature ai violet
Blog

VulnBump:AIエージェントはビルドを壊さずに脆弱な依存関係を修正できるか?

VulnBumpでは、実際の依存関係のアップグレード307件をAIエージェントで検証します。脆弱性が解消され、ビルドとテストが正常に通った場合にのみ、修正成功と判定します。