過去六年以來,趨勢科技看到一般惡意程式與目標式攻擊惡意程式大量運用了加密連線。這不僅是為了躲避偵測,更是為了融入一般正常的加密流量。除了惡意程式之外,一些駭客工具平台,如:Cobalt Strike、Metasploit 及 Core Impact 也都使用加密流量。許多案例甚至採用了 SSL/TLS 所使用的 X.509 憑證。
趨勢科技在一篇技術摘要「惡意程式幕後操縱 (C&C) 通訊採用 SSL/TLS 憑證的現況」(The State of SSL/TLS Certificate Usage in Malware C&C Communications) 當中詳細分析了各種惡意程式家族所用的憑證。趨勢科技指出了這些憑證的一些特性以及趨勢科技觀察到的現象,還有如何迅速偵測這些憑證的技巧。要想盡可能及早攔截惡意程式,最重要的關鍵就是在憑證層次偵測惡意程式的 C&C 通訊流量,尤其是在無法透過代理器 (Proxy) 來進行解密的情況下。
本文介紹惡意程式所用憑證當中的異常之處,以及如何利用這些特性來偵測惡意活動。趨勢科技蒐集並研究了多種惡意程式家族所用的 1,767 個憑證。
憑證簽署
潛在惡意活動的第一個徵兆,就是憑證的簽署方式。在我們趨勢科技研究過的憑證當中,有 60% 都是自簽憑證 (self-signed certificate),光這一點就讓人起疑。除此之外,憑證簽署機構的名稱也是一個明顯警訊。有些惡意程式 (如 AsyncRAT 和 BitRAT) 會將自己的名稱填入這個欄位,還有其他惡意程式會使用「default」和「Internet Widgits Pty Ltd」這個奇怪的名稱的排列組合,後者是 OpenSSL 憑證產生時預設填入的名稱。
此外,憑證的效期也差異極大。目前,瀏覽器通常接受的憑證效期最長為 13 個月,憑證機構核發的效期通常比這更短。
惡意程式的憑證大致都遵守這項規定,但也有些例外。趨勢科技看過的憑證效期最短是一個月,最長可達數年 (有些樣本甚至高達 99 年)。例如,Gozi 從 2018 年至今一直都使用效期 10 年的憑證。
憑證綁定
憑證綁定 (Certificate Pinning) 是用戶端 (如瀏覽器、惡意程式等等) 限定網站合法憑證數量的方式,也就是說,並非任何合法的憑證都接受。這是有些網站和瀏覽器用來保護流量的方法,所以,就算惡意程式這麼做也不算奇怪。
這樣的作法目前並非特別常見,不過還是有些家族經常使用,如: IcedID、AsyncRAT、DcRAT、Vawtrak 和 PhantomNet。值得一提的是,前述惡意程式家族目前都使用自簽憑證,因此都可用前述的方法來偵測。但此處的偵測技巧,可用於具公信力的憑證機構 (Trusted CA) 所核發的憑證。
具公信力的憑證機構所核發的憑證
雖然前面已經提到,大多數的惡意憑證都是自簽憑證,但仍有一些是由具公信力的憑證機構 (CA) 所核發,下表顯示一些知名憑證機構所核發的惡意憑證數量。
有多個惡意程式家族經常使用這類具公信力的憑證,例如 Gozi 就使用了 150 個,其次是 QNodeService 的 61 個、BazaLoader 的 29 個,以及 ZLoader 的 28 個。至於這類憑證的效期,趨勢科技發現沒有任何惡意網域的憑證在 Let’s Encrypt 所提供的 3 個月效期過後仍繼續展延。但趨勢科技卻發現有某些網域出現不同憑證對應同一個網域的情況。
不同 CA 對於惡意網域憑證的核發各有不同的政策,例如 Let's Encrypt 所持的態度是,他們不認為憑證機構必須網域上的內容進行審查。如果所有的網域都預設啟用 TLS,那麼加密基本上已經成為所有網路流量的基本要求。撇開趨勢科技的立場不談,這確實會讓網路防禦的程序變得複雜。
結論
在正常情況下,加密的 SSL/TLS 流量會阻礙惡意程式 C&C 通訊流量的偵測。不過,趨勢科技還是有辦法透過檢查流量所用的憑證來偵測惡意流量,並且產生入侵防護 (IDS/IPS) 特徵碼或過濾規則在憑證交握 (handshake) 層次偵測各種惡意程式家族。此外,這還能提供一些新的資訊來協助威脅調查人員發掘潛在的惡意流量。
本文轉載自趨勢科技部落格。