696. WAF (Web Application Firewall, 애플리케이션 L7 특화 방화벽)
핵심 인사이트: 아무리 비싼 IPS나 방화벽을 앞에 세워둬도 웹 해킹은 뚫린다. 왜일까? 쇼핑몰을 운영하려면 고객을 위해 '80번(HTTP) 포트'와 '443번(HTTPS) 포트'는 무조건 대문짝만하게 활짝 열어둬야 하기 때문이다. 해커는 이 정상적인 포트 80번으로 들어와 검색창에 몰래 'SQL 악성 코드'를 적어 넣어 DB를 털어간다. 기존 보안 장비는 이 교묘한 '정상적인 웹 요청으로 위장한 공격'을 까막눈처럼 통과시켜 버렸다. 이 HTTP 구멍을 막아내는 최후의 보루가 웹 전용 방화벽, WAF다.
Ⅰ. WAF (Web Application Firewall)의 탄생 배경
- 기존 장비의 맹점: 네트워크 방화벽(L3/L4)은 IP와 포트만 봅니다. IPS는 수만 가지 잡다한 네트워크 해킹(DDoS, 웜)은 막아내지만, HTTP라는 깊은 우물 속까지 꼼꼼하게 뒤져볼 여력이 없습니다.
- WAF의 개념: 방화벽과 IPS가 놓친 틈을 파고드는 SQL 인젝션(Injection), 크로스 사이트 스크립팅(XSS), 웹 셸 업로드 등 오직 "웹 응용 계층(L7, HTTP/HTTPS)"의 취약점만을 집요하게 파고드는 공격을 탐지하고 차단하는 데 올인한 웹 특화 전용 방화벽입니다.
Ⅱ. WAF의 핵심 타겟: OWASP Top 10 🌟
WAF가 막아내야 할 주적(Target)은 전 세계 웹 해킹 방어 표준 기구인 OWASP에서 매년 발표하는 '웹 취약점 Top 10' 명단입니다.
- SQL 인젝션 (SQL Injection): 네이버 아이디 입력창에
admin' OR '1'='1이라는 해킹 코드를 적어서 서버의 DB를 털어버리는 공격. WAF는 HTTP Payload(입력값) 안에 이런 특수문자가 들어오면 기가 막히게 필터링하여 잘라냅니다. - XSS (크로스 사이트 스크립팅): 게시판 글에 악성 자바스크립트를 몰래 적어두어, 그걸 클릭한 다른 사용자의 쿠키(로그인 세션)를 훔쳐 가는 공격.
Ⅲ. 동작 방식의 차별점 (HTTPS 완벽 복호화)
- 기존 IPS의 가장 큰 약점은, 요즘 웹의 90% 이상이 **HTTPS(TLS 암호화)**로 암호화되어 있어 패킷 내용물을 깔 수가 없는 까막눈이 되었다는 점입니다.
- WAF의 무기: WAF 장비 안에 아예 웹서버의 'SSL 인증서와 개인키'를 이식해 버립니다. 즉, 암호화된 트래픽이 들어오면 WAF가 서버 대신 암호를 싹 다 풀어서(복호화) 알맹이의 SQL 코드를 다 엑스레이 검사한 뒤, 이상이 없으면 다시 예쁘게 암호화해서 웹서버로 넘겨줍니다. (프록시 아키텍처 기반)
Ⅳ. 보안 장비의 3단 방어선 (Defense in Depth)
그래서 오늘날 큰 기업의 서버실 앞에는 장비가 3중으로 겹겹이 세워져 있습니다.
- 1차선 (방화벽, FW): "중국 IP, 북한 IP 다 막고, 웹(80, 443) 빼고 쓸데없는 포트 싹 다 닫아!" (거름망)
- 2차선 (IPS): "허용된 웹 포트로 들어오긴 했는데, 패킷 모양이 이상한 디도스나 악성 웜 찌꺼기면 여기서 다 불태워 버려!" (정수기 필터)
- 3차선 (WAF): "드디어 순수한 웹(HTTP) 요청만 남았군. 이제 돋보기를 끼고 사용자가 게시판 검색창에 나쁜 코드(SQL)를 썼나 안 썼나 단어 하나하나 글자 검사를 시작하지!" (마이크로 필터)
📢 섹션 요약 비유: 클럽 입장을 방어선에 비유해 봅시다. 방화벽(L4)은 "슬리퍼 신은 놈, 20살 미만(금지 IP, 포트)은 무조건 입구 컷"시키는 덩치 큰 기도입니다. 하지만 턱시도를 입고(정상 포트 80번) 들어오는 손님 몸속에 숨겨진 독약은 방화벽 기도가 찾지 못합니다. WAF(L7)는 정문을 통과해 들어온 손님을 밀실로 데려가서 엑스레이를 찍고 위장 내시경(HTTP 페이로드 딥 검사)까지 해서 알약 하나 크기의 독약(SQL 인젝션 코드)마저 완벽하게 집어내는 초정밀 의료 검색대입니다.