惡意軟件隱藏在加密流量中變得越來越普遍,這使得檢測變得困難。Sophos 提到,已檢測到大約46% 的惡意軟件通過 TLS 通過 Internet 與遠程系統通信。網絡犯罪分子正在利用這一點來逃避檢測并繼續進行惡意活動。網絡安全成為安全管理員面臨的挑戰,因為他們不知道惡意軟件是否已經進入網絡。入侵檢測系統 (IDS)通常用于監控網絡是否存在任何可疑活動,但無法分析加密流量。JA3 和 JA3S 是 TLS 指紋識別方法,可用于安全監控以檢測和防止惡意活動。它們已成為當今許多工具,例如 Suricata 和 Splunk)中流行的妥協指標 (IoC)。
什么是 TLS 指紋識別?
TLS指紋識別是一種從TLS ClientHello消息中提取字段以生成識別特定客戶端的指紋的技術。
TLS 握手
對于 JA3 和 JA3S,TLS 握手中最重要的部分是 ClientHello 和 ServerHello 消息。ClientHello 是發送到服務器以初始化與服務器通信的第一條消息。
ServerHello 消息是服務器對客戶端消息的響應。JA3 和 JA3S 指紋(MD5 哈希值)是根據 ClientHello 和 ServerHello 消息中的特定屬性生成的。JA3 指紋有效,因為
TLS 協商以明文形式傳輸,這就是為什么我們能夠獲得指紋生成所需的屬性。
JA3指紋
JA3 由三位 Salesforce 成員(John Althouse、Jeff Atkinson 和 Josh Atkins)開發,是一種用于根據 ClientHello 數據包生成 SSL 指紋以識別建立加密連接的客戶端的技術。JA3 指紋從一開始就說明客戶端應用程序是否惡意。
JA3 指紋生成
從 ClientHello 消息中生成 JA3 指紋必不可少的屬性是 SSL 版本、密碼、擴展、橢圓曲線和橢圓曲線點格式。密碼,擴展名和橢圓曲線有助于識別客戶端。提取每個值后,將使用逗號將它們連接起來以分隔每個字段。長字符串從十進制值轉換為 MD5 哈希值,以創建一個簡單的 32 個字符指紋,即 JA3 指紋。
字段順序如下:
SSLVersion、密碼、擴展、EllipticCurves、EllipticCurvePointFormats
每個應用程序使用不同的程序包和編程方法來生成ClientHello消息,該消息解釋了為什么ClientHello消息對于給定應用程序而言是相同的。
JA3 限制
有可能兩個客戶端應用程序具有相同的 JA3 指紋,并且對于檢測和識別通信是合法的還是惡意的沒有用。這就是為什么最好將 JA3 和 JA3S 一起使用的原因。
JA3S
JA3S 用于 SSL/TLS 通信的服務器端,指紋是使用 ServerHello 數據包中的屬性生成的。JA3S 指紋生成比 JA3 指紋需要更少的屬性。它只需要 SSL 版本、密碼和 SSLExtension。
字段順序如下:
SSLVersion、密碼、SSLExtension
JA3 + JA3S 一對
John Althouse 在 Twitter 對話中提到,JA3S 不能單獨使用,必須與 JA3 結合使用才能更有效地進行檢測或列入黑名單。
當成對使用時,它還可以減少誤報的數量。此外,如果我們只使用 JA3 指紋,我們很可能會看到穩定的流量,其中大部分是合法的。
JA3和JA3S如何用于安全監控?
JA3 指紋可用于檢測惡意規避技術。
域前置
域前置會偽裝客戶端通信的實際目的地,并將其重新路由到惡意站點。從防火墻的角度來看,HTTPS 請求實際上是在訪問一個應該被阻止的惡意站點時,它似乎是轉到一個合法的網站。在建立SSL連接之前,可以使用JA3和JA3S指紋來確定應用程序的類型。
數據泄露
攻擊者使用數據泄露來未經許可將敏感信息從組織傳輸到其服務器或系統。盡管信息已加密,但仍然可以確定客戶端是否正在與命令和控制服務器進行通信。JA3指紋可用于識別它是哪種類型的應用程序(即瀏覽器,惡意軟件等),這對于早期發現可能的攻擊者可能是一個優勢。
入侵檢測系統(IDS)
在組織中實施 IDS 時,監視和檢測可能發生的任何可疑活動可能會有所幫助。在網絡中安裝 IDS 以防止可能的停機時間很重要。
上述就是關于SSL通信安全監控中的JA3和JA3S的全部內容,想了解更多關于信息安全的信息,請繼續關注中培偉業。