サイバー攻撃は年々増加傾向にあり、開発においてもセキュリティの重要度が高まっています。そこで従来のDevOpsにセキュリティを統合した新たな開発スタイルとして、DevSecOpsが注目されています。本記事では、DevSecOpsの概要と主な実施内容、導入における課題について解説します。
DevSecOpsとは、開発(Development)、セキュリティ(Security)、および運用(Operations)を一体化した新しい開発スタイルのことです。システム開発における要件定義や設計、リリース、運用に至る各フェーズにおいて、セキュリティ対策を組み込みながら開発を進めます。DevSecOpsはDevOpsのフレームワークを基にしており、セキュリティを考慮しながらも迅速なリリースサイクルの実現を目指します。
従来、セキュリティは開発の最後に検討されることが多かったのですが、近年はアジャイル開発など開発サイクルが短くなる傾向にあり、従来の手法でのセキュリティ対策では追いつかなくなってきました。また、フェーズごとにセキュリティを考慮しておくことで、より効率的にセキュリティ対策を組み込めるようになり、システムの脆弱性を最小限に抑えられると期待されています。DevSecOpsでは開発の初期段階からセキュリティチームが関与し、開発のライフサイクル全体でセキュリティを考慮します。
DevSecOpsではセキュリティの専門家を開発チームに入れた上で、開発サイクル全般でセキュリティ対策を行います。そのため、組織内においてセキュリティの重要性を重視する文化が根付くことが求められます。
DevSecOpsでは、開発の初期段階からセキュリティ専門家をチームに組み込み、セキュリティを考慮しながら設計を進めます。自動セキュリティテスト用のツールを導入するなど、開発プロセスにセキュリティ関連のツールや作業を積極的に取り込むことも特徴です。開発サイクル全般において継続的なセキュリティ監視が可能になり、成果物に内在する脆弱性を素早く発見し、対応できるようになります。
開発中のアプリケーションのソースコードは、セキュリティのベストプラクティスに従って設計する必要があります。変更管理ツールを活用して、使用するソフトウエアの変更や更新時にセキュリティの脆弱性が生まれていないかチェックします。また、ソフトウエアがセキュリティやプライバシーの規制に準拠していることを確認します。
開発チームと運用チームがセキュリティの専門家と密に連携しつつ開発サイクルを回すことで、脆弱性の防止や早期発見ができます。そのためには従来の業務に加えてセキュリティの観点も検討する必要があり、セキュリティに関する組織内の教育および文化形成が不可欠です。全メンバーがセキュリティの基礎を習得し、組織としてセキュリティを重視する文化が根付くことで持続的なセキュリティ対策が可能となるでしょう。
DevSecOpsを導入するには組織文化を積極的に変更し、セキュリティの専門家の加入やチームメンバーにセキュリティ教育を施すことが必要です。
DevSecOpsは従来の開発スタイルとは異なるため、メンバーが積極的に取り組まなかったり、チーム間のコミュニケーションが上手くいかなかったりする場合があります。プロジェクトリーダーや経営層が、強いリーダーシップで新しい仕組みを取り入れることも必要となるでしょう。セキュリティの重要性について認識してもらうようメンバーと対話を重ね、開発が軌道に乗るまでは遅延やトラブルの発生を想定しておく必要があります。
社内にセキュリティの専門家がいない場合は、必要なスキルの見積もりと人材の補充、メンバーへのセキュリティ教育などの対応が必要となります。基本的なセキュリティ要件をメンバー全員が理解しておくと、セキュリティの専門家との協働開発もスムーズに進むことが期待できます。また作業の効率化のため、セキュリティ検査ツールのようなDevSecOpsをサポートするアプリケーションを導入するのもよいでしょう。
DevSecOpsは、継続的なソフトウエア開発の中でセキュリティ問題に積極的に対処するアプローチです。セキュリティの専門家をチームに加え、開発から運用までの各工程でセキュリティ対策を織り交ぜながら作業を進めます。セキュリティ問題は年々高度化し続けていることもあり、継続的に対策を検討する必要があります。技術や人材、ツールの導入だけでなく、持続可能なセキュリティ対策を組織文化として根付かせる取り組みを進めていくとよいでしょう。