はじめに
何年もの間、開発者は自分たちが構築するものに同じセキュリティ問題をもたらすことに苦しんできました。何十年も前から存在する最も一般的な問題は OWASP Top Ten によって文書化されています。初期バージョンの問題の多くは今日でも何らかの形で存在しています。これらの課題に対処するメカニズムが必要であり、そのメカニズムがプロアクティブコントロールです。
プロアクティブコントロールはベタープラクティスのカタログであり、多くの一般的なセキュリティ問題を回避するために、開発者がコードベースに取り入れて実装できる一連の項目です。プロアクティブコントロールはセキュアバイデザインを考慮したソリューションを実装するためのポジティブなパターンを提供します。
ウェブベースのソフトウェアを開発し、新バージョンをリリースした後、そのソフトウェアにセキュリティ脆弱性が含まれており、それが現在悪用されているという報告を受けることを想像してください。今、あなたは事後対応を余儀なくされています。脆弱性を分析して修正し、新しいソフトウェアリリースを作成してユーザーに提供します。このすべてが面倒で少し厄介です。特にセキュリティ脆弱性が深刻である場合にはなおさらです。
プロアクティブコントロールは開発そのものに焦点を当てることでこれを防ぎます。その考え方はアプリケーションの初期段階で一般的な脆弱性を防ぐことであり、それらの面倒で困惑するバグ修正を完全に回避できるようにすることです。プロアクティブなアプローチが長期的にはリソースとコストの節約になるというは周知の事実です。
OWASP Top 10 Proactive Controls 2024 はすべてのソフトウェアアーキテクトと開発者が知っておき、留意すべきセキュリティ技法のリストです。このドキュメントの主な目的は、開発者が安全なソフトウェアを構築するのに役立つ、具体的で実践的なガイダンスを提供することです。最大限の効果を確保するには、これらの技法をソフトウェア開発の初期段階で積極的に適用する必要があります。
プロアクティブなベストプラクティスに従うことで、コードに脆弱性が存在する可能性は減りますが、コードにセキュリティバグがないという保証はないことに注意してください。それでいいのです。オムレツを作るには卵を割らなければなりません。セキュリティバグを持ち込まない唯一の方法はコードを全く書かないことです。私たちはセキュリティ上の問題をできる限り防ぐように努めながら、それを受け入れています。
このリストはどのように作成されたのか
このリストはもともと現在のプロジェクトリーダーが数人のボランティアからの貢献を得て作成しました。その後、このドキュメントは世界中に共有され、匿名の提案も検討できるようになりました。このオープンなコミュニティプロセスから何百もの変更が受け入れられました。
セキュリティコントロール
それぞれのコントロールの説明は同じ構成になっています。コントロール自体には、コントロール番号が前に付く一意の名前 Cx: コントロール名、例 C1: アクセス制御を実装する (Implement Access Control) があります。
それぞれのコントロールには同じセクションがあります。
説明 (Description): 考慮すべきベストプラクティスを含むコントロールの詳細な説明。
脅威 (Threat(s)): このコントロールが対抗する脅威。
実装 (Implementation): それぞれのコントロールの実装方法を説明するベストプラクティスおよび事例。
防止される脆弱性 (Vulnerabilities Prevented): 防止される脆弱性や対処されるリスクのリスト (OWASP TOP 10 Risk, CWE, など)
参考情報 (References): さらなる研究のための参考情報のリスト (OWASP Cheat sheet, Security Hardening Guidelines, など)
ツール (Tools): ソフトウェアにセキュリティコントロールを簡単に導入/統合するためのツール/プロジェクトのセット。
Last updated