에이전틱 인터넷에서 나타나는 좋은 행동과 나쁜 행동 살펴보기

Jin-Hee Lee 및 Marina Elmore

11분 읽기

이 포스트는 다음 언어로도 제공됩니다 English, Deutsch, Español, Español (Latinoamérica), Français, Italiano, 日本語, 繁體中文 및 简体中文.

인터넷은 차량이 한 차선으로만 달리는 도로가 아닙니다. 오랫동안 웹 보안에서는 봇은 나쁘고 사람은 좋다는 것이 일반적인 통념이었습니다. 물론 이제는 이러한 일반화에서 훨씬 벗어나 있습니다. 사람도 사기 행위를 할 수 있고, 봇도 다양한 수준에서 유용할 수 있습니다. 사이트 소유자는 인터넷이 제대로 작동하고 검색될 수 있도록 일부 자동화된 트래픽이 자신의 사이트와 상호 작용하기를 적극적으로 원합니다.

문제를 더욱 복잡하게 만드는 것은 "사람"과 "봇"의 경계가 갈수록 모호해지고 있다는 점입니다. 이제는 하나의 세션이 사람에서 에이전트로, 다시 사람으로 전환되는 일종의 "하이브리드" 트래픽도 있습니다. (사용자가 온라인 상점을 둘러보다가 결제 프로세스를 자동화된 쇼핑 도우미에게 넘기는 상황을 생각해 보세요.)

그렇다면 웹 사이트 소유자는 이러한 복잡성을 어떻게 관리해야 할까요? 여기서 중요한 것은 행동을 평가하는 것입니다. 이러한 행동은 악용에 해당할까요? 악의적일까요? 여기에는 어떤 위험이 있으며, 이 방문자의 행동을 바탕으로 신뢰할 수 있을까요? 이러한 문제를 해결하려면 특정 시점의 정적인 검사를 넘어야 합니다. 신뢰를 평가하려면 지속적인 행동을 분석해야 합니다.

이 게시물에서는 Web Integrity & Trust 팀(봇 및 사기 문제 영역 담당)이 좋은 행동과 나쁜 행동을 감지하고 분석하기 위해 어떤 전략을 사용하는지 자세히 살펴보고, 변화하는 에이전트형 인터넷에서 새롭게 등장하는 과제에 사이트 소유자가 대응할 수 있도록 지원하는 도구를 소개합니다. 또한 Precursor 출시 이후 에이전트 트래픽과 관련해 확인한 결과를 공유하고, 자신의 커서 움직임이 사람 또는 봇의 행동으로 어떻게 평가되는지 확인할 수 있는 시뮬레이션과 함께 가까운 시일 내에 기대할 만한 흥미로운 출시 소식도 전해드립니다.

위험과 신뢰 정의하기

Cloudflare에서 봇 탐지를 담당하는 팀이 위험신뢰의 차이를 어떻게 바라보는지 살펴보겠습니다. 이 둘은 흔히 하나의 연속선상에서 서로 정반대에 있는 개념으로 여겨집니다. Cloudflare에서는 이 둘을 독립적이면서도 상호 보완적인 값으로 봅니다. 트래픽을 어떻게 처리할지 정보에 입각한 결정을 내리는 데 있어 신뢰는 필수적인 요소입니다. 

위험은 요청이나 작업 같은 것이 해를 끼칠 가능성을 나타내며, 일시적인 경우가 많습니다. 반면 신뢰는 시간이 지나면서 쌓이며 평판을 기반으로 합니다.

실생활의 예를 들어 설명해 보겠습니다. 어느 날 저녁 집에서 TV를 보고 있는데 갑자기 누군가 초인종을 계속해서 누른다고 해보겠습니다. 짜증이 나는 것은 둘째 치고라도 이상한 행동입니다. 늦은 밤에 다급하게 초인종을 계속 누르면 불안할 수밖에 없습니다.

도어 카메라로 확인해 보니 초인종을 누르는 사람은 바로 옆집에 사는 가장 친한 친구입니다. 물론 가장 친한 친구를 신뢰하므로 아마 문을 열어줄 것입니다.

이 예에서 "밤에 초인종을 누르는 사람은 모두 거부한다"거나 "초인종을 10번 넘게 누르는 사람은 모두 거부한다"고 정하는 것만으로는 충분하지 않습니다. 다시 말하지만 신뢰가 필수적인 요소입니다.

