AWS WAF를 사용하여 무차별 로그인 공격으로부터 보호하고 싶습니다.
해결 방법
다음 AWS WAF 기능은 무차별 로그인 공격을 방지하는 데 도움이 됩니다.
- 속도 기반 규칙
- CAPTCHA 퍼즐
- AWS WAF Fraud Control 계정 탈취 방지(ATP) 관리형 규칙 그룹
- AWS WAF의 보안 자동화
속도 기반 규칙
요청 속도가 예상보다 높을 때 요청을 차단하려면 속도 기반 규칙 설명을 생성하십시오. 속도 기반 규칙의 임계값을 설정하려면 AWS WAF 로깅을 활성화하십시오. 그런 다음, 로깅 대상에 따라 Amazon Athena 또는 Amazon CloudWatch Log Insights를 사용하여 로그를 분석합니다.
또한 /login과 같이 URI 경로에만 적용되는 속도 기반 규칙 설명을 생성할 수 있습니다. 무작위 대입 공격은 일반적으로 계정 자격 증명에 액세스하기 위한 로그인 페이지를 대상으로 합니다. 웹 사이트의 페이지마다 받는 요청 속도가 다를 수 있습니다. 예를 들어, 홈 페이지는 로그인 페이지에 비해 더 높은 트래픽 비율을 받을 수 있습니다.
임계값을 설정한 후 다음 scope-down 구문을 사용하여 로그인 페이지에만 적용되는 속도 기반 규칙 설명을 생성하십시오.
- Inspect Request(요청 검사)에서 URI 경로를 선택합니다.
- 일치 유형에서 Starts with string(문자열로 시작)을 선택합니다.
- String to match(일치하는 문자열)에서 /login을 선택합니다.
CAPTCHA 퍼즐
CAPTCHA 퍼즐은 다음과 같은 공격을 방지하는 데 도움이 될 수 있습니다.
- 봇의 무차별 대입 공격
- 자격 증명 스터핑
- 웹 스크래핑
- 서버에 대한 스팸 요청
CAPTCHA 작업을 사용하여 규칙을 만드는 경우 사용자는 로그인하기 전에 먼저 CAPTCHA를 완료해야 합니다.
로그인 페이지에 CAPTCHA를 설정하려면 다음 규칙 구성을 사용하십시오.
- 검사에서 URI 경로를 선택합니다.
- 일치 유형에서 Starts with string(문자열로 시작)을 선택합니다.
- String to match(일치하는 문자열)에서 /login을 선택합니다.
- 작업에서 CAPTCHA를 선택합니다.
- Immunity time(면역 시간)에서 **시간(초)**을 선택합니다.
참고: 사람의 무작위 대입 공격을 방지하려면 면역 시간을 낮게 설정하십시오.
자세한 내용은 CAPTCHA 및 챌린지 작업 사용 모범 사례를 참조하십시오.
ATP 관리형 규칙 그룹
계정을 탈취하려는 악의적인 요청을 검사하려면 ATP 관리형 규칙 그룹을 사용하십시오. 예를 들어, 무차별 로그인 공격은 시행착오를 거쳐 자격 증명을 추측하여 계정에 무단으로 액세스할 수 있습니다.
ATP 관리형 규칙 그룹은 예상치 못한 요청 및 로그인 시도에 대한 가시성과 제어를 제공하는 사전 정의된 규칙을 포함합니다.
요청을 검사하려면 ATP 관리형 규칙 그룹에서 다음 규칙 하위 집합을 사용하십시오.
- VolumetricIpHigh: 개별 IP 주소에서 보내는 대량의 요청
- AttributePasswordTraversal: 암호 탐색을 사용하는 시도
- AttributeLongSession: 오래 지속되는 세션을 사용하는 시도
- AttributeUsernameTraversal: 사용자 이름 탐색을 사용하는 시도
- VolumetricSession: 개별 세션에서 보내는 대량의 요청
- MissingCredential: 누락된 자격 증명
자세한 내용은 계정 탈취 방지 규칙 목록을 참조하십시오.
AWS WAF의 보안 자동화
AWS CloudFormation 템플릿을 사용하여 일련의 규칙이 포함된 웹 액세스 제어 목록(웹 ACL)을 배포하려면 AWS WAF의 보안 자동화를 실행하십시오.
권한이 없는 사용자가 올바른 자격 증명을 추측하려고 하면 401 Unauthorized와 같은 오류 응답을 받습니다. 스캐너 및 프로브 규칙은 특정 응답 코드를 지속적으로 수신하는 IP 주소의 요청을 차단합니다. 이 규칙을 활성화하면 AWS WAF의 보안 자동화는 로그에서 HTTP 응답 코드를 확인하는 AWS Lambda 또는 Athena 쿼리를 배포합니다. 요청에서 동일한 오류 코드를 수신할 수 있는 횟수와 규칙이 임계값을 초과하는 요청을 차단하는 기간에 대한 임계값을 설정합니다.
관련 정보
AWS WAF에서 속도 기반 규칙 설명 사용