Computer >> 컴퓨터 >  >> 네트워킹 >> 네트워크 보안

리플레이 공격(Replay Attack)이란? 사이버 보안 핵심 개념 총정리

리플레이 공격이란 무엇인가?

리플레이 공격(replay attack)은 사이버 범죄자가 안전한 네트워크 통신을 도청하고 가로챈 뒤, 이를 악의적으로 지연시키거나 다시 전송하여 수신자가 해커가 의도한 행동을 하도록 속이는 공격 기법입니다. 즉, 정상적인 사용자가 보낸 유효한 데이터를 그대로 복제해 재전송함으로써 공격자가 네트워크에 접근하거나, 얻기 어려운 정보를 획득하거나, 중복 거래를 발생시킬 수 있습니다.

리플레이 공격은 '재생 공격(playback attack)'이라고도 불리며, 유효한 데이터 전송을 반복하거나 지연시켜 네트워크상에 허위 데이터를 만들어내는 것이 특징입니다.

리플레이 공격의 작동 원리

리플레이 공격은 비교적 단순한 절차로 수행될 수 있습니다. 공격자는 정당한 사용자와 웹사이트 간의 데이터 전송을 가로채 저장한 후, 나중에 동일한 데이터를 다시 전송합니다. 이때 데이터 패킷은 전송 과정에서 전혀 변경되지 않은 것처럼 보이기 때문에 엔드포인트 서버는 이를 정상적인 요청으로 착각하게 됩니다.

예를 들어, 공격자는 이메일을 단순히 다시 보내는 것만으로도 공격에 성공할 수 있습니다. 또한 인증 메시지를 반복해서 재전송함으로써 시스템 자원에 대한 접근 권한을 획득할 수도 있습니다.

리플레이 공격과 중간자(MITM) 공격의 관계

리플레이 공격은 MITM 공격인가?

리플레이 공격은 중간자(man-in-the-middle, MITM) 공격의 한 형태로 분류됩니다. 실제로 리플레이 공격은 피어 투 피어(P2P) 통신을 침해하는 경로 중 하나로, 인증 및 키 배포 프로토콜의 보안을 위협합니다.

다만 두 공격에는 차이점도 존재합니다. MITM 공격은 일반적으로 두 지점 간의 인터넷 트래픽을 가로채는 모든 유형의 해킹을 지칭하는 포괄적인 용어입니다. 반면 리플레이 공격은 이름 그대로 공격자가 트래픽을 가로채 저장한 후 다시 전송한다는 점에서 구체적인 공격 기법에 해당합니다.

리플레이 공격과 MITM 공격의 차이

MITM 공격은 통신 양단 사이에서 공격자가 트래픽을 가로채고 조작하는 다양한 행위를 포괄하지만, 리플레이 공격은 가로챈 데이터를 '그대로 재전송'하는 데 초점이 맞춰져 있습니다. 또한 리플렉션(reflection) 공격은 이론적으로 릴레이(relay) 공격의 특수 사례로 하나의 장치만으로 수행 가능하지만, 실제로는 서로 상당히 다른 성격을 지닙니다.

세션 리플레이 공격(Session Replay Attack)

세션 리플레이 공격은 리플레이 공격, 재생 공격과 동의어로 사용되는 용어입니다. 이 공격에서 해커는 세션을 가로채 고유한 세션 ID(쿠키, URL 또는 폼 필드에 저장됨)를 탈취할 수 있습니다. 컴퓨터 해커는 간단한 3단계 절차를 통해 정당한 사용자와 웹사이트 간의 데이터 전송을 지연시키거나 반복 재생함으로써 세션을 탈취합니다.

패스워드 리플레이 공격

패스워드 리플레이 공격에서는 데이터 패킷이 가로채어 기록된 후 재생됩니다. 이때 전송된 데이터 패킷은 엔드포인트 서버에 도달할 때까지 외관상 전혀 변하지 않기 때문에, 서버 입장에서는 정상적인 로그인 시도와 구별하기가 매우 어렵습니다.

억제-리플레이 공격(Suppress-Replay Attack)

공격자는 메시지를 가로채 재전송하는 억제-리플레이(suppress-replay) 공격도 수행할 수 있습니다. 이 공격은 메시지가 잘못된 시점에 수신된 것처럼 보이게 만들어 시스템의 판단을 흐리는 것이 특징입니다.

바이오메트릭 리플레이 공격

바이오메트릭 리플레이 공격은 개인의 생체 정보와 관련된 데이터(예: 생체 템플릿)를 도용하여 해당 개인으로 가장함으로써 기밀 데이터에 접근하는 공격입니다. 생체 인증 시스템 역시 리플레이 공격의 표적이 될 수 있음을 보여주는 사례입니다.

리플레이 공격의 예시

대표적인 리플레이 공격의 예는 다음과 같습니다.

  • 네트워크에 이전에 정당한 사용자가 보냈던 메시지를 다시 전송하는 경우
  • 공격자가 인증 메시지를 반복적으로 재전송하여 시스템 자원에 접근하는 경우
  • 탈취한 세션 ID를 사용해 정상 사용자인 것처럼 위장하는 경우

리플레이 공격 방어 방법

세션 ID 활용

리플레이 공격을 방지하는 가장 효과적인 방법은 암호화된 각 구성 요소에 세션 ID를 태그로 부착하는 것입니다. 이러한 솔루션들은 서로 의존성이 없기 때문에 취약점이 더 적다는 장점이 있습니다.

시간 제한 및 프로세스 제한 세션 키 생성

유효 기간이 있는(time-bound) 랜덤 세션 키와 프로세스에 종속된(process-bound) 세션 키를 생성하는 것도 리플레이 공격 예방에 큰 도움이 됩니다.

일회성 인증 출력 사용

인증자(authenticator)의 출력값을 단 한 번의 인증에만 유효하도록 설계하면, 인증 프로세스가 리플레이 공격을 효과적으로 회피할 수 있습니다.

마무리

리플레이 공격은 겉보기에 단순해 보이지만, 인증 체계와 세션 관리의 허점을 노리는 위험한 공격 기법입니다. 세션 ID 부여, 시간 제한 키 사용, 일회성 인증 등 다층적인 방어 전략을 통해 이러한 공격으로부터 시스템을 보호하는 것이 중요합니다.