2023年6月、ITmedia Security Week 2023 夏で、日本ハッカー協会 代表理事 杉浦隆幸氏が「クラウドサービスの怖い話」と題して講演した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
そのタイトルの不穏さにたがわず、私たちが信頼していたサービスで何が起きたのかを事例を基に簡潔に解説しつつ、「セキュリティ設定はユーザーの責任」という事実に私たちがどう対処すべきかを語る、ハッカーらしい講演だ。本稿では、杉浦氏による、生々しい現状を語った講演をレポートする。
杉浦氏はかつて情報セキュリティの会社を設立し、Winnyの暗号解読に成功したこともある「ハッカー」と呼べる存在だ。現在ではそのハッカーたちが日本でも活躍できるよう、ハッカーが直面する問題に対処すべく日本ハッカー協会を設立。デジタル庁セキュリティチームをはじめ、さまざまな立ち位置から日本のサイバーセキュリティを見つめ、前線で活躍する重要人物だ。
杉浦氏は、仮想通貨やP2P、ドローン、医療保険分野などにおける、いわゆる情報セキュリティに限らず、OSINTやIoT、プロダクト開発と幅広く活躍している。その経験から、今回は特に「クラウドの課題」をハッカー視点から語った。
現在では、多くの組織がさまざまなクラウドサービスを活用している。特に「Microsoft 365」やGoogleによるサービス、日本では「サイボウズ」をはじめとしたグループウェアも利用している企業が増えてきており、依存度も高いのではないだろうか。
これらクラウドサービスと、これまでのオンプレミスのシステムとの違いは「公開範囲」だ。クラウドサービスでは何も指定しなければ、インターネットに向けて「公開」となる場合も多い。また最近では、「サービス改善を目的とし、クラウドサービス提供事業者の学習データとして使われる」とする場合もある。当然ながらビジネスにおけるデータや操作は貴重なものなので改善に使われるのはいいとしても、「それがどの程度、どう利用されているのかを知ることは今後重要なポイントとなる」と杉浦氏は述べる。
大きな問題は、クラウドサービス提供事業者もミスをする可能性があるということだ。クラウドサービスとは事業者が自動的に、あるいは“勝手に”機能をアップデートすることがメリットであり、デメリットともいえる。利用者の決めたタイミングではないので、利用者からはいきなり仕様が変更されるようにも見える。それが“プラス”の変更ならよいが、“マイナス”の変更で脆弱(ぜいじゃく)性が発生し、侵入を許してデータを抜かれてしまうことも考えられるだろう。加えて、設定の変更によって公開状態となってしまう/なってしまったことが判明することも起き得る。
杉浦氏はTrelloの事例を紹介する。プロジェクト管理ツールを提供するTrelloは、かつて利用者の情報群が公開状態になっているものがあり、それが検索エンジンにクローリングされていたことがあった。杉浦氏によると「メモ代わりのテキストや、面接の工程管理にも使われていたようだが、それらが全部、外部に見えてしまっていた」という。
この件についてTrelloは、検索エンジンから除外するように対策した。検索エンジンのクローラーは、サーバに設定されている「robots.txt」を元に動作するものもある。その設定ファイルに、Trelloは「/b/」を除外するようにしている。このため、「Google検索」をはじめ、一般的な検索エンジンからは削除されている。
しかし、これで全ての検索エンジンに対策できるわけではない。行儀の悪いクローラーが情報を集めているので、「ちょっと頭を使うと」情報を見ることができてしまうという。そのため、検索エンジンの除外だけでなく、根本的な対策が必要だ。
「システムのアクセス制御がしっかり成されていなければ、リスクはなくならないのはいまも昔も一緒。検索エンジン対策で、簡単には見つからなくなったというだけ」(杉浦氏)
次に杉浦氏は、サイボウズを例に取る。先のrobots.txtを見てみると、サイボウズの場合は基本的に全てを除外対象としている。そのため、一般的な検索エンジンでは中を見ることはできない。しかし、杉浦氏はサイボウズを利用している企業が設定できる「ログイン画面」を取り上げる。クラウドサービスを業務で使っていれば当たり前だが、そのサービスは「外から見えている状態」だと認識しなくてはならない。
「ログイン画面には背景を各社で設定でき、会社の名前も大きく表示できる。これが出てくれば、そのURLがどの会社のものかが分かる。そこにログイン名、パスワードを入力するわけだが、メールアドレスが漏れていると、ここからログインされてしまうリスクがある」(杉浦氏)
これについては対策がある。杉浦氏はこのようなクラウドサービスのログインにおいて、「メールアドレスではなくユーザー名を入れるようにする」「クライアント証明書を発行する」「基本認証を付ける」などで、ログイン画面を守ることを推奨する。「これらの対策で侵入の元となり得る場所を与えないこと。これらの対策は必要がないと考えられているのか、なかなか行われない。もちろん、弱いパスワードもダメだ」と杉浦氏は述べる。
さらに、「Amazon Web Services」(AWS)、「Microsoft Azure」といったプラットフォームに対しても、同様の考え方でセキュリティ対策が必要となる。AWSなら「Amazon S3」、Azureなら「Azure Blob Storage」といった、オブジェクトストレージの設定が狙われる場所だ。既にこれらのストレージの「パブリックバケット」を検索するサービスが登場しており、適切に設定していない情報が公開状態の可能性がある。
これらの情報が漏れるのは、公開しているバケットの中に非公開情報が含まれていたり、非公開のバケットでも名称を推測できたりすることが原因だ。「非公開にするなら、予測しにくい名前を付けること。そして変更時、公開時、作業時にはアクセス制限を必ず確認する。作業を1人に任せず、誰かと一緒に作業し、確認するのも有効だ」(杉浦氏)
さらに怖いのは、「いつの間にかインターネットからつながるようになっている」というファイアウォール/VPN装置だ。これは悪用されているわけではないものの、知らぬ間に外部とつながっているという“便利な”機能だ。
いま、ランサム攻撃は日本の多くの企業に被害を与えている。その中でも問題となることが多いのは、VPN機能が付いているファイアウォール機器の脆弱性/設定だ。多くの企業でその機器が利用されているが、「自社はクラウドに接続していないから無関係だ」と思うかもしれない。
杉浦氏はFortinet製品の一機能、「FortiGate Cloud」を紹介する。これは組織で利用するFortinet製品を管理する、クラウドベースのプラットフォームだ。具体的には、機器が常時VPNでクラウドに接続し、IDとパスワードがあればインターネット上の管理PCから、クラウド経由で組織内の機器を設定できるというものだ。
「少々困ったことに、クラウドを通じてシリアル番号、地域名、サービスドメインという形でホスト名を作り、特定の機器にアクセスできる。これはグローバルからアクセスできる、プライベートなもの。つまり、外からアクセスできるように穴が空いているといえる」(杉浦氏)
これによって特定の機器にアクセスできると、機器の管理画面を直接開くことができる。機器に脆弱性が残った状態なら攻撃が成立してしまう。「これについてはまだ事例はない。しかしリスクが高いと考えている」と杉浦氏は指摘する。
さらにリスクとなり得るものを、杉浦氏は紹介する。ビジネス向けにとある通信キャリアが提供するファイル共有サービスでは、エラー画面にログインID/パスワードを入力するテキストボックスが表示されるという。利用者が二要素認証を利用せず、弱いパスワードを付けていると、これらに登録したファイルを第三者が不正にダウンロードできるリスクがある。
「クラウドサービスは当然バックエンドをしっかり作り込んではいると思うが、ユーザーの管理は甘いことが多い。本当に大丈夫なのかといつも思っている」(杉浦氏)
多くの企業が活用し始めている「Slack」についても、これまで漏えいが話題になったことがあった。Slackそのものへの攻撃というよりも、クライアントに保存されている、認証情報を含む「クッキー」の奪取によって、不正ログインを許してしまった事例だ。これらの認証済みクッキーは10ドル程度で販売されており、攻撃者はブラックマーケットで買った情報で侵入し、Slack内にあったデータを盗んだという。
同じように、Microsoft 365においても漏えい事件が発生している。ビジネス上、Microsoft 365でファイルが共有されることは多いので、アカウントはかなり慎重に取り扱う必要がある。しかし本事例では、テレワークのために管理者権限のIPアドレス制限を解除していたことが、被害のきっかけとなってしまった。
「Microsoftは防御力向上の面ではかなり頑張っている」と杉浦氏は述べるが、少々怖い話もあるという。攻撃者にとっては、攻撃相手がどんなメールアドレスを持っているかを知るのは重要だが、Microsoft 365には、メールアドレスを確認するツールがある。これを悪用することで、未達のメールアドレスを減らし、より有効な攻撃対象者リストを作り出すことができる。エラーメールが少なければ、攻撃されていることに気が付かないのだ。
対策はやはり、多要素認証だ。しかし、それも破られることがある。フィッシングを組み合わせて正規の画面のようにログイン画面を作られると、中間者攻撃で多要素認証を回避できてしまう。これは既にツール化されている。「5年ほど前から方法は確立していて、セッションキーを盗んで権限を奪うことができる。そのため、フィッシング対策が重要となるが、非常に難しい」(杉浦氏)
杉浦氏はOpenAIの「ChatGPT」にも触れる。まずはrobots.txtをチェックしてみると、基本的にパブリックAPI、バックエンドAPIにはアクセスできないようになっていたという。「チャットスレッドのURLも、ホスト名とおそらくUUID(Universally Unique IDentifier)を組み合わせて作られていた。ログインしていない人には見えないだろう。安全ではないか」と推察する。
むしろ杉浦氏、入力したテキストがどのように使われるかに着目する。ChatGPTでは設定内にチャット履歴を学習に利用していいかどうかの設定があることに加え、履歴を全て消去する機能も存在する。これを管理していれば、リスクを抑えて利用できるという。
侵入を許してしまったサービスは、その後奪われた情報が売られ、公開されてしまう。利用者もそのリスクを考えなくてはならない。SaaSには業務上のデータが多数含まれ、連鎖的に被害が起きるリスクもある。そのため利用者ができる対策として、杉浦氏はまず「情報共有機能を確認する」ことを推奨する。
「サービスを利用する前の検証として、共有されたURLを見て、URLのアクセスコントロールがしっかりしているかどうかを判断し、それを基に利用のルールを決める必要がある」(杉浦氏)
プロフィールURLも確認すべきポイントだ。公開されている情報で、何のコンテンツがリンクされているかを確認する。さらに、簡単なidだったり、隣のプロフィールが推測できたりすることがないかどうかも確認しておく必要がある。
杉浦氏は、robots.txtの設定を見ることも推奨する。これについてはGoogle、Bing、Baidu、Yandex、NAVERの5つについては最低限検索できるかどうかを確認し、公開設定されている、漏れたコンテンツが表示されていないかどうかをチェックしよう。
認証に関しては、著名なIdP(Identify Provider)を利用することによって安全に使えることがあるという。二要素認証についてはTime-based One-Time Password(TOTP)を利用し、スマートフォンを紛失したときのことも考える必要がある。そしてスマートフォン自体のセキュリティ向上策として、Androidにおける顔認証について指摘する。
「顔認証はカラーの写真、赤外線の写真、そして3Dスキャンの3つが組み合わされているものならいいが、単に画像だけを見る簡易的なものだと、写真をかざせば認証できてしまう。安い端末の顔認証は結構リスクが高い」(杉浦氏)
使えるクラウドサービスが増えており、ビジネスで必須のものもあるだろう。しかし、それらサービスにはちょっとした“隙間”が見つかることもあり、驚くようなデータが見えてしまうこともあり得る。そのため、「そもそもそのクラウドサービスが利用に値するかどうかを判断すること」「利用する場合は取り得る対策は全て行うこと」が重要だ。それらを行ったとしても、利用サービスが脆弱性を突かれ、全てのデータが“抜かれる”ことすらあるのが実情だ。
最後に杉浦氏は、「日本のハッカーは調査活動をする上で、クラウドサービスにおけるいろいろなリスクを発見してしまうこともある。そういったハッカーも、日本のセキュリティを支え、皆さんの使っているサービスを支えている。皆さんもクラウドサービスをちゃんとチェックして、安全に使っていただきたい」と述べた。
Copyright © ITmedia, Inc. All Rights Reserved.