작성일 : 18-08-09 19:59
[보안뉴스] 블록체인 보안, 가장 약한 링크만큼 강하다
 글쓴이 : happy
조회 : 3  

블록체인 보안, 가장 약한 링크만큼 강하다

블록체인은 안전할지 모르지만, 이와 상호작용하는 모든 소프트웨어는 그렇지 않다. 월렛에서 거래소, 스마트 컨트랙트(smart contracts)에 이르기까지 블록체인의 소프트웨어 측면에서의 취약점을 공략하는 사이버공격이 증가하고 있다.

Credit: Getty Images Bank

블록체인 생태계를 보호하는 것은 현재 가장 까다로운 사이버보안 과제다. 블록체인 자체는 안전할 수 있지만, 그렇다고 이 블록과 교차하는 모든 부분이 안전하다는 의미는 아니다. 월렛, 거래소, 채굴, 스마트 컨트랙트의 상당 수는 안전하지 않다. 카본블랙(Carbon Black)의 최근 연구에 따르면, 해커들은 올해 상반기 11억 달러어치의 암호화폐를 훔쳤다.

현재 위협은 주로 퍼블릭 블록체인에만 국한되어 있지만 기업 영역은 다음 차례다. 기업 블록체인은 아직까지 해커들에게 알려져 있지 않지만 퍼블릭 블록체인을 표적으로 제작할 수 있는 많은 자금이 있다. 기업 블록체인의 약점은 퍼블릭 블록체인을 이미 성공적으로 악용한 결과물에서 발견할 수 있다.

보안 학습 곡선
새로운 기술이란 새로운 위협과 새로운 보안 학습 곡선을 의미한다. 새로운 기술로 인해 위험이 나타나기까지 시간이 걸리고 개발 위험을 해결하는 방법을 이해하는 데도 시간이 걸린다. 블록체인 보안은 초기 학습 단계에 있다. 블록체인은 매력적인 목표이기 때문에 빨리 배울 필요가 있다. 많은 돈이 소요되고 그에 상응하는 많은 수의 공격자가 출현할 것이다.

이런 새로운 환경에서 사이버공격자는 돈을 만드는 단계를 없앨 수 있기 때문에 매력적인 표적이라 볼 수 있다. 즉, 훔친 데이터를 통해 돈을 거둬들이는 방법에 대해 걱정할 필요가 없다. 공격자는 간단히 돈 그 자체를 훔친다.

가장 약한 링크만큼 강하다 
전체 블록체인 시스템이 안전해질 때까지 공격자들이 침투할 장소가 있을 것이다. 블록체인과 상호작용하는 구성 요소는 코드로 작성되며 대부분의 소프트웨어 코드에는 버그와 취약점이 있다.

수십억 줄의 CA 베라코드(CA Veracode) 코드를 검사했는데, 해마다 상당한 수의 취약점을 발견했다. 가장 최근 데이터 셋에 따르면, 77%의 앱이 초기 검사시 하나 이상의 취약점을 갖고 있다. 이런 통계를 볼 때, 블록체인과 상호 작용하는 월렛, 스마트 컨트렉트, 거래소 등 모든 소프트웨어가 안전하다는 것을 믿을 수 없다.

거래소와 스마트 컨트랙트를 예를 들어보자. 암호화폐 거래소는 사용자가 하나의 암호화폐를 다른 암호화폐와 교환할 수 있는 온라인 플랫폼이다. 다시 말해 거래소는 증권 거래소나 환전소와 유사한 기능을 할 수 있다. 최근 수년동안 이 거래소에서는 몇 건의 침해 사고가 있었다.

- 곡스(Gox)는 비트코인에서 4억 8,000만 달러어치의 비트코인을 도난당했다.
- 2016년 비트파이넥스(Bitfinex)는 다중 서명 지갑 해킹으로 7,200만 달러의 손실을 입었다.
- 나이스해시(NiceHash)의 경우, 공격자는 피싱 공격을 통해 자격 증명을 훔친 후, 6,300만 달러를 훔쳤다.
- 코인체크(Coincheck)는 모든 것을 월렛에 저장하고 단일 요소 인증을 사용했기 때문에 공격을 받았다(이는 한명의 창구에 모든 돈을 저장하는 은행과 같다).


협상이나 계약 이행을 디지털 방식으로 촉진, 검증 또는 시행하는 스마트 컨트랙트는 보안에 대한 아무런 영향을 미치지 않는다. 스마트 컨트랙트에서 간단한 프로그래밍 오류가 발생해 몇 가지 중대한 침해 사고가 발생한 바 있다.

- DAO는 스마트 컨트랙트에 버그가 있었다. 재진입(reentrancy) 버그로 인해 공격자는 5,000만 달러 상당의 이더(Ether)를 훔칠 수 있었다.
- 패리티(Parity) 월렛의 접속 제어 문제로 인해 3,000만 달러의 손실이 있었다.


궁극적으로 블록체인을 다루고 있기 때문에 트랜잭션이 안전하다고 생각하는 건 순진한 것이다. 블록체인 사용자들이 스스로를 보호하기 위해 해야 할 기본적인 보안 조치는 다음과 같다.

- 자신의 개인 키를 노출해서는 안된다.
- 이중 인증을 사용하라.
- 거래소를 이용할 때 이메일 주소나 전화번호를 온라인에 게재해서는 안된다.
- 온라인에서 자신의 암호화폐에 대해 자랑하지 마라.


코드 수준에서 보안 구현
블록체인 프로세스에 보안을 구현하기 위해서는 블록체인과 상호작용하는 소프트웨어를 만드는 사람들은 다음과 같은 사항을 고려해야 한다.

- 우수한 소프트웨어 개발 라이프사이클/생태계 : 개발 프로세스에 보안을 추가하고 승계된 코드를 확인하라.
- 2단계 인증 및 하드웨어 월렛을 사용하라.
- 표준 모범 사례를 고수하라. SSL 및 인증서를 사용해 당사자가 자신이 말하는 사람인지 확인하라.


더 나은 법률 계약, 공급망의 가시성 향상, 투표시 사기 감소 등 블록체인의 효과는 지대하다. 그러나 새로운 기술과 마찬가지로 위협 주체는 회의주의를 증가시키고 적용을 늦출 수 있는 약점을 찾고 있다. editor@itworld.co.kr