IT Solutions/Security

가상화폐와 블록체인 해킹 사례

2018.11.26 09:30

2017년 10월 3일 자 경향신문은 “가상화폐 ‘광풍’은 어디서 오는 걸까?”라는 제목으로 국내뿐만 아니라 전 세계 투자자들의 마음을 사로잡은 가상화폐 열풍에 대한 기대와 걱정을 담은 기사를 게시했습니다. 기사의 도입부는 직장인 강모 씨(37)가 1만 원에 산 이더리움을 30만 원에 팔아 불과 1년 만에 8천만 원의 차익을 얻었다는 사례를 언급하고 있습니다. 또한 기사는 한국 내 가상화폐의 인기를 다음과 같이 소개하고 있습니다.


“최근 한국 사회에서 P2P(개인간) 대출, 크라우드 펀딩 등 새로운 금융투자 상품들이 인기를 끌고 있지만, 그중 단연 높은 수익률로 이목을 끄는 것은 비트코인•이더리움 등 가상화폐이다. 특히 최근 1년 사이에 ‘광풍’에 비유될 정도로 인기를 끌고 있다. 국내 3대 가상화폐 거래소인 빗썸•코빗•코인원은 모두 거래량 기준 세계 상위 10위 거래소에 포함된다. 국내 최대 거래소인 빗썸의 거래량은 ‘가상화폐 광풍’이 불면서 한때 전 세계 거래소 가운데 1위를 기록하기도 했다.”


그로부터 1년이 지난 현재, 정부의 규제 움직임과 무분별한 투자가 낳은 부작용으로 인해 광적인 인기는 줄었지만, 가상화폐의 투자 전망이나 세계 각국의 규제 동향, 가상화폐 거래소 해킹 뉴스는 심심치 않게 보도되고 있습니다.


이러한 가상화폐의 근간이 되는 기술이 바로 블록체인입니다. 블록체인은 가상화폐뿐만 아니라, 데이터를 무결하게 보관하거나 기록에 대한 어떠한 조작도 없음을 증명해야 하는 분야에서 활용 가능합니다. 예를 들면 신분증명, 전자 투표, 자금 추적, 식품유통 관리, 의료 정보 공유, 전력 거래, 물류 등 다양한 산업에 적용되어 업무의 투명성과 신뢰성을 높일 수 있을 것으로 기대하고 있습니다.



이렇듯 인터넷 이상으로 우리의 삶을 바꿀 수 있는 잠재력을 지닌 가상화폐와 블록체인 기술이 믿고 사용할 만큼 안전한지 알아보려고 합니다. 지금부터 알려진 가상화폐와 블록체인의 해킹 사례를 기반으로 보안 관점의 문제점을 살펴보도록 하겠습니다.


 가상화폐 거래소 해킹 사례


가상화폐 거래소는 비트코인의 치솟는 인기에 비례하여 수많은 해커의 공격을 빈번하게 받았으며, 그 가운데에는 성공적인 공격도 있었습니다. 많게는 수천억 원의 피해가 발생하고, 그러한 사건으로 인해 가상화폐 신뢰성에 큰 타격을 주었습니다. 다소 충격적인 주요 거래소 해킹 사례를 살펴보면 다음과 같습니다.


l 가상화폐 거래소 해킹사고 리스트


● 최악의 거래소 해킹 사례, 코인체크 [각주:1]

일본의 가상화폐 거래소인 코인체크가 2018년 1월 26일 해킹 공격으로 580억 엔(약 5,700억 원) 상당의 가상화폐를 도난당했습니다. 이는 해킹으로 인한 가상화폐 피해로 사상 최대 규모이며, 피해자가 26만 명에 달합니다. 최초로 유출되기 시작한 지 불과 19분 만에 피해액의 99%가 탈취당한 것으로 나타났습니다. 유출 과정을 살펴보면 다음과 같습니다.

  • 해커가 코인체크 직원으로 위장하여,

  • 1차: 코인체크 고객 계좌에서 10Xem(약 1,100억 엔) 가상화폐 뉴이코노미무브먼트(NEM)이 외부 소재 익명의 가상통화 계좌로 옮겨짐

  • 2차: 576억 엔(약 5,600억 원) 가치 가상화폐를 외부 계좌로 계속 유출, 19분 사이에 99% 탈취

  • 3차: 2차로 훔친 가상화폐를 8개 계좌에 분산

  • 추가로 3회에 걸쳐: 1억~3억 엔 가치의 남은 뉴이코노미무브먼트(NEM) 전량 탈취

