プロの脆弱性診断とコンサルサポートで、最新クラウド環境の“安全”を確実にキャッチアップ
イエラエセキュリティの顧問を務める川口洋が、多彩なメンバーと共にサイバーセキュリティやサイバーリスクの今を語り合う座談会シリーズ、第22回をお送りします。(川口洋の座談会シリーズ)。
イエラエセキュリティはクラスメソッド株式会社と共に、アマゾンウェブサービス(AWS)を利用する企業向けに「クラウド診断」および「対策サポート」のサービス提供を開始しました。(プレスリリース:クラウドセキュリティの死角となる認証認可などの設定ミスを解消。診断・対策サポートを提供開始)これを記念して、クラスメソッドAWS事業本部でシニアソリューションアーキテクトを務め、またセキュリティチームのリーダーとして活躍する臼田佳祐氏をお招きし、イエラエセキュリティ高度解析部 クラウドセキュリティ課でクラウド診断を担当する白木光達と共に、クラウドセキュリティについて存分に語り合っていただきました。
前編では、クラウドの普及によって増加しつつあるセキュリティインシデントについて、クラウドベンダーの立場から、臼田さんにリアルな実例をご紹介頂きました。後編はイエラエセキュリティ白木より、診断者としてよく遭遇する脆弱性をご紹介します。どうぞお楽しみください!
イエラエセキュリティ顧問 / 株式会社川口設計 代表取締役
川口 洋
2002年 大手セキュリティ会社に就職。社内のインフラシステムの維持運用業務ののち、セキュリティ監視センターに配属2013年~2016年 内閣サイバーセキュリティセンター(NISC)に出向。行政機関のセキュリティインシデントの対応、一般国民向け普及啓発活動などに従事2018年 株式会社川口設計 設立。Hardening Projectの運営や講演活動など、安全なサイバー空間のため日夜奮闘中。
株式会社イエラエセキュリティ 高度解析部 クラウドセキュリティ課
白木 光達
2019年にイエラエセキュリティへ新卒入社。高度解析部にてスマートフォンアプリを中心にソフトウェアやIoT機器等の脆弱性診断に従事したのち、クラウド診断に従事。2016年のセキュリティキャンプ全国大会に参加。2017-2018年にSECCON連携大会の運営として活動し、2019-2020年度SECCON実行委員。リバースエンジニアリングが好き。
クラスメソッド株式会社 AWS事業本部 ソリューションアーキテクト
臼田 佳祐
ネットワークセキュリティのエンジニア経験をへて、2017年にクラスメソッドに入社。入社後はAWSのセキュリティ関連サービスの構築やコンサルティング、サードパーティのセキュリティサービスを組み合わせたソリューションの開発などの業務に携わる。2021年、AWSの高度な知識を持ち、技術コミュニティ形成に取り組むAPN Ambassadorに選出。
S3の設定や権限管理は、便利機能を積極的に利用して対応
川口洋(以下、川口):イエラエセキュリティの白木さんから、診断する側としてよく見る問題や、皆さんに気をつけてもらいたいところを挙げて貰えますか。
白木光達(以下、白木):最近、サーバーレスアーキテクチャの診断をさせて頂くことがよくあります。その中でよく見かける脆弱性について、3つピックアップしてみました。
1つ目はAmazon S3(以下、S3)のパブリックアクセスの設定が甘くて、インターネットに接続できるユーザーやAWSアカウントを持っている攻撃者から、バケットの内容を閲覧されたり改ざんされたりしてしまうのが、よくあるケースです。S3はログ保存やアプリケーションデータの保存、静的ファイル配信と多目的に利用されるサービスですが、設定によっては外部からオブジェクトに対してアクセス可能な状態になります。
過去のインシデント事例では、攻撃者はアクセス制御に不備のある静的ウェブサイトをホストするS3バケットを探索し、誤ってアクセス権が設定されたS3 バケットを見つけると、手当たり次第にクレジットカードのスキミングコードの挿入を試行するというものがありました。これが成功してしまうと、利用者のクレジットカード情報など個人情報が外部流出する恐れのある状況になってしまいます。(参考情報:Netcraftの調査レポート「Uniqlo and The Guardian among thousands of sites loading malicious code from S3」)
川口:僕も、S3のバケットを作る度に、アクセス権が適切かどうかすごく不安です。何か「ここで見て確認しよう」というところはありますか?
白木:そうですね。何が適切なのかは、アプリケーションによって異なってきますから、一概には言えないんですよね。ただS3には最近、「Block Public Access」という機能ができて、誤って脆弱な設定ができないようにブロックしてくれますので、まずはそれを有効にして頂ければと思います。
またS3においてパブリックアクセスが可能になっている場合、インターネットからのアクセスには気をつけて対処していても、バケットACLの「Authenticated Users グループ」についてのリスクを把握されずに運用されているケースを、最近はよく見ます。これは、特に顧客企業やパートナー企業に対しバケットへのアクセス権を設定する過程で、AWSアカウントを持つ全てのユーザーに対してreadとwriteの許可をしてしまっていた、という形が多いようです。また一度パブリックにしてしまうと、運用の利便性を考えてなかなか権限が絞れなくなりそのままになってしまう、ということも聞きますね。
臼田佳祐(以下、臼田):これからAWSを社内で普及される場合には、IAMもS3バケット周りも、ポリシー周りについてしっかりと理解された方のレビューを経てから適用するというフェーズを挟んで頂いた方が、絶対にいいですね。そうでないとAWSの各種アクセス権限の管理が全て雑になってしまいます。
またAWSの利用がある程度進んでくると、実際の運用では各事業部に権限を委譲していく形になると思うんですね。そういった場合に管理できる仕組みとして、AWS IAM Access Analyzerという機能があります。複数のアカウントに跨る、IAMやS3を含めた各種アクセス権限、第三者に公開するポリシーや、「このAWSユーザーからのアクセスは許可する」といった部分的な許可を与えるポリシー等、全て一括で集約することができるような機能になっています。
誤って公開されているポリシーがないかこの機能で収集してきてレビューして、場合によっては即ブロックするということもできます。一つのポリシーで全てを縛ることはできないので、こういった方法で集約して、レビュアーが厳密にチェックするというフローをはさんで頂くのが一番いいやり方かなと思います。
白木:AWS IAM Access Analyzerは、ぜひ利用してほしい機能の一つですよね。診断で関わらせていただいている範囲だと、あまり活用が進んでないのが実態です。
なお、AWSのS3のパブリックアクセス問題はそれなりに周知されていて、実際のインシデント事例でも知られているような内容が幾つかあるので、意識されている方も多いと思います。事故事例も少なくまだそこまで周知されていませんが、AWSに限らずGCPのクラウドストレージやAzureのストレージアカウントのBLOBストレージでも、アクセス権の不備の問題はよく見ます。どのクラウドを利用するにしても、アクセス権周りは注意して設定頂くことを強くおすすめしています。
認証・認可の権限設定の確認が甘いと大事故に
白木:2つ目に取り上げるのは「Amazon Cognitoにおける自己サインアップ」というものです。Amazon Cognitoは認証・認可をサポートするようなサービスで、「ユーザープール」と「IDプール」という2つの要素から成り立っており、アプリケーションのユーザー認証・認可の実装が簡単にできます。ユーザープールではアプリケーションのユーザーのサインアップ/サインインやIdPとの連携等の機能を提供しています。IDプールではCognitoで発行したユーザーに対し、他のAWSリソースへのアクセス権を設定することができます。
このユーザープールに関して、「自己サインアップを許可」という設定項目があります。これはクライアントからCognitoのサービスに対しサインアップのリクエストを送ると、ユーザーが作成できるという設定です。通常のアプリケーションにおいて、自分でユーザーを作れるのは自然なことなので、問題がある行為ではありません。
ただ、「“管理者用の”ユーザープール」というようなものが存在して、そのユーザープールで自己サインアップが許可されている場合は問題です。その管理者用プールに対して攻撃者がリクエストを発行すれば、管理者アカウントが作れてしまうということになります。これはデフォルトで有効になっている項目なので、よく確認される問題ですね。
自己サインアップを許可すべきでない、ということがハッキリしていれば、この設定を落としてあげることでこの問題への対応は可能です。他にも、不正な動作に対してアラートあげてくれるCognito アドバンスドセキュリティ機能等もありますので、これらを合わせて活用頂けると良いと思います。
川口:AWSはもちろん、クラウドベンダーからも色々なツールや機能が出ていて、有り難いんですが、追いつけないくらいの数がリリースされていますよね。ツールの活用をプロにフォローして欲しい企業さんは沢山いそうです。クラメソさんやイエラエの存在意義はここにあるような気がします。
忘れがち!管理者サイドもしっかり“守る”必要あり
白木:最後に取り上げるのは「管理者用APIに対する保護の不備」です。こちらは、アプリケーションを管理するためのAPIを作った場合に起きる問題です。
ここでは管理画面をサーバレスで作成しており、S3とCloudFrontを利用してSPAで静的な管理画面を提供し、APIのエンドポイントとしてAPI GatewayとAWS Lambdaを利用し、ユーザーの認証にはAmazon Cognitoを利用するような環境を想定しています。
まず、管理者用APIの保護にはIP制限をかけることがあると思いますが、CloudFront側にのみIP制限がかけられており、API Gateway側にはIP制限がかかっていない、という不備が見られたりします。他にも、API Gatewayでは、APIに対してオーソライザ等で認証を設けることができるんですが、その設定に不備があり一部のAPIについてオーソライザの設定が漏れていて、本来管理者しか呼び出せない関数が誰でも呼び出せるような状態になっているケースもあります。
あとは管理者APIの保護にCognitoのオーソライザを利用しているケースでは、先の「自己サインアップ」の問題と合わせて、攻撃者から管理者APIが利用可能になってしまうケースもあり得ます。
川口:アクセスキーとはまた別の問題ですが、リスクレベルは同じようなものを感じますね。
白木:そうですね。これまでのオンプレミスサーバー上での運用では、管理者用のサービスはネットワークへのセグメント等で保護されていたので、一般向けのサービス程にはしっかり作らなくても問題が無かったケースがありました。一方で、クラウドを利用する場合はインターネットに繋がる形になりますので、このような不備があると管理者用APIへのアクセスが可能になり、不正に利用されてしまう可能性があります。
ただ、これらの問題については実際に攻撃するには少し難度があるということもあって、現在はリスクが顕在化しにくくなっている面はあります。このような、“首の皮一枚”で繋がっている状態のものは、かなりあるのではないかと思いますね。
臼田:クラウド環境は本当に、“首の皮一枚”のものが多いですね。クラウドを利用頂くにあたっては、「インターネットの上にあるクラウドという仕組み」を使っているんだ、ということを強く認識して頂くことが大事です。
川口:従来は、データセンターのサーバールームにサーバーがあるから、ファイアウォールでアクセスポイント制限かけておけば、内側はそこそこ守れるでしょう、という意識があったと思いますが、今はちょっと違いますよね。
もう独自ルールでの運用はNG!企業全体でポリシー設定を
川口:それにしても、「権限周りの基礎知識を身に付けてないと、痛い目に遭うよ」というのは、何のトピックを聞いていても必ず出てくる話題ですね。「超高度な新しい攻撃方法が見つかってやられました」というものより、「ここが問題だと知っていたはずなんだけど、事故ってしまいました」というのが圧倒的に多い印象です。クラウドでも同じ状況なんだなぁと、今日は改めて感じました。
白木:高度な攻撃というのも勿論存在するんですが、そこはある程度クラウドベンダー側もすぐに対応することが出来ている、という面があるんですね。一方で、設定等の人が関わる部分は、システムで守りきれない部分や、守るシステムがあってもそれが適切に利用されないこともあります。そのようなシステムのみでは対応しきれない問題が、やっぱり長く残ってしまっているように思います。権限周りは本当に難しくて、ショートカットする為の、何か良いやり方があるわけではないんですよね。
川口:やはり、クラウド上の権限管理ツールをちゃんと使いこなしていくしかないんでしょうか。
臼田:そうですね。「権限を絞る」といった予防的なセキュリティ対策をすることは勿論ですが、実際のところそれだけでは守りきれないのも事実かと思います。何かが起きてもすぐに気づけるような状態を作っていくこと、“発見”的なセキュリティ対策も一緒にやっていかなければいけない。そこでは、色々なサービスを組み合わせて対策して頂ければと思います。
川口:AWSだけでもツールが沢山ありますけど、企業さんによってはAzureやGCPも使っていて、ワケが分からなくなるでしょうね。
白木:そうですね。それぞれのクラウドベンダーで権限管理の形も異なりますし。
川口:権限周りが大事というのが分かっていても、徹底できているかと問われると難しいですよね。「詳しい人を必ず一人置いてください」という結論になるのも、分かる気がします。
臼田:これまで社内に「ネットワーク管理者」というようなロールの方がいらっしゃった会社は多いと思うんですが、それと同じように「クラウドをしっかり分かっている人」を置くべきフェーズなのかなと思います。今はもう「担当者一人が気をつければいい」「クラウドは各事業部で適当に契約して使って」という段階ではなく、全社管理の仕組みの中で、ガバナンスを効かせていかないといけない。
利用者による独自ルールではなく、会社全体でクラウド利用についてポリシーを決めることが必要です。また、クラウドについての状況をキャッチアップする人材の配置や、組織づくり、制度づくりから取り組んで頂きたいですね。最近は、大企業ですと会社全体で推進や管理するために、CCoE(Cloud Center of Excellence:部門を越えてクラウド活用を推進する専門組織)を立ち上げる会社さんも多いです。クラスメソッドでは開発支援だけでなく、このような自走組織の創設支援も行っています(CCoE構築支援の事例紹介)。
プロフェッショナルの「診断」と「対策」をセットで
川口:クラウド環境は、まだまだ使いこなせていない人が多いからこそ、クラスメソッドさんの支援サービスの存在意義があると思うんですよね。内容を教えて頂けますか。
臼田:弊社の総合支援サービスである「クラスメソッドメンバーズ」では、AWSの請求代行、環境の構築、コンサルティングをさせて頂いています。コンサルティングというのは、本当に、もう、平たく言って、「何でもやります」という感じです(笑)。
既存のオンプレ環境からの移行、新しく構築する環境についてのレビューやアドバイス、AWSのベストプラクティスに沿った環境構築支援、また既に作ったAWS環境の設定が不安で、ちょっと見て欲しいというご依頼も多いですね。
川口:「アクセスキーの管理が不安なんですけど、ちょっと相談乗ってください」もアリですか?
臼田:はい。もちろんアリです。そのようなご相談に対しては、権限周りをしっかりチェックさせて頂くのは勿論、「本来はこう管理すべきなんですよ」「ベストプラクティスに沿ったやり方はこうですよ」とレクチャーさせて頂いたり、更に上のレイヤーに踏み込んで、ガバナンスを効かせた全体管理の運用を、AWS IAM Access Analyzerを用いながら支援する、といったことまでしています。
AWSを始めとしたクラウドでの開発は、非常に柔軟性があって、単純に「作って終わり!」ではないんですね。皆さん使いながら、どんどん改善したり、AWSの適用範囲を増やしたりしていく、ということをされています。我々も、開発スタート時だけではなく、お客様がAWSを利活用される上で自走できるように、いろんな支援をさせていただいています。
今回、イエラエさんとの取り組みで、「クラスメソッドメンバーズ」にご加入頂いている方向けのオプションとして「クラウド診断」を用意しました。
川口:なるほど。その「クラウド診断オプション」を頼むと、白木さんが呼び出されて、バシバシ診断してくれる、というわけですね。
白木:そうです(笑)。
臼田:クラウド環境の脆弱性診断は、従来のやり方だけでは確認できる範囲が足りません。コンテナやサーバレスといった新しい技術にも対応して頂けて、しかもクラウドだけでなく、その上に乗っているアプリケーション部分まで総合的に見ていただくことができますので、お客様にとって非常に心強いんじゃないかなと思います。
白木:クラスメソッドさんとの連携では、イエラエで洗い出した問題について、対策のサポートをクラスメソッドさんに実施頂くという形でのサービスになっているんですよ。
川口:それは、凄く有難いですよね。問題が見つかっても、どうやって直したらいいか分からないということも多いですから。
臼田:そうなんです。診断によって問題が見つかった後は、我々が能力を発揮できる部分です。その問題が何故起きたのか、今後開発や環境の運用をしていく上で同じ問題が起きないようにするには、どうしたらいいのか。クラウドやAWS各種サービス利用についてのベストプラクティスを、全体の設計レベルに踏み込んで考える必要があります。そういう意味で、私は今回のパートナーシップについて、凄く重要で、強力だなと思っています。
川口:語り尽くせないネタが沢山あると思うんですが、この座談会の締めとして、クラウドを利用されている方々に向けてそれぞれメッセージを頂けますか。
白木:弊社ではクラウドセキュリティ診断サービスを提供しておりますが、各クラウドベンダーからも、様々なセキュリティ対策ツールやセルフチェックツールが提供されています。これらは診断の中でもまだまだ活用されてないと感じることも多く、是非ご活用頂いて、クラウドのセキュリティレベルの向上に繋げて頂ければと思います。
臼田:私からは2つ、お伝えしたいです。1つ目は、エンジニアの皆さんにとって当たり前のことかもしれませんが、クラウドについて日々の情報のキャッチアップを徹底して頂きたいということ。そして2つ目は、クラウドをエンジニア1人で管理するのではなく、会社全体で管理して頂きたいということです。セキュリティ面でも、会社全体のセキュリティとして、どう機能させるか考えることが非常に重要です。
そして、不安なところがあれば、是非我々のようなプロフェッショナルを頼っていただければと思います。
川口:クラウドセキュリティの現在の状況について、詳しくお二人にお話を伺うことが出来ました。今日はありがとうございました!