2018.06.25

블록체인 데이터베이스, “그렇게까지 안전하지는 않다”

James Kobielus | InfoWorld
블록체인에 대한 이야기에는 “안전한 분산 하이퍼레저(hyperledger)”라는 말이 단골로 등장한다. 하이퍼레저라는 표현에는 아무런 유감이 없다. 다른 말로 하면 지속적으로 증가하는 연결된 레코드 목록이라는 뜻이다. 체인에 추가되는 새로운 레코드를 검증하는 방법을 기술하는 프로토콜을 통해 피어 투 피어 네트워크에서 통신이 이뤄지므로 분산이라는 표현에도 문제가 없다.

그러나 블록체인에 “안전한”이라는 수식어는 경솔하다. 어느 시스템에서든 안전하다고 주장하려면 다양한 수준과 시나리오, 애플리케이션, 기타 여러 상황에서의 반복적인 입증이 필요하다. 블록체인 기술에 대해 더 정확한 표현은 암호적으로 안전한 분산 하이퍼레저다. 이 정의는 블록체인의 보안 전술이 위조, 암호 도난, 악성코드를 사용한 DoS 및 기타 공격에 대한 블록체인의 취약성을 낮추기에 충분한지 여부를 확언하지 않는다.

사실 블록체인 안으로 파고 들어가다 보면 멀리 가지 않아도 보안 취약점과 맞닥뜨리게 된다. 블록체인의 보안 문제는 그 자체로 체인을 형성한다. 블록체인 기술의 보안성은 근본적으로 강력한 공개 키 암호화에 의존하는데, 체인의 약한 고리가 이를 압도하기 시작한다. 세계의 저장된 부와 상업적 교환가치가 블록체인에 많이 합류할수록 블록체인 기술의 보안 취약점도 크게 다가오게 된다.

블록체인은 단순한 분산 데이터베이스 이상이다. 갈수록 몸집이 커지는 레코드 시스템이며, 향후 글로벌 경제는 블록체인에 긴밀하게 의존하게 된다. 현실적으로 블록체인의 보안은 어느 정도일까? 미션 크리티컬한 자산을 분산 하이퍼레저에 배치하는 것을 정당화할 수 있을 만큼 블록체인을 충분히 안전한 수준으로 구현하기 위해서는 얼마나 많은 비용과 시간, 노력이 필요할까?

분명한 점은 대부분의 경우 우리, 즉 사용자가 블록체인의 가장 약한 연결 고리라는 것이다. 공격자들은 계속해서 엔드포인트 취약점을 악용한다. 엔드포인트 취약점이란 사용자가 블록체인의 ID와 키, 자격 증명, PC와 휴대폰 및 기타 시스템에 설치하는 소프트웨어를 안전하게 보호하지 못하는 것을 의미한다. 결과적으로 피싱, 악성코드, 암호 사전 공격과 기타 공격 벡터에 노출되고 암호화폐와 같은 체인 기반 자산이 탈취될 위험에 처한다.

블록체인은 복잡한 상거래 트랜잭션을 지원할 때 이른바 “스마트 계약”을 실행하는 경우가 많은데, 이 계약 자체가 심각한 보안 취약성을 가질 수 있다. 블록체인에 쓰이는 스마트 계약은 복잡한 비즈니스, 금융, 법적 합의를 부호화할 수 있다. 이 계약에 허가 기반 블록체인 관리자 키에 접근할 권한이 있는 경우, 범죄자는 가짜 스마트 계약을 통해 기밀 정보에 몰래 접근하고 암호화 키를 훔치고 무단 자금 이체를 실행하고 기타 비즈니스 자산에 대한 공격을 감행할 수 있다.

일반 사용자는 인식하지 못하지만 광범위하게 구축된 블록체인 생태계의 복잡함도 취약점이다. 스마트 계약을 관리하는 시스템과 엔드포인트를 보호해야 하는 것 외에 암호화폐 결제 처리업체, 그리고 블록체인을 엔터프라이즈 애플리케이션 시스템에 통합하는 솔루션의 보안도 확보해야 한다. 이를 위해서는 블록체인 시스템의 신뢰성에 대한 철저한 심사가 필요한데, 아직 미성숙 기술인 블록체인에 관한 경험을 가진 IT 전문가가 극소수임을 감안하면 심사 자체도 어려운 일이 될 수 있다.

