
CVE-2022-22828の解説
Viden Labs は、Synametrics の SynaMan に Insecure Direct Object Reference (IDOR) の脆弱性を発見しました。この脆弱性は、バージョン 4.9 以前に存在します。
この脆弱性は、その後バージョン 5.0 で修正されました。
Insecure Direct Object References(IDOR)は、アプリケーションがユーザー提供の入力を使用してオブジェクトに直接アクセスする際に発生する、アクセス制御の脆弱性の一種です。 - https://portswigger.net/web-security/access-control/idor.
この脆弱性を悪用されると、SynaMan ユーザーのホームフォルダー(サブフォルダーを含む)内の(潜在的に機密性の高い)ファイルに、アクセス権限がないにもかかわらずアクセスされる可能性があります。
「internaluser」という名前の SynaMan ユーザーがいます。このユーザーは AD に参加していますが、AD に参加していなくても違いはありません。
internaluser のホームフォルダーには、2 つのファイルがあります:
図 1: ファイルがあるユーザーディレクトリ
file-download.docx のダウンロードリンクが作成され、模擬的な外部関係者と共有されました。
図 2: SynaMan ファイルダウンロードページ
Web アプリケーションテストは、Kali 上の Burp Suite を使用して、10.0.2.0/24 ネットワークから実施されました。
Windows Server 2019 インスタンスは、最新のセキュリティ更新プログラムが適用された標準構成で実行されており、ポート 443 のインバウンドが開放されています。
SynaMan は、Synametrics Technologies の Web サイトのガイダンスに従い、ベストプラクティスに沿って構成されました。
以下の図 3 に、ラボテストのネットワーク構成の概要を示します。
図 3: SynaMan テストトポロジー
| コンピューター | 役割 | OS | ブラウザ |
|---|---|---|---|
| 10.0.2.30 | Web アプリケーションテストサーバー | Kali Linux (VM) | Burp Suite 組み込みブラウザ |
| 10.0.3.50 | SynaMan サーバー | Windows Server 2019 (VM) | N/A |
表 1 - 追加のセットアップ情報
外部の関係者がダウンロードリンクにアクセスした際に、脆弱性が発見されました。このリンクは、共有されたものか、「pubopp?」を Google 検索して見つけたものです。ファイルダウンロードのハイパーリンクには、パスを含む base64 エンコードされたファイル名が含まれています。このパスは、共有されていないユーザーフォルダー内の他のファイルをダウンロードするように変更できます。これには攻撃者がファイル名を正しく推測する必要がありますが、Burp Suite などのツールを使用すると、このブルートフォース攻撃は簡単かつ自動化できます。この概要を以下の図 4 に示します。

図 4: GET リクエストの脆弱性の図解
以下の図 5 は、ダウンロードリンクがクリックされたときの GET リクエストを示しています。

図 5: Burp Suite の GET リクエスト
base64 エンコードされたファイル名(「fn」というパラメータとして渡されます)を検査すると、ファイルの場所がわかります。

図 6: Burp Suite の Base64 ファイル名
Burp Suite を使用すると、これを別のファイル名に変更し、GET リクエストに置き換えることができます。この例では、このファイルがフォルダーに存在することを確認しているため、「secret.txt」を使用します。

図 7: Burp Suite で変更された Base64 ファイル名

図 8: Burp Suite で変更された GET リクエスト
変更した GET リクエストを送信すると、共有されていなかったファイルをダウンロードできます。これを以下の図 9 に示します。

図 9: SynaMan での不正ダウンロード
SynaMan で現在利用可能なセキュリティ設定には、この攻撃を軽減するための制御はありませんが、ダウンロードされたすべてのファイルはログに記録されます。