今年、注目を集めた侵害が2件発生したことで、ID・アクセス管理(IAM)のリーダーであるOktaは、セキュリティベンダーが避けたい類いの見出しを飾ることになった。こうした見出しを目にすると、一部の経営幹部や顧客は、多要素認証(MFA)技術、特にOktaの技術が自社を守ってくれるという確信を失う。しかし、本当にそうだろうか。
テクノロジーの世界では、侵害とは意図せず情報が流出することを指し、通常はどこかで技術的な障害が発生した結果だと考えられる。Oktaの2つのケースでは、不運な原因となったのは人間だった。しかし「疲れた人々の不注意なクリックが、またセキュリティを回避」といったタイトルの記事を読みたい人はほとんどいないだろう。
テクノロジーの専門家として、MFAの限界を理解し、ID・アクセス管理が依然として攻撃者に対する強力な防御になることを経営幹部に伝えることが重要だ。今回のOktaの侵害を詳しく調べることで、MFAおよびIAMソリューションの能力を強化するために、どのような対策を講じるべきかを学べる。
関連記事:MFAの利点と弱点
Oktaの「侵害」その1:ユーザーがプッシュ通知の「承認」をクリック
2022年1月、Lapsus$のハッカーはエンジニアをだまし、Oktaの第三者顧客サポートサービスプロバイダーであるSitelから、MFAプッシュ通知の「承認」を押させた。その承認により、盗まれた認証情報を使って、エンジニアのシンクライアントのデスクトップにリモートデスクトッププロトコル(RDP)でアクセスできるようになった。
Lapsus$によって恥ずべき出来事として大々的に報じられたものの、Oktaが当初見積もった被害とアクセスの範囲は比較的小さかった。初期の報道では、攻撃の影響を受けるOktaの顧客は最大で2.5%に上り、攻撃者ができたのはせいぜい顧客のパスワードをリセットすることだとされていた。
最終的にOktaは、ハッカーが5日間アクセスできたうち、マシンにアクセスしていた時間は合計25分だったと判断した。その間に攻撃者はOktaの顧客サポートパネル、Oktaの15,000社の顧客のうち2社のデータ、SlackやJiraなどのローカルアプリケーションにアクセスした。
この侵害によって最も深刻な影響を受けたのはSitelだった。外部委託契約を打ち切られたためだ。Sitelは、アクセスが発生したのは、同社が直前に買収したSykesに残っていたレガシー技術の問題が原因だと主張している。
見出しとは裏腹に、これはOktaの技術に対する侵害ではなかった。結局のところ、MFAプッシュ通知はSitelが意図した設定どおりに配信されていた。
MFAはどのように回避されたのか
Oktaは侵害の詳細をすべて公開することを控えたが、行間から読み取ることはできる。侵害には、次の3つの具体的な手順が必要だった。
- Lapsus$がエンジニアのシンクライアントインスタンスのRDPに到達できた
- Oktaポータルの認証情報が、
- シンクライアント上ですぐに利用できる状態だった
- ユーザーが、今後のログイン要求を回避するオプションで「ログイン状態を保持」をクリックした
- ポータルへのアクセスが開いたまま、アクティブな状態だった
- エンジニアがMFAアクセスを承認した
Lapsus$の攻撃者がシンクライアントに到達するために行った可能性が最も高いのは、次のいずれかだ。
- エンジニアをフィッシングに成功させ、RDPのアドレスと認証情報を入手した
- エンジニアが別の場所で流出した認証情報を使い回しており、Lapsus$がソーシャルエンジニアリングでRDP情報を聞き出した
- インターネットに公開された脆弱なRDPを発見した
契約の打ち切りは、Sitelが次のいずれかを行っていた可能性を示唆している。
- 既存の認証情報が侵害されていないか確認しなかった
- 従業員をフィッシングから十分に保護しなかった
- RDPソフトウェアに完全にはパッチを適用しなかった
しかし、こうした見落としの可能性があっても、得られるのはシンクライアントへのアクセスだけだ。Oktaの顧客サービス・ポータルにアクセスするには、エンジニアがMFAを通じてアクセスを有効にする必要があった。
MFAには多くの種類があるが、「プッシュして承認」を利用できるものは一部に限られる。そしてこれは、Lapsus$の攻撃者が得意とする手法でもある。
次の記事も参照:パッチ管理ソフトウェア/ツールのベスト製品
MFA疲労攻撃
Lapsus$内部の通信のスクリーンショットには、あるメンバーが次のように説明している様子が写っている。「スマートカードでのサインインにはMFAがない。パスワードでサインインすると、電話または認証アプリを通じてMFAが実行される。しかし、かけられる電話の回数に制限はない。従業員が寝ようとしている午前1時に100回電話をかければ、おそらく承認してしまう。従業員が最初の電話を承認すれば、MFA登録ポータルにアクセスして別のデバイスを登録できる」
このハッキング手法はMFA疲労という名称で知られるようになった。疲れ切った従業員をしつこく煩わせ、意図的または誤ってMFAプロンプトを承認させ、アクセスを有効にする手法だ。この手法は、今年発生した他の著名な侵害にも関与しており、Cisco、Microsoft、Uberなどが被害を受けた。
Oktaの「侵害」その2:SMS MFAの窃取
今年3月には早くも、現在Scatter Swineとして知られる悪意あるハッカーが、認証コードと企業データを盗むキャンペーンを実行した。キャンペーンは0ktapusと名付けられ、専門家は130社を超える企業から、約1,000件の認証情報が直接、またはその後の侵害を通じて盗まれたと推定している。
この攻撃の最も著名な被害者には、Twillio、MailChimp、Klaviyoが含まれる。Cloudflare、T-Mobile、MetroPCS、Verizon、Slack、Twitter、CoinBase、Microsoft、Epic Games、Evernote、Best Buyなども攻撃を試みられたと報告されているが、これらの組織に対する攻撃の成功は公表されていない。
MFAはどのように回避されたのか
攻撃を分析すると、Scatter Swineのチームはまず、従業員、勤務先の企業名、電話番号のリストを作成していた。次に攻撃者は、被害企業の正規のOkta認証ページに見えるフィッシングページを作成した。
続いて攻撃者はSMSによるフィッシングを送り、従業員をだましてリンクをクリックさせ、フィッシングサイトに認証情報を入力させた。その後、Okta認証ページになりすましたフィッシングサイトにMFA認証情報を入力させた。攻撃者はTelegramの自動転送機能を使い、認証情報を即座に自分たちへ送信すると同時に、被害者がアクセスしようとしていたサイトにも送信した。
ただし、OktaのMFAコード自体が攻撃によって傍受されたわけではない点に注意が必要だ。当初はOktaの侵害として公表されたが、Oktaの技術は失敗していなかった。今回も、原因は人為的ミスだった。
Oktaの技術は設計どおり、被害者にMFAコードを届けた。その後、被害者がそのコードをフィッシングサイトに入力し、認証情報とMFA認証を攻撃者に自ら手渡したのだ。残念ながら、これは新しい種類の攻撃ですらない。古典的な中間者(MitM)攻撃の新しい形にすぎない。
中間者攻撃
中間者(MitM)攻撃では、悪意ある攻撃者がユーザーとリソースの間に入り込み、認証情報を傍受する。古典的なMitM攻撃では、攻撃者はエンドポイントとサーバーの間に入り込んだ。しかし現在では、リモートユーザーとネットワークの間、あるいはエンドポイントとWebページの間でこの攻撃が行われることが多い。
以前のMitM攻撃は、ユーザーの認証情報を傍受するよう準備されるだけだったかもしれない。しかしMFAの普及により、攻撃者の手口はさらに巧妙になっている。攻撃者が被害者をフィッシングでだますには、事前に次の情報を把握しておく必要があった。
- 被害者の電話番号と勤務先(公開されたLinkedInの職務経歴書、Facebookの投稿、その他の侵害された被害者から入手した可能性がある)
- 勤務先企業がOkta MFAを利用していること
- 被害者がクリックするよう促す、信頼できるメッセージ
- ここをクリックしてログインし、必須のパスワードリセットを実行してください
- ここをクリックしてスケジュール変更の詳細を確認してください
攻撃を調査したOktaによると、攻撃者はITサポート担当者になりすまし、従業員とその家族に多数の電話をかけ、セキュリティ手順について聞き出していた。攻撃者が最初の電話番号をどのように入手したのかは、まだ明らかになっていない。
同様の侵害を防ぐ方法
どちらの攻撃でも、Oktaの技術そのものは失敗していなかった。同様の侵害を避けるには、セキュリティ管理者がMFA疲労攻撃やMitM攻撃に対する社内防御を準備しなければならない。他の多くの攻撃手法と同様、防御はITセキュリティの基本を実行し、特定の攻撃に対抗するための対策をいくつか追加することから始まる。
MFA疲労攻撃が成立するのは、次の条件がそろった場合だけだ。
- 攻撃者がすでに認証情報またはデバイスにアクセスできる
- MFA方式を大量に送信できる
- 被害者が疲労またはストレスによって、クリックしてしまうほどの状態にある
MitM攻撃が成立するのは、次の条件がそろった場合だけだ。
- ユーザーが最初の誘い(フィッシング、偽サイト、偽ファイルなど)を受け取る
- ユーザーが誘いに乗り、認証情報やMFAコードなどを入力する
- ITリソースが、リソースと正規ユーザーの間に中間者が存在することを検知できない
ここでは、こうした攻撃から防御する対策の例として、技術的に簡単な制御を簡単に列挙する。ITおよびサイバーセキュリティの管理者なら、予防策として機能する他のツールや技術も数多く思いつくだろう。
これらの制御や技術はいずれも新しいものでも、特に画期的なものでもない。追加の時間や費用がかかるため、組織は通常、こうした追加の制御を導入しない。
もちろん、ユーザーが常に変化に不満を示すことも第3の要因だ。特に習慣が染み付いた大企業の環境では、経営幹部や営業チームからの強い不満によって、セキュリティ対策が元に戻されることも多い。人間の行動は、依然として制御と修正が最も難しいリスクである。
基本的な対策:パスワード管理
Oktaによると、2022年第1四半期の全ログイン試行の34%は、アカウントに対するクレデンシャルスタッフィング攻撃によるものだった。つまり、Oktaにログインしようとした人の3人に1人が、盗まれた認証情報を使ってログインを試みたことになる。ユーザーは認証情報の使い回しをやめられないようだ。
組織は、自社ユーザーを対象にパスワードクラッキングを実行し、環境から使い回しやすく破られやすいパスワードを排除し始める必要がある。少なくとも企業、そしてユーザー自身も、公開されているHaveIBeenPwnedの侵害データベースで、ユーザーIDやパスワードがすでに流出していないか確認すべきだ。
理想的には、組織は強力で複雑なパスワード要件を備えた企業向けパスワードマネージャーをユーザーに提供し、従業員のパスワード管理の負担も取り除くべきだ。パスワードマネージャーには、フィッシング攻撃で正規サイトに似ているが完全には一致しないアドレスにだまされないという利点もある。
企業は認証情報の利用状況を監視し、異常なユーザーログイン、新しいIPアドレスやデバイスからのログイン、その他の異常な挙動に対するログインアラートを実装することもできる。単一の情報だけでは意味を持たないかもしれないが、組み合わせると強力になる。例えば、新しいデバイスの登録、新しいIPアドレス、多数のMFA要求に対するアラートがあれば、調査を促すべきだ。
次の記事も参照:パスワード管理ソフトウェア/ツールのベスト製品
基本的な対策:MFA
多くの組織は、パスワードの弱点を補うためにMFAに依存している。しかし残念ながら、ユーザーに2要素認証(2FA)だけを利用させている組織が多く、そのため攻撃者はこの対策を簡単に回避できる。
さらに、MFAの実装方法も、攻撃者が対策を回避できる可能性に影響する。そのためセキュリティ専門家は、MFA疲労をなくし、またはMFA疲労から防御するために、次の2つの要素を検討する必要がある。
- MFAの設定
- 2FAを超えるMFA
MFAの設定
MFAアプリケーションは、繰り返しの要求、通常とは異なる場所からの要求、通常とは異なる時間帯の要求についてアラートを送るよう設定すべきだ。ITチームは設定時に、MFAプッシュ要求を制限または無効化するなど、MFA疲労攻撃を防ぐ予防策を講じることもできる。
ITセキュリティでは、MFA用の追加デバイスの自己登録を拒否することもできる。攻撃者がユーザーのプロファイルに自分のデバイスを追加できなければ、盗まれたMFAの価値は下がる。
2FAを超えるMFA
単純な2FAプッシュ通知やワンタイムパスワードに加えて、セキュリティチームは、生体認証(指紋、入力パターンなど)、物理的な制御(カード、FIDO準拠のUSBセキュリティキーなど)、デバイス固有の制御(証明書、デバイス登録など)、場所固有の制御(IPアドレスフィルタリング、ジオフェンシングなど)といった追加要素を実装できる。
Cloudflareがセキュリティキー(物理的な制御)と、同社のCloudflare OneSASEネットワーク(IPアドレスフィルタリングに似た、ネットワークアクセスに特化した制御)を利用したところ、試みのブロックに有効であることが証明され、MFAの制御を回避する攻撃を阻止できた。
基本的な対策:アプリケーションとネットワークの制御
ネットワークやアプリケーションへのアクセスを制御する詳細は大きく異なるが、根底にある考え方は同じだ。
- データフローを制御する:監視・制御されたアクセスポイントを経由するよう、ネットワークゲートウェイ、VPNネットワーク、IPホワイトリストなどを使ってトラフィックを強制的に流す。
- リソースへのアクセスを分割する:最小権限の原則、すなわちゼロトラストを用いて、ユーザーのクラスや種類ごとにアクセス可能なネットワークゾーンを設定する。例えば、データベースのバックエンドにはアプリケーションだけがアクセスでき、人間のユーザーはクエリインターフェースを使わなければならない。
- ユーザーとデバイスを検証する:登録済みのデバイスとユーザーの組み合わせ、または特定のソフトウェア(セキュアブラウザー、エンドポイント管理ツールなど)を含むデバイスにアクセスを制限する。
基本的な対策:フィッシング対策セキュリティ
フィッシング攻撃は、ユーザーに届かなければ機能しない。メールフィルタリングや、メールゲートウェイとDMARCなどのメールセキュリティ技術を導入すれば、ユーザーが目にするフィッシングメールの数を大幅に減らせる。
SMSのテキストメッセージはブロックがはるかに難しい場合があるが、企業は、MFAのプロンプトを特定のアプリから、特定の電話番号から、または組織がより容易に制御・監視できる他のチャネルを通じて配信するよう要求することで、その効果を制限できる。
基本的な対策:ユーザートレーニング
ユーザーには、フィッシング攻撃への対処方法や、次のようなMFA回避の試みに見られる一般的な兆候を教えられる。
- 予期しないMFA要求
- 見知らぬ電話番号、メールアドレス、または企業(特にITチームやヘルプデスク)の関係者を名乗る人物からの、依頼していない電話、テキストメッセージ、メール
- 大量のMFA要求
- 緊急性を感じさせようとするメールやテキストメッセージ
最も優れたフィッシング対策トレーニングであっても、100%の成功を保証することはできないが、トレーニングによってその可能性を下げ、組織が攻撃に対抗するのを助けられる。
次の記事も参照:サイバーセキュリティ意識向上トレーニングのベストプログラム
基本的な対策:従業員に求めること
管理職や人事部はこの考えを好まないかもしれないが、MFA疲労攻撃が主に機能するのは、従業員が通知を受け取るために着信音をオンにしておかなければならない場合だけだ。電話を消音したり電源を切ったりできる人は、こうした攻撃の影響を受けない。
同様に、フィッシング攻撃は、ストレスや疲労を抱え、急かされていると感じる従業員に対して最も効果を発揮する。フィッシング攻撃を慎重に調べる時間がある従業員なら、そのほとんどを無視するだろう。
しかし、仕事に対する期待値や従業員の習慣、業務量を調整するのは依然として非常に難しい。それでも組織は、オンコールの指定や業務の海外拠点への移管など、時間外の業務負担を減らす正式なプロセスを設け、プレッシャーを軽減できる。
通常の営業時間外の中断を最小限に抑えれば、従業員の疲労を減らし、MFA疲労を狙った試みをより明白にして、成功しにくくする環境を整えられる。
人的エラーを最小限に抑える
Oktaの侵害は、人的エラーがあらゆる組織のセキュリティ対策をいかに損なうかを浮き彫りにしている。Oktaの技術は設計どおりに機能していたが、プロセスの弱点や不完全なセキュリティスタックを悪用する方法を知っていた攻撃者によって、その意図が妨害された。
あまりにも多くの場合、弱点となるのは、疲労によって100%合理的に判断したり、状況を認識したりできない、ストレスを抱えた人間だ。このリスクを抑えるには、従業員に求めることを見直し、人的な失敗のリスクを減らす基本的な技術対策を導入できる。





