봇 관리란? | 봇 관리의 원리

봇 관리란 웹사이트 또는 애플리케이션에서 일부 봇의 액세스를 허용하고, 일부 봇을 식별해 차단하는 것을 말합니다.

Share facebook icon linkedin icon twitter icon email icon

봇 관리

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • 봇의 기능과 봇을 관리하는 것이 왜 중요한지 이해할 수 있습니다.
  • 봇 관리 솔루션 제품의 기능을 이해할 수 있습니다.
  • 어떤 봇은 허용하고, 어떤 봇은 차단해야 하는 이유를 설명할 수 있습니다.

봇 관리란?

봇 관리란 유용한 봇의 웹 액세스를 허용하고, 무단 또는 악성 봇의 트래픽을 차단하는 것을 말합니다. 봇 관리 솔루션은 봇 활동을 감지해 이러한 봇 활동을 건전한 것과 불건전한 것으로 구분하고, 불건전한 활동의 출처를 찾아내 악성 봇을 차단합니다.

봇 관리가 필수적인 이유는 봇을 그대로 내버려 두면 웹사이트에 심각한 문제가 발생할 수 있기 때문입니다. 봇이 트래픽의 많은 부분을 차지할 경우 웹 서버에 과도한 부하가 걸려 서비스 속도가 저하되거나 서비스가 거부될 수 있습니다. 이러한 봇의 활동은 때로는 DDoS 공격의 형태를 띠기도 합니다. 악성 봇은 웹사이트 콘텐츠를 추출하고, 사용자 로그인 정보를 탈취하고, 스팸 콘텐츠를 빠르게 퍼뜨리고, 기타 다양한 형태의 사이버 공격을 실행합니다.

봇 관리 솔루션의 기능

봇 관리 솔루션이란 봇을 관리하는 모든 소프트웨어 제품을 말합니다. 봇 관리 솔루션은 모든 비인적 트래픽을 차단하는 것이 아니라 악성 봇만 차단하고 나머지 봇은 트래픽을 통과하도록 허용하는 기능을 갖춰야 합니다. 예를 들어, 모든 봇을 차단할 경우 페이지를 인덱싱하는 Google 봇까지 차단되어 해당 페이지가 Google 검색 결과에 표시되지 않고, 결과적으로 유기적인 트래픽이 크게 감소할 수 있습니다.

고성능 봇 관리 솔루션은 다음과 같은 기능을 갖추고 있습니다.

  • 봇과 사람 구별
  • 봇의 신뢰도 파악
  • 봇의 오리진 IP 주소를 추적해 해당 IP 주소의 신뢰도를 기반으로 IP 차단
  • 봇 행동 분석
  • 허용 목록에 '좋은 봇' 추가
  • Captcha 테스트, JavaScript 인젝션 등의 방법으로 잠재적 봇 검사
  • 서비스를 오용하는 잠재적 봇의 속도 제한
  • '나쁜 봇'의 특정한 콘텐츠/자료 액세스 거부
  • 봇을 대체 콘텐츠로 리디렉팅

봇이란?

봇이란 네트워크에서 실행되는 컴퓨터 프로그램을 말합니다. 봇은 자동으로 특정한 작업을 하도록 프로그래밍되어 있습니다. 일반적으로 봇이 실행하는 작업은 매우 간단하지만, 그 속도는 인간보다 훨씬 빠르고, 계속해서 반복적으로 작업을 실행할 수 있습니다.

예를 들어, Google은 더 정확한 검색을 위해 봇을 통해 웹 페이지를 끊임없이 크롤링하고 콘텐츠를 인덱싱합니다. 사람이 직접 인터넷에 흩어져 있는 콘텐츠를 검토한다면 어마어마한 시간이 걸리겠지만, Google은 봇을 사용해 검색 인덱스를 최신 상태로 유지합니다.

봇을 나쁜 의도로 사용하는 예로는 이메일 수집 봇을 사용해 인터넷상의 모든 이메일 주소를 수집하는 스팸 발송자를 들 수 있습니다. 이메일 수집 봇은 웹 페이지를 크롤링하며 이메일 주소 형식(텍스트+@+도메인)에 부합하는 모든 텍스트를 데이터베이스에 저장합니다. 물론 사람도 웹 페이지에서 이메일 주소를 찾아 수집할 수 있지만, 이메일 수집 봇의 경우 작업이 자동화되어 있고 특정한 기준에 맞는 텍스트만 검색하기 때문에 이메일 주소를 훨씬 빠르게 수집합니다.

사람이 인터넷에 접속할 때와는 달리 봇은 Google Chrome, Mozilla Firefox와 같은 기존의 웹 브라우저를 통해 인터넷에 접속하지 않습니다. 봇은 마우스나 스마트폰으로 브라우저에 있는 이미지 콘텐츠를 클릭하는 대신 일명 '헤드리스 브라우저'를 사용해 HTTP 요청 또는 기타 활동을 생성하는 소프트웨어 프로그램입니다.

봇의 기능

