DXを加速させる開発手法となるDevSecOps
これら課題を解決しリスクを低減し、DXを推進するアプリケーションを迅速に開発して、市場変化に追随できるようにする。そのために生まれた新たな開発手法がDevOpsだ。DevOpsでは開発と運用が密に連携し、短いサイクルで開発を行う。DevOpsのサイクルをどんどん回すには、スピードが必要だ。そのためのツールが、継続的インティグレーションと継続的デリバリーのCI/CDだ。CI/CDを使えば、開発したものを自動でテストしデプロイできるようにもなる。
DevOpsをセキュアに進める工程で重要な概念が「シフトレフト(Shift Left)」である。開発工程のなるべく前のフェーズで、脆弱性などのセキュリティリスクを見つけることで、後の手戻りコストを下げられる。DevOpsとCI/CD、そしてテストのシフトレフトの3つで、企業のDXを迅速に進められるようになる。そしてこのDevOpsに、セキュリティをしっかりと取り込むのがDevSecOpsだ。
さらに、DevOpsの開発、運用のそれぞれのフェーズで、セキュリティチェックを確実に実施し、負荷を上げず自動化できる方法について佐々木氏は解説。DevOpsでDXを加速するためのアプリケーション開発、運用のプラットフォームに、コンテナを採用・検討するケースが増えてきた。
コンテナで様々な機能を部品として構築し、それを連携させ必要な機能に組み立てる。コンテナで作ることにより、可搬性も確保できる。そして短いサイクルで更新できるようにするため、一つひとつの機能を小さな単位にし、それにより影響範囲を最小化することで対処をしやすくもできるのだ。
コンテナベースのアプリケーションを開発する際には、コンテナを動かすIaaS/PaaSの脆弱性を突かれるような脅威がある。実際、Amazon S3の設定ミスを突くGhostWriter攻撃が発見されており、外部からS3に書き込める設定となっていたことで、間接的に脅威の媒介者になるといったセキュリティ脅威が報告されている。
「これはAWSの基盤である低いレイヤの話で、クラウドでのアプリケーション開発の際には、そういったところまでしっかりと見ていかなければなりません」と佐々木氏。またコンテナにも脆弱性はある。それを突かれコンテナを不正にマイニングに使われた例もある。つまりコンテナのインフラについても、開発者がセキュリティを考慮する必要があるのだ。
クラウドを利用するのだから、そういったインフラの脆弱性管理はクラウドベンダーがやってくれるのではと考えるかもしれない。しかしそれは違うと佐々木氏は指摘する。クラウドは責任共有モデルになっており、クラウド事業者と利用者で対処すべきことは分けられている。そしてIaaS/PaaSの利用では、実は利用者側が対処すべきことがたくさんある。そのことを、認識しておかなければならないのだ。
実際にクラウドでアプリケーションを開発し利用していく際には、CWPP(Cloud Workload Protection Platform)とCSPM(Cloud Security Posture Management)の2つの領域のセキュリティ対策が必要となる。CWPPは従来のワークロードに対するセキュリティ対策で、アンチウィルスや仮想マシンのセキュリティ対策などがそれだ。
一方CSPMは、クラウドのインフラ設定を確実に行い、セキュリティを担保するものだ。「これら2つの機能を組み合わせていくことが、これからのトレンドです。それがCNAPP(Cloud Native Application Protection Platform)という新しいカテゴリーになっています」と佐々木氏。ここで言うCNAPPのクラウドネイティブとは、クラウド上のAPIなどを使い、クラウド基盤と直接やり取りすることでセキュリティ管理を行うソリューションを指す。
MVISIONを使えばDevSecOpsを手間なくセキュアに実現できる
従来のようにOSやネットワークのセキュリティを担保し、さらにクライアント環境のマルウェア対策なども施すのはもちろんだ。その上で、OSの上にあるコンテナのセキュリティ対策も考える必要がある。これらをマカフィーでは、CNAPPに対応したMVISION Cloud(以下、MVISION)で対応している。
企業のクラウド活用の現状として、クラウドの選択を1つに絞るのではなく、複数利用するマルチクラウドがキーワードとなっている。それぞれのクラウド提供事業者がセキュリティ対策を用意しているが、MVISIONなら複数のクラウドに対して、一つのポリシーに基づいてセキュリティ対策を実現できるため、ポリシー策定の手間が省けるし、クラウド選択の自由度も広がる。
たとえば金融機関であれば、PCI-DSSなど業界独自の規制があり、それを各社がセキュリティポリシーに落とし込んでいる。MVISIONを使えば、そのポリシーを複数クラウドに対して統一的に適用できる。「MVISIONならAPIレベルで、リアルタイムに対応できます」と佐々木氏。たとえばAmazon S3のGhostWriterの対策も、S3に書き込まれた際にすぐにチェックし、対策のアクションを迅速にとることが可能となるのだ。
DevSecOpsの観点でのセキュリティ対策としては、コードを書いてビルドしてそれを公開するそれぞれのフェーズの間に、MVISONがAPI連携してセキュリティスキャンや脆弱性スキャンを実施することで実現する。DevOpsの開発サイクルのビルド、シップ、デプロイ、ランの間に、コンテナの脆弱性チェックを行い、さらにコンテナオーケストレーションの動きもモニタする。また裏ではIaaSの脆弱性チェックなども並行して走らせることも可能だ。
将来的にはMVISIONで、開発におけるあらゆるタイミングでセキュリティをチェックし、安全性を担保できるようにする。それを自動的に行えるようにすることを目指すと、佐々木氏は言う。
デモではCI/CDのツールであるJenkinsを用い、CI/CDのパイプラインにMVISIONを連携させる様子が紹介された。コードを書きビルドをすると、MVISIONでセキュリティチェックが自動で走り、セキュリティの甘い部分を指摘する。当該部分では、プログラムのバグを修正するのと同様な作業でコードを修正して対処できる。
セキュリティエラーの詳細は、開発者だけでなく管理者も見ることができる。子会社などに開発を委託している場合にも、プロジェクト管理者がコードレベルのセキュリティ対策状況を確認し、着実に管理できる様子が示された。
佐々木氏はDevSecOpsを実践することで、セキュリティをしっかりと組み込んだDXのためのアプリケーション開発ができると主張し、それによりさらなるDXに取り組んで欲しいとメッセージを贈り講演を締めくくった。