개인지갑 해킹으로 인한 자산 손실

in #kr3 years ago

image.png

코로나가 아니면 주기적으로 암호화폐 관련 지인들과 오프라인에서 다양한 정보를 교환하게 되는데, 사적모임제한이 다시 걸리기 전에 약속되었던 모임에서 다시 다양한 경험과 지식들을 공유받아서 연말을 충전된 상태로 마무리할 수 있을 것 같습니다.

하지만 이 모임에서도 단연 암호화폐 자산관련 해킹이 큰 이슈로 다가왔습니다. 거래소 해킹, 러그풀, DeFi 프로젝트 어드민키 러그풀등 다양하게 있었지만, 그외에도 개인지갑이 어떠한 이유에서던지 통제권을 잃어서 자산을 손실보는 방법이 가장 안타까웠습니다. 우선 사례별로 다양한 개인지갑 해킹 방법등에 대해서 알아보고 방지에 대한 방법도 같이 고민해보는 시간을 가지도록 하겠습니다. 글이 생각보다 길지만 꼭 읽고 행동에 옮긴 셨으면 좋겠습니다.

📢 출처 : jayplayco의 암호화폐 공부방 (텔레그램 채널: jayplaystudy)

🟢 기본개념
우선 개인지갑이라는 것은 자신이 시드문구나 키를 직접 관리를 하면서 해당 블록체인과 직접 소통과 거래를 하는 방식입니다. 메타마스크와 같은 소프트웨어 지갑도 있을 수 있고, 레져나 디쎈트와 같은 하드웨어 지갑도 이용될 수 있습니다. 특징은 일반적으로 시드문구나 키를 도난당했을 경우 해당 지갑은 더이상 자산을 지킬 수 없다는데 있습니다.

🔸 시드문구나 키 탈취
시드문구나 키의 경우는 탈취하는 방법은 보통 사용하는 PC나 스마트폰의 해킹에 의한 경우나 인터넷 연결의 해킹에 의해서 발생할 수 있습니다. 즉, PC나 스마트폰에 악성 소프트웨어가 잠입해서 키입력되는 것을 감지를 하고 해커한테 아예 시드문구를 전달해주는 방식이나, 공용 와이파이에서 시드문구등을 입력하게 되는 경우 이 거래내역을 캐치해서 해당 지갑의 권한을 가져가는 방식입니다.

이때 중요한 것은 지금 사용하는 지갑이 해킹되지 않았다고 해서 100% 안전하다는 것은 아니라는 것입니다. 해커들의 경우는 지갑의 시드문구등을 해킹해두고 봇등을 이용해서 일정 부분 이상의 자금이 모였을때 해당 지갑을 털어가는 방식을 택하는 경우도 많기 때문입니다. 즉, 이전에 사용했던 지갑의 경우 사용환경에 따라 해킹이 되어있었을 경우 다시 사용하게 되면 그때가서 털리거나, 초기에는 자금이 별로 없어서 상관이 없었는데, 이후 자금이 많아졌을때 털리는 경우가 생깁니다.

🔸 스마트컨트랙트에 의한 권한 탈취
DeFi를 하시는 분들은 개인 지갑을 해당 프로젝트와 연결을 할때 다양한 권한을 넘겨주게 되어 있습니다. AMM의 경우는 사용을 위해서는 해당 자산에 대한 권한을 넘겨야합니다. 그래야지 AMM을 통해서 자산이 스왑되기 때문입니다. 하지만 만약에 프로젝트 측에서 예를 들어서 USDT를 사용하게 될 권한을 악용한다면 지갑에 있는 USDT를 사실상 다른곳으로 전송할 수도 있습니다.

DeFi상의 LP스테이킹등도 LP토큰을 스마트컨트랙트에 Deposit (예치)하는 형태로 이후에 다시 출금을 해도 되는 권한을 가지는건데, 스마트컨트랙트상 어드민이 이것을 건들어도 되는 권한을 가지고 있다면 마음만 먹으면 안에 있는 LP 토큰을 다 빼갈 수 도 있습니다.

문제는 많은 초기 DeFi 프로젝트들은 이런 권한을 가지고 시작을 한다는 것입니다. 혹시나 하는 경우에 접근을 통해서 조치를 위한 프로젝트 입장에서는 안전장치이면서도 다른 한편으로는 나쁜마음을 먹으면 투자자들의 자금을 전부다 털어갈 수 도 있는 장치입니다. 믿을 수 있는 프로젝트를 이용해야하는 이유중 하나입니다. 이것은 Audit을 받았다고 해서 다르지는 않습니다.

