쿠키를 지우고 IP를 바꾸고 시스템을 재설치하며 시크릿 모드까지 써도 계정이 연관된 것으로 판단될 수 있습니다. 위험 제어는 하나의 스위치가 아니라 가입기, 활동기, 이상 징후 단계마다 다른 신호를 수집하며, 핵심은 계정 행동이 사람처럼 보이는지 판단하는 것입니다. 여기서는 세 단계를 나누어 설명합니다.
쿠키를 지우고 IP를 바꾸고 시스템을 재설치한 뒤 시크릿 모드까지 사용했는데도 계정이 서로 연관된 것으로 판단될 수 있습니다. 이유는 간단합니다. 위험 제어는 하나의 스위치가 아닙니다. 단계마다 다른 신호를 수집하며, 실제로 확인하려는 것은 계정의 행동이 사람처럼 보이는지입니다.
과정을 세 부분으로 나누면 훨씬 명확해집니다. 가입하는 순간, 콘텐츠 활동을 시작한 뒤, 그리고 이상 징후가 나타나는 시점입니다.
가입기: 거의 아무것도 하기 전에 신호 수집이 끝난다

가입 시 플랫폼이 얻을 수 있는 정보는 대부분의 사람이 생각하는 것보다 많습니다. 디바이스 측에서는 하드웨어와 환경 특성을 읽습니다. Canvas 렌더링의 픽셀 차이, AudioContext의 파형 차이, WebGL이 반환하는 GPU 제조사와 모델, User-Agent, WebRTC가 프록시를 우회해 실제 주소를 노출하는지 여부, 시간대와 언어 등이 포함됩니다. 네트워크 측에서는 두 가지를 봅니다. IP가 데이터센터인지 주거용 회선인지와 그 위험 점수, 그리고 해당 IP 대역에 이미 많은 계정이 몰려 있는지입니다.
행동도 확인하지만 쉽게 놓치는 부분입니다. 양식 작성 속도, 필드 수정 흔적, 어떤 인증 경로를 거쳤는지를 봅니다. 모든 과정이 비정상적으로 빠르면 그 자체가 신호가 됩니다.
가입기의 조치는 보통 세 가지입니다. 즉시 거부, 사용은 허용하지만 조용히 도달 범위를 낮추기, 또는 추가 인증 요구입니다.
여기서 가장 쉽게 간과되는 것은 일관성입니다. IP 위치, 브라우저 시간대와 언어, 입력한 계정 소유자 주소 중 하나라도 맞지 않으면 고급 탐지 기법이 없어도 드러납니다. 지리적 논리 모순은 가장 저렴하게 찾아낼 수 있는 허점입니다.
활동기: 콘텐츠와 상호작용의 패턴
가입 단계를 통과하면 판단 기준은 누가 가입했는지에서 이 계정이 무엇을 하는지로 바뀝니다.
콘텐츠 측에서는 주로 반복도를 봅니다. 여러 계정이 매우 유사한 소재를 대량으로 게시하고 문구를 차별화하지 않으면 조정된 자동화로 판단되기 쉽습니다. 그 결과 하나의 계정만 조치되는 것이 아니라 전체 그룹의 노출이 제한될 수 있습니다.
상호작용 측에서는 분포를 봅니다. 팔로우, 좋아요, DM의 빈도, 하루 중 어느 시간대에 집중되는지, 상호작용 대상이 얼마나 겹치는지를 확인합니다. 실제 사용자의 행동은 분산되는 반면 스크립트의 행동은 집중되는 경향이 있습니다. 여러 계정의 상호작용 곡선이 매우 비슷하면 연관 판정이 작동할 수 있습니다.
계정 자산을 활성화하는 속도도 관찰 대상입니다. 일상적인 탐색이나 검색 없이 새 계정이 즉시 비즈니스 도구를 열고 카드를 연결해 광고를 집행하는 패턴은 위험 모델에서 전형적인 사례입니다.
이 단계의 조치는 대체로 가입기보다 가볍습니다. 노출 제한, 추천 축소, 인증 요구, 일부 비즈니스 기능 제한 등이 있습니다. 처벌보다는 평가 하락에 가깝지만 같은 패턴을 계속하면 다음 단계로 강화될 수 있습니다.
이상 징후 단계: 로그인 위치와 빈도가 갑자기 바뀐다
이상 판정을 촉발하는 신호 중 가장 전형적인 것은 두 가지입니다.
하나는 로그인 위치의 급변입니다. 같은 계정이 짧은 시간 안에 한 도시에서 다른 도시로 이동한 것으로 보이면, 예를 들어 5분 안에 로스앤젤레스에서 뉴욕으로 이동하면 사람의 이동 속도에는 한계가 있기 때문에 시스템은 우선 계정 탈취 가능성을 의심합니다. 여러 팀원이 서로 다른 지역에서 같은 계정에 로그인하는 경우에도 이 조건에 걸릴 수 있습니다.
다른 하나는 빈도 변화입니다. 원래 저빈도였던 계정이 갑자기 많은 작업을 수행하거나 여러 계정이 같은 시간대에 같은 행동을 하면 판단이 강화될 수 있습니다.
이 단계의 조치는 가장 강합니다. 보호 목적의 정지, 신원 또는 얼굴 인증을 요구하는 잠금, 연관 계정에 대한 조치가 포함됩니다. 같은 IP 대역이나 동일한 디바이스 특성을 가진 다른 계정도 함께 제한될 수 있습니다. 여기까지 오면 보통 특정 계정 하나의 문제가 아니라 환경 체인 전체의 문제입니다.
모든 특성을 지우는 것보다 사람처럼 보이는 것이 더 효과적인 이유
직관과 다른 점이 하나 있습니다. 플랫폼은 단순히 지문이 있는지만 보는 것이 아니라 특성 사이에 모순이나 빈틈이 있는지를 봅니다. 지문이 없거나 매개변수가 명백하게 수정된 흔적 자체가 비정상 신호이며, 평범한 실제 특성 집합보다 더 의심스러울 수 있습니다.
따라서 방향은 숨기는 것이 아니라 일관성을 만드는 것입니다.
디바이스 수준에서는 각 계정에 안정적인 하드웨어 및 환경 특성 세트가 있어야 하며, 더 혼란스럽다고 해서 더 좋은 것은 아닙니다. 네트워크 수준에서는 노드를 자주 바꾸는 것보다 하나의 고정 출구에 계정을 장기간 연결하는 편이 더 안전합니다. 환경 수준에서는 시간대, 언어, 지리적 위치가 IP와 한 세트로 맞아야 하며 각각 따로 바꾸면 안 됩니다. 예를 들어 User-Agent는 특정 시스템이라고 표시하는데 저수준 WebGL 데이터가 다른 구성의 GPU 정보를 반환한다면 지나치게 수정한 전형적인 사례입니다.
행동 측면도 마찬가지입니다. 실제 사용자의 마우스 움직임에는 변동이 있고 스크롤 속도도 일정하지 않으며 체류 시간의 차이도 크고 가끔 비효율적인 경로를 선택합니다. 자동화에 임의 지연을 추가하고 순서를 섞고 가끔 의미 없는 클릭을 허용하는 것이 밀리초 단위의 완벽한 안정성을 추구하는 것보다 더 자연스럽게 보일 수 있습니다.
세 단계의 판정은 점진적으로 강화되고 조치도 인증, 평가 하락, 노출 제한, 정지 순으로 이어지며 각 단계는 신호 강도에 대응합니다. 계정이 제한되었다면 단순히 운이 나빴던 것이 아니라 앞선 어느 계층에서 먼저 모순이 나타났다는 의미인 경우가 많습니다.
세 가지만 할 수 있다면 이 순서로
먼저 지리적 일관성을 맞춥니다. IP, 시간대, 언어가 한 세트로 일치해야 하며 비용은 가장 낮고 효과는 가장 큽니다. 다음으로 환경 독립성을 확보합니다. 계정 하나당 환경 하나를 사용하고 공유하지 않습니다. 행동 속도 조정은 마지막에 하며 낮은 빈도에서 시작해 자연스러운 변동을 허용합니다.
PurpleMark의 환경 격리 기능은 이 가운데 단계에 해당합니다. 각 계정마다 독립된 브라우저 환경을 설정하고 지문의 독립성과 환경 매개변수의 일관성을 관리하며 일괄 관리도 지원합니다.
순서를 반대로 하면 효과가 크게 떨어집니다. 행동 계층을 아무리 자연스럽게 만들어도 환경 계층에 모순이 있으면 그대로 탐지될 수 있습니다.
이 글은 기술 메커니즘 설명만을 목적으로 합니다. 관련 도구는 합법적이고 규정을 준수하는 범위에서 사용하고 각 플랫폼의 서비스 약관을 준수하십시오.


