저자: INSIGHTFUL; Deep Tide TechFlow에서 편집
면책 조항
이 가이드는 어떠한 내용도 보장할 수 없으며 '암호화 또는 사이버 보안 전문가'의 관점에서 작성된 것이 아니라 여러 출처와 개인적인 경험을 바탕으로 한 지속적인 학습의 결과물입니다.
예를 들어, 저 역시 처음 이 분야에 뛰어들었을 때 실패에 대한 두려움(FOMO)과 욕심(가짜 라이브 스트리밍 사기, 가짜 MEV 봇 사기)으로 사기를 당한 적이 있어서 시간을 들여 보안을 신중하게 배우고 설정하고 이해하는 데 시간을 들였습니다.
모든 것을 잃거나 많은 자산을 잃고 나서야 보안에 대해 배우게 되는 사람이 되지 마세요.
해킹 또는 사용자 실수?
지갑, 토큰 또는 NFT의 모든 유형의 '해킹' 또는 침해는 크게 두 가지로 분류할 수 있습니다.
토큰 승인
토큰 승인은 실제로 스마트 컨트랙트가 지갑의 특정 유형 또는 토큰 수에 액세스하고 이동하도록 허용하는 권한입니다.
예시:
배경 정보로, 기본적으로 이더 네트워크의 모든 토큰은 ETH를 제외한 ERC-20 토큰입니다.
ERC-20 토큰의 특징 중 하나는 다른 스마트 콘트랙트 승인 권한을 부여할 수 있다는 것입니다.
토큰 교환이나 브리징과 같은 핵심적인 탈중앙 금융 상호작용을 수행하려면 언젠가는 이러한 승인이 필요합니다.
NFT는 각각 ERC-721과 ERC-1155 토큰으로, 승인 메커니즘은 ERC-20과 유사하지만 NFT 시장에도 적용됩니다.
메타마스크(MM)의 초기 토큰 승인 프롬프트는 몇 가지 정보를 제공하며, 그중 가장 관련성이 높은 정보는 다음과 같습니다.
승인하려는 토큰
연동 중인 웹사이트
연동 중인 스마트 컨트랙트
토큰 권한 수를 편집하는 기능
전체 세부 정보 드롭다운 메뉴에는 승인 기능이라는 추가 정보가 표시됩니다.
모든 ERC-20 토큰은 ERC-20 표준에 명시된 대로 특정 기능과 속성을 갖춰야 합니다.
이 중 하나는 승인된 수량에 따라 토큰을 이동하는 스마트 컨트랙트의 기능입니다.
이러한 승인의 위험은 악성 스마트 컨트랙트에 토큰 액세스 권한을 부여하면 자산이 도난당하거나 고갈될 수 있다는 것입니다.
무제한 승인과 사용자 지정 제한 승인(ERC-20 토큰)
많은 DeFi 앱은 기본적으로 ERC-20 토큰을 무제한으로 승인하라는 메시지를 표시합니다.
이것은 사용자 경험을 개선하기 위한 것으로, 더 편리하고 향후 추가 승인이 필요하지 않아 시간과 가스비를 절약할 수 있습니다.
이것이 왜 중요한가요?
토큰을 무제한으로 승인하면 자산이 위험에 처할 수 있습니다.
토큰 승인을 특정 수로 수동 설정하면 더 큰 규모의 새 승인 없이 dApp이 이동할 수 있는 최대 토큰 수를 제한할 수 있습니다.
스마트 컨트랙트가 악용될 경우 위험을 줄일 수 있습니다. 디앱에 무제한 승인을 부여했는데 해당 디앱이 취약해지면 해당 자산을 보관하고 승인을 부여한 지갑에서 승인된 토큰을 모두 잃을 수 있습니다.
예를 들어, 이더리움의 ERC-20 토큰 래퍼인 멀티체인 WETH가 이러한 취약점을 겪은 바 있습니다.
일반적으로 사용되는 이 브리지는 이전의 제한 없는 토큰 권한을 악용하여 공격을 받아 사용자 자금 도난으로 이어졌습니다.
기본 무제한 승인을 수동 승인으로 변경하는 방법을 보여주는 예시(제리온 월렛 사용)입니다.
NFT 승인
NFT에 대한 "setApprovalForAll"
이것은 흔한 승인입니다. 하지만 잠재적으로 위험한 승인으로, 일반적으로 NFT를 판매하고자 할 때 신뢰할 수 있는 NFT 마켓플레이스에 부여합니다.
이를 통해 마켓플레이스의 스마트 컨트랙트가 NFT를 이동할 수 있으므로 구매자에게 판매할 때 마켓플레이스의 스마트 컨트랙트가 자동으로 NFT를 구매자에게 이동할 수 있습니다.
이 승인은 특정 컬렉션 또는 컨트랙트 주소에 있는 모든 NFT 토큰에 대한 액세스 권한을 부여합니다.
악성 웹사이트나 컨트랙트에서 NFT를 훔치기 위해 사용할 수도 있습니다.
악의적인 행위자가 'setApprovalForAll'을 악용한 예
FOMO 프리 캐스팅의 경우 전형적인 '지갑 계정 축소'입니다. 는 다음과 같이 진행됩니다.
사용자는 합법적이라고 생각되는 악성 사이트를 방문합니다.
사용자가 지갑을 사이트에 연결하면 사이트에서는 지갑의 내용만 볼 수 있습니다.
그러나 악성 사이트는 지갑에서 가장 가치가 높은 NFT를 스캔하고 사용자에게 해당 NFT의 컨트랙트 주소에 대해 메타마스크(MM)에서 "모든 승인을 설정"하라는 메시지를 표시합니다.
사용자는 자신이 NFT를 발행한다고 생각하지만 실제로는 악성 컨트랙트에 해당 토큰을 이동할 수 있는 권한을 부여하는 것입니다.
그런 다음 사기꾼은 토큰을 훔쳐서 아이템이 도난당한 것으로 표시되기 전에 오픈시 또는 블러 입찰로 청산합니다.
서명 및 승인
승인은 거래 처리를 포함하므로 가스 수수료가 필요합니다. 반면 서명은 가스가 필요하지 않으며 일반적으로 지갑을 제어할 수 있음을 증명하기 위해 디앱에 로그인하는 데 사용됩니다.
서명은 일반적으로 위험도가 낮은 작업이지만, OpenSea와 같이 신뢰할 수 있는 사이트에서 이전에 부여한 승인을 활용하는 데 사용할 수 있습니다.
ERC-20 토큰의 경우, 최근 Ether에 허용 기능이 도입되었으므로 가스 없이 서명으로 승인을 수정할 수도 있습니다.
1inch와 같은 탈중앙화 거래소(DEX)를 이용하면 이를 확인할 수 있습니다.
토큰 승인 포인트
승인할 때는 주의해야 하며, 어떤 토큰을 승인하는지, 어떤 스마트 컨트랙트(이더스캔 사용 가능)에 대해 승인하는 것인지 확인해야 합니다.
승인 위험 제한하기:
복수의 지갑 사용(승인은 지갑별로 다름) --볼트나 고가의 지갑에 대해서는 승인에 서명하지 마세요.
이상적으로는 ERC-20 토큰에 대한 무제한 승인을 줄이거나 완전히 피하세요.
etherscan 또는 revoke.cash를 통해 주기적으로 승인을 확인하고 취소합니다.
< h3 style="text-align: 왼쪽;">하드웨어/콜드월렛
핫월렛은 컴퓨터나 휴대폰을 통해 인터넷에 연결하여 키와 지갑 자격 증명을 온라인 또는 브라우저에 로컬로 저장합니다.
콜드 월렛은 키가 완전히 오프라인으로 생성되고 물리적으로 가까운 곳에 저장되는 하드웨어 장치입니다.
렛저의 가격이 약 120달러라는 점을 고려할 때, 1,000달러 이상의 암호화폐 자산을 보유하고 있다면렛저를 구매하여 설정하는 것이 좋습니다.렛저 지갑을 메타마스크(MM)에 연결하면 일정 수준의 보안을 유지하면서 다른 핫월렛과 동일한 보안을 누릴 수 있습니다. 레저 지갑을 메타마스크(MM)에 연결하면 다른 핫월렛과 동일한 기능을 이용하면서 보안을 어느 정도 유지할 수 있습니다.
레저와 트레저가 가장 인기 있는 지갑입니다. 저는 브라우저 지갑과의 호환성이 가장 뛰어난 Ledger를 선호합니다(Rabby 및 MM과 유사).
원장을 구매할 때의 모범 사례
항상 공식 제조업체의 웹사이트에서 구매하고, Ebay나 Amazon에서는 절대 구매하지 마세요. 멀웨어가 사전 설치되어 있을 수 있습니다.
상품을 밀봉된 패키지로 받았는지 확인하세요.
Ledger를 처음 설정하면 니모닉이 생성됩니다.
니모닉 문구를 실제 종이 또는 향후에는 철판 위에만 써서 내화성과 방수성을 확보하세요.
휴대폰을 포함한 모든 키보드에 니모닉 문구를 촬영하거나 입력하지 마세요. 이렇게 하면 니모닉 문구가 디지털화되어 콜드월렛이 안전하지 않은 핫월렛으로 변할 수 있습니다.
암호 자산은 하드웨어 지갑에 저장되지 않고 니모닉 문구에서 생성된 지갑에 '저장'됩니다.
니모닉 문구(12~24단어)가 중요하며 어떤 대가를 치르더라도 보호하고 보안을 유지해야 합니다.
이 니모닉 문구로 생성된 모든 지갑에 대한 완전한 제어와 액세스를 제공합니다.
니모닉 문구는 장치별로 다르지 않으며, 필요한 경우 백업용으로 다른 하드웨어 지갑으로 '가져오기'할 수 있습니다(필요한 경우).
니모닉을 분실하거나 손상되고 원래 하드웨어 지갑도 분실, 손상 또는 잠긴 경우 모든 자산에 영구적으로 액세스할 수 없게 됩니다.
메모닉을 여러 부분으로 나누거나, 부분 사이의 물리적 거리를 늘리거나, 눈에 띄지 않는 장소(예: 냉장고 바닥의 수프통, 재산 아래 어딘가 등)에 보관하는 등 여러 가지 방법으로 보관할 수 있습니다.
최소 2~3개는 준비해야 하며, 그 중 하나는 물과 화재로부터 보호하기 위해 강철 재질이어야 합니다.
"개인 키"는 니모닉 문구와 비슷하지만 특정 지갑에 고유합니다. 일반적으로 핫월렛을 새 메타마스크(MM) 계정으로 가져오거나 트레이딩 봇과 같은 자동화 도구에서 사용하는 데 사용됩니다.
25번째 단어 - 레저
레저는 원래 24개의 단어 니모닉 문구 외에 추가 보안 기능을 옵션으로 제공합니다.
암호 구문은 복구 문구에 최대 100자까지 원하는 25번째 단어를 추가할 수 있는 프리미엄 기능입니다.
암호 구문을 사용하면 24단어 복구 문구만으로는 액세스할 수 없는 완전히 다른 주소 집합이 생성됩니다.
암호 문구는 보안 계층을 추가하는 것 외에도 위협을 받았을 때 그럴듯한 부인력을 제공합니다.
암호 문구를 사용하는 경우 안전하게 저장하거나 한 글자씩 대소문자를 구분하여 정확하게 기억하세요.
이것이 '5달러 스패너 공격'이라는 물리적 위협 시나리오에 대한 유일하고 궁극적인 방어책입니다.
왜 이 모든 수고를 감수하고 하드웨어 지갑을 설정해야 할까요?
핫월렛은 인터넷에 연결된 위치에 개인 키를 저장합니다.
인터넷을 통해 이러한 자격 증명을 스푸핑, 오도, 조작하는 것은 매우 간단합니다.
콜드월렛이 있다는 것은 사기꾼이 이러한 지갑과 내부 자산에 액세스하기 위해 물리적으로 사용자의 레저 또는 니모닉을 찾아서 획득해야 한다는 것을 의미합니다.
토큰이 손상되면 악성 웹사이트나 컨트랙트와 상호작용하지 않는 지갑을 포함해 모든 핫월렛과 그 안의 자산이 위험에 처하게 됩니다.
과거에 사람들이 '해킹'당한 일반적인 방법
과거에 사람들이 핫월렛을 통해 '해킹'(헬퍼 문구가 손상된)당한 일반적인 방법은 다음과 같습니다.
구직 제안 PDF, 베타 게임, Google 양식을 통한 매크로 실행, 합법적인 웹사이트 및 서비스 모방 등의 방법으로 악성코드를 다운로드하도록 속임수를 쓰는 경우.
악성 계약과 상호작용: 모방 사이트에서 FOMO를 유발하거나 알 수 없는 에어드랍 또는 수신된 NFT 계약과 상호작용하는 경우.
고객 지원 또는 관련 프로그램/양식에 키와 니모닉을 삽입하거나 전송하는 행위.