メニュー
紫の四角形

セキュアな開発ライフサイクル(SDL)

このページを共有

2022年5月

セキュリティの脆弱性は、コンピュータ業界のみならず、お客様の間でも広く認識されています。しかしお客様には、自分たちが使用している製品が安全であるという保証が必要です。ネットアップは、この保証を実現するために、潜在する脆弱性を評価して対応する製品開発の標準、セキュアな開発ライフサイクル(SDL)を開発しました。

ネットアップのSDLは、業界のベストプラクティスと標準を基に厳格なプロセスを定義し、製品チームは、このプロセスに従うことでセキュリティを評価し、セキュアな製品のリリースを計画できます。そのプロセスは、コードが1行も書かれていない最初の製品計画から始まり、リリース後の製品監視まで続きます。

ネットアップのセキュアな開発ライフサイクル(SDL)の概要

ネットアップに導入されているのは、繰り返し適用できる定義可能な6段階のプロセスのSDLです(下図を参照)。ネットアップのチームは、このプロセスに従って製品やサービスを開発することができます。ネットアップのチームは、製品開発の過程を通じて、事前に定義された、この明示的な一連のアクティビティを実施することで、製品が確実にセキュアであることを保証できます。SDLのプロセスを用いると、製品がもたらすリスクを把握し、製品チームがSDLに完全に準拠することで得られる効果を評価できます。

製品セキュリティ グループは、SDLのベストプラクティス、SDLに対応するための手順、セキュリティに関する専門知識を製品チームに提供し、製品チームは、提供されたSDLのプロセスとポリシーを実装して、セキュアな製品を提供します。SDLでは、サードパーティ製コンポーネントの脆弱性など、すべての既知の脆弱性に対して、適切な対処が施されていることが必要です。

ネットアップの6段階のSDLプロセス

ネットアップの6段階のSDLプロセス
security chart

SDLの基盤:セキュリティ トレーニングとセキュリティ チャンピオン

ネットアップのSDLプロセスは、トレーニングとセキュリティ チャンピオンの指名を通じて、製品チームのセキュリティ意識を高め、専門知識を増やすことから始まります。

セキュリティ トレーニング

セキュリティ トレーニング

製品の提供に関わる担当者には、セキュリティ トレーニングの受講が必要です。セキュリティ トレーニングは、現在の脅威、セキュアな開発テクニック、脆弱性、セキュリティ問題への対処方法に関する教育で構成されます。トレーニングの内容は、プロダクト マネージャー、開発者、品質管理など、職務に合わせて調整されるので、担当業務に関係なく製品セキュリティに対する意識を高め、業務にセキュリティ手法を組み込むためのサポートを受けることができます。

製品セキュリティに関して、必ず発生する変更点を知ってもらうために、ネットアップでは年1回のセキュリティ再教育トレーニングの受講を求めています。併せて、社内フォーラムや業界イベントへの参加を推奨して、担当者のセキュリティ知識の向上を図ります。

セキュリティ チャンピオン

セキュリティ チャンピオン

セキュリティ チャンピオンは、ネットアップの製品チームでセキュリティに重点的に取り組むプロフェッショナルです。それぞれの部署で、セキュアな開発のベストプラクティスとSDLの適用を促すとともに、製品セキュリティの全般的な浸透と理解を推進します。チャンピオンには全員、徹底したセキュリティ トレーニングが施され、特に、ネットアップのSDLを含めて、セキュリティのベストプラクティスを叩き込まれます。チャンピオンを指名する第一の目的は、開発チームにセキュリティ リーダーを配置することですが、チャンピオンは、製品セキュリティ グループの重要な連絡窓口として、製品チームがSDLを実行しているかどうかの監視役も務めます。

SDLの6段階のプロセス

ネットアップのSDLのプロセスは、セキュリティ評価、コンプライアンス計画とテスト計画の発表から始まります。続いて、製品セキュリティに関する問題とソリューションを徹底的に評価し、確認済みの脆弱性が解決されているかどうかを検証します。最後に、製品セキュリティ インシデント対応チーム(PSIRT)がリスクを報告し、監視を行って終了します。

