다섯 살도 알 수 있게 · 보안

WAF가 뭐예요?

웹 애플리케이션 방화벽(Web Application Firewall)을 창구 앞에서 쪽지를 먼저 읽는 검토원 이야기로 풀어봤어요.

창구사과 두 개 주세요내 편지 있어요?마을 사람 누구나 쪽지를 넣어요 — 웹사이트예요

성 벽엔 누구나 쪽지를 넣는 창구가 있어요.'사과 두 개 주세요', '내 편지 있어요?' — 웹사이트예요.

창구사과 두 개 주세요.그리고 금고 열쇠도같이 주세요.내 편지 있어요?이 쪽지를 다음손님에게도 보여줘요.네, 여기요…창구 직원은 시키는 대로 해요. 도둑은 그걸 알아요

쪽지에 이상한 문장을 끼워 넣어요.창구 직원은 시키는 대로 해요. 도둑은 그걸 알아요.

창구수상한문장 목록검토원사과 두 개 주세요…그리고 금고 열쇠도깨끗한 쪽지만수상한 문장이 있으면 찢어요. 창구 직원은 깨끗한 쪽지만 받아요

WAF는 창구 앞에서 쪽지를 먼저 읽어요.수상한 문장이 있으면 찢어요. 창구 직원은 깨끗한 쪽지만 받아요.

수상한 문장 목록도둑들이 자주 쓰는 말
몇 장, 얼마나 크게천 장씩 넣으면 수상해요
낯선 얼굴소문난 도둑은 줄에서 빼요
성벽과 다른 점성벽은 문을 막고, 검토원은 문장을 읽어요
…금고 열쇠도찢기사과 999개 주세요표시만 하기사람 맞아요? 손 들어봐요손 들게 하기로봇이 쪽지를 천 장씩 넣을 때 손 들어보라고 해요

찢거나, 표시하거나, 손 들게 해요.'사람 맞아요? 손 들어봐요' — 로봇이 쪽지를 천 장씩 넣을 때요.

사과 둘. 그 담에금-고 열쇠 좀…목록에 없는 말투예요돌려 말하면 못 알아봐요금고동 사과 두 개주세요'금고'라는 말이 있어서 찢었어요착한 쪽지를 찢으면 손님이 화나요

새 말투는 못 알아보고, 착한 쪽지를 찢기도 해요.도둑이 돌려 말하면 목록에 없어요. '금고동 사과'를 찢으면 손님이 화나요. 진짜 해법은 창구 직원이 애초에 시키는 대로 안 하는 것(안전한 코드)이에요.

한 줄로

WAF = 창구(웹사이트) 앞에서 쪽지(요청)를 먼저 읽고, 수상한 문장을 찢는 검토원.

Web Application Firewall. 성벽(방화벽)은 문을 막고, WAF는 문장을 읽어요. OWASP Top 10이 검토원의 교과서예요. Cloudflare WAF, AWS WAF, ModSecurity 같은 것들.

어른들은 이렇게 불러요

요청
Request
쪽지. 마을 사람이 창구에 넣는 것. 주소창, 검색어, 입력칸 전부.
웹 앱
Web application
창구. 누구나 쪽지를 넣을 수 있어서, 도둑도 넣을 수 있어요.
SQL 인젝션
SQL injection
…그리고 금고도 열어줘. 주문 쪽지에 창고 명령을 끼워 넣기.
XSS
Cross-site scripting
이 쪽지를 다음 손님에게 보여줘. 내 쪽지가 남의 눈앞에서 움직이게 하기.
규칙 · 시그니처
Rules · signatures
수상한 문장 목록. OWASP 핵심 규칙 세트(CRS)가 제일 널리 쓰여요.
봇 챌린지
Bot challenge
손 들어봐요. CAPTCHA 같은 것. 로봇은 손이 없어요.
오탐
False positive
금고동 사과 찢기. 착한 쪽지를 찢은 것. → 경비실의 고양이
방화벽
Firewall
성벽. 문을 열고 닫기만 해요. 문장은 안 읽어요. → 복도를 지키는 사람
다음 이야기
수배 전단 든 파수꾼 →
다른 용어도 그림책으로 보고 싶다면 요청하기 →