개인키 탈취 없이 승인 절차 우회
국내 거래소도 잇단 해킹에 보안 비상
보상 재원 격차에 대응력 우려
[블록미디어 오수환 기자] 세계 최대 디지털자산(가상자산) 거래소 바이낸스에서 발생한 8조원대 해킹 사고를 계기로 국내 거래소의 보안 및 사고 대응 체계에도 우려가 커지고 있다. 개인키 대신 거래 승인 절차를 노린 공격 수법이 드러나면서, 콜드월렛 보관 비율 중심의 현행 규제를 보완해야 한다는 지적이 나온다.
2일 금융위원회는 업비트와 빗썸, 코인원 등 원화 거래소와 코인마켓 거래소 관계자들을 불러 긴급 보안 점검 회의를 열었다. 바이낸스 해킹 사고를 계기로 국내 거래소의 보안 관리 현황을 점검하고 이용자 자산 보호 방안을 논의하기 위해서다.
바이낸스는 지난달 29일 해킹으로 약 63억달러(약 8조4000억원) 규모의 디지털자산이 유출됐다고 밝혔다. 지난해 2월 바이비트 사고(약 15억달러)의 네 배를 웃도는 역대 최대 규모다. 바이낸스는 초기 조사에서 개발·운영 담당 엔지니어의 PC가 악성코드에 감염된 뒤, 공격자가 내부 승인 시스템에 침투해 무단 출금을 실행한 것으로 파악했다.
개인키 탈취 없이 8조원 유출…거래 승인·서명 체계 허점 노려
이번 사고의 핵심은 해커가 개인키를 직접 빼내지 않고도 대규모 자산을 빼돌렸다는 점이다. 기술 분석 보고서를 발간한 타이거리서치에 따르면 해커는 이더리움의 권한 위임 표준인 ‘EIP-7702’를 악용해 거래 승인 절차를 우회했다.
EIP-7702는 지갑 주인이 위임장에 한 번 서명하면, 지정한 프로그램(스마트컨트랙트)이 주인 대신 지갑 속 자산을 보내거나 거래할 수 있게 해주는 기능이다. 여러 거래를 한 번에 처리할 수 있어 편리하다는 이유로 지난해 5월 도입됐다. 문제는 위임장에 서명하는 순간 지갑 안의 모든 자산을 그 프로그램이 마음대로 다룰 수 있게 된다는 점이다.
해커는 바로 이 점을 노렸다. 바이낸스 내부 시스템에 침투한 해커는 출금 요청 대신 위임장을 이용했다. 위임장에는 받는 주소도 금액도 없어 출금 검사에 걸리지 않았다.
다만 위임장은 지갑의 거래 일련번호와 맞아야 효력이 생긴다. 이 번호는 지갑에서 거래가 한 건 나갈 때마다 1씩 올라가는데, 당시 바이낸스는 이 지갑으로 고객 출금을 쉴 새 없이 처리하고 있어 해커가 정확한 번호를 맞히기 어려웠다. 이더스캔 기록을 보면 해커는 번호를 하나씩 달리한 위임장 50건을 한꺼번에 제출했고, 이 중 번호가 맞은 1건이 통하면서 핫월렛의 자산을 옮길 권한이 해커 프로그램으로 넘어갔다.
이후로는 바이낸스의 서명도 출금 검사도 필요 없었다. 해커는 3분여 뒤 프로그램을 실행했고, 단 한 번의 거래로 이더리움 약 16만7464개와 테더(USDT) 약 16억1500만달러어치 등 63종의 토큰이 빠져나갔다. 바이낸스의 보안 체계가 ‘돈을 보내라‘는 요청에 대해서는 철저한 확인을 했지만 ‘권한을 넘기라‘는 요청은 걸러내지 못한 셈이다.
이 같은 수법은 처음이 아니다. 개인키를 훔치지 않고 내부 승인자를 속이거나 시스템 권한을 악용해 대규모 자산을 빼내는 공격은 앞서 바이비트 사고에서도 확인됐다.
윤승식 타이거리서치 선임연구원은 “최근 대형 거래소 해킹은 개인키를 직접 탈취하기보다 거래 승인과 서명을 처리하는 시스템을 노리는 방식으로 진화하고 있다”며 “해커가 직원 PC나 내부 서버에 침투해 정상적인 출금 요청으로 위장한 거래를 제출하거나 승인 화면을 조작하면 개인키를 훔치지 않고도 자산을 빼돌릴 수 있다”고 설명했다.
이어 “바이비트와 DMM비트코인 해킹에서도 직원을 속여 내부 시스템에 접근한 뒤 거래 승인 절차를 악용하는 수법이 사용됐다”며 “콜드월렛이나 다중서명 체계를 갖추더라도 위조된 거래 요청을 걸러내지 못하면 자산 탈취를 막기 어렵다”고 지적했다.
거래소별 사고 대응 여력 천차만별
국내 거래소 역시 핫월렛과 내부망을 노린 공격에서 자유롭지 않다. 지난해 11월 업비트에서 발생한 약 445억원 규모의 솔라나 계열 자산 유출 사고가 대표적이다. 당시 해커는 공개된 지갑 거래 내역으로 개인키를 추정할 수 있는 구조적 취약점을 파고들었다. 업비트는 전체 고객 자산의 98% 이상을 콜드월렛에 보관해 대형 피해는 면했지만, 일상 입출금을 위해 온라인에 연결해 둔 핫월렛이 뚫리면서 단 54분 만에 24종의 자산을 탈취당했다.
공격 범위도 개별 지갑을 넘어 사내 업무 시스템과 직원 계정 등 거래소 내부망 전반으로 넓어지고 있다. 빗썸은 사내 모바일 그룹웨어 해킹으로 고객 6444명과 임직원 715명의 정보가 유출됐다. 중소형 거래소 프라뱅은 개인정보 유출에 이어 핫월렛 자산까지 탈취당해 서비스 중단을 선언했고, 고팍스에서도 비정상 접근으로 정보가 유출됐다. 해커들의 표적이 자산 보관 지갑에서 거래소의 내부 접근 통제와 승인 시스템 전반으로 옮겨가고 있다는 의미다.
이처럼 위협이 승인 인프라 전반으로 넓어지면서, 콜드월렛 보관 비율 중심의 현행 기준을 보완할 필요가 있다는 목소리도 나온다. 지난 9월 말 기준 국내 5대 원화 거래소가 관리하는 고객 자산은 총 80조4175억원이다. 5곳 모두 법정 콜드월렛 보관 비율(80%)은 충족(80.54~99.17%)하고 있지만, 입출금을 위해 핫월렛에 보관 중인 자산도 수조원 규모다.
더구나 핫월렛이나 내부 승인 시스템이 침해되면 콜드월렛 보관 자산까지 위험에 노출될 수 있어, 보관 비율만으로 전체 안전을 장담하기는 어렵다.
이 때문에 사전 방어와 더불어 사후 대응력도 중요해지고 있다. 방어망을 정교하게 갖추더라도 침해 사고 가능성을 완전히 배제하기는 쉽지 않은 만큼, 손실을 보전할 준비금과 보험이 이용자 보호의 마지막 안전장치 역할을 해야 한다. 그러나 지난 9월 말 기준 5대 거래소의 자체 준비금과 보험 보상한도를 합친 금액은 총 1854억원으로, 전체 관리 자산의 약 0.23%에 그쳤다.
그나마 이 재원도 거래소 체급에 따라 편차가 크다. 업비트는 자체 준비금 800억원을 적립했고 빗썸은 534억원, 코인원은 300억원, 디지털엑스는 190억원을 확보했다.
반면 고팍스는 자체 준비금 없이 보상한도 30억원의 보험에만 가입해 업비트와의 격차가 27배에 달했다. 보험은 회사가 즉시 집행할 수 있는 자체 준비금과 달리 까다로운 보상 요건과 심사 절차를 거쳐야 한다. 재무 여력이 부족한 중소형 거래소일수록 실제 사고가 났을 때 이용자 피해를 제대로 보전하기 어려운 셈이다.
이에 정치권과 학계에서는 제도를 보완해야 한다는 목소리가 나온다. 국회 정무위원회 소속 민병덕 더불어민주당 의원은 “디지털자산 기본법 입법 과정에서 거래소 체급에 맞는 최소 보상 기준과 실효성 있는 준비금·보험 기준을 명확히 세워야 한다”고 강조했다.
김승주 고려대 정보보호대학원 교수는 “정부의 ‘범부처 정보보호 종합대책‘에 따른 자산 전수조사 지침이 현장에서 제대로 이행되고 있는지 점검하고, AI 해킹 시대에 맞춰 조직 내 미인식 시스템과 자산까지 체계적으로 관리하는 보안 체질 개선이 시급하다“고 조언했다.