10. 봇과 어뷰즈는 기본값
사고 시나리오
섹션 제목: “사고 시나리오”출시하고 며칠 뒤 로그를 보니 트래픽 대부분이 스캐너다. 로그인 엔드포인트에는 비밀번호 대입 시도가, 문의 폼에는 스팸이, API에는 누군가의 무한 루프 스크립트가 붙어 있다. 막을 수단을 하나도 안 만들어놔서 서버 자원과 과금이 남의 봇을 위해 쓰이고 있다.
공개 인터넷에 열린 것은 사람이 아니라 봇이 먼저 방문한다. 비용이 발생하거나 부작용이 있는 모든 엔드포인트에는 속도 제한이 기본값이다.
실무 처방
섹션 제목: “실무 처방”- 인증 시도, 발송(메일·문자), 가입, 검색처럼 비싸거나 악용 가능한 엔드포인트부터 레이트 리밋을 건다. IP 기준이면 충분히 시작할 수 있다.
- CDN/플랫폼의 방화벽(WAF)과 관리형 봇 차단 규칙이 있으면 켠다 — 직접 만들기 전에 켜는 것부터.
- 공개 폼에는 스팸 방어를 넣는다. 사람 검증(터널스타일 챌린지)이나 허니팟 필드 같은 가벼운 것부터.
- 크롤링당하고 싶지 않은 콘텐츠가 있다면 robots.txt는 신사협정일 뿐이라는 것을 안다 — 진짜 막으려면 인증 뒤로 넣거나 WAF 규칙으로.
- 레이트 리밋 응답(429)이 정상 사용자에게 오작동하지 않는지 한 번 확인한다 — 한 사무실(같은 IP)의 여러 사용자 같은 케이스.
체크리스트
섹션 제목: “체크리스트”- 인증·발송·가입 엔드포인트에 레이트 리밋이 있다
- 플랫폼 WAF/봇 차단 규칙을 검토하고 켰다
- 공개 폼에 스팸 방어가 있다
- 정상 사용자가 429에 걸리는 경계 케이스를 확인했다