近頃、セキュリティ業界の会合やお客様との会話の中で、マイクロソフトのセキュリティ開発ライフサイクル (SDL) [i] が改めて注目を集めていると感じます。インターネット空間におけるサイバー攻撃がますます高度化かつ巧妙化する中、組織の資産をセキュリティ製品だけでは守っていけない状況は多く、ソフトウェアそのものの脆弱性をなくすこと、特に自社開発製品についてきちんと見直しを行い、より強固なソフトウェアやサービスに変えていくことが求められています。
図 1: SDL 開発プロセス
2002 年提唱の「信頼できるコンピューティング」から 10 年、マイクロソフト製品は常に研究者や悪意のあるクラッカーのハッキング対象となってきました。長年に亘るそのような状況にも鍛えられ、また徹底した SDL により、マイクロソフト製品のセキュリティは確実に向上しています。下図 2 は製品ごとの、1000 台の PC における感染 PC 台数を示していますが、より新しい製品ほど、感染率が下がっていることがわかります。
図 2: Windows OS 毎の感染率 (Security Intelligence Report v.11 より)
何から始めれば良いか?
Microsoft SDL の簡単な実装というドキュメントを公開しています。ソフトウェア開発に完全な SDL フレームワークを導入するには、相応のリソースやコストが必要で、時間もかかります。このドキュメントでは SDL に準拠するための必要最小限のプロセスを説明しています。
たとえば「SDL 最適化モデル」は、以下 5 つの機能領域に基づいて構成されており、各領域におけるプラクティスと機能について 4 段階の成熟度 (基本、標準、高度、動的) を定義しています。このドキュメントでは、“高度” レベルの成熟度を実現するために必要なタスクとプロセスを重点的に説明しています。
- トレーニング、ポリシー、および組織の機能
- 要件と設計
- 実装
- 検証
- リリースと対応
図 3. SDL 最適化モデルと機能および成熟度のレベル
セキュリティ プロセスを簡単に編成しただけの場合でも、セキュリティとプライバシーは全体的に改善します。このドキュメントで示しているエンジニアリングの概念は、適切なセキュリティ プラクティスとして広く認められているものであり、さまざまなオペレーティング システム、ハードウェア プラットフォーム、開発手法に適用可能です。組織の時間やリソース、ビジネス プラクティスに応じた方法で SDL を実装する際のガイドとして、このドキュメントをご参考ください。
参考資料
SDL 実装の簡易版ガイドライン: Microsoft SDL の簡単な実装
SDL 実装に役立つツール: Microsoft Security Development Lifecycle Tools
これまでの SDL の活動状況: SDL 進捗レポート
[i] SDL: ソフトウェア開発プロセスのすべてのフェーズにセキュリティとプライバシーの概念を導入するセキュリティ保証プロセス