OWASP(The Open Web Application Security Project)は、Webアプリケーションセキュリティを取り巻く脅威、課題の解決を目的とした国際的なコミュニティです。経験豊富なスペシャリスト、エンジニア、ユーザーのコラボレーションから成り立っており、様々な情報提供や活発なディスカッションが展開されています。
OWASPは定期的に、Webアプリケーションセキュリティに関する最も重要なリスク10個を発表しています。これが、『OWASP Top 10』です。
本稿では、2021年に発表された『OWASP Top 10 2021』で紹介されている脆弱性について解説していきます。
OWASP Top 10 2017と2021の比較
まず、前回の『OWASP Top 10 2017』と『OWASP Top 10 2021』の違いを確認していきましょう。
OWASP Top 10 2017 と 2021の比較表
OWASP Top 10 - 2017 |
OWASP Top 10 - 2021 |
|
A1:インジェクション |
↗ |
A1:アクセス制御の不備 |
A2:認証の不備(※1) |
↗ |
A2:暗号化の失敗(※1) |
A3:機微な情報の露出(※1) |
↘ |
A3:インジェクション(※2) |
A4:XML外部エンティティ参照(XXE)(※2) |
NEW |
A4:安全が確認されない不安な設計 |
A5:アクセス制御の不備 |
↗ |
A5:不適切なセキュリティ設定(※2) |
A6:不適切なセキュリティ設定 |
↗ |
A6:脆弱で古くなったコンポーネント(※1) |
A7:クロスサイトスクリプティング(XSS)(※2) |
↘ |
A7:識別と認証の失敗(※1) |
A8:安全でないデシリアライゼーション(※2) |
NEW |
A8:ソフトウェアとデータの整合性の不具合(※2) |
A9:既知の脆弱性のあるコンポーネントの使用(※1) |
↗ |
A9:セキュリティログとモニタリングの失敗(※1) |
A10:不十分なロギングとモニタリング(※1) |
NEW |
A10:サーバーサイドリクエストフォージェリ(SSRF) |
※2021年版では「A4:安全が確認されない不安な設計」「A8. ソフトウェアとデータの整合性の不具合」「A10:サーバーサイドリクエストフォージェリ(SSRF)」が新たに Top 10 に追加されました。
※1)名称が変更されたカテゴリー
OWASP Top 10 - 2017 |
OWASP Top 10 - 2021 |
|
機微な情報の露出 |
→ |
暗号化の失敗 |
既知の脆弱性のあるコンポーネントの使用 |
→ |
脆弱で古くなったコンポーネント |
認証の不備 |
→ |
識別と認証の失敗 |
不十分なロギングとモニタリング |
→ |
セキュリティログとモニタリングの失敗 |
※2)2021年版で統合されたカテゴリー
OWASP Top 10 - 2017 |
OWASP Top 10 - 2021 |
|
クロスサイトスクリプティング(XSS) |
→ |
インジェクション |
XML外部エンティティ参照(XXE) |
→ |
不適切なセキュリティ設定 |
安全でないデシリアライゼーション |
→ |
ソフトウェアとデータの整合性の不具合 |
前回発表されたOWASP Top 10から重大な脆弱性がいくつか変更されました。ここで注意していただきたいのは、順位を落としたり、Top 10から外れたからといって、その脆弱性のリスクがなくなったわけではありません。
あくまで「他の脆弱性の重要度が高まった」ということであり、リスト外の脆弱性への対策も必要であることに変わりはありません。
OWASP Top 10を参照する場合は、この点に留意しながらどのような脆弱性に注意が必要であるか、その対策をチェックしましょう。
OWASP Top 10 2021 概要
それでは『OWASP Top 10 2021』で紹介されている脆弱性について、一つずつ確認していきましょう。
A1. アクセス制御の不備
「アクセス制御の不備」は、2017年の5位から順位を上げて、最も深刻なリスクとして1位にランキングされました。
アクセス制御は、ユーザに対して与えられた権限以外の操作をしないようにポリシーを適用するものです。アクセス制御の不備により、許可されていない情報の公開や、データの変更・破壊、ユーザ制限から外れた機能の実行が行われます。
公開情報へのアクセスを除き、原則としてアクセスを禁止し、ユーザーがアクセス可能なファイルのアクセス制御を適切に行う必要があります。
A2. 暗号化の失敗
2017年の3位から順位を上げました。これは、暗号化技術の不適切な使用、または暗号化の欠如によって重要なデータが保護されていない状態となっていることを指します。
必要のない機微な情報を保存しないこと、保存が必要なデータについては、最新の暗号強度の高い標準アルゴリズム、プロトコル、暗号鍵の実装や、認証付き暗号を使用するなどの対応が必要です。
A3. インジェクション
Webサイトの入力フォーム等を通じて、アプリケーションに不正なコードを注入して想定外の動作をさせるサイバー攻撃をインジェクションと呼びます。
代表的なインジェクション攻撃にデータベースを不正に操作するSQLインジェクションがあり、OSコマンドを不正に実行するOSコマンドインジェクション、ディレクトリシステムを攻撃するLDAPインジェクションなどがあります。入力バリデーションでデータの安全性を検証することが必要です。
A4. 安全が確認されない不安な設計
2021年に新たにカテゴリーされた項目です。コーディングの方法や実装に関するリスクではなく、Webアプリケーションのアーキテクチャや設計などの欠陥、安全でない設計、効果的でない設計を指します。
安全が確認されていない設計は、実装で修正されることはありません。脅威モデリングや、安全な設計パターンと原則、リファレンス・アーキテクチャを利用していくことが重要です。
A5. 不適切なセキュリティ設定
2017年の6位から順位を上げました。不適切なパーミッションの設定や、不要な機能の有効設定、機微な情報を含むエラーメッセージの表示などを指します。
知識不足や管理の不十分な状態で運用されているWebサイトではセキュリティ設定のミスが多く、脆弱なWebサイトとして検出され、サイバー攻撃の標的になる危険性が高くなります。
セキュリティ設定を適切に施すだけでなく、使用しない機能やフレームワークをインストールしない、ドキュメント類やサンプルファイルなどを削除するといった対応も重要です。
A6. 脆弱で古くなったコンポーネント
2017年の9位から順位を上げました。Webアプリケーションに使用されているコンポーネントが適切にアップグレードされていないことを指します。
脆弱なコンポーネントはサイバー攻撃の標的となりますので、最新の状態に保つことが重要です。
A7. 識別と認証の失敗
パスワードリスト攻撃、ブルートフォース攻撃などの自動化された攻撃が可能な実装や、単純な文字列や、デフォルトのパスワード(password、admin など)が利用できる実装などを指します。
多要素認証やパスワード設定時のポリシー設定、ログイン試行回数によるパスワードロックなどを実装することで、認証の強度を高める必要があります。
A8. ソフトウェアとデータの整合性の不具合
2021年に新たにカテゴリされた項目です。安全でないデシリアライゼーションや、信頼できないソース、リポジトリ、プラグイン、ライブラリなどを取得元や整合性の検証せずに使用する場合などを指します。
依存関係や取得元の検証や、信頼されたリポジトリの利用を確認するなどの対応が必要です。
A9. セキュリティログとモニタリングの失敗
2017年の10位から順位を上げました。ロギングやモニタリングが適切に行われていないことで、攻撃を受けてから長期間検知できない場合もあります。
これにより、攻撃を防ぐ対策が遅れたり、攻撃者に関する調査が行えないといったことが考えられます。適切にロギングやモニタリングを行うことで、早期発見し被害を最小限に抑えたり、ロギングによる証拠保全が可能となります。
ログインやログイン失敗、トランザクションなどの監査可能なイベントをログに記録したり、怪しいアクティビティを即時に検知できるような仕組み・実装が重要です。
A10. サーバーサイドリクエストフォージェリ(SSRF)
2021年に新たにカテゴリーされた項目です。サーバーサイドリクエストフォージェリ(SSRF)は、外部に公開されているサーバーを経由し、内部サーバー(サーバーサイド)に送られるリクエストを偽造してアクセスする攻撃です。
遷移先のURLを固定にしたり、サーバー内部で発行するリクエストを固定のドメインに限定するといった対策が必要です。
2019年7月29日、アメリカの大手金融会社Capital Oneにて、SSRF攻撃による不正リクエストが発生し、1億人以上の個人情報が流出しました。この事件をきっかけにSSRF攻撃がクローズアップされはじめました。
まとめ
サイバー攻撃のトレンドは常に変化していきます。OWASP Top 10 2017と比較しても「アクセス制御の不備」や「脆弱で古くなったコンポーネント」が大きく順位を上げています。これは独自開発するケースよりも、クラウドサービスや既存ライブラリを利用するケースが増えていることで、セキュリティリスクのトレンドが変化していると考えられます。
OWASP Top 10は、Webアプリケーション設計者やセキュリティ担当者にとって脆弱性やサイバー攻撃のトレンドを把握したり、セキュリティ対策の指針にすることができます。
アプリケーションの開発には従来の脆弱性の対応はもちろんのこと、OWASP Top 10の内容を把握し、Webアプリケーションの脆弱性が発生しない設計や実装、脆弱性診断などによる対策によってサイバー攻撃の被害を未然に防止することがとても重要です。
脆弱性がないWebサイトの開発が根本的な対策ではありますが、既に提供しているWebサイトでは、すぐに対応できない場合や、テストに時間を要するなど、運用上の課題があるのも事実です。
そのようなときは、WAFの導入をご検討ください。ウェブサイトセキュリティの専門企業であるEGセキュアソリューションズ株式会社では、脆弱性診断をはじめ、カスタマイズ性に優れたソフトウェア型WAF(ホスト型、ゲートウェイ型)、運用お任せのクラウド型WAFの3製品を開発・販売しています。Webサイトのセキュリティ対策がご心配な方は是非お気軽にご相談ください。
参考文献:
OWASP Top 10 - 2021
OWASP Top 10 - 2017
- カテゴリ:
- Webセキュリティ