DevSecOps とはなにか
DevSecOps(読み方: デブセックオプス) とは、DevOps エコシステムをソフトウェアセキュリティにまで拡げるという概念であり、ここ数年で話題となってきたテーマでもあります。
本記事では、DevSecOps の概念と、DevSecOps が登場した背景について解説します。
DevSecOps を最初に理解するうえでの一助となれば幸いです。
DevSecOps とは
DevSecOps を一言で表すと、セキュリティ要件が組み込まれた DevOps です。
要件定義、設計、コード実装、デプロイに至る DevOps パイプラインの全体にセキュリティ観点を組み込んでいきましょう、という考え方です。
DevOps と DevSecOps の違い
DevSecOps が登場した背景
なぜ DevSecOps が重要であるかを理解するために、これまでソフトウェアのセキュリティがどのように機能していたか、一度振り返ってみましょう。
これまでソフトウェアのセキュリティを担保するタスクは、ソフトウェアの開発プロセスとは別で実施されていました。
開発チームとエンジニアは設計および実装に専念し、セキュリティについては二の次としていたのではないでしょうか。
ソフトウェアが開発され、プロダクション環境にデプロイされて初めて、セキュリティエンジニアが脆弱性診断を行う流れが一般的でした。
このアプローチにおける問題点は、特にデプロイの頻度・スピードに適応できず、とても非効率になってしまうことです。
セキュリティの問題が見つかった場合、すでに作成およびデプロイされているコードを切り戻す必要が発生します。
また、ソフトウェアがすでに実稼働状態になるまで問題が検出できず、組織がセキュリティの脅威にさらされることを意味します。
さらに昨今では「アジャイル開発」と呼ばれる、新しい機能を短期間で継続的にリリースしていくソフトウェア開発アプローチの採用も増え、この問題はより顕在化するようになってきました。
ソフトウェア開発チームは、セキュリティを犠牲にすることなくソフトウェア開発プロセスをスピードアップする方法を見つける必要が出てきました。
そこで「DevSecOps」では、この問題をソフトウェア開発におけるすべてのプロセスにセキュリティを統合することにより解決しようとしています。
これにより、開発者はコードを書くときにセキュリティについて考え、ソフトウェアは展開前にセキュリティ問題についてテストされ、デプロイ後にセキュリティ問題が現れた場合は開発チームが迅速に対処する計画を立てられるようになります。
デプロイ前の各プロセスにセキュリティの要件・工程を組み入れていくことから「シフトレフト(Shift Left)」と呼ばれることもあります。
Shift Left の概念
DevSecOps を実現するには
DevSecOps における理想の形は、コードを安全で高速にデプロイすることを確保しながら、セキュリティチームと開発者をつなぐことです。
そのためには、チーム間を越えたコミュニケーションとアプリケーションセキュリティの責任について双方が共通認識を持つことが大切です。
DevSecOps を実現するには、既存の IT リソースと DevOps プロセスを広く実践し、その上で強力なセキュリティを統合する全体戦略を構築する必要があります。
DevSecOps を体現するための専用ツールはなく、また DevSecOps に準拠した特定のプロセスといったものもありません。
さまざまなソフトウェア企業、セキュリティベンダーが試行錯誤を繰り返しながら洗練しているさなかにあります。
さいごに
今回は DevSecOps の概念についてご紹介しましたが、yamory では今後も DevSecOps を実現するためのトピックをご紹介してまいります。
また、先日セミナーおよびブログでご紹介した OWASP ASVS v4.0.1 は、開発者とセキュリティチームが共通認識を形成するために最適なドキュメントです。
同ドキュメントは、セキュアな Web アプリケーションに関する実装要件のリストですが、作者は DevSecOps を目的にもしています。
ぜひご一読ください。
最後になりますが、yamory では Web アプリケーションの約 9 割を占めると言われているオープンソースソフトウェアの脆弱性と、その脆弱性に関連する攻撃情報をモニタリングし、アプリケーションのセキュア化を支援いたします。
ぜひ一度お試しいただければ幸いです。