보안, 털려 본 사람의 보안 노트 #1
무슨 일이 있었나
예치해 둔 토큰을 하드웨어 지갑에 보관하고 있었습니다. 에어드랍을 받으려고 들어간 곳이 가짜 사이트였고, 거기서 서명 요청 하나에 승인을 눌렀습니다. 그 뒤 그 토큰 전부가 공격자 지갑으로 넘어갔습니다.
“나의 얼굴은 하얗게 질렸고 정말 끔찍한 경험이었다.”
2026-10-02 · 소급 기록에 남긴 나의 말
2년 넘게 지나 온체인 기록을 다시 추적하고 나서야 정확히 무슨 일이 있었는지 알게 됐습니다. 범인은 permit 서명이었습니다.
permit 서명은 무엇인가
토큰을 다른 주소가 대신 옮기게 하려면 보통 승인(approve) 트랜잭션을 내 지갑에서 직접 보내야 합니다. ERC-2612 permit은 이 승인을 트랜잭션 대신 서명된 메시지로 할 수 있게 만든 표준입니다. 서명 안에는 소유자, 받는 쪽(spender), 금액, 순번(nonce), 기한(deadline)이 들어갑니다.
중요한 점은 서명하는 순간에는 체인에 아무것도 올라가지 않는다는 것입니다. 서명은 그것을 손에 넣은 쪽이 제출할 때 비로소 체인에 올라가고, 그 시점은 그쪽이 고릅니다. MetaMask 안내도 이 점을 짚습니다. 오프체인 서명은 그것을 모은 쪽이 자기가 고른 시점에 쓸 수 있습니다.
내 서명에 들어 있던 것
- 받는 쪽: 처음 보는 컨트랙트였습니다.
- 금액: 최대값, 사실상 무제한이었습니다.
- 기한: 최대값, 사실상 무기한이었습니다.
공격자는 내 서명으로 permit을 실행하고 곧바로 토큰을 빼 갔습니다.
왜 아무 흔적이 없었나
내 지갑에서 나간 트랜잭션이 없으니 내가 보낸 기록에는 아무것도 없었습니다. 서명만 해 둔 permit은 제출되기 전까지 체인 위의 승인 목록에도 나타나지 않습니다. 승인 취소 도구로 미리 찾아 막을 수 없었던 이유입니다.
내 기억도 틀려 있었습니다. 나는 사고가 4월 중순쯤이라고 기억했지만 실제로는 그보다 약 4주 뒤였습니다. 어느 사이트에서 서명했는지, 하드웨어 지갑 화면에 서명 내용이 제대로 보였는지는 지금도 확인하지 못했습니다.
뒤이어 온 두 번째 공격
유출 뒤 얼마 지나지 않아 내 거래 내역에 이상한 기록이 하나 생겼습니다. 내가 자주 쓰던 송금 주소와 앞뒤 글자가 똑같은 가짜 주소로 토큰을 보낸 것처럼 보이는 기록이었습니다. 주소 위조(address poisoning)입니다. 다음 송금 때 거래 내역에서 주소를 복사하면 공격자 주소로 돈을 보내게 됩니다.
그 뒤 내가 한 것
그 뒤 남아 있던 승인을 0으로 돌리고 다른 자산도 옮겼습니다. 다른 지갑에서 빠진 것이 더 있는지는 아직 확인하지 못했습니다.
2026년 10월에 자금 흐름을 따라가 봤습니다. 빠져나간 토큰은 곧 다른 코인으로 바뀌고 다른 체인으로 옮겨진 뒤, 익명성 프로토콜로 들어가며 추적이 끊겼습니다. 스테이블코인 발행사가 동결할 수 있는 형태도 이미 아니었습니다. 회수할 기술적 경로는 없었습니다.
이 사건에서 정리한 서명 전 체크리스트
- 서명이나 승인 요청에 permit, Permit2, setApprovalForAll 같은 말이 보이면 일단 멈춥니다.
- 받는 쪽 주소가 내가 아는 공식 컨트랙트인지 확인합니다. 처음 보는 주소면 서명하지 않습니다.
- 금액이 무제한이거나 기한이 무기한이면 거절합니다.
- 하드웨어 지갑 화면에 내용 대신 해시만 보이면 서명하지 않습니다.
- 에어드랍, 클레임, 지갑 인증 페이지는 검색 결과나 DM이 아니라 공식 채널의 링크로만 들어갑니다.
- 큰 자산을 둔 지갑으로는 클레임이나 새 사이트 연결을 하지 않습니다. 용도별로 지갑을 나눕니다.
- 송금 주소는 거래 내역에서 복사하지 않습니다. 저장해 둔 주소록에서 고르고 전체 글자를 확인합니다.
다르게 볼 수 있는 점
- 문제는 하드웨어 지갑이 아니었습니다. 하드웨어 지갑은 키를 지켜 줄 뿐, 내가 승인한 서명까지 막아 주지는 않습니다.
- 이 체크리스트로 모든 피싱을 막을 수는 없습니다. 서명 방식은 계속 바뀌고, 공격도 그 변화를 따라옵니다.
- 서명한 사이트와 정확한 시점은 끝내 확인하지 못했습니다. 이 글의 일부는 온체인 기록으로 거꾸로 맞춘 추정입니다.
이 글은 내 기록과 생각을 정리한 것이며 투자 권유가 아닙니다. 보안 사고가 났다면 지갑 제공사의 공식 지원 채널과 관할 수사기관에 먼저 알리는 것이 좋습니다.
이 글을 쓴 시점(2026-11-04 15:55 KST), BTC 약 $77,600, ETH 약 $2,300 (작성 시점 시장가, 반올림)
출처
- ERC-2612: Permit Extension for EIP-20 Signed Approvals (Ethereum Improvement Proposals)
- MetaMask 지원 센터: Signature phishing
- Trust Wallet: What is an Address Poisoning Scam in Crypto?
- 나의 투자 기록: 서명 해킹 소급 기록과 온체인 추적 보충 (2026-10-02 작성, 비공개)
