特定のシンボルのスクリプト挿入 Windows Azure パック用更新プログラム ロールアップ 13 でのポータル UI 制限をバイパスする

現象

Windows Azure Pack (WAP) の更新プログラム ロールアップ 13 にセキュリティの脆弱性が存在します。この脆弱性により、特定のシンボルのスクリプト挿入がポータルの UI 制限をバイパスされます。 ポータル UI では、"<script>" インジェクションに必要な、より大きい ( < ) 記号やより小さい ( > ) 記号など、特定のシンボルが制限されます。

Fiddler で要求を再生することで、 < や > などの文字を含む文字列をサブスクリプション名として送信できます。 SubscriptionName フィールドには、最大 128 文字の任意の文字列を設定できます。 このシナリオでは、 <script src="https://code.jquery.com/jquery-1.10.2.min.js"> や <script>alert(document.cookie)</script> などのさまざまなスクリプトを読み込んで実行できます。

この脆弱性の詳細については、 Microsoft Common Vulnerabilities and Exposures CVE-2018-8652 を参照してください。

解決策

ダウンロード情報

Windows Azure パックの更新プログラム パッケージは、Microsoft Update から入手するか、手動でダウンロードできます。

Microsoft Update

このセキュリティ更新プログラムは、Windows Update を介して入手できます。 自動更新を有効にすると、このセキュリティ更新プログラムは自動的にダウンロードされてインストールされます。 セキュリティ更新プログラムを自動的に入手する方法の詳細については、「Windows Update: FAQ」を参照してください。

更新プログラム パッケージの手動ダウンロード

次の Web サイトにアクセスして、Microsoft Update カタログからセキュリティ更新プログラム パッケージを手動でダウンロードします。

Windows Azure Pack セキュリティ更新プログラム パッケージを今すぐダウンロードしてください。

インストール情報

インストール手順

これらのインストール手順は、次の Windows Azure パック コンポーネントを対象としています。

  • テナント サイト
  • テナント API
  • テナント パブリック API
  • 管理サイト
  • 管理 API
  • 認証
  • Windows 認証
  • 用途
  • 監視
  • Microsoft SQL
  • MySQL
  • Web アプリケーション ギャラリー
  • 構成サイト
  • ベスト プラクティス アナライザー
  • PowerShell API

各 Windows Azure Pack コンポーネントの更新プログラム .msi ファイルをインストールするには、次の手順を実行します。

  1. システムが現在動作している場合 (顧客トラフィックを処理中)、Azure サーバーのダウンタイムをスケジュールします。 現在、Windows Azure パックではローリング アップグレードはサポートされていません。

  2. 顧客のトラフィックを停止するか、満足できると思われる代替サイトにリダイレクトします。

  3. コンピューターのバックアップを作成します。

    注

    • 仮想マシンを使用している場合は、現在の状態のスナップショットを取得します。
    • 仮想マシンを使用していない場合は、WAP コンポーネントがインストールされている各コンピューターの Inetpub ディレクトリ内の各 MgmtSvc-* フォルダーをバックアップします。
    • 証明書、ホスト ヘッダー、およびポートの変更に関連する情報とファイルを収集します。
  4. Windows Azure パック テナント サイトに独自のテーマを使用している場合は、更新プログラムを実行する前に、「Microsoft アップグレード後に Windows Azure パック テーマを保持する方法」を参照してください。

  5. 対応するコンポーネントが実行されているコンピューターで各 .msi ファイルを実行して、更新プログラムをインストールします。 たとえば、IIS で "MgmtSvc-AdminAPI" サイトを実行しているコンピューターで MgmtSvc-AdminAPI.msi を実行します。

  6. 負荷分散中の各ノードについて、コンポーネントの更新を次の順序で実行します。

    1. WAP によってインストールされた元の自己署名証明書を使用している場合は、更新操作によって置き換えられます。 新しい証明書をエクスポートして、負荷分散が行われている他のノードにインポートする必要があります。 これらの証明書には、CN=MgmtSvc-* (自己署名) 名前付けパターンがあります。
    2. 必要に応じて、リソース プロバイダー (RP) サービス (SQL Server、My SQL、SPF/VMM、Web サイト) を更新します。 また、RP サイトが実行されていることを確認します。
    3. テナント API サイト、パブリック テナント API、管理者 API ノード、および管理者とテナント認証サイトを更新します。
    4. 管理者サイトとテナント サイトを更新します。

    データベース バージョンを取得し、MgmtSvc-PowerShellAPI.msi によってインストールされたデータベースを更新するスクリプトは、次の場所に保存されています。
    C:\Program Files\Management Service\MgmtSvc-PowerShellAPI\Samples\Database
    すべてのコンポーネントが更新され、期待どおりに機能している場合は、更新されたノードへのトラフィックを開くことができます。 それ以外の場合は、「ロールバック手順」セクションを参照してください。

    注釈Windows Azure パックの更新プログラム ロールアップ 5 と同じかそれ以前の更新プログラムのロールアップから更新する場合は、次の手順に従って WAP データベースを更新します。

ロールバック手順

問題が発生し、ロールバックが必要であると判断した場合は、次の手順を実行します。

  1. 「インストール手順」セクションの手順 3 の 2 番目の注意で説明されているスナップショットが使用可能な場合は、スナップショットを適用します。 スナップショットがない場合は、次の手順に進みます。

  2. 「インストール手順」セクションの手順 3 の 1 番目と 3 番目のメモで説明されているように作成したバックアップを使用して、データベースとコンピューターを復元します。

    注釈 システムを部分的に更新された状態のままにしないでください。 更新が失敗したのが 1 つのノードのみの場合でも、Windows Azure パックがインストールされているすべてのコンピューターでロールバック操作を実行します。

    各 Windows Azure パック ノードで Windows Azure パックのベスト プラクティス アナライザーを実行して、構成項目が正しいことを確認することをお勧めします。

  3. 復元されたノードへのトラフィックを開きます。