제공 서비스
웹 보안 점검 소스코드 분석 (SAST) 외부 공격표면 진단 (EASM)
요금제 스토어 블로그 파트너 마이페이지 무료 보안 점검
웹 취약점 2026.06.26 · 조회 5

서브도메인 탈취 — 방치된 CNAME이 공식 도메인을 피싱에 넘기는 법 [2026]

해지한 서비스로 향한 CNAME을 지우지 않으면 공격자가 그 서브도메인을 차지해 공식 도메인으로 피싱한다. 2026년 대학 도메인 악용 사례와 DNS 정리·모니터링 표준을 정리했다.

서브도메인 탈취는 해지·삭제된 외부 서비스(클라우드·CDN·페이지 호스팅)를 여전히 가리키는 방치된 CNAME 레코드를 공격자가 재점유해 정식 서브도메인을 장악하는 공격이다.
2026년에는 유명 대학의 공식 서브도메인들이 방치된 CNAME을 통해 악용된 사례가 보고됐는데, 신뢰받는 도메인이 피싱·악성 배포에 그대로 쓰이면 브랜드 피해가 크다.
이 글은 자주 발생하는 실수 패턴, 표준 구현 코드, 30초 자가진단, 24시간 패치 순서를 정리했다.

한눈에 보는 핵심

Q. Dangling CNAME이 왜 생기나요? A. 외부 서비스(호스팅·CDN)를 해지하면서 DNS의 CNAME 레코드를 지우지 않으면, 그 서비스에서 동일 이름을 다시 등록한 공격자에게 서브도메인이 연결됩니다. Q. 어떤 피해가 있나요? A. your.brand.com 같은 신뢰 도메인이 공격자 콘텐츠를 서빙하게 됩니다. 피싱, 쿠키 탈취, 악성 다운로드, OAuth 리다이렉트 악용으로 이어집니다. Q. 어떻게 예방하나요? A. 서비스 해지 시 DNS 레코드부터 정리하고, 전체 DNS·서브도메인 인벤토리를 주기적으로 스캔해 dangling 여부를 자동 점검해야 합니다.

자주 발생하는 실수 패턴

#패턴위험도
1외부 서비스 해지 후 CNAME 레코드 미삭제치명
2DNS·서브도메인 자산 인벤토리 부재높음
3와일드카드 CNAME으로 미사용 이름까지 위임높음
4인증서 투명성(CT) 로그로 신규 서브도메인 미감시중간
5탈취 모니터링·알림 없음중간

표준 구현 코드

# dangling CNAME 자동 점검 (CI/스케줄러)
import dns.resolver, requests

SUBDOMAINS = ["app", "docs", "status", "mail"]  # 자산 인벤토리
DOMAIN = "example.com"

def check(sub):
    fqdn = f"{sub}.{DOMAIN}"
    try:
        ans = dns.resolver.resolve(fqdn, "CNAME")
        target = str(ans[0].target).rstrip(".")
    except Exception:
        return None
    try:                                 # 대상이 미등록/에러면 탈취 위험
        r = requests.get(f"https://{target}/", timeout=5)
        if r.status_code in (404, 410) or "NoSuchBucket" in r.text:
            return f"[위험] {fqdn} -> {target} (방치 가능)"
    except Exception:
        return f"[확인필요] {fqdn} -> {target} (대상 미응답)"
    return None

핵심은 "동작하는 코드"와 "안전한 코드"가 다르다는 점이다.
AI 코딩 도구는 기능 충족 코드를 우선 출력하므로 보안 분기는 별도로 강제해야 한다.
미들웨어·정책·CI 게이트로 모든 경로에 일괄 적용하는 것이 표준이다.

지금 1분만 — CodeScan 무료 스캔으로 내 서비스의 노출 패턴을 자동 점검하세요.

30초 자가진단

# 1. 서브도메인의 CNAME 대상 확인
dig CNAME app.example.com +short

# 2. 대상이 살아있는지 — 404/NoSuchBucket/미등록이면 탈취 위험
curl -sI https://<CNAME대상>/

# 3. CT 로그로 내 도메인의 서브도메인 전체 나열(crt.sh 등) 후 인벤토리와 대조

위 시그널이 발견되면 결함이다. OWASP Web Security Testing Guide를 함께 참조하라.

24시간 패치 절차

순위조치
1외부 서비스 해지 시 DNS 레코드부터 즉시 삭제
2전체 서브도메인·DNS 인벤토리 구축
3dangling CNAME 자동 점검을 CI/스케줄러에 등록
4인증서 투명성(CT) 로그로 신규 서브도메인 감시
5탈취 의심 시 알림 + 레코드 회수 절차 마련

지금 해야 할 것

실무자: CodeScan 무료 스캔으로 30초 점검 후 우선순위대로 패치.
CISO·임원: 조직 전체 점검·규제 대응은 SENTRIX 30분 1:1 상담으로.
결함은 발견 즉시, 늦어도 24시간 안에 패치하는 것이 표준이다.

관련 글

{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Dangling CNAME이 왜 생기나요?","acceptedAnswer":{"@type":"Answer","text":"외부 서비스(호스팅·CDN)를 해지하면서 DNS의 CNAME 레코드를 지우지 않으면, 그 서비스에서 동일 이름을 다시 등록한 공격자에게 서브도메인이 연결됩니다."}},{"@type":"Question","name":"어떤 피해가 있나요?","acceptedAnswer":{"@type":"Answer","text":"your.brand.com 같은 신뢰 도메인이 공격자 콘텐츠를 서빙하게 됩니다. 피싱, 쿠키 탈취, 악성 다운로드, OAuth 리다이렉트 악용으로 이어집니다."}},{"@type":"Question","name":"어떻게 예방하나요?","acceptedAnswer":{"@type":"Answer","text":"서비스 해지 시 DNS 레코드부터 정리하고, 전체 DNS·서브도메인 인벤토리를 주기적으로 스캔해 dangling 여부를 자동 점검해야 합니다."}}]}
서브도메인 탈취 Dangling CNAME DNS 피싱 외부 자산 관리

내 사이트도 점검해보세요

CodeScan으로 보안 취약점을 무료로 점검할 수 있습니다.

무료 스캔 시작하기 →
🛒
추천 상품
웹서비스 런칭 전 보안 세팅
런칭 전에 반드시 해야 하는 보안 설정을 원격으로 직접 해드립니다. HTTPS, 환경변수 분리, 보안 헤더…
220,000원 150,000원

🔒 바이브코딩 보안 체크리스트 받기

바이브코딩 보안 체크리스트(PDF)를 무료로 받아보세요.