블록체인 DNS와 IDN(퓨니코드)¶
이 페이지에서 다루는 것
압수를 피하려는 블록체인 DNS(EmerDNS, ENS, 게이트웨이, EtherHiding)와 탐지 기회, 다른 나라 글자로 만든 가짜 도메인(IDN 호모글리프)과 퓨니코드 읽는 법, 메일·모바일 앱 속 IDN과 실제 공격 사례.
표기
[보충] = 꼭 알아야 할 실무 보충, [정정] = 흔히 잘못 알려진 내용 정정, [변경됨]/[주의] = 최근 바뀐 점과 옛 방식대로 하면 위험한 점. 전체 흐름은 DNS 개요에서, 기록 한 줄을 판별하는 순서는 판별표에서 볼 수 있습니다.
블록체인 DNS¶
공격자는 도메인 압수를 피하려고 블록체인 DNS를 씁니다. 대신 일반 DNS로는 조회가 안 되는 약점이 생기고, 그 약점이 탐지 기회입니다.
공격자와 방어자의 주고받기¶
| 단계 | 악성코드에 넣는 것 | 방어자 대응 | 결과 |
|---|---|---|---|
| 1 | IP 주소(하드코딩) | IP 차단·서버 제거 | 감염 PC가 새 주소를 몰라 공격자가 전부 잃음 |
| 2 | 도메인 이름 | IP 차단 | 공격자가 A 레코드만 바꾸면 감염 PC 전체가 새 서버로(짧은 TTL로 빠르게) → 두더지 잡기 |
| 3 | 도메인 이름 | 도메인 압수·싱크홀 | 이름 자체가 사라짐 → 방어자 유리 |
| 4 | 블록체인 도메인 | 압수 불가 | 일반 DNS로 조회가 안 되는 약점을 탐지 |
핵심¶
- 블록체인 DNS는 레코드를 공개 블록체인에 저장 → 중앙 관리자가 없어 신고·압수 불가. 단 압수 불가한 것은 이름 → IP 대응뿐, 서버는 일반 인터넷에 있어 서버 제거·IP 차단은 가능
- EmerDNS TLD:
.coin,.emc,.lib,.bazar(BazarLoader/BazarBackdoor가 C2에 사용한 것으로 널리 보고) - ICANN 루트 밖이라 회사 DNS·8.8.8.8 모두 NXDOMAIN. 쓰려면 특수 소프트웨어·악성코드 자체 조회·대체 DNS(OpenNIC) → 결국 허가되지 않은 DNS·특이 흔적
- 탐지: 블록체인 TLD 조회, IANA 공식 TLD 목록에 없는 TLD 조회(내부 이름
.local/.corp, 오타, Chrome 하이재킹 테스트는 예외), 비인가 DNS, 소프트웨어·프로토콜 통제
복습 Q&A
- 피할 수 있는 것: 도메인 정지·압수·싱크홀. 피할 수 없는 것: 서버 제거·IP 차단, 그리고 "일반 DNS로 조회 안 됨"이라는 흔적
node3.bazarNXDOMAIN을 "실패했으니 문제없음"으로 닫으면 안 됨: 조회 자체가 PC 안의 악성코드 증거. 실패 후 다른 경로(대체 DNS, DoH, IP 직접)로 재시도했을 수 있음 → 같은 PC의 비인가 DNS·853·DoH·직접 IP 접속, 조회 프로그램(Sysmon 22), 다른 PC 조회 여부, 시작 시점 확인 후 격리- "IANA 목록에 없는 TLD" 규칙의 정상 오탐: 내부 이름(
.local,.corp,.lan,.home.arpa는 공식), 오타, 점 없는 한 단어(Chrome 테스트·NetBIOS식 짧은 이름), 일부 VPN·개발 도구. 못 잡는 것: 게이트웨이 경유(.eth.limo,ipfs.io), EtherHiding(블록체인 노드 API를 일반 HTTPS로), DoH로 감싼 조회, 공식 TLD를 쓰는 블록체인 서비스
2026년 관점
- OpenNIC은 2019년경 악성 악용 때문에 EmerDNS 연결을 끊은 것으로 알려짐(예전 자료의 설명은 낡았을 가능성)
- 주인공 교체: ENS(
.eth), Unstoppable Domains(.crypto등), Handshake + IPFS - 게이트웨이: 블록체인 이름을 평범한 웹 주소로 바꿔주는 중간 사이트(
vitalik.eth.limo,ipfs.io/ipfs/Qm...). 회사 DNS를 정상적으로 거치고 공식 TLD라 "낯선 TLD" 규칙 우회. 내리기 어려운 피싱에 악용 → 게이트웨이 도메인 목록 관리, 업무상 불필요하면 차단, 메일 클릭 직후 접속 주목 - EtherHiding(Guardio, 2023): 스마트 컨트랙트(지울 수 없는 공개 게시판 칸)에 C2 주소·악성 코드를 저장하고 블록체인 노드 API를 일반 HTTPS로 읽음. DNS 판별표를 거의 다 통과 → 누가·어떤 프로그램·그다음(API 조회 직후 DNS 없이 IP 직접 접속)을 보는 맥락·행동 탐지
IDN과 퓨니코드¶
영어와 똑같이 생긴 다른 나라 글자로 만든 가짜 도메인은 사람 눈으로는 구분이 안 되지만, DNS 기록에는 반드시 xn--로 시작하는 퓨니코드로 남습니다.
핵심¶
yоutube.com은 마우스를 올려도 똑같이 보이지만 두 번째 o가 키릴 문자(U+043E) → "링크에 마우스 올리기" 교육으로 못 잡음- DNS는 원래 영어 소문자·숫자·하이픈만 → 다른 글자는 퓨니코드로 변환해 DNS에 넣음(IDN). 예:
Καλημέρα.gr=xn--ixahbwnhi5b.gr,한국.kr=xn--3e0b707e.kr - 키릴 О, 영어 O, 그리스 Ο처럼 모양이 같은 글자로 속이는 것 = 호모글리프(호모그래프) 공격. 철자 바꾸기(
micros0ft)·글자 쌍(rnicrosoft)과 달리 자세히 봐도 구분이 안 될 수 있음 - 퓨니코드 구조:
xn--+ 영어 글자 모음 +-+ 영어 아닌 글자 정보. 예:xn--yutube-wqf.com. 모든 IDN은xn--로 시작(하위 이름·TLD 등 어느 덩어리에도 올 수 있음) → 기록에서xn--검색으로 찾음 - 두 번째 부분과 원래 브랜드를 비교하면 빠진 글자 = 바꿔치기한 자리. 예:
xn--pypal-4ve.com→pypal은 paypal에서 첫 번째 a가 빠짐 →pаypal.com(키릴 а U+0430). 두 번째 a를 바꾸면xn--paypl-7ve.com - 변환은 외부 사이트 대신 내 컴퓨터에서:
python3 -c "print(b'xn--yutube-wqf.com'.decode('idna'))", 영어 아닌 글자 번호는ord(c) > 127로 확인 xn--가 곧 악성은 아님: 한 문자 체계로만 된 자연스러운 이름(한국.kr,münchen.de)은 대개 정상. 영어 이름 흉내 + 문자 체계 섞임이 강한 신호(аррӏе.com은 a·p·p·l·e 전부 키릴)
복습 Q&A
- "마우스 올리기" 교육이 안 통하는 이유: 링크 텍스트와 실제 주소가 둘 다 같은 가짜 주소이고 화면 표시가 진짜와 같음. 퓨니코드가 아니라 원래 글자로 보이는 것이 문제. 방어자 대책:
xn--조회 경보, 브랜드 IDN 변형 감시(crt.sh), 메일 보안의 IDN 링크 퓨니코드 표시·경고, 패스키·보안 키(도메인을 기계가 정확히 비교) - "
xn--전부 차단"은 정상 다국어 사이트를 막음. 더 정확한 기준: 문자 체계(스크립트)가 섞인 IDN은 차단·경보, 한 문자 체계 IDN은 허용하되 풀었을 때 유명 브랜드·우리 도메인과 비슷한 것은 경보. 주의:ɡ(U+0261)처럼 같은 라틴 문자 체계 안의 비슷한 글자는 "섞임" 규칙에 안 걸림 → 브랜드 비교가 함께 필요. 반대로 "영어 + 비영어 글자" 전부 차단은münchen.de같은 정상 이름을 막음
2026년 관점
- 2017년
аррӏе.com시연 후 브라우저들이 섞인 문자·흉내 낸 이름은 주소창에 퓨니코드로 표시, Chrome은 유사 사이트 경고 화면도 있음(세부 조건은 버전마다 다름) - [주의] 그래도 메일·채팅·문서 안에서는 원래 글자로 보여 클릭 전 단계는 여전히 취약. 앱 내장 브라우저는 규칙이 다를 수 있음
- TLD 운영 기관마다 "문자 체계 섞기 금지" 등 등록 제한이 있으나 제각각.
ᏚĖCUREBANK.com=xn--curebank-3db3419b.com(체로키 Ꮪ U+13DA + ė U+0117) - 근본 대책: 패스키·FIDO2 보안 키
앱 속 IDN과 실제 공격¶
브라우저는 페이지가 열린 뒤에 퓨니코드를 보여주지만, 메일·문서·휴대폰 화면에서는 원래 글자로 보여 클릭 전에 막기 어렵습니다. 실제 공격에는 같은 라틴 문자 체계 안의 바꿔치기도 많습니다.
앱 속 IDN¶
- 시간 순서: 메일에 원래 글자로 보임 → 클릭 → 페이지 열림(이때 주소창에 퓨니코드) → 사용자 의심. 브라우저 보호는 페이지가 열린 뒤 작동하므로 악성 파일·취약점 공격은 이미 시작했을 수 있음
- 같은 IDN도 앱마다 다르게 보임: Outlook 데스크톱, Gmail 웹, Outlook·Gmail 모바일, iOS 알림. 글꼴에 따라 속는 정도가 다르고, 글꼴은 앱·기기가 정함
- 휴대폰이 특히 취약: 작은 글씨, 주소 숨김, 마우스 올리기 불가, 알림에서 바로 클릭
- 대책은 사용자 화면 도달 전: 메일 보안(퓨니코드 표시·경고·격리), 링크 재작성과 클릭 시점 검사, DNS 단계 차단, 패스키·보안 키
실제 공격¶
| 화면 모습 | DNS 기록 | 바뀜 글자 | 문자 체계 섞임? |
|---|---|---|---|
ᏚĖCUREBANK.com (예시) |
xn--curebank-3db3419b.com |
Ꮪ U+13DA(체로키), ė U+0117 | 예(라틴+체로키) |
ḟacebook.com |
xn--acebook-js3c.com |
ḟ U+1E1F | 아니오(라틴만) |
morɡanstanley.com |
xn--moranstanley-0df.com |
ɡ U+0261 | 아니오(라틴만) |
lloydsbankingɡroup.com |
xn--lloydsbankingroup-0ch.com |
ɡ U+0261 | 아니오(라틴만) |
- 대상은 Facebook·모건스탠리·로이드·유나이티드헬스 등 돈·개인정보와 직결된 기업
- 같은 라틴 체계 바꿔치기는 "문자 체계 섞임" 규칙에 안 걸림 → 브랜드 유사 비교(헷갈리는 글자를 기본 영어로 바꾼 뒤 브랜드 목록과 비교, UTS #39 confusables). 퓨니코드 두 번째 부분이 브랜드에서 한두 글자 빠진 형태(
moranstanley)면 강한 신호 - 슬래시 모양 글자:
bankofamerica.com∕index.jp의 진짜 등록 도메인은com∕index.jp,bankofamerica는 하위 이름. U+2215를 쓰면 DNS에는bankofamerica.xn--comindex-0f7d.jp. 오른쪽부터 읽기의 극단적 사례(연구자 소유)
복습 Q&A
- 함정:
xn--micrsoft-07a.com처럼 그럴듯해 보여도 실제로 풀면miăcrsoft.com(ă U+0103)일 수 있음. 키릴 o 예:micrоsoft.com(첫 o가 키릴) =xn--micrsoft-qbh.com,microsоft.com(두 번째 o) =xn--microsft-sbh.com. 두 번째 부분으로 브랜드·빠진 글자는 추측 가능하지만, 어떤 문자 체계인지는 풀어서 유니코드 번호를 봐야만 알 수 있음(키릴 о인지 라틴 ö인지) - "브라우저가 퓨니코드를 보여주는데 왜 안심 금지": 메일(원래 글자) → 클릭 → 페이지 열림 → 그제서야 주소창 퓨니코드. 대책: 메일 단계 퓨니코드 표시·격리, 클릭 시점 검사, DNS 차단, 패스키
paypal.com/login.secure-check.co:/가 가짜 슬래시면 전체가 도메인 → 등록 도메인secure-check.co(하위 이름paypal.com∕login). 진짜 슬래시면 등록 도메인paypal.com, 뒤는 경로. 화면은 똑같아도 주인이 완전히 다름
2026년 관점
- 슬래시 트릭: 옛 규칙(IDNA2003)은 변환하지만 현재 규칙(IDNA2008/UTS #46)은 U+2215·U+2044를 거부(직접 확인) → 대부분 막힘. 같은 체계 바꿔치기(
ɡ,ḟ)는 현재 규칙에서도 허용 → 실무에서 더 중요 - 클릭 시점 검사(Safe Links 등) 표준화, 단 클로킹에 약함
- SMS·메신저 피싱 증가 → 메일 보안 밖. MDM·모바일 Protective DNS
- 교육은 "주소를 잘 봐라"에서 "메시지 링크로 로그인하지 말라, 패스키를 써라"로