
클립보드 하이재커: 붙여넣은 주소를 바꿔치기하는 악성코드
암호화폐 주소를 손으로 입력하는 사람은 없습니다. 거래소나 청구서, 메시지에서 주소를 복사해 지갑에 붙여넣고 보내기를 누르죠. 바로 이 습관을 노리고 만들어진 악성코드 계열이 통째로 존재합니다.
클립보드 하이재커(흔히 '클리퍼'라고 부릅니다)는 감염된 컴퓨터나 휴대폰에 조용히 숨어 사용자가 복사하는 내용을 지켜보다가, 암호화폐 주소처럼 보이는 것이 나타나는 순간 공격자 소유의 주소로 바꿔 놓습니다. 붙여넣고 보내면, 자금은 전혀 의도하지 않은 곳으로 가 버립니다.
클리퍼의 작동 방식
클립보드 접근은 평범한 기능입니다. 정상적인 앱도 상당수가 클립보드를 읽기 때문에, 같은 일을 하는 프로그램이 있어도 눈에 띄지 않습니다.
클리퍼는 여기에 한 단계를 더합니다. 복사된 텍스트를 하나하나 특정 패턴과 대조하는 것이죠. bc1, 1, 3으로 시작하는 문자열은 비트코인일 수 있고, 0x 뒤에 16진수 40자가 이어지면 EVM 주소인 식입니다. 일치하면 같은 유형의 공격자 주소로 바꿔치기합니다. 더 정교한 변종은 앞뒤 몇 글자가 사용자의 주소와 똑같은 대체 주소를 골라, 양 끝을 슬쩍 보면 맞는 것처럼 보이게 만듭니다.
바꿔치기는 복사와 붙여넣기 사이의 틈에서 일어납니다. 지갑은 완벽하게 유효한 주소(단지 엉뚱한 주소)를 받게 되고, 그 주소가 원래 달랐다는 사실을 알 방법이 없습니다.
감염 경로
클리퍼가 주인공인 경우는 드뭅니다. 대개 사용자가 직접 설치하기로 선택한 무언가에 끼워져 들어옵니다.
- 크랙 소프트웨어와 게임 치트. 불법 복제 도구는 가장 흔한 유포 경로 중 하나입니다.
- 가짜 지갑 앱과 '트레이딩 봇'. 남보다 유리해질 수 있다고 약속하는 소프트웨어는 바로 암호화폐를 옮기는 사람들에게 완벽한 미끼입니다.
- 악성 브라우저 확장 프로그램. 페이지와 클립보드를 읽을 권한이 있는 확장 프로그램은 브라우저 안에서 똑같은 일을 할 수 있습니다.
- 함정이 숨겨진 다운로드. 검색 광고나 모방 사이트를 통해 퍼지는 인기 앱의 가짜 설치 파일입니다.
시스템을 최신 상태로 유지하고, 공식 출처에서만 설치하고, 확장 프로그램을 줄이면 위험이 낮아집니다. 하지만 솔직하게 가정하자면, 범용 컴퓨터는 어떤 것이든 언젠가 침해될 수 있습니다. 그렇기 때문에 가장 중요한 방어 수단은 컴퓨터가 깨끗하다는 전제에 기대지 않습니다.
주소를 제대로 확인하는 법
클리퍼를 이기는 습관은 붙여넣은 주소를 원본과 대조하는 것, 그리고 양 끝보다 더 많이 확인하는 것입니다.
- 가운데 부분도 비교하세요. 비슷하게 생긴 주소는 앞부분과 뒷부분이 일치하도록 생성됩니다. 가운데의 문자열은 위조하기가 훨씬 어렵습니다.
- 붙여넣은 뒤에 확인하세요. 그 전이 아닙니다. 바꿔치기는 붙여넣는 순간 일어납니다. 복사한 내용을 보는 것으로는 아무것도 증명되지 않습니다.
- 원래 출처를 이용하세요. 복사본의 복사본이 아니라 거래소나 청구서 페이지에 표시된 주소와 비교하세요.
- 먼저 소액으로 테스트하세요. 큰 금액이나 처음 보내는 곳이라면 도착을 확인한 뒤 나머지를 보내세요.
- 신뢰할 수 있는 주소를 저장하세요. 한 번 검증한 주소록 항목은 클립보드를 거치는 도중에 바꿔치기될 수 없습니다.
이는 주소 포이즈닝을 막는 것과 같은 습관입니다. 주소 포이즈닝에서는 공격자가 클립보드를 다시 쓰는 대신 거래 내역에 비슷한 주소를 심어 둡니다. 두 경우 모두 공격자는 사용자가 앞뒤 몇 글자만 확인할 것이라는 데 기대를 겁니다.
두 번째 기기가 중요한 이유
컴퓨터에 있는 클리퍼는 그 컴퓨터가 사용자에게 보여주는 내용을 장악합니다. 같은 기기가 거래를 만들고 확인까지 요청한다면, 악성코드는 둘을 얼마든지 일치시킬 수 있습니다.
바로 여기서 SSP의 설계가 도움이 됩니다. SSP Wallet에서 보낼 때, 휴대폰의 SSP Key가 승인하기 전까지 거래는 완료되지 않습니다. SSP Key는 휴대폰 자체에서 거래를 디코딩하고, 컴퓨터가 주장하는 내용이 아니라 그 디코딩 결과를 바탕으로 수신자와 금액을 보여줍니다. 컴퓨터의 클리퍼는 붙여넣는 내용을 바꿀 수는 있어도, 휴대폰이 거래에서 읽어 내는 내용은 바꿀 수 없습니다.
따라서 정말 중요한 확인은 SSP Key에서 이루어집니다. 승인하기 전에 그곳에 표시된 수신자 주소를 원래 출처와 비교하세요. 두 기기 모델이 바로 이 순간을 위해 만들어졌으며, 앞 단계에서 무언가 잘못되었을 때 실제로 거래를 멈추는 것은 두 번째 기기에서의 승인입니다.
한계도 분명히 말해 둘 필요가 있습니다. SSP Key는 거래가 실제로 지급하는 주소를 보여주지만, 사용자가 어느 주소로 보내려고 했는지는 알 수 없습니다. 비교하지 않고 승인하면, 바꿔치기된 주소도 올바른 주소와 똑같이 유효하게 처리됩니다.
피해를 입었다면
확정된 거래는 되돌릴 수 없습니다. 자금이 바꿔치기된 주소로 갔다는 사실을 알게 되었다면:
- 감염된 기기 사용을 중단하세요. 민감한 작업에는 일절 쓰지 말고, 그 기기에서 입력하거나 복사한 모든 것이 노출되었다고 가정하세요.
- 그 기기에 키가 있었는지 확인하세요. 있었다면 깨끗한 기기에서 새로 만든 키로 남은 자금을 옮기세요.
- 결제하려던 거래소나 서비스에 신고하세요. 거래 ID를 보관해 두세요. 도난 자금이 동결 가능한 플랫폼에 도달하는 경우도 가끔 있습니다.
- 기기를 정리하거나 다시 설치하세요. 다시 신뢰하는 것은 그 다음입니다.
솔직한 요약
클리퍼는 암호 기술을 깨뜨리지 않습니다. 복사와 붙여넣기를 악용할 뿐입니다. 확인하는 주소가 악성코드가 장악한 바로 그 화면에 있을 때, 그리고 양 끝만 흘끗 볼 때 클리퍼가 이깁니다.
전체 주소를 원래 출처와 비교하고, 가운데 부분을 확인하고, 큰 금액은 테스트하고, 최종 비교는 별도의 기기에서 하세요. SSP에서는 그 기기가 SSP Key입니다. 설계된 목적대로 '두 번째 눈'으로 활용하세요. 그리고 주소 형식 자체가 낯설다면, 보내기 전에 주소 형식이 어떻게 다른지 알아 두는 것이 좋습니다.


