Bitcoin 개인지갑 관리와 해커의 Dust Attack 예방법

 

비트코인 셀프 커스터디


앞으로 가면 갈수록 비트코인의 개인지갑 관리는 일반화되어 갈 것이다. 비트코인 개인지갑 관리에서 가장 중요한 것은, 물론 니모닉의 철저한 보안 관리이다. 니모닉을 외울수 있으면 외우면 좋다. 24개 영어 단어의 니모닉이라고 하더라도 단어의 뜻을 연동시켜서 외우면 쉽게 외울 수 있다. 니모닉을 철판에 보관하는 것도 중요하고, 몇 개로 나누어 별도의 장소에 보관하는 것도 중요하다. 패스프레이즈는 당연히 설정하는 것이 좋고, 패스프레이즈는 당연히 외워야 한다. 물론 처음에는 아침 저녁으로 반복해서 머리 속에 각인되도록 외워야 한다. 


이 글에서는 비트코인 개인지갑 관리에서 또 하나 주의할 점을 소개하고자 한다. 그것은 Dust Attsck 이라는 것인데, 말 그대로 해커의 먼지 공격이라는 것이다. 이것은 해커가 비트코인 주소체계가 복잡한 것을 이용하여 공격하는 것인데, 즉 개인지갑에 있는 비트코인 주소들의 처음과 끝자리가 몇글자 비슷한 것을 생성해서 자신이 가지고 있는 아주 적은 소량의 비트코인(사토시 단위)을 공개키를 통해 보내놓고, 상대방이 비트코인 주소들을 꼼꼼히 체크하지 않고, 개인지갑에 있는 주소의 처음과 끝자리 부분만 대충 확인하고 복사해서 사용하는 경우를 낚시하듯 기다리면서 실수로 본인이 보낸 주소로 보내주기를 바라는 비트코인 낚시 방법의 공격인 것이다.


다시 말하지만, Dust Attack은 해커가 상대방의 개인키(니모닉)나 주소를 탈취하는 방법이 아니다. 해커가 던져 놓은(극히 작은 소량의 비트코인을 보내 놓은) 주소를 상대방이 실수로 복사 선택서 그 주소로 비트코인을 보내게 하는 낚시형 탈취법인 것이다.


실제 사례



위 그림의 주소는 오랫동안 잠자고 있는 주소이다. 이 주소는 1Eui~ 시작하고, 62Ng로 끝나는 주소이고, 이 주소에는 약 8.48개의 비트코인이 들어 있다.



위 그림은 이 지갑의 UTXO 구성 비율이다. 


그런데 이 지갑의 주인은 1Eui~ 시작하는 주소를 몇 차례 사용한 것으로 아래 그림에서 나타난다.







왼쪽이 보낸 주소이고, 오른쪽이 받은 주소이다. 1Eui~ 주소에서 1Lds~ 주소의 어디론가로 보냈다. 그러니까 이 지갑의 주인은 1Eui~로 시작하는 주소를 꾸준히 재사용하는 것으로 나타난다.


그런데 가장 최근의 트랜잭션을 보면, 




알수 없는 누군가가 이 지갑으로 소량의 비트코인을 보낸 것으로 나타난다. 즉, 1Eu5~로 시작하는 주소의 주인이 이 지갑 주인의 주소로(1Eui~) 0.00000600BTC (600 사토시 / 글 작성 시점 기준 한화 약 1천원 정도)를 보낸 것이다. 

이것이 바로 Dust Attack 이다. 

즉 보낸 사람(1Eu5~)이 본인이 아니다. 주소가 얼핏보면 비슷한데 ' 5 '와 ' i ' 의 차이이다.


이에 대해서 조금 자세히 들여다 보자.




해커는 이 지갑 본래의 주소(1Eui~)와 비슷하게 주소를 만들려고 자신의 주소를 여러번 재생성한 것이다. 그래서 이 주소와 비슷한 주소(1Eu5~)를 생성한 것이다. 심지어 주소의 뒷부분도 같다.(62Ng)


해커는 왜 이런 짓을 했을까? 보통 사람들은 길고 복잡한 중간 부분의 주소를 확인하지 않고 앞자리와 끝자리만 본다는 점을 노린 것이다. 그리고 워치온리 월렛을 보면, 특히 넌척월렛은 앞자리와 뒷자리만 보여준다.(윗 그림의 검정색 부분)


해커는 8BTC가 들어 있는 주소로 600 사토시를 보낸 것이다. 그리고 무한정 기다리는 것이다. 언젠가 상대방이 실수로 자신(해커)의 주소를 복사해서 사용하기를 말이다.


결론 : Dust Attack 공격을 방어하는 방법


자신의 트랜잭션 히스토리에서 이전에 사용했던 주소를 복사해서 사용하지 않는 것이다. 즉, 가능한 기존 주소를 복사해서 재사용하지 않고, Reive버튼을 눌렀을 때 나오는 새 주소를 사용하면 된다. 참고로,하나의 비밀키(개인키)에서 만들어지는 종속된 주소는 무한히 생성되기 때문이다.



다음 이전