OWASP TOP10とは?初心者向けにOWASP TOP10 2021の最新情報を解説

オンラインでの活動が以前にも増して活発になり、Web上で利用できるサービスが増えていますが、同時にWebサイトやWebアプリケーションを狙ったサイバー攻撃も増加しています。Webアプリケーションに関する脆弱性やサイバー攻撃など、セキュリティに関する重大なリスクを定期的に発表しているものが「OWASP TOP10」と呼ばれるレポートです。本記事では、Webアプリケーション開発者やセキュリティ担当者なら知っておきたいOWASP TOP10の概要や最新情報及び、有効な活用方法について解説します。

OWASP TOP10とは

OWASP TOP 10とはどのようなものなのでしょうか。まず、OWASPおよびOWASP TOP10の概要について解説します。

OWASPとは

OWASP(Open Web Application Security Project)とは、2001年に設立されたアメリカのオープン・コミュニティで、ソフトウェアのセキュリティを向上させるための活動をしています。The OWASP Foundation(オワスプ・ファウンデーション)という非営利団体が主導して運営しており、無報酬のボランティアを中心として、活動資金は企業や団体、個人からの支援により調達しています。主にWebアプリケーションのセキュリティに関する研究や脆弱性診断ツールの開発を行っており、Webアプリケーションのセキュリティ向上を目的として、開発やテストの標準化のためのドキュメントやツールなど、さまざまなものを無償で提供しています。

OWASP TOP10とは

OWASP Top 10は、OWASPが定期的に公開している、Webアプリケーションのセキュリティに関する重大なリスクについてのレポートです。最も重大なセキュリティリスクをランキング形式でトップ10まで順位付け、それぞれの概要やありがちな例、その脆弱性を突く攻撃のシナリオや防ぐ方法について公開しています。2003年より公開されており、現在は2021年に更新されたものが最新版となっています。最新版のOWASP Top10は下記サイトから確認することができます。

OWASP Top Ten:https://owasp.org/www-project-top-ten/

OWASP TOP10の内容

OWASP TOP10の最新版は2021年に発表された「OWASP TOP10:2021」(※1)です。ここでは、OWASP TOP10:2021の内容について、前回2017年に発表されたOWASP TOP10:2017と比較しながら解説します。

※1 参考:OWASP「OWASP Top10 2021の紹介」https://owasp.org/Top10/ja/(2022/1/31確認)

OWASP TOP10:2021概要

OWASP TOP10:2021でランク付けされている重大な10のセキュリティリスクは以下の通りです。

A01:2021-アクセス制御の不備

アクセス制御とは、ユーザーに対して意図した権限の範囲外で動作しないよう予めポリシーを定義することで、許可していないデータの閲覧や変更・破壊・不適切な操作などを防止する仕組みです。94%のアプリケーションで、何らかの形でアクセス制御の不備が確認されています。

アクセス制御の不備に関する脆弱性としては、特権の昇格や、URLのパラメータ改ざんによるアクセス制御のバイパス、アクセス制御が欠落しているAPIへのアクセスなどが該当します。パストラバーサルやクロスサイトリクエストフォージェリなどの脆弱性もこれに含まれます。

A02:2021-暗号化の失敗

暗号化の失敗とは、暗号化技術の不適切な使用、または暗号化の欠如により重要なデータが保護されていない状態となっていることを指します。以前は「機密データの公開」と呼ばれていたものですが、暗号化に関連する障害もしくは欠如に焦点を当てた名称に変更されました。機微なデータが露出することで、情報漏洩など重大なセキュリティ・インシデントを引き起こす可能性があります。

暗号化の失敗に関する脆弱性としては、HTTP・SMTP・FTPなどの平文での通信、古く弱い暗号化アルゴリズムやプロトコルの利用、非推奨の暗号化ハッシュ関数の使用などが挙げられます。

A03:2021-インジェクション

インジェクションとは、Webサイトの入力フォームなどから、不正なコマンドやスクリプトを実行することで、データの不正な閲覧・変更・破壊などを実行されてしまう脆弱性です。代表的なものにクロスサイト・スクリプティング、SQLインジェクションなどがあります。94%のアプリケーションで、何らかのインジェクションに関する問題が確認されています。2017年では独立したカテゴリーとして7位にランクインしていた「クロスサイト・スクリプティング」もこのカテゴリーに吸収されました。

A04:2021-安全が確認されない不安な設計

安全が確認されない不安な設計は、今回新設されたカテゴリーです。アプリケーションのさまざまな弱点を表すカテゴリーで、「安全な設計の欠如、または効果的ではない設計」である場合が該当します。これはコーディングの方法など実装に関する問題ではなく、アーキテクチャや設計上の問題を指すため、具体的な脆弱性の例示が難しいものです。

このリスクを防ぐためには、設計に際しては、データ資産の機密性・整合性・可用性・信頼性・および予想されるビジネスロジックに関する保護要件や、アプリケーションがどの程度公開されるべきか、アクセス制御の観点やテナントを分離するべきかなどを十分に検討する必要があります。

「安全な設計」とは、脅威を絶えず評価し、既知の攻撃方法を防ぐ堅牢な設計になっていること、そしてテストされていることを保証する文化と方法論だとOWASPは提唱しています。安全な開発ライフサイクル、設計パターン、安全なコンポーネントライブラリ、驚異のモデリングなどが必要だとされています。

A05:2021-セキュリティの設定ミス

セキュリティの設定ミスとは、アプリケーション実行環境において、セキュリティの観点で不適切な設定が行われており、攻撃の足掛かりになる可能性がある場合が該当します。アプリケーションの90%には何らかの設定ミスが確認されています。

