AWS WAF에서의 오탐 관리
개요
WAF와 같은 보안 제어를 웹 애플리케이션에 추가하면 오탐이 발생할 위험이 커집니다. 오탐은 합법적인 사용자 요청을 차단하는 경우로, WAF 사용의 바람직한 부작용은 아닙니다. 오탐을 관리하는 작업에는 오탐을 최소화하는 규칙을 설계하고, 오탐 발생을 감지하고, 애플리케이션 측 또는 WAF에서 오탐을 완화하는 것이 포함됩니다. AWS WAF는 규칙 언어의 유연성과 생성된 로그에서 제공되는 세부 정보를 통해 오탐 관리를 단순화합니다.
오탐률이 낮은 WAF 규칙 설계
AWS WAF를 사용할 때 낮은 긍정성을 줄이려면 WebACL에서 규칙을 신중하게 구성해야 합니다. 첫째, 규칙의 탐지 임계값을 조정합니다. 예를 들어, 이 블로그에서는 속도 제한 탐지 임계값 구성에 대한 지침을 제공합니다. 또 다른 예는 SQL 명령어 삽입(SQLi) 규칙의 탐지 민감도를 구성하는 것입니다. 둘째, 가장 구체적인 방식으로 애플리케이션에서 가장 관련성이 높은 부분에 가장 관련성이 높은 규칙을 활성화합니다. 예를 들어 애플리케이션에서 SQL 데이터베이스를 사용하는 경우에만 SQLi 규칙을 활성화하고 이 데이터베이스와 상호 작용하는 URL로 범위를 좁힙니다. 셋째, 미묘한 작업을 통해 일치하는 요청에 응답합니다. 이 접근 방식을 사용하면 요청의 악의성이 높은 경우에만 요청에 대한 차단 작업을 구성할 수 있습니다. 요청 차단에 대한 확신이 서지 않는다면 다음과 같은 미묘한 응답 전략 중 하나를 고려해 보세요.
- 요청을 헤아려 해당 요청이 애플리케이션에 업스트림으로 흐르도록 하되, 애플리케이션에 전달되는 요청에는 WAF 생성 헤더를 포함합니다. 그러면 애플리케이션이 헤더 값에 따라 다르게 응답할 수 있습니다. 예를 들어 의심스러운 로그인 시도가 있을 경우 다중 인증(MFA)을 트리거할 수 있습니다. 또한 진행 중인 위협 수준에 따라 WAF 응답 심각도를 동적으로 높일 수 있습니다. 예를 들어, OLX는 애플리케이션의 위험 수준에 따라 의심스러운 IP에 대한 응답을 동적으로 변경합니다. 저위험 모드에서는 더 많은 트래픽이 애플리케이션으로 전달되도록 하여 오탐을 최소화합니다. 고위험 모드에서는 의심스러운 IP를 모두 차단하여 오탐보다 미탐을 줄이는 것을 선호합니다.
- 브라우저가 챌린지에 실패한 경우에만 요청을 차단하는 CAPTCHA 또는 사일런트 챌린지로 응답합니다.
Amazon 관리형 규칙
AWS WAF는 WAF WebACL에 추가할 수 있는 Amazon 관리형 규칙 그룹(AMR) 목록을 제공합니다. AMR은 오탐을 최소화하면서 가장 심각하고 영향력이 큰 위협을 차단하도록 큐레이션됩니다.
오탐을 더 효과적으로 관리할 수 있도록 AMR은 다음과 같은 구성 가능성을 제공합니다.
- AMR에 의한 자동 업데이트를 비활성화하고 대신 특정 버전으로 수동으로 업데이트할 수 있습니다. 이렇게 하면 최신 버전을 활성화하기 전에 업데이트에 오탐이 있는지 테스트할 수 있습니다.
- AMR은 평가될 때 레이블을 내보냅니다. AMR의 기본 차단 규칙을 사용하는 대신 해당 규칙을 헤아리도록 설정하고 내보낸 레이블을 다른 WAF 규칙과 함께 사용하여 더 높은 신뢰 수준으로 요청을 차단합니다. 예를 들어 카운트 모드에서 Amazon IP 평판 목록 AMR을 사용한 다음 이 AMR에서 내보낸 레이블을 기반으로 후속 규칙을 만들어 매우 낮은 임계값으로 속도 제한을 설정할 수 있습니다. AMR 생성 레이블은 WAF 설명서에 설명되어 있습니다.
이 서비스에 가입하고 자동 애플리케이션 계층 DDoS 완화를 활성화한 경우 Shield Advanced에서 생성한 관리형 규칙 그룹에도 동일하게 적용됩니다. 설명서에 설명된 대로 Shield Advanced는 과거 트래픽 패턴을 기반으로 규칙이 공격 서명과 일치한다고 확신하는 경우에만 차단 규칙 WAF를 설정합니다.
오탐 식별
다음 지침은 오탐이 발생할 때 이를 식별하는 데 도움이 됩니다.
- 소프트웨어 릴리스 프로세스 또는 인프라 변경 프로세스에 오탐 감지 기능을 포함합니다. 예를 들어 개발 및 스테이징 환경에서 WAF 규칙을 테스트한 다음 최종 배포 전에 프로덕션 환경의 카운트 모드에서 검증합니다. AWS WAF 설명서에 Bot Control 규칙 및 계정 탈취 방지 규칙을 프로덕션에 안전하게 배포하기 위한 지침이 나와 있습니다.
- WAF 규칙에서 내보내는 CloudWatch 지표에 대해 경보를 설정합니다. 규칙이 비정상 수준의 트래픽과 일치하면 알림을 받게 됩니다. 예를 들어 애플리케이션 코드 변경이 프로덕션 환경으로 전파된 후 공격으로 잘못 식별되어 발생할 수 있습니다.
- WAF 로깅을 활성화하고 차단된 트래픽을 정기적으로 감사하여 차단된 합법적인 트래픽을 식별합니다. 간단한 사용 사례로, AWS WAF 콘솔에서 샘플링된 요청 대시보드를 사용할 수 있습니다.
- 사용자가 예상치 못한 403 응답을 보고할 수 있도록 애플리케이션을 업데이트하세요. 예를 들어 WAF가 CloudFront와 함께 배포되면 403 오류 페이지 대신 CloudFront의 사용자 지정 오류 페이지를 사용하여 문제를 보고할 수 있는 페이지를 반환할 수 있습니다.
규칙 범위에서 오탐 제외
오탐이 식별되면 WAF 규칙을 업데이트하여 제외를 추가하고 오탐을 완화할 수 있습니다. 사용자 지정 규칙을 사용하면 AND/OR 논리를 사용하여 제외를 간단히 표현할 수 있습니다. 예를 들어 요청의 IP가 허용된 IP 목록에 속하지 않고 요청 URL이 제외된 URL에 속하지 않는 경우 SQLi 규칙을 적용합니다. AMR을 사용하면 scope-down 문을 사용하여 제외를 생성할 수 있습니다. WS WAF Bot Control AMR과 관련된 오탐을 관리하는 방법은 다음 설명서를 살펴보세요.