코인체크는 11시간이 지난 후 사태를 파악하고 뉴이코노미무브먼트(NEM) 거래와 모든 통화의 지급을 정지했으나, 발견 당시 해커는 훔친 가상화폐를 수십 개의 계좌로 쪼개 감시를 피하고, 이미 다른 가상화폐로 교환했을 것으로 예측했습니다.


이러한 코인체크의 치명적인 실수는 가상화폐의 소유자 본인임을 증명하는 데 필요한 개인 키를 인터넷과 완전히 분리된 오프라인 저장소인 ‘콜드 월렛’에 보관하지 않고, 인터넷에 연결된 상태의 ‘핫 월렛’에 보관하고 있었을 뿐 아니라 키를 분산 보관하는 ‘다중 서명(Multi-Signature)’ 시스템을 갖추지 않은 것이라고 보고되었습니다.


 블록체인 코드 공격 사례


● DAO(Decentralized Autonomous Organization, 탈중앙화된 자율 조직) 해킹[각주:2] 

DAO는 2016년 5월에 ICO를 통해 생겨난, 이더리움 스마트 컨트랙트 프로젝트입니다. DAO는 당시 ICO 사상 최대의 모금액인 1,600만 달러(180억 원)를 모금하며 세간의 주목을 받았습니다. DAO는 코드만으로 돌아가는 무형의 조직, 즉 주인 없는 공동출자 회사였습니다. 실제 주소나, 경영진이 없고, 업무가 코드로 수행되어, 누구나 깃허브(Github)에서 코드를 통해 업무 진행 내용을 볼 수 있었습니다.


DAO는 DAO 토큰으로 경영하고, 토큰보유자들이 보유한 토큰에 따라 투표권을 행사하고, 배당금을 분배하며, 계약자의 제안서가 20% 이상 표를 받으면 프로젝트가 승인되는 구조였습니다. 토큰보유자와 계약자 사이에 11명의 중재인이 있어서 계약자와 그들이 제안한 코드를 검증하고, DAO 화이트리스트에 등록합니다. 중재인은 토큰보유자들의 투표에 의해 임명되거나 해고될 수 있습니다.


2016년 6월 17일 재귀호출 버그(Recursive Call Vulnerability)를 이용한 해커의 무한 환불 공격에 243만 Ether(510억 원)를 해킹 당했습니다. 재귀호출 버그를 이용한 무한 환불 공격을 요약하면 다음과 같습니다.


l DAO 무한 환불 공격 [각주:3]


한 번 더 설명을 덧붙이면 다음과 같습니다.

  • DAO 토큰은 'split'이라는 스마트 컨트랙트(일종의 프로그램)를 가지고 있음

  • 'split'은 보유한 DAO 토큰을 일정 비율의 Ether로 되돌려 받는 투자금 반환 시스템 

  • 'split'에는 치명적인 결함이 있었고, 해커들은 이 기능을 공격하여 Ether를 탈취함

  • 'split'의 결함은 투자금 반환 요청 이후 '일정 시간'이 지난 뒤에 잔고가 반환요청 금액만큼 감소함

  • 해커들은 자신의 잔고가 감소하기 전, 일정 시간 동안 투자금에 대한 반환요청을 무한대로 반복함 (재귀호출 공격)

DAO처럼 블록체인 코드 취약점을 공격하려면, 스마트 컨트랙트 기능 활용과 재귀호출 버그(Recursive Call Vulnerability)를 주입하는 등의 높은 스킬을 요구합니다.


한편 해커가 인출한 금액은 자기 계좌에서 빼내 갈 수 없었습니다. split으로 인출한 투자금은 DAO의 서브 카테고리인 Child-DAO에 보관되는데, 이 투자금을 인출하기 위해서는 27일 후에나 가능했기 때문입니다.


