Amazon CloudFront에서 CloudFront-Viewer-JA3-Fingerprint 헤더를 지원하고 있습니다.
JA3 fingerprint는 request가 알려진 클라이언트로부터 온 것인지, malware나 악성 봇인지, 예상되는(허용 목록에 있는) 애플리케이션인지 판단하는 데 도움이 될 수 있습니다. 이 헤더는 뷰어의 SSL/TLS Client Hello 패킷에 의존하며 HTTPS 요청에만 존재합니다.
JA3 메서드는 Client Hello 패킷의 TLSVersion, Ciphers, Extensions, EllipticCurves, EllipticCurvePointFormats 필드에 대한 바이트의 10진수 값을 수집하는 데 사용됩니다. 각 필드를 ,(comma)로 구분하고 -(Hyphen)을 사용하여 각 필드의 각 값을 구분하여 해당 값을 순서대로 연결합니다.
769,47-53-5-10-49161-49162-49171-49172-50-56-19-4,0-10-11,23-24-25,0
만약 Client Hello에 SSL 확장이 없으면 필드가 비어 있습니다.
769,4-5-10-9-100-98-3-6-19-18-99,,,
그런 다음 이 문자열은 MD5 해시되어 32자 fingerprint를 생성합니다. 이것이 JA3 TLS Client Fingerprint입니다.
769,47-53-5-10-49161-49162-49171-49172-50-56-19-4,0-10-11,23-24-25,0 --> ada70206e40642a3e4461f35503241d5
769,4-5-10-9-100-98-3-6-19-18-99,,, --> de350869b8c85de67a350c8d186f11e6
JA3는 IP 또는 도메인 기반 IOC보다 SSL을 통한 악성 활동을 탐지하는 훨씬 더 효과적인 방법입니다. JA3는 클라이언트 애플리케이션을 탐지하기 때문에 악성코드가 DGA(Domain Generation Algorithms)를 사용하든, 각 C2 호스트마다 다른 IP를 사용하든, 악성코드가 C2용 트위터를 사용하든 상관없이 악성코드가 무엇을 통신하는지가 아니라 어떻게 통신하는지에 따라 악성 코드 자체를 탐지할 수 있습니다.
JA3는 소수의 특정 어플리케이션만 설치가 허용되는 폐쇄된 환경에서도 탁월한 탐지 메커니즘입니다. 이러한 유형의 환경에서는 예상되는 애플리케이션의 whitelist를 구축한 다음 다른 JA3 hits에 대해 경고할 수 있습니다.
참고로 CF에서 JA3 헤더 값을 받아오려면 CF 정책 생성 시 헤더 키를 추가해야합니다.
[Reference]
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/adding-cloudfront-headers.html
https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967/
'infra > aws' 카테고리의 다른 글
[AWS SDK for JAVA] S3 버전 1.x에서 2.x로 마이그레이션 (0) | 2024.06.04 |
---|---|
[AWS SDK for JAVA] SES 버전 1.x에서 2.x로 마이그레이션 (0) | 2024.06.04 |
[AWS SDK for JAVA] EC2 보안그룹(Security Group) 조회 (0) | 2023.06.21 |
Java Mail API로 Amazon SES 반송 이메일 세부 정보 읽기 (1) | 2021.04.07 |
[JAVA] AWS S3 Https 연결이 비공개로 설정되어 있지 않습니다. (Your connection is not private) 해결방안 (0) | 2020.10.31 |
댓글