검수요청.png검수요청.png

시빌공격

해시넷
(시빌 공격에서 넘어옴)
이동: 둘러보기, 검색

시빌공격(sybil attack)이란 공격자가 실제로는 한 명이면서 마치 여러 명인 것처럼 속이는 방식으로 네트워크상의 여러 노드를 제어함으로써, 의사결정에 좋지 않은 영향을 미치는 공격을 말한다. 익명성을 기반으로 운영되는 인터넷 백과사전인 위키백과에서 실제로는 한 명의 사용자가 여러 개의 다중계정을 만들고 악의적으로 사용함으로써 의사결정에 혼란을 주는 행위와 유사하다.

개요[편집]

시빌공격(Sybil Attack)이란 한 개인이 다수의 계정이나 노드, 컴퓨터를 구성해 네트워크를 장악하려는 온라인 시스템 보안 위협 중 하나이다. 시빌공격은 한 개인이 여러 개의 소셜 미디어 계정을 만드는 것처럼 간단할 수 있다. 하지만 암호 화폐의 세계에서는 한 개인이 블록체인 네트워크상에서 다수의 노드를 운영하는 것이라 보는 것이 더 적합하다. 시빌이라는 명칭은 다중 인격 장애라고도 불리는 해리성 정체 장애(Dissociative Identity Disorder)를 겪었던 시빌 도르셋(Sybil Dorestt)이라는 여성에 대한 사례 연구에서 유래되었다.[1]

문제점[편집]

블록체인 기술과 시빌 공격은 서로 큰 관련성이 있다. 비트코인 시스템에서 두 네트워크의 블록체인이 서로 다르다면 더 컴퓨터 파워가 강한 네트워크의 블록체인이 올바른 블록체인으로 인정받는다. 컴퓨터 파워를 기준으로 증명을 수행하겠다고 세계가 합의(Consensus)를 한 것이다. 구체적으로 비트코인에서는 채굴에 참여하는 컴퓨터들이 각각 해시(Hash)를 수행하도록 하는 작업증명(Proof of Work) 알고리즘에 의해 이러한 과정이 수행된다. 만약 증명의 기준이 아이피(IP)의 개수라면 시빌 공격의 대상이 되기 쉽다. 아이피의 경우 논리 주소(Logic Address)이므로 통신 패킷의 조작을 통해 충분히 통신 노드의 숫자를 늘릴 수 있다. 해커는 혼자서 여러 개의 아이피 주소를 이용해 자신이 가진 장부와 올바른 장부라고 거짓말 할 수 있기 때문에 블록체인이 아이피 주소의 개수로 증명된다면, 아이피를 가진 노드의 숫자를 무한정 늘려 증명하는 무한 생성 공격이 가능할 것이다.[2] 이처럼 공격자가 많은 수의 가짜 신원(혹은 시빌 신원)을 생성할 경우, 기존의 신뢰할 수 있는 노드를 네트워크에서 제외할 있다. 이후 블록을 수신하거나 전송하는 것을 거부할 수 있고, 다른 사용자들을 네트워크에서 차단할 수 있다. 공격자가 네트워크 컴퓨팅 파워나 해시 레이트의 대다수를 통제하는 대규모 시빌 공격일 경우, 51% 공격을 수행할 수 있다. 이런 경우, 주문 중인 거래를 변경하고, 트랜잭션의 승인 거부가 가능하다. 또한, 통제하는 동안 발생한 트랜잭션을 번복하여 이중 지급을 발생시킬 수도 있다.[1]

시빌 공격 방어법[편집]

작업 증명 방식(PoW, Proof of Work)[편집]

블록체인에서는 보통 합의 알고리즘을 활용한 작업증명(PoW)이나 지분증명(PoS) 같은 방식을 통해서 시빌 공격에 대응한다. 하지만 합의 알고리즘은 시빌 공격을 원천봉쇄하지는 못한다. 대신 시빌 공격을 비효율적인 수단으로 만들 수 있다. 예를 들어, 시빌 공격을 할 때 소모되는 비용이 시빌 공격에 성공했을 때 얻는 이익보다 훨씬 커지도록 한다. 일반적으로 작업증명 방식은 51% 공격 위험에 노출돼 있다. 51% 공격은 블록체인의 전체 노드 중 50%를 초과하는 컴퓨팅 파워를 확보한 뒤 거래 데이터를 조작해 이익을 얻으려는 해킹 공격이다. 이런 위협에서 벗어나기 위해 작업증명 방식을 탑재한 블록체인은 경제적 보상 시스템을 도입했다. 새로운 트랜잭션이 발생하면 채굴자가 해당 트랜잭션이 유효한지 검증하고 그 대가로 보상을 받는 것이다. 하지만 작업증명 방식은 채굴자 간 경쟁을 촉발하고 과반수 이상의 컴퓨팅 파워를 장악하려면 큰 비용이 발생한다. 또한, 작업증명 방식은 트랜잭션 처리 속도가 느리고, 연산을 위해 소모하는 전력이 많아 에너지 낭비가 크다는 단점이 있다.[3]

