기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
봇 관리를 위한 클라이언트 식별 제어
정적 속성을 통해 공격 관련 트래픽을 쉽게 인식할 수 없는 경우 탐지 기능을 통해 요청을 보내는 클라이언트를 정확하게 식별할 수 있어야 합니다. 예를 들어 속도 기반 규칙은 속도 제한이 적용되는 속성이 쿠키나 토큰과 같이 애플리케이션별로 다르면 더 효과적이고 회피하기가 더 어려운 경우가 많습니다. 세션에 연결된 쿠키를 사용하면 봇넷 운영자가 여러 봇에서 유사한 요청 흐름을 복제할 수 없습니다.
토큰 획득은 일반적으로 클라이언트 식별에 사용됩니다. 토큰 획득의 경우 JavaScript 코드는 정보를 수집하여 토큰을 생성하며, 토큰은 서버 측에서 평가됩니다. 평가 범위는 클라이언트에서 실행 JavaScript 중인지 확인하는 것부터 핑거프린팅을 위한 장치 정보 수집에 이르기까지 다양합니다. 토큰을 획득하려면 JavaScript SDK를 사이트 또는 애플리케이션에 통합하거나 서비스 공급자가 동적으로 주입해야 합니다.
JavaScript 지원이 필요하면 브라우저를 에뮬레이션하려는 봇에게 추가적인 장애물이 추가됩니다. 모바일 애플리케이션과 같이 SDK가 관련된 경우 토큰 획득을 통해 SDK 구현을 확인하고 봇이 애플리케이션의 요청을 모방하는 것을 방지할 수 있습니다.
토큰을 획득하려면 연결의 클라이언트 측에 구현된 SDK를 사용해야 합니다. 다음 AWS WAF 기능은 브라우저용 JavaScript 기반 SDK와 모바일 장치용 애플리케이션 기반 SDK를 제공합니다: 봇 제어, 사기 통제 계정 탈취 방지 (ATP) 및 사기 통제 계정 생성 사기 방지 (ACFP).
클라이언트 식별 기술에는 CAPTCHA, 브라우저 프로파일링, 장치 핑거프린팅, TLS 핑거프린팅 등이 있습니다.
CAPTCHA
컴퓨터와 사람을 구분하는 완전 자동화된 공개 튜링 테스트 (CAPTCHA) 는 로봇 방문자와 인간 방문자를 구분하고 웹 스크래핑, 자격 증명 스터핑 및 스팸을 방지하는 데 사용됩니다. 다양한 구현이 가능하지만, 여기에는 사람이 풀 수 있는 퍼즐이 수반되는 경우가 많습니다. CAPTCHA는 일반 봇에 대한 추가 방어 계층을 제공하며 봇 탐지에서 오탐지를 줄일 수 있습니다.
AWS WAF 규칙이 규칙의 검사 기준과 일치하는 웹 요청에 대해 CAPTCHA 작업을 실행할 수 있도록 허용합니다. 이 조치는 서비스에서 수집한 클라이언트 식별 정보를 평가한 결과입니다. AWS WAF 로그인, 검색, 양식 제출과 같이 봇이 자주 표적으로 삼는 특정 리소스에 대해 규칙에 따라 CAPTCHA 문제를 해결해야 할 수 있습니다. AWS WAF 전면 광고 수단을 통해 CAPTCHA를 직접 제공하거나 SDK를 사용하여 클라이언트 측에서 CAPTCHA를 처리할 수 있습니다. 자세한 내용은 의 CAPTCHA 및 챌린지를 참조하십시오. AWS WAF
브라우저 프로파일링
브라우저 프로파일링은 토큰 획득의 일환으로 브라우저 특성을 수집 및 평가하여 대화형 브라우저를 사용하는 실제 사람과 분산된 봇 활동을 구분하는 방법입니다. 헤더, 헤더 순서 및 브라우저 작동 방식에 내재된 기타 요청 특성을 통해 브라우저 프로파일링을 수동적으로 수행할 수 있습니다.
토큰 획득을 사용하여 코드에서 브라우저 프로파일링을 수행할 수도 있습니다. 를 브라우저 JavaScript 프로파일링에 사용하면 클라이언트가 지원하는지 빠르게 확인할 수 있습니다. JavaScript 이를 통해 지원하지 않는 단순 봇을 탐지할 수 있습니다. 브라우저 프로파일링은 단순히 HTTP 헤더와 JavaScript 지원을 검사하는 데 그치지 않습니다. 브라우저 프로파일링을 사용하면 봇이 웹 브라우저를 완전히 에뮬레이션하기가 어렵습니다. 두 브라우저 프로파일링 옵션의 목적은 동일합니다. 즉, 브라우저 프로필에서 실제 브라우저의 동작 방식과 일치하지 않는 패턴을 찾는 것입니다.
AWS WAF 표적 봇에 대한 봇 제어는 토큰 평가의 일환으로 브라우저가 자동화의 증거를 보이는지 또는 일관되지 않은 신호를 보이는지 여부를 나타냅니다. AWS WAF 규칙에 지정된 조치를 취하기 위해 요청에 플래그를 지정합니다. 자세한 내용은 AWS 보안 블로그의 고급 봇 트래픽 탐지 및 차단을
디바이스 핑거프린팅
디바이스 핑거프린팅은 브라우저 프로파일링과 비슷하지만 브라우저에만 국한되지 않습니다. 장치 (모바일 장치 또는 웹 브라우저일 수 있음) 에서 실행되는 코드는 장치의 세부 정보를 수집하여 백엔드 서버에 보고합니다. 세부 정보에는 메모리, CPU 유형, 운영 체제 (OS) 커널 유형, OS 버전 및 가상화와 같은 시스템 속성이 포함될 수 있습니다.
디바이스 핑거프린팅을 사용하여 봇이 환경을 에뮬레이션하고 있는지 또는 자동화가 사용되고 있다는 직접적인 징후가 있는지 인식할 수 있습니다. 이 외에도 디바이스 핑거프린팅을 사용하여 동일한 디바이스에서 반복되는 요청을 인식할 수도 있습니다.
기기가 요청의 일부 특성을 변경하려고 하는 경우에도 동일한 기기에서 반복되는 요청을 인식하면 백엔드 시스템에서 속도 제한 규칙을 적용할 수 있습니다. 일반적으로 기기 핑거프린팅을 기반으로 하는 속도 제한 규칙이 IP 주소를 기반으로 하는 속도 제한 규칙보다 더 효과적입니다. 이를 통해 VPN 또는 프록시 간에 순환하지만 소수의 디바이스에서 발생하는 봇 트래픽을 줄일 수 있습니다.
대상 봇에 대한 AWS WAF 봇 제어인 애플리케이션 통합 SDK와 함께 사용하면 클라이언트 세션 요청 동작을 집계할 수 있습니다. 이를 통해 합법적인 클라이언트 세션을 탐지하고 악의적인 클라이언트 세션으로부터 분리할 수 있습니다. 둘 다 동일한 IP 주소에서 시작된 경우에도 마찬가지입니다. 표적 봇의 AWS WAF 봇 제어에 대한 자세한 내용은 보안 블로그의 고급 봇 트래픽 탐지 및 차단을
TLS 핑거프린팅
서명 기반 규칙이라고도 하는 TLS 핑거프린팅은 봇이 여러 IP 주소에서 시작되지만 유사한 특성을 보이는 경우에 일반적으로 사용됩니다. HTTPS를 사용하는 경우 클라이언트와 서버 측은 메시지를 교환하여 서로를 확인하고 확인합니다. 이들은 암호화 알고리즘과 세션 키를 설정합니다. 이를 TLS 핸드셰이크라고 합니다. TLS 핸드셰이크를 구현하는 방법은 여러 IP 주소에 퍼져 있는 대규모 공격을 인식하는 데 유용한 시그니처인 경우가 많습니다.
TLS 핑거프린팅을 사용하면 웹 서버가 웹 클라이언트의 ID를 매우 정확하게 파악할 수 있습니다. 애플리케이션 데이터 교환이 이루어지기 전에 첫 번째 패킷 연결에서 파라미터만 있으면 됩니다. 이 경우 웹 클라이언트는 요청을 시작하는 애플리케이션을 의미하며, 이는 브라우저, CLI 도구, 스크립트 (봇), 네이티브 애플리케이션 또는 기타 클라이언트일 수 있습니다.
SSL 및 TLS 핑거프린팅 접근 방식 중 하나는 JA3 핑거프린트입니다.
CloudFront Amazon은 요청에 JA3 헤더 추가를 지원합니다. CloudFront-Viewer-JA3-Fingerprint
헤더에는 수신되는 최종 사용자 요청의 TLS Client Hello 패킷의 32자 해시 핑거프린트가 포함되어 있습니다. 핑거프린트는 클라이언트가 통신하는 방식에 대한 정보를 캡슐화합니다. 이 정보는 동일한 패턴을 공유하는 클라이언트를 프로파일링하는 데 사용할 수 있습니다. 원본 요청 정책에 CloudFront-Viewer-JA3-Fingerprint
헤더를 추가하고 정책을 CloudFront 배포에 연결할 수 있습니다. 그런 다음 오리진 애플리케이션 또는 Lambda @Edge 및 Functions에서 헤더 값을 검사할 수 있습니다. CloudFront 헤더 값을 알려진 멀웨어 지문 목록과 비교하여 악성 클라이언트를 차단할 수 있습니다. 헤더 값을 예상 핑거프린트 목록과 비교하여 알려진 클라이언트로부터의 요청만 허용할 수도 있습니다.