Skip to main content

DevSecOpsのベストプラクティス8選 - セキュアな開発を実現

著者

2022年9月26日

0 分で読めます

開発ライフサイクルの終盤まで待ってセキュリティテストを実施し、セキュリティのベストプラクティスを導入する時代は終わりました。DevSecOpsの基本原則は、もはや単なる推奨事項ではありません。現代の開発組織にとって欠かせないものとなっています。

そうなったのには、十分な理由があります。セキュリティを開発の早い段階から取り入れることで、組織は多くのメリットを得られます。これまで分断されていたチーム間の連携が進み、脆弱性が減少し、エンドユーザーに提供する製品の品質も向上します。

DevSecOpsを実践するには?

DevOpsとDevSecOpsの違いを見てみましょう。DevOpsは、開発チームとIT運用チームの連携を強化し、責任を共有することに重点を置いています。一方、DevSecOpsの文化では、さらにセキュリティの要素が加わります。つまり、開発チームと運用チームは、開発プロセスのあらゆる段階でセキュリティツールとプラクティスを活用する責任を担います。また、確立されたDevOpsの原則は、セキュリティにも適用されます。

そのためには、組織と文化に対する考え方を変えるとともに、脆弱性の発見と修正にチームが主体的に取り組める、開発者を第一に考えたDevSecOpsツールが必要です。まだDevSecOpsを導入していない場合は、DevSecOpsを4つのステップで導入する方法をご覧ください。

DevSecOpsのベストプラクティス8選

  1. 開発者を第一に考えたセキュリティ

  2. 正確性

  3. 実行可能性

  4. 責任の明確化

  5. DevSecOpsの成熟度モデル

  6. 継続的改善の文化

  7. 成功を測定する

  8. オープンなコミュニケーション

多くの組織がDevSecOpsのベストプラクティスの重要性を理解している一方で、実践に苦労している組織もあります。組織全体のSDLCにセキュリティを無理なく組み込み、開発者やIT運用チームがすでに行っていることを妨げず、むしろ支える方法を考える必要があります。

開発のあらゆる段階にセキュリティを組み込むうえで役立つ、DevSecOpsの8つの基本原則をご紹介します。

1. 開発者を第一に考えたセキュリティ

開発者には、既存のプロセスに統合できるDevSecOpsテクノロジーを活用してもらう必要があります。そのためには、開発ワークフローにおけるセキュリティを可能な限り自動化することが重要です。

Snyk Open Sourceは、IDEやCLIでコードを書いている段階から脆弱な依存関係を検出し、マージ前にプルリクエストをスキャンします。また、CI/CDに自動テストを追加し、実行環境を定期的に自動テストすることで、この課題に取り組みます。

2. 正確性 - チームメンバーに最も関連性の高い重要な情報を提供する

セキュリティ、開発、運用の各チームでは優先事項が異なります。そのため、各チームに関係のある情報だけが届くよう、企業は工夫する必要があります。具体的な方法をいくつかご紹介します。

  • 情報の配信を役割に応じて設定する

  • 正確性、実行可能性、緊急性を重視してレポートを最適化する

  • シグナルとノイズの比率を改善する

  • 誤検知を減らす

これにより、チームはアラートや通知に埋もれることなく、自分たちに最も関係のある情報に基づいて行動できます。

3. 実行可能性 - セキュリティの背景情報を提供する

セキュリティアラートは有用ですが、セキュリティ以外のチームには、どう対応すべきか明確な指針が必要です。脆弱性の内容や原因といった背景情報に加え、IDEやCLIでの修正方法も示しましょう。

また、開発者がセキュリティ教育を受け、セキュアコーディングのプラクティスに従って脆弱性を軽減する方法を理解できるようにすることも重要です。

4. 責任の明確化 - セキュリティの責任者は誰か?

誰かが責任を持たなければ、セキュリティ対策は実施されません。各チームにセキュリティの責任者となる窓口を置く、セキュリティチャンピオンプログラムを構築しましょう。

さらに、スタック全体にわたって開発チームとセキュリティチームの連携を促進しましょう。明確な責任範囲を定め、部門横断型のチーム間で合意しておくことが欠かせません。開発の各領域をどのチームが担当し、そのセキュリティを誰が担うのかを明確にすることが重要です。

