DevSecOpsとは?
〜DevOpsとの違い、必要な組織カルチャー〜

DevSecOpsとは

2009年に登場したDevOpsは、開発と運用、両チームの協力によって迅速な開発プロセスを実現する手法で、現在多くの企業が採用しています。しかし、セキュリティに関しては、まだ従来のようにセキュリティチームに任せているケースが多いかもしれません。

近年、より迅速かつ安全な開発プロセスが求められる中で、DevOpsにセキュリティを組み込んだ「DevSecOps」というアプローチが登場しています。そして、DevSecOpsを社内でスムーズに浸透させるためには、組織全体がセキュリティ対策を自分ごととして捉えセキュリティ業務を積極的に行う組織カルチャーを根付かせることが重要です。本記事では「DevSecOpsの基本やDevOpsとの違い」「導入のメリット」「導入方法」そして「組織カルチャーの浸透方法」についてご紹介します。

DevSecOpsとは?

DevSecOps(デブセックオプス)とは「開発(Dev)」「セキュリティ(Sec)」「運用(Ops)」の3つのチームを連携させることで、迅速かつ安全にソフトウェアやシステム開発をするためのアプローチです。開発プロセスの全工程でセキュリティテストを実施することにより、問題を迅速に発見し対応する体制を強化できます。

DevSecOpsの導入により、セキュリティチームの必要性やセキュリティ関連の業務が軽減するわけではなく、組織全体のセキュリティ意識の向上と連携を強化するための重要な役割を担うことになります。これについては、DevOpsの導入が良い例でしょう。DevOpsは、開発チームと運用チームの連携方法を改善することで業務効率を高め、開発時間の短縮と品質の向上、コスト削減を実現しました。

DevSecOpsとDevOpsの違い

DevSecOpsとDevOpsには業務の統合レベルに違いがあります。特に開発プロセス全体に「セキュリティ業務」がどのように組み込まれているかが大きく異なるといえます。この違いについて図解を交えて解説します。

業務の統合レベルの違い

上記の業務フローが示すように、DevOpsでは開発と運用はサイロ状態ではないものの、2つに分かれています。それに対し、DevSecOpsの考え方は下記のような状態です。

セキュリティ業務はあらゆる工程で関わっています。DevOpsの誕生により開発プロセスが短縮され、品質向上とコスト削減が可能になりましたが、セキュリティ面での課題も残っていました。特に、リリース直前にセキュリティ問題が発覚すると、修正には時間と労力がかかります。この問題に対応するために登場したのが「DevSecOps」です。DevOpsの枠組みにセキュリティ要素を組み込むことで、セキュリティの強化と効率的な開発が両立可能になりました。

DevOps⇄DevSecOps、効果の違い

DevOpsとDevSecOpsの効果の違いは「セキュリティトラブルによるブランドイメージの低下を抑止する」という点にあります。DevOpsは開発チームと運用チームを組み合わせて開発時間を短縮し、品質向上とコスト削減を目指すアプローチです。

しかし、セキュリティ対策に関しては開発完了後に行われることが一般的です。そのため、問題が発生した際には、セキュリティ対策に時間を要したり、開発プロセスに手戻りが生じたりする可能性もあります。仮に、短期間で高品質のソフトウェアやシステムが開発されたとしても、サイバー攻撃によるサーバーダウンや情報漏洩などセキュリティの脆弱性が発生すると、ブランドイメージに大きな影響を及ぼすことになりかねません。

それに対してDevSecOpsでは、ソフトウェアの開発プロセスにセキュリティ対策を取り入れ、工程ごとにセキュリティチェックを行います。各プロセスを細分化し対策を行うことで、全工程で同じレベルのセキュリティチェックが可能です。さらに、DevOpsに型化したセキュリティ対策を組み込むことにより、重要な機能を高いセキュリティレベルで提供できたり、セキュリティの問題が発生した場合に優先して対応できたりします。DevOpsについては以下の記事でも詳しく解説しています。ぜひ併せてご覧ください。 「DevOps」とは?〜超基本から実践のポイントを解説〜

