2024年09月01日
DevSecOps(デブセックオプス)
~「+セキュリティ」でシステム開発をより速く安全に・システム運用をより柔軟性高く安全に ~
DevSecOps(デブセックオプス)とは
システムの開発と運用に関わる言葉で、”DevSecOps”を聞いたことはありますでしょうか?本コラムの2013年1月号の記事で「サービスの開発と運用を一体化!ユーザーに素早く価値を届ける『DevOps』」※1を紹介していますが、この”DevOps”にセキュリティ(Security)をはさんだ造語です※2。
アジャイル開発で注目されたDevOpsでは、開発(Development)と運用(Operations)の両チームが共同してシステム開発を行う効果を出す進め方でした。そこへさらにセキュリティ関連のチームを加えて開発から運用までのサイクルを通して、セキュリティを確保しながら共同でシステム開発していく進め方がDevSecOpsです(図1)。この進め方は2018年ごろから聞かれるようになり、クラウド上での開発や運用が普及するにつれて注目度が増しています。
この背景として、システム開発におけるリリースの間隔がそれほど短くなかった時代は、各段階が終了した後でセキュリティ関連のチームにチェックを受けるというプロセスでもあまり問題になりませんでした。しかし、アジャイル開発が進んでリリース期間が短くなってきた現在では、各段階の終了後から、別の組織にいるセキュリティ関連のチームにチェックを受けるという従来の進め方では、調整などに時間を要するボトルネックが発生しました。また、システムが高機能になればなるほどセキュリティの重要性はより高まっており、セキュリティのチェックレベルを上げると同時にこのプロセスを効率化することが重要になってきました。そのため、開発チームと運用チームだけではなくセキュリティ関連チームを合わせた形でシステム開発を進めるDevSecOpsが考え出されました。
DevSecOpsの特長
~シフトレフト、監査可能性・トレーサビリティ・可視化・可観測性~
DevSecOpsでよく使われる合言葉は「シフトレフト(Shift Left)」です(図2)。これは、左側から時系列的にシステム開発の段階を「計画」→「コード化」などの各段階に分けて考えたときに、より時系列的に早い段階(図の左側)でセキュリティのチェックと対策をせよ、という意味です。一般的に言われている通り、後から問題を発見して修正するより、早いうちに問題を発見し対策を実施する方が影響を最小限に抑えられるという面でも重要です。また、早いうちからセキュリティに関する検討を行っていくため、よりユーザー側の利便性に考慮しつつ高いセキュリティを保つことが可能になります。
DevSecOpsはDevOpsにSecを追加した進め方であるため、DevOpsと同様に継続的なデリバリーを行うことが前提です。継続的なデリバリーとは図1の通り開発(Dev)とOps(運用)を継続的に繰り返しながらシステム開発を行っていく考え方です。DevOpsで継続的デリバリーを行うときにはツールを組み合わせてシステム開発の効率を高めていきますが、DevSecOpsでも同様にツールを組み合わせて進めます。これらのツールには、いつ誰がアクセス権の変更や設定の変更などの操作を行ったかを記録して後から監査できる機能、そして、いつどのようなバージョンのコードとライブラリを組み合わせてアプリが構成されたかなどの履歴が分かるトレーサビリティ機能、さらにこれらの可視化を行う機能があります。DevSecOpsではセキュリティを高めることが目的であるため、インシデントが発生したときにすぐに確認できる監査可能性とトレーサビリティ、そしてこの二つの可視化をできることがとても重要になります。
最近ではこれらのデータを単に見える化するだけではなく、これらの情報からシステムの状態がすぐわかるようなオブザーバビリティ(可観測性)と呼ばれる機能が重要視されています。オブザーバビリティが高い開発・運用環境では、セキュリティを含めてトータルでシステムの状況を把握することができるため、より安全で何か起きたときもお客様とすぐに状況把握を行い対策することができます。
DevSecOpsのユーザー側のメリット
~セキュリティの可視化、ユーザビリティとセキュリティの両立~
DevSecOpsの進め方を取り入れることにより、開発を行う立場から見ると、セキュリティリスクを押さえながら開発効率を高めることができます。システム開発を依頼するユーザー側にとっては、コストが抑えられるだけではなく次のメリットがあります。
- セキュリティを含めた可視化が可能
従来では、計画時にセキュリティの定義を行い、ユーザーは、ある程度テストが終わった段階でのセキュリティ関連チームのチェック結果からセキュリティの状況を確認していました。DevSecOpsでは、可視化されている項目が多く、セキュリティについても確認ができます。また、ツールを使ったシステム開発の自動化が進み、セキュリティに関する項目の共通化につながるため、一貫性のあるセキュリティの実装ができ、想定外のセキュリティホールの発生を防止できます。
- 早い段階でセキュリティの実装状況を確認可能
一般的にセキュリティを高めれば高めるほどユーザーの操作感などのユーザビリティが阻害されるジレンマが発生しがちです。DevSecOpsはシフトレフトの合言葉のもとに、早い段階でセキュリティの実装状況を確認することができ、操作感などの問題点を早めに見つけることができます。もし、ユーザビリティにおいて許容しにくいセキュリティ項目があったとしても、早い段階で対策を行うことができます。
まとめ
クラウド上での最新のシステム開発では、シフトレフトの考え方を取り入れていることが増えてきています。さらに一歩進めて当社のようなシステム開発を請け負う側とお客様が一緒にセキュリティも含めた継続的なデリバリーを実現することで、セキュリティを確保した価値の高いシステムを構築していくことができます。
これを実現するDevSecOpsの進め方は今後普及していくことでしょう。
※1:「サービスの開発と運用を一体化!ユーザーに素早く価値を届ける『DevOps』」-「これからはコレ」(コベルコシステム)
https://www.kobelcosys.co.jp/column/itwords/279/
※2:「DevSecOpsとは?」-「用語解説-注目のトピック」(IBM)
https://news.microsoft.com/ignite-2023/
2024年9月
ITの可能性が満載のメルマガを、お客様への想いと共にお届けします!
Kobelco Systems Letter を購読最新の記事
年別
他の連載・コラム
Webでのお問い合わせ
お問い合わせ