다시 인터넷 트래픽으로 돌아가 보겠습니다. 우리가 봇 및 사기 영역의 제품을 구축하는 전략은 신뢰를 기반으로 전체 생태계를 구축하는 데 초점을 맞춥니다. 그리고 우리의 목표는 사이트 소유자가 활용할 수 있는 인센티브와 기본 요소를 제공하여 모두에게 더 안전한 인터넷을 만드는 행동을 장려하도록 하는 것입니다. 그 시작은 가장 아래 단계에서 악의적인 활동을 차단하는 것이며, 가장 위 단계에서는 더 안전한 인터넷에 참여하도록 장려하는 것입니다.

위쪽의 신뢰도가 가장 높은 행동부터 아래쪽의 신뢰할 수 없는 악의적 행동까지 신뢰 수준을 스펙트럼으로 나타냅니다. 추가 열에는 사이트 소유자가 일반적으로 해당 행동을 어떻게 처리할 수 있는지 표시합니다.
위쪽의 신뢰도가 가장 높은 행동부터 아래쪽의 신뢰할 수 없는 악의적 행동까지 신뢰 수준을 스펙트럼으로 나타냅니다. 추가 열에는 사이트 소유자가 일반적으로 해당 행동을 어떻게 처리할 수 있는지 표시합니다.

투명성에 기반한 좋은 행동

가장 위 단계부터 살펴보겠습니다. 어떤 행동이 좋은 행동에 해당할까요? BotBase 내의 검증된 봇과 에이전트에서 명확한 사례를 찾을 수 있습니다. 지난달, 우리는 시스템에서 추적하는 좋은 봇을 위한 업데이트된 실용적 분류 체계를 발표하면서 "검증됨"의 정의를 두 가지로 압축했습니다. 1) 자신의 신원을 정직하게 밝히고, 2) 자신이 얻은 신뢰를 악용하지 않는 것입니다. 

사이트 소유자와 봇 운영자 간의 투명성은 서로에게 도움이 되는 공생 관계를 가능하게 합니다. 사이트 소유자는 웹 사이트에서 허용하려는 행동과 데이터 사용 방식을 명시할 수 있고, 봇 운영자는 보다 쉽게 액세스 권한을 얻을 수 있습니다. 이러한 투명성은 관계에서 신뢰를 형성할 수 있게 해줍니다. 숨길 것이 없다면 자신이 누구인지 밝힘으로써 자신의 행동을 허용하려는 사이트와의 마찰을 줄일 수 있어야 합니다.

BotBase는 단순히 "누가 좋은지"를 선언하기 위한 것이 아닙니다. 알려진 모든 봇과 에이전트의 디렉터리 역할을 하며 관련 사실을 제공하기 위한 것입니다. 알려진 좋은 봇만 포함했던 기존 Bots Directory와 달리 BotBase는 좋다고 보기 어려운 봇과 에이전트도 추적할 수 있습니다. 그 이유는 무엇일까요? 우리 시스템은 알려진 좋은 행위자의 행동을 추적하고 검증하므로 이러한 기대에 부합하지 않는 경우를 식별할 수 있는 도구를 갖추고 있기 때문입니다. Cloudflare 네트워크에서 신뢰를 악용한다면 쉽게 허용되어서는 안 되므로 검증되지 않은 상태가 됩니다.

나쁜 행동: 노골적인 행동부터 은밀한 행동, 그 사이의 모든 행동까지

몇 주 전, 우리는 네트워크 신호만 평가할 때 탐지를 피할 수 있는, 미묘하게 사람답지 않은 봇 트래픽까지 탐지하는 지속적인 클라이언트 측 시스템인 Precursor를 발표했습니다. 고객이 Precursor를 활성화하면 JavaScript 탐지 기능이 CDN을 통해 삽입되므로, 컴퓨터 앞에 앉아 이러한 탐지를 어디에서 어떻게 다시 실행할지 알아낼 필요가 없습니다. 더욱이 Precursor는 세션 전체에서 지속적으로 사용자 행동을 평가하므로, 클라이언트 및 브라우저 측 검사를 단 한 번 통과할 방법을 찾아낸 악용 트래픽이 더 이상 자유롭게 통과할 수 없습니다.

이러한 클라이언트 측 탐지에 우리의 위험 및 신뢰 프레임워크를 적용해 보면, CAPTCHA나 일회성 관문은 위험을 기반으로 하므로 맥락이 부족하다고 할 수 있습니다. 반면 행동에서 드러나는 특징을 이용한 검증은 전체 사용자 세션에서 더 많은 맥락 단서를 포착할 수 있으므로 신뢰를 기반으로 합니다. Precursor는 이러한 행동을 분석하기 위한 도구입니다. 요약하면 Precursor가 강력한 이유는 다음과 같습니다.

  1. 전체 사용자 세션에 걸쳐 신뢰 기반 탐지를 제공합니다.
  2. 여러 페이지에 걸친 시간의 흐름 속에서 사람의 행동을 모방하는 데 드는 봇 개발자의 비용을 높입니다.