🔸 투자자의 욕심이나 습관을 이용한 탈취
최근에는 DeFi상에서 스마트컨트랙트에 장난을 쳐서 개인지갑의 자금을 빼가는 경우도 있습니다. 몇가지 예를 들어보면 다음과 같습니다.

▪️ 가치가 있는듯한 토큰을 에어드랍 - 최근에는 너무 많이 써서 투자자들이 잘 속지는 않는데, 스마트컨트랙트를 건들어서 새로 생성한 토큰에 대해 LP를 구성하고 가격을 만들어놓습니다. 그리고 이 토큰을 수많은 지갑에 에어드랍을 합니다. 하지만 해당 토큰을 LP풀에서 스왑을 하기 위해서 접근을 하게 되면 스왑 에러가 나면서 지정한 홈페이지로 이동해서 스왑을 하라고 안내를 합니다. 이때 욕심에 눈이 멀어서 해당 페이지에 가서 스마트컨트랙트를 승인하는 순간에 개인지갑에 있는 자금 전송 권한을 같이 주게되면서 털리게 되는 방식입니다.

▪️ 피싱성 자금이 있는 지갑을 투척 - 중국은 더이상 암호화폐 자금을 사용하지 못해서 그냥 저 지갑 너에게 줄께 하고 지갑에 대한 시드문구나 프라이빗키를 줍니다. 지갑을 확인해보면 실제로 자금이 USDT등 상당히 들어있습니다. 그리고 자금을 빼려고 하면 블록체인에서 사용해야할 가스비가 없는것이 확인됩니다. USDT를 빼가기 위해서 ETH나 BNB등등을 전송하게 되면, 봇이 이 개인지갑에 들어올 자금을 캐치하고 같은 트랜스액션내에서 다시 빼갑니다. 정말 낚시입니다.

▪️ 사이트 피싱 / DNS 해킹 - MEW의 경우 온라인상 이더리움 지갑 생성이 가능합니다. 하지만 DNS를 해킹하게 되면 해당 사이트로 이동을 할때 원래 가야하는 사이트가 아닌 해커의 사이트로 이동을 하게 됩니다. 워낙 공격 범위가 넓어서 자주 있지는 않지만, 직접 시드문구를 넣어야만 접근이 가능한 인터넷 지갑이나 서비스 이용이 위험한 이유중 하나입니다.

▪️ 구글 광고 해킹 - 큰 웹사이트의 경우는 상관이 없겠지만, 작은 DeFi 사이트나 아직 덜 알려진 DeFi 프로젝트, 잘 알려졌어도 URL을 통해서 진입을 하는게 아니라 검색창으로 검색해서 들어가는 경우 매우 조심해야합니다. 특히 한국분들의 경우는 일반적으로 URL을 직접 입력해서 들어가지 않고 구글이나 네이버등에서 검색해서 2차 접속을 많이 하기 때문입니다. 해킹 방식은 단순합니다. 예를 들어서 Uniswap을 들어가려고 가정한다면, 검색시 가장 위에 보이는 사이트는 보통 광고를 하는 사이트입니다. 해커들은 Uniswap 광고를 해서 Uniswap과 완전 똑같은 사이트를 만들어놓고, 메터마스크 등으로 접속시 에러 메세지를 그럴듯하게 표출하고 시드문구를 입력하라고 하거나 더욱 단순하게는 메타마스크로 연결후 해당 지갑의 토큰 전송 권한을 받습니다. 그리고는 자금을 털어가는 방식입니다.

▪️ 하드웨어 지갑 해킹 - 하드웨어 지갑은 안전하지만, 누군가 이미 먼저 사용하고 그다음에 자기가 사용하게 될 경우 리셋이 되지 않으면 사실상 누군가 나에게 지갑을 돈주고 팔고 자금이 들어오기만을 기다리는 셈입니다. 기억해야 할게, 시드문구는 알려져버리면 끝입니다. 그것을 그리고 누군가 이미 가지고 있다면 더욱더 대책이 없습니다.

▪️ 개인 실수 - 지갑 주소를 입력하면서 메모를 해야하는 블록체인들도 많이 있습니다. 이때 메모란에 넣어야할 메모가 아니라 실수로 프라이빗키를 넣는 경우가 있습니다. 해커세계는 냉정하기 때문에, 이런 실수만 찾아서 곧바로 자금을 빼가는 봇들이 많이 있는 것으로 확인됩니다. 즉, 실수후 거의 실시간으로 자금은 빠진다고 보시면 됩니다.