이 사건에 대한 이더리움의 대응은 재귀호출 버그를 수정하고 해커가 훔쳐 간 Child-DAO의 투자금을 동결하는 소프트포크[각주:4]와 이더리움 블록체인의 기록을 수정하여 해커의 행위를 전면으로 무효화 시키고, Ether를 토큰 보유자에게 되돌려주는 하드포크 두 가지 방법이 있었습니다. 이더리움 재단은 이 두 개 방법 중 하드포크 시행으로 최종 결정했습니다.


모든 암호화 프로그램이 그렇듯이 이론적으로 안전성이 검증된 암호 알고리즘보다 해당 알고리즘을 구현한 프로그램이 훨씬 더 취약하기 마련입니다. 일반적인 솔루션에서 발견할 수 있는 취약점이, 허술하게 구현된 블록체인의 스마트 컨트랙트에서도 동일하게 발견될 수 있는 것입니다.


 블록체인 노드 공격 사례


● 51% 공격

 

l 51% 공격 [각주:5]


51% 공격은 블록체인 네트워크에서 특정 집단이나 개인이 전체 절반이 넘는 컴퓨팅 연산 자원(해시파워)을 확보하여, 원장 기록을 위•변조하는 행위를 의미합니다. 블록체인에서 절반 이상(51%) 노드 동의가 있을 경우 정보 변경이 가능하다는 점을 노리는 것입니다. 이를 통해 블록체인을 조작하거나 이중지불 공격을 수행할 수 있는 것을 의미합니다.


2018년 5월 비트코인 골드에 51% 공격이 발생해 이중지불 피해를 입었으며, 이 공격으로 인해 해커 지갑 주소로 비트코인 골드 38만 8,200개가 전송되어, 거래소에서 받은 피해는 1,860만 달러(200억 원) 이상이 될 것으로 보고되었습니다. 이후 비트코인 골드는 미국 거래소 비트렉스 및 국내 거래소 업비트에서 상장폐지 되었습니다.


비트코인 골드과 함께, 모나코인, 젠캐시, 버지코인, 라이트코인 캐시까지 같은 5월에 51% 공격을 당했습니다. 젠캐시의 경우 세 차례나 51% 공격을 받아, 2만1천 개(4천만 원) 젠캐시를 탈취당했습니다. 이러한 해킹 방식은 블록의 검증과정(confirmation)에서 일어난 것이며 규모가 작은 가상화폐들은 언제든지 이러한 공격에 노출될 수 있습니다.


채굴 시장의 관련 데이터를 모아 51% 공격에 드는 비용과 예상 수익을 블록체인 별로 분석해 정리해 놓은 Crypto 51이라는 웹사이트도 생겼습니다. 예를 들면 바이트코인(bytecoin)은 CPU 해시파워를 빌려 공격할 경우 채 100만 원도 안 되는 돈으로 공격을 감행할 수 있다고 나와 있습니다.



반면에 비트코인이나 이더리움처럼 규모가 큰 가상화폐는 51% 공격으로부터 훨씬 안전할 것으로 예상됩니다. 51%의 해시파워를 모으려면 웬만한 채굴 시장의 가능한 해시파워를 모두 모아도 어림도 없기 때문입니다.


해커들의 잠재적인 공격에 방어하는 방법 가운데 하나는 거래 기록이 오래된 가상화폐만 확인하고 취급하는 것입니다. 즉, 거래 기록이 많아서 블록이 많이 쌓여있는 거래만 인정하는 것인데 이를 확인(Confirmation) 절차라고 부릅니다.


일례로, 비트코인골드가 공격을 받았을 때 거래소들은 최소 5번만 확인을 거치면 거래를 승인하게 했습니다. 해커들은 취합한 해시파워를 활용해 이를 어렵지 않게 뚫어냈는데, 51% 공격이 있은 후, 해당 거래소들은 최소 확인 횟수를 5배 이상으로 늘렸고, 이후에는 51% 공격이 더 이상 일어나지 않았습니다.


 블록체인 Wallet 공격 사례


● 빗썸 해킹, 핫월렛 공격 [각주:6]

오프라인 저장소인 콜드월렛은 해커로부터의 부정 접속 위험이 원천 차단되는 반면 온라인상에 저장되는 핫월렛은 해킹 공격에 취약하다고 알려져 있습니다. 핫월렛에 대한 해킹은 해커가 해당 전자지갑의 개인 키(Private key)를 빼돌려 가상화폐 전송 권한을 획득한 후, 훔친 가상화폐를 다른 전자지갑으로 옮기는 방식입니다.


