• アプリケーション開発
  • インタビュー
  • コンテナ
  • クラウド

本格的な普及期を迎えたコンテナに潜むリスクとその抜本的な対策とは


                                                                        sysdig_article.png

デジタルトランスフォーメーション(DX)(※1)が進む中、アプリケーション開発の分野では迅速な開発・改善に大きな効果をもたらすコンテナ技術に、世界中から多くの関心が寄せられています。しかしその一方で、近年ではコンテナならではの課題やリスクが顕在していることも言及されるようになりました。
そこで今回、長年コンテナビジネスに携わり、多くの企業への導入、提案経験を持ちコンテナを熟知するキーマンにコンテナのメリットやデメリット、注意すべき点などについて詳しく話を聞きました。
※1 データやデジタル技術の活用を通じてビジネスモデルや組織を変革し続け、企業や組織の競争優位性を確立する活動のこと

インタビュー対応者:
第一課長  奧 浩史
SCSK株式会社
ITエンジニアリング事業本部
ミドルウェア第二部
第一課長  奧 浩史
第一課 課長代理 姜 来誠
SCSK株式会社
ITエンジニアリング事業本部
ミドルウェア第二部
第一課 課長代理  姜 来誠
堀場 豪人
SCSK株式会社
プラットフォームソリューション事業部門
事業推進グループ 営業推進部
第一課 堀場 豪人
Sysdig 導入事例 - 株式会社エヌ・ティ・ティ・データ様 | SCSK株式会社
NTTデータ様のキャッシュレス総合プラットフォーム「CAFIS」にSysdigが活用されています。詳細は本事例動画をご覧ください。

コンテナはDXの実現を下支えする最適なアーキテクチャ

堀場 クラウドを支える基盤技術の仮想化は今やすっかり定着し、次々と新しい技術も登場しています。その中でコンテナ技術は、アプリケーション開発の分野では最も注目を集めている技術のひとつです。海外企業を中心として、実に多くの企業が導入し、ITシステムの効率化を実現しているようですが、コンテナは何故こんなにも必要とされているのでしょうか。

 ひとことで言うならば、DXを実現するアプリケーションを下支えする最適なアーキテクチャがコンテナだからです。GAFA(Google、Apple、Facebook、Amazon)のようなITジャイアントがコンテナを活用していることからもわかるように、彼らが進めようとするDXサービスがコンテナなしに実現することは困難です。また、コンテナは新しい技術ではなく、10年以上前からOSS(オープンソースソフトウェア)の世界で成熟し、近年実用化し、DXに用いられることでイノベーションが起きている状況です。確実に将来にわたって使われ続けるテクノロジーといえるでしょう。

堀場 では実際に、コンテナはどのようにシステムを効率化できるのでしょうか。

 DX時代では、企業は競争優位制を獲得するため、生み出したアイデアをいかに早く形にして市場に提供し、素早く改善しながら進化させていくことが求められます。従来型のモノリシック(一枚岩)なアプリケーションアーキテクチャのような、企画からリリースまで例えば1年もかけるウォーターフォール型(上流工程から下流工程へ順次移行していく開発手法)で開発していたのでは、全くスピードが足りないのです。必然的にアジャイル型(小単位で実装とテストを繰り返す開発手法)で改修しながら進化させていくことが必要です。コンテナを使えば、複数チームで同時に開発し、本番環境にリリースしてデプロイメントの迅速性を実現するなど、DX的なアプリケーション開発サイクルに非常にマッチするわけです。

堀場 コンテナ単位でテスト環境を複製したり、テスト環境と本番環境を合わせたりすれば効率的になるということですね。

 その通りです。コンテナは、ホストOS上にアプリケーション本体や必要なライブラリ、設定ファイルなどをひとまとめにし、それをコンテナエンジン上で動作させる技術です。コンテナで機能をカプセル化することにより、ミドルウェア等アプリケーション実行環境のさまざまなバージョンの差異があっても、開発環境と本番環境での動作が担保されることが大きなメリットといえます。

また、マイクロサービスアーキテクチャという考え方では、アプリケーションの機能を細かく独立したコンポーネント単位に分割することで、迅速な開発・実装や、頻繁な機能強化、優れた可用性や再利用性を実現します。別のサービスを立ち上げる時でもコンテナを複製して再利用すれば、瞬時に新しいサービスとして市場に提供することができる。そんな考え方にもコンテナは非常に相性が良いのです。

