𝗪𝗔𝗙 𝗥𝘂𝗹𝗲𝘀 𝗮𝗻𝗱 𝗘𝘃𝗮𝘀𝗶𝗼𝗻
웹 애플리케이션 방화벽(WAF)은 웹사이트를 위한 디지털 보안 요원 역할을 합니다. WAF는 HTTP 트래픽을 검사하여 공격자가 애플리케이션에 도달하기 전에 차단합니다.
전통적인 방화벽은 네트워크를 보호합니다. 반면 WAF는 특정 웹 앱을 보호합니다. WAF는 요청(request)과 응답(response)을 분석하여 SQL 인젝션(SQL Injection) 및 교차 사이트 스크립팅(XSS)과 같은 위협을 탐지합니다.
WAF의 작동 방식:
- 시그니처 기반 탐지(Signature-Based Detection): 알려진 악성 코드 패턴을 찾습니다.
- 이상 탐지(Anomaly-Based Detection): 요청의 급격한 증가와 같은 비정상적인 동작을 식별합니다.
- 평판 기반 탐지(Reputation-Based Detection): 알려진 악성 IP 주소로부터의 트래픽을 차단합니다.
- 행동 분석(Behavioral Analysis): 사용자 세션을 연구하여 시간이 지남에 따라 나타나는 악의적인 의도를 찾아냅니다.
WAF가 제공하는 추가 기능:
- 가상 패칭(Virtual Patching): 영구적인 수정 작업을 진행하는 동안 취약점에 대한 공격을 차단합니다.
- 속도 제한(Rate Limiting): 단일 IP에서의 요청 수를 제한하여 무차별 대입 공격(brute-force attacks)을 방지합니다.
- Geo-IP 차단: 특정 지리적 영역에서 발생하는 트래픽을 차단합니다.
공격자들은 이러한 방어 체계를 우회하기 위해 우회 기법(evasion)을 사용합니다. 다음 전술들을 반드시 숙지해야 합니다:
- 인코딩 및 난독화(Encoding and Obfuscation): 공격자는 URL, HTML, Base64 또는 Hex 인코딩을 사용하여 페이로드를 숨깁니다. 이는 단순한 규칙에서 코드가 정상적으로 보이게 만듭니다.
- HTTP 파라미터 오염(HTTP Parameter Pollution, HPP): 동일한 이름의 파라미터를 여러 개 전송합니다. 이는 WAF와 애플리케이션이 데이터를 읽는 방식에 혼란을 줍니다.
- 파편화(Fragmentation): 단일 공격을 요청의 여러 부분에 걸쳐 작은 조각으로 나눕니다.
- 대소문자 변조(Case Sensitivity): 단순한 필터를 피하기 위해
uNiOn sElEcT와 같이 키워드의 대소문자를 변경합니다. - 비즈니스 로직 악용(Business Logic Exploitation): 특정 애플리케이션의 작동 방식을 악용합니다. WAF는 이를 유효한 요청으로 볼 수 있지만, 실제로는 탈취 시도일 수 있습니다.
보안을 유지하는 방법:
- 새로운 위협을 탐지할 수 있도록 WAF를 정기적으로 업데이트하세요.
- 로그를 검토하여 의심스러운 패턴을 찾으세요.
- 오탐(false positives)을 줄이기 위해 규칙을 미세 조정(tune)하세요.
- 계층적 보안을 사용하세요. WAF는 더 큰 방어 전략의 일부일 뿐입니다.
WAF는 필수적인 도구이지만, 완벽한 해결책은 아닙니다. 공격자보다 앞서 나가기 위해서는 지속적인 모니터링과 미세 조정이 필요합니다.
출처: https://dev.to/godofgeeks/waf-web-application-firewall-rules-and-evasion-49p8