一般 SSL/TLS 憑證需明確註明網站 DNS 供特定網站使用,每次新增網站需申請新憑證。所謂萬用字元憑證則是將 DNS 網域名稱第一段改為萬用字元「*」,讓一張憑證能適用符合該網域名稱結尾的網站,例如:若萬用字元憑證簽發對象為 *.darkthread.net,可同時用於 www.darkthread.netblog.darkthread.net,若未來再新增 shop.darkthread.net,繼續使用同一張憑證即可,不需再申請,省事又省錢。

今天聽同事提到「萬用字元憑證具有額外風險」並提供一新聞連結 - 提防ALPACA跨協定攻擊手法,美國NSA呼籲應正視萬用字元TLS憑證風險 by iThome

花了點時間反覆讀了幾回,還查了美國國家安全局的原始說明,才搞懂這種靠萬用字元憑證突破的攻擊手法,順手整理分享。

首先,要先了解所謂 ALPACA(Application Layer Protocols Allowing Cross-Protocol Attacks)攻擊手法,是利用 TLS 協定對 TCP 連線完整性保護不足的弱點,將 HTTPS 流量導向另一個 IP 的 TLS 端點。而要成功有個必要條件,導到新 IP 的 TLS 端點必須提供有效 TLS 憑證才能成功。有了這層認識,來看為什麼萬用字元憑證會增加被 ALPACA 的風險。

案例一 (案例及圖片來源:NSA 文件)

攻擊者想盜取使用者傳送給 secure.example.com 的機密資料,但 secure.example.com 防禦嚴密,屢攻不下,而 weak.example.com 是實習生寫的訂便當網站,且其使用 *.example.com 萬用字元憑證,被攻擊盯上成功入侵,在網頁加入偷資料的程式。下一步是發動 ALPACA 攻擊,將使用者送給 ℎttps://secure.example.com TLS 連線偷偷導向 ℎttps://weak.example.com,由於 weak.example.com 所回應 TLS 憑證的 DNS 為 *.example.com 可涵蓋 secure.example.com,瀏覽器判定憑證有效,完成 TLS Handsake 將資料傳送到 weak.example.com。
在此案例中,攻擊者成功用 weak.example.com 頂替 secure.example.com 接收機密資料,若 weak.example.com 使用的 TLS 憑證限定 weak.example.com,瀏覽器比對與 secure.example.com 不同,攻擊便無法成功。

案例二

攻擊者送出釣魚 URL 引誘受害者點擊,釣魚網站 URL 為合法有效網站(如 app.example.com),但攻擊者透過操控網路手法,將通往 app.example.com 的 HTTPS 連線被導向非 HTTP 服務(FTP、SMTP、POP3... 等服務,通常防護不如重要網站) - service.example.com,FTP/SMTP 無法處理 HTTPS 請求吐回錯誤訊息,而錯誤訊已被攻擊者加料植入惡意腳本,訊息以 *.example.com 憑證簽名回傳,瀏覽器視為 app.example.com 傳回的有效內容,惡意腳本得以執行展開攻擊。

整理結論:

  1. 萬用字元憑證造成風險的前題 - 使用萬用字元憑證的伺服器被入侵,萬用字元 DNS 與重要網站後端網名相同,攻擊者成功實現 TCP 連線導向
    (黑觀點:坦白說這漏洞要被利用並不容易,伺服器先被入侵是必要前題。但攻擊者既然都成功入侵了,似乎沒必要花功夫加碼連線導向搞出這麼迂迴的攻擊套路,理應有更省力的行竊管道,不過萬一... 就是這個萬一,依資安常導向無限上綱的特性及政治正確考量,萬用字元憑證只怕連合理使用的空間都沒了)
  2. 嚴格限制萬用字元憑證的使用範圍,限定性質、安全等級相同的應用,才不會讓次要網站、FTP/SMTP 等非網站主機成為破口
  3. WAF 或 Application Gateway 的 TLS Server Name Indication (SNI) 過濾能降低被導向風險
  4. 使用加密 DNS 並驗證 DNS Security Extensions (DNSSEC) 可防止 DNS 導向
  5. 啟用 Application-Layer Protocol Negotiation (ALPN) 可防止 HTTP、IMAP、POP3、FTP 頂替 HTTPS
  6. 有些新版瀏覽器已加入 ALPACA 相關防護,雖無法社絕風險,但加減有防護力,建議即時更新至最新版

【參考資料】

This note explains how wildcard TLS certificate increse risk of ALPACA.


Comments

# by Iven

謝謝分享!

# by Huang

憑證效期短+網站多,漏換網站就過期,自動化程式就掛掉。每次更換又花費行政流程+實作,換起來真的累人。

# by Jeffrey

to Huang, 資安議題跟國家安全、防疫有高度類似性,擁有不用管投資報酬率的特權,拿成本、效率、便利性等理由去挑戰它都是徒勞無功,還可能因政治不正確被炎上,這點讓人蠻無力的,但現實很難被改變。

# by Jy

案例1的情境,在IIS同站台下建立多個應用程式(都是同個憑證)也有相同的問題?

# by Jeffrey

to Jy, 這個攻擊的定義是使用者要連 aaa. example. com,被偷偷轉到 bbb. example. com,bbb 靠萬用字元憑證成功冒充 aaa。若你說所的多個應用程式是使用不同 DNS 名稱(一機多 IP 或鎖 Host),才會有相同問題。

Post a comment