機能的なソフトウェアの開発、リリース、保守のみを目的とした環境については多くの組織が整備していますが、ソフトウェアのセキュリティが不十分なことに伴う懸念やビジネス・リスクの増大とともに、開発プロセスにセキュリティを統合する必要性に対する注目が高まっています。適切なセキュア・ソフトウェア開発ライフサイクル(SSDLC)の実装が今こそ重要です。
ソフトウェア開発ライフサイクル(SDLC)とは、組織がアプリケーションを構築するために用いる、方向付けから廃止までのプロセスを定義するフレームワークです。長年にわたり、さまざまな標準SDLCモデル(ウォーターフォール、イテレーション、アジャイルなど)が提案され、個別の状況に応じてその用いられ方もさまざまです。しかし、一般的にSDLCには以下のフェーズが含まれることは確実です。
以前は、セキュリティ関連のアクティビティは一般にテストのみに組み込まれていましたが、このような事後的手法では多くの問題の発見が手遅れになる(あるいは発見されないまま残る)のが通例です。これに比べて、SDLC全体にアクティビティを統合して脆弱性を早期に発見・低減し、セキュリティを効果的に組み込む方法ははるかに優れています。
このような考え方からセキュアSDLCの概念が生まれました。セキュアSDLCのプロセスでは、ペネトレーション・テスト、コード・レビュー、アーキテクチャ解析などのセキュリティ保証アクティビティを開発プロジェクトに欠かせない要素として組み込みます。セキュアSDLC手法を目指すことには主に以下の利点があります。
一般に、セキュアSDLCは既存の開発プロセスにセキュリティ関連のアクティビティを追加することによって装備されます。たとえば、セキュリティ要件の作成と機能要件の作成を並行して行う、SDLCの設計フェーズでアーキテクチャ・リスク解析を行うなどの形をとります。
これまでに多くのセキュアSDLCモデルが提案されていますが、その一部を以下に示します。
開発者またはテスト担当者は、組織のセキュリティ体制の向上のために以下のようなアクションを日常のアクティビティに取り入れることができます。
ただし、より大きなインパクトを実現するには、経営陣が参画して戦略的アプローチを考案する必要があります。完全なSSDLCを一から実装することに関心がある意思決定者の方は、以下のことから始めてください。
セキュアSDLCを既に実装済みの場合は、まだ必ず 改善の余地があります。現状を確認する一つの方法は、他の組織のセキュリティ・プログラムの構築方法およびその組織が行っているアクティビティを自社組織と比較することです。BSIMM(Building Security In Maturity Model)はその支援を行います。