봇 개발자가 이러한 탐지를 따돌리는 것이 경제적으로 불리하도록 만들면 적대적인 경쟁에서 우리가 우위를 점할 수 있습니다.

그렇다면 출시 이후 무엇을 알게 되었을까요? 이 블로그를 작성하는 시점을 기준으로 단 24시간 동안의 데이터만 살펴봐도 Cloudflare 네트워크의 73,438개 영역에서 2억 600만 건의 Precursor 평가 이벤트가 발생한 것을 확인할 수 있습니다.

24시간 동안의 Precursor 사용 통계를 보여주는 스크린샷.
24시간 동안의 Precursor 사용 통계를 보여주는 스크린샷.

데이터에서는 탐지 기능을 출시할 당시 예상했던 현상을 보여주는 패턴을 확인할 수 있으며, 이제 수만 개의 도메인에서 이를 검증할 수 있습니다.

  • 의심스러운 행동은 세션 도중에 발생하는 경우가 많으며, 특정 시점에만 이루어지는 탐지로는 이를 포착할 수 없습니다.
  • 행동은 하나의 세션 중에 사람에서 에이전트로, 다시 사람으로 전환되는 경우가 많습니다. 이런 경우에는 사이트 소유자가 실제로 원하는 사용자 흐름을 차단하지 않도록 의도를 파악하는 것이 중요합니다.
    • 이는 웹 사이트 소유자가 사용 사례, 목적, 데이터 사용 방식에 따라 트래픽을 처리할 수 있도록 하는 봇 분류 시스템의 중요성을 보여줍니다. 바로 이러한 이유로 우리는 BotBase의 분류 체계 업데이트를 우선적으로 추진했습니다.

Precursor가 실제로 어떻게 작동하는지 더 자세히 알고 싶은 분들을 위해, 우리는 발표 블로그 게시물에서 분석하는 신호를 통해 '실수하는 것이 인간답다'는 사실을 어떻게 확인했는지 미리 소개했습니다. 오늘은 여기서 한 단계 더 나아가 인터넷상의 누구나 자신의 커서 움직임을 Precursor가 어떻게 추적하는지 시뮬레이션해 볼 수 있는 대화형 데모를 제공합니다.

Precursor에서 사용자 지정 커서 움직임을 평가하는 화면의 스크린샷.
Precursor에서 사용자 지정 커서 움직임을 평가하는 화면의 스크린샷.

Precursor Trace가 이제 공개되었습니다. Precursor 탐지 메커니즘의 일부를 사용하여 사용자의 커서 움직임을 어떻게 평가하는지 보여줍니다. 여기에서는 커서 움직임의 가속 여부나 움직임을 스스로 보정하는지, 커서 움직임의 리듬과 특성 등을 확인할 수 있습니다. 실제 사람이 컴퓨터와 상호 작용하면서 아마 한 번도 생각해 본 적이 없는 요소들입니다. 직접 사용해 보세요!

Adaptive Intelligence가 곧 출시됩니다

Cloudflare의 봇 탐지 엔진은 특정 요청이 자동화된 것인지 평가할 때 서로 다른 결과를 도출할 수 있습니다. 자동화된 것으로 판단된 요청은 1) 검증된 결정론적 방법이나 봇의 핑거프린트를 기반으로 명백히 자동화된 것으로 평가되거나, 2) Cloudflare의 Bots ML에서 산출한 예측 점수를 기반으로 자동화되었을 가능성이 높은 것으로 평가될 수 있습니다.

기존에는 Bots ML이 버전 단위로 업데이트되었습니다. 즉, 새로운 모델 버전이 나올 때마다 제품 출시로 발표했습니다. 하지만 봇이 몇 시간, 심지어 몇 분 단위로 적응하는 상황에서는 이러한 업데이트 주기로 대응할 수 없습니다.

완전히 새로운 탐지 엔진인 Adaptive Intelligence는 Bots ML 영역에서 지금까지 우리가 구축한 어떤 기술과도 다릅니다. 모델 자체가 적응합니다. 과거에 관찰한 모든 것에서 학습했으며, 더욱 중요한 점은 앞으로도 관찰하는 내용을 기반으로 지속적으로 학습하고 스스로 조정한다는 것입니다. Adaptive Intelligence는 좋은 행동부터 나쁜 행동까지 우리가 식별하는 광범위한 트래픽 패턴을 기반으로 자체적으로 업그레이드되므로, 고객은 더 이상 최신 예측 기반 봇 탐지 기능을 사용하기 위해 공식적인 새 모델 버전으로 업그레이드할 필요가 없습니다. 