企業が「DevSecOps」を導入するメリット

DevSecOpsを導入すると、セキュリティ上の問題を早期に見つけられるため、時間や人員といったコストを削減できるメリットがあります。DevSecOpsでは、開発プロセスの全行程にできるだけ早い段階でセキュリティ対策を組み込む「シフトレフト」と呼ばれるアプローチを行います。開発プロセスは、時系列的に左から右へ流れる図でよく表現されますが、従来のセキュリティ対策は後半、つまり図の右側で行われてきました。このシフトレフトは、開発プロセスの左側で対策を講じるという意味で名づけられました。

例えば、セキュリティチームはコーディングの段階で、コードレビューだけでなく、SAST(静的アプリケーションセキュリティテスト)やSCA(ソフトウェアコンポジション解析)といったテストを行います。この段階でセキュリティの脆弱性を発見できれば、その後の構築や製品テストへの影響を避けられます。

企業の成長を促す「DevSecOpsの組織カルチャー」とは?

DevSecOpsの組織カルチャーとは、セキュリティの重要性や具体的な施策を組織全体が自分ごととして捉え、セキュリティ業務を積極的に行う文化のことです。組織内にこの文化が浸透するほど、DevSecOpsの導入がスムーズに進みます。システムなどのセキュリティが向上し、ひいては企業全体のリスク管理能力や競争力の底上げにつながるでしょう。本章では、DevSecOpsの導入に欠かせない「DevSecOpsの組織カルチャー」の特徴をご紹介します。

各チームがお互いの要件を理解する組織

組織内でのセキュリティチームの位置付けについて考えてみましょう。通常セキュリティは開発・運用・ネットワーク・ITなどの技術チームとは別に扱われます。例えば、新しいソフトウェアのリリースや、既存のソフトウェアに新機能を追加する場合、開発チームと運用チームは協力して作業を進めます。

しかし、セキュリティに関しては、ほとんどの場合セキュリティチームに一任され、対策が完了すると他のチームに引き渡されます。まるで、DevOps導入前の開発チームと運用チームの関係と同じです。DevOpsは開発と運用の両チームが開発プロセスの全工程で連携することを意味しますが、DevSecOpsは、そこにセキュリティチームを加えた考え方です。「3つのチームが連携できるようにそれぞれの業務を効率化する」ことを目的として新しい組織カルチャーを作り、DevOpsの時と同じく、各チームがお互いの役割と必要なことを理解し合い、協力し合う文化を築くことが重要です。

スタッフがチームを信頼できる環境

DevSecOpsを導入する際には、スタッフがチームを信頼できる環境を構築する必要があります。そして、DevSecOpsを実現するために、各スタッフがセキュリティ意識を高めると同時に、安心してインシデントを報告できるよう、感情に配慮した働き方を取り入れましょう。

PagerDutyでは、スタッフを騙すような行為を行わないという方針があります。しかし、他の企業によく見受けられるのが、会社が社員にフィッシングメールを送り、メールの開封やメール内のリンクをクリックさせるようなトレーニングです。このトレーニングは、フィッシング攻撃がどれだけ巧妙で、危険であるかを体験させることが目的です。

しかし、人を騙すようなトレーニング方法で人としての大切な学びや、本当の目的を達成することは可能でしょうか。セキュリティに関するトレーニングでは、セキュリティ侵害の手口に関してスタッフの意識を高めること、どのようなインシデントにも対処できる状態を目指します。その状態を実現するには、スタッフがチームを信頼し、安心してインシデントを報告できる環境を確保することが必要です。

企業のリスク管理能力を底上げする「DevSecOpsの導入方法」

DevSecOpsの組織カルチャーを開発プロセスにかかわるメンバー全員が理解することで、企業のリスク管理能力や競争力向上につながります。しかし、DevSecOpsの導入時には、従来の考え方や取り組み方を変える必要があり、抵抗感や課題が生じるケースもあるでしょう。本章では、DevSecOpsの理解の助けとなる「DevSecOpsの導入方法」をチーム別にご紹介します。