새로운 블록체인 솔루션 벤더가 매일같이 등장하지만, 안타깝게도 그 중에는 신뢰성을 확인하는 데 사용할 수 있는 검증된 기록이나 레퍼런스 고객, 사례 연구가 없는 경우가 상당히 많다. 확고한 입지를 다진 업체라 해도 상용 블록체인 솔루션은 시장에 처음 출시하거나, 기업용과는 거리가 한참 먼 알파 또는 베타 버전으로 내놓는 경우도 많다. 따라서 테스트되지 않고 불안전한, 실전 경험도 없고 확장성도 입증되지 않은 버그투성이 코드를 기반으로 블록체인을 운영할 위험에 처하게 된다.

게다가 많은 블록체인 프로토콜, 스마트 계약 메커니즘, 게이트웨이, 교환소가 현재 개발 중이며, 각각 자체적인 버그와 보안 취약점이 있다. 기업에서 상호 이질적인 블록체인(허가 기반과 비허가 기반, 내부, B2B 등)을 구현하면서 다양한 애플리케이션을 지원하는 사일로 형태로 전개될 수도 있다. 이 경우 각 환경의 취약점에 개별적으로 대처해야 하며, 이러한 사일로를 상호 연결하거나 더 큰 빅 데이터 생태계에 연결해야 한다면 이러한 여러 환경 사이의 복잡한 상호작용에서 드러나는 보안 문제도 해결해야 한다.

참가하는 블록체인 중 하나가 컨소시엄에 의해 관리되는 경우, 이 컨소시엄이 엄격한 보안으로 철저히 환경을 관리할 것이라고 무작정 신뢰하지 말고 조직의 운영 절차를 세밀하게 심사해야 한다. 이와 같은 컨소시엄이 준수해야 하는 범용적 규정이 없으므로 각 컨소시엄의 보안 관행을 개별적으로 평가해야 한다. 또한 블록체인 간의 보안 수준을 직접적으로 비교할 만한 마땅한 방법도 없다. 일부 컨소시엄에서 블록체인 참가자에게 허용하는 익명성은 사기에 악용되기도 하며 사건 발생 시 사법 당국에서 범인을 찾기 어려운 이유가 되기도 한다.

더욱 우려되는 점은 블록체인이 구축되는 채굴장(mining farm)이 전 세계 곳곳에 위치한다는 것이다. 이는 블록체인에 어느 정도의 예비성과 탄력성을 부여할 수 있지만, 운영자가 흔히 “51% 공격”으로 불리는 방식을 통해 결탁, 블록체인 참가자들 모르게 자산을 사취할 수 있는 위험도 함께 발생한다. 한 집단 또는 공모자들이 현재 블록체인 채굴에 사용되는 컴퓨팅 노드의 절반 이상을 점유하는 경우 그 체인에 부정한 사기성 거래를 쓰는 데 필요한 합의 “작업 증명”을 달성할 수 있고, 이를 통해 다른 참가자들에게 피해를 입히면서 이익을 취할 수 있다.

이 위협은 특히 블록체인이 막 시작될 때, 채굴 노드의 수가 적어서 개인 또는 집단이 절반 이상의 가용 컴퓨팅 파워를 확보하기가 비교적 쉬울 때 잘 발생한다. 암호 채굴 운영이 전기료가 싸고 규제 감시가 없고 범죄자와 테러리스트들이 활개치는 해외 국가로 이전될 경우 문제는 더욱 심각해질 수 있다.

블록체인 업계는 이러한 취약점에 종합적으로 어떻게 대처할까? 우선 위키본(Wikibon, 필자가 일하는 리서치 업체)은 리눅스 재단에 애플리케이션 엔드포인트와 엔터프라이즈 게이트웨이 등을 포괄하는 종단간 보안을 달성하기 위한 개방적이고 유연한 프레임워크 구축을 목표로 하는 하이퍼레저 프로젝트를 시작할 것을 촉구한다. 또한 엔터프라이즈 소프트웨어 업체는 블록체인 배포 가속기에 강력한 보안을 도입해야 한다.

블록체인에 관한 유토피아적인 과장에 현혹되면 안 된다. 이러한 오픈소스 하이퍼레저는 더 많은 기업이 미션 크리티컬 애플리케이션을 배포하는 하이브리드 클라우드 데이터 환경의 부가적인 줄기일 뿐이다.

블록체인을 구현하려면 먼저 그 블록체인의 취약점을 평가하고 필요한 기술적 및 절차적 안전 대책을 마련해야 하며, 잠재적인 비즈니스 가치가 위험보다 크다는 확신이 있어야 한다.

*James Kobielus는 실리콘앵글 위키본(SiliconAngle Wikibon)의 대표 애널리스트로, AI, 데이터 과학, 애플리케이션 개발을 담당한다. 
editor@itworld.co.kr