5. DevSecOps成熟度モデルに取り組む

DevSecOpsのベストプラクティスを実践し、組織として成熟させるなかで、チームはどこを目指すのでしょうか。また、セキュリティを成功に導くためのビジネスロードマップはどのようなものでしょうか。

取り組みを始める際には、計画を立てることが重要です。初めて取り組む組織は、OpenSAMMなど業界標準の成熟度モデルを活用して、セキュリティのガードレールを設け、インシデント対応プロセスを標準化できます。また、組織のセキュリティ成熟度を定期的に評価しましょう。そうすることで、次のステップを計画し、成果を見極められます。

6. 継続的改善の文化を築く

継続的改善のモデルには、改善の機会を特定すること、プロセスを測定して体系化すること、ばらつきや不具合、サイクルタイムを減らすことなどの原則が含まれます。

DevSecOpsの文脈では、これは継続的なセキュリティテストや業務プロセスの改善、リソースの無駄の削減につながります。また、まず修正すべき最も重要な問題をチームが優先し、新たな脅威や変化する組織の優先事項に応じて、セキュリティプログラムを継続的に成熟させることも意味します。

7. 成功を測定する

関係するステークホルダーと協力して、セキュリティを測定するためのKPIを決めましょう。その後、セキュリティを改善する取り組みのなかで、一貫した基準として活用します。測定可能なKPIの例をいくつかご紹介します。

  • アプリケーションに存在する重大度の高い脆弱性の数

  • 脆弱性の修正件数(本番環境で修正された問題の数など)

  • 平均検出時間(MTTD)

8. オープンなコミュニケーション

ロンドンでは、公共交通機関の車内に、不審な行動を報告するための簡潔な呼びかけが掲示されています。「見たら、知らせて、解決しよう」。同じように、脆弱性も率直でわかりやすい方法で修正する必要があります。

ただし、それを実現するには良好なコミュニケーションが欠かせません。チームメンバーがセキュリティ上の問題に気づき、報告し、解決に取り組んでも、不利益を被らない環境を整えましょう。チーム内外でオープンにコミュニケーションできる文化を育み、問題の発見に貢献したメンバーを評価しましょう。

SnykでDevSecOpsの成熟度を高める

Snykでは、こうしたベストプラクティスの実践に役立つセキュリティツールを提供しています。当社のソリューションは開発者を中心に設計されており、既存のCI/CDパイプラインにも簡単に統合できます。また、開発者が実行可能な、背景情報に基づいた修正対応を進められるほか、その結果をエクスポートして成功の測定に活用できます。

オープンソースコンポーネント、クラウド、コンテナ、IaC、社内の独自コードを保護します。さらに、当社のDevSecOpsツールでは、チームごとに異なるアラート設定を行い、ユーザーグループに基づいて受信アラートを自動割り当てしたり、通知プラットフォームやカスタムアラートと連携させたりできます。また、SDLC全体に適用するセキュリティポリシールールも簡単に設定できます。

Snykのソリューションは開発プロセスに簡単に統合でき、ソフトウェアパイプライン全体を継続的にスキャンし、ワンクリックで迅速に修正できます。開発者を第一に考えたDevSecOpsツールについて詳しく知りたい方は、デモを予約してください。

カテゴリー:

続きを読む

feature insights context
Blog

自律型攻撃はすでに始まっている。防御もそのスピードに追いつかなければならない。

自律型攻撃者によって、防御に使える時間は短くなっています。継続的な検出、修復、検証、予防で、セキュリティチームが攻撃に歩調を合わせる方法をご紹介します。

illustration hero ai
Blog

Agentic AppSecとは?

Agentic AppSecが、根拠に基づき、範囲を限定され、独立して検証されるAIエージェントを活用して、アプリケーションセキュリティの一連のプロセスを実行する方法をご紹介します。

Blog

Evo ADSのエージェント動作ガバナンスが一般提供開始:MCPの利用を管理

Evo ADSのエージェント動作ガバナンスが、MCPガバナンスから一般提供を開始しました。主要なAIコーディングエージェント全体で、MCPサーバーの利用を検出、承認、監視、記録、ブロックできます。