열심히 키운 쇼핑몰과 블로그, 정체불명의 트래픽 때문에 망가질 수 있습니다. 서버 비용을 갉아먹고 광고 수익을 차감시키는 악성 봇이 웹사이트 운영자들의 최대 골칫거리로 떠올랐습니다. 2025년 임퍼바 보고서에 따르면 전체 웹 트래픽의 37%가 악의적인 봇 트래픽이며, 이로 인한 연간 피해액은 수조 원에 달합니다.
블로그 운영자는 애드센스 무효 클릭으로 계정 정지를 당하고, 쇼핑몰은 허위 주문과 재고 선점 공격에 시달립니다. 서버는 가짜 트래픽으로 과부하가 걸려 정작 진짜 고객이 접속하지 못하는 상황이 발생합니다. 하지만 구글 reCAPTCHA 설정과 WAF 같은 봇 관리 솔루션을 도입하면 99% 이상의 악성 봇을 차단할 수 있습니다. 지금부터 웹사이트를 보호하는 모든 방법을 단계별로 알려드립니다.
기업과 운영자를 위협하는 스크래핑 봇과 DDoS 공격 트렌드
스크래핑 봇은 웹사이트의 콘텐츠와 데이터를 자동으로 수집하는 악성 프로그램입니다. 경쟁사가 가격 정보를 긁어가거나, 블로그 콘텐츠를 무단 복제하는 데 사용됩니다. 쇼핑몰의 경우 제품 설명, 가격, 재고 정보가 실시간으로 복사되어 경쟁사 사이트에 그대로 올라갑니다. 이미지까지 무단으로 가져가는 경우도 많아 저작권 침해 문제도 발생합니다.
가격 비교 사이트나 리셀러들이 스크래핑 봇의 주요 사용자입니다. 하루에 수천 번씩 상품 페이지를 크롤링해 가격 변동을 추적하고, 이를 기반으로 가격 덤핑 전략을 세웁니다. 일부는 재고 정보를 실시간으로 모니터링하다가 인기 상품이 입고되는 순간 자동으로 주문을 넣어 품절시킵니다.
DDoS 공격은 대량의 트래픽을 동시에 발생시켜 서버를 마비시키는 공격입니다. 수천 대의 좀비 PC가 동시에 웹사이트에 접속 요청을 보내 서버가 과부하로 다운됩니다. 2024년 국내 주요 금융사와 공공기관이 DDoS 공격을 받아 몇 시간씩 서비스가 중단된 사례가 있습니다. 소규모 쇼핑몰이나 블로그도 타겟이 될 수 있으며, 공격 한 번에 수백만 원의 서버 비용이 청구될 수 있습니다.
API 봇 공격도 증가하는 추세입니다. 웹사이트의 API 엔드포인트를 공격해 데이터를 대량으로 추출하거나, 인증 우회를 시도합니다. 특히 모바일 앱의 API는 보안이 취약한 경우가 많아 해커들의 주요 타겟입니다. 한 번의 API 호출로 수천 개의 데이터를 가져갈 수 있어 스크래핑 효율이 매우 높습니다.
| 악성 봇 유형 | 공격 목적 | 주요 피해 | 탐지 난이도 |
|---|---|---|---|
| 스크래핑 봇 | 콘텐츠 데이터 수집 | 저작권 침해 경쟁 정보 유출 | 보통 |
| DDoS 봇 | 서버 과부하 유발 | 서비스 중단 서버 비용 폭증 | 낮음 |
| 재고 선점 봇 | 한정판 제품 매점 | 정상 고객 구매 기회 박탈 | 높음 |
| API 봇 | 대량 데이터 추출 | 데이터베이스 유출 | 매우 높음 |
| 크리덴셜 스터핑 봇 | 계정 탈취 시도 | 회원 정보 유출 | 높음 |
가짜 트래픽이 쇼핑몰과 블로그에 미치는 치명적 영향
가짜 트래픽은 구글 애드센스 계정에 치명적입니다. 봇이 광고를 클릭하면 무효 트래픽으로 감지되어 수익이 차감되거나, 심한 경우 계정이 영구 정지됩니다. 구글은 매우 엄격한 무효 트래픽 정책을 운영하며, 한 번 정지된 계정은 복구가 거의 불가능합니다. 실제로 많은 블로거들이 악성 봇 공격으로 애드센스 수익을 모두 잃고 계정까지 정지당하는 피해를 입었습니다.
쇼핑몰은 허위 주문 공격에 시달립니다. 봇이 자동으로 주문을 넣어 재고를 예약해버리면 실제 고객은 품절 메시지를 보게 됩니다. 더 악질적인 경우는 주문 후 결제를 하지 않거나 수령 거부를 반복하는 것입니다. 택배비와 재고 관리 비용이 낭비되며, 몇 번 반복되면 쇼핑몰 운영이 어려워집니다.
서버 비용 폭탄도 심각한 문제입니다. 클라우드 호스팅을 사용하는 경우 트래픽에 따라 요금이 청구되는데, 봇 트래픽이 급증하면 서버 비용이 몇 배로 뛰어오릅니다. 평소 월 10만 원이던 서버비가 갑자기 100만 원으로 청구되는 사례도 있습니다. AWS나 Azure 같은 클라우드 서비스는 트래픽 제한이 없으므로 봇 공격을 받으면 비용이 무한정 증가할 수 있습니다.
검색엔진 순위도 영향을 받습니다. 봇 트래픽으로 인해 이탈률이 비정상적으로 높아지면 구글이 사용자 경험이 나쁜 사이트로 판단합니다. 검색 순위가 하락하고 자연 유입 트래픽이 줄어듭니다. 또한 봇이 서버에 과부하를 일으켜 페이지 로딩 속도가 느려지면 Core Web Vitals 점수가 나빠져 SEO에 악영향을 줍니다.
서버 비용 증가와 광고 계정 정지 위험 상세 분석
서버 비용 증가는 트래픽 기반 과금 방식을 사용하는 클라우드 호스팅에서 특히 심각합니다. AWS의 경우 데이터 전송량에 따라 요금이 청구되며, 1GB당 약 100원입니다. 봇이 하루 1TB의 트래픽을 발생시키면 하루 서버비만 10만 원이 넘습니다. 한 달이면 300만 원이 청구되며, 이는 소규모 쇼핑몰이나 블로그가 감당하기 어려운 금액입니다.
CPU와 메모리 사용량도 증가합니다. 봇이 동시에 수백 개의 페이지를 요청하면 서버 리소스가 급격히 소모됩니다. 공유 호스팅을 사용하는 경우 호스팅 업체에서 계정을 일시 정지시키거나 상위 요금제로 강제 전환을 요구합니다. 전용 서버를 사용하더라도 CPU 사용률이 100%로 치솟아 서버가 다운될 수 있습니다.
애드센스 무효 트래픽 정책은 매우 엄격합니다. 구글은 봇이 생성한 광고 클릭을 자동으로 감지해 수익에서 차감합니다. 무효 클릭 비율이 10%를 넘으면 경고 메일이 발송되며, 20%를 넘으면 계정 정지 위험이 높아집니다. 한 번 정지되면 항소가 거의 받아들여지지 않으므로, 수년간 쌓아온 수익을 한순간에 잃을 수 있습니다.
쿠팡 파트너스나 네이버 애드포스트 같은 다른 광고 플랫폼도 무효 클릭에 민감합니다. 비정상적인 클릭 패턴이 감지되면 수익 지급이 보류되거나 파트너십이 해지됩니다. 광고주는 봇 클릭으로 인한 광고비 낭비를 싫어하므로, 플랫폼들이 무효 트래픽을 강력히 단속합니다.
| 피해 유형 | 발생 원인 | 월 예상 피해액 | 예방 방법 |
|---|---|---|---|
| 서버 비용 폭증 | 대량 봇 트래픽 | 수백만 원 | Cloudflare CDN |
| 애드센스 계정 정지 | 무효 클릭 누적 | 수익 전액 손실 | reCAPTCHA 설정 |
| 허위 주문 증가 | 주문 봇 공격 | 택배비 수십만 원 | 전화 인증 |
| SEO 순위 하락 | 이탈률 증가 | 자연 유입 50% 감소 | 봇 차단 설정 |
악성 봇 차단을 위한 구글 reCAPTCHA 설정 완벽 가이드
구글 reCAPTCHA는 봇과 사람을 구별하는 가장 효과적인 무료 도구입니다. v2와 v3 두 가지 버전이 있으며, v2는 체크박스를 클릭하거나 이미지 퍼즐을 맞추는 방식이고, v3는 백그라운드에서 사용자 행동을 분석해 점수를 매기는 방식입니다. 대부분의 경우 v3를 추천하는데, 사용자 경험을 해치지 않으면서도 봇을 효과적으로 차단하기 때문입니다.
reCAPTCHA 설정은 구글 reCAPTCHA 관리자 콘솔에서 시작합니다. 구글 계정으로 로그인한 후 새 사이트 등록 버튼을 클릭합니다. 사이트 레이블에 웹사이트 이름을 입력하고, reCAPTCHA 유형은 v3를 선택합니다. 도메인 입력란에 본인의 웹사이트 주소를 입력합니다. 서브도메인을 포함한 모든 페이지에 적용하려면 도메인만 입력하고, 특정 페이지만 보호하려면 전체 URL을 입력합니다.
등록을 완료하면 사이트 키와 비밀 키가 발급됩니다. 사이트 키는 웹페이지의 HTML 코드에 삽입하는 공개 키이고, 비밀 키는 서버 측에서 검증에 사용하는 비공개 키입니다. 사이트 키를 복사한 후 웹사이트의 HTML head 태그 안에 reCAPTCHA 스크립트를 추가합니다. 워드프레스를 사용한다면 테마 설정이나 플러그인에서 간단히 입력할 수 있습니다.
회원가입 페이지나 로그인 페이지, 문의하기 폼에 reCAPTCHA를 적용하는 것이 가장 효과적입니다. 폼 제출 버튼 앞에 reCAPTCHA div 태그를 추가하면 자동으로 검증 위젯이 표시됩니다. v3의 경우 사용자에게 보이지 않으므로 디자인을 해치지 않습니다. 서버 측에서는 폼 제출 시 구글 API로 토큰을 전송해 점수를 확인하고, 0.5점 이하면 봇으로 판단해 차단합니다.
| reCAPTCHA 버전 | 사용자 경험 | 봇 차단율 | 적용 난이도 | 추천 용도 |
|---|---|---|---|---|
| reCAPTCHA v2 체크박스 | 클릭 필요 | 90% | 쉬움 | 간단한 폼 |
| reCAPTCHA v2 이미지 | 이미지 선택 필요 | 95% | 쉬움 | 고보안 필요 |
| reCAPTCHA v3 | 투명 작동 | 98% | 보통 | 모든 페이지 |
| reCAPTCHA Enterprise | 투명 작동 | 99% | 어려움 | 대기업 |
봇 관리 솔루션 도입 시 고려사항 WAF와 CDN 비교
WAF는 Web Application Firewall의 약자로, 웹 애플리케이션을 보호하는 방화벽입니다. SQL 인젝션, XSS 같은 해킹 공격뿐만 아니라 악성 봇 트래픽도 차단합니다. 클라우드 기반 WAF는 설치가 간편하고 유지보수가 필요 없어 소규모 사업자도 쉽게 도입할 수 있습니다. 대표적인 서비스로 Cloudflare, AWS WAF, Azure WAF가 있습니다.
Cloudflare는 무료 플랜도 제공하는 가장 대중적인 CDN 겸 WAF 서비스입니다. DNS를 Cloudflare로 변경하기만 하면 자동으로 모든 트래픽이 Cloudflare 서버를 거치게 되어 악성 봇이 차단됩니다. 무료 플랜에서도 기본적인 DDoS 방어와 봇 필터링 기능을 사용할 수 있으며, 월 20달러 Pro 플랜으로 업그레이드하면 더 강력한 봇 관리 기능을 이용할 수 있습니다.
AWS WAF는 AWS 클라우드를 사용하는 경우 최적의 선택입니다. Application Load Balancer나 CloudFront에 직접 연결할 수 있어 통합이 쉽습니다. 사용한 만큼만 요금을 내는 종량제 방식이며, 웹 ACL 규칙으로 특정 국가나 IP 대역을 차단할 수 있습니다. AWS Managed Rules를 사용하면 사전 구성된 봇 차단 규칙을 즉시 적용할 수 있습니다.
온프레미스 WAF도 선택지입니다. 자체 서버실을 운영하는 기업이라면 하드웨어 WAF 장비를 구매해 설치할 수 있습니다. 펜타시큐리티의 WAPPLES나 파이오링크의 WebFront 같은 국산 제품이 대표적입니다. 초기 투자 비용은 크지만 장기적으로는 클라우드 WAF보다 저렴할 수 있습니다.
봇 관리 솔루션 선택 시 고려할 점은 가격, 성능, 관리 편의성입니다. 월 방문자 수가 10만 명 이하인 소규모 사이트라면 무료 Cloudflare만으로도 충분합니다. 대규모 전자상거래 사이트는 전용 봇 관리 솔루션이 필요하며, Imperva나 Akamai 같은 엔터프라이즈 솔루션을 고려해야 합니다.
| 솔루션 | 월 비용 | 봇 차단율 | 관리 난이도 | 추천 대상 |
|---|---|---|---|---|
| Cloudflare 무료 | 무료 | 85% | 쉬움 | 개인 블로그 소규모 |
| Cloudflare Pro | $20 | 95% | 쉬움 | 중소형 쇼핑몰 |
| AWS WAF | 종량제 월 50만원~ | 97% | 보통 | AWS 사용 기업 |
| 온프레미스 WAF | 수천만원 일회 | 98% | 어려움 | 대기업 |
| Imperva | 수백만원/월 | 99% | 어려움 | 금융 공공기관 |
htaccess 파일로 특정 봇 User Agent 차단하기
아파치 웹서버를 사용하는 경우 .htaccess 파일을 수정해 특정 봇을 차단할 수 있습니다. .htaccess 파일은 웹사이트 루트 디렉토리에 있으며, FTP로 접속해 편집할 수 있습니다. 백업을 만든 후 편집하는 것이 안전하며, 잘못 수정하면 웹사이트가 접속되지 않을 수 있으므로 신중해야 합니다.
User-Agent 기반 차단 방법은 가장 간단합니다. .htaccess 파일 하단에 SetEnvIfNoCase User-Agent 코드를 추가하면 됩니다. 예를 들어 Bytespider라는 봇을 차단하려면 SetEnvIfNoCase User-Agent "Bytespider" block_bot 이라고 입력합니다. 여러 봇을 차단하려면 같은 형식으로 여러 줄을 추가하면 됩니다.
차단 리스트를 완성한 후 실제 차단 규칙을 추가합니다. Order Allow,Deny와 Allow from all, Deny from env=block_bot 코드를 추가하면 지정한 봇의 접속이 모두 차단됩니다. 저장 후 웹사이트에 접속해 정상 작동하는지 확인합니다. 실수로 구글봇이나 네이버봇 같은 검색엔진 크롤러를 차단하면 검색 노출이 사라지므로 주의해야 합니다.
IP 주소 기반 차단도 가능합니다. Deny from 47.128.34.0/24 형식으로 입력하면 해당 IP 대역 전체를 차단할 수 있습니다. 특정 국가의 IP를 모두 차단하려면 해당 국가의 IP 대역 리스트를 구해 일괄 입력하면 됩니다. 다만 IP 리스트가 너무 길면 서버 성능에 영향을 줄 수 있으므로 적절히 조절해야 합니다.
robots.txt로 좋은 봇과 나쁜 봇 구분하기
robots.txt 파일은 검색엔진 크롤러에게 어떤 페이지를 수집해도 되는지 알려주는 파일입니다. 웹사이트 루트 디렉토리에 위치하며, 모든 크롤러가 이 파일을 먼저 확인합니다. 규칙을 잘 따르는 좋은 봇은 robots.txt 지시를 존중하지만, 악성 봇은 무시하고 크롤링을 강행합니다.
구글봇이나 네이버봇 같은 검색엔진 크롤러는 반드시 허용해야 합니다. User-agent: Googlebot과 Allow: / 를 추가하면 구글봇이 모든 페이지를 수집할 수 있습니다. 네이버, 다음, 빙 등 주요 검색엔진도 같은 방식으로 허용합니다. 이들을 차단하면 검색 결과에 노출되지 않아 방문자가 급감합니다.
악성 봇은 명시적으로 차단합니다. User-agent: Bytespider, Disallow: / 형식으로 입력하면 해당 봇이 모든 페이지 접근을 차단당합니다. 하지만 악성 봇은 대부분 robots.txt를 무시하므로 이 방법만으로는 완전히 막을 수 없습니다. robots.txt는 착한 봇을 위한 가이드라인일 뿐, 강제 차단 수단은 아닙니다.
민감한 페이지는 robots.txt로 숨길 수 있습니다. 관리자 페이지나 회원 전용 페이지는 Disallow: /admin/ 형식으로 차단하면 검색엔진에 노출되지 않습니다. 다만 robots.txt 자체는 누구나 볼 수 있으므로, 정말 중요한 페이지는 robots.txt에 적지 말고 인증 시스템으로 보호해야 합니다.
구글 애널리틱스로 봇 트래픽 필터링하기
구글 애널리틱스에는 기본 봇 필터링 기능이 있습니다. 관리자 페이지에서 속성 설정으로 이동한 후 알려진 봇 및 스파이더의 조회수 제외 옵션을 활성화하면 됩니다. 이 옵션을 켜면 IAB의 봇 리스트에 포함된 알려진 봇의 트래픽이 통계에서 자동으로 제외됩니다.
하지만 기본 필터만으로는 부족합니다. 새로 등장한 봇이나 User-Agent를 위장한 봇은 필터링되지 않습니다. 추가 필터를 직접 만들어야 하며, 관리자 페이지의 보기 설정에서 필터 추가 버튼을 클릭합니다. 필터 유형은 제외를 선택하고, 필터 필드는 Campaign Source로 설정합니다.
의심스러운 리퍼러를 차단하는 필터도 만들 수 있습니다. 스팸 봇은 이상한 도메인을 리퍼러로 남기는 경우가 많습니다. 필터 패턴에 spam|casino|pharma 같은 키워드를 정규식으로 입력하면 해당 키워드가 포함된 리퍼러가 모두 필터링됩니다. 여러 키워드는 파이프 기호로 구분합니다.
호스트 이름 필터도 중요합니다. 정상적인 트래픽은 본인의 도메인을 호스트 이름으로 가지지만, 봇 트래픽은 이상한 호스트 이름을 남깁니다. 필터 유형을 포함으로 선택하고 필터 필드를 호스트 이름으로 설정한 후, 본인의 도메인만 입력하면 그 외의 모든 트래픽이 제외됩니다.
.jpg)
0 댓글