기본적으로 봇은 자동화가 가능한 반복적이고 수동적인 모든 작업을 실행할 수 있습니다. 여기에는 웹 페이지와 통신하고, 양식을 작성해 제출하고, 링크를 클릭하고, 텍스트를 훑고(일명 '크롤링'), 콘텐츠를 다운로드하는 작업이 포함됩니다. 또한, 동영상 보기, 댓글 달기, 게시물 작성, '좋아요' 누르기, 게시물 리트윗 등의 작업도 실행할 수 있습니다. 사람과 기본적인 대화를 나눌 수 있는 봇도 있는데, 이러한 봇은 챗봇이라고 불립니다.

좋은 봇과 나쁜 봇

놀랍게도 다양한 출처에 따르면 인터넷 전체 트래픽의 약 절반이 봇에 의한 트래픽이라고 합니다. 소프트웨어에도 악성이 있듯이 봇에도 나쁜 봇이 있고 좋은 봇이 있습니다.

온라인 제품이나 서비스를 오용하는 모든 봇은 '나쁜 봇'으로 간주될 수 있습니다. 나쁜 봇에는 사용자 계정에 침투하는 노골적인 악성 봇에서부터 웹사이트에서 공연 티켓을 싹쓸이하는 조금 더 순한 유형의 봇까지 다양한 유형의 봇이 있습니다.

사람들에게 필요하거나 유용한 서비스를 실행하는 봇은 '좋은 봇'으로 간주될 수 있습니다. 고객 서비스 챗봇, 검색 엔진 크롤러, 성능 모니터링 봇 등이 여기에 해당됩니다. 일반적으로 좋은 봇은 웹사이트의 robots.txt 파일에 명시된 규칙에 따라 행동합니다.

robots.txt 파일이란?

Robots.txt는 서버에 액세스하는 봇에 대한 규칙을 입력해 놓은 웹 서버 파일입니다. 하지만 파일이 스스로 규칙을 실행할 수는 없습니다. 기본적으로 봇을 프로그래밍하는 사람이 봇이 자율 시행 제도를 준수하고 웹사이트에 액세스하기 전에 robots.txt 파일을 확인하도록 설정해야 합니다. 물론 악성 봇의 경우 대부분 자율 시행 제도를 따르지 않습니다. 그렇기 때문에 봇 관리가 필요한 것입니다.

봇 관리의 원리

봇 관리 플랫폼은 보통 시중의 웹 브라우저를 사용하는지 파악하는 JavaScript 또는 Captcha 테스트를 사용해 봇을 식별하고, 행동 분석을 통해 사람과 봇을 구별합니다. 행동 분석이란 사용자의 행동을 과거 사용자들의 일반적인 행동과 비교하는 것을 말합니다. 따라서 대규모의 행동 데이터가 있어야 봇 관리 플랫폼이 대조 분석을 통해 사람과 봇을 구별할 수 있습니다.

봇이 나쁜 봇으로 판명되면 봇 관리 플랫폼은 해당 봇을 다른 페이지로 리디렉팅하거나 웹 자료에 액세스하는 것을 차단합니다.

좋은 봇은 허용 목록에 추가할 수 있습니다. 봇 관리 솔루션은 추가적인 행동 분석을 통해 좋은 봇과 나쁜 봇을 구별하기도 합니다.

또 다른 봇 관리 방식으로는 robots.txt file을 사용해 허니팟을 설치하는 방법이 있습니다. 허니팟이란 공격자의 접근을 탐지하기 위한 위장 시스템으로, 공격자는 함정에 액세스함으로써 악성의 정체를 스스로 드러내게 됩니다. 봇과 관련해서는 robots.txt file로 봇의 액세스를 제한한 사이트의 웹 페이지가 허니팟의 한 예가 될 수 있습니다. 좋은 봇은 robots.txt file을 읽고 해당 웹 페이지에 액세스하지 않지만, 나쁜 봇은 robots.txt file의 규칙과 관계없이 해당 웹페이지를 크롤링합니다. 이렇게 허니팟에 액세스한 봇의 IP 주소를 추적하면 나쁜 봇을 식별해 차단할 수 있습니다.

봇 관리로 완화할 수 있는 봇 공격의 유형

봇 관리 솔루션은 다양한 종류의 봇 공격을 차단합니다.

다음은 항상 악성은 아니지만, 봇 관리 솔루션이 완화해야 하는 봇 활동입니다.

  • 재고 고갈 공격
  • 소셜 포럼/플랫폼에 게시물 자동 등록
  • 장바구니 스터핑

Cloudflare의 봇 관리 방식

Cloudflare는 매일 네트워크로 쏟아져 들어오는 수십억 개의 요청으로부터 데이터를 수집하는 고유의 기술을 갖추고 있습니다. Cloudflare는 이렇게 수집한 데이터와 머신 러닝과 행동 분석을 통해 잠재적인 봇 활동을 식별하고, 좋은 봇 허용 목록과 나쁜 봇 제한 목록을 만드는 데 필요한 데이터를 제공합니다. 또한, Cloudflare는 광범위한 IT 신뢰도 데이터베이스를 갖추고 있습니다. Cloudflare의 봇 관리에 대해 자세한 내용을 확인하세요.