セキュリティチーム向け

セキュリティの専門スタッフの多くは、開発作業を自ら進めた経験がなく、開発スタッフや運用スタッフにはセキュリティの実務経験がありません。この両者の溝を埋めるには、「お互いの立場で物事を考えること」が重要です。そのための具体的な方法としては、セキュリティチームも開発業務に関わることが挙げられます。開発サイクルのすべてに責任を持つことで、開発チームや運用チームと同じ視点を持てるでしょう。ソフトウェアの選択一つをとっても、実行やメンテナンスの観点だけでなく、ビジネスの観点からも適合性を考慮します。

簡単な例として、セキュリティ関連の業務ではセキュリティチームが開発をリードするケースがあります。業務をリードする方法についてさらに詳しく知りたい方は、フルサービスオーナーシップ型運用ガイド(英語)をご覧ください。

開発チームと運用チーム向け

開発チームと運用チームには、セキュリティに対する意識を高める演習が必要です。その演習としては、設計段階でさまざまな機能をリリースする際に行なう「脅威モデリング演習」への参加をおすすめします。

脅威モデリングとは、ソフトウェアやサービス、環境などを新規に開発または修正をする際に、複数のチームが共同でセキュリティへの影響を分析する作業です。例えば、ネットワーク設計に変更を加えた場合、変更された設計のセキュリティが担保されているかどうかを調べるために、脅威モデリングが必要になります。

セキュリティへの関心度を高めるトレーニング法

チームの結束を強化し、セキュリティへの関心度を高めるトレーニング方法をご紹介します。組織の中で、セキュリティの弱い部分と強い部分を挙げて分類してもらう「セキュリティトレーニング」です。参加者は自分たちの組織におけるセキュリティの強みと弱点を議論し、リストアップしていきます。

共通の課題に取り組むことで、リーダーとスタッフの距離が縮まるなど、チームとしての一体感が生まれ、セキュリティ意識の向上にも繋がります。このように、トレーニングにはチームの関心を引く工夫が大切です。

例えば、「クロスサイトスクリプティング(XSS)攻撃のデモを見せる」「錠前を壊さずに開けるピッキング技術の例を見せてセキュリティの考え方と結びつける」など様々な方法があります。なお、PagerDutyでは、トレーニングツールを無料で提供しています。 ApacheライセンスによるオープンソースのPagerDutyのトレーニングツールは、企業や組織のニーズに合わせて自由にご利用いただけます。ぜひ、セキュリティへの関心度を高めるトレーニング(英語)に活用してください。

DevSecOps組織カルチャーへの理解を深め、スピーディーで安全な開発を目指そう

DevSecOpsの組織カルチャーを浸透させるには、組織全体のセキュリティに対する意識変革が必要です。「各チームがお互いの要件を理解する組織作り」や「スタッフがチームを信頼できる環境作り」などを行うことで、よりスムーズにDevSecOpsの導入と実践が進むでしょう。DevSecOpsを導入する際には、DevSecOpsの導入に成功したDatadog社の事例をぜひ参考にしてください。また、DevSecOpsついてさらに詳しく知りたい方は、PagerDutyの「DevSecOpsガイド」をぜひご覧ください。

PagerDutyを14日間無料で試してみる

700以上ものツールと連携。システム障害を自動的に検出・診断するだけでなく、適切な障害対応メンバーをアサインし、デジタル業務全体の修復ワークフローを自動化します。

PagerDutyイメージ

この記事が気になったら

  • Facebook
  • LinkedIn
  • twitter
  • はてなブックマーク

PageDuty公式アカウントをフォロー

  • Facebook
  • LinkedIn
  • twitter

関連ブログ記事関連ブログ記事

検索検索
タグタグ
インシデントをより早く・少ないリソースで解決
閉じる