구글 서치 콘솔을 확인했더니, 색인이 생성되지 않은 페이지가 62만 개가 있다는 리포트를 보신 적이 있으신가요? 출근해서 메일 박스를 열어보니, 4000 개가 넘는 새로운 메일이 도착했다는 메시지를 보신 적이 있으신가요? 워드프레스 관리툴에 로그인하니, 2500 여개 이상의 댓글이 승인을 기다린다는 메시지를 보신 적이 있으신가요?
위 내용은 트윈워드가 지난 2년간 직접 경험한 스팸 사례입니다. 한 번의 스팸 공격으로 끝나지 않았고, 여러 차례 비슷한 시도가 반복되었습니다. 이런 상황을 겪을 수도 있을 분들을 위해 검색 스팸, 메일 스팸, 댓글 스팸에 대하여 각각 예방과 대처 방법을 정리하였습니다.
검색 스팸이란?
웹사이트가 제공하는 사이트 검색 기능을 이용하여 의도하지 않은 웹 페이지를 색인시키는 블랙햇 기법을 검색 스팸 또는 색인 스팸 (search spam / internal site search spam / search reflected webspam) 이라고 합니다.
검색 스팸 공격을 당하면 아래와 같이 검색 결과 화면에서 여러분의 웹 페이지가 검색 결과로 보이게 됩니다.
위 화면을 보면, 마치 공공기관 웹사이트에서 대포폰 구입 홍보를 하는 것처럼 보이는데요, 우리가 의도하지 않았던 사이트 검색 결과 페이지가 구글 검색엔진에 색인되어 각종 불법 영업 행위를 도와주는 역할을 하고 있습니다.
어떻게 그리고 왜 검색 스팸을 할까?
검색 스팸은 경쟁사나 타깃 회사의 평판을 떨어뜨리려는 목적의 네거티브 SEO 로 이용될 수도 있으나, 주된 목적은 광고라고 보입니다. 특히 불법 영업을 하려는 업체 입장에서는 웹사이트를 만들어도 검색 결과에 노출되지 않고, 키워드 검색 광고를 구매할 수도 없으니 전혀 바람직하지 않은 이런 블랙햇 SEO에 의지하게 됩니다.
검색 스팸 블랙햇 기법의 원리는 우리가 만든 웹사이트를 방문한 잠재 고객이 편리하게 콘텐츠를 찾아볼 수 있도록 제공하고 있는 사이트 검색 기능이 가지고 있는 약점을 이용합니다. 즉 사이트 서치 기능이 있는 웹사이트는 주어진 검색어에 대해 새로운 페이지를 생성하여 보여주는데, 이때. 검색어를 이용하여 불법 영업 키워드를 삽입하는 방식입니다.
웹사이트를 운영하는 입장에서는 사이트 검색 기능을 제거하면 고객 불편을 초래할 수 있고, 모든 사이트 검색 결과 페이지에 noindex 태그를 달아서 색인이 되지 않도록 하는 방안은 SEO 에 좋지 않으므로 검색 스팸에 해당하는 페이지만 생성이 되지 않도록 하는 방안이 필요합니다.
검색 스팸의 영향
구글은 검색 스팸이 랭킹에 큰 영향을 주지 않는다고 밝힌 바 있습니다. 그러나 웹사이트 평판 남용에 대한 구글 알고리즘을 업데이트한 적도 있으며, 구글이 문제가 없다거나 영향이 적다고 얘기한 내용 중에는 사실이 아니었던 적도 있습니다. 🙂
따라서 큰 영향은 없다고 하더라고, 검색 스팸은 웹사이트 SEO 에 좋지 않다고 보수적인 입장을 취하는 편이 좋겠습니다. 게다가 검색 스팸은 검색 순위 외에도 많은 문제를 일으킵니다.
먼저 대표적으로는 나쁜 평판입니다. 위에서 언급한 바와 같이 마치 공공기관 웹사이트에서 대포폰 구입 홍보를 하는 것처럼 보이기도 하고, 아래와 같이 정부가 채권 추심 서비스를 제공하는 것처럼 보이기도 합니다.
검색 스팸은 수많은 웹페이지 색인을 동반하기 때문에 검색 엔진의 수집 로봇이 매우 많이 방문을 하게 되고, 이는 곧 서버 유지 비용을 증가시키며, 동시에 웹사이트 속도가 저하되고, 결과적으로 느린 웹사이트 속도로 인하여 SEO 품질 저하 및 크롤 버짓의 낭비를 가져옵니다.
참고로 크롤 버짓 (crawl budget)은 검색엔진 수집봇이 웹사이트에서 평균적으로 수집하는 페이지의 수를 의미합니다. 검색 스팸으로 공격을 받는 웹사이트가 새로운 블로그 포스트를 발행하면 검색엔진 수집봇이 다른 페이지 색인을 하느라고 바쁘기 때문에 해당 페이지가 색인되고 검색 결과에 노출되기까지는 훨씬 많은 시간이 걸릴 수 있습니다.
혹시 내 사이트도 공격받았을까요?
우리의 사이트가 검색 스팸 주소 공격을 받고 있는지 여부를 확인하는 방법은 여러가지 있습니다. 먼저 클라우드플레어에서는 웹 트래픽 그래프를 참고하여 실시간으로 검색 스팸 공격 여부를 판단할 수 있습니다.
위 클라우드플레어의 웹 트래픽 화면을 보면 하루에 최고 1,170,000,000 번 이상의 트래픽 요청이 발생했음을 알 수 있습니다.
구글 서치 콘솔에서도 검색 스팸을 확인할 수 있습니다. 메뉴 중에서 페이지 색인 생성 항목을 가면 아래와 같은 화면을 보실 수 있습니다.
색인된 페이지는 822개인데, 아직 색인이 필요한 페이지가 621,393 개라는 리포트입니다.
검색 스팸 예방 및 대처 방법
이미 이 생성된 페이지는 구글 서치 콘솔의 페이지 색인 생성 메뉴에서 확인할 수 있습니다.
검색 스팸 주소의 패턴을 확인하고, 이를 바탕으로 구글에 색인 삭제 요청을 합니다. 색인 삭제 요청은 임시 방편이며, 검색 수집봇이 다시 색인에 넣을 수 있습니다.
향후에 발생할 수도 있는 검색 스팸을 예방하려면, 사이트 검색 패턴을 수집하는 과정을 까다롭게 할 필요가 있습니다. 기본 방향은 파이어월을 이용하여 사이트 검색과 같은 특정 패턴으로 접근을 할 경우 별도의 보안 조치를 하도록 설정합니다.
아래는 클라우드플래어의 웹 어플리케이션 파이어월 (WAF, Web Application Firewall) 을 이용한 설정 예시입니다.
검색 스팸에 대응하기 위한 다른 방법들
이밖에 특정 문자열을 찾아서 이를 활용하는 워드프레스 플러그인을 이용하거나 robots.txt 를 이용하는 방법, indexNow 를 사용하는 방법 등이 있으며, 각각 특정 문자열 패턴을 피하는 경우, robots.txt 를 무시하는 경우, 구글이 indexNow 를 지원하지 않는 문제 등의 단점과 함께 편리하고 간단하다는 장점도 있으므로 검토 후 적용해 보시기 바랍니다.
메일 스팸 방지 방법
메일 스팸은 문의하기 메뉴와 같이 잠재 고객이 편리하게 이메일 문의할 수 있도록 제공하고 있는 웹페이지를 이용한 공격입니다. SEO 와 직접 관련은 없지만, 웹사이트 속도가 늦어질 수 있으며, 메일 발송 비용도 증가시키고, 실제 업무 메일을 확인하기가 어려워지기 때문에 매우 성가신 공격 중 하나입니다.
검색 스팸과 마찬가지로 파이어월에서 규칙 설정으로 예방합니다. 아래는 클라우드플레어를 이용한 예시입니다. 웹주소가 /contact-us/ 를 포함하고 알려진 검색엔진 수집봇이 아닐 경우 사람인지 여부를 확인하라는 규칙 설정입니다.
댓글 스팸 방지 방법
웹 페이지의 댓글 기능은 방문자와 소통하는 좋은 창구이면서, 콘텐츠 가치를 높이는 역할을 합니다. 좋은 내용의 댓글이 포함된 콘텐츠는 그렇지 않은 콘텐츠에 비해 높은 검색 순위를 가집니다.
댓글 스팸은 누구나 게시할 수 있다는 점을 악용하여 의도하지 않은 백링크 등을 삽입하기 위해 사용되기 때문에, 아래 화면에서 보여지 듯이 댓글 스팸의 내용에는 모두 링크가 있는 것을 확인할 수 있습니다.
검색 스팸과 메일 스팸에서 활용했던 파이어월 규칙과 달리 대부분의 댓글은 본문을 보기 위해 스크롤을 내린 후에 작성한다는 점에 착안하여, 스크롤이 발생하면 특정 코드를 삽입하는 자바스크립트를 이용합니다. 만약 본문을 보지 않고 댓글을 직접 달거나, 악성 프로그램에 의해 접근하는 경우는 스크롤이 발생하지 않았기 때문에 특정 코드가 발생하지 않습니다. 이러한 방식은 사람이 댓글을 작성하는 경우에는 로봇 여부를 확인하지 않을 수 있습니다. 따라서 댓글 입력은 보다 용이하게 만들면서도 댓글 스팸은 효과적으로 차단할 수 있습니다.
아래는 스크롤이 발생하면 해당 페이지에 특정 코드를 삽입하는 자바 스크립트 예시입니다. (YOUR-SPECIAL-KEY-HERE 은 임의로 설정하면 되고, YOUR-WEB-SITE-URL 은 여러분의 워드프레스 웹사이트 주소를 입력합니다.)
다음으로는 이를 활용한 파이어월 규칙을 생성합니다. 아래는 워드프레스에서 댓글을 작상하려고 접근할 경우 YOUR-SPECIAL-KEY-HERE 와 같은 특정 코드가 쿼리 스트링에 없으면 접근을 허락하지 않는 클라우드플레어 WAF 규칙입니다.
이렇게 설정을 하고 나면, 실제 얼마나 많은 스팸이 차단되었는지를 아래와 같이 통계로 확인할 수 있습니다.
슬기로운 스팸 생활을 위하여
스팸은 한마디로 백해무익하며 다양한 피해를 줍니다. Yoast SEO 의 블로그 글 중 Is your site the victim of internal site search spam? 라는 글에서 다음과 같은 문구로 검색 스팸에 대해 평하고 있습니다.
That also means that the spammer, Cloudflare, Bing, Yandex, and your site are wasting electricity creating, promoting, and crawling spam URLs. Double ouch.
스패머, 클라우드플레어, 빙, 얀덱스, 그리고 여러분의 웹사이트가 스팸 주소를 생성, 홍보, 수집하는데 전기를 낭비하고 있습니다.
많은 웹사이트가 각종 스팸에 대한 예방책을 잘 적용하여 더 이상 검색, 메일, 댓글 스팸 피해를 보지 않기를 바랍니다.
추가로, 블랙햇 주제 관련 다른 글도 소개합니다.