2018년 6월 20일 빗썸 핫월렛에 보관됐던 350억 원 규모의 회사보유분 가상화폐가 탈취당했습니다. 고객이 보유한 가상화폐는 콜드월렛으로 옮겨진 상태였기 때문에 해킹으로부터 안전했으나, 핫월렛에 저장됐던 회사 보유분의 일부는 해킹 공격에 노출되었습니다.



한 거래소 관계자는 “개인 키는 온라인 서버에 저장할 수도 있고 종이 등에 적어 오프라인상에 보관할 수도 있다.”며, “일반적으로는 온라인 서버에 저장하게 되는데 개인 키가 저장된 서버의 네트워크가 해킹 공격에 의해 뚫린 것 같다.”고 의견을 냈습니다. 또 다른 거래소 관계자는 “빗썸 같은 큰 거래소의 경우 보안을 위해 다중 서명[각주:7] 방식으로 개인 키를 운용했을 가능성이 높다.”며 “그럼에도 해킹 사고가 발생한 것을 보면 이 여러 개의 개인 키를 한 개의 서버에 저장해둔 것이 아닌가 생각된다.”고 말했습니다.


이처럼 개인 키 관리 미흡, 해킹에 취약한 핫웰렛 저장소 사용 등 전자지갑 보안 체계가 허술한 점을 공격 대상으로 삼아 해킹된 사례가 압도적으로 많은 비율을 차지합니다.


업계 전문가에 따르면 거래소 자산의 70% 이상을 콜드웰렛에 보관하고, 인출을 위한 다중 서명(Multi-Signature) 적용을 필수로 하며, 다중 서명에 참여하는 개인 키들을 물리적으로 분리 보관하는 등의 보호 조치를 권고합니다.


 블록체인 해킹 주요 대응 방안


지금부터는 가상화폐와 블록체인 해킹 공격에 대한 대응 방안을 살펴보겠습니다. 앞서 소개한 공격 유형별로 정리하면 다음과 같습니다.


l 해킹 공격 유형별 정리


그리고, 구현 측면의 대응 방안은 다음과 같습니다.


① 하드웨어 월렛 사용

핫월렛과 콜드월렛을 비교하면 ‘인터넷 연결 유무’가 가장 큰 차이점으로써, 핫월렛은 스마트폰 앱이나 PC로 접속 가능한 것이고, 콜드월렛은 USB와 같은 하드웨어 형태나 개인 키를 인쇄한 종이 등 인터넷에 연결되지 않은 오프라인 형태의 것입니다. 콜드월렛 중 알려진 하드웨어 타입은 Ledger Nano S, Trezor, KeepKey 등이 있습니다. 콜드월렛이 무조건 더 좋은 것은 아닙니다. 콜드월렛은 보관의 부담이 큰 단점이 있습니다. 이들이 핫월렛보다는 안전하다고 알려졌지만, 더욱 안전하게 사용하려면 다음과 같은 원칙을 따라야 합니다.


  • 안전한 오프라인 환경에서 개인 키 생성

  • 개인 키 백업 만들기와 백업 키를 다른 장소에 보관

  • 하드웨어 월렛을 도난당했을 때 실제 가상화폐를 도난당하는 것을 방지하기 위하여 월렛 암호화


② SW방식 키 관리 강화 방안

▶ Multi-factor 인증 

개인 키와 추가적인 인증기술을 활용하는 방안을 고려해야 합니다.

  • 개인 키와 OTP(스마트토큰, OTP카드 등) 동시사용 

  • 개인 키와 생체인증(홍채, 지문, 서명 등)

  • 개인 키와 SMS(문자 메시지)

 다중 서명(Multi-Signature)

다중 서명을 사용하는 경우, n 개의 개인 키 중에서 m 개의 서명이 있어야 인증이 가능한 구조로 네트워크 사용자를 보호하는 방법으로 활용이 가능합니다. 비트고(BitGo)의 경우, 3개 개인 키 중 2개가 서명해야 사용이 가능합니다.


③ 거래 수수료를 활용한 가용성 확보

