💡 인적 문제로 발생할 수 있는 보안적 이슈
해커들은 이익을 위해 블록체인을 공격한다. 51% 공격, 리플레이 공격, 이클립스 공격 외에도 다양한 보안적 이슈들이 발생한다. 그 중에서도 악의적인 공격자에 의해 발생할 수 있는 공격인 크립토재킹, 더스팅 공격, 시빌 공격에 대해 알아보자.
✓ 크립토재킹 공격
크립토재킹은 감염된 피해자의 장치를 사용해 암호화폐를 채굴하는 것을 의미한다. 공격자는 악성 채굴 프로그램을 사용하도록 유도하여, 해당 프로그램을 실행하면 악성 프로그램에 감염되어 눈치채지 못할 만큼 시스템 자원을 이용해 채굴을 하게 된다. 감염된 피해자도 자신도 모르는 새에 채굴을 시작하고 공격자는 피해자의 해시파워를 사용해 채굴 보상을 받는다. 암호화폐 채굴에는 많은 해시 파워가 필요하기 때문에 공격자들은 최대한 많은 피해자를 감염시켜, 저위험, 저비용으로 채굴을 위한 컴퓨터 자원을 모은다. 초창기 악성 채굴 프로그램은 악성 링크나 이메일 첨부 파일을 눌렀을 때 감염되도록 하였지만, 오늘날에는 보다 정교한 악성 채굴 프로그램이 개발되었다. 현재 대부분의 악성 채굴프로그램은 웹 사이트 스크립트를 통해 실행된다. 이를 웹 기반 크립토재킹이라고 한다. 크립토재킹은 랜섬웨어 등과 같이 컴퓨터 내 데이터를 손상시키지는 않는다. 다만 크립토재킹은 컴퓨터로 채굴을 하기 때문에 CPU의 성능을 저하시킨다.
* 웹 기반 크립토재킹
웹 기만 크립토재킹은 웹 사이트 내에서 실행되는 스크립트를 통해 악성 채굴 프로그램을 실행하여, 사용자가 웹 사이트에 머물러 있는 동안 브라우저를 통해 채굴을 하도록 한다. 웹 기반 크립토재킹은 보통 모네로를 많이 채굴한다. 모네로는 채굴을 위해 많은 해시 파워를 필요로 하지 않으며, 프라이버시와 익명성의 수준이 높아 거래를 추적하는 것이 어렵기 때문이다.
* 코인하이브
코인하이브는 웹 기반 크립토재킹을 최초로 구현하였다. 코인하이브는 자바스크립트로 채굴을 할 수 있도록 구성되어 있다. 코인하이브의 초창기 목적은 악성 채굴 프로그램이 아니라, 웹 사이트 소유자들이 광고가 아닌 채굴을 통해 수익을 얻을 수 있도록 하는 것이었다. 코인하이브는 대부분의 브라우저와 호환이 되며, 배포 역시 쉽다. 코인하이브를 사용하면 채굴 수익의 30%를 가져간다. 그러나 코인하이브는 그 목적과는 다르게 해커들이 여러 웹 사이트를 해킹하여 코인하이브를 통해 웹사이트 소유자나 사용자의 허락 없이 채굴을 하도록 만들기 위해 사용되기 시작하면서 많은 비난을 받았다. 오늘날 코인하이브는 보안 감지 프로그램에 의해 쉽게 확인되기 때문에 위협적이지는 않지만, 코인하이브의 배포와 적용이 쉽기 때문에 주의를 기울여야 한다.
✓ 더스팅 공격
더스팅 공격은 해커들이 아주 적은 양의 코인을 사용자의 지갑에 전송하여 사용자의 신원을 파악하는 악성 공격이다. 먼저 더스트는 아주 적은 양의 코인이나 토큰을 의미한다. 가령 비트코인의 가장 작은 단위는 1 사토시로, 환산하면 0.00000001BTC이다. 수백 사토시 정도를 더스트라고 부른다. 더스트는 가치 자체가 거의 없다보니, 일반적인 지갑 사용자들은 이 더스트들은 잘 신경쓰지 않는다. 해커들은 일반 사용자들이 더스트 수준의 작은 금액에는 관심을 두지 않는다는 것을 악용한다. 먼저 일반 사용자들의 주소로 더스트 수준의 적은 금액을 보내 많은 주소를 더슽이한다. 그리고 나서 해당 송금 트랜잭션과 더스팅된 지갑들의 트랜잭션을 추적한다. 이 트랜잭션을 추적하다보면, 결국 지갑을 소유한 개인이 누구인지 알 수 있다.
블록체인은 탈중앙화 되어있고 주소 기반이기 때문에 익명성이 보장된다. 그러나 대부분의 사람들은 거래소를 이용하며, 개인 지갑과 거래소 지갑을 연결시킨다. 따라서 거래소 지갑에 있는 사용자의 개인 정보가 개인 지갑에도 연결되게 된다. 이러한 방식으로 해커들은 익명 사용자의 개인 정보를 파악한다. 2018년 10월, 비트코인 사무라이 지갑 개발자들은 일부 사용자들이 더스팅 공격을 받고 있다고 발표했다. 비트코인 사무라이는 더스팅 추적을 실시간으로 알려주는 등 사용자가 더스팅 공격을 받고 있음을 인지시켜 사용자가 의심스러운 자금을 걸러내 트랜잭션에 더스트 자금을 사용하지 않을 수 있도록 지원했다.
✓ 시빌 공격
시빌 공격은 한 개인이 네트워크의 여러 노드를 장악하려는 악성 공격이다. 공격자는 충분한 수의 가짜 노드를 생성하여, 기존의 신뢰할 수 있는 노드를 네트워크에서 제외 시킨다. 이를 통해 블록을 수신하거나 전송하는 것을 거부하거나, 다른 노드들을 네트워크에서 차단할 수도 있다. 공격자가 네트워크 전체의 해시 파워를 넘는 대규모 시빌 공격을 하는 경우에는 51% 공격도 함께 발생할 수 있다.
많은 블록체인은 다양한 합의 알고리즘을 이용해 시빌 공격을 방어한다. 그러나 합의 알고리즘은 시빌 공격을 원천적으로 봉쇄하기 보다는, 시빌 공격에 대한 비용 대비 수익보다 정상적인 채굴을 통한 비용 대비 수익을 더 크게 만들어, 시빌 공격 자체를 비효율적인 것으로 만든다. 가령, 작업 증명 방식에서는 새로운 블록 형성을 위해 특정한 규칙들을 가지고 있다. 규칙 중 하나는 블록을 생헝하는 능력이 작업 증명 방식 메커니즘의 전체 프로세싱 파워와 비례해야 한다는 것이다. 이는 새로운 블록을 생성하는데 필요한 컴퓨터 파워를 실제로 소유해야 함을 의미하며, 공격자가 많은 비용을 지불하여 해시 파워를 올려야 하기 때문에 공격을 감행하기가 매우 어렵다. 지분 증명 방식에서는 작업 증명 방식과 다르게 물리적 자원 아닌 경제적 자원을 사용해야 한다. 지분 증명 방식에서는 채굴을 하기 위해서는 압도적으로 많은 양의 자산을 블록체인에 스테이킹 해야하기 때문에, 시빌 공격을 했을 시 스테이킹 된 자신의 자산을 돌려받지 못할 수도 있다.
'블록체인 > 블록체인' 카테고리의 다른 글
ERC-6551, Token Bound Account (0) | 2024.05.17 |
---|---|
ERC1155 란 무엇일까?! 스마트 컨트랙트 코드로 이해해보기. (0) | 2022.09.12 |
이클립스 공격 (Eclipse Attack) (0) | 2022.08.05 |
리플레이 공격 (0) | 2022.08.05 |
51% 공격 (0) | 2022.08.04 |
댓글