지분 증명 방식(PoS, Proof of Stake)[편집]

지분증명 방식은 해당 암호화폐를 보유하고 있는 지분율에 비례해서 블록 생성 확률을 갖는 합의 알고리즘이다. 참여자들의 돈을 테이블 위에 올려놓고 만지지 못하도록 감시하면서 블록을 생성할 권한을 임의로 부여하는 것과 같다. 작업증명 방식이 물리적 자원을 투입했다면 지분증명 방식은 경제적 자원을 투입하는 것이다. 참여자가 불법적인 행동을 할 경우, 해당 참여자의 지분을 줄임으로써 참여자가 네트워크에 이익이 되는 방향으로 행동하도록 유도한다. 작업증명 방식보다 자원 소모가 적다는 장점이 있다. 지분증명 방식보다 안정성에 대한 검증이 덜 되었지만, 토큰을 대여해서 자신의 영향력을 비교적 적은 비용으로 크게 늘릴 가능성이 있다.[3]

기존 서비스 제공업체가 사용하는 방법[편집]

기존 서비스 제공업체가 사용하는 방법으로 사람만이 할 수 있는 작업을 요구하여 시빌 공격을 막기도 한다. 대표적으로 'CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart, 완전 자동화된 사람과 컴퓨터 판별, 캡차)'가 있다. CAPTCHA는 이미지에 출력된 글자나 숫자를 입력창에 그대로 입력하게 해 사람인지 확인한다. 사용자에겐 '로봇이 아닙니다' 문구로 익숙하다. 단순해 보이지만 컴퓨터는 비틀거나 회전시킨 필체를 인식하지 못하기 때문에 인공지능 기술로도 공격하기 어려울 정도로 효과적이다. 또한, 변형된 필체를 인식하기 위해서는 별도의 딥러닝이 필요하다. 다만 미래에는 인공지능 기술 발달로 무용지물이 될 수 있다. 하지만 CAPTCHA으로 신원 확인은 할 수 없기 때문에 신원확인은 제삼자에게 인증 받는 방식을 활용하고 있다. 통신사 본인인증과 여권 인증같은 경우 사용자가 계정을 만들 때 주민등록번호, 핸드폰 번호 등 개인의 고유 정보를 받아 다른 기관을 통해 신원을 확인하는 것이다. 가장 확실한 신원 확인 방법으로 평가받지만 인증 업무를 맡는 중앙 기관을 신뢰해야 한다는 한계가 있다.[3]

사례[편집]

이더리움 네트워크의 과부하 원인[편집]

중국의 작은 암호화폐 거래소로 인해 며칠 동안 이더리움은 비정상적으로 높은 네트워크 트랜잭션 및 가스 요금이 발생했다. 장 지장(Zhang Jian)이 만든 F코인(FCoin) 거래소가 그 주인공으로 이 거래소는 이더리움 블록체인을 일시적으로 절름발이로 만들었고, 관심을 끌기 위해 고의로 시빌공격을 조장한 혐의로 기소됐다. 이때 이더리움 네트워크 거래 가격이 사상 최고치에 도달해 DApp 및 높은 트랜잭션 요금을 지급하지 못하는 사용자들이 발생했다. 이 문제를 일으킨 네트워크 트랜젝션 급증은 F코인 거래소의 활동에 대한 의심으로 옮겨졌다. F코인은 거래소에서 새로운 코인을 상장하기 전 투표를 프로토콜을 사용해 가장 많은 투표수를 기록한 암호화폐가 상장되는 시스템을 가진다. 하지만 이는 특정인이 다양한 계정을 사용하여 투표를 수행한 것처럼 보이게 하여 원하는 코인이 상장되도록 유도하는 작업이었다. 이것을 시빌공격이라 한다.[4]

P2P 기반 서비스[편집]

토렌트(Torrent)와 같이 P2P(Peer to Peer) 기반의 서비스를 제공하고 평판이 좋은 애플리케이션을 다운로드받아서 사용해보니 악성코드였던 실생활에서 찾아볼 수 있는 시빌공격의 피해 사례가 있다. 즉, 악성코드 유포자 한 명이 악성코드를 좋은 프로그램인 척 인터넷 공간에 퍼뜨린 뒤에 여러 계정을 만들어 '이 프로그램은 굉장히 우수한 프로그램이다'라고 소개해 다른 사람들이 다운받도록 한 것이다.[4]

동영상[편집]

각주[편집]

  1. 1.0 1.1 시빌 공격(Sybil Attacks)이란?〉, 《BINANCE ACADEMY》, 2018-12-07
  2. 시빌 공격(Sybil Attack)〉, 《비트웹》, 2018-01-22
  3. 3.0 3.1 3.2 김도윤 기자, 〈디지털 신원과 블록체인 ②〉, 《D.STREET》, 2019-06-17
  4. 4.0 4.1 편집국 편집장, 〈최근 이더리움 네트워크 과부하 원인은 시빌 공격!〉, 《Epio》, 2018-07-07

참고 자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 시빌공격 문서는 보안에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.