1 セキュリティの評価

1 セキュリティの評価

SDLプロセスのこの段階には、製品セキュリティのベースラインのレビュー、脅威のモデリングと緩和、サプライチェーン エコシステムのレビューという3つのタッチポイントがあります。これらはすべて、コードの開発や実装の入る前の、設計開発の早い段階で適用されます。

製品セキュリティのベースラインのレビュー:製品セキュリティのベースラインとは、すべてのネットアップ製品に許容される最低限のセキュリティ レベルのことです。レベルの基準となるのは、ISO / IEC 27001などのセキュリティ標準や、ネットアップのお客様である企業や政府機関との契約です。レビュー プロセスでは、製品チームが、それぞれの製品を一つひとつの要件に照らして評価できるよう、一連の手順を確立します。手順を確立したら、不足しているベースライン機能を製品に追加するための計画を作成します。

脅威のモデリングと緩和:脅威のモデリングは、機能、コンポーネント、製品のセキュリティ上の欠陥を早期に特定する方法です。モデリングにより、製品チームは、設計がセキュリティに与える影響を体系的に検討し、セキュリティの脆弱性を効果的に洗い出し、リスクの有無を見きわめ、適切な緩和策を構築できるようになります。 

信頼できるサプライヤプログラム:このプログラムの目的は、戦略的サプライヤのエコシステムで、業界最高レベルのセキュリティを一貫して保証できるようにすることです。プログラムでは、ネットアップ製品の開発に関わる戦略的サプライヤを、新規組と復帰組を含めて評価します。この監査により、製品チームは、サプライヤの開発、製造、サポート プロセスにSDLのアクティビティが含まれているかどうかを検証できます。さらに、サプライヤから調達しているコンポーネントが、ネットアップの標準に従っているかどうかも確認できます。

2 製品リリースのための計画

2 製品リリースのための計画

この段階にあるのは、コンプライアンスとセキュリティ テストの計画作りという2つのタッチポイントです。

SDLのコンプライアンス計画:製品チームはコンプライアンス計画を通じて、個々のリリースに対して適用される許容可能なセキュリティ レベルを定義し、その基準を満たす責任をどのようにして果たすかを決めることができます。レベルを早期に定義することで、チームはセキュリティ上の問題に関連するリスクを理解し、製品の開発中にセキュリティ上の不具合を洗い出して修正し、プロジェクトの全過程にSDL標準を適用することができます。

セキュリティ テスト計画:セキュリティ テスト計画では、セキュリティ テスト ケースをテスト戦略に組み込み、認証、許可、保存データや転送中のデータの保護など、セキュリティのさまざまな要素をカバーします。セキュリティ テスト計画の作成と実行には、検出された問題の修正が含まれているため、製品リリースの前に潜在するセキュリティ上の問題を洗い出し、問題への対処が適切に行われていることを確認できます。

3 セキュリティ上の問題の洗い出しと対処

3 セキュリティ上の問題の洗い出しと対処

SDLプロセスのこの段階にあるのは、セキュアなコードのレビューによるセキュリティ バグの有無の確認、静的および動的なアプリケーション セキュリティ テスト、既知の脆弱性のランタイム スキャン(ファジング手法を含む)、サードパーティ製ソフトウェアの脆弱性のスキャンの6つのタッチポイントです。

静的なアプリケーション セキュリティ テスト:製品チームは、コンパイルの前にこのテストでソース コードをスキャンすることで、コードに潜在する重大な欠陥、セキュリティ上の弱点、脆弱性を発見できます。テストでは、各プロジェクトのビルド プロセス内のフックと、バグ追跡やコード レビューなどの一連のレポート ツールを使用して、製品の不具合にフラグを付けます。開発者は責任をもって、発見された問題の優先順位付けと解決にあたります。これにより、サポート上の課題の増加、メモリの破損、システム パニック、さらにはリモートでのコード実行など、そのリリースでの問題を回避します。

