セキュリティ診断のグローバル・スタンダードの紹介(OWASPセキュリティ診断基準と診断サービスの選定ポイント)
Tweet
はじめに
システムのセキュリティリスクを把握する一つの手段として、セキュリティ診断が有効だと言われています。セキュリティ診断の代表的なものに、サーバーやネットワーク機器を対象とするネットワーク診断、主に顧客が独自作成したWebアプリケーションを対象としたWebアプリケーション診断があります。当社でも、これらの診断サービスを提供しています。
診断サービスを選択する際に、重要な点として以下があります(費用は、以下の項目に応じて決まるため、観点から除いています)。
- 診断手法
- 診断対象
- 診断項目
Webアプリケーション診断に適用すると、具体的には以下のようになります。
- 1. 診断手法
- スキャナーを利用するのか、診断員が手動オペレーションで診断するのかなどの診断の手法に関係するもの。
- 2. 診断対象
- 全てのページなのか、一部のページに限定するのか(例:同じ作りのページは代表的なページのみを対象とする)などの診断対象に関係するもの。
- 3. 診断項目
- クロスサイトスクリプティングやSQLインジェクションなど、どういう脆弱性を確認し報告するかという診断項目に関係するもの。
1および2については、提供される診断サービスメニューによりますが、診断事業社間で大きな違いはありません。3についても、実は大きな違いはないのですが、現状、診断事業社間で統一された診断項目や呼称が無く、各社バラバラの状態です。各社に診断項目の内容を確認して違いの有無を判断すれば良いのですが、判断にはそれなりのWebセキュリティの知識が必要となり、サービス享受側にはなかなかハードルが高いものになっています。
そのような中で、OWASP(Open Web Application Security Project) という組織では、世界のセキュリティ専門家が集まって、診断の標準や規格などを策定しています。今回は、OWASPで策定されている規格類の1つである「OWASP ASVS (OWASPアプリケーションセキュリティ検証基準)」について、紹介します。OWASPに関しては、本記事最後の参考を参照ください。
この基準では、セキュリティレベルを数段階設け、レベルごとにセキュリティ対策要件が設定され、該当する業界やアプリケーション例が示されています。
そのため、Webアプリケーション診断をサービス享受する側で求める診断観点と、診断サービス提供者の診断観点を揃えるのに役立ちます。診断サービスを選択する際に、サービス享受側は、診断事業社にOWASP ASVSの要求事項と診断項目の対応状況を確認することで、享受側に必要で最適な診断サービスを選択できる可能性が高まると思われます。
また、診断サービス以外のケースでは、Webアプリケーションの開発プロジェクトにおいて、Webアプリケーションを開発業者へ発注する際に、開発業者へ提示するセキュリティ要件として活用することも考えられます。
OWASP ASVS(OWASPアプリケーションセキュリティ検証基準)について
OWASP ASVSは、以下の2点を達成するために1つの業界標準のアプリケーション検証基準として提案されたものです。
- 企業がセキュアなアプリケーションを開発および維持できるようになる
- セキュリティサービスまたはツールの提供者および被提供者間で要求事項と提供内容を揃えられるようにする
この基準では、「どうやって検証するか」ではなく「何を検証するか」に焦点を当てています。基準内では、あるレベルに到達するためのアプリケーション検証のセキュリティ要件が定義されていますが、セキュリティ要件の検証方法については、検証者に委ねられており、本基準内では触れられていません。
以下では、アプリケーションのレベル(ASVSレベル)とその検証要件について、紹介します。
ASVSレベル
OWASP ASVSでは、レベル0~3の4段階を設けており、レベル1~3についてはそれぞれ詳細検証要件を定義しています。以下は、各レベルの説明です。
レベル | 概要 |
---|---|
0 | 原文では、「Cursory(大雑把)」のレベルと呼ばれています。検証レベルに柔軟性をもたせるための位置づけで、ASVSの要件定義のスコープ外のレベルです。レベル0は最低レベルを指しているわけではなく、他のレベル1~3への前提条件でもありません。 |
1 | 原文では、「Opportunistic(日和見的)」のレベルと呼ばれています。OWASP ASVSで検証要件が定義される一番下のレベルです。スキャナーやスクリプトキディ程度で比較的簡単に見つかる脆弱性に対処されているレベルを指します。 |
2 | 原文では、「Standard(標準)」のレベルと呼ばれています。OWASP ASVSで検証要件が定義される真ん中のレベルです。レベル1で要求される脆弱性に加えて、特定の標的に集中し目的に合わせて構成したスキャンツールや手動テスト技術を持つ、攻撃動機を有する攻撃者に悪用されるような脆弱性(OWASP Top 10やビジネスロジック系の脆弱性)に対処されているレベルを指します。 |
3 | 原文では、「Advanced(上級)」のレベルと呼ばれています。OWASP ASVSで検証要件が定義される最上位のレベルです。レベル2で要求される脆弱性に加えて、高度な技術を持つ攻撃意志のある攻撃者に悪用されるような脆弱性に対処されているレベルを指します。レベル3は、アプリケーション設計の調査を要求する唯一のレベルで、セキュリティコントロールが優れたセキュリティ設計の実践に基づいて実装されていることの確認が要求されます。 |
検証要件
全部で16カテゴリに分けて定義されています。
- V1:アーキテクチャ、設計、脅威モデリング
- V2:認証
- V3:セッション管理
- V4:アクセス制御
- V5:悪意のある入力の制御
- V7:暗号化
- V8:エラー制御およびロギング
- V9:データ保護
- V10:通信
- V11:HTTPセキュリティの構成
- V13:悪意のコントロール
- V15:ビジネスロジック
- V16:ファイルおよびリソース
- V17:モバイル
- V18:Webサービス
- V19:構成
各カテゴリ内に更に詳細な要件が定義されており、上記のレベル1~3に応じて、要否が記載されています。現時点では179項目あり、レベルごとの項目数を記載すると、以下のようになります。レベルが高いほど、要求項目数が多くなります。
(ASVSレベルと検証要件項目数)
検証要件 | レベル1 | レベル2 | レベル3 |
---|---|---|---|
V1:アーキテクチャ、設計、脅威モデリング | 1 | 6 | 10 |
V2:認証 | 17 | 24 | 26 |
V3:セッション管理 | 10 | 12 | 13 |
V4:アクセス制御 | 7 | 11 | 12 |
V5:悪意のある入力の制御 | 10 | 20 | 21 |
V7:暗号化 | 2 | 7 | 10 |
V8:エラー制御およびロギング | 1 | 7 | 12 |
V9:データ保護 | 4 | 8 | 11 |
V10:通信 | 7 | 8 | 13 |
V11:HTTPセキュリティの構成 | 6 | 8 | 8 |
V13:悪意のコントロール | 0 | 0 | 2 |
V15:ビジネスロジック | 0 | 2 | 2 |
V16:ファイルおよびリソース | 7 | 9 | 9 |
V17:モバイル | 6 | 9 | 11 |
V18:Webサービス | 7 | 10 | 10 |
V19:構成 | 1 | 5 | 9 |
(合計) | 86 | 146 | 179 |
例えば、V2:認証に関するレベルごとの詳細検証要件を一部抜粋すると、下記のような事項が書かれています。
No. | 詳細検証要件 | レベル1 | レベル2 | レベル3 |
---|---|---|---|---|
V2.1 | 意図的に公開しているものを除き、すべてのページおよびリソースに認証が必要であることを検証する。 | ✔ | ✔ | ✔ |
ご覧のとおり、OWASP ASVSでは要件のみが書かれており、検証方法についての記載はありません。検証者が決めることになっていて、実際の検証方法については、 OWASP Testing Guideなどを使うことになると思われます。
その他の特徴(業界別の指針)
OWASP ASVSの特徴として、業界ごとに想定される脅威プロファイルと推奨されるASVSレベルが定義されていることが挙げられます。つまり、ある業界において、どういう特性のアプリケーションが最低限どのレベルのセキュリティ検証をすべきかの指針が書かれています。
業界としては、「金融、保険」、「製造、専門、運輸、技術、公共、インフラ、防衛」、「医療」、「小売、食品、接客」が例示されています。「金融、保険」業界の場合、クレジットカード決済処理を行うアプリケーションは「レベル2」相当、金融機関間の送金処理を行うアプリケーションは「レベル3」相当などと設定されています。
多くのWebシステムを保有する企業においては、診断を行うにあたり、予算やスケジュールの関係上、すべて同じ基準で診断することが困難な場合があります。そのような場合は、上述の内容を参考に、システムやアプリケーションの特性に合わせて適切な診断レベルを設けることで、効果的な診断ができる可能性があります。
まとめ
今回は、日本ではあまりなじみのないと思われるOWASPのセキュリティ検証要件ASVSについて紹介しました。Webアプリケーション診断サービスを選択する際には、診断事業社にOWASP ASVSの要求事項と診断項目の対応状況を確認してみてください。対応しているサービスを選択することにより最適な診断サービスを受けられる可能性が高まります。
次回以降は、実際の検査方法が記述されているOWASP Testing Guideの概要を紹介できればと考えています。
参考:OWASPについて
OWASP(Open Web Application Security Project)は、セキュアなアプリケーションの開発・購入・運用を推進するために作られた、オープンなコミュニティです。世界各国のセキュリティ専門家が参加しており、各国に支部があります。なお、日本には、OWASP Japan (https://www.owasp.org/index.php/Japan ) が存在します。OWASPでは、フリーでオープンな形でツールやドキュメントを提供したり、定期的に国際的な会議やメーリングリストにより、先進的な研究や啓蒙活動を実施したりしています。以下は、提供されているものの例です。
- アプリケーションセキュリティに関するツールと規格
- アプリケーションセキュリティ検査、セキュア開発、セキュリティ・コードレビューに関する網羅的な書籍
- 標準のセキュリティ制御とライブラリ
これらは、それぞれプロジェクトという形で運営されており、代表的な(成熟した)プロジェクトには以下があります。
- • OWASP Top 10
- Webアプリケーションの既知の脆弱性について、優先的に対処すべき重要な脆弱性をまとめ、啓発するプロジェクト。
- • OWASP Testing Guide
- Webアプリケーションの既知の脆弱性について、内容と検査方法(ブラックボックス、ホワイトボックス、グレーボックス)をまとめるプロジェクト。
- • OWASP ASVS (OWASP Application Security Verification Standard Project)
- Webアプリケーションにおいて、セキュリティ上検証すべき事項をまとめるプロジェクト。
- • OWASP OWTF (OWASP Offensive Web Testing Framework)
- OWASP Testing GuideやOWSP Top 10、PTES(Penetration Testing Execution Standard)などのセキュリティ基準に沿った効率的な検査をするためのペネトレーション検査ツールを開発するプロジェクト。
- • OWASP ZAP (OWASP Zed Attack Proxy Project)
- オープンソースのWebアプリケーションスキャナーZAP(Zed Attack Proxy)を開発するプロジェクト。Paros ProxyというフリーのWebアプリケーションスキャナーをベースに、多くの機能追加および改善が加えられています。
- • OWASP Cheat Sheet Series
- 特定のWebアプリケーションのトピックに関して高価値の情報を「カンペ」として簡潔にまとめるプロジェクト。開発者向け(例:SQLインジェクションの防御方法)、評価者向け(例:XSSフィルタの回避方法)など、複数の対象者向けのコンテンツが公開されています。
これらの中では、恐らく、OWASP Top 10をご存じの方が一番多いかと思います。MITRE、PCIDSS、DISA、FTCなど多くの規格によって参照されていますし、診断サービスやスキャナーにおいて準拠していることがうたわれているものが増えてきています。
Writer Profile
セキュリティ事業部
セキュリティソリューション担当 セキュリティアーキテクチャグループ
チーフエンジニア
今川 大輔
Tweet