특정 블록체인에서는 DDoS와 같은 네트워크 가용성을 무력화시키는 공격에 대응하여 프로그램 코드 실행 시 실행코드 볼륨에 비례하여 제한을 두고 있습니다. 해커가 무한하게 거래를 실행할 수 있는 자산이 없다면, 블록체인 내에서 가용성 공격에 대한 방어가 가능합니다. 실례로 이더리움은 코드 실행 시 GAS를 소비하도록 설계하여 DDoS 공격을 방어하는 수단으로 활용하고 있습니다.


④ 합의 알고리즘 보완 및 개선

51% 공격에 대응하기 위하여 시중 거래소들이 채택한 방법은 입금에 대한 컨펌 수를 증가시켜 이중지불 여부를 확인할 때까지 거래 확정을 늦추도록 프로그램을 바꾸는 것입니다. 컨펌을 기다리는 시간이 길어져서 기존 입금 소요 시간 보다 더 긴 시간이 소요되지만, 51% 공격에 대한 예방으로 가장 효과적이기 때문에 다수의 거래소가 적용했습니다.


코인원의 경우, 비트코인은 기존 입금 컨펌 수 1회에서 3회로, 비트코인캐시는 2회에서 6회로 3배 늘렸습니다. 이더리움클래식 입금 컨펌 수는 기존 48회에서 120회, 라이트코인 입금 컨펌 수는 6회에서 20회로 상향 조정했습니다.


빗썸도 “최근 Proof of Work(PoW) 합의증명 방식을 사용하는 일부 암호화폐를 대상으로 51% 공격이 발생하고 있다”며 상장된 PoW 알고리즘 암호화폐 중 비트코인, 비트코인캐시를 제외한 5개 암호화폐에 대해 컨펌 수를 상향 조정했습니다.


상향조정 대상은 이더리움클래식(ETC), 라이트코인(LTC), 모네로(XMR), 지캐시(ZEC), 비트코인 골드(BTG) 등 5가지입니다. 컨펌 횟수는 코인마다 다르게 적용하여, 라이트코인은 3컨펌에서 8컨펌, 이더리움클래식은 80컨펌에서 90컨펌, 제트캐시는 10컨펌에서 15컨펌, 비트코인골드는 10컨펌에서 25컨펌으로 각각 조정했습니다.


업비트도 51% 공격에 대응하기 위해 추가로 컨펌 수를 높였습니다. 업비트는 “비트코인골드(BTG), 버지(XVG)에 대한 51% 공격에 대응해 노드 점검, 컨펌 수를 상향 조정했다”며 “최근 추가로 동일 알고리즘 코인인 지캐시(ZEC), 코모도(KMD)의 컨펌 수를 높였다”고 설명했습니다.


컨펌 수를 조정하는 것뿐만 아니라, 블록체인 자체적인 취약점을 보완하기 위해서, Proof of Stake, Delegated Proof-of-Stake, Proof of Importance, Zero-Knowledge Proof 등 새로운 합의 알고리즘에 대한 안전성, 가용성 등의 기술적인 검증 및 구현이 이루어져야 합니다.



⑤ 가상화폐 거래소 인프라 보안성 확보

‘17년 10월 정부는 국내 거래소 10곳을 대상으로 보안취약점 점검 및 개인정보보호 미흡 사항에 대하여 조치를 권고했습니다.


정부는 ‘17년 점검 결과, 조사대상 사업자 대부분이 접근 통제장치 설치•운영, 개인정보의 암호화 조치 등 기술적 보호조치가 미흡한 것으로 나타남에 따라 2018년 1월 중 법규 위반 사항에 대해 과태료 등 행정처분을 엄격히 할 예정이라고 발표했습니다.


또한 일정 규모 이상(매출액 100억 원 이상, 일일 평균 방문자 수 100만 이상)의 거래소는 2018년부터 정보보호 관리체계(ISMS) 인증을 의무화하는 등 거래소 정보보호 수준을 향상할 수 있도록 추진하기로 했습니다.


