はじめに
こんにちは、@okazu-dm です。
この記事では、以前に公開した OWASP ASVSの紹介 の補足として、 同じくOWASPが公開しているOWASP Top10との違いについて紹介していきます。
また、これら2つの違いに注目した上で双方の適切な活用方法についても検討します。
ASVSについての概要はこの記事内でも触れますが、以前の記事でもまとめているため、必要に応じて参照してください。
この記事で言いたいこと
Webサービス開発時のチーム内スタンダードを作りたい方やセキュアコーディングに利用できるチェックリストを探している方には、OWASP ASVSの採用を推奨します。
OWASP ASVSについて
まず最初にOWASP ASVSについて触れておきます。
OWASP ASVSは、OWASPコミュニティによって公開されているセキュリティ要件やテストのリストです。
設計や実装、CIや構成管理など幅広い分野について触れていて、セキュリティに限らず一般的なWebサービス開発のベストプラクティスのような項目もあり、Webサービスの開発者は一度参照することをおすすめします。
OWASP Top10の紹介
この章では、OWASP ASVSと比較する対象のOWASP Top10の概要を紹介します。
OWASP Top10は、OWASPコミュニティによって開発者の意識向上を目的に公開されているセキュリティリスクのリストです。
この中ではOWASPが定量的なデータやコミュニティ自体の判断によって最も重要であると判断した10のリスクについて、それぞれ以下のような情報をまとめています。
- リスクの概要
- リスクの防ぎ方
- 攻撃が成立するシナリオの例
- 発生数などの定量的データ
各リスクの概要や攻撃シナリオが端的にまとめられており、全体的なボリュームとしてはすぐ読める範囲に収められているため、最新バージョンが出る度に目を通すことをおすすめします。
紹介されているリスクは実装ミスやインフラ面の設定ミスによる脆弱性のほか、テストによる検出が困難なリスクもあります。
テストが困難な項目の例としては "A04:2021 - 安全が確認されない不安な設計" などがあります
対象バージョン
- OWASP ASVS 4.0.1
- OWASP Top10 2021
OWASP ASVSとの比較
目的の違い
まず、OWASP ASVSとOWASP Top10を比較する上で、それぞれが作られた目的に着目しましょう。
- OWASP ASVS: サービス開発時におけるチェックリスト、またはそのベースとしての用途などを想定している
- OWASP Top10: 主に意識向上を目的とした文書1、という記述がある
以上のように、明確に目的が違うことがわかります。
それぞれどのような用途が適切か
以上を踏まえて、以下にOWASP Top10のサイトからOWASP Top10のユースケースについて検討した表を引用します
ユースケース | OWASP Top 10 2021 | OWASP ASVS |
---|---|---|
意識向上 | 推奨 | |
訓練 | 入門レベル | 包括的 |
設計とアーキテクチャ | 適切である場合もある | 推奨 |
コーディングスタンダード | 必要最低限 | 推奨 |
セキュアコードレビュー | 必要最低限 | 推奨 |
ピアレビューにおけるチェックリスト | 必要最低限 | 推奨 |
ユニットテスト | 適切である場合もある | 推奨 |
統合テスト | 適切である場合もある | 推奨 |
侵入テスト | 必要最低限 | 推奨 |
ツール支援 | 必要最低限 | 推奨 |
セキュアサプライチェーン | 適切である場合もある | 推奨 |
ここまでの比較内容から、以下のような使い分けをこの記事では提案いたします。
- OWASP Top10
- セキュリティに不慣れな開発者への意識向上, 啓蒙活動の教材
- 開発組織にセキュリティ観点のレビューを導入するためのごく初期のチェックリスト
- 最新の動向の参考資料
- OWASP ASVS
- Webサービス開発時のチェックリスト
- ベストプラクティス集としてトレーニングの教材などに活用
ASVSとの差異がよくわかる記述として、OWASP Top10のサイトでは、「OWASP トップ 10 をコーディングやテストの基準として使用したい場合は、それが最低限のものであり、出発点に過ぎないことを知っておいてください」という一文があります。
また、同じページから別の記述を引用すると「アプリケーション・セキュリティにおけるスタンダードを採用したいと考えている人には、OWASP Application Security Verification Standard(ASVS)を使用することをお勧めします。」ともあります。
これらの記述からもわかるように、Webサービスの開発を意識して作られたOWASP ASVSの方が幅広い範囲をサポートしているため、開発時に使う場合にはOWASP ASVSの方を採用することを推奨します。
まとめ
今回は、以前に公開したOWASP ASVSの紹介記事の補足として、 OWASP Top10との違いについて紹介しました。OWASP Top10は、あくまで意識向上の目的としてのドキュメントであるという前提を踏まえ、Webサービス開発時のチーム内スタンダードやチェックリストとしてはASVSの採用も検討してみてください。