데이터 스크래핑이란 무엇입니까?

공격자들은 웹 스크래핑 도구를 이용해 원래 의도된 것보다 훨씬 빠르게 데이터에 액세스할 수 있습니다. 이로 인해 데이터가 무단으로 사용될 수 있습니다.

학습 목표

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

  • 데이터 스크래핑 정의하기
  • 웹 스크래핑 배후의 목적 설명하기
  • 데이터 스크래핑 완화 방법 이해하기
  • 데이터 스크래핑과 데이터 크롤링 구별하기

관련 콘텐츠


계속 알아보시겠어요?

인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!

Cloudflare가 개인 데이터를 수집하고 처리하는 방법은 Cloudflare의 개인정보 취급방침을 참조하세요.

글 링크 복사

Cloudflare로 자격 증명 스터핑 및 콘텐츠 스크래핑 등의 봇 공격을 방어하세요

데이터 스크래핑이란 무엇입니까?

가장 일반적인 형태의 데이터 스크래핑은 컴퓨터 프로그램이 다른 프로그램에서 생성된 결과물로부터 데이터를 추출하는 기법을 말합니다. 데이터 스크래핑은 일반적으로 애플리케이션을 사용하여 웹 사이트에서 중요한 정보를 추출하는 프로세스인 웹 스크래핑에서 나타납니다.

데이터 스크래핑

웹 스크래핑에는 어떤 유형이 있을까요? 웹 사이트 데이터를 스크래핑하는 이유는?

스크래퍼 봇은 다음과 같은 다양한 목적을 위해 만들 수있습니다.

  1. 콘텐츠 스크래핑 - 콘텐츠에 의존하는 특정 제품 또는 서비스의 고유한 이점을 복제하기 위해 웹 사이트의 콘텐츠를 가져옵니다. 레스토랑 리뷰 사이트를 예로 들어 보겠습니다. 경쟁업체에서는 모든 리뷰를 스크래핑한 다음 자체 웹 사이트에 콘텐츠를 복제하여 콘텐츠가 원본인 것처럼 가장할 수 있습니다(그리고 이점을 누릴 수 있음).
  2. 가격 스크래핑 - 경쟁업체에서 가격 데이터를 스크래핑해서 경쟁에 대한 정보를 취합하는 경우입니다. 이를 통해 경쟁업체를 압도하여 비즈니스를 장악하는 등 고유한 우위를 확보할 수 있습니다.
  3. 연락처 스크래핑 - 이메일 주소와 전화번호를 일반 텍스트로 보유하고 있는 웹 사이트가 많습니다. 스크래퍼는 온라인 직원 디렉터리와 같은 페이지를 스크래핑하여 대량 메일링 목록, 로보콜, 악의적인 소셜 엔지니어링 시도에 사용될 연락처 세부 정보를 집계할 수 있습니다. 이는 스팸 발송자와 사기꾼이 새로운 대상을 찾기 위해 주로 사용하는 방법 중 하나입니다.

데이터 스크래핑과 데이터 크롤링의 차이점은 무엇입니까?

크롤링은 Google과 같은 대규모 검색 엔진에서 GoogleBot과 같은 로봇 크롤러를 인터넷에 보내 인터넷 콘텐츠를 색인화하는 과정을 말합니다. 반면에, 스크래핑은 일반적으로 특정 웹 사이트에서 데이터를 추출하도록 특별히 구성됩니다.

스크래퍼 봇과 웹 크롤러 봇의 행동 관행에는 세 가지 차이점이 있습니다.

  정직/투명성 고급 조작 robots.txt 존중
스크래퍼 봇 스크래퍼를 차단하려는 모든 시도를 통과하기 위해 웹 브라우저인 척합니다. 차단된 정보에 액세스하기 위해 양식을 작성하는 등의 고급 작업을 수행할 수 있습니다. 일반적으로 robots.txt는 고려하지 않습니다. 즉, 웹 사이트 소유자의 의사에 반하여 명시적으로 콘텐츠를 가져올 수 있습니다.
크롤러 봇 목적을 나타내고, 크롤러가 아닌 것으로 생각하도록 웹 사이트를 속이려고 시도하지 않습니다. 웹 사이트의 차단된 부분에 액세스하려고 시도하지 않습니다. robots.txt를 존중합니다. 즉, 분석할 데이터와 웹 사이트의 어떤 영역을 피해야 하는지에 대해 웹 사이트 소유자가 원하는 대로 따릅니다.