🔻 대응 방안

✅ 개인지갑의 자금을 한곳에 집중하지 않는다. 최대 30%정도만 한곳에 집중되게 하면 지갑 하나가 탈취를 당하더라도 전체 자금의 30%만 탈취를 당하게 된다.
✅모르거나 확신이 없는 프로젝트의 경우는 버너 지갑 “Burner Wallet”을 생성해서 필요한 자금만 넣어서 참여를 한다. 귀찮더라도 언제나 새롭게 생성해서 사용을 한다. 가스비가 아깝다고 해서 하지 않을 경우에는 전체가 다 털리는 불상사가 발생한다.
✅ 블록체인별로 지갑을 상이하게 사용한다. 이더리움, 바이낸스 스마트체인, 폴리곤, 크로노스등은 지갑주소 한개로 다 접근이 가능하다. 하지만 이중 한곳만 털려도 모든 블록체인상의 자금이 같이 털리게 된다.
✅ 자금 규모가 커질 경우 하드웨어 지갑을 필수적으로 사용하자. 하드웨어 지갑도 메타마스크나 블록체인 지갑 크롬 플러그인 연동등으로 DeFi에 참여가 가능하다. 물론 이때도 믿지 못하는 프로젝트에 들어가서 권한을 넘겨버리면 대책이 없는 것은 마찬가지로, 검증된 DeFi만 참여를 해야한다.
✅ DeFi 사이트로 갈때는 검증된 링크를 통해서 접근한다. 가장 좋은 것은 북마크를 통해서 진입을 하거나, 직접 url을 쳐서 들어가는 방식이다. 그리고 혹시나 있을 DNS 해킹을 대비해서 자주 사용하던 사이트를 갔는데, 권한을 다시 달라고 하면 우선 의심을 하고 멈추면서 관련 소식을 찾아본다.
✅ DeFi에 사용하는 기기는 가능하다면 따로 마련하자. 아이폰이던, 노트북을 따로 맞춰서 하던 따로 사용할 환경이 주어지면 그렇게 하도록 하자.
✅ 공용장소에서는 암호화폐 관련 비즈니스를 하는 것이 아니다. 공용 WiFi, 공용 네트워크, 심지어 남의 USB도 내 암호화폐 자산을 사용하는 기기에는 함부로 접근 시키는 것이 아니다.
✅ 하드웨어 월렛은 공홈에서 구매한다. 스마트스토에서 몇퍼센트 싸게 사려고 하거나 중고 제품을 사서 키가 이미 털린 제품을 손에 넣으면 자산을 지킬 방법이 없다. 렛저와 디쎈트 공홈도 참조링크에 있는 할인링크와 코드를 이용하면 시중보다 저렴하게 구매가 가능하다.
✅ 내 자산을 지키기 위해서 습관적이지 않은 접근자세를 가진다. 습관적으로 메타마스크 승인등을 하게 될 경우 프로젝트 한번만 잘못 만나도 지갑의 자산을 잃는 수 가 있다.
✅ 만약 정말 불안하면 지갑도 멀티시그를 사용한다. 하지만 개인 사용자의 경우는 멀티시그 사용시 DeFi의 실질 사용경우 어려움이 많이 생길 수 있다. (매우 귀찮아 진다. 뭔가를 할때마다 몇번씩 승인을 해야하기 때문이다.)

🔰 개인적인 생각
암호화폐 시장은 포기하지 않으면 지갑을 탈취당해도 다시 새롭게 일어나서 자산을 만들어갈 수 있으며, 주변의 분들도 직접 당하신 분들의 경우 그런식으로 복구들을 하고 계십니다. 하지만 한번 해킹후에 멘탈이 심하게 흔들리는 것은 물론이거니와 특히 개인 지갑의 경우는 많은 경우는 자신의 관리 부실도 한몫을 하기 때문에 더욱더 힘듭니다.

자산을 증식하는것도 매우 중요하지만 그것보다도 더욱 중요한 것은 증식한 자산을 지키는 것입니다.

👉 참조링크 : https://bit.ly/3wRAh1R
📢 출처 : https://t.me/jayplaystudy

Sort:  

좋은 글 감사합니다. ^^

읽어주셔서 감사합니다. ^^

쏙쏙 이해되게.. 감사합니당

감사합니다. ^^