매크로란 사람이 브라우저에서 직접 수행하던 클릭, 입력, 조회, 예약 등의 행동을 프로그램이나 스크립트가 대신 수행하여 서비스의 정상적인 이용 흐름을 대량·고속으로 반복 실행하는 자동화 행위를 의미한다.
이러한 매크로는 단순한 편의 기능을 넘어 특정 시점에 요청을 집중시키거나 사람보다 빠른 속도로 시스템을 선점함으로써 서비스의 공정성과 안정성을 해칠 수 있다는 점에서 문제가 된다.
특히 예약, 결제, 신청과 같이 경쟁 조건이 존재하는 서비스에서는 매크로 사용 여부가 곧 결과의 유불리를 결정짓는 요소가 되며 이는 정상적인 사용자 경험을 심각하게 훼손할 수 있다.
매크로의 문제는 공정성 훼손에만 국한되지 않는다.
매크로는 동일한 요청을 짧은 시간 안에 반복적으로 전송하는 특성 때문에 그 자체만으로도 서버에 심각한 부하를 유발할 수 있다.
일반 사용자의 요청은 클릭, 화면 전환, 입력 등의 과정으로 인해 자연스럽게 시간 간격이 발생한다.
반면 매크로는 이러한 인간적인 지연이 없기 때문에 초당 수십에서 수백 건 이상의 요청을 연속적으로 발생시킬 수 있다.
이러한 요청이 누적되면 다음과 같은 문제가 발생한다.
- WAS 스레드 고갈 및 요청 대기 증가
- DB 커넥션 풀 소진
- 캐시 미스 증가 및 백엔드 부하 확대
- 응답 지연 또는 타임아웃으로 인한 장애 전파
이 관점에서 매크로는 단순한 부정 사용을 넘어 의도하지 않은 서비스 거부 상태를 유발할 수 있는 위험 요소로 볼 수 있다.
1. 입력/화면 기반 매크로 (키보드·마우스 자동화)
입력/화면 기반 매크로는 사람이 수행하는 키보드와 마우스 입력을 프로그램이 대신 수행하는 자동화 방식이다.
화면에 표시되는 버튼이나 텍스트와 같은 시각적 요소를 인식한 뒤 해당 위치에 마우스를 이동시키거나 키보드 입력을 실행하는 방식으로 동작한다.
이 과정은 실제 사용자 조작과 매우 유사한 형태로 반복 수행된다.
장점으로는 브라우저나 애플리케이션의 내부 구조를 알지 못해도 동작한다는 점이다.
또한 구현 난이도가 낮고 사람이 사용하는 프로그램 대부분은 대상으로 사용할 수 있다.
다만 화면 해상도나 UI변경에 매우 취약하고 흔히 사용하는 고속으로 처리하는 매크로의 속도는 기대할 수 없다.
행동이 지나치게 규칙적으로 동작하기 때문에 행동기반 매크로 탐지에 걸릴 수 있다.
그러나 서버 입장에서는 정상 사용자 요청으로 보이기 때문에 높은 등급의 매크로 탐지 기술이 아닌 이상 찾기가 어려울 수 있다.
2. 브라우저 자동화 매크로
브라우저 자동화 매크로는 사람이 직접 키보드와 마우스를 조작하지 않고 브라우저의 내부 구조를 제어해 사용자의 행동을 자동화하는 방식의 매크로다.
이 방식은 화면 좌표나 이미지 인식에 의존하지 않고 브라우저가 제공하는 객체 모델과 이벤트 시스템을 직접 조작한다는 점에서 입력/화면 기반 매크로와 명확한 차이를 가진다.
HTML 요소를 직접 탐색해 대상 요소를 식별한 후 클릭, 입력, 제출 등의 이벤트를 코드로 직접 발생시킨다.
페이지 이동, 응답 대기, 조건 분기 등을 논리적으로 제어하고 실제 입력 장치를 사용하지 않기 때문에 반복 요청, 대기 후 재시도 등을 입력/화면 기반 매크로보다 좀 더 정밀하게 동작을 제어할 수 있다.
브라우저 자동화 매크로의 장점으로 입력/화면 기반 매크로보다 훨씬 빠른 실행 속도가 있다.
직접 입력 장치를 사용하지 않기 때문에 입력 시간과 요청시간을 간소화할 수 있기 때문이다.
UI 변경에도 상대적으로 강한데 화면으로 보고 판단하는게 아니라 HTML요소를 가지고 판단하기 때문에 페이지 구조 자체가 변경되지 않는다면 안정적으로 동작 가능하다.
쿠키, 세션, 로컬 스토리지 등을 그대로 사용 가능하기 때문에 실제 사용자 행동과 매우 유사한 요청을 보낼 수 있다.
CAPTCHA와 같은 매크로 차단 수단도 외부 서비스나 사람의 개입, 우회 기법과 결합될 경우 무력화될 수 있다.
이 매크로는 비정상적으로 빠르게 요청을 전송하기 때문에 Rate Limit로 차단이 가능하고 입력/화면 기반 매크로보다는 아니지만 그래도 동작이 일정하기 때문에 행동기반 매크로 탐지에 걸릴 수 있다.
3. HTTP 직접 요청 매크로
원리
- 브라우저를 아예 쓰지 않고, 서버 엔드포인트로 HTTP 요청을 직접 만든다.
- 쿠키, 세션ID, CSRF 토큰, 헤더 등을 복제해 정상 요청처럼 보이게 만든다.
- 단계별로 필요한 파라미터를 미리 수집해 재사용하거나 자동으로 추출한다.
HTTP 직접 요청 매크로는 브라우저를 실행하지 않고 서버와 통신하는 HTTP 요청을 프로그램이 직접 생성해 전송하는 방식의 매크로다.
이 방식은 사람의 입력이나 브라우저 동작을 흉내 내는 것이 아니라 서버가 실제로 처리하는 요청 형식을 분석한 뒤 필요한 요청만을 정확하게 만들어 전달한다는 점에서 앞선 매크로들과 근본적인 차이를 가진다.
브라우저 개발자 도구나 서버 로그 등을 통해 요청 URL, 파라미터, 헤더 구조를 분석하고 이를 코드로 재현해 서버에 직접 요청을 보낸다.
브라우저가 자동으로 처리해주던 역할, 예를 들어 쿠키 관리, 세션 유지, 토큰 전달과 같은 부분을 모두 프로그램이 직접 담당하게 된다.
이러한 구조 때문에 HTTP 직접 요청 매크로는 매우 높은 속도와 효율성을 가진다.
브라우저 실행과 렌더링 과정이 없고 네트워크 통신에 필요한 최소한의 데이터만 전송하기 때문에 짧은 시간 안에 많은 요청을 반복적으로 전송할 수 있다.
같은 작업을 수행하더라도 브라우저 자동화 매크로에 비해 훨씬 적은 자원으로 더 많은 요청을 처리할 수 있으며 병렬 실행에도 유리하다.
반면 구현 난이도는 매우 높다.
서버가 기대하는 요청 흐름을 정확히 이해하지 못하면 정상적으로 동작하지 않는다.
쿠키와 세션 식별자를 직접 관리해야 하고 CSRF 토큰이나 일회성 난수 값처럼 요청마다 변경되는 요소도 매번 재생성하거나 추출해 반영해야 한다.
요청 순서나 상태 전이가 조금이라도 어긋나면 서버에서 차단되거나 오류가 발생할 수 있다.
이 매크로는 바로 URL를 직접 요청하기 때문에 이전에 어디 페이지에서 왔는지의 데이터가 있어야 요청이 정상적으로 처리되는 흐름검증 등에 막힐 수 있다.
브라우저 자동화 매크로와 HTTP 직접 요청 매크로의 차이점으로는 요청을 누가 생성하느냐에 있다.
브라우저 자동화 매크로는 실제 브라우저를 실행한 상태에서 브라우저가 요청을 만들어 서버로 전달한다.
쿠키, 세션, 토큰 관리가 자동으로 이루어지며 요청 흐름도 정상 사용자와 매우 유사하다.
반면 HTTP 직접 요청 매크로는 브라우저를 완전히 배제하고 프로그램이 요청을 직접 생성한다.
사용자 행동과의 유사성은 낮지만 서버가 처리하는 요청 자체는 정확하게 맞추기 때문에 속도와 대량 처리 측면에서는 훨씬 강력하다.
정리하면 브라우저 자동화 매크로가 사람의 행동을 정교하게 흉내 내는 방식이라면 HTTP 직접 요청 매크로는 서버 로직 자체를 직접 공략하는 방식이라고 볼 수 있다.
4. 행동 모방형 매크로
행동 모방형 매크로는 단순히 요청을 자동화하는 수준을 넘어 실제 사용자의 행동 패턴 자체를 흉내 내도록 설계된 매크로를 말한다.
행동 모방형 매크로는 클릭, 조회, 이동, 대기와 같은 개별 행동을 무작위로 섞고 요청 간 시간 간격도 고정하지 않는다.
일정한 주기로 동작하지 않고 일부러 망설이거나 지연하는 것처럼 보이도록 행동을 분산시킨다.
페이지 이동 순서 역시 항상 동일하지 않으며 실제 사용자처럼 불필요해 보이는 조회나 이동을 일부러 포함시키기도 한다.
이 매크로의 목적은 요청을 많이 보내는 것이나 빠르게 동작하는 것에 목적이 있는게 아니라 서버가 관측하는 행동의 형태, 흐름, 시간적 특성을 사람과 최대한 비슷하게 만드는 데 목적이 있다.
기존에 매크로 탐지 프로그램은 요청 수 제한, IP 차단 등의 기술과 행동 기반 탐지 등 더욱 발전하고 있다.
이러한 환경에서 중요한건 빠르게 처리하는게 아니라 안전하게 처리하는 것이다.
즉, 행동 모방형 매크로의 본질적인 목표는 매크로 탐지에 걸리지 않으면서 사람이 감당할 수 없는 수준의 지속성과 일관성을 유지하기 위해서라고 볼 수 있다.
5. 탐지 및 방어 목표
매크로 대응의 목표는 단순히 자동화를 차단하는 데 있지 않다.
다음과 같은 관점에서 접근해야 한다.
- 정상 사용자 간의 공정성 보장
- 과도한 반복 요청으로부터 서비스 안정성 확보
- 매크로 사용 시 시스템 자원을 소모시키는 대신 매크로 사용자에게는 실질적인 이득이 없도록 설계
즉, 매크로를 완전히 제거하는 것보다 매크로의 반복 요청이 서버에 부담을 주기 전에 흡수·완화하고 결과적으로 매크로를 사용해도 의미 있는 결과를 얻지 못하도록 만드는 것이 현실적인 방어 전략이다.
'IT정리 > 보안 기초' 카테고리의 다른 글
| 4. 행동 기반 탐지 (1) | 2026.01.18 |
|---|---|
| 3. 트래픽/행동 레벨 보안 (1) | 2026.01.18 |
| 2-2. 비즈니스 로직 보안 - 매크로를 막기 위한 추가 로직 보안 (1) | 2026.01.18 |
| 2-1. 비즈니스 로직 보안 - 액션 토큰에 대해서 (0) | 2026.01.18 |
| 1. 웹 보안 기초: HTTP·세션·인증/인가·CSRF 개념 정리 (0) | 2026.01.18 |