セキュリティの設定ミスの例としては、パーミッションが不適切に設定されている、必要のない機能が有効化されている、デフォルトアカウントとそのパスワードが有効になっている、エラー処理により攻撃者にとって有益なエラーメッセージが明らかになる、アプリケーションフレームワークのセキュリティ設定が不適切、などが挙げられます。

A06:2021-脆弱で古くなったコンポーネント

脆弱で古くなったコンポーネントとは、クライアントまたはサーバー側で使用しているソフトウェア・コンポーネントのバージョンが不明、サポート切れ、またはアップデートやパッチの適用などを行わない場合などが該当します。これにはOS・Web/アプリケーションサーバー・データベース管理システム・アプリケーション・API・ライブラリなど全てが含まれます。

A07:2021-識別と認証の失敗

識別と認証の失敗とは、ユーザーIDの認証やセッション管理に関する不備を指します。

認証の弱点の例としては、ブルートフォース攻撃(総当たり攻撃)が可能な状態や、デフォルトのパスワードや弱いパスワードが利用できてしまう状態、セッションID無効化が施されていない場合などが該当します。

A08:2021-ソフトウェアとデータの整合性の不具合

ソフトウェアとデータの整合性の不具合は、4位と同様に今回新設されたカテゴリーです。アプリケーションが、信頼できないソース・リポジトリ・CDN(コンテンツ・デリバリー・ネットワーク)からプラグインやライブラリ、モジュールを未検証で使用している場合などが該当します。攻撃者により、悪意のあるプラグインなどが配信され、アップデートされてしまう恐れがあります。

A09:2021-セキュリティログとモニタリングの失敗

セキュリティログとモニタリングの失敗とは、ログイン成功・失敗や、エラーや警告などに対する適切なロギングがされていない場合や、ログを適切に監視できていない場合などが該当します。ロギングとモニタリングはテストが難しいため、インタビューやペネトレーションテストで確認される場合がよくあります。

A10:2021-サーバーサイド・リクエスト・フォージェリ

サーバーサイド・リクエスト・フォージェリ(SSRF)は、4位、8位と同様に今回新設されたカテゴリーです。SSRFとは、Webアプリケーション上からリモートのリソースを取得する際に、ユーザーから入力されたURLを検証せずにリクエストを送る場合に発生します。クラウドサービスが一般化し、アーキテクチャが複雑になるにつれて、SSRFの重要度は高まっています。

OWASP TOP 10:2017との変更点

前回のOWASP TOP 10:2017との主な変更点は下表の通りです。

2017変動2021
A01:2017-インジェクション↓(3)A01:2021-アクセス制御の不備
A02:2017-認証の不備↓(7)A02:2021-暗号化の失敗
A03:2017-機微な情報の露出↑(2)A03:2021-インジェクション
A04:2017-XML外部エンティティの参照(XXE)↓(5)A04:2021-安全が確認されない不安な設計【NEW】
A05:2017-アクセス制御の不備↑(1)A05:2021-セキュリティの設定ミス
A06:2017-不適切なセキュリティ設定↑(5)A06:2021-脆弱で古くなったコンポーネント
A07:2017-クロスサイト・スクリプティング(XSS)↑(3)A07:2021-識別と認証の失敗
A08:2017-安全でないデシリアライゼーション→(8)A08:2021-ソフトウェアとデータの整合性の不具合【NEW】
A09:2017-既知の脆弱性のあるコンポーネントの使用↑(6)A09:2021-セキュリティログとモニタリングの失敗
A10:2017-不十分なロギングとモニタリング↑(9)A10:2021-サーバーサイド・リクエスト・フォージェリ【NEW】

前回5位だった「アクセス制御の不備」が大きく順位を上げて1位に、前回9位だった「既知の脆弱性のあるコンポーネントの使用」が6位に大きく順位を上げています。また、前回1位の「インジェクション」が3位に、前回2位の「認証の不備」が今回は7位に大きく順位を下げている点が大きな違いとなっています。

また新しくできたカテゴリーとして、5位の「安全が確認されない不安な設計」、8位「ソフトウェアとデータの整合性の不具合」、10位「サーバーサイド・リクエスト・フォージェリ」の3つがランクインしています。

OWASP TOP10の活用方法

OWASP TOP10の情報は、Webアプリケーションの設計者やセキュリティ担当者にとってどのように活用すればよいのでしょうか。

OWASP TOP10は、業界におけるアプリケーションセキュリティのスタンダードとして、主に意識向上を目的とした文書となっています。Webアプリケーションの重大なセキュリティ・リスクに関する最新情報を提供しているため、最新のアプリケーションの脆弱性や、それを狙ったサイバー攻撃の傾向を把握することができます。

OWASP Top10の情報を基に、自社で開発・運用しているWebアプリケーションの脆弱性を発生させないよう開発方針の見直しや、セキュリティ診断を行い、セキュリティ・インシデントを未然に防止することが重要です。

まとめ

Web上でサービスを展開する企業にとって、Webアプリケーションの脆弱性はビジネスに大きな影響を及ぼす重要な問題です。日々新しいサイバー攻撃や脆弱性が生み出されているため、開発時のセキュア・コーディングを心がけるだけでなく、運用開始後も定期的な脆弱性診断を行うことが重要です。 ベアケアで提供している脆弱性診断ツールは、OWASP TOP10のリスクを手軽にスキャンすることが可能です。Webサービスをセキュアに保つために、まずは診断してみてはいかがでしょうか。

脆弱性ツール診断(シンプル・システムスキャナー)詳細はこちら

お問い合わせはこちら

この記事をシェアする

ベアケアブログは、システムとその基盤となるITインフラのセキュリティリスクの軽減・安定稼働を支援するための情報をお届けします

タグ一覧