대상 kr-efine.sbs · 유입 sw.run/UW · 조사일 2026-10-10
피싱 확정
경찰청 교통민원24(이파인, 정식 efine.go.kr) 전체 복제 사이트. 도메인 등록 5일차.
[국외발신] 표기 + 단축 URL + 기관 사칭. 전형적인 교통 과태료 스미싱 템플릿이다. 실제 기관은 문자에 단축 URL을 쓰지 않는다.
단축 URL 3단을 거쳐 최종 사이트에 도달한다. 차단 목록 회피 목적의 다단 세탁 구조다.
| 항목 | 실측값 |
|---|---|
| 도메인 | kr-efine.sbs |
| 정식 사이트 | efine.go.kr |
| 도메인 생성일 | 2026-10-05 13:26 UTC 조사 시점 기준 5일 |
| 등록대행 | GLOBAL ASSET DOMAINS INC. |
| 네임서버 | erin.ns.cloudflare.com sage.ns.cloudflare.com |
| 서버 | Caddy (Cloudflare 경유) |
| 페이지 크기 | 338,090 bytes |
<meta name="description" content="경찰청교통민원24(이파인)">
<meta property="og:title" content="경찰청교통민원24(이파인)">
<meta property="og:image" content="https://www.efine.go.kr/images/efine/logo.png">
<meta property="og:url" content="https://www.efine.go.kr">
og:url을 진짜 도메인으로 위조했다. 메신저·SNS에 링크를 공유하면 미리보기에 efine.go.kr로 표시된다. 로고 이미지도 진짜 서버에서 직접 끌어다 쓴다.
원본 사이트를 통째로 긁어왔기 때문에, 진짜 이파인에 걸려 있던 "교통범칙금·과태료 스미싱 주의 — 출처가 불분명한 문자메시지의 인터넷주소(URL) 클릭금지" 배너까지 그대로 복사되어 피싱 페이지에 표시된다.
페이지에 실제로 존재하는 입력칸은 3개뿐이다.
violator_name 위반자 성명
rrn_front 주민번호 앞자리 maxlength=6
rrn_gender 주민번호 뒷자리 첫째 자리 maxlength=1
주민번호 13자리 전체를 받는 칸이 없다. 앞 6자리(생년월일) + 뒷자리 첫 1자리(성별) = 총 7자리까지만 수집한다. 뒷자리 나머지 6개는 수집 대상이 아니다.
이 외에 페이지가 수동적으로 확보하는 것:
mm_vid 쿠키 — 유효기간 1년짜리 방문자 추적 IDsid 세션 쿠키 (7일)페이지 빌더 키트 내부에는 phone 바인딩이 함께 정의되어 있다. 후속 단계에서 휴대폰 번호를 추가 수집하는 구성으로 보인다.
한국 스미싱의 본편은 보통 악성 APK 설치 유도다. 안드로이드에만 다른 페이지를 내보내는지 User-Agent를 바꿔 직접 대조했다.
| User-Agent | 응답 크기 | 입력칸 | APK 유도 |
|---|---|---|---|
| iPhone / Safari | 338,090 B | 3개 | 없음 |
| Android 14 / Chrome | 338,090 B | 3개 | 없음 |
바이트 단위로 동일하다. .apk, intent:, market:// 링크가 어느 쪽에도 없다. 이 캠페인은 악성앱 설치 단계 없이 개인정보 입력만을 노리는 순수 피싱이다.
없다. 안드로이드든 iOS든 브라우저에는 전화번호를 읽는 자바스크립트 API가 존재하지 않는다. 번호를 읽으려면 네이티브 앱이 READ_PHONE_NUMBERS 권한을 받아야 하고, 그러려면 APK를 설치시켜야 한다. 이 페이지엔 그 단계가 없다.
최종 URL에 수신자 식별 파라미터가 전혀 붙지 않는다는 점만 보면 "피싱 사이트는 방문자를 번호와 묶을 수 없다"고 결론 내기 쉽다. 그 판단은 틀렸다. 파라미터를 넘길 필요가 없기 때문이다.
체인 앞단의 sw.run과 shorten.world는 모두 공개 단축 URL 서비스이며, 링크 생성자에게 클릭 분석 대시보드를 제공한다(사이트 첫 화면에 "URL Analytics", "My Links" 메뉴가 노출됨). 즉 운영자는 양쪽 로그를 모두 본다.
이 결합은 추측이 아니라 정확한 매칭이다. 다만 여기서 확보되는 것은 "어떤 IP의 누가 무엇을 입력했는가"이고, 그것이 곧바로 전화번호와 이어지는지는 한 가지에 더 달려 있다.
| 경우 | 결과 |
|---|---|
| 수신자별 고유 링크 | 완전 결합 번호 + 이름 + 생년월일이 1:1로 묶인다 |
| 캠페인 공용 링크 | 부분 발송 배치 내 다수 중 1명까지만 좁혀진다 |
이번 건의 첫 홉 코드는 UW로 2글자다. 2글자 네임스페이스는 전체 조합이 4천 개에 못 미치고, 공개 단축 서비스에서 이렇게 짧은 코드는 유료 커스텀 별칭에 해당한다. 수천 명에게 개별 발급하는 것이 구조적으로 불가능하다. 뒤쪽 홉이 C1OvS, a-LWl처럼 5글자 랜덤인 것과 대비된다.
→ 이 링크는 캠페인 공용일 가능성이 높다. 번호와 이름이 자동으로 1:1 결합되지는 않았을 것으로 판단된다. 다만 단정할 수는 없다.
비대면 휴대폰 개통·카드 발급·계좌 개설은 최소 세 관문을 통과해야 한다.
유출된 것은 이름 + 생년월일 + 성별뿐이므로 1번에서부터 막힌다. 또한 2020년 10월 이후 발급분은 주민번호 뒷자리가 성별 1자리를 제외하면 완전 난수여서, 앞 7자리를 알아도 나머지 6자리의 역산·추론이 불가능하다.
결론: 개통·개설 가능성은 사실상 없다.
운영자가 확보한 조합은 전화번호(발송 목록) + 실명 + 생년월일이다. 이 정도면 "○○○ 고객님, ××××××년생 맞으시죠" 식으로 신뢰를 유도하는 기관 사칭 전화가 가능하다. 더구나 URL을 클릭하고 입력까지 완료한 번호는 반응률 높은 타깃으로 분류되므로 후속 접촉 확률이 높다.
이름 + 생년월일 조합은 시중에 유통되는 기존 유출 DB와 대조해 전화번호를 역으로 붙이기 어렵지 않다. 캠페인 공용 링크였더라도 이 경로로는 결합이 가능하다.
118 (KISA 인터넷침해대응센터). 해당 URL 차단에 실제로 반영된다.msafer.or.kr. 내 명의로 개통된 회선 목록 확인. 조회는 무료·즉시.ecrm.police.go.kr 또는 112.금융감독원 개인정보 노출자 등록(pd.fss.or.kr)이나 M-Safer 가입제한은 이번 유출 범위에서는 필수가 아니다. 주민번호 뒷자리가 넘어가지 않았으므로 신규 개설 차단까지 걸 사유는 되지 않는다.
모든 확인은 개인정보를 일절 입력하지 않고 HTTP 레벨에서 수행했다.
curl -L -D - 로 헤더만 추적input 태그·data-bind 속성 정적 분석whois 조회