‘해킹과 보안’은 ‘창과 방패’의 싸움처럼 결론을 낼 수 없다. 세상에는 ‘그 어떤 방패도 뚫을 수 있는 창’이나 ‘그 어떤 창도 막을 수 있는 방패’는 존재하지 않는다. 마찬가지로 모든 시스템을 뚫을 수 있는 ‘해킹’이나 모든 공격을 막을 수 있는 ‘보안’도 없다.
첨단기술의 발전과 계속되는 전쟁으로 공격 무기와 방어 기술이 날로 고도화 되는 것처럼 반복되는 사이버 전쟁으로 해킹과 보안 기술도 끊임없이 발전하고 있다.
이런 와중에 “블록체인은 모든 공격을 막아낼 수 있는 방패”라는 기대감이 높다. 보안을 전공한 필자의 입장에서 결론부터 말한다면 “완벽에 가깝지만 완벽하지는 않다”는 것이다. 블록체인 기술 자체에도 취약점이 있지만, 블록체인 사용자의 인터페이스와 블록체인을 활용하기 위한 응용 소프트웨어 곳곳에 보안 취약점이 엿보이기 때문이다.
그럼에도 블록체인은 전 산업 분야에서 활용할 수 있는 ‘제2의 인터넷 기술’이 될 가능성이 높다. 그러면 블록체인 보안은 사회안전, 생명, 재산과 직결되게 된다. 우리가 해야 할 일은 블록체인 보안을 완벽에 조금 더 가까워지도록 취약점을 개선하는 것이다. 또 블록체인 기술을 활용해 빠르고 효과적으로 정보를 보증하고, 데이터의 신뢰성을 평가하고 검증할 수 있는 시스템을 갖추는 일이다.
현재 블록체인은 무결성, 가용성, 기밀성이 뛰어난 보안 기술로 평가받는다.
우선 신뢰할 수 없는 네트워크 환경에서 데이터의 위변조를 효과적으로 판별해 낼 수 있다는 점에서 높은 ‘무결성’을 인정한다. 또 중요한 데이터를 블록체인 네트워크에 참여하는 모든 노드에게 똑같이 분산·관리하기 때문에 디도스 공격을 받아도 서비스는 멈추지 않는다. ‘가용성’이 높다는 것이다. 여기다 컴퓨터 사이언스 분야에서 오랫동안 검증된 해시 기반의 작업 증명과 공개키 암호화 방식을 이용하기 때문에 ‘기밀성’ 관점의 보안성도 우수하다.
다만 이 같은 평가는 중앙집중식 시스템과의 상대 비교 결과다. 절대평가 결과가 아니다. 결국 ‘블록체인도 완벽한 보안을 보장하지 않는다’는 것이다. 그렇지만 기존 기술이 해결하지 못한 보안 난제를 풀 수 있는 한 단계 진보한 기술이라는 점은 분명하다.
4차 산업혁명 시대의 보안은 단순히 무결성, 가용성, 기밀성이 뛰어나다고 안전성을 인정하지 않는다. 보안(Security)을 뛰어넘는 신뢰성(Trustworthiness)을 갖춰야 한다. 제품과 서비스가 신뢰성을 인정받기 위해선 기획과 설계 단계부터 보안 요소를 넣어야 한다. 그래야 보안성을 검증하고 평가할 수 있는 관리적·기술적 체계인 정보보증(Information assurance)이 제품과 서비스에 녹아든다. 또 제품 설계에서 서비스 제공의 모든 단계에서 정보 보증을 통해 개발자와 평가자, 사용자 모두가 보안성을 측정하고 신뢰할 수 있는 시스템 구축이 가능하다.
완벽한 방패를 위해선 창에 대한 철저한 연구가 필요하다. 방패를 뚫기 위한 해킹 기술 역시 빛의 속도로 진화하고 있기 때문이다. 해킹이 지능화·고도화되면서 경제적 손실과 피해 또한 막대하게 커졌다. 국가·기업·개인의 데이터 변조와 파괴는 국가·사회적 혼란으로 연결된다. 사이버 공간을 넘어 현실 세계로 영향력이 고스란히 전파되는 상황이다.
최근 신종 악성코드를 생성하는 자동 해킹 도구가 널리 퍼지면서 누구나 손쉽게 쓸 수 있게 됐다. 그러면서 악성코드 수명은 짧아지고 공격 주기도 단축됐다. 우리가 흔히 접속하는 웹과 네트워크, 시스템, 애플리케이션(앱)의 최신 버전 취약점을 이용한 악성코드도 크게 늘었다.
해커들도 머신러닝(기계학습)과 인공지능(AI) 기술을 도입했다. 첨단기술로 보안 시스템의 탐지 패턴을 자동 분석한 후 우회 공격을 진행한다. 상용화된 보안 시스템을 사용해 자신이 개발한 공격이 차단되는지 시험을 한 후에 공격하는 방식이다. 해킹 공격은 시스템이나 네트워크의 취약점을 이용해 순식간에 전 네트워크로 전파되는 형태로 진화했고, 여러 취약점을 이용한 공격 기법을 결합해 확산 속도를 높였고 파괴력을 키웠다.
결국 창을 막는 방패의 기술도 달라져야 한다.
블록체인 제품과 서비스를 보호하기 위해선 지능형 보안 기술 도입이 필수다. 시스템과 네트워크기술에 이를 내재화해야 한다. 최근 대형 보안사고의 원인이 되었던 지능형 지속 위협(APT·Advanced Persistent Threat) 공격은 공격 대상에 대해 장기간 분석 후 작은 취약점부터 공략한다. 방어가 쉽지 않다. 기존의 보안 솔루션은 시그니처와 임계치를 기준으로 해킹 행위를 감지하고 방어하기 때문에 오랜 기간 조금씩 진행되는 공격에는 무력할 수 밖에 없다.
보안에도 AI 적용이 시급하다.
AI가 보안 데이터를 학습해 보안 전문가의 통찰력을 갖게 되면, 관리 비용을 줄이고 관리자의 실수로 인한 보안 사고를 막을 수 있다. 또 분산 네트워크의 수많은 위협 정보에 대한 상관관계를 분석하여 공격을 찾아낸 후 대응 방법을 각 노드에 배포하고 보안 정책을 자동으로 업데이트하는 것이 가능하다. 모든 보안 전략과 체계를 종합해 예방, 탐지, 대응, 예측하는 전 단계에서 유기적으로 대응할 수 있다.
앞서 언급한 것처럼 블록체인의 보안 취약점은 블록체인 기술 자체와 블록체인 사용자 인터페이스, 블록체인을 활용하기 위한 응용 소프트웨어에서 발견된다.
블록체인은 네트워크 규모가 크고 분산될수록 안전하다. 블록체인 네트워크 노드의 51%를 해킹하는 기술은 현실적으로 어렵지만 실현 불가능한 것은 아니다. 시스템의 고유한 취약점을 공략해 네트워크로 빠르게 전파되는 악성코드를 이용한 해킹 기술은 블록체인을 위협한다. 블록체인 해킹에 대응하기 위해 분산 네트워크에서 수집된 수많은 위협 정보에 대한 상관관계를 분석해 공격을 찾아낸 후, 대응 방법을 각 분산 노드에 배포하고 보안 정책을 업데이트하는 과정이 자동으로 진행돼야 한다.
사용자 인터페이스를 통해 비밀키가 유출되거나 분실될 수 있다. 공개키 암호화 방식을 사용하므로 비밀키를 제 3자에게 도난당하거나 분실하면 블록체인에 저장된 내용물에 대한 소유권을 주장할 수 없게 된다. 블록체인 사용자 인터페이스 보호를 위해 비밀키 유출과 분실에 대비해 비밀키를 하드웨어 지갑에 안전하게 보관하고, 중요 거래를 보호하기 위해 여러 참여자들이 공동으로 서명해야 거래가 승인되는 다중 서명 활용이 필요하다.
또 블록체인은 주로 오픈소스로 개발되고 분산 네트워크 방식으로 동작하기 때문에 빠른 보안패치와 검증이 어렵다. 취약점이 노출될 경우 심각한 피해를 가져올 수 있다. 그래서 블록체인 앱을 프로그래밍할 때 표준 라이브러리 함수를 사용한 시큐어 코딩과 검증 절차를 따르고, 블록체인에 기반해 무결성이 보장되는 자동 보안 프로그램 패치 환경을 구축하는 작업이 필요하다.
국내외 유명 암호화폐 거래소의 대형 해킹사고가 끊이질 않는다. 블록체인은 암호학 기반의 분산원장 기술을 이용해 보안성이 뛰어나다고 평가받지만 거래소의 보안사고는 여전하다.
지난 2월 현재 국내 암호화폐 거래소의 자산규모는 17조원을 넘어섰지만, 보안 수준은 턱 없이 열악한 것으로 조사됐다. 거래소는 ‘탈중앙’이라는 블록체인의 철학을 거스르며 중앙신뢰 기관의 역할을 한다. 중요한 데이터가 집중된 데이터베이스는 항상 해킹의 대상이 된다. 또 시스템이 복잡해질수록 보안 취약점은 많아진다.
거래소가 나서서 악순환의 고리를 끊는 수 밖에 없다. 이를 위해선 거래소가 디도스방어, 방화벽, 침입방지시스템 등 보안 시스템과 망분리, 암호화, 접근통제 시스템, 엔드포인트 보안 솔루션 도입에 적극 나서야 한다.
< 저작권자 ⓒ 서울경제, 무단 전재 및 재배포 금지 >