CDNetworks를 무료로 체험하세요
대부분의 제품에는 14일간의 무료 체험이 제공됩니다. 신용카드가 필요하지 않습니다.
오늘날의 디지털 세계에서 사이버 보안은 개인, 조직, 심지어 국가에 중대한 문제가 되었습니다. 다양한 위협 중에서 “봇 트래픽” 또는 봇 네트워크 트래픽이 심각한 우려로 떠올랐습니다.
봇 트래픽, 주로 자동화된 스크립트나 프로그램에서 생성되며, 디도스 공격, 스팸 이메일 발송, 피싱 및 사기성 광고 클릭과 같은 다양한 악성 활동에 널리 사용됩니다. 이러한 악의적인 행동은 개별 사용자의 프라이버시와 재정적 보안을 위협할 뿐만 아니라 기업, 조직 및 국가 네트워크 인프라의 사이버 보안에 상당한 위험을 초래합니다. 따라서 봇 트래픽에 대한 연구 및 방어는 사이버 보안 분야에서 중요한 주제가 되었습니다. 이 가이드는 TLS 지문 기술을 사용하여 봇 트래픽을 탐지하고 식별하여 사이버 보안에 대한 보다 효과적인 보호를 제공하는 방법을 설명하는 것을 목표로 합니다.
TLS는 Transport Layer Security의 약자로, 네트워크 통신에서 일반적으로 사용되는 프로토콜로 데이터의 안전한 전송을 보장합니다. TLS는 데이터 송수신 과정에서 암호화 기술을 사용하여 데이터가 가로채거나 변조되는 것을 방지하여 정보의 무결성과 기밀성을 보호합니다.
TLS는 웹 브라우징, 등록 및 로그인, 결제 거래, 스트리밍 미디어부터 점점 더 인기를 얻고 있는 사물 인터넷(IoT)에 이르기까지 인터넷의 대부분 트래픽을 암호화하는 데 사용됩니다. TLS의 보안은 악성 소프트웨어의 통신 트래픽을 숨기기 위해 TLS를 사용하는 악의적인 공격자에게도 선호됩니다.
TLS 연결이 시작될 때 클라이언트는 TLS 클라이언트 Hello 패킷을 보냅니다. 클라이언트 애플리케이션에서 생성된 이 패킷은 서버에 지원되는 암호와 선호하는 통신 방법을 알리고 일반 텍스트로 전송됩니다. TLS 클라이언트 Hello 패킷은 각 애플리케이션 또는 기본 TLS 라이브러리에 대해 고유하며 이 패킷에서 계산된 해시 값을 TLS 지문이라고 합니다.
그림 1: TLS 핸드셰이크 프로세스
오늘날 TLS 지문의 주요 응용 분야는 Salesforce의 오픈 소스 JA3 및 JA4이며, JA4는 더 많은 탐지 차원과 시나리오를 포함하는 JA3의 업그레이드 버전입니다. 따라서 이 문서는 주로 봇 완화에서 JA4 기반 TLS 지문의 응용 및 실행에 초점을 맞춥니다.
JA3 방법은 클라이언트의 클라이언트 Hello 패킷에서 다음 필드의 바이트의 10진수 값을 수집합니다. TLS 버전, 암호 모음, 확장 목록, 타원 곡선 및 타원 곡선 형식. 그런 다음 이러한 값을 나타나는 순서대로 연결하고 각 필드를 쉼표로 구분하고 필드 내의 각 값을 하이픈으로 구분합니다.
예:
771,4865-4866-4867-49195-49196-52393-49199-49200-52392-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-13-51-45-43-21,29-23-24,0
JA3 지문은 연결된 문자열에 32비트 MD5 해시를 적용하여 얻습니다.
JA3: f79b6bad2ad0641e1921aef10262856b
JA3 지문을 계산하는 동안 TLS 확장에 포함된 GREASE 필드의 값을 무시해야 합니다. Google에서 사용하는 이 메커니즘은 TLS 생태계에서 확장성 실패를 방지합니다.
그림 2: 클라이언트 Hello 메시지
JA3 지문을 생성한 후, 우리는 유사한 방법을 사용하여 서버 측에서 지문을 식별합니다(즉, TLS Server Hello 메시지). JA3S 방법은 Server Hello 패킷의 다음 필드에서 바이트의 10진수 값을 수집합니다: TLS 버전, 암호화 제품군 및 확장 목록. 그런 다음 이러한 값은 나타나는 순서대로 연결되며, 각 필드는 쉼표로 구분되고 필드 내의 각 값은 하이픈으로 구분됩니다.
예:
771,49200,65281-0-11-35-16-23
JA3S 지문은 연결된 문자열에 32비트 MD5 해시를 적용하여 얻습니다.
JA3S: d154fcfa5bb4f0748e1dd1992c681104
그림 3: 서버 Hello 메시지
JA4+는 2017년에 도입된 JA3 TLS 지문 표준을 대체하는 사용하기 쉽고 공유 가능한 모듈식 네트워크 지문 시스템을 제공합니다. JA4 탐지 방법은 가독성을 향상시켜 보다 효과적인 위협 사냥 및 분석을 돕습니다. 모든 JA4+ 지문은 지문의 다른 부분이 분리된 a_b_c로 포맷됩니다. 이를 통해 ab, ac 또는 c만 사용하여 검색 및 탐지가 가능합니다. 예를 들어, 들어오는 애플리케이션의 쿠키만 분석하려는 경우 JA4H_c를 살펴보면 됩니다. 이 새로운 지역성 보존 형식은 간단하고 사용하기 쉬우며 확장 가능한 상태를 유지하면서도 더 깊고 풍부한 분석을 용이하게 합니다.
JA4+ 지문에는 다음과 같은 치수가 포함됩니다.
이 문서에서는 주로 JA4의 적용을 소개합니다. 다른 차원에 대한 자세한 정보는 JA4 오픈소스 저장소를 참조하세요. https://github.com/FoxIO-LLC/ja4.
그림 4: JA4 회로도
JA4는 JA4_a, JA4_b, JA4_c로 구성됩니다.
JA4_r = JA4_a(t13d1516h2)_JA4_b(정렬된 암호 그룹)_JA4_c(정렬된 확장자_원래 암호화 알고리즘)
JA4_a: t13d1516h2에는 클라이언트의 TLS 버전, SNI, 암호화 제품군 수, 확장 수 및 ALPN이 포함됩니다. ALPN은 TLS 협상이 완료된 후 애플리케이션이 통신하려는 프로토콜을 나타냅니다. "00"은 ALPN이 없음을 나타냅니다. ALPN "h2"가 있다고 해서 반드시 브라우저를 나타내는 것은 아닙니다. 많은 IoT 기기가 HTTP/2를 통해 통신하기 때문입니다. 그러나 ALPN이 없으면 클라이언트가 웹 브라우저가 아님을 나타낼 수 있습니다. JA4는 트래픽이 TCP를 통하든 퀵을 통하든 관계없이 클라이언트를 지문화합니다.
JA4_b: 정렬된 암호 제품군에 SHA256을 수행하고 처음 12자를 가져옵니다. 예를 들어:
002f, 0035, 009c, 009d, 1301, 1302, 1303, c013, c014, c02b, c02c, c02f, c030, cca8, cca9 = 8daaf6152771
JA4_c: 정렬된 확장자와 원래 암호화 알고리즘에 SHA256을 수행하고 처음 12자를 가져옵니다.
0005,000a,000b,000d,0012,0015,0017,001b,0023,002b,002d,0033,4469,ff01_0403,0804,0401,0503,0805,0501,0806,0601 = e5627efa2ab1
다양한 클라이언트(브라우저, 컴퓨터 소프트웨어, 프로그램)는 다양한 프로토콜 버전, 암호 제품군, 확장 및 암호화 알고리즘을 지원합니다. TLS 핸드셰이크 동안 클라이언트 Hello는 일반 텍스트로 전송되므로 JA4 지문을 계산하여 클라이언트의 실제 속성을 식별할 수 있습니다.
클라이언트가 악의적으로 변조되지 않은 경우 JA4 지문은 안정적으로 유지됩니다.
~ 안에 봇 완화 시나리오에서 클라이언트 식별을 위해 JA4 지문을 적용하려면 클라이언트 IP 정보, 클라이언트 운영 체제 정보, 클라이언트 장치 이름, 버전 번호 등의 다른 정보와 결합해야 합니다. 이러한 시나리오에서 JA4 지문은 지문 고유성 감지와 지문 일관성 감지라는 두 가지 주요 적용 방법을 갖습니다.
애플리케이션 | JA4+ 지문 |
---|---|
크롬 | JA4=t13d1517h2_8daaf6152771_b1ff8ab2d16f (초기) |
JA4=t13d1517h2_8daaf6152771_b0da82dd1658 (다시 연결) | |
파이어폭스 | JA4=t13d1715h2_5b57614c22b0_7121afd63204(초기) |
JA4=t13d1715h2_5b57614c22b0_7121afd63204 (다시 연결) | |
원정 여행 | JA4=t13d2014h2_a09f3c656075_14788d8d241b |
헤리트릭스 | JA4=t13d491100_bd868743f55c_fa269c3d986d |
감지되지 않은 크롬 드라이버 | JA4=t13d1516h2_8daaf6152771_02713d6af862 |
IcedID 맬웨어 | JA4=t13d201100_2b729b4bf6f3_9e7b989ebec8 |
sql맵 | JA4=t13i311000_e8f1e7e78f70_d41ae481755e |
앱스캔 | JA4=t12i3006h2_a0f71150605f_1da50ec048a3 |
표 1: 일반 클라이언트 JA4 지문
클라이언트가 선언한 장치 정보 | 클라이언트 JA4 지문 | 일관성 |
---|---|---|
“브라우저”: “크롬”, “브라우저 버전”: “89.8.7866”, “os”: “Windows”, “os_version”: “7” | t12d290400_11b08e233c4b_017f05e53f6d | 이상 |
“브라우저”: “크롬”, “브라우저 버전”: “93.0.4622”, “os”: “Windows”, “os_version”: “10” | t13d431000_c7886603b240_5ac7197df9d2 | 이상 |
“브라우저”: “파이썬 요청”, “브라우저 버전”: “2.31” | t13d1516h2_8daaf6152771_02713d6af862 | 이상 |
“브라우저”: “크롬”, “브라우저 버전”: “93.0.4577”, “os”: “Windows”, “os_version”: “10” | t13d1516h2_8daaf6152771_e5627efa2ab1 | 정상 |
“브라우저”: “파이어폭스”, “브라우저 버전”: “116.0”, “os”: “우분투” | t13d321200_1b30506679d3_58ed7828516f | 이상 |
“브라우저”: “에지”, “브라우저 버전”: “14.14393”, “os”: “Windows”, “os_version”: “10” | t12d040400_a6a9ac001284_255c81f47ac1 | 이상 |
“브라우저”: “사파리”, “브라우저 버전”: “15.6”, “os”: “Mac OS X”, “os_version”: “10.15.7” | t13d2014h2_a09f3c656075_f62623592221 | 정상 |
표 2: JA4 일관성 감지
공식 JA4+ 지문 데이터베이스, 관련 애플리케이션 및 권장 탐지 로직이 아직 구축 중이므로 현재 사용 가능한 지문 데이터베이스가 없습니다. 따라서 /
Security Lab은 특정 봇 완화 시나리오에 대한 일반적인 클라이언트 지문을 수집하고 해당 탐지 알고리즘을 구현했습니다.
이 분석은 TLS 지문이 매우 효과적인 도구임을 보여줍니다. TLS 클라이언트의 클라이언트 Hello 패킷에서 다양한 필드를 심층 분석하여 고유한 JA4 지문을 생성하고 이러한 지문을 사용하여 특정 악성 봇 트래픽을 식별할 수 있습니다.
TLS 지문은 봇 트래픽을 효과적으로 감지할 수 있지만, 특정 한계도 있습니다. 공격자가 지속적으로 전략을 업그레이드하고 변경함에 따라 TLS 지문은 계속해서 변조되거나 위조될 것입니다. 따라서 공격과 방어 간의 지속적인 전투에서 우위를 유지하기 위해 감지 메커니즘을 지속적으로 업데이트하고 개선해야 합니다.
봇 완화 시나리오에서 TLS 지문은 강력한 식별 메커니즘을 제공하지만 다른 보안 조치를 대체할 수는 없습니다. 위협 인텔리전스, 브라우저 지문 및 기타 조치와 함께 사용하여 철저한 보호를 제공하는 포괄적인 봇 보안 전략의 일부로 간주해야 합니다.
CDNetworks의 서버리스 엣지 컴퓨팅 솔루션인 엣지 애플리케이션을 소개합니다. 작동 방식, 주요 이점, 그리고 실제 사용 사례를 알아보세요.
2024년 10월 24일, CDNetworks는 동남아시아에 대규모 사용자 기반을 둔 브라우저 게임 플랫폼을 타겟으로 한 대규모 DDoS 공격을 성공적으로 완화했습니다. 이 공격은 네트워크 계층에서 1.24Tbps에 도달했고 애플리케이션 계층에서 수백만 QPS를 넘어섰습니다.