웹 사이트는 어떻게 스크래핑될까요?

웹 스크래핑의 실제 구현은 복잡할 수 있지만, 절차는 매우 간단합니다. 이 프로세스는 3단계로 요약할 수 있습니다.

  1. 먼저, 정보를 가져오는 데 사용되는 코드(스크래퍼 봇)가 특정 웹 사이트에 HTTP GET 요청을 보냅니다.
  2. 웹사이트가 응답하면 스크래퍼는 HTML 문서를 분석해서 특정 패턴의 데이터를 찾습니다.
  3. 추출된 데이터는 스크래퍼 봇의 작성자가 설계한 특정 형식으로 변환됩니다.

일반적으로 기업에서는 고유한 콘텐츠를 무단으로 다운로드되어 재사용되는 것을 원하지 않으므로, 소모성 API 또는 쉽게 액세스할 수 있는 리소스를 통해 모든 데이터를 노출하지 않으려고 할 수 있습니다. 반면에, 스크래퍼 은 액세스를 제한하려는 노력에도 불구하고 웹 사이트 데이터를 얻고자 합니다. 그 결과, 웹 스크래핑 봇과 다양한 콘텐츠 보호 전략 사이에는 쥐와 고양이 같은 게임이 존재하며, 서로 이 게임에서 이기려 합니다.

웹 스크래핑 완화 방법

스마트한 스크래핑 전략에는 스마트한 완화 전략이 필요합니다. 데이터 스크래핑 노력에 대한 노출을 제한하는 방법은 다음과 같습니다.

  1. 요청 레이트 리미팅 - 하나의 웹 사이트에서 일련의 웹 페이지를 클릭하는 인간 방문자의 경우, 웹 사이트와의 상호 작용 속도는 상당히 예측 가능합니다. 예를 들어, 인간이라면 초당 100개의 웹페이지를 탐색하지는 않을 것입니다. 이에 비해 컴퓨터는 사람이 요청하는 것보다 훨씬 더 빠르게 요청할 수 있으며, 초보 데이터 스크래퍼는 조절되지 않은 스크래핑 기법을 사용하여 전체 웹 사이트를 매우 빠르게 스크래핑하려고 시도할 수 있습니다. 웹 사이트는 특정 IP 주소가 주어진 시간 동안 수행할 수 있는 최대 요청 수를 제한함으로써 익스플로잇하려는 요청으로부터 자체를 보호하고 해당 기간 내에 발생할 수 있는 데이터 스크래핑의 양을 제한할 수 있습니다.
  2. 주기적인 HTML 마크업 수정 - 데이터 스크래핑 봇은 웹 사이트 콘텐츠를 효과적으로 탐색하고 데이터를 분석하기 위해 일관된 형식을 사용합니다. 이 워크플로우를 방해하는 한 가지 방법은 HTML 마크업 요소를 정기적으로 변경하는 것입니다. HTML 요소를 중첩하거나, 마크업의 다른 측면을 변경함으로써, 간단한 데이터 스크래핑 노력을 방해하거나 저지할 수 있습니다. 예를 들어, 일부 웹 사이트에서는 웹 페이지가 렌더링될 때마다 임의의 형태로 콘텐츠 보호 수정이 이루어집니다. 다른 웹 사이트에서는 더 장기적인 데이터 스크래핑 노력을 방지하기 위해 몇 주마다 프런트 엔드를 업데이트할 수 있습니다.
  3. 대량 요청자에 대한 인증 질문 사용 - 콘텐츠 스크래핑 속도를 늦추는 또 하나의 유용한 단계는 웹 사이트 방문자가 컴퓨터가 해결하기 어려운 질문에 답변하도록 요구하는 것입니다. 인간은 이 질문에 합리적으로 답할 수 있지만, 헤드리스 브라우저* 는 대부분 이에 답하지 못하며, 다양한 질문을 통과할 수는 없습니다.
  4. 흔하지 않은 또 다른 완화 방법은 이미지와 같은 미디어 개체 내부에 콘텐츠를 삽입하는 것입니다. 콘텐츠가 문자열로 존재하지 않으므로 콘텐츠를 복사하는 것은 훨씬 더 복잡하며, 이미지 파일에서 데이터를 가져오려면 광학 문자 인식(OCR)이 필요합니다.

