웹 보안의 시작은 복잡한 기술이 아니라 HTTP 요청이 어떻게 만들어지고 서버가 그것을 어떻게 처리하는가를 이해하는 데서 시작된다.
매크로 공격도 결국 이 구조의 허점을 이용하기 때문에 기초 개념을 정확히 이해하는 것이 필수적이다.
1. HTTP 요청/응답 구조
웹은 결국 문자열로 된 HTTP 요청을 주고받는 구조이다.
즉, 모든 요청과 응답은 문자열 구조를 가지고 있다.
POST /apply
User-Agent: Chrome/123.0
Cookie: JSESSIONID=abcd
Content-Type: application/x-www-form-urlencoded
name=홍길동&time=0900
브라우저도 이런 요청을 보내고 매크로 프로그램도 똑같은 요청을 만들 수 있다.
- Header(예: User-Agent, Referer) → 얼마든지 조작 가능
- Body(폼 데이터) → 사용자가 원하는 값으로 변경 가능
때문에 사용자가 브라우저를 거쳐서 데이터를 요청했는지, 매크로 등 비인가 프로그램을 사용해서 데이터를 요청했는지 서버는 알 수 없다.
HTTPS는 요청을 암호화해 전송 중 도청·변조를 막을 뿐 요청이 사람인지 프로그램인지 구분하지 않는다
즉, 클라이언트가 보내는 모든 값은 신뢰할 수 없고 서버에서 다시 검증해야 한다.
2. 세션(Session)과 쿠키(Cookie)
세션(Session)
- 서버 내부에 저장되는 사용자 정보
- 클라이언트는 내용을 볼 수 없다
- 서버 메모리 또는 서버 저장소에 안전하게 존재
쿠키(Cookie)
- 세션 ID를 들고 있는 문자열 값
- 클라이언트가 보관한다
- 매크로 프로그램이 그대로 복사해 사용할 수 있다
- 탈취되면 세션 하이재킹 발생
세션 자체는 비교적 안전한데 그 세션의 ID는 쿠키에 저장된다.
매크로 프로그램이 세션ID를 갖게 되면 프로그램을 정상 사용자의 요청으로 인식하게 되고 HTTP의 통신은 문자열로 처리하기 때문에 프로그램을 활용해서 사람이 하지 못하는 속도로 요청을 할 수 있게 된다.
3. 인증(Authentication) vs 인가(Authorization)
인증(Authentication) 이란 누구인지 확인하는 절차를 말한다
예를들어
- 아이디/비밀번호 로그인
- 세션 생성
- 세션 ID를 쿠키로 내려줌
등이 인증 단계이다.
인가(Authorization)란 이 행동을 할 권한이 있는지 판단하는 절차를 말한다.
예를들어
- 지금 접수 가능한 시간인가
- 회원에게 허용된 조건인가
- 중복 예약인가
- 마감된 자원인가
등이 인가 단계이다. 매크로 프로그램의 경우 보통 인가 단계를 공격해서 프로그램 내부 허점을 이용해 이익을 취한다.
인가 단계에서의 보안을 비즈니스 로직 보안이라고 하는데
- 액션 토큰 검증
- 정상 화면 흐름 여부
- 회원 권한 제한 조건
- 기타 velidation check
등이 있다.
4. CSRF/토큰 개념과 매크로 방어 연결
CSRF 토큰은 원래 다른 사이트에서 유도된 요청을 막기 위한 장치다.
CSRF 토큰은 다른 사이트에서 유도된 요청을 막을 수 있는 장치이지만 매크로는 브라우저를 대신하지 않고 직접 HTTP 요청을 생성하기 때문에 CSRF 토큰만으로 막을 수 없다.
매크로 방어에서는 이 개념을 확장해 액션 단위 토큰(Action Token)으로 사용한다.
액션 단위 토큰에는
- 사용자 정보(사용자를 특정짓기 위해서)
- 요청 대상(다른 자원에서 재사용 방지)
- 발급 시각(오래된 토큰 사용 방지)(생성 시점 검즘)(기록용)(만료시간 계산용)
- 만료 시간(오래된 토큰 사용 방지)(공격자 재사용 차단)(제한용)
- 1회성(동일한 요청이라도 한번만 보낼 수 있도록)
- 서버 성명(사용자의 토큰 변조 방지)
- 토큰 발급 맥락(정상적인 절차를 타고 왔는지)(2장에서 배울 내용)
등이 들어가있다.
'IT정리 > 보안 기초' 카테고리의 다른 글
| 4. 행동 기반 탐지 (1) | 2026.01.18 |
|---|---|
| 3. 트래픽/행동 레벨 보안 (1) | 2026.01.18 |
| 2-2. 비즈니스 로직 보안 - 매크로를 막기 위한 추가 로직 보안 (1) | 2026.01.18 |
| 2-1. 비즈니스 로직 보안 - 액션 토큰에 대해서 (0) | 2026.01.18 |
| 0. 매크로란 (0) | 2026.01.18 |