Blockchain-dark-forest-self.../README_KR.md
2024-08-01 18:41:20 +08:00

1140 lines
134 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

블록체인 다크 포레스트 셀프가드 핸드북<br>
*이것들을 파악하면 암호화폐의 보안을 파악하는 것입니다.<br>*
:fire:웹사이트: https://darkhandbook.io/<br>
:cn:中文版: [《区块链黑暗森林自救手册》](README_CN.md)<br>
:us:English: [Blockchain dark forest selfguard handbook](README.md)<br>
:jp:日本語版: [ブロックチェーンのダークフォレストにおける自己防衛のためのハンドブック](README_JP.md)<br>
:saudi_arabia:اللغة العربية: [دليل النجاة في الغابة المظلمة للبلوكتشين](README_AR.md)<br>
:indonesia:Versi Indonesia[Buku Panduan menjaga diri didalam "dark forest"](README_ID.md)<br>
작성자: Cos@SlowMist Team<br>
연락하기Twitter([@evilcos](https://twitter.com/evilcos))、Jike App(@余弦.jpg)
번역자 & 교정자:
>[ChainWith Sharon](https://twitter.com/sharonmkt) | Jeongmin
![alt this](res/this.png)
:anchor:**내용 목록**
- [프롤로그](#프롤로그)
- [다이어그램](#다이어그램)
- [지갑 생성](#지갑-생성)
- [다운로드](#다운로드)
- [니모닉 문구](#니모닉-문구)
- [키 없는 지갑](#키-없는-지갑)
- [지갑 백업하기](#지갑-백업하기)
- [니모닉 문구/개인 키](#니모닉-문구/개인-키)
- [암호화](#암호화)
- [지갑 사용방법](#지갑-사용방법)
- [AML](#AML)
- [콜드 월렛](#콜드-월렛)
- [핫 월렛](#핫-월렛)
- [디파이 보안이 뭘까요](#디파이-보안이-뭘까요)
- [NFT 보안](#NFT-보안)
- [서명할 때 조심하세요](#서명할-때-조심하세요)
- [반직관적인 서명 요청에 주의하세요](#반직관적인-서명-요청에-주의하세요)
- [심화 공격 방법론들](#심화-공격-방법론들)
- [전통적인 개인정보 보호](#전통적인-개인정보-보호)
- [PC 시스템](#PC-시스템)
- [휴대폰](#휴대폰)
- [인터넷](#인터넷)
- [브라우저](#브라우저)
- [패스워드 매니저](#패스워드-매니저)
- [이중 인증](#이중-인증)
- [VPN](#VPN)
- [이메일](#이메일)
- [SIM 카드](#SIM-카드)
- [GPG](#GPG)
- [분리](#분리)
- [인간 본성의 보안](#인간-본성의-보안)
- [Telegram](#Telegram)
- [Discord](#Discord)
- [“공식” 피싱](#“공식”-피싱)
- [개인정보 보안 문제](#개인정보-보안-문제)
- [블록체인 사기 방식](#블록체인-사기-방식)
- [해킹당했을 때 대처 방법](#해킹당했을-때-대처-방법)
- [먼저 손실을 막으세요](#먼저-손실을-막으세요)
- [장면을 보호하십시오](#장면을-보호하십시오)
- [근본 원인 분석](#근본-원인-분석)
- [소스 추적](#소스-추적)
- [사건 결론](#사건-결론)
- [잘못된 이해](#잘못된-이해)
- [Code Is Law](#Code-Is-Law)
- [Not Your Keys, Not Your Coins](#Not-Your-Keys-Not-Your-Coins)
- [In Blockchain We Trust](#In-Blockchain-We-Trust)
- [암호화 보안은 보안이다](#암호화-보안은-보안이다)
- [해킹당하는 것이 수치스러운가요?](#해킹당하는-것이-수치스러운가요?)
- [즉시 업데이트하세요](#즉시-업데이트하세요)
- [결론](#결론)
- [부록](#부록)
- [보안 규칙과 원칙](#보안-규칙과-원칙)
- [기여자들](#기여자들)
- [도구들](#도구들)
- [공식 웹사이트](#공식-웹사이트)
# 프롤로그
우선, 이 가이드를 찾으신 것을 축하드립니다! 당신이 누구든지, 당신이 암호화폐 보유자이거나 미래에 암호화폐 세계로 뛰어들고 싶다면 이 핸드북이 많은 도움이 될 것입니다. 여러분은 이 글을 자세히 읽고 가르침을 실전에 적용해야 합니다.
또한, 이 문서를 완전히 이해하려면 약간의 배경 지식이 필요합니다. 그러나 걱정하지 마십시오. 초보자의 경우, 이해가 안 되는 부분이 있거나 더 자세히 살펴봐야 할 경우 Google 검색을 적극 권장합니다. 또한 한 가지 보안 규칙을 염두에 두는 것이 중요합니다. 바로 회의적이어야 합니다! 웹에서 어떤 정보를 보더라도 상호 참조를 위해 항상 최소한 두 가지 소스를 찾아야 합니다.
다시 한 번 말하지만, 이 핸드북에 언급된 정보를 포함하여 항상 회의적이어야 합니다 :)
블록체인은 생산 관계에 변화를 가져오고 신뢰 문제를 어느 정도 해결한 훌륭한 발명품입니다. 특히 블록체인은 불변성, 합의된 실행, 부인 방지 등 중앙 집중화 및 제3자가 필요 없이 많은 "신뢰" 시나리오를 생성합니다. 그러나 현실은 잔혹합니다. 블록체인에 대한 많은 잘못된 정보가 있으며, 범죄자들은 이러한 정보를 이용하여 허점을 악용하고 사람들로부터 돈을 훔쳐 많은 재정적 손실을 초래할 것입니다. 오늘날 암호화폐 세계는 이미 어두운 숲이 되었습니다.
블록체인 세계에서 살아남기 위해서는 다음 두 가지 보안 규칙을 꼭 기억해주세요:
1. **Zero Trust**:간단하게 말해서, 항상 회의적인 태도를 유지하세요.
2. **Continuous Security Validation**: 무언가를 신뢰하려면 의심스러운 것을 검증하고 또 검증하는 습관을 들여야 합니다.
*Note위의 두 가지 보안 규칙은 이 문서의 핵심 원칙이며, 이 문서에 언급된 다른 모든 보안 원칙은 이 원칙에서 파생됩니다.*
좋습니다. 서론은 여기까지입니다. 다이어그램으로 시작하여 이 어두운 숲을 탐색하여 우리가 직면하게 될 위험과 이에 대처해야 하는 방법을 살펴보겠습니다.
# 다이어그램
![](res/web3_hacking_map.jpg)
가이드의 나머지 부분을 자세히 살펴보기 전에 이 다이어그램을 훑어보면, 이는 지갑 생성, 지갑 백업, 지갑 사용의 세 가지 주요 프로세스로 구성된 이 세계(블록체인, 암호화폐 또는 Web3라고 부르는)의 주요 활동에 관한 것입니다.
이 세 가지 프로세스를 따라가며 각각을 분석해 보겠습니다.
## 지갑 생성
지갑의 핵심은 개인 키(또는 시드 문구)입니다.
개인 키는 다음과 같습니다:
>0xa164d4767469de4faf09793ceea07d5a2f5d3cef7f6a9658916c581829ff5584
또한 시드 문구는 다음과 같습니다:
>cruel weekend spike point innocent dizzy alien use evoke shed adjust wrong
*Note여기서는 Ethereum을 예로 사용하고 있습니다. 개인키/시드문구에 대한 자세한 내용은 직접 확인하시기 바랍니다.*
개인 키는 귀하의 신원입니다. 개인 키를 분실/도난당한 경우, 귀하는 신원을 잃어버린 것입니다. 잘 알려진 지갑 애플리케이션이 많이 있지만 이 가이드에서는 모든 애플리케이션을 다루지는 않습니다. 그러나 몇 가지 특정 지갑에 대해 언급하겠습니다. 여기에 언급된 지갑은 어느 정도 신뢰할 수 있습니다. 그러나 사용 중에 예상 여부에 관계없이 보안 문제나 위험이 없다고 보장할 수는 없습니다. (프롤로그에 언급된 두 가지 주요 보안 규칙을 항상 염두에 두십시오.)
애플리케이션별로 분류하면 PC 지갑, 브라우저 확장 지갑, 모바일 지갑, 하드웨어 지갑, 웹 지갑이 있습니다. 인터넷 연결 측면에서 보면 크게 콜드월렛과 핫월렛으로 나눌 수 있습니다. 암호화폐 세계에 뛰어들기 전에 먼저 지갑의 목적에 대해 생각해야 합니다. 목적에 따라 어떤 지갑을 사용해야 하는지 뿐만 아니라 지갑을 어떻게 사용하는지도 결정됩니다.
어떤 종류의 지갑을 선택하든 한 가지는 확실합니다. 충분한 경험을 쌓은 후에는 지갑 하나만으로는 충분하지 않다는걸 느낄 수 있습니다.
여기서 우리는 또 다른 보안 원칙을 명심해야 합니다: 격리, 즉 계란을 한 바구니에 모두 담지 마십시오. 지갑을 자주 사용할수록 위험도 커집니다. 항상 기억하세요: 새로운 것을 시도할 때는 먼저 별도의 지갑을 준비하고 소액의 돈으로 잠시 사용해 보세요. 암호화폐 전문가라도 작은 방심으로 큰 피해를 입기 쉽습니다.
### 다운로드
이것은 간단해 보이지만 실제로는 쉽지 않습니다. 그 이유는 다음과 같습니다:
1. 많은 사람들이 실제 공식 웹사이트나 애플리케이션을 찾지 못하고 결국 가짜 지갑을 설치하게 됩니다.
2. 다운로드한 애플리케이션이 변조되었는지 여부를 식별하는 방법을 모르는 사람들이 많습니다.
따라서 많은 사람들의 경우 블록체인에 입문하기 전에 지갑이 이미 비어 있습니다.
위의 첫 번째 문제를 해결하기 위해 올바른 공식 웹사이트를 찾는 몇 가지 기술이 있습니다:
* Google 사용(검색 결과에 광고된 항목은 종종 신뢰할 수 없으므로 주의하세요.)
* CoinMarketCap 등 유명 공식 웹사이트 이용
* 믿을 수 있는 사람이나 친구에게 물어보세요
다양한 소스에서 얻은 정보를 상호 참조할 수 있으며 궁극적으로 정답은 단 하나입니다. 축하합니다. 올바른 공식 웹사이트를 찾았습니다.
다음으로, 애플리케이션을 다운로드하고 설치해야 합니다. PC 지갑인 경우 공식 홈페이지에서 다운로드 후 직접 설치하셔야 합니다. 설치하기 전에 링크가 변조되었는지 확인하는 것이 좋습니다. 이러한 검증을 통해 소스코드가 완전히 변조된 경우(내부사기, 내부해킹, 공식 홈페이지 해킹 등)를 방지할 수는 없지만, 소스코드 부분 변조, 중간자 공격 등의 경우는 방지할 수 있습니다.
파일의 변조 여부를 확인하는 방법은 파일 일관성 검사입니다. 일반적으로 두 가지 방법이 있습니다:
* **해시 검사**: MD5, SHA256 등을 보통 사용합니다. MD5가 대부분의 경우에 사용되지만 여전히 해시 충돌 위험이 있으므로 일반적으로 충분히 안전한 SHA256을 선택합니다.
* **GPG 서명 확인**: 이 방법도 매우 널리 사용됩니다. GPG 도구, 명령 및 방법을 익히는 것이 좋습니다. 이 방법은 초보자에게는 다소 어렵지만 익숙해지면 매우 유용하다는 것을 알게 될 것입니다.
그러나 암호화폐 세계에는 검증을 제공하는 프로젝트가 많지 않습니다. 그래서 하나라도 찾는 것은 행운입니다. 예를 들어, 여기 Sparrow Wallet이라는 비트코인 지갑이 있습니다. 다운로드 페이지에 "Verifying the Release"이라고 적혀 있는데, 이는 정말 인상적이며 위에서 언급한 두 가지 방법 모두에 대한 명확한 지침이 있으므로 참조용으로 사용할 수 있습니다:
>https://sparrowwallet.com/download/
다운로드 페이지에는 두 가지 GPG 도구가 언급되어 있습니다:
* GPG Suite, for MacOS
* Gpg4win, for Windows
주의를 기울이면 두 GPG 도구의 다운로드 페이지에서 두 방법의 일관성을 확인하는 방법에 대한 지침을 찾을 수 있습니다. 하지만 단계별 가이드는 없습니다. 즉, 스스로 배우고 연습해야 합니다 :)
**브라우저 확장 지갑인 지갑이라면**,예를 들어 MetaMask 경우 주의해야 할 유일한 것은 Chrome 웹 스토어의 다운로드 수와 등급입니다. 예를 들어 MetaMask는 다운로드 수가 1천만 건이 넘고 평점이 2,000개가 넘습니다(전체 평점은 높지 않지만). 어떤 사람들은 다운로드 수와 평점이 부풀려질 수 있다고 생각할 수도 있습니다. 사실, 그렇게 많은 숫자를 위조하는 것은 매우 어렵습니다.
**모바일 지갑 지갑이라면**,모바일 지갑은 브라우저 확장 지갑과 유사합니다. 그러나 App Store에는 지역마다 버전이 다르다는 점에 유의해야 합니다. 중국 본토에서는 암호화폐가 금지되어 있으므로 중국 앱스토어 계정으로 지갑을 다운로드할 경우에는 한 가지 제안이 있습니다. 그것을 사용하지 말고 미국 등 다른 지역의 다른 계정으로 변경한 후 다시 다운로드하세요. 게다가 올바른 공식 웹사이트는 올바른 다운로드 방법(예: imToken, OneKey, Trust Wallet 등으로 연결됩니다. 공식 웹사이트는 높은 웹사이트 보안을 유지하는 것이 중요합니다. 공식 웹사이트가 해킹되면 큰 문제가 발생합니다.)
**하드웨어 지갑 지갑이라면**,홈페이지에서 구매하는 것을 적극 권장합니다. 온라인 상점에서 구매하지 마십시오. 지갑을 받은 후에는 지갑이 손상되었는지 여부에도 주의를 기울여야 합니다. 물론 포장에도 감지하기 어려운 일부 속임수가 있을 수 있습니다. 어쨌든 하드웨어 지갑을 사용할 때에는 처음부터 최소 3번 이상 시드 문구와 지갑 주소를 생성해야 합니다.
**웹 지갑 지갑이라면**,사용하지 않는 것이 좋습니다. 어쩔 수 없는 경우가 아니면 정품인지 확인한 후 사용하고 절대 의존하지 마세요.
### 니모닉 문구
지갑을 생성한 후 우리가 직접 처리하는 핵심은 개인 키가 아닌 니모닉 문구/시드 문구이므로 기억하기 쉽습니다. 니모닉 문구(예: BIP39)에 대한 표준 규칙이 있습니다. 일반적으로 영어 단어는 12개입니다. 다른 숫자(3의 배수)일 수 있지만 24단어를 초과할 수 없습니다. 그렇지 않으면 너무 복잡하고 기억하기 쉽지 않습니다. 단어 수가 12개 미만이면 보안이 신뢰할 수 없습니다. 12/15/18/21/24 단어를 보는 것이 일반적입니다. 블록체인 세계에서는 12단어가 대중적이고 충분히 안전합니다. 그러나 여전히 24단어로 시작하는 Ledger와 같은 하드코어 하드웨어 지갑이 있습니다. 영어 단어 외에도 중국어, 일본어, 한국어 등과 같은 다른 언어도 사용할 수 있습니다. 참고할 수 있는 2048개의 단어 목록은 다음과 같습니다:
>https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md
지갑을 생성할 때 시드 문구는 취약합니다. 당신은 당신의 시드 문구를 훔칠 수 있는 사람이나 웹캠 또는 기타 어떤 것에도 둘러싸여 있지 않습니다. 또한, 시드 문구가 랜덤하게 생성되는지 주의 깊게 살펴보시기 바랍니다. 일반적으로 잘 알려진 지갑에서는 충분한 수의 무작위 시드 문구를 생성할 수 있습니다. 하지만 항상 조심해야 합니다. 지갑에 이상이 있는지 알기 어렵습니다. 보안을 위해 이러한 습관을 기르는 것이 매우 유익할 수 있으므로 인내심을 가지십시오. 마지막으로, 때로는 지갑을 만들기 위해 인터넷 연결을 끊는 것을 고려할 수도 있습니다. 특히 지갑을 콜드 지갑으로 사용하려는 경우에는 더욱 그렇습니다. 인터넷 연결을 끊어도 항상 작동합니다.
### 키 없는 지갑
Keyless는 개인 키가 없다는 뜻입니다. 여기서는 Keyless를 두 가지 주요 시나리오로 나눕니다(설명의 편의를 위해 이러한 구분은 업계 표준이 아닙니다).
* **Custodial**:사용자가 계정만 등록하면 되고 개인 키를 소유하지 않는 중앙 집중식 거래소와 지갑이 그 예입니다. 보안은 이러한 중앙 집중식 플랫폼에 전적으로 의존합니다.
* **Non-Custodial**:사용자는 실제 개인 키(또는 시드 문구)가 아닌 개인 키와 유사한 제어 권한을 갖습니다. 호스팅 및 인증/권한 부여를 위해 잘 알려진 클라우드 플랫폼을 사용합니다. 따라서 클라우드 플랫폼의 보안은 가장 취약한 부분이 됩니다. 다른 기업은 보안 다자간 컴퓨팅(MPC)을 활용하여 단일 위험 지점을 제거하고 널리 사용되는 클라우드 플랫폼과 협력하여 사용자 경험을 극대화합니다.
개인적으로 저는 다양한 종류의 Keyless 도구를 사용해 왔습니다. 풍부한 자금과 좋은 평판을 갖춘 중앙 집중식 거래소는 최고의 경험을 제공합니다. 토큰 분실에 대해 귀하가 개인적으로 책임을 지지 않는 한(예: 계정 정보가 해킹된 경우) 중앙 집중식 거래소는 일반적으로 손실을 보상합니다. MPC 기반 Keyless 프로그램은 매우 유망해 보이며 홍보되어야 합니다. 저는 ZenGo, Fireblocks 및 Safeheron에 대해 좋은 경험을 갖고 있습니다. 장점은 분명합니다:
* MPC 알고리즘 엔지니어링은 잘 알려진 블록체인에서 점점 더 발전하고 있으며 개인 키에 대해서만 수행하면 됩니다.
* 서로 다른 다중 서명 방식을 사용하여 일관된 사용자 경험을 제공하는 다양한 블록체인을 흔히 범용 다중 서명이라고 부릅니다.
* 실제 개인 키가 절대 나타나지 않도록 보장하고 다중 서명 계산을 통해 위험을 해결할 수 있습니다.
* 클라우드(또는 Web2.0 기술)와 결합하면 MPC는 안전할 뿐만 아니라 좋은 경험을 만들어냅니다.
그러나 여전히 몇 가지 단점이 있습니다:
* 모든 오픈 소스 프로젝트가 업계에서 인정되는 표준을 충족할 수 있는 것은 아닙니다.
* 많은 사람들은 기본적으로 이더리움(또는 EVM 기반 블록체인)만 사용합니다. 따라서 Gnosis Safe와 같은 스마트 계약 접근 방식을 기반으로 하는 다중 서명 솔루션이면 충분합니다.
전반적으로 어떤 도구를 사용하든 안전하고 제어 가능하다고 느끼고 좋은 경험을 갖고 있다면 좋은 도구입니다.
지금까지 지갑 생성과 관련하여 알아야 할 사항을 다루었습니다. 기타 일반적인 보안 문제는 이후 섹션에서 다루겠습니다 :)
## 지갑 백업하기
나 자신을 포함해 많은 사람들이 함정에 빠지는 곳이 바로 백업입니다. 백업을 제대로 하지 않았고 조만간 그런 일이 일어날 것이라는 걸 알고 있었습니다. 다행히 자산이 많은 지갑은 아니었고, SlowMist의 친구들이 복구를 도와주었습니다. 그래도 다시는 겪고 싶지 않은 무서운 경험이었습니다. 그럼 지갑을 안전하게 백업하는 방법을 알아볼까요.
### 니모닉 문구/개인 키
지갑 백업에 대해 이야기할 때 본질적으로 니모닉 문구(또는 개인 키)를 백업하는 것을 의미합니다. 이하에서는 편의상 니모닉 문구를 사용하겠습니다. 대부분의 니모닉 문구는 다음과 같이 분류될 수 있습니다:
* Plain Text
* With Password
* Multi-signature
* Shamir's Secret Sharing, or SSS for short
종류별로 간단히 설명드리겠습니다.
**Plain Text**, 는 이해하기 쉽습니다. 이 12개의 영어 단어가 있으면 지갑에 있는 자산을 소유하게 됩니다. 특별한 셔플링을 고려하거나 단어 중 하나를 다른 것으로 바꿀 수도 있습니다. 둘 다 해커가 지갑을 해킹하기가 더 어려워지지만, 규칙을 잊어버리면 큰 골칫거리가 될 것입니다. 당신의 기억력은 무적이 아닙니다. 당신의 기억은 몇 년이 지나면 엉키게 될 것입니다. 몇 년 전 레저 하드웨어 지갑을 사용하면서 24단어 니모닉 문구의 순서를 바꿨습니다. 몇 년이 지나서 그 순서를 잊어버렸고 어떤 단어를 대체했는지 확신할 수 없었습니다. 앞서 언급했듯이, 내 문제는 무차별 대입을 사용해 올바른 순서와 단어를 추측하는 특수 코드 분리기 프로그램으로 해결되었습니다.
**With Password**, 표준에 따르면 니모닉 문구에는 비밀번호가 포함될 수 있습니다. 여전히 동일한 문구이지만 비밀번호를 사용하면 다른 시드 문구를 얻을 수 있습니다. 시드 문구는 일련의 개인 키, 공개 키 및 해당 주소를 파생하는 데 사용됩니다. 따라서 니모닉 문구뿐만 아니라 비밀번호도 백업해야 합니다. 그런데 개인 키에도 비밀번호가 있을 수 있으며 비트코인용 BIP 38, 이더리움용 Keystore와 같은 자체 표준이 있습니다.
**Multi-signature**, 이름에서 알 수 있듯이 지갑에 접근하려면 여러 사람의 서명이 필요합니다. 자신만의 규칙을 설정할 수 있어 매우 유연합니다. 예를 들어, 3명이 키(니모닉 단어 또는 개인 키)를 가지고 있는 경우 지갑에 액세스하려면 최소 2명 이상의 서명이 필요할 수 있습니다. 각 블록체인에는 자체 다중 서명 솔루션이 있습니다. 가장 잘 알려진 비트코인 지갑은 다중 서명을 지원합니다. 하지만 이더리움에서는 다중 서명이 주로 Gnosis Safe와 같은 스마트 계약을 통해 지원됩니다. 게다가 MPC(Secure Multi-Party Computation)도 점점 더 대중화되고 있습니다. 기존 다중 서명과 유사하지만 다른 기술을 사용하는 경험을 제공합니다. 다중 서명과 달리 MPC는 블록체인에 구애받지 않으며 모든 프로토콜에서 작동할 수 있습니다.
**SSS**, 는 시드를 여러 공유로 나눕니다(일반적으로 각 공유에는 20단어가 포함됩니다). 지갑을 복구하려면 일정 수의 단어를 모아서 사용해야 합니다. 자세한 내용은 아래 업계 모범 사례를 참조하세요.
>https://guide.keyst.one/docs/shamir-backup<br>
>https://wiki.trezor.io/Shamir_backup
다중 서명 및 SSS와 같은 솔루션을 사용하면 마음의 평화를 얻을 수 있고 위험을 피할 수 있지만 관리가 상대적으로 복잡해질 수 있으며 때로는 여러 당사자가 관련될 수 있습니다. 편의성과 보안 사이에는 항상 절충안이 있습니다. 결정은 개인의 몫이지만 원칙적으로 게으르지 마십시오.
### 암호화
암호화는 매우 광범위한 개념입니다. 암호화가 대칭인지, 비대칭인지 또는 다른 고급 기술을 사용하는지 여부는 중요하지 않습니다. 암호화된 메시지가 귀하 또는 귀하의 비상 처리 팀에 의해 쉽게 해독될 수 있지만 수십 년이 지나면 다른 누구도 쉽게 해독할 수 없는 한 이는 좋은 암호화입니다.
"Zero trust”라는 보안 원칙에 따라 지갑을 백업할 때 금고 등의 물리적 환경을 포함해 모든 단계에서 해킹당할 수 있다는 점을 가정해야 합니다. 온전히 신뢰할 수 있는 사람은 자신 외에는 없다는 것을 명심하십시오. 사실, 때로는 기억이 희미해지거나 잘못된 위치에 있을 수 있기 때문에 자신조차 믿을 수 없습니다. 그러나 나는 항상 비관적인 가정을 하지 않을 것입니다. 그렇지 않으면 원하지 않는 결과가 나올 수도 있습니다.
백업할 때 재해 복구를 특별히 고려해야 합니다. 재해 복구의 주요 목적은 단일 위험 지점을 방지하는 것입니다. 당신이 사라지거나 백업을 저장하는 환경이 다운되면 어떻게 될까요? 따라서 중요한 것에는 재해 복구 담당자가 있어야 하고, 백업도 여러 개 있어야 합니다.
재해 복구 담당자를 선택하는 방법은 누구를 신뢰하느냐에 따라 달라지므로 자세히 설명하지 않겠습니다. 다중 백업을 수행하는 방법에 중점을 두겠습니다. 백업 위치의 몇 가지 기본 형태를 살펴보겠습니다:
* Cloud
* Paper
* Device
* Brain
**Cloud**:많은 사람들은 클라우드의 백업을 신뢰하지 않으며 해커 공격에 취약하다고 생각합니다. 결국 인력과 예산 측면에서 공격자 또는 방어자 중 어느 쪽이 더 많은 노력을 기울이는가가 중요합니다. 개인적으로 저는 Google, Apple, Microsoft 등이 제공하는 클라우드 서비스에 대한 믿음을 갖고 있습니다. 왜냐하면 우리는 그들이 보안 팀이 얼마나 강력한지, 보안에 얼마나 많은 비용을 투자했는지 알고 있기 때문입니다. 외부 해커와의 싸움 외에도 내부 보안 위험 통제와 개인정보 보호에도 많은 신경을 쓰고 있습니다. 내가 신뢰하는 소수의 서비스 제공업체는 이러한 분야에서 상대적으로 더 나은 업무를 수행하고 있습니다. 하지만 절대적인 것은 없습니다. 중요한 데이터(예: 지갑)를 백업하기 위해 이러한 클라우드 서비스 중 하나를 선택하면 적어도 한 번 더 지갑을 암호화할 것입니다.
GPG를 마스터하는 것이 좋습니다. "서명 확인"에 사용될 수 있으며, 그 동안 암호화 및 복호화에 대한 강력한 보안을 제공합니다. 다음에서 GPG에 대해 자세히 알아볼 수 있습니다:
>https://www.ruanyifeng.com/blog/2013/07/gpg.html
이제 GPG를 마스터하셨습니다.오프라인 보안 환경에서 GPG를 사용하여 지갑의 관련 데이터(니모닉 문구 또는 개인 키)를 암호화했으므로 이제 암호화된 파일을 이러한 클라우드 서비스에 직접 전송하고 저장할 수 있습니다. 모든 것이 좋을 것입니다. 하지만 여기서 다시 한 번 상기시켜 드리고 싶습니다. GPG의 개인 키를 분실하거나 개인 키의 비밀번호를 잊어서는 안 됩니다...
이 시점에서 이 추가 보안 수준이 상당히 까다롭다는 것을 알 수 있습니다. GPG에 대해 배우고 GPG 개인 키와 비밀번호를 백업해야 합니다. 실제로 앞서 언급한 단계를 모두 수행했다면 이미 프로세스에 익숙하므로 어렵거나 번거롭지 않을 것입니다. 연습이 완벽해지기 때문에 더 이상 말하지 않겠습니다.
약간의 노력을 절약하고 싶다면 또 다른 가능성이 있지만 보안이 저하될 수 있습니다. 정확한 노력의 절약을 측정할 수는 없지만 도움을 받기 위해 잘 알려진 일부 도구를 사용할 때 편리합니다. 그 도구는 1Password입니다. 1Password 최신 버전은 이미 니모닉 단어, 비밀번호, 지갑 주소 등 지갑 관련 데이터를 직접 저장하는 기능을 지원해 사용자에게 편리하다. 다른 도구(예: Bitwarden)도 비슷한 결과를 얻을 수 있지만 그다지 편리하지는 않습니다.
**Paper**:많은 하드웨어 지갑에는 니모닉 문구(일반 텍스트, SSS 등)를 적을 수 있는 여러 개의 고품질 종이 카드가 함께 제공됩니다. 종이 외에도 철판(내화성, 내수성, 내식성, 물론 저는 사용해 본 적이 없습니다)을 사용하는 사람들도 있습니다. 니모닉 문구를 복사한 후 테스트하고 모든 것이 작동하면 금고 등 안전하다고 느끼는 곳에 보관하세요. 저는 개인적으로 종이 사용을 많이 좋아합니다. 종이는 올바르게 보관하면 전자 제품보다 수명이 훨씬 길기 때문입니다.
**Device**:이는 모든 종류의 장비를 의미합니다. 전자 제품은 개인 취향에 따라 컴퓨터, iPad, iPhone, 하드 드라이브 등 일반적인 백업 유형입니다. 또한 장치 간의 안전한 전송에 대해서도 생각해야 합니다. 중개인이 프로세스를 가로채기 어려운 AirDrop, USB와 같은 P2P 방식을 사용하는 것이 편합니다. 저는 전자기기가 몇 년 지나면 고장날 수도 있다는 사실이 선천적으로 불안해서 1년에 한 번 정도는 기기를 점검하는 습관을 유지하고 있습니다. 클라우드 섹션을 참조할 수 있는 몇 가지 반복되는 단계(예: 암호화)가 있습니다.
**Brain**:기억에 의존하는 것은 흥미진진한 일입니다. 사실 누구에게나 자신만의 '기억의 궁전'이 있습니다. 기억력은 신비한 것이 아니며 더 잘 작동하도록 훈련될 수 있습니다. 실제로 메모리가 더 안전한 것들이 있습니다. 두뇌에만 의존할지 여부는 개인의 선택입니다. 하지만 두 가지 위험에 주의하세요. 첫째, 시간이 지남에 따라 기억력이 사라져 혼란을 야기할 수 있습니다. 또 다른 위험은 사고가 발생할 수 있다는 것입니다.
이제 모두 백업되었습니다. 너무 많이 암호화하지 마십시오. 그러면 몇 년 후에 스스로 고통 받게 될 것입니다. "지속적 검증"이라는 보안 원칙에 따라 암호화 및 백업 방법은 과도 여부에 관계없이 정기적으로나 무작위로 지속적으로 검증되어야 합니다. 확인 빈도는 기억력에 따라 다르며 전체 프로세스를 완료할 필요는 없습니다. 프로세스가 정확하다면 부분 검증도 작동합니다. 마지막으로 인증과정의 비밀유지와 보안에도 주의할 필요가 있습니다 :)
## 지갑을 사용하는 방법
지갑을 생성하고 백업했다면 이제 진짜 도전이 시작됩니다. 자산을 자주 이동하지 않거나 요즘 자주 언급되는 인기 용어인 DeFi, NFT, GameFi 또는 Web3의 스마트 계약과 거의 상호 작용하지 않는다면 자산은 비교적 안전할 것입니다.
### AML
그러나 "비교적 안전하다"는 것이 "전혀 위험이 없다"는 의미는 아닙니다. 왜냐면 "내일과 사고중 어느 것이 먼저인지 알 수 없잖아요" 그렇죠? 왜 그럴까요? 생각해 보세요. 암호화폐를 어디서 얻었나요? 그냥 갑자기 나온 게 아니죠? 귀하가 구매하는 모든 암호화폐에서 언제든지 AML(자금 세탁 방지)이 발생할 수 있습니다. 즉, 현재 보유하고 있는 암호화폐가 더러울 수도 있고, 운이 좋지 않으면 체인에 직접 얼어붙을 수도 있다는 의미입니다. 공개 보고서에 따르면 Tether는 법 집행 기관의 요청에 따라 일부 USDT 자산을 동결한 적이 있습니다. 동결된 자금 목록은 여기에서 확인할 수 있습니다:
>https://dune.xyz/phabc/usdt---banned-addresses
USDT 계약을 통해 테더에 의해 주소가 동결되었는지 확인할 수 있습니다:
>https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7#readContract
<img src="res/usdt_isblacklisted.png" width="700">
확인하려면 대상 지갑 주소를 isBlackListed에 입력해 사용하세요. USDT를 사용하는 다른 체인에도 비슷한 검증 방법이 있습니다.
그러나 BTC와 ETH는 절대로 동결되어서는 안 됩니다. 만약 미래에 이런 일이 일어난다면, 분산화에 대한 믿음도 무너질 것입니다. 오늘날 우리가 듣는 대부분의 암호화폐 자산 동결 사례는 실제로 중앙 집중식 플랫폼(예: Binance, Coinbase 등)에서 발생했지만 블록체인에서는 발생하지 않았습니다. 귀하의 암호화폐가 중앙 집중식 거래소 플랫폼에 남아 있으면 귀하는 실제로 해당 암호화폐를 소유한 것이 아닙니다. 중앙 집중식 플랫폼이 귀하의 계정을 동결하면 실제로 거래 또는 출금 허가가 취소됩니다. 동결이라는 개념은 해당 지역의 초보자에게 오해의 소지가 있을 수 있습니다. 결과적으로 일부 무모한 미디어는 비트코인에 대한 온갖 음모론을 퍼뜨렸습니다.
귀하의 BTC 및 ETH 자산은 블록체인에서 동결되지 않지만, 귀하의 자산이 이러한 플랫폼으로 이전되고 법 집행 기관이 진행 중인 공개 사건에 연루되면 중앙 집중식 거래소는 AML 요구 사항에 따라 귀하의 자산을 동결할 수 있습니다.
AML 문제를 더 잘 피하려면 항상 거래상대방으로 평판이 좋은 플랫폼과 개인을 선택하십시오. 실제로 이러한 유형의 문제에 대한 몇 가지 해결책이 있습니다. 예를 들어, Ethereum에서는 거의 모든 범죄자와 개인 정보 보호에 관심이 많은 사람들이 코인 세탁을 위해 Tornado Cash를 사용합니다. 여기서는 대부분의 방법이 악을 행하는 데 사용되므로 이 주제에 대해서는 더 이상 다루지 않겠습니다.
### 콜드 월렛
콜드월렛을 사용하는 방법은 다양합니다. 지갑 입장에서는 어떠한 네트워크에도 연결되어 있지 않다면 콜드 지갑으로 간주될 수 있습니다. 하지만 오프라인일 때는 어떻게 사용하나요? 우선 단순히 암호화폐를 받고자 한다면 별 문제가 되지 않습니다. 콜드 지갑은 imToken, OneKey, Trust Wallet 등과 같은 Watch-Only 지갑과 함께 작동하여 탁월한 경험을 제공할 수 있습니다. 이러한 지갑은 간단히 대상 지갑 주소를 추가하여 Watch-Only 지갑으로 전환할 수 있습니다.
콜드 지갑을 사용하여 암호화폐를 보내려는 경우 가장 일반적으로 사용되는 방법은 다음과 같습니다:
* QRCode
* USB
* Bluetooth
이 모든 것에는 콜드 지갑과 함께 작동하는 전용 앱(여기서는 Light App이라고 함)이 필요합니다. Light App은 앞서 언급한 Watch-Only 지갑과 함께 온라인 상태가 될 것입니다. 기본 원리를 이해하고 나면 이러한 접근 방식도 이해할 수 있어야 합니다. 자세한 과정은 다음과 같습니다:
* 서명할 콘텐츠는 위 방법 중 하나를 통해 Light App에서 Cold Wallet으로 전송됩니다.
* 서명은 개인키를 가지고 있는 콜드월렛에 의해 처리된 후 동일한 방식으로 라이트앱으로 다시 전송됩니다.
* Light App은 서명된 콘텐츠를 블록체인에 브로드캐스트합니다.
따라서 QR코드, USB, 블루투스 중 어떤 방법을 사용하더라도 위의 과정을 따라야 합니다. 물론 세부사항은 방법에 따라 다를 수 있습니다. 예를 들어 QR코드는 정보 용량이 제한되어 있어 서명 데이터가 너무 많으면 분할해야 합니다.
조금 귀찮을 것 같지만 익숙해지면 괜찮아집니다. 당신은 심지어 완전한 안정감을 느낄 것입니다. 그러나 여기에는 여전히 위험이 존재하기 때문에 100% 안전하다고 생각하지 마십시오. 이러한 위험으로 인해 큰 손실을 입는 경우가 많습니다. 위험 요소는 다음과 같습니다:
* 코인 전송 대상 주소를 꼼꼼히 확인하지 않아 코인이 다른 사람에게 전송되는 일이 발생했습니다. 사람들은 게으르고 부주의하며 때로는 . 예를 들어, 대부분의 경우 전체 주소를 완전히 확인하는 대신 지갑 주소의 시작과 끝 몇 비트만 확인합니다. 이는 사기꾼에게 백도어를 남깁니다. 그들은 원하는 대상 주소와 동일한 처음 및 마지막 몇 비트로 지갑 주소를 가져오는 프로그램을 실행한 다음 몇 가지 트릭을 사용하여 코인 전송 대상 주소를 자신이 제어할 수 있는 주소로 바꿉니다.
* 코인은 알 수 없는 주소로 승인되었습니다. 일반적으로 승인은 이더리움 스마트 계약 토큰의 메커니즘인 "승인" 기능으로, 한 인수는 대상 승인 주소이고 다른 인수는 수량입니다. 많은 사람들이 이 메커니즘을 이해하지 못하기 때문에 대상 주소에 무제한의 토큰을 승인할 수 있으며, 이 시점에서 대상 주소는 모든 토큰을 전송할 수 있는 권한을 갖게 됩니다. 이것을 승인된 절도라고 하며 이 기술에는 다른 변형이 있지만 여기서는 이에 대해 확장하지 않겠습니다.
* 중요하지 않아 보이는 몇몇 시그니처들은 사실 뒤에 거대한 함정이 숨어 있는데, 지금은 파고들지 않고 자세한 내용은 나중에 설명하도록 하겠습니다.
* 콜드월렛은 필요한 정보를 충분히 제공하지 않아 귀하의 부주의와 오판을 초래할 수 있습니다.
그것은 모두 두 가지 점으로 요약됩니다:
* "보이는 대로 서명합니다"라는 사용자 상호 작용 보안 메커니즘이 누락되었습니다.
* 사용자의 관련 배경 지식이 부족합니다.
### 핫 월렛
콜드 지갑에 비해 핫 지갑은 기본적으로 콜드 지갑이 가질 수 있는 모든 위험을 가지고 있습니다. 게다가 비밀 문구(또는 개인 키)가 도난당할 위험이 하나 더 있습니다. 이 시점에서는 런타임 환경의 보안과 같이 핫 지갑과 관련하여 고려해야 할 더 많은 보안 문제가 있습니다. 런타임 환경과 관련된 바이러스가 있는 경우 도난당할 위험이 있습니다. 비밀문구를 직접 탈취할 수 있는 특정 취약점을 지닌 핫월렛도 존재합니다.
일반적인 코인 전송 기능 외에도 다른 DApp(DeFi, NFT, GameFi 등)과 상호 작용하려면 자신의 브라우저로 직접 액세스하거나 WalletConnect 프로토콜을 통해 PC 브라우저에서 열린 DApp과 상호 작용해야 합니다.
*Note이 문서의 DApp에 대한 참조는 기본적으로 이더리움 블록체인에서 실행되는 스마트 계약 프로젝트를 참조합니다.*
기본적으로 이러한 상호 작용은 지갑 보안 설계 자체에 문제가 없는 한 비밀 문구 도난으로 이어지지 않습니다. 당사의 보안 감사 및 보안 연구 이력에 따르면 대상 페이지의 악성 JavaScript에 의해 지갑 비밀 문구가 직접 도난당할 위험이 있습니다. 그러나 이는 실제로 잘 알려진 지갑이라면 할 수 없는 극히 낮은 수준의 실수이기 때문에 드문 경우입니다.
이 중 실제로 제가 걱정하는 것은 없습니다. 저와 여러분 모두가 관리할 수 있는 문제입니다. 나의 가장 큰 관심사는 잘 알려진 지갑이 반복될 때마다 악성 코드나 백도어가 설치되지 않도록 어떻게 보장하는가입니다. 이 질문이 의미하는 바는 분명합니다. 현재 버전의 지갑에 보안 문제가 없는 것을 확인했고 편안하게 사용할 수 있지만 다음 버전이 얼마나 안전할지 모르겠습니다. 결국 저나 보안 팀은 모든 확인을 수행하는 데 그렇게 많은 시간과 에너지를 가질 수 없습니다.
CoPay, AToken 등 여기에 설명된 악성 코드나 백도어에 의한 코인 도난 사건이 여러 건 발생했습니다. 구체적인 사건을 직접 검색하실 수 있습니다.
이 경우 악을 행하는 방법에는 여러 가지가 있습니다:
* 지갑이 실행되면 악성 코드는 관련 비밀 문구를 패키징하여 해커가 제어하는 서버에 직접 업로드합니다.
* 지갑이 실행 중이고 사용자가 이체를 시작하면 대상 주소, 금액 등의 정보가 지갑 백엔드에서 비밀리에 교체되므로 사용자가 알아차리기 어렵습니다.
* 비밀 문구 생성과 관련된 난수 엔트로피 값을 손상시켜 상대적으로 해독하기 쉽게 만듭니다.
보안은 무지와 지식의 문제이므로 쉽게 무시하거나 놓칠 수 있는 것들이 많이 있습니다. 따라서 중요한 자산을 보관하는 지갑의 경우 내 보안 규칙도 간단합니다. 사용하기에 충분할 때 업데이트가 쉽지 않습니다.
### 디파이 보안이 뭘까요
DApp에 관해 이야기할 때 DeFi, NFT 또는 GameFi 등이 될 수 있습니다. 이들의 보안 기본 사항은 대부분 동일하지만 각각의 세부 사항이 있습니다. 먼저 DeFi를 예로 들어 설명하겠습니다. 업계에 종사하는 사람들은 거의 항상 스마트 컨트랙만 봅니다. 스마트 컨트랙이 좋으면 모든 것이 잘 될 것 같습니다. 실제로는 이것은 사실과 거리가 멀다?
DeFi 보안에는 최소한 다음 구성 요소가 포함됩니다:
* Smart Contract Security
* Blockchain Foundation Security
* Frontend Security
* Communication Security
* Human Security
* Financial Security
* Compliance Security
**Smart Contract Security**
스마트 계약 보안은 실제로 보안 감사의 가장 중요한 진입점이며, 스마트 계약에 대한 SlowMist의 보안 감사 표준은 다음에서 확인할 수 있습니다:
>https://www.slowmist.com/service-smart-contract-security-audit.html
숙련된 사용자의 경우 스마트 컨트랙 부분 자체의 보안이 제어 가능하다면(자체 감사가 가능하거나 전문 조직에서 발행한 보안 감사 보고서를 이해할 수 있는지 여부) 다른 부분이 안전한지 여부는 중요하지 않습니다. 제어 가능은 까다로운 개념이며, 그 중 일부는 사용자 자신의 힘에 따라 달라집니다. 예를 들어, 사용자는 과도한 스마트 계약 컨트랙으로 인한 위험과 관련하여 특정 요구 사항을 가지고 있습니다. 프로젝트 자체가 강력하고 그 뒤에 있는 사람들의 평판이 좋다면 완전한 중앙 집중화는 중요하지 않습니다. 그러나 잘 알려지지 않았거나 논란이 많거나 신흥 프로젝트의 경우 프로젝트의 스마트 컨트랙이 과도한 허가 위험을 안고 있다는 것을 알게 되면, 특히 그러한 허가가 귀하의 원금이나 수입에 영향을 미칠 수 있는 경우에는 확실히 꺼릴 것입니다.
과도한 허가의 위험은 매우 미묘합니다. 많은 경우 프로젝트 관리자가 관련 거버넌스와 위험 대비를 수행하는 것이 가능합니다. 그러나 사용자에게 이것은 인간 본성에 대한 테스트입니다. 팀이 악을 행하기로 결정하면 어떻게 되나요? 따라서 업계에서는 과도한 권한으로 인한 위험을 완화하기 위해 Timelock을 추가하는 등의 절충 관행이 있습니다. 예를 들면 다음과 같습니다:
> Compound, 확립되고 잘 알려진 DeFi 프로젝트인, 핵심 스마트 계약 모듈인 감사관 및 거버넌스 모두 관리자 권한에 Timelock 메커니즘을 추가했습니다<br>
> Comptroller(0x3d9819210a31b4961b30ef54be2aed79b9c9cd3b)<br>
> Governance(0xc0da02939e1441f497fd74f78ce7decb17b66529)<br>
> 관리자는 이 2개 모듈을 사용합니다:<br>
> Timelock(0x6d903f6003cca6255d85cca4d3b5e5146dc33925)
Timelock(지연 변수)이 48시간(172,800초)이라는 것을 체인에서 직접 확인할 수 있습니다.
<img src="res/compound_timelock.png" width="700">
즉, 컴파운드 관리자가 대상 스마트 계약의 일부 주요 변수를 변경해야 하는 경우 트랜잭션이 블록체인에서 시작된 후 기록되지만 트랜잭션이 완료되고 실행되기까지는 48시간을 기다려야 합니다. 즉, 원하는 경우 관리자로부터 모든 단일 작업을 감사할 수 있으며 최소 48시간 동안 조치를 취할 수 있습니다. 예를 들어, 확실하지 않은 경우 48시간 이내에 자금을 인출할 수 있습니다.
관리자의 과도한 권한이 발생할 위험을 완화하는 또 다른 방법은 다중 서명 관리를 위해 Gnosis Safe를 사용하는 등 다중 서명을 추가하여 최소한 독재자가 없도록 하는 것입니다. 여기서 다중서명은 "황제의 새 옷"이 될 수 있다는 점에 유의해야 합니다. 예를 들어, 한 사람이 여러 개의 키를 보유할 수 있습니다. 따라서 대상 프로젝트의 멀티시그 전략을 명확히 명시해야 합니다. 열쇠를 소유한 사람은 누구이며, 각 열쇠 보유자의 신원은 평판이 좋아야 합니다.
어떤 안보 전략이라도 '황제의 새 옷' 문제로 이어질 수 있다는 점을 여기서 언급할 가치가 있습니다. 이는 전략이 잘 이루어진 것처럼 보이지만 실제로는 그렇지 않아 안보에 대한 환상을 낳습니다. 또 다른 예를 들어보면 Timelock은 서류상으로는 좋아 보입니다. 실제로 일부 프로젝트에서 배포한 Timelock에 백도어가 있는 경우가 있었습니다. 일반적으로 사용자는 Timelock의 소스 코드를 들여다보지 않고, 이해한다고 해도 반드시 이해하지 못할 것이기 때문에 관리자는 거기에 백도어를 설치해 두고 오랫동안 아무도 눈치 채지 못할 것입니다.
과도한 권한의 위험 외에도 스마트 컨트랙 보안의 다른 요소도 중요합니다. 그러나 이해를 위한 전제 조건을 고려하여 여기서는 확장하지 않겠습니다. 제 조언은 다음과 같습니다. 적어도 보안 감사 보고서를 읽는 법을 배워야 하며 연습을 하면 완벽해집니다.
**Blockchain Foundation Security**
블록체인 기반 보안은 합의 원장 보안, 가상 머신 보안 등 블록체인 자체의 보안을 의미합니다. 블록체인 자체의 보안이 걱정된다면 체인에서 실행되는 스마트 컨트랙 프로젝트는 직접적인 어려움을 겪게 됩니다. 충분한 보안 메커니즘과 평판을 갖추고 더 높은 수명 확률을 지닌 블록체인을 선택하는 것이 매우 중요합니다.
**Frontend Security**
프론트엔드 보안은 정말 악마입니다. 사용자와 너무 가까워서 특히 사용자를 속이기 쉽습니다. 아마도 모든 사람의 주요 초점은 지갑과 스마트 컨트랙의 보안에 있기 때문에 프런트엔드 보안이 쉽게 간과될 수 있습니다. 프론트엔드 보안은 악마라는 점을 다시 한 번 강조하고 싶습니다! 더 깊이 파헤쳐 보겠습니다.
프런트엔드 보안과 관련하여 가장 큰 우려 사항은 다음과 같습니다. 이 특정 프런트엔드 페이지에서 상호 작용하는 컨트랙이 내가 기대하는 스마트 컨트랙인지 어떻게 알 수 있습니까?
이러한 불안은 주로 다음 두 가지 요인에 기인합니다:
* 내부 작업
* 제3자
내부 작업을 이해하는 것은 간단합니다. 예를 들어, 개발자는 프런트엔드 페이지의 대상 스마트 컨트랙 주소를 백도어가 있는 컨트랙 주소로 비밀리에 바꾸거나 인증 피싱 스크립트를 심습니다. 이 조작된 프런트엔드 페이지를 방문하면 지갑에 있는 암호화폐와 관련된 일련의 후속 작업이 함정에서 수행될 수 있습니다. 당신이 깨닫기도 전에 자산은 이미 사라졌을 것입니다.
제3자는 주로 두 가지 유형을 말합니다:
* 하나는 종속성 체인이 침투되었다는 것입니다. 예를 들어, 프런트엔드 페이지에서 사용되는 타사 종속성에는 패키징 및 릴리스와 함께 대상 프런트엔드 페이지로 몰래 들어가는 백도어가 있습니다. 다음은 SushiSwap의 패키지 종속성 구조입니다(단순 설명을 위해 스크린샷의 프로젝트에 반드시 그러한 문제가 있다는 의미는 아닙니다)<br>
<img src="res/sushiswap_3rd.png" width="500">
* 다른 예는 프런트엔드 페이지에서 가져온 타사 원격 JavaScript 파일입니다. 이 JavaScript 파일이 해킹되면 OpenSea와 같은 대상 프런트엔드 페이지도 영향을 받을 수 있습니다(단순 설명을 위해 스크린샷의 프로젝트에 반드시 그러한 문제가 있다는 의미는 아닙니다).<br>
<img src="res/opensea_3rd.png" width="800">
우리가 그것이 가능하다고 말했지만 확실하지는 않다고 말한 이유는 개발자가 다음과 같은 방식으로 프런트엔드 페이지에서 타사 원격 JavaScript 파일을 참조하면 위험이 완화될 수 있기 때문입니다.
><script src="https://example.com/example-framework.js" integrity="sha384-Li9vy3DqF8tnTXuiaAJuML3ky+er10rcgNR/VqsVpcw+ThHmYcwiB1pbOxEbzJr7" crossorigin="anonymous"></script>
여기서 핵심은 HTML5의 뛰어난 보안 메커니즘인 태그의 무결성 속성(SRI 메커니즘)입니다. 무결성은 SHA256, SHA384 및 SHA512를 지원합니다. 타사 JavaScript 파일이 해시 무결성 검사를 충족하지 않으면 파일이 로드되지 않습니다. 이는 의도하지 않은 코드 실행을 방지하는 좋은 방법이 될 수 있습니다. 그러나 이 메커니즘을 활용하려면 대상 리소스가 CORS 응답을 지원해야 합니다. 자세한 내용은 다음을 참조하세요:
>https://developer.mozilla.org/zh-CN/docs/Web/Security/Subresource_Integrity
**Communication Security**
이 섹션에서는 HTTPS 보안에 중점을 두겠습니다. 첫째, 대상 웹사이트는 HTTPS를 사용해야 하며, HTTP 일반 텍스트 전송은 절대 허용되어서는 안 됩니다. 이는 HTTP 일반 텍스트 전송이 중간자 공격에 의해 도용되기가 너무 쉽기 때문입니다. 요즘 HTTPS는 보안 전송 프로토콜로 매우 일반적입니다. HTTPS에 중간자 공격이 있고 공격자가 웹 애플리케이션의 프런트 엔드에 악성 JavaScript를 삽입한 경우 매우 명백한 HTTPS 인증서 오류 경고가 사용자 브라우저에 표시됩니다.
이 점을 설명하기 위해 MyEtherWallet 사건을 예로 들어보겠습니다. MyEtherWallet은 매우 인기 있는 웹 애플리케이션 지갑이었으며 지금까지도 여전히 잘 알려져 있습니다. 그러나 더 이상 단순한 웹 애플리케이션 지갑이 아닙니다. 앞서 언급했듯이 보안상의 이유로 웹 애플리케이션 지갑의 사용을 강력히 권장하지 않습니다. 프런트 엔드 보안의 다양한 문제 외에도 HTTPS 하이재킹도 큰 잠재적 위험입니다.
2018년 4월 24일, 마이이더월렛(MyEtherWallet)에서 HTTPS 하이재킹이라는 대형 보안 사고가 발생했습니다. 사건 요약은 여기에서 확인할 수 있습니다:
>https://www.reddit.com/r/MyEtherWallet/comments/8eloo9/official_statement_regarding_dns_spoofing_of/<br>
>https://www.reddit.com/r/ethereum/comments/8ek86t/warning_myetherwalletcom_highjacked_on_google/
![](res/myetherwallet_https_hijack.png)
해당 공격에서 해커는 고대 라우팅 프로토콜인 BGP를 통해 다수의 마이이더월렛 사용자가 사용하는 DNS 서비스(구글 퍼블릭 DNS)를 하이재킹했으며, 이로 인해 모든 사용자가 방문을 시도할 때 모든 사용자의 브라우저에 HTTPS 오류 경고가 직접 표시되었습니다. 마이이더월렛(MyEtherWallet) 웹사이트. 실제로 사용자는 이 경고를 보면 기본적으로 대상 웹 페이지가 하이재킹되었음을 나타내므로 중지해야 합니다. 그러나 실제로는 많은 사용자가 HTTPS 오류 경고 뒤에 숨겨진 보안 위험을 전혀 이해하지 못했기 때문에 경고를 빠르게 무시하고 하이재킹된 사이트와의 상호 작용을 계속 진행했습니다.
대상 웹 페이지가 하이재킹되었고 해커가 거기에 악성 JavaScript를 삽입했기 때문에 사용자의 상호 작용 시 해커는 성공적으로 일반 텍스트 개인 키를 훔치고 자금(주로 ETH)을 이체했을 것입니다.
이는 해커가 BGP 하이재킹 기술을 사용하여 암호화폐를 훔친 전형적인 사례입니다. 그 후에도 유사한 사례가 여러 건 있었지만 여기서는 자세히 언급하지 않겠습니다. 사용자에게 정말로 주의가 필요한 것은 단 하나입니다. 웹 애플리케이션 지갑을 사용하기로 결정했거나 DApp과 상호 작용하려고 시도하는 경우 HTTPS 인증서 오류 경고가 나타날 때마다 항상 페이지를 중지하고 닫으십시오! 그러면 당신의 자금은 괜찮을 것입니다.
보안에는 잔인한 현실이 있습니다. 위험이 있을 때 사용자에게 선택권을 주지 마십시오. 그렇듯이 어떤 이유로든 함정에 빠지는 사용자는 항상 있기 마련입니다. 실제로 프로젝트 팀이 책임을 져야 합니다. 현재 위에서 언급한 HTTPS 하이재킹 문제에 대한 매우 효과적인 보안 솔루션이 이미 있습니다. 프로젝트 팀은 HSTS를 적절하게 구성해야 합니다. HSTS는 HTTP 엄격한 전송 보안을 나타냅니다. 이는 대부분의 최신 브라우저에서 지원되는 웹 보안 정책 메커니즘입니다. HSTS가 활성화된 경우 HTTPS 인증서 오류가 발생하는 경우 브라우저는 사용자가 대상 웹 애플리케이션에 대한 액세스를 중지하도록 강제하며 제한을 우회할 수 없습니다.
**Human Nature Security**
이 섹션은 이해하기 쉽습니다. 예를 들어 프로젝트 팀은 사악한 마음을 갖고 부정직한 방식으로 행동합니다. 이전 섹션에서 몇 가지 관련 내용을 언급했으므로 여기서는 더 자세한 내용을 다루지 않겠습니다. 자세한 내용은 이후 섹션에서 다루겠습니다.
**Financial Security**
금융 보안은 깊이 존중되어야 합니다. DeFi에서 사용자는 토큰 가격과 수익에 최대한 주의를 기울입니다. 그들은 더 우수하거나 적어도 꾸준한 투자 수익을 원합니다. 즉, 사용자로서 게임은 이기기 위해 하고, 지더라도 공정한 게임이라는 확신이 필요합니다. 이것은 인간의 본성입니다.
DeFi의 금융 보안은 다음과 같은 형태의 공격에 취약합니다:
* 사전 채굴, 사전 판매 등 불공정한 출시 관행.
* 암호화폐 고래의 공격.
* Pump and dump.
* 갑작스러운 시장폭포와 같은 블랙스완 현상; 또는 하나의 DeFi 프로토콜이 다른 DeFi/토큰의 보안/신뢰성은 다른 프로토콜에 의해 크게 달라집니다.
* 기타 기술적 공격 또는 프론트 런닝(front running), 샌드위치 공격, 플래시 대출 공격 등과 같은 과학적 기술이라고 부르는 공격.
**Compliance Requirements**
규정 준수 요구 사항은 매우 큰 주제이며, 앞서 언급한 AML(자금 세탁 방지)은 그 중 하나일 뿐입니다. KYC(Know Your Customer), 제재, 증권 위험 등과 같은 측면도 있습니다. 실제로 우리 사용자에게는 이러한 측면이 우리의 통제 대상이 아닙니다. 당사가 특정 프로젝트와 상호 작용할 때 특정 국가의 관련 규정이 적용될 수 있으므로 당사의 개인 정보가 수집될 수 있습니다. 당신은 그러한 개인 정보 보호 문제에 관심이 없을 수도 있지만, 그렇게 하는 사람들이 있습니다.
예를 들어, 2022년 초에 작은 사건이 발생했습니다. 일부 지갑은 AOPP(주소 소유권 증명 프로토콜) 프로토콜을 지원하기로 결정했습니다.
프로토콜 설계를 살펴보니 AOPP를 지원하는 지갑에서는 사용자 개인정보가 유출될 수 있다는 사실이 밝혀졌습니다. 규제 기관은 규제 대상 암호화폐 거래소와 알려지지 않은 외부 지갑 주소 간의 상호 연결을 알게 될 수 있습니다:
>https://gitlab.com/aopp/address-ownership-proof-protocol
많은 개인 정보 보호 지향 지갑이 사용자의 피드백에 대해 너무 우려하고 제품에서 AOPP 지원을 신속하게 제거한 것은 당연합니다. 하지만 솔직히 말해서 프로토콜 디자인은 꽤 흥미롭습니다. EdgeWallet과 같은 일부 지갑에서는 AOPP 지원을 제거할 계획이 없는 것으로 나타났습니다. 그들의 의견은 AOPP가 반드시 더 많은 사용자 개인 정보를 노출하는 것은 아니며 오히려 암호화폐의 유통을 향상시키는 데 도움이 된다는 것입니다. 많은 규제된 암호화폐 거래소에서 사용자는 자신의 소유권을 증명하기 전에 특정 외부 지갑 주소로 출금하는 것이 허용되지 않습니다.
처음에는 잘 알려진 하드웨어 지갑 Trezor가 AOPP 지원 제거를 거부했습니다. 그러나 나중에 커뮤니티와 트위터 사용자의 압력으로 인해 타협을 강요당했고 그렇게 했습니다.
보시다시피 아주 작은 사건이지만 어떤 사람들에게는 개인 정보 보호가 정말 중요합니다. 이는 규정을 위반하고 규정 준수 요구 사항을 완전히 무시해야 한다는 의미는 아닙니다. 사실 저는 규정 준수 요구 사항에 대해 어느 정도 타협이 필요하다고 생각합니다. 우리는 이 주제에 대해 계속 깊이 파고들지는 않을 것입니다. 자유롭게 내용을 자신만의 방식으로 소화해 보세요.
지금까지 우리는 DeFi 보안 섹션의 대부분의 내용을 다루었습니다.
게다가 향후 추가 또는 업데이트로 인해 보안 문제도 발생합니다. 우리는 흔히 "보안태세는 정적인 것이 아니라 동적이다"라고 말합니다. 예를 들어 오늘날 대부분의 프로젝트 팀은 보안 감사를 수행하고 깨끗한 보안 감사 보고서를 표시합니다. 양질의 보고서를 주의 깊게 읽어본 적이 있다면 이러한 보고서가 범위, 기간 및 감사된 콘텐츠의 고유 식별자(예: 검증된 오픈 소스 스마트 컨트랙 주소 또는 GitHub 저장소의 커밋 주소, 또는 대상 소스 코드 파일의 해시). 즉, 보고서는 정적이지만 프로젝트에서 보고서에 언급된 내용과 다른 점이 발견되면 이를 지적할 수 있습니다.
### NFT 보안
DeFi 보안에 대해 앞서 언급한 모든 내용은 NFT 보안에 적용될 수 있으며 NFT 자체에는 몇 가지 매우 구체적이고 독특한 보안 주제가 있습니다. 예를 들면 다음과 같습니다:
* 메타데이터 보안
* 서명 보안
메타데이터는 주로 삽입된 사진, 동영상 및 기타 콘텐츠를 의미합니다. 특정 표준에 대해서는 OpenSea를 참조하는 것이 좋습니다:
>https://docs.opensea.io/docs/metadata-standards
여기서 발생할 수 있는 두 가지 주요 보안 문제가 있습니다:
* 하나는 이미지(또는 영화)가 위치한 URI가 신뢰할 수 없을 수 있다는 것입니다. 이는 단지 무작위로 선택된 중앙 집중식 서비스일 수 있으며, 한편으로는 가용성이 보장되지 않고, 다른 한편으로는 프로젝트 팀이 이미지를 마음대로 수정할 수 있으므로 NFT는 더 이상 불변의 "디지털 수집품"이 되지 않습니다. 일반적으로 IPFS, Arweave와 같은 중앙 집중식 스토리지 솔루션을 사용하고 잘 알려진 URI 게이트웨이 서비스를 선택하는 것이 좋습니다.
* 또 하나는 개인 정보 유출 가능성입니다. 무작위로 선택된 URI 서비스는 사용자의 기본 정보(예: IP, User-Agent 등)를 캡처할 수 있습니다.
서명 보안은 여기서 또 다른 큰 관심사이며 아래에서 설명하겠습니다.
### 서명할 때 조심하세요
서명 보안은 함정이 너무 많고 항상 조심해야 하기 때문에 특별히 언급하고 싶은 것입니다. 특히 NFT 거래에서 여러 가지 사건이 발생했습니다. 그러나 이러한 보안 문제에 대비하고 대처하는 방법을 이해하는 사람은 그리 많지 않다는 것을 알게 되었습니다. 이유는 문제를 충분히 명확하게 설명한 사람이 거의 없기 때문입니다.
서명 보안에서 가장 중요한 보안 원칙 1위는 바로 보이는 대로 서명하는 것입니다. 즉, 귀하가 받은 서명 요청의 메시지는 서명 후 기대할 수 있는 내용입니다. 서명한 후에는 결과가 후회할 일이 아니라 예상한 대로여야 합니다.
서명 보안에 대한 일부 세부 사항은 "콜드 월렛" 섹션에서 언급되었습니다. 기억이 나지 않는다면 해당 섹션을 다시 살펴보는 것이 좋습니다. 이 섹션에서는 다른 측면에 중점을 둘 것입니다.
2022년경 OpenSea에서 잘 알려진 NFT 해킹이 여러 건 있었습니다. 2022년 2월 20일에 대규모 해킹이 발생했습니다. 근본 원인은 다음과 같습니다:
* 사용자는 OpenSea에서 NFT 목록 요청에 서명했습니다.
* 해커는 사용자로부터 관련 서명을 얻기 위해 피싱을 시도했습니다.
보다 정확한 해석을 위해 다음을 확인할 수 있습니다(어떤 이유로 인해 아래 링크가 더 이상 유효하지 않으며 Twitter 계정이 사라졌습니다)
>https://twitter.com/Nesotual/status/1495223117450551300
실제로 해커가 관련 서명을 얻는 것은 어렵지 않습니다. 해커는 1).서명할 메시지를 구성합니다, 2). Hash it, 3). 요청에 서명하도록 대상 사용자를 속입니다(이는 블라인드 서명이 되며, 이는 사용자가 실제로 서명하는 내용을 알지 못함을 의미합니다), 4). 서명된 콘텐츠를 가져와 데이터를 구성합니다. 이 시점에서 사용자는 해킹당했습니다.
Opensea를 예로 들어보겠습니다(실제로는 모든 NFT 마켓플레이스가 될 수 있습니다). 대상 사용자가 시장에서 NFT 목록 작업을 승인한 후 해커는 서명할 메시지를 구성합니다. Keccak256으로 해시한 후 피싱 페이지에 서명 요청 팝업이 표시됩니다. 사용자에게는 다음과 같은 내용이 표시됩니다.
<img src="res/metamask_sign.jpg" width="360">
이 MetaMask 팝업 창에서는 어떤 정보를 얻을 수 있나요? 계정 정보 및 계정 잔액, 서명 요청이 발생한 소스 웹사이트, 사용자가 서명하려는 메시지 등 기타 사항은 없습니다. 재해가 이미 진행 중이라고 사용자가 어떻게 의심할 수 있습니까? 그리고 일단 "서명" 버튼을 클릭하면 NFT가 도난당할 것이라는 사실을 어떻게 알 수 있습니까?
이것은 실제로 블라인드 서명의 예입니다. 사용자는 NFT 마켓플레이스 내에서 서명할 필요가 없습니다. 대신, 사용자는 이러한 서명의 실제 의미와 결과를 완전히 이해하지 못한 채 피싱 웹사이트에 속아 메시지에 서명할 수 있습니다. 불행하게도 해커들은 알고 있습니다. 사용자로서 다음 사항을 명심하십시오: 어떤 것에도 확인하지 않고 서명하지 마십시오. OpenSea는 예전에 블라인드 서명 문제가 있었는데, 2022년 2월 20일 이후 EIP-712를 채택하여 이를 해결했습니다. 하지만 블라인드 서명이 없으면 사용자는 여전히 부주의하고 다른 방법으로 해킹당할 수 있습니다.
이런 일이 발생하는 가장 중요한 이유는 서명이 브라우저의 동일 출처 정책을 따르도록 제한되지 않기 때문입니다. 다음과 같이 간단하게 이해할 수 있습니다. 동일 출처 정책은 프로젝트 팀이 의도적으로 도메인 교차가 발생하도록 원하지 않는 한 작업이 특정 도메인에서만 발생하고 도메인을 교차하지 않도록 보장할 수 있습니다. 서명이 동일 원본 정책을 따르는 경우 사용자가 대상이 아닌 도메인에서 생성된 서명 요청에 서명하더라도 해커는 대상 도메인에서의 공격에 서명을 사용할 수 없습니다. 자세한 내용을 살펴보기 전에 여기서 멈추겠습니다. 프로토콜 수준의 보안 개선에 대한 새로운 제안이 눈에 띄었는데, 이 상황이 하루 빨리 개선될 수 있기를 바랍니다.
메시지 서명 시 발생할 수 있는 주요 공격 형식을 대부분 언급했지만 실제로는 꽤 많은 변형이 있습니다. 아무리 다르게 보여도 비슷한 패턴을 따릅니다. 이를 이해하는 가장 좋은 방법은 공격을 처음부터 끝까지 직접 재현하거나 고유한 공격 방법을 만드는 것입니다. 예를 들어, 여기에 언급된 서명 요청 공격에는 실제로 서명할 메시지를 구성하는 방법, 서명 후 정확히 무엇이 생성되는지 등 많은 세부 정보가 포함되어 있습니다. "승인" 이외의 승인 방법이 있습니까(있습니다, 예: increaseAllowance). 음, 여기서 확장하면 너무 기술적일 것입니다. 좋은 점은 메시지 서명의 중요성을 이해하고 있다는 것입니다.
사용자는 인증/승인을 취소함으로써 이러한 공격을 원천적으로 방지할 수 있습니다. 다음은 사용할 수 있는 몇 가지 잘 알려진 도구입니다:
* Token Approvals
>https://etherscan.io/tokenapprovalchecker<br>
>이더리움 공식 브라우저에서 제공하는 인증 확인 및 취소를 위한 도구입니다. 다른 EVM 호환 블록체인에는 기본적으로 Etherscan에서 개발한 블록체인 브라우저와 비슷한 점이 있습니다:<br>
>https://bscscan.com/tokenapprovalchecker<br>
>https://hecoinfo.com/tokenapprovalchecker<br>
>https://polygonscan.com/tokenapprovalchecker<br>
>https://snowtrace.io/tokenapprovalchecker<br>
>https://cronoscan.com/tokenapprovalchecker
* Revoke.cash
>https://revoke.cash/<br>
>좋은 평판과 점점 더 강력해지는 멀티 체인 지원.
* Rabby extension wallet
>https://rabby.io/<br>
>우리가 많이 콜라보레이션 한 지갑 중 하나입니다. "인증 확인 및 취소" 기능을 제공하는 EVM 호환 블록체인의 수는 제가 본 것 중 가장 많습니다.
:warning:**Note**SIGNATURE SECURITY에 대해 보다 포괄적이고 심도 있는 이해를 원하시면 다음 저장소 추가 사항의 확장 기능을 참고로 확인하시기 바랍니다:
> https://github.com/evilcos/darkhandbook<br>
> SIGNATURE SECURITY에 대한 지식이 초보자에게 상당히 어려운 것은 사실입니다. 저장소에는 관련 콘텐츠가 정리되어 있으며, 이를 주의 깊게 읽으면 보안 지식을 파악하는 데 도움이 됩니다. 따라서 더 이상 어려움을 느끼지 않을 것입니다. (모든 것을 읽고 이해할 수 있다면 보안 지식은 더 이상 어렵지 않을 것이라고 믿습니다.)
### 반직관적인 서명 요청에 주의하세요
나는 특히 또 다른 위험, 즉 직관에 반하는 위험을 언급하고 싶습니다.
반직관적이란 무엇인가? 예를 들어, 귀하는 이미 이더리움에 매우 익숙하며 모든 종류의 DeFi 및 NFT의 OG가 되었습니다. 솔라나 생태계에 처음 들어가면 아마도 유사한 피싱 웹사이트를 접하게 될 것입니다. 준비가 너무 잘 되어 있어서 "이더리움 생태계에서 이런 것들을 수천 번 봤는데 어떻게 속을 수 있지?"라고 생각하기 시작할 수도 있습니다.
그동안 해커들은 당신이 이미 속았기 때문에 기뻐할 것입니다. 사람들은 자신의 직관적인 감정을 따르기 때문에 부주의하게 됩니다. 반직관적인 공격이 있을 때 사람들은 함정에 빠지게 됩니다.
이제 반직관성을 활용한 실제 사례를 살펴보겠습니다.
<img src="res/solana_nft_phishing.jpg" width="800">
우선, 경고합니다: 솔라나에 대한 승인 피싱은 훨씬 더 잔인합니다. 위의 예는 2022년 3월 5일에 발생했습니다. 공격자는 NFT를 사용자에게 일괄적으로 에어드랍했습니다(그림 1). 사용자들은 에어드랍 NFT 설명에 있는 링크(www_officialsolanares_net)를 통해 대상 웹사이트에 접속하고 지갑을 연결했습니다(그림 2). 페이지에서 "Mint" 버튼을 클릭하면 승인 창이 팝업으로 나타납니다(그림 3). 참고로 이때는 팝업창에 특별한 알림이나 메시지가 없었습니다. 승인되면 지갑에 있는 모든 SOL이 이전됩니다.
사용자가 "승인" 버튼을 클릭하면 실제로 공격자가 배포한 악성 스마트 컨트랙과 상호 작용하는 것입니다3VtjHnDuDD1QreJiYNziDsdkeALMT6b2F9j3AXdL4q8v。
이 악성 스마트 컨트랙의 궁극적인 목표는 사용자의 SOL을 모두 전송하는 "SOL Transfer"을 시작하는 것입니다. 온체인 데이터를 분석한 결과, 피싱 행위는 며칠간 계속됐고, 해당 기간 동안 피해자 수도 계속 늘어났습니다.
이 예에는 주의해야 할 두 가지 함정이 있습니다:
1. 사용자가 승인한 후 악성 스마트 계약은 사용자의 기본 자산(이 경우 SOL)을 전송할 수 있습니다. 이더리움에서는 불가능합니다. Ethereum의 인증 피싱은 다른 토큰에만 영향을 미칠 수 있으며 ETH의 기본 자산에는 영향을 미칠 수 없습니다. 이는 사용자의 경계심을 낮추게 만드는 반직관적인 부분입니다.
2. 솔라나에서 가장 잘 알려진 지갑인 팬텀(Phantom)은 보안 메커니즘에 허점이 있어 "보이는 대로 서명합니다"라는 원칙을 따르지 않으며(다른 지갑은 아직 테스트하지 않았습니다) 사용자에게 충분한 위험 경고를 제공합니다. 이는 사용자의 코인을 소모하는 보안 사각지대를 쉽게 만들 수 있습니다.
### 심화 공격 방법론들
실제로 다양한 첨단 공격 방법론이 있지만 대중의 관점에서는 대부분 피싱으로 간주됩니다. 그러나 일부는 일반적인 피싱 공격이 아닙니다. 예를 들어:
>https://twitter.com/Arthur_0x/status/1506167899437686784
해커는 이러한 첨부 파일이 포함된 피싱 이메일을 보냈습니다:
>A Huge Risk of Stablecoin(Protected).docx
솔직히 말해서 매력적인 문서입니다. 그러나 일단 열리면 사용자의 컴퓨터는 일반적으로 다음 기능을 포함하는 트로이 목마(일반적으로 Office 매크로 또는 0day/1day 익스플로잇을 통해)에 이식됩니다:
* 브라우저 관련, SSH 관련 등 모든 종류의 자격 증명을 수집합니다. 이러한 방식으로 해커는 대상 사용자의 다른 서비스에 대한 액세스를 확장할 수 있습니다. 따라서 감염 후 사용자는 일반적으로 대상 장치를 정리할 뿐만 아니라 관련 계정 권한도 정리하는 것이 좋습니다.
* Keylogger, 특히 비밀번호와 같은 민감한 정보가 일시적으로 나타나는 것을 표적으로 삼습니다.
* 관련 스크린샷, 민감한 파일 등을 수집합니다.
* 랜섬웨어인 경우 대상 시스템의 모든 파일은 강력하게 암호화되어 피해자가 일반적으로 비트코인으로 몸값을 지불할 때까지 기다립니다. 하지만 이 경우에는 더 명백하고 시끄러운 행동과 직접적인 의도를 가진 랜섬웨어가 아니었습니다.
또한 암호화폐 산업을 표적으로 삼는 트로이 목마는 사용자의 자금을 훔치기 위해 잘 알려진 지갑이나 거래소에서 중요한 정보를 수집하도록 특별히 맞춤화됩니다. 전문가 분석에 따르면 위에서 언급한 트로이 목마는 메타마스크를 표적 공격할 것으로 보입니다:
>https://securelist.com/the-bluenoroff-cryptocurrency-hunt-is-still-on/105488/
트로이 목마는 사용자의 MetaMask를 백도어가 있는 가짜로 대체합니다. 백도어 MetaMask는 기본적으로 귀하가 내부에 저장한 모든 자금이 더 이상 귀하의 것이 아니라는 것을 의미합니다. 하드웨어 지갑을 사용하더라도 이 가짜 MetaMask는 대상 주소나 금액 정보를 조작하여 자금을 훔칠 수 있습니다.
이 접근 방식은 지갑 주소가 알려진 잘 알려진 대상을 위해 특별히 제작되었습니다. 내가 알아차린 것은 그러한 사람들 중 다수가 너무 오만하여 해킹당하는 것을 막을 수 없다는 것입니다. 해킹 후 많은 사람들이 교훈을 얻고, 전체 검토를 수행하고, 상당한 개선을 이루었으며, 신뢰할 수 있는 보안 전문가 또는 기관과 장기적인 협력 및 우정을 형성할 것입니다. 그러나 이 세상에는 언제나 예외가 있습니다. 어떤 사람이나 프로젝트는 계속해서 해킹당하고 있습니다. 그때마다 누구도 접해보지 못한 일 때문이라면 나는 그들을 존경하며 개척자라고 부를 것입니다. 시간이 지남에 따라 해킹의 성공 가능성이 높아집니다. 불행하게도 많은 사건은 쉽게 피할 수 있는 매우 어리석고 반복적인 실수의 결과입니다. 이러한 프로젝트를 멀리하는 것이 좋습니다.
이에 비해 이러한 대규모 피싱 공격은 전혀 포괄적이지 않습니다. 공격자는 비슷하게 보이는 도메인 이름을 준비하고 Twitter나 기타 소셜 플랫폼에서 계정, 팔로어, 리트윗을 구입하여 페이로드를 확산시킵니다. 잘 관리하면 많은 사람들이 함정에 빠지게 됩니다. 이런 종류의 피싱 공격에는 실제로 특별한 것이 없으며, 일반적으로 공격자는 사용자가 토큰(NFT 포함)을 전송하도록 잔인하게 인증하게 만듭니다.
공격 프로세스를 원활하게 하기 위해 XSS, CSRF, 역방향 프록시와 같은 기술을 사용하는 등 다른 종류의 고급 공격도 있습니다. 역방향 프록시의 시나리오 중 하나인 매우 특별한 경우(Cloudflare 중간자 공격)를 제외하고는 여기에서 모든 것에 대해 자세히 설명하지 않겠습니다. 이 극도로 은밀한 방법을 이용하여 재정적 손실을 초래하는 실제 공격이 있었습니다.
여기서 문제는 Cloudflare 자체가 사악하거나 해킹당하는 것이 아닙니다. 대신 프로젝트 팀의 Cloudflare 계정이 손상됩니다. 일반적으로 프로세스는 다음과 같습니다. Cloudflare를 사용하는 경우 대시보드에 이 "작업자" 모듈이 표시됩니다. 공식 설명은 다음과 같습니다:
서버리스 애플리케이션을 구축하고 전 세계에 즉시 배포하여 뛰어난 성능, 안정성 및 확장성을 달성합니다. 자세한 내용은 다음을 참조하세요:
>https://developers.cloudflare.com/workers/
테스트 페이지를 만들어 봤습니다:
>https://xssor.io/s/x.html
해당 페이지에 접속하시면 팝업창이 뜹니다:
>xssor.io, Hijacked by Cloudflare.
실제로 이 팝업은 물론 x.html의 전체 내용도 문서 자체에 속하지 않습니다. 이들 모두는 Cloudflare에서 제공됩니다. 메커니즘은 아래와 같습니다:
<img src="res/cloudflare_worker.png" width="800">
스크린샷의 코드 조각 표시는 매우 간단합니다. 내가 해커이고 Cloudflare 계정을 제어했다면 Workers를 사용하여 모든 웹 페이지에 임의의 악성 스크립트를 삽입할 수 있습니다. 그리고 오류 경고(예: HTTPS 인증서 오류)가 없기 때문에 사용자가 대상 웹 페이지가 하이재킹 및 변조되었음을 깨닫는 것이 매우 어렵습니다. 프로젝트 팀조차도 서버와 직원의 보안을 확인하는 데 엄청난 시간을 소비하지 않으면 문제를 쉽게 식별할 수 없습니다. Cloudflare 작업자라는 사실을 깨닫게 될 때쯤이면 손실이 이미 상당할 수 있습니다.
Cloudflare는 실제로 좋은 도구입니다. 많은 웹사이트나 웹 애플리케이션은 이를 웹 애플리케이션 방화벽, DDoS 방지 솔루션, 글로벌 CDN, 역방향 프록시 등으로 사용할 것입니다. 무료 버전이 있기 때문에 큰 고객 기반을 보유하고 있습니다. 또는 Akaimai 등의 서비스가 있습니다.
사용자는 해당 계정의 보안에 주의를 기울여야 합니다. 인터넷의 등장으로 계정 보안 문제가 발생합니다. 이는 전 세계 거의 모든 사람이 어디서나 이야기할 만큼 흔한 주제이지만, 여전히 많은 사람들이 이로 인해 해킹을 당하고 있습니다. 일부 근본 원인은 중요한 서비스에 고유하고 강력한 비밀번호를 사용하지 않기 때문일 수 있습니다(1Password와 같은 비밀번호 관리자는 그다지 인기가 없습니다). 일부는 2단계 인증(2FA)을 활성화하지 않기 때문일 수도 있습니다. 그들은 심지어 그 일에 대해서도 모릅니다. 일부 특정 서비스의 경우는 말할 것도 없고, 비밀번호는 최소한 1년에 한 번 재설정해야 합니다.
좋습니다. 이번 섹션은 이것으로 마치겠습니다. 이것이 실제로 어두운 숲이라는 점만 이해하고 가능한 한 많은 공격 방법을 알아야 합니다. 서류상으로 충분히 살펴본 후 적어도 한두 번 함정에 빠졌다면 자신을 아마추어 보안 전문가라고 생각할 수 있습니다(어쨌든 자신에게 도움이 될 것입니다).
## 전통적인 개인정보 보호
축하합니다. 이 부분까지 완료하셨습니다. 전통적인 개인 정보 보호는 오래된 주제입니다. 제가 2014년에 쓴 기사는 다음과 같습니다:
개인 정보 침해 시대에 자신을 보호하려면 몇 가지 요령을 배워야 합니다<br>
>https://evilcos.me/yinsi.html
이 기사를 다시 읽으면 2014년 초보 수준 기사였지만 기사에 담긴 대부분의 조언은 오래되지 않았습니다. 기사를 다시 읽은 후 여기에 새로운 내용을 소개하겠습니다. 사실 개인 정보 보호는 보안과 밀접한 관련이 있습니다. . 전통적인 개인 정보 보호는 보안의 초석입니다. 이 섹션에는 개인 키가 개인 정보 보호의 일부로 포함되어 있습니다. 만일 주춧돌이 견고하지 못하면, 주춧돌의 프라이버시도 무의미해지고, 상부구조는 공중에 떠 있는 건물처럼 부서지기 쉬울 것입니다.
다음 두 가지 리소스를 적극 권장합니다:
>SURVEILLANCE SELF-DEFENSE<br>
>TIPS, TOOLS AND HOW-TOS FOR SAFER ONLINE COMMUNICATIONS<br>
>https://ssd.eff.org/
SSD는 SURVEILLANCE SELF-DEFENSE의 약자입니다.잘 알려진 EFF(Electronic Frontier Foundation)에서 출시한 이 재단은 모니터링 인터넷 세계에서 형님이 지켜보는 것을 방지하는 방법을 알려주는 관련 지침을 특별히 발행했으며 여기에는 몇 가지 유용한 도구가 포함됩니다. (Tor, WhatsApp, Signal, PGP 등)
>Privacy Guide: Fight Surveillance with Encryption and Privacy Tools<br>
>https://www.privacytools.io/
위 웹사이트에는 다양한 도구가 포괄적으로 나열되어 있습니다. 일부 암호화폐 거래소, 지갑 등을 추천하기도 합니다. 하지만 저는 저만의 방식이 있기 때문에 웹사이트에 나열된 도구를 그다지 많이 사용하지 않는다는 점에 유의해야 합니다. 그러므로 당신도 계속해서 비교하고 개선하면서 자신만의 방식을 발전시켜야 합니다.
다음은 귀하가 사용해야 한다고 제안하는 도구의 몇 가지 주요 내용입니다.
### PC 시스템
Windows 10 Edition(이상)과 macOS는 모두 보안 옵션입니다. 능력이 있다면 Ubuntu와 같은 Linux를 선택하거나 Tails 또는 Whonix와 같이 보안 및 개인 정보 보호에 중점을 둔 Linux를 선택할 수 있습니다.
운영 체제 주제에서 가장 간단한 보안 원칙은 시스템 업데이트에 세심한 주의를 기울이고 가능한 경우 최대한 빨리 적용하는 것입니다. 운영 체제를 마스터하는 능력은 그 다음입니다. 사람들은 Windows나 MacOS와 같은 운영 체제를 마스터하려면 도대체 무엇을 배워야 합니까?라고 묻습니다. 그냥 클릭하는거 아닌가요? 글쎄요, 실제로는 충분하지 않습니다. 초보 사용자의 경우 Kaspersky, BitDefender와 같은 우수한 바이러스 백신 소프트웨어가 필수이며 둘 다 MacOS에서 사용할 수 있습니다.
그리고 앞서 언급한 다운로드 보안에 대해서도 잊지 마세요. 무분별하게 프로그램을 다운로드하고 설치하지 않으면 대부분의 위험은 제거됩니다.
다음으로, 컴퓨터를 분실하거나 도난당한 경우 어떻게 할지 생각해 보세요. 부팅 비밀번호를 아는 것만으로는 충분하지 않습니다. 디스크 암호화가 켜져 있지 않으면 악의적인 행위자가 하드 디스크를 꺼내서 내부 데이터를 검색할 수 있습니다. 따라서 나의 조언은 중요한 컴퓨터에 대해 디스크 암호화를 켜야 한다는 것입니다:
>https://docs.microsoft.com/zh-cn/windows/security/encryption-data-protection<br>
>https://support.apple.com/zh-cn/HT204837
VeraCrypt(이전 TrueCrypt)와 같은 강력하고 전설적인 도구도 있습니다. 관심이 있으시면 자유롭게 사용해 보세요:
>https://veracrypt.fr/
한 단계 더 나아가 BIOS 또는 펌웨어 암호를 활성화할 수 있습니다. 제가 직접 해봤지만 선택은 전적으로 여러분의 몫입니다. 기억하세요. 비밀번호를 아주 명확하게 기억하세요. 그렇지 않으면 누구도 도와줄 수 없습니다. 나는 운 좋게도 이전에 토끼굴에 빠져서 노트북과 암호화폐, 그리고 일주일의 시간을 소비했습니다. 한편으로는 매우 좋은 학습 경험이기도 합니다.
### 휴대폰
요즘에는 iPhone과 Android가 유일한 주류 휴대전화 카테고리입니다. 나는 BlackBerry의 열렬한 팬이었지만 시간이 지나면서 그 영광은 사라졌습니다. 예전에는 안드로이드폰의 보안태세 때문에 걱정이 많았습니다. 한편으로는 아직 초기 단계에 있었고, 다른 한편으로는 버전이 매우 단편화되어 각 브랜드마다 자체적인 포크된 Android 버전이 있었습니다. 하지만 지금은 상황이 많이 좋아졌습니다.
휴대폰에서는 보안 업데이트와 다운로드 보안에도 주의를 기울여야 합니다. 또한, 다음 사항에 주의하세요:
* 휴대폰을 jailbreak/루팅하지 마십시오. 관련 보안 연구를 수행하지 않는 한 불필요합니다. 불법 복제 소프트웨어에 대해 수행하는 경우 기술을 얼마나 잘 습득할 수 있는지에 따라 달라집니다.
* 비공식 앱 스토어에서 앱을 다운로드하지 마세요. 당신이 무엇을 하고 있는지 모르면 하지 마세요. 공식 앱 스토어에는 가짜 앱이 많다는 것은 말할 것도 없습니다.
* 공식 클라우드 동기화 기능을 활용하기 위한 전제 조건은 계정이 안전한지 확인해야 한다는 것입니다. 그렇지 않으면 클라우드 계정이 손상되면 휴대폰도 손상됩니다.
개인적으로 저는 아이폰에 더 의존합니다. 그리고 최소 두 개의 iCloud 계정(중국 하나, 해외 하나)이 필요합니다. 다양한 지역 제한이 있는 앱을 설치하려면 이 정보가 필요합니다. (이상하게 들리지만 현실에 오신 것을 환영합니다)
### 인터넷
네트워크 보안 문제는 골치 아픈 문제였지만, 특히 HTTPS Everywhere 정책이 대량 채택된 이후 최근 몇 년 동안 이미 상당한 개선이 이루어졌습니다.
네트워크 하이재킹(중간자 공격) 공격이 진행 중인 경우 해당 시스템 오류 경고가 표시됩니다. 그러나 항상 예외가 있으므로 선택할 수 있는 경우 더 안전한 옵션을 사용하십시오. 예를 들어, 더 널리 사용되고 안전한 4G/5G 네트워크를 사용할 수 없거나 안정적이지 않은 경우를 제외하고는 익숙하지 않은 Wi-Fi 네트워크에 연결하지 마세요.
### 브라우저
가장 인기 있는 브라우저는 Chrome과 Firefox이며 암호화폐 분야에서는 일부 브라우저도 Brave를 사용합니다. 이러한 잘 알려진 브라우저는 강력한 팀을 보유하고 있으며 적시에 보안 업데이트가 제공될 것입니다. 브라우저 보안 주제는 매우 광범위합니다. 다음은 알아두어야 할 몇 가지 팁입니다:
* 가능한 한 빨리 업데이트하고 위험을 감수하지 마십시오.
* 필요하지 않은 경우 확장 프로그램을 사용하지 마세요. 그렇다면 사용자 리뷰, 사용자 수, 회사 유지 관리 등에 따라 결정을 내리고 요청하는 권한에 주의를 기울이십시오. 브라우저의 공식 앱 스토어에서 확장 프로그램을 다운로드했는지 확인하세요.
* 여러 브라우저를 병렬로 사용할 수 있으므로 한 브라우저에서 중요한 작업을 수행하고 더 일상적이고 덜 중요한 작업에는 다른 브라우저를 사용하는 것이 좋습니다.
* プ다음은 잘 알려진 개인정보 보호에 중점을 둔 확장 프로그램(예: uBlock Origin, HTTPS Everywhere, ClearURLs 등)입니다. 자유롭게 사용해 보세요.
특히 Firefox에서는 악성 JavaScript 페이로드를 차단한 것으로 입증된 전설적인 고대 확장 프로그램인 NoScript도 사용할 것입니다. 오늘날 브라우저는 동일 출처 정책, CSP, 쿠키 보안 정책, HTTP 보안 헤더, 확장 보안 정책 등과 같은 지원을 추가함에 따라 점점 더 안전해지고 있습니다. 따라서 NoScript와 같은 도구를 사용할 필요성이 점점 줄어들고 있으며, 관심이 있다면 자유롭게 살펴보세요.
### 비밀번호 관리
아직 비밀번호 관리자를 사용해 본 적이 없다면 사용의 편리성을 모르거나 자신만의 강력한 메모리 궁전을 갖고 있는 것입니다. 뇌 기억의 위험은 이전에도 언급되었습니다. 하나는 시간이 당신의 기억을 약화시키거나 방해할 것이라는 점입니다. 다른 하나는 사고가 발생할 수 있다는 것입니다. 두 경우 모두 비밀번호 관리자를 사용하여 뇌 기억력을 관리하고 1Password, Bitwarden 등과 같이 잘 알려진 비밀번호 관리자를 사용하는 것이 좋습니다.
이 부분을 너무 많이 다룰 필요는 없습니다. 온라인에 관련 튜토리얼이 너무 많아서 튜토리얼 없이도 쉽게 시작할 수 있습니다.
여기서 꼭 기억해 주셔야 할 것은:
* 마스터 비밀번호를 절대 잊지 말고 계정 정보를 안전하게 보관하세요. 그렇지 않으면 모든 것이 손실됩니다.
* 이메일이 안전한지 확인하세요. 이메일이 손상되더라도 비밀번호 관리자의 민감한 정보가 직접 손상되지는 않을 수 있지만 악의적인 행위자는 해당 정보를 파괴할 수 있습니다.
* 제가 언급한 도구(예: 1Password)의 보안을 확인했으며 관련 보안 사고, 사용자 리뷰, 뉴스 등을 면밀히 관찰했습니다. 그러나 이러한 도구가 절대적으로 안전하다고 보장할 수 없으며 미래에 블랙스완 사건이 그들에게 일어나지 않을것이라고 장담할 수는 없습니다.
예를 들어 제가 감사하게 생각하는 것 중 하나는 1Password의 보안 페이지에 대한 소개와 설명입니다:
>https://1password.com/zh-cn/security/
이 페이지에는 보안 설계 개념, 관련 개인 정보 보호 및 보안 인증서, 보안 설계 백서, 보안 감사 보고서 등이 있습니다. 이러한 수준의 투명성과 개방성은 업계에서 필요한 검증을 용이하게 합니다. 모든 프로젝트 팀은 이로부터 배워야 합니다.
Bitwarden은 한 단계 더 나아가 서버 측을 포함한 완전한 오픈 소스이므로 누구나 검증, 감사 및 기여할 수 있습니다.
이제 알겠나요? 1Password와 Bitwarden의 의도는 매우 분명합니다:
>나는 매우 안전주의며 개인 정보 보호를 걱정합니다. 나 자신만이 그렇게 말하는 것이 아니라 제3의 권위자들도 그렇게 말합니다. 나는 보안 문제에 관해 가능한 많이 공개하기 위해 많은 노력을 기울입니다. 내가 하는 일이 내가 말하는 것과 맞지 않으면 나에게 도전하기 쉽습니다. 그리고 이것을 보안 신뢰라고 합니다.
이것이 바로 보안과 자신감입니다 :)
### 이중 인증
인터넷상의 신원 보안에 관해 말하자면, 첫 번째 계층은 비밀번호에 의존하고, 두 번째 계층은 2단계 인증에 의존하며, 세 번째 계층은 대상 프로젝트 자체의 위험 제어 능력에 의존합니다. 2단계 인증이 필수라고는 말할 수 없습니다. 예를 들어, 분산형 지갑을 사용하는 경우 비밀번호 한 겹은 충분히 짜증나지만(이제 사용자 경험을 개선하기 위해 기본적으로 얼굴 인식이나 지문과 같은 생체 인식을 지원합니다), 누구도 두 번째 요소를 사용하고 싶어하지 않습니다. 하지만 중앙 집중식 플랫폼에서는 2FA를 사용해야 합니다. 누구나 중앙 집중식 플랫폼에 액세스할 수 있으며, 자격 증명이 도난당하면 계정이 침해되고 자금이 손실됩니다. 반대로, 탈중앙화 지갑의 비밀번호는 단지 로컬 인증일 뿐입니다. 해커가 비밀번호를 알아내더라도 지갑이 위치한 장치에 접근해야 합니다.
이제 차이점이 보이시나요?잘 알려진 2단계 인증(2FA) 도구로는 Google Authenticator, Microsoft Authenticator 등이 있습니다. 물론 비밀번호 관리자(예: 1Password)를 사용하는 경우 매우 편리한 2FA 모듈도 함께 제공됩니다. 2FA를 잃으면 번거로울 수 있으므로 항상 백업하는 것을 잊지 마세요.
또한 이중 인증은 더 넓은 개념일 수도 있습니다. 예를 들어, 계정 식별자와 비밀번호를 사용하여 대상 플랫폼에 로그인하는 경우 계정 식별자는 일반적으로 이메일 또는 휴대폰 번호입니다. 이때, 메일함이나 휴대폰 번호를 2FA로 활용하여 인증코드를 받으실 수 있습니다. 하지만 이 방법의 보안 수준은 그리 좋지 않습니다. 예를 들어, 사서함이 손상되거나 SIM 카드가 탈취되거나 이메일 및 문자 메시지 전송에 사용되는 제3자 서비스가 해킹되는 경우 플랫폼에서 보낸 인증 코드도 공개됩니다.
### VPN
자신만의 솔루션을 구축할 수 있다면 상황이 더욱 통제될 것입니다. 결국 우리의 출발점은 인터넷을 과학적이고 안전하게 서핑하는 것입니다.
자체 구축된 솔루션을 사용하지 않는 경우 중간자 공격의 가능성을 완전히 배제할 수는 없습니다. 앞서 언급한 것처럼, 특히 HTTPS Everywhere 정책이 대량 도입된 이후 인터넷 보안 상황은 예전만큼 나쁘지 않습니다. 그러나 평화의 일부는 단지 수면일 수도 있고, 수면 아래에는 쉽게 눈에 띄지 않는 위험이 이미 존재합니다. 솔직히 말해서, 이것에 대한 묘책을 가지고 있지 않습니다. 자신만의 솔루션을 구축하는 것은 쉽지 않지만 확실히 그만한 가치가 있습니다. 그리고 그럴 수 없다면 여러 소스를 사용하는지 확인하고 오랫동안 사용되어 온 평판이 좋은 소스를 선택하세요.
### 이메일
이메일은 당사 웹 기반 ID의 초석입니다. 우리는 많은 서비스에 가입하기 위해 이메일을 사용합니다. 우리가 사용하는 거의 모든 이메일 서비스는 무료입니다. 그것은 공기처럼 보이며, 사라질 것이라고는 생각하지 않습니다. 어느 날 이메일 서비스가 사라지면 이에 의존하는 다른 모든 서비스가 다소 어색한 상황에 처하게 될 것입니다. 전쟁, 자연재해 등의 극단적인 상황이 발생한다면 실제로 불가능한 것은 아닙니다. 물론 이러한 극단적인 상황이 발생하면 이메일은 생존보다 덜 중요할 것입니다.
이메일 서비스 제공업체의 경우 Gmail, Outlook 또는 QQ 이메일과 같은 거대 기술 업체 중에서 선택해야 합니다. 나의 이전 보안 연구에서 이 분야를 다루게 되었습니다. 이러한 사서함의 보안 상태는 충분합니다. 하지만 여전히 이메일 피싱 공격에 주의해야 합니다. 모든 단일 이메일, 특히 트로이 목마가 숨겨져 있을 수 있는 포함된 링크와 첨부 파일을 처리할 필요는 없습니다.
이메일 서비스 제공업체에 대한 매우 정교한 공격을 발견하면 스스로 책임을 져야 합니다.
이러한 거대 기술 기업의 이메일 서비스 외에도 개인 정보 보호에 대해 매우 우려가 있다면 잘 알려진 두 가지 개인 정보 보호 이메일 서비스인 ProtonMail과 Tutanota를 살펴볼 수 있습니다. 제가 제안하는 것은 이러한 개인 친화적인 사서함을 일상적인 사용과 분리하고 개인 정보 보호에 특별한 주의가 필요한 서비스에만 사용하는 것입니다. 또한 장기간 활동이 없어 계정이 정지되는 것을 방지하려면 무료 이메일 서비스를 정기적으로 사용해야 합니다.
### SIM 카드
SIM 카드와 휴대폰 번호도 이메일과 마찬가지로 많은 경우 매우 중요한 기본 신원입니다. 최근 몇 년 동안 우리나라의 주요 통신업체들은 휴대폰 번호 보안 보호에 있어 매우 훌륭한 성과를 거두었습니다. 예를 들어 SIM 카드 취소 및 재발급에 대한 엄격한 보안 프로토콜 및 확인 프로세스가 있으며 모두 현장에서 발생합니다. SIM 카드 공격 주제에 대해 예를 들어 보겠습니다:
2019년 5월에는 누군가의 Coinbase 계정이 SIM 포트 공격(SIM 카드 전송 공격)을 당하여 안타깝게도 10만 달러 이상의 암호화폐가 손실되었습니다. 공격과정은 대략 다음과 같습니다:
공격자는 소셜 엔지니어링 등의 방법을 통해 대상 사용자의 개인 정보를 획득하고 이동통신사를 속여 새 SIM 카드를 발급한 후 동일한 휴대폰 번호를 통해 대상 사용자의 Coinbase 계정을 쉽게 탈취했습니다. SIM이 전송되었는데 매우 번거롭습니다. 귀하의 SIM 카드가 공격자에 의해 전송된 경우 매우 문제가 됩니다. 요즘 많은 온라인 서비스에서 당사의 휴대전화 번호를 직접 인증 요소 또는 2FA로 사용하기 때문입니다. 이는 매우 중앙화된 인증 메커니즘으로 휴대폰 번호가 약점이 됩니다.
자세한 분석은 다음을 참고하세요:
>https://medium.com/coinmonks/the-most-expensive-lesson-of-my-life-details-of-sim-port-hack-35de11517124
이에 대한 방어 제안은 실제로 간단합니다. 잘 알려진 2FA 솔루션을 활성화하는 것입니다.
SIM 카드에는 또 다른 위험이 있습니다. 즉, 휴대폰을 분실하거나 도난당한 경우 악의적인 사람이 SIM 카드를 꺼내 사용할 수 있다는 점입니다. 제가 한 일은 다음과 같습니다. SIM 카드 비밀번호(PIN 코드)를 활성화하면 휴대전화를 켜거나 새 기기에서 SIM 카드를 사용할 때마다 올바른 비밀번호를 입력해야 합니다. 자세한 방법은 Google에 문의하세요. 제가 강조할 내용은 다음과 같습니다. 이 비밀번호를 잊지 마세요. 그렇지 않으면 매우 번거로울 것입니다.
### GPG
이 부분의 내용은 이전 섹션에서 언급한 내용이 많으며 여기에 기본 개념을 더 추가하고 싶습니다:
때로는 PGP, OpenPGP, GPG와 같이 비슷한 이름을 접하게 됩니다. 간단하게 다음과 같이 구별하세요:
* PGP, Pretty Good Privacy의 약자인 PGP는 현재 Symantec 산하의 30년 된 상용 암호화 소프트웨어입니다.
* OpenPGP는 PGP에서 파생된 암호화 표준입니다.
* GPG, GPG(전체 이름은 GnuPG)는 OpenPGP 표준을 기반으로 하는 오픈 소스 암호화 소프트웨어입니다.
코어는 유사하며 GPG를 사용하면 다른 코어와 호환됩니다. GPG를 올바르게 사용하면 보안 수준을 크게 향상시킬 수 있습니다.
### 분리
분리 보안 원칙의 핵심 가치는 제로 트러스트 사고방식입니다. 우리가 아무리 강하더라도 외부 해커, 내부자 또는 우리 자신에 의해 조만간 해킹당할 것이라는 점을 이해해야 합니다. 해킹을 당하면 가장 먼저 손실을 막아야 합니다. 손실을 막는 능력은 많은 사람들에 의해 무시되고, 이것이 바로 그들이 계속해서 해킹당하는 이유입니다. 근본 원인은 보안 설계가 없다는 것, 특히 분리와 같은 간단한 방법이 있다는 것입니다.
좋은 분리 방법을 사용하면 보안 사고가 발생하는 경우 다른 자산에 영향을 주지 않고 손상된 대상과 직접 관련된 자산만 손실되도록 할 수 있습니다. 예를 들어:
* 비밀번호 보안 습관이 양호하다면 계정 중 하나가 해킹당하더라도 동일한 비밀번호가 다른 계정을 손상시키지 않습니다.
* 귀하의 암호화폐가 하나의 니모닉 시드 세트에 저장되지 않으면 함정에 빠지더라도 모든 것을 잃지 않을 것입니다.
* 컴퓨터가 감염된 경우 다행히도 이 컴퓨터는 일상적인 활동에 사용되는 컴퓨터일 뿐이며 거기에는 중요한 내용이 없습니다. 따라서 컴퓨터를 다시 설치하면 대부분의 문제가 해결되므로 당황할 필요가 없습니다. 가상머신을 잘 활용한다면 스냅샷만 복원하면 되기 때문에 상황은 더욱 좋습니다. 좋은 가상 머신 도구는 VMware, Parallels입니다.
* 요약하면 최소한 두 개의 계정, 두 개의 도구, 두 개의 장치 등을 가질 수 있습니다. 익숙해지면 독립적인 가상 ID를 완전히 만드는 것이 불가능하지 않습니다.
나는 이전에 좀 더 극단적인 의견을 언급했습니다. 개인 정보는 우리가 보호할 수 있는 것이 아니며, 개인 정보는 통제되어야 합니다.
이러한 관점을 갖는 이유는 현재 인터넷 환경에서 개인정보가 실제로 심각하게 유출되고 있기 때문이다. 다행스럽게도 최근 몇 년 동안 개인 정보 보호 관련 규정이 점점 더 널리 채택되고 있으며 사람들의 관심도 점점 더 높아지고 있습니다. 실제로 모든 것이 올바른 방향으로 가고 있습니다. 하지만 그 전에 어떤 경우에도 내가 나열한 지식 포인트를 숙달하면 귀하의 개인정보를 쉽게 통제할 수 있을 것입니다. 인터넷에 익숙하다면 서로 거의 독립적인 여러 개의 가상 ID를 가질 수 있습니다.
## 인간 본성의 보안
인간은 언제나 가장 높고 영원한 위험에 처해 있습니다. 삼신문제(The Three-Body Problem)에는 다음과 같은 말이 있습니다. "나약함과 무지는 생존의 장벽이 아니지만 오만함은 생존의 장벽입니다."
* 오만하지 마십시오. 자신이 이미 강하다고 생각한다면 괜찮습니다. 다만 온 세상을 내려다보지 마십시오. 특히, 지나치게 자만하지 말고 글로벌 해커들에게 도전할 수 있다고 생각하지 마세요. 배움에는 끝이 없고, 여전히 장애물이 많습니다.
* 탐욕하지 마십시오. 탐욕은 실제로 많은 경우 앞으로 나아가게 하는 동기입니다. 하지만 생각해 보십시오. 왜 그렇게 좋은 기회가 당신에게만 예약되어 있습니까? :)
* 충동적이지 마십시오. 충동성은 당신을 함정으로 이끄는 악마입니다. 발진 행동은 도박입니다.
인간의 본성에는 이야기할 것이 끝없이 많으며 이보다 더 조심할 수는 없습니다. 다음 사항에 각별히 주의하시고, 나쁜 행위자들이 다양한 편리한 플랫폼을 활용하여 인간 본성의 약점을 어떻게 이용하는지 살펴보시기 바랍니다.
### Telegram
앞서 텔레그램이 가장 큰 다크웹이라고 말한 적이 있습니다. 사람들은 보안, 안정성, 개방형 디자인 기능 때문에 Telegram을 좋아한다고 말씀드리고 싶습니다. 그러나 Telegram의 개방형 문화는 또한 나쁜 사람들을 끌어들입니다. 엄청난 수의 사용자, 고도로 사용자 정의 가능한 기능, 모든 종류의 봇 서비스를 구축하기에 충분히 쉽습니다. 암호화폐와 결합하면 실제 거래 경험은 Tor의 다크웹 마켓플레이스보다 훨씬 뛰어납니다.
일반적으로 소셜 미디어 계정의 고유 식별자는 사용자 이름, 사용자 ID와 같은 것이지만 악의적인 행위자가 이를 완전히 복제할 수 있습니다. 일부 소셜 플랫폼에는 파란색 V 아이콘 등을 추가하는 등의 계정 확인 메커니즘이 있습니다. 공개 소셜 미디어 계정은 팔로어 수, 게시된 콘텐츠, 팬과의 상호 작용 등 일부 지표를 통해 검증할 수 있습니다. 비공개 소셜 미디어 계정은 좀 더 어렵습니다. 텔레그램에서 "우리가 어떤 그룹에 속해 있는지" 기능이 출시된 것을 보니 좋습니다.
악용될 수 있는 허점이 있고 이익이 상당한 곳에는 이미 많은 악당들이 존재하고 있을 것입니다. 그것이 인간의 본성입니다.
결과적으로 소셜 미디어 플랫폼은 피싱 함정으로 가득 차 있습니다. 예: 그룹 채팅에서 공식 고객 서비스처럼 보이는 사람이 갑자기 나타나 비공개 채팅을 시작했습니다(any2any 비공개 채팅은 텔레그램의 기능이므로 친구 요청이 필요하지 않습니다). 그러면 스팸의 고전적인 전술에 따라 물고기가 차례로 물게 됩니다.
또는 공격자가 한 단계 더 나아가 사용자를 다른 그룹에 추가할 수도 있습니다. 모든 참가자는 당신이 가짜라고 생각하지만 당신에게는 그것이 매우 현실적으로 보입니다. 우리는 이 기술을 지하 사회의 그룹 복제라고 부릅니다.
이것들은 인간 본성을 조작하는 기본적인 방법일 뿐이며, 진보된 기술은 취약점과 결합되어 예방하기가 더 어렵습니다.
### Discord
Discord는 지난 2년 동안 출시된 새롭고 인기 있는 소셜 플랫폼/IM 소프트웨어입니다. 핵심 기능은 공식 성명에서 알 수 있듯이 커뮤니티 서버(기존 서버의 개념이 아님)입니다:
Discord는 13세 이상의 수천만 명의 사람들이 커뮤니티 및 친구들과 이야기하고 어울리기 위해 사용하는 무료 음성, 영상 및 문자 채팅 앱입니다.
보기에는 좋지만 매우 강력한 보안 설계 표준이 필요합니다. Discord에는 다음과 같은 특정 보안 규칙과 정책이 있습니다:
>https://discord.com/safety
불행하게도 대부분의 사람들은 이 책을 주의 깊게 읽으려고 애쓰지 않을 것입니다. 게다가 Discord는 항상 실현 가능하지 않은 공격자의 모자를 써야 하기 때문에 특정 핵심 보안 문제를 명확하게 설명할 수 없을 수도 있습니다.
예를 들어:
Discord에 NFT 도용이 너무 많은데, 주요 해결 방법은 무엇입니까? 이 문제를 파악하기 전에는 Discord 보안 조언이 쓸모가 없습니다.
많은 프로젝트 Discordhack의 주요 이유는 실제로 HTTP 요청 헤더의 인증 필드 내용인 Discord 토큰입니다. 이것은 Discord에 아주 오랫동안 존재해왔습니다. 해커의 경우 이 Discord 토큰을 얻을 수 있는 방법을 찾을 수 있다면 대상 Discord 서버의 모든 권한을 거의 통제할 수 있습니다. 즉, 대상이 관리자, 관리 권한이 있는 계정 또는 Discord 봇이라면 해커는 원하는 모든 것을 할 수 있습니다.
예를 들어 NFT 피싱 사이트를 발표함으로써 사람들이 그것이 공식 발표라고 생각하게 만들고 물고기가 낚일 것입니다.
Discord 계정에 2단계 인증(2FA)을 추가하면 어떻게 되나요? 정말 좋은 습관입니다! 하지만 Discord 토큰은 귀하의 계정 2FA 상태와 아무런 관련이 없습니다. 계정이 침해되면 즉시 Discord 비밀번호를 변경하여 원래 Discord 토큰을 무효화해야 합니다.
해커가 어떻게 Discord Token을 얻을 수 있는지에 대한 질문에 대해 저희는 최소한 세 가지 주요 기법을 알아냈고, 앞으로 이에 대해 자세히 설명하도록 노력하겠습니다. 일반 사용자의 경우 할 수 있는 일이 많지만 핵심은 서두르지 말고 욕심을 부리지 말고 여러 소스에서 검증하는 것입니다.
### "공식" 피싱
나쁜 배우들은 롤플레잉, 특히 공식적인 역할을 잘 활용합니다. 예를 들어 우리는 이전에 가짜 고객 서비스 방법을 언급한 적이 있습니다. 게다가 2022년 4월, 잘 알려진 하드웨어 지갑인 Trezor의 많은 사용자들이 공식 Trezor 도메인인 trezor.io가 아닌 trezor.us로부터 피싱 이메일을 받았습니다. 도메인 이름 접미사에는 약간의 차이가 있습니다. 또한 피싱 이메일을 통해 다음 도메인도 확산되었습니다:
>https://suite.trẹzor.com
<img src="res/trezor_phishing.jpg" width="800">
이 도메인 이름에는 "하이라이트 지점"이 있습니다. 그 안에 있는 문자 ẹ를 자세히 보면 문자 e가 아님을 알 수 있습니다. 혼란스럽나요? 실제로는 Punycode이며 표준 설명은 다음과 같습니다:
>IDNA(Internationalized Domain Names in Application)를 위한 유니코드의 부트스트링 인코딩은 유니코드와 ASCII 코드 모두에서 제한된 문자 집합을 나타내는 국제화된 도메인 이름 인코딩입니다.
누군가 trẹzor를 디코딩하면 다음과 같이 보입니다: xn-trzor-o51b, 이것이 실제 도메인 이름입니다!
해커들은 수년 동안 피싱에 Punycode를 사용해 왔으며, 2018년에 일부 Binance 사용자도 동일한 속임수에 감염되었습니다.
이러한 종류의 피싱 사이트는 공식 메일함 통제나 SPF 구성 문제로 인한 메일 위조 공격과 같은 고급 공격은 말할 것도 없고 이미 많은 사람들을 당하게 만들 수 있습니다. 결과적으로 이메일의 소스는 공식 소스와 완전히 동일해 보입니다.
악의적인 내부자라면 사용자는 아무것도 할 수 없습니다. 프로젝트 팀은 내부자 위협을 방지하기 위해 많은 노력을 기울여야 합니다. 내부자는 가장 큰 트로이 목마이지만 무시되는 경우가 많습니다.
### 개인정보 보안 문제
Web3의 인기가 높아지면서 점점 더 흥미롭거나 지루한 프로젝트가 등장했습니다(모든 종류의 Web3 인프라, 소셜 플랫폼 등). 그들 중 일부는 대규모 데이터 분석을 수행하고 블록체인 측면뿐만 아니라 잘 알려진 Web2 플랫폼에서도 대상의 다양한 행동 초상화를 식별했습니다. 일단 초상화가 나오면 대상은 기본적으로 투명한 사람이다. 그리고 Web3 소셜 플랫폼의 등장으로 인해 이러한 개인 정보 보호 문제가 더욱 악화될 수도 있습니다.
서명 바인딩, 체인 상호 작용 등과 같은 모든 Web3 관련 작업을 수행할 때 개인 정보를 더 많이 제공하고 있습니까? 많은 사람들이 동의하지 않을 수도 있지만, 많은 부분이 모이면 수집하고 싶은 NFT, 가입한 커뮤니티, 현재 화이트리스트, 연결 대상, Web2 계정 등 더 정확하고 포괄적인 그림을 얻을 수 있습니다. 당신은 어떤 기간에 활동하고 있는지 등을 알 수 있습니다. 블록체인은 때때로 개인 정보 보호를 더욱 악화시킵니다. 개인 정보 보호에 관심이 있다면 새롭게 등장하는 모든 것에 주의를 기울이고 자신의 신원을 분리하는 좋은 습관을 유지해야 합니다.
이 시점에서 실수로 개인 키를 도난당한 경우 손실은 단순한 돈이 아니라 신중하게 유지되는 Web3 권리와 이익 모두입니다. 우리는 종종 개인키가 신원이라고 말하는데, 이제 진짜 ID 문제가 생겼습니다.
인간의 본성을 시험하지 마세요.
# 블록체인 사기 방식
블록체인 기술은 완전히 새로운 산업을 창출했습니다. BlockFi, DeFi, 암호화폐, 가상 화폐, 디지털 화폐, Web3 등 무엇이라 부르든 모든 것의 핵심은 여전히 블록체인입니다. 대부분의 과대 광고는 대체 불가능한 토큰(또는 NFT, 디지털 수집품)을 포함한 암호화 자산과 같은 금융 활동에 중점을 두었습니다.
블록체인 산업은 매우 역동적이고 매력적이지만, 악을 행할 수 있는 방법이 너무 많습니다. 블록체인의 특별한 특성은 암호화폐 도난, 크립토재킹, 랜섬웨어, 다크 웹 거래, C2 공격, 자금 세탁, 폰지 사기, 도박 등을 포함하되 이에 국한되지 않는 다소 독특한 해악을 야기합니다. 참고로 2019년의 마인드맵을 만들어 봤습니다:
>https://github.com/slowmist/Knowledge-Base/blob/master/mindmaps/evil_blockchain.png
한편, SlowMist 팀은 블록체인 관련 해킹 활동을 위한 데이터베이스인 SlowMist Hacked를 유지 및 업데이트해 왔습니다:
>https://hacked.slowmist.io/
이 문서에서는 다양한 보안 조치를 소개했습니다. 이를 자신의 보안에 적용할 수 있다면 축하드립니다. 블록체인에 관한 잡담에 대해서는 너무 자세히 설명하지 않겠습니다. 관심이 있다면 스스로 배고, 이는 확실히 긍정적인 일입니다. 특히 새로운 사기와 사기가 지속적으로 진화하고 있기 때문입니다. 더 많이 배울수록 자신을 더 잘 방어하고 이 산업을 더 좋게 만들 수 있습니다.
# 해킹당했을 때 대처 방법
결국 해킹당하는 것은 시간문제일 뿐입니다. 그렇다면 무엇을 해야 할까요? 나는 바로 추격전을 시작하겠습니다. 다음 단계가 반드시 순서대로 진행되는 것은 아닙니다. 왔다 갔다 해야 할 때도 있지만 일반적인 생각은 이렇습니다.
## 먼저 손실을 막으세요
Stop Loss는 손실을 제한하는 것입니다. 이는 두 단계로 나눌 수 있습니다:
* 즉각적인 조치 단계:즉시 행동하세요! 해커가 귀하의 자산을 이전하는 것을 본다면 더 이상 생각하지 마십시오. 서둘러 나머지 자산을 안전한 곳으로 옮기세요. 선행 거래 경험이 있다면 그냥 잡고 달리세요. 자산 유형에 따라 블록체인에서 자산을 동결할 수 있다면 최대한 빨리 동결하세요. 온체인 분석을 수행할 수 있고 자산이 중앙 집중식 거래소로 이전된 것을 발견하면 해당 위험 관리 부서에 문의할 수 있습니다.
* 조치 후 단계:상황이 안정되면 2차, 3차 공격이 발생하지 않도록 하는 데 중점을 두어야 합니다.
## 장면을 보호하십시오
뭔가 잘못되었다는 것을 알게 되면 침착하게 심호흡을 하십시오. 다음은 몇 가지 제안 사항입니다:
* 인터넷에 연결된 컴퓨터, 서버, 기타 장치에서 사고가 발생한 경우 해당 장치에 전원을 공급한 상태에서 즉시 네트워크 연결을 끊으십시오. 어떤 사람들은 그것이 파괴적인 바이러스라면 로컬 시스템 파일이 바이러스에 의해 파괴될 것이라고 주장할 수도 있습니다. 맞습니다. 하지만 바이러스보다 빠르게 대응할 수 있는 경우에만 시스템을 종료하는 것이 도움이 됩니다...
* 이 문제를 스스로 처리할 수 없다면 보안 전문가가 분석을 위해 개입할 때까지 기다리는 것이 항상 더 나은 선택입니다.
우리가 분석을 시작했을 때 장면이 이미 엉망인 경우를 꽤 많이 겪었기 때문에 이는 매우 중요합니다. 그리고 핵심 증거(예: 로그, 바이러스 파일)가 정리된 것처럼 보이는 경우도 있었습니다. 잘 보존된 범죄 현장이 없으면 후속 분석 및 추적에 극도로 지장을 줄 수 있습니다.
## 근본 원인 분석
원인을 분석하는 목적은 공격자를 이해하고 해커의 초상을 출력하는 것입니다. 이 시점에서 사고 보고서는 매우 중요하며 사후 보고서(Post Mortem Report)라고도 합니다. 사건 보고서와 사후 보고서는 같은 의미입니다.
우리는 자산을 도난당한 후 도움을 청하러 온 많은 사람들을 만났고, 그들 중 많은 사람들이 무슨 일이 일어났는지 명확하게 말하는걸 매우 어려워했습니다. 명확한 사건 보고서를 작성하는 것은 더욱 어렵습니다. 하지만 이는 실천할 수 있고 사례를 참고하면 도움이 될 것이라고 생각합니다. 다음은 좋은 출발점이 될 수 있습니다:
* Summary 1: 누가 관련되었고, 언제 이런 일이 일어났으며, 무슨 일이 일어났으며, 총 손실액은 얼마입니까?
* Summary 2: 분실과 관련된 지갑 주소, 해커의 지갑 주소, 코인 종류, 코인 수량. 단일 테이블의 도움으로 훨씬 더 명확해질 수 있습니다.
* Process description: 이 부분이 가장 어렵다. 사건의 모든 측면을 모든 세부 사항과 함께 설명해야 합니다. 이는 해커와 관련된 다양한 종류의 흔적을 분석하고 궁극적으로 해커의 초상화(동기 포함)를 얻는 데 유용합니다.
특별한 경우에는 템플릿이 훨씬 더 복잡해집니다. 때때로 인간의 기억은 신뢰할 수 없을 수도 있으며 심지어 핵심 정보를 고의적으로 숨겨 시간 낭비나 타이밍 지연을 초래할 수도 있습니다. 그래서 실제로는 엄청난 소비가 있을 것이고, 우리의 경험을 활용하여 작업을 잘 이끌어야 합니다. 마지막으로 우리는 코인을 분실한 사람이나 팀과 함께 사고 보고서를 작성하고 이 사고 보고서를 계속 업데이트합니다.
## 소스 추적
Rocca의 법칙에 따르면 침입이 있는 곳에는 흔적이 있다. 우리가 충분히 열심히 조사한다면, 항상 몇 가지 단서를 찾을 수 있을 것입니다. 조사 과정은 사실상 포렌식 분석과 출처 추적이다. 우리는 포렌식 분석을 통해 얻은 해커의 초상에 따라 소스를 추적하고 이를 지속적으로 강화할 것이며 이는 역동적이고 반복적인 프로세스입니다.
소스 추적은 두 가지 주요 부분으로 구성됩니다:
* 온체인 인텔리전스. 중앙화된 거래소, 코인 믹서 등에 들어가는 등 지갑 주소의 자산 활동을 분석하고 이를 모니터링하며 새로운 이체에 대한 알림을 받습니다.
* 오프체인 인텔리전스: 이 부분은 해커의 IP, 장치 정보, 이메일 주소 및 행동 정보를 포함하여 이러한 관련 지점의 상관 관계에서 얻은 추가 정보를 다룹니다.
이 정보를 바탕으로 소스 추적 작업이 많이 이루어지고 있으며 이를 위해서는 법 집행 기관의 개입이 필요할 수도 있습니다.
## 사건 결론
물론 우리 모두는 행복한 결말을 원합니다. 다음은 우리가 참여하여 좋은 결과를 가져온 공개 이벤트의 몇 가지 예입니다:
* Lendf.Me, $25 million의 가치
* SIL Finance, $12.15 million의 가치
* Poly Network, $610 million의 가치
우리는 좋거나 괜찮은 결과로 끝난 다른 미공개 사례를 많이 경험했습니다. 하지만 대부분 결말이 좋지 않아 안타깝습니다. 이런 과정에서 우리는 값진 경험을 많이 얻었고, 앞으로도 좋은 엔딩 비율을 더 높이고 싶다.
이 부분에 대해서는 위와 같이 간략하게 언급하였습니다. 이 분야에 관련된 지식은 엄청나게 많지만 나는 그 중 일부에 대해 잘 알지 못합니다. 따라서 여기서는 자세한 설명을 하지 않겠습니다. 시나리오에 따라 습득해야 할 능력은 다음과 같습니다:
* 스마트 컨트랙 보안 분석 및 포렌식
* 온체인 자금 이체 분석 및 포렌식
* 웹 보안 분석 및 포렌식
* Linux 서버 보안 분석 및 포렌식
* Windows 보안 분석 및 포렌식
* macOS 보안 분석 및 포렌식
* 모바일 보안 분석 및 포렌식
* 악성코드 분석 및 포렌식
* 네트워크 장치 또는 플랫폼의 보안 분석 및 포렌식
* 내부자 보안 분석 및 포렌식
* ...
# 잘못된 이해
처음부터 이 문서는 회의적인 태도를 유지하라고 말합니다. 회의적인 태도를 유지하는 것은 여기에 언급된 모든 내용이 포함됩니다. 이곳은 모든 종류의 함정과 혼란으로 가득 찬 매우 활기차고 유망한 산업입니다. 이번엔 진실로 당연하게 받아들여질 경우 쉽게 함정에 빠지고 혼돈 그 자체가 될 수 있는 몇 가지 오해를 살펴보겠습니다.
## Code Is Law
“코드가 답이다”. 그러나 프로젝트(특히 스마트 컨트랙트 관련 프로젝트)가 해킹되거나 러그풀을 해버리면 그 누구도 "코드가 답이다"를 바라는 피해자는 없을 것이며, 현실 세계에서는 여전히 법에 의존해야 한다는 사실이 밝혀졌습니다.
## Not Your Keys, Not Your Coins
열쇠를 소유하고 있지 않다면 자산을 소유하지 않은 것입니다. 실제로 많은 사용자들이 자신의 개인키를 제대로 관리하지 못하고 있었습니다. 다양한 보안 소홀로 인해 암호화폐 자산을 잃어버리기도 합니다. 때로는 암호화폐 자산을 크고 평판이 좋은 플랫폼에 두는 것이 실제로 더 안전하다는 것을 알게 될 것입니다.
## In Blockchain We Trust
블록체인이기 때문에 우리는 그것을 믿습니다. 실제로 블록체인 자체는 변조 방지, 검열 방지 등 여러 가지 근본적인 신뢰 문제를 해결할 수 있는 능력을 갖추고 있습니다. 내 자산 및 관련 활동이 체인에 있는 경우, 기본적으로 어느 누구도 내 자산을 빼앗거나 승인 없이 내 활동을 변조할 수 없다는 것을 신뢰할 수 있습니다. 그러나 현실은 종종 가혹합니다. 첫째, 모든 블록체인이 이러한 기본 사항을 달성할 수 있는 것은 아니며, 둘째, 인간 본성은 항상 가장 약한 고리가 됩니다. 오늘날 많은 해킹 기술은 우리 대부분의 상상을 뛰어넘습니다. 우리는 항상 공격과 방어가 비용과 영향 사이의 균형이라고 말하지만, 큰 자산을 소유하지 않은 경우 해커는 시간을 낭비하지 않고 여러분을 표적으로 삼지 않을 겁니다. 그러나 당신과 같은 대상이 여럿일 경우 해커가 공격을 시작하는 것이 매우 유리할 것입니다.
내 보안 조언은 매우 간단합니다. 기본적으로 불신하고(즉, 기본적으로 모든 것에 질문을 가함) 지속적인 검증을 수행하는 것입니다. 여기에서 확인은 핵심 보안 조치이며 지속적인 확인은 기본적으로 보안이 결코 고정된 상태가 아니라는 것을 의미합니다. 지금 안전하다고 해서 내일도 안전하다는 의미는 아닙니다. 적절하게 검증하는 능력은 우리 모두에게 가장 큰 과제이지만, 그 과정에서 많은 지식을 습득하게 되므로 매우 흥미롭습니다. 당신이 충분히 강하면 누구도 쉽게 당신을 해칠 수 없습니다.
## 암호화 보안은 보안이다
암호화는 강력하고 중요합니다. 암호 작성자의 모든 노력, 모든 견고한 암호 알고리즘 및 엔지니어링 구현 없이는 현대 통신 기술, 인터넷 또는 블록체인 기술이 없을 것입니다. 그러나 일부 개인은 암호화 보안을 절대적인 보안으로 간주합니다. 그래서 이상한 질문이 많이 생깁니다:
>블록체인은 너무 안전해서 개인 키를 해독하는 데 수조 년이 걸리지 않습니까? FBI는 어떻게 다크 웹 비트코인을 해독할 수 있었나요? 도대체 왜 Jay Chou의 NFT가 도난당할 수 있습니까?
이런 초보적인 질문은 참을 수 있습니다... 제가 참을 수 없는 것은 소위 보안 전문가라고 불리는 많은 사람들이 암호화 보안 개념을 사용하여 대중을 속이고, 군사급 암호화, 세계 최고의 암호화, 우주 수준의 암호화, 절대적인 시스템 보안, 해킹 불가능성 등과 같은 용어를 언급하고 있다는 사실입니다.
해커들은 신경도 안 쓸 겁니다...
## 해킹당하는 것이 수치스러운가요?
해킹을 당하면 엇갈린 감정을 느낄 수 있고 때로는 수치심을 느낄 수도 있는 것이 사실입니다. 하지만 해킹당하는 것은 거의 100% 보장되므로 부끄러워할 것이 없다는 점을 이해해야 합니다.
한번 해킹당하면 본인 책임만 지면 상관없습니다. 그러나 다른 많은 사람에 대한 책임이 있다면 사건을 처리할 때 투명하고 개방적이어야 합니다.
사람들이 스스로 해킹을 자초했다고 의심하거나 비난할 수도 있지만, 투명하고 공개적으로 업데이트된 프로세스는 항상 행운과 이해를 가져올 것입니다. 이렇게 생각해보세요. 프로젝트가 잘 알려지지 않으면 아무도 해킹하지 않을 것입니다. 수치스러운 점은 해킹당하는 것이 아닙니다. 부끄러운 것은 당신의 오만함입니다.
확률의 관점에서 볼 때 해킹당하는 것은 일반적인 현상입니다. 일반적으로 보안 문제의 대부분은 프로젝트 성장에 도움이 될 수 있는 작은 문제입니다. 그러나 여전히 심각하고 큰 문제는 가능한 한 피해야 합니다.
## 즉시 업데이트하세요
이 문서에서는 업데이트에 주의를 기울일 것을 여러 번 제안합니다. 사용 가능한 보안 업데이트가 있으면 즉시 적용하세요. 이제 잘 생각해보세요. 이것이 만능약일까요?
실제로 대부분의 경우 "지금 업데이트"하는 것이 옳은 일입니다. 그러나 역사상 업데이트로 한 가지 문제가 해결되었지만 다른 문제가 발생한 경우가 있었습니다. 예를 들면 iPhone 및 Google OTP가 있습니다:
>새로운 iOS 15 업데이트의 위험이 있습니다. 즉, iPhone 업그레이드 후 Google Authenticator의 정보가 지워지거나 두 배가 될 수 있습니다. 이 경우 중복된 항목이 두 배로 발견되면 절대 삭제하지 마십시오. Google OTP의 모든 정보가 손실될 수 있습니다. iOS 15 시스템으로 업그레이드하지 않으셨고, Google Authenticator를 사용하고 계시는 분들께서는 업그레이드 전 반드시 백업을 하시길 권장드립니다.
나중에 Google은 Authenticator 앱을 업데이트하여 이 문제를 영구적으로 해결했습니다.
게다가, 주요 보안 패치나 불가피한 업데이트로 이어지는 매우 중요한 기능이 없는 한, 특히 자산이 많은 지갑의 경우 지갑을 자주 업데이트하지 않는 것이 좋습니다. 어떤 경우에는 스스로 위험 평가를 수행하고 스스로 결정을 내려야 합니다.
# 결론
이 문서는 다음 다이어그램으로 시작한다는 점을 기억하세요 :)
![](res/web3_hacking_map.jpg)
내가 도표에서 사람을 빨간색으로 표시한 것을 보셨나요? 저는 모든 사람에게 인간이 모든 것의 기초(우주론에서는 "인류원리"라고 함)라는 것을 다시 한 번 상기시키기 위해 그렇게 표시했습니다. 인간의 본성인 보안이든, 보안 기술을 습득하는 능력이든, 그것은 모두 당신에게 달려 있습니다. 그렇습니다. 당신이 충분히 강하다면, 누구도 쉽게 당신을 해칠 수 없습니다.
다이어그램을 기반으로 확장을 시작했으며 지갑 생성, 지갑 백업, 지갑 사용의 세 가지 프로세스에서 많은 보안 핵심 사항을 설명했습니다. 그런 다음 전통적인 개인 정보 보호를 도입했습니다. 저는 이러한 전통적인 것들이 블록체인 생태계에서 보안을 유지하기 위한 초석이자 구성 요소라고 말했습니다. 인간 본성 보안 부분은 과장될 수 없습니다. 악을 행하는 다양한 방법에 대해 더 많이 이해하는 것이 좋습니다. 특히 몇 군데 구덩이에 발을 디딘 경우 종이에 적힌 보안 인식이 결국 보안 경험이 될 수 있습니다. 절대적인 보안은 없으므로 해킹당했을 때 대처방법을 설명드렸습니다. 나는 당신에게 불행한 일이 일어나는 것을 원하지 않지만 만약 그런 일이 일어난다면 이 문서가 당신에게 도움이 되기를 바랍니다. 마지막으로 몇 가지 오해에 대해 이야기하겠습니다. 내 의도는 매우 간단합니다. 세상은 아름답고 끔찍하기 때문에 여러분 자신의 비판적 사고를 쌓을 수 있기를 바랍니다.
나는 오랫동안 그렇게 많은 글을 쓰지 않았습니다. 마지막으로 "Web 前端黑客技术揭秘"이라는 책을 쓴 게 10년 전인 것 같습니다. 웹 보안과 사이버 보안 분야에서 수년 간 근무한 후 저는 사이버 공간 검색 엔진인 ZoomEye를 만드는 팀을 이끌었습니다. 사이버 보안 분야에서 저는 많은 분야에 손을 댔는데, 그 중 제가 능숙하다고 말할 수 있는 분야는 극히 일부에 불과합니다.
이제 블록체인 보안 분야에서는 저와 SlowMist가 선구자라고 평가받고 있습니다. 지난 몇 년간 우리는 매일매일 무아지경에 빠져 있다는 생각이 들 정도로 많은 사례를 접했습니다. 많은 인사이트가 기록되고 공유되지 않는다는 점은 아쉽습니다. 그리고 그 결과 여러 사람들의 권유로 이 문서가탄생하게 되었습니다.
이 문서를 다 읽고 나면 실행하고 능숙해지며 추론을 이끌어내야 합니다. 나중에 자신만의 발견이나 경험이 있으면 기여해 주시길 바랍니다. 민감한 정보가 있다고 생각되면 해당 정보를 가리거나 정보를 익명화할 수 있습니다.
마지막으로, 보안 및 개인 정보 보호 관련 법률 및 집행이 전 세계적으로 성숙해짐에 따라 Satoshi Nakamoto를 포함하여 모든 선구적인 암호학자, 엔지니어, 윤리적 해커 및 더 나은 세상을 만드는 데 관련된 모든 사람들의 노력에 감사드립니다.
# 부록
## 보안 규칙과 원칙
본 문서에 언급된 보안 규칙과 원칙은 다음과 같이 요약됩니다. 위의 텍스트에는 몇 가지 규칙이 포함되어 있으며 여기서는 구체적으로 설명하지 않습니다.
두 가지 주요 보안 규칙:
* **Zero trust**:간단하게 말해서 항상 회의적인 자세를 유지하십시오.
* **Continuous validation**:무언가를 신뢰하려면 의심하는 것을 검증하고, 검증하는 습관을 들여야 합니다.
보안 원칙:
* 인터넷의 모든 지식에 대해서는 최소한 두 가지 출처를 참조하고 서로를 확증하며 항상 회의적인 자세를 유지하십시오.
* 분리하십시오. 모든 계란을 한 바구니에 담지 마십시오.
* 중요한 자산이 있는 지갑의 경우 불필요한 업데이트를 하지 마세요.
* 당신이 보는 것은 당신이 서명하는 것입니다. 서명하는 내용과 서명된 거래가 전송된 후 예상되는 결과를 알고 있어야 합니다. 나중에 후회할 일은 하지 마세요.
* 시스템 보안 업데이트에 주의하세요. 가능한 한 빨리 적용하십시오.
* 무모하게 프로그램을 다운로드하고 설치하지 마십시오. 실제로 대부분의 위험을 예방할 수 있습니다.
## 기여자들
기여자들 덕분에 이 문서는 지속적으로 업데이트될 예정이며 이 문서에 대한 아이디어가 있으면 저에게 연락해 주시기 바랍니다.
>CosTwitter([@evilcos](https://twitter.com/evilcos))、Jike App(@余弦.jpg)
기여자들:
```
내 아내
SlowMist, Twitter(@SlowMist_Team), e.g. Pds | Johan | Kong | Kirk | Thinking | Blue | Lisa | Keywolf...
English 역자, e.g. Alphatu | C. | CJ | JZ | Lovepeace | Neethan | pseudoyu | SassyPanda | ss | XL
日本語 역자, e.g. Jack Jia | Mia
한국인 역자, e.g. Sharon | Jeongmin
아랍어 역자, e.g. Ahmed Alsayadi | Gabr Alsayadi
인도네시아어 역자, e.g. Finball
Jike App
익명의 친구들
https://darkhandbook.io/contributors.html
...
```
**귀하의 기여가 이 핸드북에 포함되는 것이 적용되면 귀하는 기여자 목록에 추가됩니다. 예: 특정 안전 방어 제안 또는 사례 제공 번역 작업에 참여했습니다. 더 큰 오류 등을 수정했습니다.**
## 도구들
이 DarkBook는 탄생한 지 2년이 넘었는데, 많은 분들께 도움이 되어 기쁩니다. 영향력이 점점 커지고 있고 많은 사람들이 업데이트를 촉구하고 있지만, 나는 이 메뉴얼에 대한 소소한 업데이트 외에 주로 메뉴얼과 관련된 [확장 읽기 업데이트를](https://github.com/evilcos/darkhandbook) 하고 있다는 것을 깨달았습니다. 확장된 내용은 다소 기술적이고 초보자에게 친숙하지 않다고 말하고 싶습니다. 그리고 실제로 보안 지식을 배우는 데 전념하려는 사람이 많지 않다는 것을 알고 있습니다. 이 작은 장은 원래 초보자에게 친숙한 도구(지갑, 보안 확장, 관련 스크립트 도구 등 포함)를 권장하기 위한 것이었지만 여전히 망설였습니다. 결국에는 업계가 너무 빠르게 발전하고 있기 때문에 특별한 권장 사항을 제시하지 않기로 결정했습니다. 실제로 이 메뉴얼에는 많은 훌륭한 도구가 언급되었으며 시간을 통해 테스트를 통과했습니다. 미래? 항상 훌륭할 수 있나요? 확실하지 않습니다.
도구를 추천할 경우 객관적이고 중립적으로 추천하도록 노력할 것이며 다음 사항을 염두에 두시기 바랍니다:
 * 절대적인 보안은 없습니다. 제로 트러스트 + 지속적인 검증은 이 어두운 숲에서 항상 존재해야 하는 조건 반사 기능입니다. 언젠가 이러한 도구에 버그나 보안 문제가 있거나 새 버전에 백도어가 이식되는 등 더 심각한 문제가 발생하는 경우 이에 따른 위험은 본인이 감수하시기 바랍니다. 이러한 도구를 사용하기 전에 독립적인 사고를 유지하고 속지 않는 것이 좋습니다.
 * 도구의 연구력이 좋고 사용자가 많다면 자연스럽게 좋은 것을 추천해 주곤 합니다. 그러니 걱정하지 마십시오. 당신의 도구가 좋고 먼저 모든 사람의 신뢰를 얻으면 자연스럽게 추천할 것입니다.
 * 당신만의 개성이 있고 나도 그렇습니다.
 * 환율 가격을 멀리하세요.
 * 신뢰를 쌓는 것은 쉽지 않지만 한 순간에 무너질 수 있으니 서로 소중히 여겨주세요.
이 작은 장에서 도구에 대해 특별한 권장 사항을 제시하지는 않지만 방화벽 사고라는 좋은 사고 방식을 여러분과 공유하고 싶습니다. 이전에도 지속적으로 강조해왔던 '제로 트러스트'와 '지속적인 검증'은 사실 방화벽 사고입니다.
예를 들어, 지갑 사용에 있어서 서명은 금융보안에 있어 가장 큰 타격을 받는 영역으로, 다음과 같은 다양한 종류의 서명 피싱 수법이 있습니다:
- eth_sign/personal_sign/eth_signTypedData_*와 같은 기본 서명을 사용하면 eth_sign이 지갑에 의해 점점 더 차단됩니다.
- Token/NFT 승인/허용 등 인증 기능 활용
- Uniswap swapExactTokensForTokens/permit2 등 강력한 기능 활용
- OpenSea/Blur 등 프로토콜 기능 활용(다양)
- TX 데이터 4byte 활용, 보상 청구/보안 업데이트 등
- 관련 탐지를 우회하기 위해 Create2를 사용하여 자금 수신 주소를 미리 생성하십시오.
- 솔라나는 단일 서명을 사용하여 대상 지갑 주소의 모든 자산을 훔칩니다.
- Bitcoin Inscription 원클릭 일괄 피싱, UTXO 메커니즘.
- 다양한 EVM 체인/솔라나/트론 등 스위치 피싱.
지갑에서 팝업 상자가 서명 확인을 기다리고 있을 때, FOMO인지 손을 떨고 있는지에 관계없이 "확인"을 클릭하면 서명이 전송됩니다... 그러면 지갑을 사용하는 이 방법은 그렇지 않습니다. 방화벽 사고방식을 가지고 있습니다. 더 나은 방법은 적어도 두 번 클릭하는 것입니다. 한 번 더 클릭하면 추가 보안 계층이 제공됩니다(물론 너무 많은 계층을 가질 필요는 없습니다. 사람들은 무감각해질 것입니다...). 예를 들어 Rabby, MetaMask, OKX Wallet과 같은 브라우저 확장 지갑을 사용합니다. 테스트 지갑을 제외하고 다른 지갑은 하드웨어 지갑을 사용하려고 합니다(서명할 내용을 식별할 수 있도록 더 큰 화면을 사용하는 것이 좋습니다).
이때 확장 지갑의 서명 확인 팝업 상자에서는 피싱 웹사이트, 위험한 지갑 주소, WYSIWYS 서명, 고위험 서명 식별 등과 같은 1차 보안 분석이 수행됩니다. 이는 모두 중요한 사용자 상호 작용 보안입니다. . 하드웨어 지갑은 보안 분석의 두 번째 계층을 수행합니다. 이때 Scam Sniffer, Wallet Guard, Pocket Universe 등 브라우저 지갑 보안 확장 프로그램을 추가하면 또 다른 방화벽이 추가됩니다. 하지만 수행 중인 작업에 대한 위험 경고가 없으면 경계하고 자신이 식별해야 한다는 점을 명심하세요.
방화벽 사고방식에 익숙해지면 효율성에는 거의 영향을 미치지 않지만 보안 감각은 크게 향상됩니다. 다른 장면에서 추론해 보겠습니다.
## 공식 웹사이트
```
SlowMist https://www.slowmist.com
CoinMarketCap https://coinmarketcap.com/
Sparrow Wallet https://sparrowwallet.com/
MetaMask https://metamask.io/
imToken https://token.im/
Trust Wallet https://trustwallet.com/
TokenPocket https://www.tokenpocket.pro/
Gnosis Safe https://gnosis-safe.io/
ZenGo https://zengo.com/
Fireblocks https://www.fireblocks.com/
Safeheron https://www.safeheron.com/
Keystone https://keyst.one/
Trezor https://trezor.io/
OneKey https://onekey.so/
imKey https://imkey.im/
Rabby https://rabby.io/
OKX Wallet https://www.okx.com/web3
EdgeWallet https://edge.app/
MyEtherWallet https://www.myetherwallet.com/
Phantom https://phantom.app/
Tornado Cash https://tornado.cash/
Binance https://www.binance.com/
Coinbase https://coinbase.com
Compound https://compound.finance/
SushiSwap https://www.sushi.com/
OpenSea https://opensea.io/
Revoke.cash https://revoke.cash/
Scam Sniffer https://www.scamsniffer.io/
Wallet Guard https://www.walletguard.app/
Pocket Universe https://www.pocketuniverse.app/
Jike https://okjike.com/
Kaspersky https://www.kaspersky.com.cn/
Bitdefender https://www.bitdefender.com/
Cloudflare https://www.cloudflare.com/
Akamai https://www.akamai.com/
SURVEILLANCE SELF-DEFENSE https://ssd.eff.org/
Privacy Guide https://www.privacytools.io/
OpenPGP https://www.openpgp.org/
GPG https://gnupg.org/
GPG Suite https://gpgtools.org/
Gpg4win https://www.gpg4win.org/
1Password https://1password.com/
Bitwarden https://bitwarden.com/
Google Authenticator https://support.google.com/accounts/answer/1066447
Microsoft Authenticator https://www.microsoft.com/en-us/security/mobile-authenticator-app
ProtonMail https://protonmail.com/
Tutanota https://tutanota.com/
VMware Workstation https://www.vmware.com/products/workstation-pro.html
Parallels https://www.parallels.com/
```