コンテナ運用における5つのセキュリティリスク

堀場 万能に見えるコンテナも、日本での普及はまだこれからのようにも見えますが、その要因としては何が考えられるでしょうか。

 マイクロサービスや、CI/CD(継続的インテグレーション/継続的デリバリー)といったアプリケーション領域から、マルチクラウド&ハイブリッドクラウドといったインフラ領域まで、コンテナに関連するアーキテクチャは幅広い技術領域が求められつつも、一方でベストプラクティスがあまり確立しておらず、それが普及を妨げている要因のひとつかもしれません。数多くのコンテナを管理するためのオーケストレーションツールが、現在はKubernetes(クバネティス)にほぼ統一されようとしていますが、このKubernetesを活用するにはある程度のスキルが必要で、人材をどのように育成していくのかも課題です。また、コンテナを活用するためには、数多くのOSSを活用することになるので、OSSに関する知見なども必要となってきます。

 さらに、コンテナは開発中や運用後にいきなりダウンしたかと思えば、前触れもなく再起動することもあり、アップとダウンを繰り返す「クラッシュ・ループ・バックオフ」と呼ばれるような現象が発生することが報告されています。そのため、不安定な動作を検知して、サービスの継続的な運用を管理する、モニタリングの仕組みが不可欠だと考えます。加えて、マイクロサービスアーキテクチャを採用すると、個々のサービスの粒度がコンテナ単位となるため、数百~数千もの膨大なコンテナが生成されます。それらをまとめて監視するためにもモニタリングが課題となっているのです。

堀場 一方の、セキュリティという切り口で考えると、コンテナにはどのようなリスクがあると考えられますか。

 アメリカの国立標準技術研究所(NIST)では、政府調達の要件として定めたコンテナセキュリティガイドライン(NIST SP800-190)を公表しています。ここでは大きく5つのセキュリティリスクが提起されているのでご紹介したいと思います。

1つ目は、コンテナイメージに対するリスク。コンテナは個々にイメージファイルで管理され、内部には多数のコードやミドルウェアが格納されていますが、開発者の多くは開発から本番リリースに至るまでそれらの脆弱性を考えずに活用しているケースが散見されます。

2つ目は、レジストリに対するリスクです。コンテナにはイメージをまとめて管理するレジストリという機能があり、開発者が頻繁にアクセスします。このレジストリに安全ではない接続や、権限のないアクセスなどがあるとそれがリスクになります。

3つ目は、Kubernetesなどのオーケストレータが抱えるリスク。実は、Kubernetesはデフォルトで利用するには決してセキュアなプロダクトとは言えず、ある程度の危険は許容して利用するプロダクトと考えています。たとえばデフォルト環境の場合を考えると、容易に権限昇格ができてしまうなどの問題があります。そのため、SCSKでは対策をしていないKubernetesは大きなリスクになるとお客様にお知らせしています。

4つ目は、ランタイムソフトウェアに潜む脆弱性。ランタイムソフトウェアとは、「Docker」などに代表されるコンテナを動かすためのエンジンです。そのランタイムにもセキュリティ上のリスクが存在します。

5つ目はホストOSのリスク。土台となるハードウェアの上に載るOSそのものが抱えるリスクです。

コンテナのモニタリングとセキュリティを一元管理するSysdig

堀場 では、そうしたリスクに対してどのような解決策があるのでしょうか。

 代表的なものが、サーバーやソフトウェアのメトリクス情報を収集して監視を行うOSS「Prometheus」があります。さらに、コンテナの脆弱性を静的に検査するOSS「Clair」や、CVE(共通脆弱性識別子)データとユーザー定義のポリシーを使用してコンテナのセキュリティを検査するOSS「Anchore」なども有効です。ただ、あえて申し上げるなら、モニタリングとセキュリティを1つで解決できるソリューションがベストだと断言できます。