*헤드리스 브라우저는 Chrome이나 Firefox와 매우 유사한 웹 브라우저이지만, 기본적으로 시각적 사용자 인터페이스가 없으므로 일반적인 웹 브라우저보다 훨씬 빠르게 이동할 수 있습니다. 헤드리스 브라우저는 기본적으로 명령줄 수준에서 실행되므로 전체 웹 애플리케이션 렌더링을 피할 수 있습니다. 데이터 스크래퍼는 스크래핑되는 각 페이지를 보는 사람이 없으므로 헤드리스 브라우저를 사용하여 데이터를 더 빠르게 요청하는 봇을 작성합니다

웹 스크래핑의 완전한 차단 방법

웹 스크래핑을 완전히 차단하는 유일한 방법은 웹 사이트에 콘텐츠를 올리는 것을 완전히 중단하는 것입니다. 그러나 고급 봇 관리 솔루션을 사용하면 웹 사이트에서 스크래퍼 봇의 액세스를 제거하는 데 도움이 될 수 있습니다.

Cloudflare를 이용하여 스크래핑 공격을 방어하세요

Cloudflare Bot Management는 머신 러닝 및 행태 분석을 사용하여 악의적인 스크래핑 활동을 식별하고 고유한 콘텐츠를 보호하며 봇이 웹 자산을 악용하지 못하도록 합니다. 이와 유사하게, Super Bot Fight 모드는 소규모 조직에서 스크래퍼 및 기타 악성 봇 활동을 방어하는 데 도움이 되도록 설계되었으며, 봇 트래픽에 대한 가시성이 높아집니다.

FAQ

데이터 스크래핑이란 무엇입니까?

데이터 스크래핑은 컴퓨터 프로그램이 다른 프로그램의 결과물에서 데이터를 추출하는 기술입니다. 흔히 볼 수 있는 한 형태는 웹 스크래핑입니다.

웹 스크래핑에는 어떤 유형이 있습니까?

웹 스크래핑은 여러 목적으로 사용될 수 있으며, 그중 하나가 콘텐츠 스크래핑입니다. 공격자는 웹사이트의 콘텐츠를 가져와 자신의 사이트에 복제할 수 있습니다. 가격 스크래핑은 경쟁업체가 가격 데이터를 스크래핑해 가격을 낮추어 경쟁 우위를 확보하는 행위입니다. 연락처 스크래핑은 봇이 이메일 주소나 전화번호 같은 연락처 정보를 웹사이트에서 수집하여 스팸, 자동 전화, 악성 소셜 엔지니어링에 사용하는 행위입니다.

데이터 스크래핑과 데이터 크롤링의 차이점은 무엇입니까?

웹 크롤링은 대형 검색 엔진이 인터넷 콘텐츠를 색인화하는 과정이며, 크롤러 봇은 일반적으로 그 목적이 투명합니다. 반면 데이터 스크래핑은 특정 웹사이트에서 특정 데이터를 추출하도록 설계된 경우가 많습니다.

웹사이트는 어떻게 스크래핑될까요?

보통 이 과정은 세 단계로 이루어집니다. 먼저 스크레이퍼 봇이 웹사이트에 HTTP GET 요청을 보냅니다. 둘째, 웹사이트가 응답하면 스크레이퍼는 HTML 문서를 파싱해 특정 데이터 패턴을 찾아냅니다. 마지막으로 추출된 데이터는 봇 작성자가 설계한 특정 형식으로 변환됩니다.

데이터 스크래핑을 완화하는 방법은 무엇입니까?

데이터 스크래핑에 대한 노출을 제한할 수 있는 여러 전략이 있습니다. 여기에는 단일 IP 주소에서 비정상적으로 빠른 트래픽을 차단하기 위한 요청 레이트 리미팅, 단순한 스크래퍼를 방해하기 위해 웹사이트의 HTML 마크업을 정기적으로 변경하는 방법, 그리고 대량 요청자에게 CAPTCHA 같은 챌린지를 적용하는 방식이 포함됩니다.

웹 스크래핑을 완전히 차단할 수 있습니까?

고급 봇 관리 솔루션을 사용하면 웹사이트에서 스크래퍼 봇의 액세스를 제거하는 데 도움이 될 수 있습니다. 예를 들어, Cloudflare Bot Management는 머신러닝과 행동 분석을 사용하여 악성 스크래핑 활동을 식별하고 차단합니다.