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

04.02.2019

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

리플레이 공격(Replay Attack)이란 무엇일까요?

리플레이 공격이라고도 하는 플레이백(Playback) 공격은 악성 해커가 네트워크를 통해 유효한 데이터 전송을 가로 챈 후 반복하는 사이버 공격입니다. 원래 데이터 (일반적으로 권한이 부여 된 사용자에게서 가로챔)의 유효성으로 인해 네트워크의 보안 프로토콜은 해커의 공격을 유효한 데이터인 전송인 것처럼 여기게 됩니다. 원본 메시지를 가로채어 그대로 재전송하므로 해커는 데이터를 해독하지 않아도 되는 리플레이 공격을 사용합니다.


해커들은 리플레이 공격(Replay Attack)으로 무엇을 할 수 있을까요?

리플레이 공격은 겉보기에 유효한 자격 증명을 전달하여 보호 된 네트워크의 저장된 정보에 액세스하는 데 사용할 수 있습니다. 또한, 중복 거래를 하도록 금융 기관을 속여 공격자가 공격대상의 계좌에서 직접 을 인출해낼 수 있습니다. 경우에 따라 해커는 서로 다른 암호화된 메시지의 일부를 결합하여 그 결과로 생긴 암호문을 네트워크에 전달하는 데, 소위 '잘라내기-붙여넣기 공격'이라고 합니다. 이러한 공격에 대한 네트워크의 반응은 종종 해커에게 시스템을 악용하는 데 사용할 수있는 유용한 정보를 제공하기도 합니다.

이와 관련된 위험성에도 불구하고 해커가 리플레이 공격만으로 달성 할 수있는 것에는 한계가 있습니다. 공격자는 네트워크가 거부하지 않고 전송되는 데이터를 변경할 수 없으므로 과거 작업 반복의 공격의 효과가 확연히 떨어지게 됩니다. 따라서 이러한 공격들은 상대적으로 방어하기 쉽습니다. 데이터 전송에 타임 스탬프를 추가하는 기본적인 방어정책 만으로도 리플레이 공격의 시도를 막을 수 있습니다. 또한 서버는 반복 된 메시지를 캐시에 저장한 후 특정 반복 횟수를 제한하여 공격자가 빠르고 성공적인 리플레이 메시지를 통한 연속적인 공격 시도 횟수를 제한 할 수 있습니다.


암호화폐의 세계에서 리플레이 공격(Replay Attack)이 문제가 되는 이유

중요한 결점이 되는 것은 아니지만, 리플레이 공격은 특히 암호화폐 거래 및 블록 체인 장부의 환경과 관련이 있습니다. 그 이유는 블록 체인 장부가 때때로 하드 포크 (hard forks)로 알려진 프로토콜 변경이나 업그레이드를 거쳐야하기 때문입니다. 하드 포크를 진행하면 이전 장부는 소프트웨어의 이전 버전과 새로 업데이트 된 버전으로 나누어져 분할됩니다. 일부 하드 포크는 장부만을 업그레이드하기위한 것이지만 다른 종류의 포크는 완전히 새로운 암호화폐를 발행하게 됩니다. 후자의 하드 포크 중 가장 잘 알려진 사례 중 하나는 비트코인 캐쉬(Bitcoin Cash)가 2017 년 8월 1일 대장격인 비트코인(Bitcoin) 장부로부터 포크를 할 수 있게 진행하는 업그레이드입니다.

 하드 포크가 진행되면 이론적으로 공격자가 블록 체인 장부에 대한 리플레이 공격이 가능하게 됩니다.하드 포크 이전에 유효했던 지갑을 가진 사람이 이전 장부에서 처리 한 거래는 다른 장부 에서도 유효하게 되므로 이는 결과적으로 한 장부를 통해 다른 사람으로부터 일정량의 암호화폐를 받은 사람은 다른 장부로 전환하여 거래를 복제하여 허위로 동일한 양의 암호화폐를 자신의 계정으로 두 번째 전송을 할 수 있게 됩니다. 자신의 지갑이 공유된 장부 기록의 일부가 아니기 때문에 하드 포크가 발생한 후 블록 체인을 이용하는 사용자는 이러한 공격에 취약하지 않습니다.


블록체인은 이러한 공격으로부터 어떻게 벗어날 수 있을까요?

포크된 블록 체인 장부의 리플레이 공격에 대한 취약성은 유효한 고려 사항이지만 대부분의 하드 포크는 이러한 공격이 성공하지 못하도록 특별히 고안된 보안 프로토콜을 포함합니다. 블록 체인에 대한 리플레이 공격에 대한 조치는 두가지 강한 리플레이 보호와 옵트인(선택적 동의) 리플레이 보호로 나뉩니다. 강한 리플레이 방지 기능을 사용하면 하드 포크에서 나온 새로운 장부에 특수 표시가 추가되어 거래가 이전 장부, 그리고 그 반대로도 유효성을 잃게 됩니다.이는 비트코인 캐쉬(Bitcoin Cash)가 비트코인(Bitcoin)에서 분기 할 때 구현 된 보호 유형입니다.

하드 포크가 발생하는 순간 강한 리플레이 방지 기능이 자동으로 실행됩니다. 그러나 옵트인 리플레이 보호 기능을 사용하려면 사용자가 거래를 수동으로 변경하여 이러한 트랜잭션을 리플레이할 수 없도록해야합니다. 옵트인 보호는 하드 포크가 암호화폐의 주요 장부로부터 완전히 분리되는 것이 아니라 업그레이드하는 경우에 유용할 수 있습니다.

이러한 장부관련 솔루션 외에도 개별 사용자는 리플레이 공격의 대상이 되지 않도록 스스로 조치를 취할 수 있습니다. 이를 수행하는 한 가지 방법은 장부가 특정 수의 블록에 도달 할 때까지 암호화폐가 전송되는 것을 막아서 암호화폐 단위를 네트워크에서 검증하는 것과 관련된 리플레이 공격을 방지하는 것입니다. 그러나 모든 지갑이나 장부가 이 기능을 제공하는 것은 아닙니다.


마무리 지으며

리플레이 공격은 성공시 네트워크 보안에 대한 실질적인 위협이 됩니다. 다른 유형의 공격들과는 달리 리플레이 공격은 데이터 해독에 의존하지 않으므로 암호화 프로토콜에 가로막힌 악성 해커들에게 효과적인 공격수단으로 쓰입니다. 업그레이드하거나 분할하는 데 사용되는 하드 포크로 인해, 블록체인 장부들은 이런 종류의 사이버 공격에 특히 취약합니다. 그러나 블록 체인 시스템을 이들로부터 보호하는 데 상당히 효과적인 강력한 솔루션이 존재합니다. 특히 강한 리플레이 보호 기능을 사용하면 공격자가 하드 포크 (hard fork)가 발생한 후의 트랜잭션을 복제 할 수 없음을 보장해줍니다.

Loading