
얼마 전 작은 VPS 한 대를 운영하는 분이 구글 검색만 하면 사람인지 확인하라는 화면이 뜬다고 연락했다. 사이트 방문자는 하루 300명 남짓이었다. 트래픽이 많아서 생긴 일로 생각하기 쉽지만, 확인해야 할 것은 방문자 수가 아니라 구글 검색으로 나가는 요청이었다.
먼저 어떤 트래픽인지 구분한다
‘구글 비정상 트래픽’ 화면은 구글 검색이 접속한 네트워크에서 자동화된 검색으로 보이는 요청을 감지했을 때 나타날 수 있다. 내 사이트로 들어오는 방문 요청이 많다는 뜻은 아니다. 구글 검색 고객센터는 검색 수집 프로그램, 자동화 서비스, 순위 확인 도구 등이 이런 요청을 만들 수 있다고 안내한다.
한 사람이 정상적으로 검색해도 같은 공인 IP를 쓰는 다른 장치가 원인일 수 있다. 사무실 공유기 뒤의 PC 수십 대, 여러 사용자가 접속하는 VPN, 한 서버에서 함께 나가는 작업이 구글에는 같은 출발지로 보일 수 있다. 그래서 화면이 뜬 PC부터 무조건 감염된 것으로 단정하면 조사 방향이 어긋난다.
화면에 보안 문자가 나오면 우선 입력해서 검색을 계속할 수 있다. 다만 같은 화면이 반복된다면 원인을 찾아야 한다. 보안 문자가 아예 보이지 않을 때는 브라우저의 자바스크립트 설정과 보안 문자 지원 여부도 확인할 만하다.
접속 환경을 바꿔 원인 범위를 좁힌다
가장 빠른 점검은 같은 기기에서 네트워크만 바꿔 검색하는 것이다. 사무실 와이파이에서는 경고가 뜨고 휴대전화 데이터에서는 뜨지 않는다면, 사무실 회선이나 그 공인 IP를 함께 쓰는 장치부터 조사한다. 반대로 두 환경에서 모두 반복된다면 브라우저 확장 프로그램, 검색 자동화 도구, 기기 상태를 먼저 본다. 이 비교만으로 원인이 확정되지는 않지만 조사 범위는 크게 줄어든다.
- VPN이나 프록시를 쓰고 있다면 잠시 끄고 같은 검색을 다시 한다. 경고가 사라지면 해당 서비스의 공용 출구 IP 또는 그 경로에서 실행되는 작업을 확인한다.
- 브라우저 확장 프로그램과 순위 확인 도구를 점검한다. 백그라운드에서 검색 결과를 반복 조회하는 기능이 있는지 본다.
- 회사나 학교의 여러 사람이 동시에 겪는다면 개별 PC보다 공인 IP를 공유하는 네트워크를 먼저 조사한다.
- 특정 기기에서만 계속된다면 악성코드 검사와 최근 설치한 프로그램 확인이 필요하다.
공유기 재시작으로 공인 IP가 바뀌어 잠시 조용해질 수도 있다. 하지만 같은 자동 검색이 계속 실행 중이면 다시 걸린다. IP 변경은 원인 제거 여부를 확인하는 방법이 아니다. 재현 시각, 사용한 회선, VPN 상태를 함께 적어 두는 편이 이후 조사에 훨씬 유용하다.
VPS에서는 들어온 요청보다 나간 요청을 본다
서버를 운영한다면 웹서버 접속 로그부터 뒤지는 경우가 많다. 그 로그는 주로 누가 내 사이트에 들어왔는지를 보여준다. 이번 화면과 직접 연결되는 것은 서버가 구글 검색 쪽으로 보낸 요청이다. 사이트 방문자가 적어도 서버 안의 스크립트 하나가 짧은 간격으로 검색하면 문제가 생길 수 있다.
먼저 경고가 나타난 시간대에 예약 작업, 순위 추적 프로그램, 데이터 수집 작업이 돌았는지 확인한다. 배포 직후 시작된 작업이나 중복 실행된 예약 작업도 흔한 점검 대상이다. 예를 들어 5분마다 실행하도록 만든 작업이 끝나기 전에 다시 시작되면 동시 실행 수가 쌓인다. 여기서 5분은 구글의 허용 기준이 아니라 운영자가 작업 간격을 확인하기 위한 예시다. 구글이 공개한 안전 요청 횟수처럼 받아들이면 안 된다.
프로세스와 예약 작업에서 설명되지 않는 외부 연결이 보인다면 계정 로그인 기록, 최근 추가된 파일, 실행 권한이 바뀐 파일도 확인한다. 침해가 의심될 때는 곧바로 서버를 지우기보다 로그와 작업 목록을 보존하고, 의심 작업을 중지한 뒤 인증 정보를 교체하는 순서가 낫다. 원인을 모른 채 새 VPS로 옮기면 같은 스크립트까지 복사해 갈 수 있다.
호스팅 상품에 공인 IP가 포함돼 있어도 그 IP가 어떤 경로로 쓰이는지는 확인해야 한다. NAT나 프록시를 통해 다른 사용자와 출구를 공유하는 구성이라면 내 서버 안에서 자동 검색을 찾지 못할 수도 있다. 이때는 호스팅 업체에 경고 발생 시각과 사용한 공인 IP를 전달해 출구 공유 여부를 문의한다. 구글 검색 고객센터도 네트워크 관리자에게 자동화된 요청의 출처를 찾아 중단하도록 안내한다.
작업을 고친 뒤 같은 조건에서 다시 확인한다
원인을 찾았다면 검색 결과를 직접 긁는 작업부터 멈추고 목적을 다시 확인한다. 순위 확인용이라면 조회 빈도만 조금 늦추는 것으로 충분하다고 가정하지 말아야 한다. 구글의 검색 스팸 정책은 허가 없는 자동 검색 요청을 문제로 다룬다. 필요한 데이터에 맞는 정식 도구가 있는지 검토하는 편이 운영상 안정적이다.
작업을 중지한 뒤에는 경고가 나왔던 회선과 기기에서 다시 검색한다. 보안 문자 한 번을 통과한 결과만 보지 말고, 시간이 지난 뒤에도 반복되는지 확인한다. 다른 사용자도 같은 화면을 보는지 살피면 공용 IP 문제를 가려내는 데 도움이 된다. 해제까지 걸리는 시간을 단정할 수 없으므로, 경고가 남아 있다는 이유만으로 서버 사양이나 요금제를 올릴 필요는 없다.
운영하면서 이런 신고를 받으면 저는 먼저 ‘언제, 어느 네트워크에서, 어떤 작업이 돌았는지’ 세 가지만 맞춰 본다. 대개 필요한 것은 더 큰 서버가 아니라 출구 IP를 공유하는 범위를 파악하고 불필요한 자동 검색을 멈추는 일이다.