セキュアなコードのレビュー:セキュアなコードのレビューは、バージョン管理に提出する前に、開発の早い段階でセキュリティ バグを特定するための手法です。このレビューにより、共通脆弱性タイプ一覧(CWE)標準にある特定のコードパターンなど、セキュリティ上明らかな弱点がコードに悪影響を及ぼさないようにすることができます。セキュアなコードのレビューには、静的なアプリケーション セキュリティ テストと脅威モデリングから得られた情報が使用されます。

動的なアプリケーション セキュリティ テスト:製品チームは、完全にコンパイルされたソフトウェアでこのテストを実行することで、ランタイムの問題を特定できます。これにより、テスト環境やステージング環境で、組み込まれた実行中のコードのセキュリティをテストできます。スキャン操作には、テストするWebアプリケーションの設定が含まれます。これによりスキャンを容易にし、アプリケーションに対してスキャン ツールをスムーズに実行できるようにします。こうしたスキャンを実行すると、たとえば、アプリケーションがクロスサイトスクリプティングやSQLインジェクションに脆弱になるおそれがある入出力検証の問題など、脆弱性を幅広く検出できます。設定ミスやアプリケーションに固有のその他の問題を特定するのにも有効です。

脆弱性スキャン:開発中のネットアップ製品には、既知のセキュリティの脆弱性がよく見られます。それを洗い出すために、ネットアップでは標準プロセスに従ってシグネチャと設定チェックを使用しています。 

ファジング:ファジングは、セキュリティの脆弱性を見つけるための、自動ランタイム テスト手法です。不正なデータや無効なデータをプロトコル インターフェイスに投入して、意図していない結果にならないかどうかを確認します。ネットアップの製品チームが使用するファジング ツールは、プロトコル固有のテスト スイートに対応しており、自動ブラック ボックス ファジングを実行します。このテストにより、RFCへの非準拠などの問題を洗い出せます。ファジングは、動的なアプリケーション セキュリティ テストと併用されることが多く、コードをテストする際の開発スプリントの一部となっています。 

サードパーティ製ソフトウェアのスキャン:サードパーティ製ソフトウェアのスキャン(またはソフトウェア構成分析)は、サードパーティ製コンポーネントを使用する場合のセキュリティ リスクの管理に有効です。ネットアップ製品に組み込まれているオープンソース ソフトウェアや、サードパーティ製コンポーネントのインベントリも作成できます。コンポーネントに法的問題やセキュリティ上の問題があると、製品リリースの前に修正措置が必要になる場合がありますが、スキャンを行うことで、こうした可能性があるコンポーネントにフラグを付けることができます。これにより、製品チームは既知の脆弱性をすばやく特定し、それに対処するための計画を作成できます。新たに発見された脆弱性のレポートは、いつでも作成可能なので、このスキャンは継続的に実行して構いません。

4 検証

4 検証

セキュリティ上の問題を洗い出して対処したら、次は、施された修正を検証します。

5 リスクの報告

5 リスクの報告

SDLのプロセスにおけるリスクの報告には、プロセスのこれまでのタッチポイントで明らかになったリスクの評価、伝達、対処が含まれます。場合によっては、侵入テスト、正式なレポートの作成、製品固有のインシデントへの対応手順の作成などのステップが含まれることもあります。

6 監視

6 監視

脆弱性が公表されているか、社内で報告されているかに関係なく、脆弱性の調査の手配と管理は、製品セキュリティ インシデント対応チーム(PSIRT)の担当です。PSIRTは、ネットアップの対応についても責任を負います。これには、調査と緩和に関する公的アドバイザリが含まれます。製品チームは、PSIRTとの調整役として、チームの1人を代表者に指名します。

トップに戻る

To edit this Page SEO component





Drift chat loading