2018.06.25

블록체인 데이터베이스, “그렇게까지 안전하지는 않다”

James Kobielus | InfoWorld
블록체인에 대한 이야기에는 “안전한 분산 하이퍼레저(hyperledger)”라는 말이 단골로 등장한다. 하이퍼레저라는 표현에는 아무런 유감이 없다. 다른 말로 하면 지속적으로 증가하는 연결된 레코드 목록이라는 뜻이다. 체인에 추가되는 새로운 레코드를 검증하는 방법을 기술하는 프로토콜을 통해 피어 투 피어 네트워크에서 통신이 이뤄지므로 분산이라는 표현에도 문제가 없다.

그러나 블록체인에 “안전한”이라는 수식어는 경솔하다. 어느 시스템에서든 안전하다고 주장하려면 다양한 수준과 시나리오, 애플리케이션, 기타 여러 상황에서의 반복적인 입증이 필요하다. 블록체인 기술에 대해 더 정확한 표현은 암호적으로 안전한 분산 하이퍼레저다. 이 정의는 블록체인의 보안 전술이 위조, 암호 도난, 악성코드를 사용한 DoS 및 기타 공격에 대한 블록체인의 취약성을 낮추기에 충분한지 여부를 확언하지 않는다.

사실 블록체인 안으로 파고 들어가다 보면 멀리 가지 않아도 보안 취약점과 맞닥뜨리게 된다. 블록체인의 보안 문제는 그 자체로 체인을 형성한다. 블록체인 기술의 보안성은 근본적으로 강력한 공개 키 암호화에 의존하는데, 체인의 약한 고리가 이를 압도하기 시작한다. 세계의 저장된 부와 상업적 교환가치가 블록체인에 많이 합류할수록 블록체인 기술의 보안 취약점도 크게 다가오게 된다.

블록체인은 단순한 분산 데이터베이스 이상이다. 갈수록 몸집이 커지는 레코드 시스템이며, 향후 글로벌 경제는 블록체인에 긴밀하게 의존하게 된다. 현실적으로 블록체인의 보안은 어느 정도일까? 미션 크리티컬한 자산을 분산 하이퍼레저에 배치하는 것을 정당화할 수 있을 만큼 블록체인을 충분히 안전한 수준으로 구현하기 위해서는 얼마나 많은 비용과 시간, 노력이 필요할까?

분명한 점은 대부분의 경우 우리, 즉 사용자가 블록체인의 가장 약한 연결 고리라는 것이다. 공격자들은 계속해서 엔드포인트 취약점을 악용한다. 엔드포인트 취약점이란 사용자가 블록체인의 ID와 키, 자격 증명, PC와 휴대폰 및 기타 시스템에 설치하는 소프트웨어를 안전하게 보호하지 못하는 것을 의미한다. 결과적으로 피싱, 악성코드, 암호 사전 공격과 기타 공격 벡터에 노출되고 암호화폐와 같은 체인 기반 자산이 탈취될 위험에 처한다.

블록체인은 복잡한 상거래 트랜잭션을 지원할 때 이른바 “스마트 계약”을 실행하는 경우가 많은데, 이 계약 자체가 심각한 보안 취약성을 가질 수 있다. 블록체인에 쓰이는 스마트 계약은 복잡한 비즈니스, 금융, 법적 합의를 부호화할 수 있다. 이 계약에 허가 기반 블록체인 관리자 키에 접근할 권한이 있는 경우, 범죄자는 가짜 스마트 계약을 통해 기밀 정보에 몰래 접근하고 암호화 키를 훔치고 무단 자금 이체를 실행하고 기타 비즈니스 자산에 대한 공격을 감행할 수 있다.

일반 사용자는 인식하지 못하지만 광범위하게 구축된 블록체인 생태계의 복잡함도 취약점이다. 스마트 계약을 관리하는 시스템과 엔드포인트를 보호해야 하는 것 외에 암호화폐 결제 처리업체, 그리고 블록체인을 엔터프라이즈 애플리케이션 시스템에 통합하는 솔루션의 보안도 확보해야 한다. 이를 위해서는 블록체인 시스템의 신뢰성에 대한 철저한 심사가 필요한데, 아직 미성숙 기술인 블록체인에 관한 경험을 가진 IT 전문가가 극소수임을 감안하면 심사 자체도 어려운 일이 될 수 있다.