堀場 SCSKは、米Sysdig, Inc.とKubernetes環境向けセキュリティ・モニタリング プラットフォーム「Sysdig Secure DevOps Platform」(以下、Sysdig)の国内総販売代理店契約を締結して、2019年11月から提供を開始しています。その最大のセールスポイントが、モニタリングのテクノロジーをベースにセキュリティを実装した、世界初の製品ということでした。

 その通りです。Sysdigはコンテナ環境に特化し、1)監視、2)セキュリティ、3)トラブルシューティング、4)フォレンジック(法的証拠を識別するための調査解析)を単一の計測ポイントで一気通貫に提供できる世界で唯一のソリューションです。単一の計測ポイントとは、モニタリングやセキュリティなどの専業ベンダーのエージェントを別々に導入することなく、Sysdigのエージェントだけで一気通貫に管理することができるという意味です。

図1  Sysdig Secure DevOps Platformの概要
図1  Sysdig Secure DevOps Platformの概要
Sysdigのプラットフォームは大きく2つの機能で構成されています。1つ目は、「Sysdigセキュア」。クラウドネイティブなコンテナ環境のセキュリティやコンプライアンスの仕組みで、開発環境から実行環境に至るまでの脆弱性のスキャンや、ランタイムポリシーの適用、セキュリティアラートのトリアージ(重要度に応じた対応の順位付け)、インシデント対応とフォレンジックの迅速化など、包括的なセキュリティ強化を目的としています。
図2  Sysdigセキュアの脆弱性監視画面の例
図2  Sysdigセキュアの脆弱性監視画面の例
2つ目は「Sysdigモニター」。OSのシステムコールを可視化する特許技術により、ブラックボックス化したコンテナ内部のアプリケーションや、コンテナ間ネットワーク・アクティビティをGUIで可視化するほか、Kubernetes環境の詳細なモニタリングと、迅速なトラブルシューティングを可能にします。
図3  SysdigSysdigモニターの管理画面例
図3  SysdigSysdigモニターの管理画面例
また、Sysdigを導入することで、Kubernetesに関するスキルが不足していても、トラブルシューティングが迅速に実現できることも大きなポイントです。SysdigはリッチなGUIを備え、詳細なモニタリングをしてくれるので、問題があった場合は検知することでアラートが発行され、画面を確認するだけで原因を特定することができます。原因を把握できれば対応のためのミッションを迅速に割り振ることができ、被害の最小化と復旧の早期化が実現できるわけです。


 マイクロサービスは多数のコンテナが連携することでひとつのサービスを成しているため、コンテナ間の通信のボトルネックや、どのコンテナサービスで障害が発生しているかなど、原因を一概に把握することは困難です。加えて、クラッシュ・ループ・バックオフのような現象は、追跡する仕組みがなければ究明はほぼ不可能です。Sysdigでは、現象の全てをシステムコールレベルでキャプチャできるので、後からでもフォレンジックが可能になり、迅速な原因究明を実現します。あるお客様は、1か月以上費やしても究明できなかった現象を、Sysdigを導入したところわずか1日で究明することができ、非常に喜ばれました。

専任のサポートエンジニアが立ち上げから運用まで一貫してサポート

堀場 Sysdigを導入されたお客様にはどのような支援をされていますか。

 SCSKでは、Sysdig製品の運用立ち上げを支える万全の技術支援体制を整えています。具体的には、Kubernetesに関するスキルを証明する資格であるCKA(Certified Kubernetes Administrator)や、クラウドネイティブアプリケーションを設計・構築・設定・展開できることを証明する資格のCKAD(Certified Kubernetes Application Developer)を持つエンジニアを配置し、製品サポートを実施しています。また「CarePlus SPSS」(Software Product Support Service)という独自のクラウドサービスを通じてサポートを提供しています。CarePlus SPSSには、お客様の自己解決を促す強力な検索機能と、過去のサポート実績から培われた豊富な情報が蓄積されています。

 お客様のビジネスの変化によってコンテナ環境にもチューニングが必要となります。そのため、テクニカルアカウントマネージャー(TAM)という専任のサポートエンジニアが、お客様のシステムの現状を理解した上で立ち上げから運用まで一貫してサポートし、お客様と伴走しながら支援させていただきます。これは他社にはない、SCSKだけのサービスです。

堀場 今回は、コンテナのメリットとデメリット、コンテナモニタリングおよびセキュリティのベストプラクティスとしてSysdigの概要をご紹介しました。SCSKはこれからも国内屈指のOSS知見をベースに、コンテナ技術の普及・促進に貢献してまいります。ぜひご注目ください。

最新情報などをメールでお届けします。
メールマガジン登録

×