OWASP Top 10 Webアプリケーション セキュリティ脆弱性

Open Webアプリケーション Security Project (OWASP) は、Webアプリケーションのセキュリティ向上を使命とする非営利団体です。 OWASPは、脆弱性リスト、セキュリティのベストプラクティス、Webアプリケーションテストを実践するための意図的に脆弱なシステムなど、さまざまなセキュリティリソースへの無料アクセスを開発者に提供することで、この使命を追求しています。 OWASPは、 アプリケーションセキュリティ テストツールの開発もサポートし、世界中で複数の年次会議を主催しています。

ホワイトペーパーをダウンロード(英語) デモをリクエストする

OWASP Top 10とは?

OWASPは、Webアプリケーション、API、モバイルデバイスなど、さまざまなシステムに存在する最も一般的な脆弱性を説明する多くのリソースを開発しました。 その中でも最も有名なのはOWASP Top Tenで、本番環境のWebアプリケーションに見られる最も一般的で影響の大きい10の脆弱性を説明しています。 このリストは、セキュリティテストデータと業界内の専門家の調査の組み合わせに基づいて、数年ごとに更新されます。

OWASP Top 10リストの最新バージョンは、2021年にリリースされました。 このリソースでは、最も一般的な脆弱性、各種類の例、それらを防ぐための最善策、および脆弱性が悪用される方法の説明を提供します。 さらに、各脆弱性には、脆弱性の特定のインスタンスを説明する関連する脆弱性の共通脆弱性列挙(CWE)仕様への参照が含まれています。 たとえば、ハードコードされたパスワード (CWE-259) の使用は、OWASP Top Ten List 内の識別および認証の失敗の脆弱性に該当します。

方法論

OWASP Top 10 リストは、ユーザー提供データの分析と業界内の専門家の調査の組み合わせに基づいています。 OWASPチームは、コミュニティから提出されたデータに基づいて、リストの上位8つの脆弱性を決定し、今日の本番コードで最も一般的な脆弱性を可視化します。 組織は、テストで確認されたCWEと、CWEのインスタンスを少なくとも1つ含むテストされたアプリケーションの数を提出するよう求められました。 その結果、400 の CWE が影響と悪用可能性に基づいて分析され、上位 10 のカテゴリのうち 8 つが分類されました。

しかし、2021年のリストの更新に伴い、OWASPチームはリストの下位2つの枠をコミュニティ調査からの入力用に予約しました。 その目的は、脆弱性のデータが不足していたり、テストができなかったりすることで、テスト中に発見された脆弱性のみに依存するプロセスによって脆弱性が過小評価される可能性がある、脆弱性の最近の傾向や新たな傾向を反映することでした。

OWASP の主な脆弱性

最新バージョンの OWASP Top Ten には、以前のバージョンからいくつかの変更が加えられています。 2021 年のリストには、次の脆弱性が含まれています。

  1. アクセス制御の不備
  2. 暗号化の失敗
  3. 注射
  4. 安全でない設計
  5. セキュリティの設定ミス
  6. 脆弱で古いコンポーネント
  7. 識別と認証の失敗
  8. ソフトウェアとデータの整合性の障害
  9. セキュリティ ログと監視の失敗
  10. サーバーサイドリクエストフォージェリ

これらのうち、4つの脆弱性(4、8、および10)はまったく新しい脆弱性であり、4つはランキング以外は変更されておらず、残りは以前のバージョンのリストからカテゴリを統合または名前変更しています。

#1.アクセス制御の不備

アクセス制御システムは、正当なユーザーのみがデータまたは機能にアクセスできるようにすることを目的としています。 アクセス制御の不備カテゴリの脆弱性には、攻撃者がアクセス制御をバイパスできる問題や、最小特権の原則を実装できない問題が含まれます。 たとえば、Web アプリケーションでは、指定された URL を変更することで、ユーザーが別のユーザーのアカウントにアクセスできるようにすることができます。

#2.暗号化の失敗

