Profanity로 만든 이더리움 Vanity 주소들이 bruce force방식으로 해킹이 되어 가장 근본적이고 기초적인 seed key가 해킹되는 사태가 발생했습니다. 해킹 방지를 위해 이더리움 주소 어디서 만들었는지 체크하고, 프로젝트를 운영할 경우에는 이에 따른 owner 주소 변경등의 몇가지 작업이 필요합니다.
해킹된 배경및 방법
이미 몇일 전에 1inch 개발자들이 발견한 버그이긴 하지만 바이낸스와 코인베이스등에서 유동성을 제공하던 Wintermute라는 업체의 이더리움 주소가 해킹되면서 약 160M의 손실을 본 상태에서 해당 버그로 인한 주소들은 이제 안전하지 않다는 것이 최종적으로 결론이 났습니다. [소스]빠르게 해당 사항이 있는지를 확인하기 위해서 체크사항 만들어드립니다.
▪️해당되는 툴로 주소를 만들었을 경우 seed키가 털리는 정도의 해킹임, 즉 내 지갑에 자금을 넣고 공용 자산으로 만드는 경우와 같다고 판단하면 됨.
▪️해당되는 툴 : Profanity로 만든 Ethereum Vanity address와 스마트컨트랙트
▪️해킹된 방법 : Profanity가 Vanity 주소 생성을 위한 로직의 취약점을 이용해 Bruteforce를 통한 seed private key 추출 방식. 즉, 외부에서는 자신의 주소가 이미 해킹 완료된것인지는 자금이 출금되는 이후에나 확인이 됨.
해결책
▪️ 개인주소 : 개인주소의 경우는 사실상 취약점이 발견된 후에는 이미 주소가 언제라도 털릴 수 있다는 뜻입니다. 즉, 아직 공격이 되지 않았을 경우에는 해당 지갑에 있는 모든 자금과 NFT등을 새로운 지갑으로 이동하는 것이 무조건적으로 해야할 일 중 하나입니다.
▪️ Profanity를 이용한 스마트컨트랙트 : Profanity의 생성된 지갑을 이용해서 스마트컨트랙트를 발행하는 경우도 있습니다. 이때는 해당 스마트컨트랙트의 Account Owner 계정을 변경을 해줘야합니다. 만약 변경이 불가능할 경우, 해당 스마트컨트랙트는 언제라도 해킹이 가능한 사실을 인지하고 프로젝트의 변경이나 새로운 스마컨트랙트 발행을 통해 대처를 해야합니다.
Profanity에 와 Vanity 주소에 대한 이해
우선 이더리움 Vanity에 대한 이해는 ENS 도메인의 등장과 비슷한 개념이라고 생각하시면 됩니다. 즉, 이더리움의 주소는 보통 0xab12312412414860134814da343fc324 이런 비슷한 형태로 보여지는데, 사실상 사람이 보고 외울 수 있는 형태의 주소는 아닙니다. 복합문자는 보통 a부터 f까지의 문자를 소문자 대문자까지 이용하고 중간에 섞어서 사용이 되는데, 만약에 주소 앞이나 뒷쪽에 사람이 읽을 수 있는 글자 형태로 구성이 된다면, 조금더 가독성이 높은 주소를 만들 수 있고, 프로젝트 입장에서도 조금더 읽기 편한 주소를 만들어갈 수 있는 장점이 있습니다. 예를 들어 커피 채굴 DAO를 만들어서 주소를 만들때 ENS로 coffeedao.eth 라는 주소를 연동하고 진짜 이더리움 주소도 다음과 같이 만든다면 일반 사용자들도 가독성이 훨씬 좋을 것으로 예상됩니다.
Vanity 주소 예시 : 0xC0ffeeDa0F16844AFCCa77Ee85CC5FF04ccc2078
https://cointool.app/vanityAddressGenerator/eth
이러한 이유로 일부 프로젝트들은 자신만의 이더리움 주소 가독성을 높이기 위해서라도 Vanity 주소를 이용해서 지갑 주소를 생성하고 이 주소를 이용해서 스마트컨트랙트를 만들기도 했습니다. 그중 대표적인 회사가 이번에 160M을 이러한 Profanity를 이용해서 생성된 Vanity 주소를 이용한 Wintermute 입니다.
지금까지 알려진 피해
현재 가장 큰 피해 금액은 유동성 제공 서비스를 하던 Wintermute의 160M 입니다. Wintermute의 경우는 CEX 에서의 MM 뿐만 아니라 DEX에서도 상당한 유동성을 제공하고 있었는데, 이중에서 DEX에서 Profanity를 이용해서 생성된 스마트컨트랙트의 유동성이 빠져나가고 현재는 Curve Finance에 들어간 것으로 확인되고 있습니다. Curve Finance에 들어간 것은 일부 CEX도 연관이 있는 관계로 쉽게 전체를 밴할 수 없기 때문입니다. 이는 이전 토네이도 캐시의 blending을 통한 자금 세탁의 경우는 자금 서비스 주소가 막히는 현상때문에 있었던 것 같습니다.
추가적으로 해당 Profanity에대한 버그 자체는 이전부터 공격 해커들에게는 이미 알려진 상태로 작업이 진행되고 있었던 것으로 예상이 됩니다. 각종 개인지갑에서 약 3M 정도의 자금이1inch의 보안보도 직후에 빠진것이 확인이 되었습니다.
한 유저의 경우는 다행이 1inch의 보안 보도를 보고 약 1M이 넘는 자금과 NFT를 이동할 수 있었다고 합니다. [소스]
Profanity의 현재 주소
Profanity 깃헙 코드
Profanity는 깃헙 코드로 제공이 되는 형태라서 일반 유저가 접근하기는 쉽지 않습니다. 그렇기 때문에 일반적으로 깃헙 코드로 직접 돌릴 줄 아는 개발자분들이나 스마트컨트랙트를 만들어가는 프로젝트 개발자분들의 지갑이 오히려 타격이 더 큰 경우가 많았습니다.
반대로 Profanity는 오픈소스로 개발자도 이미 수년전에 버린 프로젝트로 알려져있습니다. 현재는 개발자들이 Profanity로 생성된 주소들을 추적하고자 노력중이라고 알려져있는 상태입니다.
사실 Vanity 주소를 생성하는 툴은 여러가지가 있으며, 현재 존재하는 Vanity 주소중에서 큰 자금을 소유한 자금들은 대부분 Profanity를 이용해서 만들어지지 않은 것으로 확인이 된다고 합니다. 하지만 Profanity가 보안의 취약점을 안고 운영당시에는 가장 빠르고 효과적으로 Vanity 주소를 연산해준 결과가 결국은 Brute Force 해킹의 빌미를 제공한 것으로 확인이 됩니다.
아쉽게도 이미 2022년도 초에 이런 보안에 대한 문제가 인지가 되고 있었으나, 실제로 크게 이슈화가 된 것은 1inch의 보고후에 Wintermute의 대형 해킹건의 발생입니다.
마치면서
스마트컨트랙트를 사용한지도 이미 수년이지만 여전히 지갑 생성툴의 안정성과 이를 직접적으로 공격하는 형태의 다양한 해킹 시도는 MEW (My Ethereum Wallet)의 DNS공격이나, Vanity 이더리움 주소와 같은 유저 편의 툴의 취약점 공격등으로 이어질 수 있는 극초기의 보안에 대한 주의가 지속적으로 필요한 투자 생태계임을 절대 잊지 말아야 합니다.
오늘이라도 하드웨어 월렛을 하나라도 더 구입을 해야 고민을 하시는 분들은 아래 칼럼을 참조하시기 바랍니다.
👉더욱더 많은 정보를 원하시면 jayplayco의 암호화폐 공부방을 방문해주세요.
👉아폴로X CEX 거래소 가입링크
아폴로X DEX 거래소 가입링크