클라우드 보안 실무 가이드/AWS

[클라우드 보안 실무 #6] AWS WAF, 공격 우회 트래픽까지 잡는 고급 룰 작성법

cloudindovi 2025. 5. 9. 16:58
728x90
반응형

AWS WAF를 적용한 뒤에도 공격 트래픽이 꾸준히 유입된다면, 룰 자체가 우회를 허용하고 있을 가능성이 큽니다.

특히 URI 인코딩, Query 파라미터 변조, User-Agent 위장 등의 기법은 단순한 룰 필터링으로는 잡히지 않는 경우가 많습니다.


이번 글에서는 AWS WAF에서 우회 공격 트래픽까지 탐지하고 차단할 수 있는 고급 룰 구성 전략을 실무 중심으로 정리합니다.
RegexPatternSet, Header 검사, 쿠키 필터링 등 잘 알려지지 않은 기능까지 활용해, 보다 정밀한 보안 정책을 수립해보세요.


🔎 1. 인코딩 우회 탐지 – URLDecode, Base64 처리

많은 공격자들이 URI나 파라미터에 인코딩을 섞어 필터 우회를 시도합니다.

예: /login%2flogin, 또는 ../%2e%2e%2f

AWS WAF의 정규식 패턴(RegexPatternSet)을 활용하면 이런 패턴을 탐지할 수 있습니다.

  • URI 및 쿼리 문자열에 인코딩 문자열 패턴 포함 여부 확인
  • Base64로 인코딩된 페이로드 탐지 (eyJ, dGVzdA== 등 공통 시그니처)

🧪 2. 헤더 기반 우회 탐지 – User-Agent, Referer 분석

일반적인 브라우저가 아닌 스크립트/봇은 종종 비정상적인 User-Agent 값을 보냅니다. 또는 특정 공격자는 아예 Referer 없이 직접 요청을 넣기도 하죠.

  • User-Agent 패턴 중 잘 알려진 봇 시그니처 필터링 (예: curl, python-requests)
  • 빈 Referer 헤더 요청 탐지
  • 쿠키 헤더 유무로 브라우저 접근 여부 구분

이런 필터링은 Rule Group 내 Header 검사 조건을 활용하면 구현할 수 있습니다.


⚙️ 3. 우회 시도 패턴의 정규식 구성 예시

다음은 실무에서 많이 사용하는 우회 시도 탐지용 Regex 예시입니다.

  • %2e%2e%2f, \.\./ – 디렉토리 트래버설
  • base64_decode, eval, exec – 웹쉘 또는 인젝션 시도
  • \b(select|union|drop|insert)\b – SQL 키워드 탐지

이러한 정규식 패턴은 AWS WAF의 RegexPatternSet에 등록하여 WebACL에 연결할 수 있습니다.


💡 실무 팁: 조건을 세분화하고 Count 모드로 먼저 테스트하세요

공격 우회 트래픽은 일반 사용자와 구분이 애매할 수 있기 때문에, 바로 차단하지 말고 Count 모드로 먼저 테스트하는 것이 중요합니다.

이후 로그를 분석해 오탐 없는 조건을 확인하고, 실제 차단 룰로 전환하세요.


정리하며 ✍️

AWS WAF는 기본 설정만으로는 정교한 우회 공격을 막기 어렵습니다.
RegexPatternSet, Header 조건, 쿠키 검사 등을 조합하면 탐지 우회까지 대응하는 룰 체계를 만들 수 있습니다.

방어는 룰의 디테일에서 갈립니다. 한 줄의 정규식이 실제 사고를 막는 열쇠가 될 수 있습니다.

도움이 되셨다면 댓글이나 구독 부탁드립니다! 🙏

728x90
반응형