暗号化アルゴリズムは、データのプライバシーとセキュリティを保護するために非常に貴重です。ただし、これらのアルゴリズムは、実装エラーや構成エラーの影響を非常に受けやすい場合があります。 暗号化の失敗には、暗号化をまったく使用できない、暗号化アルゴリズムの構成ミス、安全でないキー管理などがあります。 たとえば、組織では、パスワードの保存に安全でないハッシュ アルゴリズムを使用したり、パスワードのソルト処理に失敗したり、保存されているすべてのユーザー パスワードに同じソルトを使用したりする可能性があります。

#3.注射

インジェクションの脆弱性は、ユーザー入力を処理する前に適切にサニタイズしないことで可能になります。 これは、データとコマンドが混在している SQL などの言語では特に問題になり、悪意のある形式のユーザー提供データがコマンドの一部として解釈される可能性があります。 例えば、SQL では、通常、単一引用符 (') または二重引用符 (") を使用して照会内のユーザー・データを表すため、これらの文字を含むユーザー入力によって、処理中のコマンドが変更される可能性があります。

#4.安全でない設計

脆弱性は、開発プロセス中にいくつかの異なる方法でソフトウェアに導入される可能性があります。 OWASP Top 10 リストにある脆弱性の多くは実装エラーを扱っていますが、この脆弱性はシステムのセキュリティを損なう設計上の欠陥を示しています。 たとえば、機密データを保存および処理するアプリケーションの設計に認証システムが含まれていない場合、設計どおりにソフトウェアを完全に実装しても安全ではなく、この機密データを適切に保護できません。

#5.セキュリティの設定ミス

アプリケーションのセキュリティは、その設計と実装に加えて、その構成方法によっても決まります。 ソフトウェアの製造元にはアプリケーションの既定の構成があり、ユーザーはさまざまな設定を有効または無効にすることもでき、システムのセキュリティを向上または損なう可能性があります。 セキュリティの構成ミスの例としては、不要なアプリケーションやポートを有効にする、既定のアカウントとパスワードをアクティブにして変更しないままにする、ユーザーに公開する情報が多すぎるようにエラー メッセージを構成するなどが挙げられます。

#6脆弱で時代遅れのコンポーネント

サプライチェーンの脆弱性は、特に脅威アクターが一般的に使用されるライブラリやサードパーティの依存関係に悪意のあるコードや脆弱なコードを挿入しようとするため、近年、大きな懸念事項として浮上しています。 組織がアプリケーション内で使用されている外部コード(ネストされた依存関係を含む)を可視化できず、依存関係のスキャンに失敗した場合、悪用に対して脆弱になる可能性があります。 また、これらの依存関係にセキュリティ更新プログラムを迅速に適用しないと、悪用可能な脆弱性が攻撃にさらされる可能性があります。 たとえば、アプリケーションは、既知の悪用可能な脆弱性を含む可能性のある独自の依存関係を持つサードパーティのライブラリをインポートする場合があります。

#7.識別と認証の失敗

多くのアプリケーションやシステムでは、ユーザーがアプリケーションに対して自分の ID を証明したり、TLS 暗号化接続を設定するときに ID を検証するデジタル証明書をユーザーに提供するサーバーなど、何らかの形式の識別と認証が必要です。 識別と認証の失敗は、アプリケーションが脆弱な認証プロセスに依存している場合、または認証情報を適切に検証できない場合に発生します。 たとえば、 多要素認証 (MFA) がないアプリケーションは、攻撃者が脆弱な資格情報、一般的な資格情報、既定の資格情報、または侵害された資格情報の一覧からユーザー名とパスワードの組み合わせを自動的に試行する資格情報スタッフィング攻撃に対して脆弱である可能性があります。

#8.ソフトウェアとデータの整合性の障害

OWASP Top 10リストのソフトウェアとデータの整合性の失敗の脆弱性は、SolarWindsのハッキングを可能にしたものと同様の、組織のDevOpsパイプラインとソフトウェア更新プロセスのセキュリティの弱点に対処します。 この脆弱性クラスには、信頼できないソースやリポジトリからのサードパーティコードへの依存、 CI/CDパイプラインへのアクセスの保護の失敗、自動的に適用された更新プログラムの整合性の適切な検証の失敗が含まれます。 たとえば、攻撃者が信頼されたモジュールまたは依存関係を変更されたバージョンまたは悪意のあるバージョンに置き換えることができる場合、その依存関係でビルドされたアプリケーションは悪意のあるコードを実行したり、悪用に対して脆弱になったりする可能性があります。

#9.セキュリティ ログと監視の失敗

Security Logging and Monitoring Failures は、調査の回答から派生した最初の脆弱性であり、前回のリストの 10 位から順位を上げました。 多くのセキュリティインシデントは、アプリケーションが重大なセキュリティイベントのログ記録に失敗したり、これらのログファイルが適切に監視および処理されなかったりすることで、有効になったり悪化したりします。 たとえば、アプリケーションがログ ファイルを生成しなかったり、重要な情報が不足しているセキュリティ ログを生成したり、これらのログ ファイルがコンピューター上でローカルにしか使用できず、インシデントが検出された後の調査にのみ役立つ場合があります。 これらの障害はすべて、潜在的なセキュリティインシデントを迅速に検出し、リアルタイムで対応する組織の能力を低下させます。

#10. サーバーサイドリクエストフォージェリ

サーバーサイドリクエストフォージェリ(SSRF)は、一般的なカテゴリではなく、非常に具体的な脆弱性または攻撃を説明するため、OWASP Top 10リストにリストされている脆弱性の中では珍しいものです。 SSRFの脆弱性は比較的まれです。ただし、攻撃者によって特定され、悪用された場合は、大きな影響があります。 Capital Oneのハッキングは、SSRFの脆弱性を悪用した最近の大きな影響の大きいセキュリティインシデントの一例です。

SSRFの脆弱性は、Webアプリケーションが、ユーザーから提供されたURLを、そのURLにあるリモートリソースを取得するときに適切に検証しない場合に発生する可能性があります。 この場合、この脆弱性を悪用した攻撃者は、脆弱なWebアプリケーションを使用して、攻撃者が細工したリクエストを指定されたURLに送信する可能性があります。 これにより、攻撃者はファイアウォールなどのアクセス制御をバイパスでき、攻撃者からターゲットURLへの直接接続をブロックしますが、脆弱なWebアプリケーションへのアクセスを提供するように構成されています。

CloudGuard AppSecによる包括的なAppSec

組織のWebアプリケーションは、デジタルアタックサーフェスの中で最も目立ち、悪用されやすい部分の一部です。 ただし、これらのアプリケーションには、多くの場合、これらの脆弱性とそれらを回避するためのセキュリティのベストプラクティスに対する認識が不足しているため、悪用可能な脆弱性も含まれています。 OWASP Top 10 リストは、この問題に対処し、これらの脆弱性に注意を喚起し、開発者が脆弱性を特定、回避、修正するのに役立つリソースを提供することで、Webアプリケーションのセキュリティリスクを軽減することを目的とした OWASP Foundation の取り組みです。

OWASP Top 10 リストに記載されている脆弱性のスキャン、修復、保護は、Webアプリケーション DevSecOps の出発点として適しています。 これらの脆弱性は、Webアプリケーションにおける最も一般的で影響の大きい脆弱性の一部であり、その可視性により、サイバー脅威アクターの一般的な標的となっています。

アプリケーションのクラウドへの移行が進む中、OWASP Top 10やその他の主要なアプリケーションセキュリティリスクからアプリケーションを保護するためには、クラウドワークロード保護が不可欠です。 クラウドベースのアプリケーションに対するセキュリティ上の脅威の詳細については、 こちらの eBook をご覧ください

チェック・ポイント CloudGuard AppSec は、OWASP Top Tenおよびその他の一般的なWebアプリケーションの脆弱性に対する包括的な保護を提供します。 CloudGuard AppSecがクラウドアプリケーションを保護する方法については、 こちらのホワイトペーパーをご覧ください。 次に、 無料のデモにサインアップして、その機能を自分の目で確かめてください。

×
  フィードバック
このWebサイトは、機能性と分析およびマーケティングの目的でCookieを使用しています。Webサイトを引き続きご利用いただくことで、Cookieの使用に同意したことになります。詳細については、Cookieに関する通知をお読みください。
OK