바로가기 메뉴
본문 바로가기
대메뉴 바로가기

TECH M

“블록체인도 스마트계약 취약점 있어, 자동탐지 툴로 보완해야”

제13회 블록체인 테크비즈 컨퍼런스

2019-07-10김태환 기자

10일 박지수 수호 대표가 서울 잠실 롯데호텔에서 열린 '제13회 블록체인 테크비즈 컨퍼런스' 발표를 통해 스마트 계약의 취약점과 대응 방안을 소개했다.

블록체인 스마트계약의 취약점(시스템이나 프로그램 약점)과 보안성을 개선하려면 자동으로 문제를 탐지할 수 있는 툴(Tool)을 적극적으로 활용해야 한다. 보안 취약점 확산 속도를 인력이 따라가는 데 한계가 있기 때문이다.

10일 한국인터넷진흥원은 서울 잠실 롯데호텔 지하 1층에서 ‘제13회 블록체인 테크비즈 컨퍼런스’를 개최하고, '초연결시대 안전한 블록체인'을 주제로 다양한 논의를 이어갔다.

발표를 맡은 박지수 수호 대표는 블록체인 스마트계약의 취약점과 대비 방법을 소개했다.

박지수 대표는 “블록체인이 무조건적으로 보안을 담보한다고 알려져 있지만 블록체인 플랫폼도 하나의 소프트웨어 구현체”라며 “취약점이 발생할 여지가 있고, 컨센서스의 알고리즘이 안전하다고 해도 방심할 수 없다”고 지적했다.

박 대표는 “가장 보편적인 블록체인 플랫폼 이더리움에서도 개별 노드(node), 네트워크 전체 노드의 취약점들이 제보된 적 있다”면서 “노드가 블록 생성을 못하도록 코마상태에 빠뜨린다거나 도메인을 하이재킹해 외부에서 해킹하는 경우도 있다”고 설명했다.

실제 지난해 NDSS에 기재된 보안 논문에 따르면 이더리움 소스코드 분석 결과 무려 95%가 하나 이상의 취약점을 가지고 있다는 결과가 나왔다.

대표적인 취약점으로는 ‘재진입 공격’이 있다. 스마트계약은 결국 블록체인 플랫폼 전체가 공유하는 하나의 소프트웨어의 개념이다. 따라서 멀티프로세싱(각 노드가 명령)을 할 수 있다.

예를 들어 구글 스프레드시드를 사용할 때 사용자가 글을 작성하고 있는데, 다른 사용자가 접속해 글을 고쳐버릴 수 있다. 마찬가지로 스마트계약에서도 누군가가 값을 고쳐버리는 행위를 할 수 있다.

또 다른 문제로는 오버플로우가 있다. 컴퓨터에서는 ‘플립 카운트’ 방식으로 숫자를 센다. 0에서 9까지 센 다음에는 해당 자리 숫자는 0으로 돌아간다. 이때 0을 입력할 때, 일정 수준 이상의 값을 입력하면 숫자가 기하급수적으로 늘어날 수 있다. 해커가 의도적으로 오버플로우를 일으켜, 코인 개수를 임의로 확대시켜 송금해버리는 수법을 쓴다.

이러한 스마트계약의 취약점을 개선하려면 버그를 잡아내도록 자동화된 툴(Tool)을 사용해야 한다고 박 대표는 주장했다. 인력으로는 취약점을 모두 찾아낼 수 없기 때문이다.

그는 “취약점은 사람이 검수해도 여러 가지 사건이 일어난다. 컴퓨터에게 대신 맡겨 자동화하는 기술이 필요하다”면서 “크게 버그 파인딩, 베리트케이션(검증) 툴이 있다”고 말했다.

버그 파인딩은 개발자가 취약점을 찾으려고 코드를 작성하고, 테스트 케이스를 작성하는 툴이다. 추가적으로는 프로그램이 행동할 수 있는 특정 범위를 GPU나 메모리 연산으로 검증하는 ‘정적/동적 분석기’가 있다.

베리트케이션은 사람의 손을 거치지 않는 완전 자동화툴이다. 프로그램의 활동 범위 이상으로 광범위하게 검증한다.

박 대표는 “버그 파인딩은 사람의 손으로 해서 정확도가 높지만 특정 부분에 대한 커버리지에 집중해 확인할 때 버그가 남아 있을 가능성이 있다”면서 “반면 베리트케이션은 프로그램 외부까지도 탐지해 오탐할 가능성은 있지만 거의 모든 버그를 탐지한다는 장점을 가진다”고 설명했다.

그는 “최근 스마트계약 취약점을 검증하는 툴이 굉장히 많이 개발되고 있다”면서 “버그 파인딩과 베리트케이션을 활용해 교차검증해야 한다”고 조언했다.

 

김태환 테크엠 기자 kimthin@techm.kr