2021年に改訂されたOWASP Top 10:2021の中で、4番目の脅威として挙げられたのが、「Insecure Design」です。
日本語では、「安全が確認されない不安な設計」「インセキュアデザイン」「安全でない設計」など呼ばれています。
前回の改定時の2017年度版では、TOP10には含まれておらず2021年から新たに指摘されたカテゴリーです。
#### 安全が確認されない不安な設計とは
その他のコード面のカテゴリーとは異なり、「Insecure Design」はより全体的な構造に焦点が当てられています。様々なケースを含む幅広いカテゴリーです。
デザイン面の安全でない設計の例として、詳細なエラーメッセージが表示される仕組みなどがあります。
開発時には詳細なエラーメッセージはトラブルシューティングに役立ちますが、悪意のあるユーザーが攻撃に利用する可能背もあります。
また、パスワードがテキストで保存されているケースなども「安全性が確認されない不安な設計」にあたります。この種の脆弱性は、暗号化実装のミスではなく、パスワードを暗号化しないという意図的な設計上の決定が問題です。
#### 対策
セキュリティは、プログラムの手法だけではなく、データをどのように扱うかの設計段階から重要です。安全な設計をするため、Webアプリケーション開発の早い段階で、セキュリティの専門家に相談し、安全な開発ライフサイクルを確立することが対策となります。
例：
- 本番環境へリリースする際は、エラーメッセージの不要な情報・詳細な情報は取り除く
- パスワードを忘れた際の「秘密の質問と答え」による回復フローを廃止し、MFAなどを使用したより安全な設計に置き換える