가까운 시일 내에 모든 Bot Management 고객이 Adaptive Intelligence를 이용할 수 있게 됩니다. 곧 발표될 출시 소식을 기대해 주세요.

결정론을 넘어 봇 행동에 영향을 미치기

지금까지는 전략, 탐지, 분류 체계 등 Cloudflare 측의 접근 방식에 초점을 맞췄습니다. 이 모든 것을 통해 Cloudflare는 웹 사이트 소유자가 자신의 사이트에 원하는 트래픽 정책을 설정하는 데 필요한 도구를 제공할 수 있습니다. 이제 웹 사이트 소유자의 관점에서 좀 더 자세히 살펴보면서, 웹 사이트 소유자가 직접 봇 행동에 영향을 미칠 수 있는 몇 가지 고급 완화 조치를 소개하겠습니다.

더 노골적인 완화 기법을 사용하면 우리가 "봇 항생제 문제(Bot Antibiotic Problem)"라고 부르는 문제에 직면하게 됩니다. 봇에 항상 결정론적인 응답(예: 403 차단)을 보내면 악의적인 봇 개발자가 방어 체계를 탐색하고 관찰하여 역설계하기 쉬워집니다.

우리는 이 문제를 알고 있기 때문에 봇을 제한하도록 특별히 설계된 완화 조치를 개발하고 있으며, 악의적인 봇과 무해한 봇에는 서로 다른 접근 방식을 적용합니다. 이러한 방식은 세 가지 접근 방식으로 나눌 수 있습니다.

접근 방식 1: 예측 불가능성과 무작위 작업. 자동화된 것으로 의심되는 트래픽에 무작위 응답(차단, 챌린지 또는 허용)을 적용하여 봇의 자동 재시도 로직과 핑거프린팅을 무력화합니다.

접근 방식 2: AI Labyrinth. 권한이 없는 봇을 AI로 생성된 웹 페이지의 끝없는 미로에 가두는 방어적 대응 방식입니다. 교란을 이용하여 악의적인 봇의 컴퓨팅 리소스와 크롤링 예산을 소모시킬 수 있습니다. 사이트 소유자는 선호도에 따라 AI Labyrinth에서 다음 세 가지 옵션을 선택할 수 있습니다.

  • Maze: 봇이 계속 따라가도록 링크로 연결된 끝없는 웹 페이지를 생성합니다.
  • Summary: 실제처럼 보이지만 AI 학습 데이터로는 전혀 쓸모없는, LLM으로 생성된 페이지 요약을 크롤러에 제공합니다.
  • Poison: 가짜 가격이나 재고와 같이 의도적으로 조작된 콘텐츠를 봇에 제공하여 봇이 AI 학습용으로 수집하는 데이터를 오염시킵니다.

접근 방식 3: 좋은 봇을 위한 대기열. 모든 에이전트 트래픽이 나쁜 것은 아닙니다. 대기열을 이용하면 사용자 지시에 따라 작동하는 쇼핑 에이전트와 같은 정상적인 자동화 트래픽의 서비스를 완전히 거부하지 않으면서 처리량을 관리할 수 있습니다.

이러한 고급 봇 전용 완화 조치는 연말에 가까워질 무렵 출시될 예정이며, 웹 사이트 소유자가 완화 조치를 어느 정도로 엄격하게 적용할지 선택할 수 있게 됩니다.

또한 훌륭한 방어 체계는 예측할 수 있어야 한다는 것도 알고 있습니다. 즉, 최신 은밀한 공격에 대응하기 위한 해결책을 사후에 설정하려고 여러 보안 전문가가 회의에 참여할 필요 없이 스스로 학습하고 방향을 수정할 수 있어야 합니다. 이를 위해 규칙 세트 자체가 동적으로 변화하는 "일회용" 규칙 시스템을 사용할 수도 있습니다. 이는 의도된 설계입니다. 공격이 끊임없이 진화한다면 방어 체계도 끊임없이 진화해야 합니다. 바로 이러한 이유로 우리는 탐지와 완화 조치 모두가 항상 한발 앞서 나갈 수 있도록 노력하고 있습니다.

자신에게 적합한 신뢰 생태계 구축하기

누구나 자동화된 에이전트가 자신의 인프라와 상호 작용하는 방식을 정의하기 위한 조치를 취할 수 있습니다. 

몇 가지 방법을 시도해 보세요.

정적인 특정 시점의 검사에서 벗어나 지속적인 신뢰 평가를 도입하면 봇 운영자와 끊임없이 쫓고 쫓기는 상황을 줄일 수 있습니다. 아직 Cloudflare의 봇 탐지를 사용하고 있지 않다면 살펴보고 자신에게 적합한 신뢰 생태계를 구축해 보세요.

BLOG-3467 5.png