새로운 블록체인 솔루션 벤더가 매일같이 등장하지만, 안타깝게도 그 중에는 신뢰성을 확인하는 데 사용할 수 있는 검증된 기록이나 레퍼런스 고객, 사례 연구가 없는 경우가 상당히 많다. 확고한 입지를 다진 업체라 해도 상용 블록체인 솔루션은 시장에 처음 출시하거나, 기업용과는 거리가 한참 먼 알파 또는 베타 버전으로 내놓는 경우도 많다. 따라서 테스트되지 않고 불안전한, 실전 경험도 없고 확장성도 입증되지 않은 버그투성이 코드를 기반으로 블록체인을 운영할 위험에 처하게 된다.

게다가 많은 블록체인 프로토콜, 스마트 계약 메커니즘, 게이트웨이, 교환소가 현재 개발 중이며, 각각 자체적인 버그와 보안 취약점이 있다. 기업에서 상호 이질적인 블록체인(허가 기반과 비허가 기반, 내부, B2B 등)을 구현하면서 다양한 애플리케이션을 지원하는 사일로 형태로 전개될 수도 있다. 이 경우 각 환경의 취약점에 개별적으로 대처해야 하며, 이러한 사일로를 상호 연결하거나 더 큰 빅 데이터 생태계에 연결해야 한다면 이러한 여러 환경 사이의 복잡한 상호작용에서 드러나는 보안 문제도 해결해야 한다.

참가하는 블록체인 중 하나가 컨소시엄에 의해 관리되는 경우, 이 컨소시엄이 엄격한 보안으로 철저히 환경을 관리할 것이라고 무작정 신뢰하지 말고 조직의 운영 절차를 세밀하게 심사해야 한다. 이와 같은 컨소시엄이 준수해야 하는 범용적 규정이 없으므로 각 컨소시엄의 보안 관행을 개별적으로 평가해야 한다. 또한 블록체인 간의 보안 수준을 직접적으로 비교할 만한 마땅한 방법도 없다. 일부 컨소시엄에서 블록체인 참가자에게 허용하는 익명성은 사기에 악용되기도 하며 사건 발생 시 사법 당국에서 범인을 찾기 어려운 이유가 되기도 한다.

더욱 우려되는 점은 블록체인이 구축되는 채굴장(mining farm)이 전 세계 곳곳에 위치한다는 것이다. 이는 블록체인에 어느 정도의 예비성과 탄력성을 부여할 수 있지만, 운영자가 흔히 “51% 공격”으로 불리는 방식을 통해 결탁, 블록체인 참가자들 모르게 자산을 사취할 수 있는 위험도 함께 발생한다. 한 집단 또는 공모자들이 현재 블록체인 채굴에 사용되는 컴퓨팅 노드의 절반 이상을 점유하는 경우 그 체인에 부정한 사기성 거래를 쓰는 데 필요한 합의 “작업 증명”을 달성할 수 있고, 이를 통해 다른 참가자들에게 피해를 입히면서 이익을 취할 수 있다.

이 위협은 특히 블록체인이 막 시작될 때, 채굴 노드의 수가 적어서 개인 또는 집단이 절반 이상의 가용 컴퓨팅 파워를 확보하기가 비교적 쉬울 때 잘 발생한다. 암호 채굴 운영이 전기료가 싸고 규제 감시가 없고 범죄자와 테러리스트들이 활개치는 해외 국가로 이전될 경우 문제는 더욱 심각해질 수 있다.

블록체인 업계는 이러한 취약점에 종합적으로 어떻게 대처할까? 우선 위키본(Wikibon, 필자가 일하는 리서치 업체)은 리눅스 재단에 애플리케이션 엔드포인트와 엔터프라이즈 게이트웨이 등을 포괄하는 종단간 보안을 달성하기 위한 개방적이고 유연한 프레임워크 구축을 목표로 하는 하이퍼레저 프로젝트를 시작할 것을 촉구한다. 또한 엔터프라이즈 소프트웨어 업체는 블록체인 배포 가속기에 강력한 보안을 도입해야 한다.

블록체인에 관한 유토피아적인 과장에 현혹되면 안 된다. 이러한 오픈소스 하이퍼레저는 더 많은 기업이 미션 크리티컬 애플리케이션을 배포하는 하이브리드 클라우드 데이터 환경의 부가적인 줄기일 뿐이다.

블록체인을 구현하려면 먼저 그 블록체인의 취약점을 평가하고 필요한 기술적 및 절차적 안전 대책을 마련해야 하며, 잠재적인 비즈니스 가치가 위험보다 크다는 확신이 있어야 한다.

*James Kobielus는 실리콘앵글 위키본(SiliconAngle Wikibon)의 대표 애널리스트로, AI, 데이터 과학, 애플리케이션 개발을 담당한다. 
editor@itworld.co.kr

X