The OWASP Top Ten Proactive Controls 2018は、すべてのソフトウェア開発プロジェクトにおいて考慮する必要があるセキュリティ・テクニックのリストです。このドキュメントはセキュアな開発の初心者の助けになるよう、開発者向けに書かれています。
このドキュメントの主な目的の1つは、開発者がセキュアなソフトウェアを構築するのに役立つ具体的、かつ、実践的なガイダンスを提供することです。これらのテクニックは、先のことを考慮してソフトウェア開発における初期段階に講じることで、最大の効果を挙げるに違いありません。
リストは重要度順となっています。リスト項目番号01が「最も重要」です。
- C01: セキュリティ要件の定義
- C02: セキュリティフレームワークやライブラリの活用
- C03: セキュアなデータベースアクセス
- C04: エンコーディングおよびエスケープ
- C05: すべての入力値の検証
- C06: アイデンティティと認証管理の実装
- C07: 適切なアクセス制御の実装
- C08: すべてのデータの保護
- C09: ロギングとモニタリングの実装
- C10: エラー処理と例外処理
このリストはもともとプロジェクトリーダが数々のボランティアから提供をいただいて作成したものです。そして、ドキュメントを公開しましたので、匿名の改善・検討提案をいただきました。このオープンコミュニティプロセスにより何百箇所もの改善がなされました。
このドキュメントは主に開発者向けに書かれています。とはいえ、開発マネジャ、製品オーナ、Q/A担当の専門家、プログラムマネジャ、またソフトウェア構築に携わるすべての人にとって有益です。
このドキュメントは、セキュアなソフトウェアを構築するための最初の気づきを提供することを目的としています。また、初期のソフトウェアセキュリティ開発者トレーニングを推進しやすい基礎的なトピックも提供します。これらのコントロールは、すべてのアプリケーションにおいて一貫して綿密に適用されるべきです。とはいえ、これはセキュアなソフトウェア構築の出発点として利用するべきであり、包括的な技術やプラクティスだというわけではありません。完全なセキュアな開発プロセスには、OWASP ASVSなどのスタンダードに基づき包括的な要件を含めること、加えてOWASP SAMMやBSIMMなどの成熟度モデルで説明されている一連のソフトウェア開発アクティビティを含める必要があります。
OWASP Top 10 Proactive Controlsは、OWASP Top10に似ていますが、リスクではなく、防御テクニックとコントロールに焦点を当てています。それぞれのテクニックとコントロールは、OWASP Top 10リスクに示される1つ以上のリスクに対応しています。どのように対応しているかについては、各コントロールの説明の最後の部分にあります。