背景

AWS または Azure インスタンスメタデータサービスから IAM インスタンスロールの認証情報を漏洩させるために悪用される可能性がある、サーバーサイドリクエストフォージェリの脆弱性が AEM パスで最近発見されました。この脆弱性は、Salesforce MCM バンドル内にあります。

脆弱な AEM インスタンスは、一時的な API キーを返します。これらの API キーは数時間以内に期限切れになり、ManagedServicesBigBearInstance ロールと同等の権限を持ちます。

緩和オプション

推奨される緩和策 - Salesforce バンドルを無効にする

推奨される緩和策は、Salesforce バンドルを無効にすることです。これを行うには、次の手順に従います。

  1. この URL を参照して、作成者システムコンソールにアクセスします。

    • http://serveraddress:serverip/system/console/bundles
  2. com.day.cq.mcm.cq-mcm-salesforce を検索します。検出したら、バンドルの右側にある停止ボタンを押して停止します。

    screen_shot_2018-06-14at160114
  3. ターミナルで次のコマンドを実行して、Dispatcher キャッシュをクリアします。

    cd /mnt/var/www/html

    適切な場所に切り替えた後、次の操作を実行してキャッシュをクリアします。

    rm -rf ./libs/*
  4. 最後に、URL がキー情報を返さないことを確認します。これを行うには、次の 2 つの URL にアクセスします。

    • http://publishurl:pubishport/libs/mcm/salesforce/customer.html%3b%0aa.css?checkType=authorize&authorization_url=http://169.254.169.254/latest/meta-data/iam/security-credentials/ManagedServicesBigBearInstance&customer_key=zzzz&customer_secret=zzzzredirect_uri=xxxx&code=e
    • http://authorandpublishurl:port/libs/mcm/salesforce/customer.html%3b%0aa.css?checkType=authorize&authorization_url=http://169.254.169.254/latest/metadata/iam/security-credentials/ManagedServicesBigBearInstance&customer_key=zzzz&customer_secret=zzzz&redirect_uri=xxxx&code=e

SalesForce 統合を使用している場合の脆弱性の緩和

まず、AEM Salesforce 統合を使用しているかどうかを確認します。これを行うには、次の操作を行います。

  1. http://serveraddress:serverip/etc/cloudservices/salesforce.html を参照し、ダッシュボードにサービスが有効になっていると表示されているかどうかを確認します。
  2. または、次の cURL コマンドを実行します。
    1. curl -s -u "admin:$(pass CQ_Admin)" serveraddress:serverport/etc/cloudservices/salesforce.html|grep enabled|wc -l

サービスが実行中の場合は、以下の手順に従って緩和策を適用します。

  1. Dispatcher ルールを制御する config ファイルを特定します。一般的には、これを行うには、以下のように /etc/httpd/conf/ を参照して *.any ファイルを探します。

    注意:

    パスとファイル名は、インスタンスの設定によって異なる場合があります。

    cd /etc/httpd/conf/
    cat dispatcher.any
    cat publish-farm.any
  2. ファイルを特定したら、別の場所にバックアップします。その後、次のような現在のファイルを編集します。

    cp publish-farm.any publish-farm.any.20180525
    vi publish-farm.any

    ここで、次の行を設定ファイルに追加します。

    /9999 { /type "deny" /glob "GET *libs/mcm/salesforce/customer*" }
  3. 次を実行して設定を確認します。

    apachectl configtest
  4. 次のコマンドを実行して、httpd サービスを再起動します。

    service httpd reload
    service httpd status
  5. ここで、Dispatcher キャッシュをクリアします。

    cd /mnt/var/www/html
    rm -rf ./libs/*
  6. 最後に、次のURLにアクセスして、URL がキー情報を返さないことを確認します。

    • http://publishurl:pubishport/libs/mcm/salesforce/customer.html%3b%0aa.css?checkType=authorize&authorization_url=http://169.254.169.254/latest/meta-data/iam/security-credentials/ManagedServicesBigBearInstance&customer_key=zzzz&customer_secret=zzzzredirect_uri=xxxx&code=e
    • http://authorandpublishurl:port/libs/mcm/salesforce/customer.html%3b%0aa.css?checkType=authorize&authorization_url=http://169.254.169.254/latest/metadata/iam/security-credentials/ManagedServicesBigBearInstance&customer_key=zzzz&customer_secret=zzzz&redirect_uri=xxxx&code=e

上記が失敗した場合の別の緩和オプション

Salesforce 統合を使用しているのに上記の緩和策が失敗した場合は、代わりに dispatcher_conf.any のすべての VirtualHost セクションに次の書き換えルールを追加できます。

  • RewriteRule ^/libs/mcm/salesforce/customer.html* [F]

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

リーガルノーティス   |   プライバシーポリシー