N-ableのバグでパスワードボルトのマスターキーが露出

専門パスワード管理ツールにおける設計上の不備により、悪意あるWebサイトが顧客のボルトに対して完全かつ持続的なアクセス権を取得できる状態になっていました。

「Passportal」は、かつてSolarWinds MSPという社名で知られ、現在は独立した企業として時価総額10億ドル近くにのぼる公開企業N-ableが提供する認証情報管理製品です。N-ableは主にマネージドサービスプロバイダー(MSP)やITサービスプロバイダー向けに製品を展開しており、同社のWebサイトによれば、Passportalは約2,500のマネージドサービスプロバイダー(MSP)と165,000の中小企業(SMB)で利用されているとのことです。

しかし、これらの組織は警戒すべき状況にあります。というのも、このパスワードマネージャーはクラウド経由で動作するため、極めて機微な秘密情報がWebベースの攻撃にさらされるおそれがあるからです。7月8日、Bay Area Labsの創業者James Arnott氏は、Passportalのアカウント、そしてそれが管理するすべての認証情報が、通りすがりの任意のWebサイトによって完全に侵害され得ることを発見しました。ベンダーは翌日にパッチを適用しましたが、更新後の製品であっても利用者にとって一定のリスクが残ると同氏はDark Readingに語っています。

N-able Passportalに存在したセキュリティ脆弱性

主流のパスワードマネージャーの多くは、Webベースの攻撃者がパスワードにアクセスするリスクを減らすため、最も機微な処理をローカルマシン上で実行します。仕組みは至ってシンプルで、マスターパスワードから秘密鍵が生成され、その鍵によって暗号化・保存されたパスワードが復号されます。この鍵は常にユーザーの手元に留まります。ユーザーがログインするWebサイト側から見えるのは、復号処理の結果、すなわち平文のパスワードのみです。

Passportalの仕組みは異なります。マスターパスワードはアクセストークンとリフレッシュトークンを生成しますが、このうちアクセストークンに秘密鍵が含まれています。従業員があるWebサイトにログインしようとすると、アクセストークンがN-ableのサーバーに送られ、N-ableはそれを使ってログイン情報を平文に復号し、(転送中はTLS暗号化された状態で)パスワードをユーザーに送り返すことでログインが可能になります。しかし、もし攻撃者がこのプロセスに何らかの形で割り込み、アクセストークンを自ら奪取してしまったらどうなるでしょうか。

結果として、それはさほど難しいことではありませんでした。Bay Area Labsの調査により、Passportalのブラウザ拡張機能が受信したメッセージを一切区別せずすべて信頼しており、送信元のWebサイトや内容を確認していないことが判明しました。そのため、従業員が悪意あるWebサイト、あるいは悪意ある広告やiframeが埋め込まれた正規サイトに誘導されると、Passportalはその内容を疑うことなく素直に応答してしまいます。もしwindow.postMessage({ method: ‘getPasswords’ }, ‘*’)というメッセージが送られれば、Passportalは何も考えずにアクセストークンとリフレッシュトークンを返してしまうのです。

アクセストークンさえあれば、攻撃者はPassportalのボルトに保存されたすべてのアカウント認証情報を列挙し、盗み出すことができます。また、組織の最も機微なアカウントに侵入するために必要な、時間ベースのワンタイムパスワード(TOTP)を取得することも可能でした。

盗まれたリフレッシュトークンも同様に厄介です。これにより、攻撃者は既存のアクセストークンが期限切れになるたびに新しいアクセストークンを取得できてしまいます。アクセストークンの有効期限は比較的短く設定されています(ユーザーがパスワードマネージャーにログインする際、頻繁にマスターパスワードを再入力させられるのはこのためです)が、Passportalのリフレッシュトークンは100日間有効です。

パスワードボルトが完全かつ持続的に侵害されるというだけでも軽視できない問題ですが、それに加えて、Passportalは通常、サプライチェーンサービスプロバイダーによって利用されている点も考慮する必要があります。「例えば、攻撃者が50の組織を管理する1つのMSPへのアクセス権を得たとします。そのMSPは、配下のすべてのクライアントに対して非常に高い権限でのアクセスを持っている可能性が極めて高いのです」とArnott氏はDark Readingに語っています。

Passportalの顧客が「ブランド化パスワード管理サービス(PMaaS)」機能である「Site」を利用している場合、リスクはさらに大きく広がります。Siteを使うと、サービスプロバイダーは自社独自のブランドアイコンでPassportalをリブランディングし、それをさらに下流の自社顧客へ再配布できます。もし攻撃者がPassportal顧客(それ自体がPassportalをさらに別の顧客に販売している)の秘密鍵を盗み出せば、その孫請けにあたる顧客もまた侵害される可能性が高いと考えられますが、Arnott氏はこのシナリオを実際には検証していません。

認証情報管理ツールはそもそもクラウドベースであるべきか

Arnott氏が発見内容を確認してから数時間後、N-ableはパッチを展開しました。これは、ブラウザ拡張機能自身がリクエストの発信元であることを確認し、無作為なWebサイトやiframeからのものではないことをチェックするという、シンプルな修正です。

Passportalのようなブラウザ拡張機能は通常、見えないところで自動的に更新され、率直に言えば、ほとんどの組織はそれに気付きさえしません。とはいえ、組織内のどのワークステーションも更新から取り残されないようにするため、Arnott氏は積極的な管理者であればバージョンロックを行うことを提案しています。「Google Workspace管理コンソールでは、拡張機能を特定のバージョンにロックできます。そうすれば、管理コンソールから手動でバージョンを引き上げた時点で、すべてが一斉に更新される仕組みです」と同氏は説明しています。

とはいえ、全社的に更新を行ったからといって、顧客が完全に安全になったわけではありません。Passportalは依然としてサーバー側での復号処理を行っています。今回のパッチではエンドツーエンド暗号化(E2EE)が実装されなかったため、ユーザーのパスワードには依然としてリスクが残るとArnott氏は指摘します。

「私の見解では、サーバー側でパスワードを復号する正当な理由は存在しません」と同氏は述べています。まず第一に、サードパーティのサーバーに依存することで、製品の動作が遅くなり、信頼性も低下します。さらに重要な点として、もし攻撃者がN-ableまたはその顧客のいずれかに侵入した場合、転送中のPassportalの鍵材料を依然として取得できてしまいます。「これは、他のパスワードマネージャーには通常見られないほど巨大な攻撃対象領域を生み出しています」とArnott氏は警告しています。

結局のところ、Arnott氏はこう述べています。「もし自分が使っているパスワードマネージャーにエンドツーエンド暗号化が実装されていないと知ったら、私は絶対にそれを使いません」

この点についてDark Readingが問い合わせたところ、N-ableは次のように回答しています。「私たちはPassportalの継続的なセキュリティと完全性の確保に取り組んでおり、さらなる強化策を常に検討しています」

翻訳元: https://www.darkreading.com/vulnerabilities-threats/n-able-bug-password-vault-master-keys

本記事は darkreading.com の記事を翻訳・要約したものです。