정부의 규제에 따라 빗썸, 코인원, 코빗, 업비트 등 4개 대형 거래소가 가상화폐 업계에서 첫 번째 ISMS 인증 대상이 되었습니다. 그런데 2018년 10월 현재 의무대상이 아닌 고팍스가 업계 최초로 ISMS를 인증을 획득했고, 의무대상 4대 대형 거래소 중 3개 업체는 인증심사를 받으면서 미흡한 부분을 개선하는 중이고, 나머지 1개 업체도 인증 진행 중인 것으로 알려졌습니다. 추가로 인증 의무 대상이 아닌 1개 업체를 포함하여 총 5개의 업체가 인증 절차 진행 중입니다.


4대 대형 가상화폐 거래소를 포함하여 총 6개 거래소가 ISMS 인증을 올해 내 획득한다면, 국내 가상화폐 거래소의 보안 관리 수준이 전반적으로 향상되고, 추락한 가상화폐 거래소 및 블록체인에 대한 신뢰성을 일부 회복할 수 있을 것으로 기대합니다.



지금까지 블록체인 해킹 사례와 이에 대한 대응 방안에 대해 살펴보았습니다. 블록체인의 안전성은 이론적으로 검증되었지만, 실제 구현된 가상화폐와 블록체인은 여전히 해킹에 취약합니다. 다양한 플레이어들에 의해 블록체인 기반 서비스 모델을 만들어가는 지금, 20년 전 행정, 금융, 의료, 물류 등 많은 오프라인 업무가 인터넷 기반 온라인 서비스로 전환되던 90년대 후반의 상황과 유사해 보입니다. 서비스 모델 개발이 보안보다 우선시 되던 시절이었습니다.


블록체인을 기반으로 다양한 실생활의 발전적 서비스 모델이 만들어지고 정착되기 위해서는, 서비스 제공자의 보안 인식 강화와 설계단계부터 보안성 확보를 위한 노력이 반드시 수반되어야 하며, 이를 객관적으로 검증할 수 있는 제도적인 개선이 중요합니다.


다른 한편으로는 안전한 블록체인 기반 서비스 개발을 위하여 현재 시장에서 절대적으로 부족한 스마트 컨트랙트 개발자뿐만 아니라, 블록체인 보안 전문가 등 블록체인 전문 기술 인력의 육성도 동반되어야 할 것입니다.


글 l LG CNS 보안컨설팅팀


* 해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 LG CNS 블로그에 저작권이 있습니다.

* 해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.


참고자료

  • 가상화폐 거래소 해킹의 간략한 역사, 박성현 mikuvodka@gmail.com, 2018.9

    블록체인 구현측면 정보보안 동향 및 시사점, 박준한, 김유성, 공수재, 정보통신기술진흥센터, 2018.8

    A Survey on Security and Privacy Issues of Bitcoin, Mauro Conti, Sandeep Kumar, Chhagan Lal, Sushmita Ruj, 2017.12

    블록체인 해킹과 보안, 김경곤 교수, 고려대학교, 제6차 한국인터넷거버넌스포럼(KrlGF), 2017

    가상화폐와 블록체인, 김용대 교수, KAIST 시스템보안 연구실

    일본 가상화폐 거래소 ‘코인체크’ 해킹 사건 관련 동향


  1. 출처. 일본 가상화폐 거래소 ‘코인체크’ 해킹 사건 관련 동향 [본문으로]
  2. http://hackingdistributed.com/2016/06/18/analysis-of-the-dao-exploit/ Keepit 블록체인 칼럼: 해킹 잔혹사 2편, https://steemkr.com/kr/@keepit/3eq17d-keepit-2 [본문으로]
  3. 블록체인 해킹과 보안, 김경곤 교수, 고려대학교, 제6차 한국인터넷거버넌스포럼(KrlGF), 2017 [본문으로]
  4. 포크(fork)란 블록체인 시스템 일부를 업데이트 또는 수정하는 것 [본문으로]
  5. 가상화폐와 블록체인, 김용대, KAIST 시스템보안 연구실 [본문으로]
  6. 서울경제, <빗썸해킹>핫월렛이 뚫렸다…'개인키 어떻게 보관했길래' 2018.6.20, 박정연 [본문으로]
  7. 다중 서명이란 하나의 전자지갑에 여러 개의 개인 키를 두고 이 중 일정 수 이상의 개인 키가 모였을 때만 지갑에 대한 접근 권한을 부여하는 보안 방식을 의미 [본문으로]
Posted by IT로 만드는 새로운 미래를 열어갑니다 LG CNS
위로