DevOpsによって従来のアプリケーション・セキュリティ・テストのプロセスやツールが破壊される可能性があります。より優れたコードを構築するためには統合的なDevSecOpsアプローチが重要である理由を説明します。
サイバーセキュリティには気が滅入るような労力が伴います。無防備なデータベース、ランサムウェアの被害、新種の不正行為、重大な脆弱性など、新たな問題が日々発生します。
これに対する最適な対策は、より質の高いソフトウェアの構築に取り組むことであり、そのためにDevSecOpsと呼ばれる概念をご紹介します。
DevOpsは次の3つの柱に基づいたソフトウェア構築手法です。
DevOpsは、数か月あるいは数年にわたる長い開発サイクルではなく、数週間程度の短期間に焦点を当てます。小規模のイテレーションを短いサイクルで反復することにより、プロセスの俊敏性を維持し、市場状況の変化や製品の価値創造のあり方に対する意識の進化に対応しやすくなります。
ソフトウェアの構築、テスト、パッケージ化、デプロイという従来の手順を可能な限り自動化することにより、開発者がソフトウェア機能を実装してからユーザーがその機能を使用できるようになるまでのタイムラグを短縮できます。
チーム内で定期的にSDLCを批評し、うまくいった点、遭遇した障害などを把握します。その上で、プロセス自体を調整して今後の改善を図ります。
DevOpsは、開発、リリース管理、運用といった従来の孤立化したチーム間の壁を打破し、ソフトウェアを作成する開発チームからそのソフトウェアを使用するユーザーへのスムーズで継続的な道程に主眼を置きます。
DevOpsはソフトウェアを迅速に開発するための一連のプラクティスの進化型ですが、セキュリティに直接取り組むものではありません。10年以上にわたる経験から、セキュリティはソフトウェアに追加できるものではなく、ソフトウェア開発の各フェーズに組み込まれている場合にのみ有効に機能することが実証されています。
そこで、ソフトウェア開発プロセス全体を通じてセキュリティを考慮するセキュア・ソフトウェア開発ライフサイクル(SSDLC)のアプローチが推奨されます。その例を以下に示します。
ITリーダー向けの英国を代表するビジネステクノロジーの出版物『Computing』は、アプリケーション開発、アプリケーション・セキュリティ、またはその両方に関わる150人の意思決定者を対象に調査を行いました。対象者はそれぞれ銀行・金融、物流、製造、小売、政府部門など、多様な業界の組織を代表しています。調査の目的は、アプリケーション・セキュリティ(AppSec)に関する組織の戦略的目標を検討し、DevOps 環境への統合と総合的なDevSecOpsプログラムの構築がどの程度進んでいるかを確認することです。
この調査では、自動化、迅速なセットアップ、使いやすさ、精度、統合、対策ガイダンス、スケーラビリティなど、具体的なニーズと課題を検討しています。また、これらの優先順位がDevSecOpsアプローチの成功にどのように影響するかを検討しています。
主な調査結果を以下にご紹介します。
まず、組織は総じてDevSecOpsの実装に積極的でした。回答者の半数近くが、DevOpsにセキュリティ・テストを全面的または部分的に統合しています。残りの回答者の多くが、統合などに興味を持っている、または積極的に計画していると答えました。
図1:DevOps環境へのアプリケーション・セキュリティ・テスト(AST)の統合はどの段階まで進んでいますか。
アプリケーション・セキュリティ・テストをDevOpsに統合している組織はその成果を高く評価しているという興味深い報告があります。DevOpsプログラムへのASTの統合の成功度を1~10の尺度で格付けするよう求める設問では、全体的なランキングは平均して7を若干超えています。回答者のほぼ5分の1(19%)がプロセスを10点満点で10と評価しています。否定的な回答をした回答者は少なく、5未満の評価はわずか9%でした。
特に興味深い調査結果は、セキュリティとソフトウェア開発を統合するメリットに関するものです。
「アプリケーション・セキュリティの向上」がメリットであるのは当然だと思われるかもしれませんが、そうとは言い切れません。コンプライアンスやガバナンスの圧力によってアプリケーション・セキュリティ・テストを強いられたと感じている組織は、テストを実行してもその結果を活用しない可能性があります。調査結果はそうした組織ではなく、セキュリティ・テストを統合し、その結果を有効に活用して製品を改善している組織の実態を示しています。
さらに、統合型のDevSecOpsアプローチには、他にも多くの利点があります。DevSecOpsは、基本的にソフトウェア開発ライフサイクルの統合・自動化された部分としてアプリケーション・セキュリティ・テストを不可視化し、セキュリティの脆弱性は他の課題と同様に課題管理システムに登録されます。統合型セキュリティ・テストでは、開発チームが発見および修正できるバグが増えるため、製品の品質、安全性、セキュリティ、回復力が向上し、より優れた機能を実現します。
図2: DevSecOpsの統合を進めた結果、次のどのメリットが得られましたか。