コンテンツにスキップ

アプリケーションセキュリティのリスクとは? (What are Application Security Risks?)

攻撃者は、アプリケーション内のさまざまな経路を悪用し、ビジネスや組織に損害を与える恐れがあります。これらの経路の一つひとつが潜在的なリスクであり、慎重な調査が必要です。

Calculation diagram

脅威主体
(Threat Agents)
攻撃ベクトル
(Attack Vectors)
悪用可能性
(Exploitability)
セキュリティ制御の
欠如による可能性
(Likelihood of Missing Security Controls)
技術面への影響
(Technical Impacts)
ビジネス面への影響
(Business Impacts)
環境や状況把握に基づく動的な変化 アプリケーションの露出状況(環境別) 平均加重悪用スコア 平均出現率に基づく制御の欠如
(テスト網羅率で加重)
平均加重影響スコア ビジネス固有の影響

OWASPのリスク格付けでは、悪用可能性、弱点に対するセキュリティ制御の欠如による平均的な可能性、および技術面への影響という普遍的なパラメータを考慮しています。

ただし、組織、脅威主体の目的、侵害時の影響はそれぞれ異なります。たとえば、同じコンテンツ管理システム (CMS) を使用していても、公益法人が「公開情報」を扱う場合と、医療機関が「機微な健康情報」を扱う場合では、脅威主体やビジネス面への影響は大きく異なります。アプリケーションの露出状況、状況把握 (Situation Picture) に基づく適切な脅威主体(ビジネスや所在地に応じた標的型攻撃と無差別攻撃の両方を考慮)、および個別のビジネス面への影響を考慮し、自組織におけるリスクを理解することが不可欠です。

カテゴリの選定と順位付けへのデータ活用方法

OWASP Top 10 のカテゴリ選定手法は、時代とともに進化してきました。2017年版では出現率 (Incidence Rate) を中心に可能性を評価し、悪用可能性 (Exploitability)、検出可能性 (Detectability、これも可能性の一部)、技術面への影響について、数十年の経験に基づくチーム内での議論により順位を決定していました。2021年版からは、脆弱性データベース (NVD: National Vulnerability Database) の CVSSv2 および CVSSv3 スコアを活用して悪用可能性と技術面への影響を評価する手法へ移行し、2025年版でもこの手法を継承しています。

評価にあたっては、OWASP Dependency Check をダウンロードし、関連する CWE (共通弱点一覧) ごとにグループ化された CVE (共通脆弱性識別子) の CVSS 悪用スコアと影響スコアを抽出しました。これには相当の調査と労力を要しました。すべての CVE には CVSSv2 スコアがありますが、CVSSv2 には欠陥があり、CVSSv3 で対処されるべきものです。ある時点以降、すべての CVE には CVSSv3 スコアも割り当てられています。また、CVSSv2 と CVSSv3 の間でスコアリング範囲と計算式が更新されました。

CVSSv2 では、悪用スコアと技術面への影響スコアの両方が最大 10.0 になる可能性がありましたが、計算式により悪用スコアは 60%、影響スコアは 40% に低減されていました。CVSSv3 では、理論上の最大値は悪用スコアが 6.0、影響スコアが 4.0 に制限されました。重み付けを考慮すると、2021年版 Top 10 の分析時点で、影響スコアは CVSSv3 で平均約 1.5 ポイント高くなり、悪用可能性は平均約 0.5 ポイント低くなりました。

OWASP Dependency Check から抽出した National Vulnerability Database (NVD) には、CWE にマッピングされた約 17 万 5 千件(2021年の 12 万 5 千件から増加)の CVE レコードがあります。また、CVE にマッピングされたユニークな CWE は 643 件(2021年の 241 件から増加)あります。抽出された約 22 万件の CVE のうち、16 万件が CVSS v2 スコア、15 万 6 千件が CVSS v3 スコア、6 千件が CVSS v4 スコアを持っています。多くの CVE が複数のスコアを持つため、合計は 22 万件を超えます。

Top 10 2025 では、以下の方法で平均悪用スコアと影響スコアを計算しました。CVSS スコアを持つすべての CVE を CWE ごとにグループ化し、CVSSv3 を持つ母集団の割合と、残りの CVSSv2 を持つ母集団で悪用スコアと影響スコアの両方を重み付けして、全体の平均を算出しました。これらの平均をデータセット内の CWE にマッピングし、リスク方程式のもう半分として悪用スコアと技術面への影響スコアとして使用しました。

CVSS v4.0 を使用しないのはなぜかと思われるかもしれません。これは、スコアリングアルゴリズムが根本的に変更され、CVSSv2 や CVSSv3 のように「悪用」や「影響」スコアを簡単に提供できなくなったためです。Top 10 の将来のバージョンで CVSS v4.0 スコアを使用する方法を検討する予定ですが、2025年版では適時に対応する方法を見つけることができませんでした。

出現率の算出にあたっては、ある組織が一定期間にテストしたアプリケーション母集団から、各 CWE に対して脆弱なアプリケーションの割合を計算しました。念のため確認しますが、私たちは頻度(問題がアプリケーション内で何回発生したか)は使用しておらず、アプリケーション母集団のうち何パーセントに各 CWE が見つかったかに着目しています。

網羅率については、特定の CWE に対してすべての組織がテストしたアプリケーションの割合を確認しています。算出された網羅率が高いほど、サンプルサイズが母集団をより代表しているため、出現率が正確であるという確証が強くなります。

今回使用した計算式は 2021年版と類似していますが、一部の重み付けに変更があります。 (最大出現率% * 1000) + (最大網羅率% * 100) + (平均悪用スコア * 10) + (平均影響スコア * 20) + (出現総数 / 10000) = リスクスコア

この式で算出されたスコアは、「アクセス制御の不備」の 621.60 から、「メモリ管理エラー」の 271.08 まで多岐にわたります。

これは完璧なシステムではありませんが、リスクカテゴリの順位付けには有用です。

今後増大する課題の一つは、「アプリケーション」の定義です。業界がマイクロサービスや従来のアプリケーションより小さい実装で構成されるさまざまなアーキテクチャへ移行するにつれ、計算がより困難になっています。たとえば、組織がコードリポジトリをテストしている場合、何をアプリケーションとみなすのでしょうか? CVSSv4 の成長と同様に、次回の Top 10 では、常に変化する業界に対応するため、分析とスコアリングの調整が必要になるかもしれません。

データ要素 (Data Factors)

各カテゴリに記載されているデータ要素の意味は以下の通りです。

CWEs Mapped (紐付けられたCWE数): 各カテゴリに割り当てられた CWE の総数。

Incidence Rate (出現率): 調査対象のアプリケーション群のうち、その CWE が一つ以上見つかったアプリケーションの割合。

Weighted Exploit (加重悪用スコア): CWE に紐づく CVE の CVSS 悪用可能性サブスコアを正規化し、10段階で評価したもの。

Weighted Impact (加重影響スコア): CWE に紐づく CVE の CVSS 影響サブスコアを正規化し、10段階で評価したもの。

(Testing) Coverage (テスト網羅率): すべての組織において、その CWE を対象としたテストが行われたアプリケーションの割合。

Total Occurrences (出現総数): そのカテゴリに属する CWE が見つかったアプリケーションの延べ数。

Total CVEs (CVE総数): NVD データベース上で、そのカテゴリ内の CWE に紐付けられている CVE の総数。

Formula (計算式): (最大出現率% * 1000) + (最大網羅率% * 100) + (平均悪用スコア * 10) + (平均影響スコア * 20) + (出現総数 / 10000) = リスクスコア