DevSecOpsを確立する方法:企業が直面する間違いとは?
シンガポールのSP DigitalはDevOpsで大きな成果を挙げている。同社は一歩進んでDevSecOpsの確立に着手した。だが、DevSecOpsには不可欠な要素がある。
SP Digitalは、シンガポール最大の公共事業サプライヤーSP(Singapore Power) Groupのデジタル部門だ。同社はDevOpsを採用し、ソフトウェアリリースを以前よりもはるかに迅速化している。その一例がモバイルアプリの「SP Utilities」だ。このアプリは公共料金の使用量を家庭で管理できるようにする。同社はこのアプリを2週間に1回更新している。約4年前、DevOpsを採用する前の更新頻度は数カ月に1回だった。
関連記事
- マイクロサービスはセキュリティの複雑性を増大させる
- 無思慮なS/4HANA移行で発生するセキュリティリスク
- DevOps導入を成功させるための10の法則
- コンテナとDevOpsに求められるセキュリティ
- いまさら聞けないCI/CD入門
SP Digitalのエンジニアリング部門でバイスプレジデントを務めるコリン・レオン氏は、同氏が率いるチームがITサプライヤーからこのアプリを引き継いだ当時、ソフトウェアのリリースは散発的で、事前に行う必要のあることを定義することから始めなければならなかったと語る。
「今では新機能を迅速にリリースできるようになった。同時に、突然生じる恐れのあるあらゆる種類のバグや欠陥にも対処できるようになった。当社のパイプラインははるかに強力になり、新機能を送り出す能力は以前に比べて格段向上したと考えている」(レオン氏)
SP DigitalはDevOpsを通じてコードの品質を向上させたのと同じように、DevSecOpsを通じてセキュリティを強化することに目を向けるようになった。DevSecOpsとは、ソフトウェア開発の初期段階でセキュリティを考慮する取り組みだ。
調査会社IDCによると、アジア太平洋地域では2024年までに新規アプリケーションの少なくとも50%がDevSecOpsを取り入れ、ソフトウェア開発のライフサイクルを短縮するようになるという。
「ソフトウェア開発プロセスの中盤や最後にセキュリティに対応する以前のやり方は、コストがかかり過ぎ、非効率になっている」と語るのはIDC Asiaでリサーチマネジャーを務めるジーナ・スミス氏だ。
「セキュリティへの取り組みをプロセスの前半、つまり計画段階に移すことで、効率が大幅に向上してコストが削減される。要は、最初から品質の高いコードを作成することだ」と同氏は補足する。
オープンソース、クラウド、アプリケーションのコンテナ化を利用する企業が増えるにつれ、「複雑な一連の課題」に直面する企業も増える。こうした課題への対処に役立つのが成熟したDevSecOpsポリシーだとスミス氏は話す。
「DevOpsパイプラインの各段階にセキュリティの計画、検証、監視を組み込むことは、開発者、IT部門、セキュリティ部門の間にある昔ながらの分断(敵意)の橋渡しになる」(スミス氏)
SP Digitalのレオン氏が率いるチームは現在、DevSecOpsを可能にするツールを探しているという。大きな課題は、同社のセキュリティ機能が企業セキュリティを中心にしていることだ。
同社はアプリケーションセキュリティの専門家を最近雇用した。この専門家の役割は、SP DigitalのDevOpsプラクティスを形作り、開発プロセスにセキュリティを組み込むのに適したツールを導入することだとレオン氏は話す。
かつて著名なGoogleサイト信頼性エンジニアリング(SRE)グループの一員で、PuppetのフィールドCTO(最高技術責任者)を務めるナイジェル・ケルステン氏は、DevSecOpsプラクティスで自動化を大規模に導入する重要性を強調した。
「企業が直面する一般的な間違いは幾つかある。最大の間違いは、関係者全員が十分理解して信頼する大規模な自動化を行わずにDevSecOpsを導入しようとしていることだ」とケルステン氏は話す。
「大規模な自動化を行わなければ以前と変わらない手作業のプロセスになり、相変わらずやる気が空回りすることになるだろう。その結果DevSecOpsにはならず、Dev、Sec、Opsがそれぞれ独立した状態になる」(ケルステン氏)
企業は開発者が使いたくなるツールを選定しなければならない。「企業はセキュリティやインフラのツールを開発者に強制するだけでは駄目だ。APIによるプログラミングに適していて、役に立ち、容易にするインタフェースを用意する必要がある」とケルステン氏は補足する。
変更管理の検討も必要だ。ケルステン氏によると、意欲が違う複数のチームを連携させて変更管理を可能にするという難しい仕事を成し遂げなければならないという。こうした変更は難しく、簡単な答えはない。
「これまで繰り返し目にしてきたのは、スケーラブルな自動ソリューションを使って開発部門と運用部門のコラボレーションに成功した企業は、セキュリティでも同じように行い同じように成功していることだ」(ケルステン氏)
DevSecOpsのもう一つの課題は誤検知を抑えることだと話すのは、GitHubでアジア太平洋地域のバイスプレジデントを務めるサム・ハント氏だ。
「DevSecOpsのプロセスを導入すれば、必然的に脆弱(ぜいじゃく)性の検出率も高まる。そうなれば、当然誤検知も増える。その結果、セキュリティチェックの価値に対する開発者の信頼も損ねる。この事態への取り組み方によって、DevSecOpsの文化が生まれるかどうかが決まる」(ハント氏)
「重要度と影響度の点からバグに優先順位を付け、そのバグを解決する方法を決める必要がある。セキュリティを最優先するワークフローを運用することで、チームは最も重大な影響を及ぼすバグを特定し、時間をかけて管理するステップを取ることができる」とハント氏は話す。
DevSecOpsとは、根本的にセキュリティがサイロ化した機能ではないと認識することだ。そのため、DevSecOpsはサイバーセキュリティ戦略の基盤構造になる可能性がある。Puppetのケルステン氏はそう注意を促す。
「理想的には、セルフサービスインタフェースを使って高度な自動化を導入する運用チームと、アジャイルな手法を利用する開発者が企業で共存することだ。これを実現する最も効果的なアプローチは、設計から導入までとそれ以降のソフトウェアデリバリーサイクル全体でのコラボレーションを可能にし、それを強化することだ」(ケルステン氏)
そのためには、ソフトウェアデリバリーサイクルに関わる全ての担当者がセキュリティを念頭に置いてコーディングする必要がある。そう語るのは、Red Hatのアジア太平洋部門でアプリケーションプラットフォームの製品管理ディレクターを務めるビシャール・ガリワラ氏で、次のように補足した。従来のアプリケーション開発では必ずしもセキュリティが重視されていたわけではないので、トレーニングを必要とする開発者がいるかもしれない。
ガリワラ氏は、自社のセキュリティ要件とリスク許容度を判断し、リスク分析を実施するためのフレームワークを用意することを企業に提案する。「例えば、アプリケーションに必要なセキュリティ制御の量や、さまざまなアプリケーションを市場に投入するまでの時間の重要度などを判断する」
GitHubのハント氏によると、インフラセキュリティやID管理など、セキュリティの従来の職務はDevSecOpsの影響を受けないとしても、企業が「Infrastructure as a Code」「Policy as a Code」のような「as a Code」型のモデルに移行するときに、セキュリティの他の分野でのレビューを自動化するのにDevSecOpsのプロセスが役に立つという。
SP DigitalはまだDevOpsに取り組んでいる最中だ。レオン氏が率いるチームは、インフラ、運用、アプリケーション開発、セキュリティなど、各ITチーム間で学習交流を編成し、ベストプラクティスを共有しているところだ。
「幾つか成功を収め、ITプロジェクトの効果を高めるレベルの自動化を行って各チームを支援している。セルフサービスをもっと増やし、各チームの懸念事項にもっと自動化した方法で対処できるレベルに達することを目指している」(レオン氏)
Copyright © ITmedia, Inc. All Rights Reserved.