未經驗證的存取會透過發佈執行個體URL公開信任存放區和內部中繼資料

如果Adobe Experience Manager (AEM)發佈執行個體上的Dispatcher篩選器過於寬容,未驗證的請求可能會公開信任存放區相關的資源、內部中繼資料和其他非公開路徑。 若要解決此問題,請檢閱並收緊Dispatcher篩選規則、明確拒絕存取敏感性端點,以及驗證精心編制的請求在到達發佈層級之前是否遭到封鎖。

說明 description

環境

在發佈執行個體前使用Dispatcher的Adobe Experience Manager (AEM)部署

問題/症狀

當AEM篩選規則過於寬鬆或未明確限制敏感路徑時,在Dispatcher發佈執行個體上會觀察到以下症狀:

  • 某些發佈執行個體的URL可透過未經驗證的GET請求存取,而不需要驗證、Cookie或特殊標頭。
  • 成功的請求可公開信任存放區相關的資源、內部節點名稱、內容結構、設定相關的路徑和資產中繼資料。
  • 有些精心設計的請求也允許存取通常應受限制的內部登入相關路徑。

範例URL:

  • https://www.example.com/etc/truststore.-1.json;x='.ico/x' — 可能公開信任存放區相關資訊
  • https://www.example.com/etc/truststore/truststore.p12;x='.ico/x' — 可允許下載信任存放區憑證檔案
  • https://www.example.com/.children.-1.json;x='.ico/x' — 可能會公開內部節點名稱、內容結構、設定相關路徑和中繼資料
  • https://www.example.com/libs/dam/merge/metadata.css;x='.ico/x'?path=/content/dam/example-site/example-logo-32x32.ico — 可以透過MergeMetadataServlet公開資產中繼資料
  • https://www.example.com/libs/granite/core/content/login.html;x='.ico/x' — 可允許存取通常應限制的內部登入相關路徑

錯誤/記錄檔輸出

沒有明確的錯誤訊息;問題是無意間暴露了內部資源。

原因

問題通常是由於Dispatcher篩選規則不夠嚴格,無法封鎖精心打造的請求,或無法存取發佈執行個體上的敏感內部路徑所導致。

解決方法 resolution

注意 Dispatcher篩選很重要,但它本身不是可靠的安全性界限。 發佈時的AEM存放庫ACL和端點限制必須維持為主要控制項,以Dispatcher/Apache/CDN規則作為深入防禦。

請依照下列步驟解決問題:

  1. 檢閱Dispatcher篩選器設定

    • 開啟Dispatcher設定檔,例如dispatcher.any
    • 找到/filter/filters區段。
  2. 新增規則,在應用程式不需要包含分號或其他可疑URL模式的要求時拒絕這些要求。

    code language-none
    /0xxx { /type "deny" /url "*;*" }
    

    此規則會封鎖URL中包含分號的任何要求,而分號通常用於略過篩選的精心編制要求。

  3. 限制對敏感路徑的存取

    • 為敏感路徑(例如/etc/truststore/libs/dam/merge/libs/granite/core/content/login.html)新增明確的拒絕規則。

    • 範例:

      code language-none
      /0xxx { /type "deny" /url "/etc/truststore*" }
                              /0xxx { /type "deny" /url "/libs/dam/merge*" }
                              /0xxx { /type "deny" /url "/libs/granite/core/content/login.html*" }
      
  4. 驗證更新的設定

    • 將更新的Dispatcher設定部署至所有發佈執行個體。
    • 重新測試先前公開的URL,並確認它們現在會傳回封鎖的回應,例如404或另一個根據您的設定預期的拒絕回應。
  5. 檢閱發佈層級強化

    • 確認發佈時無法匿名存取敏感資源。
    • 檢閱內部端點的AEM許可權和servlet曝光。
    • 儘可能偏好使用允許清單型Dispatcher模型,以便只公開已知的必要路徑。

相關閱讀

recommendation-more-help
experience-cloud-kcs-help-kbarticles