2020/01/31

パッチが適用されていない脆弱性により ConnectWise 社の製品を使用している MSP が危険にさらされる恐れ

2020 年 1 月 31 日 Trevor Collins 著

ConnectWise 社が提供している管理プラットフォームを使うと、管理サービスプロバイダ(MSP)、リセラー、その他の IT ソリューションプロバイダが、顧客のサイトに展開している IT テクノロジをリモートから監視および管理したり、自動化したりできるようになります。先日 ConnectWise 社は、ConnectWise Control という製品にある複数の脆弱性にパッチを適用しましたが、このパッチでまだ解決できていない脆弱性があります。

昨年 Bishopfox 社の調査員は、ConnectWise クライアントに 8 つの脆弱性を発見し、これを報告しました。しかし返ってきたのは名誉毀損による訴訟の脅しでした。ConnectWise 社は脆弱性の修正を試みましたが、Huntress Labs 社によれば、一部の脆弱性は未解決のままでした。追加の対策がなければ、未解決の ConnectWise の脆弱性によって、一部の MSP が危険にさらされることになります。

幸いなことに、この脆弱性を個別に悪用しても、アクセスを中断させたり、データを盗んだりするのに十分なアクセス権が攻撃者に与えられることはありません。しかし脆弱性を悪用することで、認証情報の取得など、アクセス権の取得に必要な情報を収集することが、はるかに容易になります。これらの脆弱性の一部を組み合わせると、ConnectWise のサービスに対する、より高いレベルのアクセス権を取得できます。これらの脆弱性が個別に悪用されても、複合的に使用されても、ハッキングを成功させるためには何らかの形でユーザ、つまり被害者による操作が必要となります。つまり、サイトのアドレスを確認し、疑わしいリンクをクリックしないように心がけていれば、おそらくこれらの脆弱性が悪用されることはありません。とはいえ、すべてのユーザがリンクをいつでも細かく確認するとは限らないのも事実です。この記事ではそれぞれの脆弱性と、最適な対策方法について説明します。

ページの表示に手を加えるクロスサイトスクリプティング(XSS)

このクロスサイトスクリプティング(XSS)の脆弱性には、ConnectWise Control のログインページに変更を加える機能が関わってきます。これは、サーバがユーザの入力を適切に確認、またはサニタイズをしていない場合に発生する脆弱性です。入力がサーバによって適切にサニタイズされていない場合、攻撃者が追加の HTML または JavaScript コードを Web リクエストや投稿に挿入してくる可能性があります。サーバは、そのコードを元からあったコードであるかのように実行します。これにより、本来アクセスを許すべきでない Web アプリケーションのさまざまな側面に、攻撃者がアクセスしてくる恐れがあります。一般的に、XSS の脆弱性には格納型(持続型とも)と反射型の 2 つのタイプがあります。最近では反射型の XSS 脆弱性がより一般的になっており、この脆弱性を悪用するには、ユーザの操作(細工されたリンクをクリックする)を必要とします。ConnectWise の場合、ログイン設定のフォームを使用することでこれが実行可能です。悪用するためには管理者としてアクセスする必要がありますが、その管理者権限を入手する方法があれば、ログインページにスクリプトを追加して認証情報を簡単に盗むことができます。ConnectWise 社はこの脆弱性を完全には修正していませんが、ConnectWise の試用版ではこのフィールドのスクリプトを許可していません。たしかに、この脆弱性を悪用する攻撃者は試用版を使用する確率の方が高いため、ConnectWise 社がこの問題を完全に修正しなかった理由もわかります。ユーザがログインページをカスタマイズできるようにするには、そのページにコードを追加できるようにする必要があります。カスタマイズが許可されている以上、ページは保護されているはずですが、そもそもログインページの変更には管理者権限が必要なため、この欠陥が大きなリスクをもたらすとは考えていません。もしすでに何者かがプラットフォームの管理者権限を持っているとしたら、その場合すでに別の問題が発生しています。それでも、適切な認証方法を実装することによって問題を軽減することはできます。強力なパスワードの使用はその 1 つです。15 文字以上のパスワードを使用し、さらにパスワードマネージャで保護することをお勧めします。ログインに多要素認証(MFA)を実装することもできます。ウォッチガードでは、多要素認証を使用することを強く推奨しています。

オリジン間リソース共有(CORS)の構成ミス

オリジン間リソース共有(CORS)の構成にミスがあると、制限されたコンテンツに、他のドメインからアクセスすることが許可されます。まず、Web サーバがどのようにコンテンツを提供しているのか、簡単に説明すると、CORS を実装するサーバは、特定のタイプのデータリクエストを受信した際に、まずはそのリクエストが承認済みドメインからのものであることを確認します。そうでない場合には、リクエストは拒否されます。CORS を適切に構成していないサイトでは、コンテンツリクエストに応答する際に、ページのドメイン名が確認されません。その時点で、通常ユーザには許可されていないはずのコンテンツのリクエストが許可され、ユーザの情報が漏洩する可能性があります。この問題を解決するために、ConnectWise は Web サイトの CORS の構成を修正しました。

クロスサイトリクエストフォージェリ(CSRF)の構成ミス

