2018/08/08)アプリケーション(ソフトウェア)仕様とセキュリティ仕様の関係とその特徴は正しく理解しておく必要があります。この関係と仕様の特徴を正しく理解しておかないと根本的な部分での間違いにつながります。関連アプリケーション仕様とセキュリティ仕様の関係アプリケーション仕様とセキュリティ仕様の関係は簡単です。アプリケーション仕様が優先されます。セキュリティ仕様なぜアプリケーション仕様が優先されるのか?理由は簡単です。世の中にはセキュリティ対策などどうでも良いので「とにかく速い」ソフトウェアが必要だったり、教育目的でセキュリティ対策は取り入れないで作るソフトウェアもあります。基本的には「アプリケーション仕様>セキュリティ仕様」です。要するに「セキュリティはどうでも良い」というアプリケーション仕様も正しい仕様として存在します。ソフトウェアのセキュリティ仕様はアプリケーション仕様の中に取り込まれる仕様になる、ということです。コスト、導入コスト、運用コストなど)とのトレードオフ関係、つまりセキュリティを向上させようとすると他の要素にコストが必要になります。アプリケーション仕様はトレードオフ関係を考慮し、実装するセキュリティ対策を選択します。セキュリティ対策の特徴セキュリティ仕様の特徴を説明の前に「セキュリティ対策」の特徴を紹介します。セキュリティ対策の定義は標準と基本概念から学ぶ正しいセキュリティの基礎知識を参照してください。「セキュリティ対策」の目的は「リスクマネジメント」です。リスクを識別し、対策し、許容可能な範囲にコントロール(制御)するのが「セキュリティマネジメント」です。セキュリティ仕様」ですが、リスクマネジメントを行う為に「セキュリティ仕様>アプリケーション仕様」となる逆転が発生します。インターネットにサーバーを接続している会社にとって「任意コード/コマンド実行脆弱性」は許容できないリスクです。個人で運用しているサーバーでも、インターネット上の他のユーザーに多大な迷惑をかけます。取り入れていないシステムが大多数ですが、状況が変わってきているのでユーザー名とパスワードによる対策だけではリスクを許容できなくなりつつあります。近い将来、多要素認証を取り入れないリスク許容が「任意コード/コマンド実行脆弱性」と同様に許されないリスク許容と認識されるかも知れません。許容できないリスクITシステムを開発/運用する上で「許容できないリスク」は沢山あります。多くのシステムで「許容できないリスク」は共通しており、セキュリティ専門家はこれらのリスクに対してガイドラインを公開しています。Practicesなどは普通は「許容できないリスク」に対するセキュリティ対策として最も重要な物をガイドラインとしてまとめた物です。セキュリティ仕様が基本系ですが、例外ももちろんあります。アプリケーション仕様」となります。アプリケーション仕様」となる例えば、プロトタイプを作る場合には「許容できないリスク」が全くない事もあります。いった場合には逆転現象は発生しません。一般に利用されるシステムにはほとんどの場合、何らかの「許容できないリスク」が存在します。現在では一般の開発者が、どのような許容できないリスクがあり、そのリスクに対してどのような対策を取るべきないのか?自分で最初から考える必要性はあまりありません。27000などのセキュリティ標準規格を参考に「許容できないリスク」を緩和すれば良いです。出力のセキュリティ対策が第二位としています。これはセキュリティ対策の基本概念である「境界防御」は最も重要な対策の一つであること、現実に発生している脆弱性を考慮すると入力/出力のセキュリティ対策が最も効果的であることからも妥当な順位です。まとめセキュリティ対策がリスクマネジメントである、との考えは重要です。リスクを許容可能な範囲に収めるために必要なセキュリティ対策を実施するのがセキュリティマネジメント「セキュリティ対策」として識別された施策は「リスクマネジメント」の管理対象とされ、定期的に評価され、「アプリケーション仕様が変わらなくても」現状に合わなくなった場合には追加の対策を行ったり、別の対策を採用するというPDCA※プロセスで管理されます。Actionの管理プロセス。ISOではPDCA管理が幅広く採用されている。必要なセキュリティ対策をアプリケーション仕様として管理すると、リスクマネジメントのプロセスから除外されてしまいます。アプリケーション仕様として管理します。Practicesでセキュリティ対策の第一位、第二位のセキュリティ対策をセキュリティ対策として採用しない合理的な理由はあまりありません。採用しなかったセキュリティ対策もセキュリティ対策として管理する必要があります。誤って不採用としたセキュリティ対策を使用しないため状況が変化し、不採用としてきたセキュリティ対策が必要となることがあるため「セキュリティ対策」の定義が主観などによって変化してはこのような管理を実現することはできません。「”十分な”セキュリティ対策」と「”不十分な”セキュリティ対策」このように考えてマネジメントする必要があります。今すぐできる、Webサイトへの2要素認証導入そもそもエスケープとは何なのか?JSONPは危険なので禁止PHP文字列のエスケープPHPのHTMLエスケープ紹介エレクトロニック・サービス・イニシアチブのWebシステムのコンサルタントのブログです。PHPの開発、PHP4.x/5.xレガシーPHPセキュリティパッチサービスなどを行っています。ブログのサブタイトルを「書かない日記」としているのは、ブログを始めた時にあまり書かないつもりで始めたのでこのサブタイトルになっています。yohgaki@ohgaki.net私が記述したブログ中のコードは記載が無い場合はMITライセンスです。その他のコードは参考リンクなどのライセンス情報を参照ください。