安全なSDLCソフトウェア開発ライフサイクルのフェーズ

公開: 2021-02-26

安全なソフトウェアを作成するための賢いアプローチは、安全なSDLCまたはソフトウェア開発ライフサイクルです。 ソフトウェアを作成して脆弱性をテストするのではなく、セキュリティに重点を置いて作成することをお勧めします。

セキュアSDLCとは何ですか?

広い意味で、セキュアSDLCは、既存のソフトウェア開発ライフサイクルにセキュリティテストやその他の手段を統合するプロセスです。 これには次のものが含まれます。

  • 機能要件とともにセキュリティ要件を記述します。
  • アーキテクチャ分析の実行。
  • 既知のセキュリティ脆弱性のないオープンソースコンポーネントの使用。
  • すべての段階でソフトウェアをテストし、脆弱性/脅威が持ち越されるのを防ぎます。

安全なSDLCが重要な理由

開発者はセキュリティの脆弱性を備えた製品をリリースする余裕がないため、安全なソフトウェア開発ライフサイクルプラクティスを実装することが重要です。 ソフトウェアとデータを脅威や攻撃から保護するには、セキュリティを確保する方法で開発する必要があります。

もう1つの理由は、セキュリティに重点を置いてテストおよび修正せずにソフトウェアを開発することは効率的なアプローチではないことです。

セキュアSDLCのフェーズ

安全なSDLCの全体的な概念は、悪を芽に食い込ませることを中心に展開します。 このプロセスは、欠陥がソフトウェア開発ライフサイクルの次の段階に持ち越されるのを防ぎます。 これは、セキュアSDLCに関連するフェーズと、各フェーズで実装されているセキュリティ対策のスケッチです。

セキュアSDLCの要件フェーズ

ソフトウェアの機能要件に加えて、セキュリティ要件もセキュアSDLCの開始時に説明されています。 これらの要件は、ソフトウェアを本質的に安全にするために開発者に必要なものを詳しく説明しています。

開発を開始する前に、セキュリティ関連のすべてのユースケースとシナリオの詳細なリストをまとめます。 次に、これを使用してセキュリティ機能を作成し、セキュリティテストシナリオを設計します。
これらの要件は次のようになります。

  • すべてのゲートウェイと入口ポイントには、認証手段を導入する必要があります。
  • システムは、セキュリティで保護されたログイン画面を介して認証を実装する必要があります。
  • すべての個人データは常に暗号化する必要があります。
  • 機密データの転送には、複数の認証チャネルを使用する必要があります。

安全なSDLCの計画段階

計画フェーズは、SecureSDLCの重要なステップです。 計画はケースごとに異なる場合がありますが、注意が必要な最も基本的な事項のいくつかを次に示します。

  • 経験豊富な専任のセキュリティチームを編成して、ソフトウェアのセキュリティ関連のすべての対策を公平に見落とし、指示する必要があります。 このチームは、できればプロジェクト管理オフィスの外に配置され、セキュリティ担当者、セキュリティアーキテクト、およびセキュリティテスターで構成される必要があります。 チームメンバー全員が明確に定義された役割と責任を持っている必要があります。
  • プロジェクトのセキュリティ問題に関連するあいまいさやエスカレーションは、製品のセキュリティ担当者が処理する必要があります。 彼は、セキュリティチームから、正しい決定が行われるようにアドバイスを受ける必要があります。
  • 製品のセキュリティに加えられた変更がセキュリティチームに見過ごされないように、セキュリティの連絡窓口を確立する必要があります。

SDLCのアーキテクチャと設計フェーズ

詳細な製品セキュリティリスク評価は、設計段階で実行する必要があります。 これには、コーディング段階に入っていないときにセキュリティの観点からプログラムをレビューすることが含まれます。 次のフェーズに入る前に、セキュリティリスクを排除する必要があります。 セキュリティを確保するために、すべての評価は業界標準に従って実行する必要があります。

このフェーズで注意しなければならないことには、次のものが含まれますが、これらに限定されません。

  • プロジェクトチームによって共有された詳細に従って、すべての機能、要件、ユーザーストーリー、および設計ドキュメントを確認します。 必要な書類がない場合は、プロジェクトチームのメンバーがすべてを明確に話し合う必要があります。
  • プログラムのセキュリティ要件のギャップを特定し、使用されている業界標準に照らして評価する必要があります。 必要に応じて、特定されたギャップに応じて脅威モデルを作成できます。
  • 十分なセキュリティリスクのあるギャップをリストする必要があり、実行可能な緩和策が提案されます。

SDLCの開発フェーズ

これは、ソフトウェアの実際の「開発」です。 アプリケーションの安全なレイアウトが準備された後、開発者はセキュリティガイドラインに沿った方法でコードを作成する必要があります。 これも:

  • 既知の脆弱性のないオープンソースコンポーネントの使用。
  • ソフトウェアの開発全体を通じて合意されたセキュリティ対策を使用する。
  • コードのコールドテストを行って、コードの脆弱性を明らかにし、軽減します。

いくつかのテストもフェーズで行われます。 これには、機密データがプレーンテキストとして送信されないようにするなどが含まれます。

SDLCの実装フェーズ

ソフトウェアが開発されたら、次のステップは動的コード分析です。 これは、Open Web Application Project(OWASP)テストとも呼ばれるアプリケーションセキュリティテストの形式です。

ソリューションが実際に実装される前に、脆弱性分析と侵入テストが実行されます。 このチェックが実行されるソフトウェアのバージョンは、テストビルドと呼ばれます。 これについて注意すべき主な点は次のとおりです。

  • HP WebInspect、ZAP、Burp Suite、SOAPなどのツールを使用して、さまざまな脆弱性データベースに対してソフトウェアの脆弱性をチェックします。
  • このフェーズ全体は、自動化と手動テストを組み合わせたものです。
  • このプロセスは、開発環境にリンクされていない独立した環境で実行され、現実に近いテストシナリオを保証します。
  • このフェーズで見つかった脆弱性は、ソフトウェアをリリースする前に軽減されます。
  • このフェーズでは、一般的で典型的な脅威が特定され、それらを防ぐための措置が講じられます。

結論

ソフトウェアへの依存度が高まる中、ユーザーにとってソフトウェアを安全にすることが重要です。 ソフトウェアとアプリケーションがセキュリティの基準に達していることを確認するために、セキュアSDLCプラクティスが採用されています。 究極の目標は常に、無敵のソフトウェアソリューションを作成することです。

安全なSDLCプロセスには、要件の収集から展開前のテストまで、5つのフェーズがあります。 焦点は、脅威と脆弱性をすべてのステップで軽減して、それらが次のステップに持ち越されないようにすることです。