DevSecOps とは何か?

4月 14, 2019 セキュリティとコンプライアンス, MOVEit

最近、DevOps はソフトウェア開発のライフサイクルを短縮するための最適な手法という捉え方をされています。ですが、アプリケーション開発にテストが不可欠であるのと同様、セキュリティも欠かせない要素です。DevSecOps という用語が生み出された背景は自明だと思います。

今日の状況では、コンテナやマイクロサービスなどのアプリやサービスは、処理プロセスに機密データの送信が含まれるので、しっかり保護する必要があります。

DevOps でもセキュリティは常に念頭に置くべきであるのは、経験がある開発者やIT管理者にはよくわかっていることですが、これまで、DevOps と情報セキュリティとの整合性に関して特に強調されることはありませんでした。セキュリティを後から付け足すのではなく、DevOps の構想の中に最初からセキュリティを取り込むことを考慮したものが DevSecOps です。

DevOps の文化や方法論にセキュリティがどのように浸透しているかについて、データセキュリティ会社 Bluestone Analytics の CTO かつ共同創設者である Joseph DePlato 氏からお話を伺いました。DePlato 氏は、BP、American Express、Home Depot、および Palantir などの企業のサイバーセキュリティ上級コンサルタントを務めてきたプロのハッカーです。

DevSecOps とは?

DevOps においては、継続的な配信が重要です。DevOps は、IT部門と開発部門との効率的なコラボレーションを目的とする、アジャイル開発モデルおよび方法論ですが、DevSecOps の場合はセキュリティ部門とのコミュニケーションも検討する必要があります。

DevSecOps は、アジャイルフレームワークへのセキュリティの注入です。ソフトウェアリリースの間隙に間に合わせのようにセキュリティ対策を盛り込もうとするのではなく、セキュリティをソフトウェア開発ライフサイクルのすべてのメンバーにとっての共通の責任とすることを目指します。そのためには、開発部門、テスト担当者、運用担当者、そしてセキュリティ部門の間のコミュニケーションの強化が重要です。

DevOps という言葉が生み出されその概念が次第に普及する間、セキュリティについて配慮が及ぶことはなかったのですが、状況は変わりつつあります。

DePlato 氏は、次のように説明します。「ここ数年の間に、いくつかのことが起こりました。複数の大規模なデータ侵害事件、中でも最初に思い浮かぶのは、... Equifax 事件ですね。そして、EU の GDPR など、いくつかのコンプライアンスフレームワーク、ポリシーフレームワークが出てきました。」

様々なデータ侵害事件が大きく報道され、厳しいコンプライアンス規制も導入されて、企業は防御策を取らざるを得なくなってきており、ソフトウェア開発プロセスにおいてセキュリティが他の側面と同じくらい重要であると認識されるようになりました。そのため、DevSecOps という概念が考案され、情報セキュリティを念頭に置いた効率的なアジャイルフレームワークが模索されるようになりました。

セキュリティは共同責任

では、セキュリティに責任があるのは誰でしょうか?おそらくどこかで聞いたことがあるでしょうが、セキュリティの責任は共有されるものであり、全員に責任があります。IT部門は、自部門だけの努力ではフィッシング攻撃から全員を守ることはできないことを十分認識しているので、セキュリティへの責任を自覚するよう社員にトレーニングします。ビジネスの技術面でも同じことが言えます。セキュリティ部門はセキュリティ対策について熟知しており、プロトコルを実装することができますが、それでも、コードを書く開発部門は、すべてのコードにおいてセキュリティを考慮する必要があります。

「理想的なことを言えば、セキュリティは共同責任です。どんなセキュリティ部門でも、(セキュリティに関わる部分を) 可能な限り自動化して、新しい開発ライフサイクルに統合することを目指していると思います。」

DePlato 氏は、セキュリティ手順の自動化プロセスの例を挙げています。たとえば、サードパーティーのスキャナを使用して、毎日新しいビルドや新しいコードを分析できます。

「最近、ある組織がサードパーティー製のスキャナを開発ライフサイクルに統合するための支援を行いました。この結果、今では、1日1回、新しいビルドや新しいコードの変更があった場合、コードには静的分析と動的分析の両方が行われます。分析結果に応じてチケットが生成されてシステムに送り返され、現在のスプリントに追加されます。ですから、開発部門は、セキュリティ部門からのアドバイスを待つことなく、詳細なセキュリティ関係のレポートをチェックできます。セキュリティ部門は、全体を細部まで把握でき、問題があればすぐに検出して解決できます。」

ソフトウェア開発を継続的かつ迅速に行う必要があるアジャイル開発や DevOps のプロセスでは特に、自動化による支援は重要になります。

まとめ

アジャイル開発において、セキュリティは欠かせない歯車の歯になっています。しかし、セキュリティを DevOps のプロセスに組み込む方策は、IT、セキュリティ、開発チームにとって苦痛をもたらすような形で行われるべきではありません。適切な配慮をするよう心掛け、自動化やより安全なソフトウェアなどを利用して工夫することで、最終的にセキュリティ強化された体制を達成することができます。

ソフトウェア開発ライフサイクルに、セキュリティはしっかり組み入れられているでしょうか?よろしければ、コメントをお寄せください。

Greg Mooney

Greg is a technologist and data geek with over 10 years in tech. He has worked in a variety of industries as an IT manager and software tester. Greg is an avid writer on everything IT related, from cyber security to troubleshooting.