400のコンテナをAWSで稼働、オイシックス・ラ・大地におけるクラウドセキュリティの進め方セキュリティは一歩一歩の積み重ね、クラウドプロバイダーの機能をフル活用

先進企業はクラウドネイティブなITインフラを保護するためにどのような取り組みを推進しているのか。@ITが主催した「ITmedia Cloud Native Week 2023春」に登壇したオイシックス・ラ・大地の岡本真一氏が、同社におけるセキュリティ実践の取り組みとポイントを語った。

» 2023年05月31日 05時00分 公開
[高橋睦美@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Oisixや大地を守る会、らでぃっしゅぼーやといったブランドで安心・安全に配慮した農産物や加工食品、ミールキットの宅配サービスを提供しているオイシックス・ラ・大地(以後、オイシックス)は、創業から約20年を経て、オンプレミス環境に構築してきたさまざまな環境を徐々にクラウドへ移行してきた。一連のサービスを顧客に安心して使ってもらうためにも、セキュリティ対策は不可欠だ。オイシックスではどのような取り組みを実践してきているのか。

 本稿では、@ITが主催した「ITmedia Cloud Native Week 2023春」に登壇したオイシックスの岡本真一氏(システム本部 システム基盤部 SREセクション)の講演内容をお伝えする。

やはり前提は「責任共有モデル」で、リスクベースのアプローチを

 そもそも私たちは、何のために「セキュリティ」に取り組むのだろうか。岡本氏は、「セキュリティについて最初に考えるべきは、何を保護しているのか、保護するためのアクションは何なのかを考えることだ」と述べた。

 この2つを明らかにするには、一般的な攻撃方法を知り、自社のネットワークやソフトウェア、データを理解し、信頼の境界線がどのような状態にあるかを把握しなければならない。その上で、「サービスの提供がセキュリティで阻害されないよう、またセキュリティにコストを使い過ぎないよう、リスクとどのようにバランスを取っていくかが重要になります」と岡本氏は述べた。

オイシックス システム本部 システム基盤部 SREセクション 岡本真一氏 オイシックス システム本部 システム基盤部 SREセクション 岡本真一氏

 次に岡本氏は、クラウドネイティブな環境でのセキュリティロードマップを説明した。まず考慮すべきは「リスクマネジメント」だ。

 クラウド環境でのセキュリティは、事業者と利用者がそれぞれの役割を果たし、協力しながら対策を進める「責任共有モデル」が前提となる。「われわれはアプリケーションやインフラストラクチャ、ネットワークのコントロールはどうしているか、ネットワークのトラフィックは保護されているのか、もしデータを暗号化するのであればどこで暗号化するのかといった要素に対してセキュリティを実践していく必要があります」(岡本氏)

 また、組織が健全な経営を行い、経営者が説明責任を果たせるように必要な機能やプロセスを示す「ガバナンス」、組織が社会の期待に応え、価値貢献のために掲げたミッションを適切に促進しているかどうかを管理する「コンプライアンス」という2つの要素も重要な要素だとした。

 リスクマネジメントの一環として、クラウドプロバイダーも含めた「サードパーティー」のリスクも管理する必要がある。「適切な評価を行い、われわれがクラウドプロバイダーを本当に利用し続けていけるかどうかをしっかりと考える必要がまずあります」(岡本氏)。また、個人情報保護法やPCI DSSといった法律やガイドラインに準拠し、データとプライバシーリスクにも気を配ることが重要だとした。

 リスクマネジメントの次に検討すべきは、「ステークホルダーマネジメント」だ。そもそも企業としてクラウドを利用する目標は何なのかに始まり、サービスと組織が成長していく中で、プロダクトのロードマップと照らし合わせながらどのようにセキュリティの優先順位付けを行っていくべきかを、企画、監査などあらゆるステップで考える必要があるという。

 こうした全体像を説明した上で岡本氏は、クラウドネイティブなセキュリティを解決するためのアプローチを2つ紹介した。

 1つは、NIST(米国国立標準技術研究所)が公開している「サイバーセキュリティフレームワーク」だ。脅威の識別に始まり、防御、検知、対応といったプロセスを通して、もしサービスの機能の一部が阻害されるような事態があれば対処し、復旧していくことになる。

 もう1つは、Gartnerが提唱している「Cloud Native Application Protection Platform」(CNAPP)だ。クラウド上の設定不備や脆弱(ぜいじゃく)な設定を検出、修復する「CSPM」(Cloud Security Posture Management)、クラウドサービス上の仮想マシンやコンテナといったワークロードを保護する「CWPP」(Cloud Workload Protection Platform)、IAM(Identity and Access Management)をはじめとするクラウド上の権限管理を行う「CIEM」(Cloud Infrastructure Entitlement Management)という3つの柱からなり、クラウド上の各要素のセキュリティを確保していくものとなっている。

 岡本氏はさらに、IaC(Infrastructure as Code)やアプリケーション、データのセキュリティも含めた要素を生かし、「責任共有モデルのうち私たちが責任を負うべき要素に対してセキュリティを実施していく必要があります」とした。

NISTのサイバーセキュリティフレームワークに沿って対策を推進

 続けて岡本氏は、こうした考え方に沿ってオイシックスがどのように対策を実践しているかを紹介した。

 同社は2021年7月に、国内クラウドおよびオンプレミスにあった環境をAmazon Web Services(AWS)に移行した。講演時点で、400台のVM(仮想マシン)と400のコンテナが稼働しており、それらが70の仮想ネットワークでつながっている。それらを20アカウント、500のIAMユーザーで管理している状況だ。

岡本氏の講演資料より 岡本氏の講演資料より

 セキュリティ対策においては、AWSが提供するさまざまな機能を積極的に活用している。「AWS IAM Identity Center」でアクセス権限の一元管理とシングルサインオンを実施するとともに、「AWS Organizations」「AWS Control Tower」で新たな環境を構築する際のベースラインを整備し、一元的な設定でアカウントを立ち上げる仕組みを整えた。さらに、AWS利用時のベストプラクティスをまとめた「AWS Well-Architected Framework」を活用したセキュリティ改善プログラムを、AWSのセキュリティスペシャリストとともに推進。「AWS Security Hub」による検知や「SIEM on Amazon OpenSearch Service」の整備にも取り組み始めている。

 具体的には、NISTのサイバーセキュリティフレームワークと照らし合わせる形で、それぞれ以下の領域で対策を進めている。

  • IAM(識別、防御)
  • 資産管理(識別)
  • インフラストラクチャと構成管理(識別、防御)
  • マルチクラウドセキュリティポリシー(識別)
  • アプリケーションセキュリティ(防御)
  • 脅威の検出(検知)
  • インシデントレスポンス(対応、復旧)

 IAMを利用するに当たっては「最小権限の原則」を念頭に置いている。仮に管理者権限に関する情報が流出し、しかも過剰な権限が与えられていた場合には、あらゆるリソースに対して操作が可能になってしまいかねないためだ。岡本氏は多要素認証の導入や一時的な認証情報の利用も検討すべきだという。

 「2023年に入って、われわれが利用しているサービス上で、認証情報の一部が漏えいした疑いがあることがセキュリティインシデントとして報告されました。もしそのサービス上に永続的な認証情報を保存してしまっていると、その権限の範囲内で操作が可能となるため、ローテーションもしくは削除する必要がありました」(岡本氏)。分析を進めたところ、実際には認証情報は使われていなかったため安堵(あんど)したが、やはり漏えいの可能性を念頭に置き、自社が利用するクラウドプロバイダーのリソース上に置く認証情報としては一時的なものを利用すべきとした。

 また、IAMを「信頼できる1つのソース」に集約していくことが運用上有効であり、何らかのIDaaS(Identity as a Service)を利用し、そこと各種サービスを連携させる形を検討しているという。

岡本氏の講演資料より 岡本氏の講演資料より

 資産管理においては、リスクベースのアプローチが重要だ。また「クラウドサービス上で識別された実際のリソースと、サービスアーキテクチャを記した構成図やデータフローから予測するリソースの間には差異がでるかもしれません」と指摘し、資産管理のカバレッジを上げていくことが重要だとした。

 インフラストラクチャと構成管理については、いわゆるIaCやNetwork as Codeといったコード化による管理やCSPMが有効だと考えている。「われわれはIaCとしてTerraformを用いて構成管理しています。さらにGitHub Actionsを利用し、実際のインフラの状態と乖離(かいり)が出ないように努めています」(岡本氏)。大本となるIaCのテンプレートについても、セキュリティチェックを行う仕組みの導入を考えているという。

 マルチクラウドセキュリティポリシーの分野では、データの種類に応じてどこに置けばよいのかをしっかり検討し、「セキュリティのベースラインのテンプレートとして、各クラウドプロバイダーに対し同じレベルのものを提供できることが望ましいでしょう」とした。ここは同社もまだ、ガバナンスや例外プロセスも考慮しながら模索中の分野だという。

クラウドプロバイダーが提供する機能を積極的に活用

 続けて岡本氏は、アプリケーションのセキュリティについて、多くの時間を費やして説明した。

 クラウドを取り巻く脅威としては、非営利団体「The Open Web Application Security Project」(OWASP)がまとめた上位10つのセキュリティリスク「OWASP TOP 10」がよく挙げられる。アクセス制御の不備、暗号化の失敗といった項目が含まれているが、「これらは最低限のセキュリティと捉え、OWASP TOP 10への対応は少なくとも進めるべきだと考えています」(岡本氏)。さらに、「MITER ATT&CK」などの情報も積極的に活用すべきとした。

 脅威ベースのアプリケーションセキュリティ対策は、企画、設計段階からセキュリティを考慮し、開発段階での手戻り作業やコストを減らす「セキュリティ・バイ・デザイン」に始まり、適切な暗号化、ソースコードのセキュリティテストをする「SAST(Static Application Security Testing)」、アプリケーションを実際に動かしてブラックボックステストをする「DAST(Dynamic Application Security Testing)」、包括的に脆弱性の有無をチェックする「ペネトレーションテスト」といった対策が考えられる。

 オイシックスでは主にJavaでアプリケーションを開発している。アプリケーションが稼働するインフラは、AnsibleとPackerを用いてマシンイメージを作成し、Terraformを用いてバーチャルマシンを作成、構築する仕組みだ。

 「ここには先ほど紹介したIaCセキュリティという考え方が適用できますし、SASTによってその上で動作するソースコードに脆弱性がないか、機密情報がソースコード内に埋め込まれていないかなどを検査できます」(岡本氏)。さらに、GitHub Actions上でアプリケーションをビルドし、デプロイするCI/CD(Continuous Integration/Continuous Delivery)プロセスの中でDASTを適用することも考えられるとした。

 そしてサブシステムでは、Kubernetesベースのコンテナテクノロジーを活用している。負荷に応じてスケーリングする仕組みだが、「Kubernetes内外への通信を厳格化する必要があればネットワークポリシーを定義する必要がありますし、Kubernetesのリソースやコンポーネントに対して操作するユーザーの権限は正しいのか、またログインしたPod内で特権昇格ができるようになっていないかを検討する必要があります」(岡本氏)。さらに、ホスティング型のコンテナサービスを利用している場合は、コンテナイメージに含まれるパッケージやライブラリに脆弱性がないかのスキャンも検討すべきで、「Kubernetes上だけでも、考えることはさまざまあります」とした。

 暗号化については、エンドツーエンドでのHTTPS化は大前提として、サーバ上に平文でデータベースのパスワードなどが保存されていないかどうかを確認することも重要だという。「そういった情報は、環境変数、あるいはアプリケーションから暗号化された状態で取得して、アプリケーション上で復号することを考える必要もあります」(岡本氏)

 脅威の検出についても、検討すべき内容は多岐にわたる。まず、検出したログの正確性や完全性はどう確保するのか、また保存期間はどれくらいなのかを考慮しなければならないし、脅威インテリジェンスを組み合わせ、通常時とは異なる異常なAPIコールなどを検出する仕組み作りも重要だ。こうした部分については、AWSをはじめ各クラウドサービスプロバイダーがベストプラクティスを提供しているため、ぜひそれらを活用すべきだという。

 実はオイシックスでは、AWS Security Hubを導入したところ、3万件を超える警告が出る状態から始まり、いろいろな壁に突き当たった経験がある。岡本氏は「もしかすると検出結果が不足しているかもしれないため、十分に検出されているかをまずうたがってください。逆に、過剰に検出されたものが放置され適切にハンドリングされない状況もあると思うので、そこにも留意してください」と、自社の経験を踏まえてコメントした。

 こうした結果を適切にハンドリングしていくには、調査、対応といったインシデントレスポンスが必要になる。「ハンドリングされない原因には人手不足があるため、まず自動修復ができないかを考えてみてください」(岡本氏)とし、プレイブックを作成して、誰もが同じようにインシデント対応できる体制を整えることも必要だとした。

 SIEM(セキュリティ情報イベント管理)の活用もポイントだ。オイシックスではAWS上にSIEMを構築している。あらかじめどういったパターンが異常なのかを定義することで、アラートを発報して即座に異常を把握することも可能となっている。今後は、AWSからのセキュリティイベントはもちろん、それ以外のクラウドやオンプレミスのネットワークから出てくるセキュリティイベントを受け取り、分析する体制を整える方針という。

 さらに、近年話題となっているソフトウェアサプライチェーンに関しては、クラウドプロバイダーが公開している情報を参照すべきとした。また、インシデントレスポンスを実施する際にチームとしてのスキル向上に向け、セキュリティを実施するキーパーソンのトレーニングに始まり、チームとしての訓練を実施している。技術的なスキルはもちろん、コミュニケーションスキルをはじめとするソフトスキルを鍛えていくためにも定期的なトレーニングが大切だとした。

 岡本氏は最後に、費用対効果の高いところからセキュリティを実装していくことが重要であり、NISTのサイバーセキュリティフレームワークに沿って、特に防御と検知の領域について、互いに補い合いながら多層的にセキュリティを確保することが重要だと述べた。

 岡本氏は「セキュリティを実施する際には、クラウド上で動作するセキュリティサービスを積極的に活用することで実装の困難さを低減したり、コストを抑えたりすることができます。何か導入しようと思ったときには、まずクラウドプロバイダー上のセキュリティサービスが活用できないかを考えてみてください」と述べ、講演を締めくくった。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。