クロスサイトリクエストフォージェリ(CSRF)の脆弱性を悪用すると、ユーザのコンピュータにおいて悪意のある Web サイトが JavaScript または PHP のコードを実行し、脆弱なサイト内のデータにアクセスできます。たとえばオンラインで株取引をしているとしましょう。株情報にアクセスする場合、通常、ログインをする必要がありません。しかしオンライン株取引の脆弱な Web サイトでは、「取引」ボタンが悪意のあるフォーム内に隠れており、それによって意図せずに取引してしまう場合があります。悪意のあるフォームでは、「ここをクリックしてビデオを見る」や、「資産を増やす」などといったボタンをクリックするように仕向け、結果として購入する意図がない会社の株を購入させられることになります。ConnectWise 社は、ユーザ入力を許可する Web ページのこの脆弱性を修正しました。サイトの一部の領域では CSRF が許可される上に CORS が設定されていませんが、これらの部分は、読み取りアクセスのみが許可されています。

個人を特定できる情報(PII)の漏洩

ユーザの InstanceID を手に入れると、メールアドレスと郵便番号を知ることができる状態になっていました。MSP に使用される ConnectWise の各インスタンス、またはクラウドサービスにサインアップした人物には、アカウントに関連付けられた InstanceID が割り振られます。cloud.screenconnect.com/scripts/Service/GetScripts に、有効な InstanceID を用いてリクエストを行うと、攻撃者は MSP が使用しているセキュリティプログラムを特定することができ、さらにそれを迂回するのに役立つ、メールアドレスと郵便番号を含んだアカウントに関する情報を得ることができます。InstanceID は 6 文字の英数字からなる短いものであるため、簡単に推測したり、または総当たりで調べることができます。ConnectWise 社は、リクエストに対するレスポンスからメールアドレスと郵便番号を削除することで対処しましたが、攻撃者は依然として ID をしらみつぶしに調べあげて、他の悪意ある目的に使用する可能性があります。ID の文字数を長くすれば、攻撃を困難にすることはできますが、ConnectWise はまだこれを行っていません。

ユーザ列挙攻撃

ConnectWise 社は、特定のユーザアカウントが ConnectWise Control に存在するかどうかをインターネット上の誰でも調べられる、ユーザ列挙攻撃の問題を修正しました。これにより、攻撃者はアカウントを総当たりで調べる際に役立つ、貴重な情報を得ることができます。 ConnectWise 社はこれを完全に修正したので、パッチを適用していれば、問題になりません。

リモートからのコード実行

ConnectWise Control サーバには、管理ユーザからリモートコードのアップロードし、実行できる脆弱性が含まれています。この機能により、攻撃者はバックエンドサーバインスタンス、および機密ファイルにアクセスすることができます。ConnectWise 社は、この脆弱性を軽減するために、アップロードされたデータの実行ができないようにしました。

Bishopfox 社のアドバイザリは、同社がまだパッチを適用していない、ConnectWise Control に潜む、影響の少ない他の2つの脆弱性についても詳述しています。具体的には、HSTS、およびコンテンツセキュリティポリシー(CSP)に関連する欠陥です。CSP は、XSS を緩和するため、サーバとクライアントの間にセキュリティのレイヤを作成し、CORS のように、スクリプトのソースが信頼できるドメインからのものであるかどうかを確認します。これにより、サーバは信頼できるドメインからのスクリプトのみを実行します。さらに CSP は、攻撃者がトラフィックを傍受できる中間者攻撃を防ぐのに役立ちます。CSP は、すべてのトラフィックの暗号化を強化するオプションを提供します。Huntress Labs 社によると、ConnectWise 社はこれらを将来修正すると主張しているようです。

さらに、安全でない Cookie スコープ(Cookieのスコープに元のドメイン所有者によって制御されていないドメインの領域が含まれるもの)により、悪意のあるサブドメインが、別のサブドメインのデータにアクセスできるという欠陥があります。たとえば、独自の [compA].screenconnect.com で悪意のあるサブドメイン [compB].screenconnect.com にアクセスすると、CloudAuth トークンを読み取られる可能性があります。これにより、悪意のある攻撃者がファイルをアップロードしてくる可能性があります。前述のリモート実行の脆弱性と組み合わせて悪意のあるサブドメインにアクセスすると、[compB] は CloudAuth トークンを盗み、インスタンスでコードを実行してバックエンドサーバに直接アクセスできます。ConnectWise 社はこの問題を修正しているので、パッチを必ず適用してください。

最新の ConnectWise アップデートでは、8つの脆弱性すべてが修正されたわけではありませんが、それらのほとんどは修正されています。ConnectWise Control を使用している MSP、または他のサービスプロバイダの場合、ConnectWise で利用可能なすべてのパッチをすぐに適用することを強くお勧めします。さらに、パッチがまだ適用されていない問題についての ConnectWise 社の今後の動向にも注意を払いましょう。また、悪意のあるサイトをブロックする Web フィルタリングソリューションを実装すること、ウイルス対策ソフトウェアが最新であることを確認すること、MFA を有効にすることもお勧めします。これらの手順を実行することで、脆弱性を軽減できます。

改めて、現在、高度なサイバー犯罪者は MSP を積極的に標的にしていることを思い起こさせます。さまざまな手法を駆使し、多くの防御を突破して得たアクセス権を活用して、ランサムウェアを顧客のコンピュータにインストールしています。そのため RMM や PSA ツール(ConnectWise Control や Kaseya VSA など)の欠陥や弱点を活用するケースが多くなっています。これらの欠陥は、MSP に対する攻撃を続けるための、理想的な攻撃手段となっています。最優先で修正する必要があるでしょう。