ソフトウェア・インテグリティ

 

セキュアSDLC 101

SDLCのフェーズについて、およびSDLCにセキュリティを組み込む方法、さらに既存のSDLCを次のレベルのセキュアSDLCへと進める方法について説明します。

セキュアなソフトウェア開発ライフサイクル(SDLC)とは

機能的なソフトウェアの開発、リリース、保守については、多くの組織が整備していますが、

そのソフトウェアのセキュリティについての整備は不足しています。多くの開発チームの認識では、セキュリティは依然として、ハードルを作り、作業のやり直しを強いて、便利な最新機能の市場への投入を阻害する障害です。

しかし、セキュリティが不十分なソフトウェアは、企業をますます大きなリスクにさらします。製品が悪用可能な脆弱性をハッカーに提供すれば、便利な最新機能があってもお客様やお客様の顧客は保護されません。高品質、高セキュリティ製品の市場への投入を阻止するのではなく実現できるようなセキュリティを、SDLC全体に統合する必要があります。

セキュアSDLCのしくみと注目すべき理由

SDLCとは、組織がアプリケーションを構築するために用いる、方向付けから廃止までのプロセスを定義するフレームワークです。長年にわたり、ウォーターフォール型をはじめ、最近では導入の速度と頻度を増大するアジャイルおよびCI/CDまで、多くのSDLCモデルが紹介されてきました。

セキュアSDLCのフェーズ

通常、SDLCには次のフェーズがあります。

  • プランニングと要件定義
  • アーキテクチャと設計
  • テスト計画
  • コーディング
  • テストと結果
  • リリースと保守

以前は、組織では通常SDLCの最後にテストの一環としてのみセキュリティ関連のアクティビティが行われていました。この終盤で行う手法では、バグ、欠陥、その他の脆弱性は、非常にコストと時間がかかる修正を行ってからしか発見されません。さらに悪いことに、脆弱性はまったく見つけられません。

IBM Systems Sciences Instituteは、バグ修正を実装段階で行うと、そのコストは設計段階で修正した場合の約6倍に上ると報告しています。また、IBMによると、テスト工程でバグが発見されると設計段階で修正する場合のコストの15倍のコストがかかる可能性があります。

SDLC全体にセキュリティ・テストを統合するほうが速く、コストも削減され、効果的です。

そのため、セキュリティ・テストを、最後の段階のみではなく、SDLC全体に統合して、脆弱性を早期に検出して、セキュリティを効果的に組み込むほうがはるかに有効なだけでなく、時間もコストも削減されます。セキュリティ保証アクティビティには、設計段階のアーキテクチャ分析、コーディングとビルド段階のコード・レビュー、およびリリース前のペネトレーション・テストが含まれます。セキュアSDLC手法には主に以下の利点があります。

  • セキュリティが継続的な課題になることによるソフトウェア・セキュリティの向上。
  • セキュリティに関する考慮事項に対するステークホルダーの意識向上。
  • コーディングを行う前に設計上の欠陥を早期検出。
  • 欠陥の早期検出と解決によるコストの削減。
  • 組織に内在する全体的なビジネス・リスクの低減。

セキュアSDLCの仕組み

一般的には、セキュアSDLCでは、セキュリティ・テストおよびその他のアクティビティを既存の開発プロセスに統合する必要があります。例としては、セキュリティ要件の作成と機能要件の作成を並行して行うことや、SDLCの設計フェーズでアーキテクチャ・リスク分析を行うことなどが挙げられます。

多くのセキュアSDLCモデルが使用されていますが、最もよく知られているものの1つにMicrosoft Security Development Lifecycle(MS SDL)があります。このモデルは、ソフトウェアのセキュリティを強化するために組織が採用できる12のプラクティスを示しています。今年初旬、NISTはSecure Software Development Frameworkの最終バージョンを公開しました。このフレームワークは、組織が既存のSDLCに統合できるセキュリティ関連プロセスに焦点を当てています。

どのように始めるか

開発者またはテスターは、セキュアSDLCへと移行し、組織のセキュリティを向上するために次のことを行うことができます。

基本的なセキュアSDLCの確立

基本の域を超えて次に進むには

これらの基本的事項を超えて、管理者はより大きなインパクトを実現するために戦略的アプローチを考案する必要があります。完全なセキュアSDLCを一から実装することに関心がある意思決定者の方は、以下のことから始めてください。

セキュアSDLCを次のレベルへ進める

やるべきこと

組織は既にセキュアSDLCに従っていますか? まだ必ず 改善の余地があります。状況を判断する1つの方法は、他の組織の実際のプログラムと比較してセキュリティ・プログラムを評価することです。Building Security In Maturity Model(BSIMM)はその支援を行います。ここ10年にわたり、BSIMMは100社を超える組織で行われたセキュリティ・アクティビティを追跡してきました。組織もSDLCもそれぞれ異なるため、BSIMMは何をすべきかは提示しません。しかし、その観察モデルでは、独自の業種における他社の取り組み、つまり何が効果があったか、そして何が効果がなかったかがわかります。

この投稿は2016年1月21日に発表され、2020年11月19日に更新されました。

 

この著者によるその他の情報