第10回 Security JAWSはシングルサインオンからセキュアなCI/CDまで盛りだくさん
お役所だってDevSecOps!パブリックセクターがクラウドを使う理由
2018年8月3日、東京・青山のナビタイムオフィスで行なわれた「Security JAWS 第10回 勉強会」では、クラウドを前提としたDevSecOpsの話題に加え、利用者が増えるに従って現実的な課題となっているシングルサインオンや環境のセキュリティチェックを支援するツールの紹介など、例によって豊富なトピックが取り上げられた。
お役所仕事とは正反対? 米国の政府機関で広がるDevSecOps
順番は逆になるが、強烈な印象を受けたセッションが、この日最後に行なわれた「AWS Public Sector Summit Re:cap(セキュリティ観点から)」だ。7月20日、21日の2日間、米ワシントンで開催された「AWS Public Sector Summit 2018」」に登場したパブリックセクターの先進的な取り組みを、アマゾン ウェブ サービス ジャパンの松本照吾氏が紹介した。
DevOpsというと、激しい競争にさらされているWebサービスやスタートアップ企業が取り組むもので、長年に渡って基幹システムを構築してきた大手企業、ましてやお固い官公庁などとは縁遠いもの、というイメージが強い。しかしAWS Public Sector Summitでは、よりよいサービスを提供すべく、むしろ民間企業以上に積極的にDevOpsに、さらにはDevSecOpsに取り組む公的機関の事例が紹介されたそうだ。
たとえば、米退役軍人省(VA)では、「退役軍人向けのサービスをどんどん作り替えたい。そのためにフィードバックループを早く回したい」という狙いでDevOpsを推進しているそうだ。自動化できる部分は自動化し、人を排除していった結果、1日に6回ものデプロイを行うペースで開発しているというが、「これを突き詰めようとすると、今までの環境、特にセキュリティ運用はフィットしないことに彼らは気付いた。事前にセキュリティ検査を依頼し、実際の検査作業に数週間も要するようでは、自分たちのやりたいことが実現できないのだ」(松本氏)
そこで同省ではそれまでのやり方を変えて新たにDevSecOpsを取り入れ、CI/CDパイプラインだけでなく、さまざまな階層にセキュリティを取り入れていったそうだ。1日に数回はデプロイするのが当たり前、OSのアップデートは日常茶飯事という形になったため、MeltdownやSpectreといった深刻な脆弱性が発覚したときも、問題なく対応できたそうだ。ただ一方で、組織の性質上、どうしても移行が難しいレガシーなアプリケーションも存在する。そうしたものについては「リスクを許容し、プロキシなどで保護しつつ、数年単位で環境を移行させた」という。
もう1つの事例は米移民局のケースだ。こちらも、移民向けにさまざまなサービスを提供するためDevSecOpsを取り入れていったが、「DevSecOpsというとどうしてもツールの話になりがちだが、移民局の場合は、セキュリティ部門と対話しつつ、どのように組織変革を進めていったかに重点を置いて紹介された」といい、松本氏お気に入りのセッションだったという。
「自動化という言葉がよくいわれるが、自動化それ自体が目的ではない。自分たちが何をしなくてはいけないか、そのためには何を変えなくてはいけないか、いまどのようにソフトウェアを管理し、実装していて、そのうちどこが人手に頼っており、どこをなくしていくか……そういったことをコミュニケーションの中で決め、どこまで何をやるかを数値化していくことが大切だ。つまりDevSecOpsとは組織や文化の話だ」(松本氏)
AWS Public Sector Summitの基調講演においてCIAのSean P. Roche氏は「クラウドはオンプレに比べてセキュアなことは当たり前。もっと大事なのはトランスフォーマシブなことだ」と述べたそうだ。DevOpsによってどんどんいいサービスを作り、フィードバックを得て作り替えていくには、レガシーなインフラ、レガシーなやり方では間に合わない。それを可能にするのがクラウドであり、今回紹介した2つの事例もそのことを体現したものといえそうだ。
「DevSecOpsは人類に早すぎるという話もあるが、そんなことはない」(松本氏)
なおカンファレンスではこうした事例のほか、AWSのパブリックセクター向けの機能やGoverement Gloudに関するセッションが行われたといい、講演は動画でも確認できる。
掟破り? 「AzureAD」を使って簡単に実現できるデスクトップSSO
クラウドの利用につきものなステップが「認証」だ。ここが破られてしまえば大変なことになるからこそ、サービスごとにしっかり認証を行わなければならないが、個別のログイン作業が面倒くさいのも事実。それが、パスワード使い回し問題の元凶の一つにもなっている。
この状況に対する一つのソリューションが、一度の認証で複数のサービスへの認証・ログインを行なえるシングルサインオン(SSO)だ。では、クラウドからデスクトップまで含めた環境でどのようにSSOを実現していけばいいのだろうか。T3Realizeの横堀達也氏は、「すぐ出来る!デスクトップSSOはサーバーレスで」と題したセッションで、「みんなSSOを導入したいと思いながら、面倒くさいと思っている。けれど、すぐにお金をかけずに実現できる方法がある」と述べた。それは、Security JAWSという場では意外に思える選択肢だが、マイクロソフトの「Azure AD」を用いるというものだ。
同氏は、SSOと一口に言っても、代行入力やリバースプロキシを用いるもの、SAML、OpenID Connectといった標準技術を用いるものなどいろいろな方式があることを紹介した上で、さまざまなシステムに対応でき、応用の幅が広いことから代行入力とSAMLが個人的にはお勧めだと述べた。
そしてAzureADを活用すれば、Windowsデスクトップも含めた即席SSOがサーバレスで簡単に実現でき、二要素認証を組み合わせることもできると述べ、その手順を説明。「サーバーレスを活用すれば、デスクトップSSOは簡単にできる」と述べ、奥深い認証の世界に足を踏み入れてほしいと呼び掛けた。
Amazon ECSも含め、セキュアなCI/CDパイプラインの実現を
続けて、トレンドマイクロの南原正樹氏が「Amazon EKS向けのDeep Security Smart CheckでSecure CI/CD Pipelineを」と題してセッションを行なった。
「これまでのセキュリティは、コードを書いてからテストし、それをOpsに引き渡してデプロイするが、それでも不安なのでWAFを使うという形だった。これに対して、できるだけ手戻りなくセキュリティを担保しようとするセキュリティ・バイ・デザインという動きが広がっている」(南原氏)
ただ、問題が1つ残っている。「DevOpsでリリースの頻度が高くなってくると、日々、いちいち手動でセキュリティチェックを行なうのが大変になってくる。なるべく開発を邪魔することなくセキュリティを取り込んでいくことが大切になってくる」(同氏)。
そこで、静的解析・動的解析ツールを活用し、セキュリティを組み入れながらパイプラインを回していくやり方が注目を集め始めている。従来はOpsの技術者が担ってきたセキュリティにDevの人々を巻き込み、開発サイクルの中にセキュリティを組み入れていく「シフトレフト」を実現しようというものだ。
だが、そこでもやはり課題が残る。Dockerなどのコンテナイメージのセキュリティだ。「Docker Hubから持ってきたイメージに脆弱性があったり、古いライブラリがそのまま使い回されていたりと、実はさまざまなリスクがある」(南原氏)
こうした状況も踏まえて、トレンドマイクロでは「SmartCheck」というツールを海外で発表済みだ。Jenkinsなどのツールと連動し、コンテナ内のイメージに対して脆弱性チェックやウイルスチェックを行い、問題がなければそのままデプロイを行うし、もし何らかの脆弱性があればSlackに通知を発するなどして開発パイプラインをいったん停止。修正してイメージをクリーンにした上でCI/CDパイプラインを流していく、といったプロセスを実現できるという。
ちなみにこのSmartCheck自体も、複数のコンテナが連動して動作するマイクロサービスとして実装・デプロイされているそうだ。南原氏はデモを紹介しながら「日本でもぜひこのツールをリリースしたい」といい、EC2などのインフラ側・Ops側だけでなくAmazon ECSも含めたパイプラインにおけるセキュリティを実現していきたいとした。
週刊アスキーの最新情報を購読しよう