
희귀한 키릴 문자와 라틴 문자 두 개를 이용하면 크로미움 기반 브라우저에서 유명 웹사이트를 흉내 낸 도메인이 실제 주소처럼 보일 수 있다고 Have I Been Squatted의 이언 머스캣(Ian Muscat)과 리앤 브리파(Leanne Briffa)가 밝혔다. 이들은 브라우저의 표시 검사를 우회하는 유사 도메인 20개를 등록해 시연했다.
인기 웹사이트와 비슷한 도메인을 만들어 피싱에 이용하는 수법은 새롭지 않다. 하지만 브라우저가 다양한 언어의 문자를 지원하면서 공격자가 악용할 수 있는 문자도 늘었다. 특히 키릴 문자 ө와 ‘갈고리 K’라 불리는 라틴 문자 ƙ는 각각 e·o, i, k와 시각적으로 비슷하다. 연구진은 이 문자들을 이용해 유사 도메인을 등록했다. 해당 도메인들은 유니코드로 표시하면 실제 사이트 주소와 비슷하지만, 퓨니코드(Punycode)로 보면 차이가 드러난다.
연구진이 등록한 도메인은 다음과 같다. 연구진은 이 도메인들이 안전하며, 각 주소가 브라우저 보호 기능을 우회하는 방법을 설명하는 시연 페이지로 연결된다고 밝혔다.
aррӏө[.]com
срасөх[.]com
oƙta[.]com
niƙe[.]com
브라우저가 안전하게 표시해야 하는 퓨니코드 주소는 다음과 같다.
xn--80a6aa68c8d.com
xn--80a5aeq0fr0c.com
xn--ota-f6a.com
xn--nie-g6a.com
우회가 작동하는 방식
크로미움 브라우저는 두 가지 주요 방어책을 사용한다. 첫 번째는 SafeToDisplayAsUnicode 함수가 순서대로 수행하는 일곱 가지 검사다. 이 검사는 흔한 주소 사칭 방법을 찾아내며, 2017년 연구자 쉬둥 정(Xudong Zheng)이 키릴 문자만으로 구성된 аррӏе.com을 등록한 뒤 브라우저 업체들이 도입하기 시작했다.
크로미움은 라틴 문자를 대신해 쓰일 수 있는 것으로 알려진 키릴 문자를 하드코딩된 목록과 대조한다. 하지만 이 검사는 문자열의 모든 문자가 목록에 있을 때만 작동한다. 문자 하나라도 목록에 없으면 검사를 우회할 수 있다. ө, ї, ү 같은 문자는 이런 ‘브레이커’ 역할을 한다. 크롬 154가 9월 22일 정식 채널에 출시된 시점에도 이 문자들은 유사 문자 목록에 포함되지 않았다.
일곱 가지 표시 검사 가운데 하나라도 통과하지 못하면 브라우저는 해당 문자를 유니코드로 표시하기에 안전하지 않다고 판단하고 퓨니코드로 보여준다. 따라서 실제 도메인과 얼마나 다른지 확인할 수 있다.
두 번째 방어책은 도메인을 인기 웹사이트 목록과 비교해 사칭 여부를 확인하는 것이다. 크로미움의 GetSimilarTopDomain() 함수는 도메인을 ‘스켈레톤’ 형태로 바꾼 뒤, 인기 웹사이트 약 8,500개가 담긴 하드코딩 목록과 대조한다. 스켈레톤을 만들 때는 ó를 o로 바꾸는 식으로 발음 구별 기호를 제거한다. 일치하는 사이트가 있으면 브라우저는 퓨니코드를 표시한다.
그러나 갈고리 K인 ƙ에는 발음 구별 기호가 없다. 스켈레톤 변환 과정에서 이 문자는 결합 기호가 붙은 라틴 k로 처리돼 검사를 우회한다. 예를 들어 oƙta.com의 스켈레톤은 [o k ‘ t a . c o r n]으로 만들어진다. 이 변환은 m을 rn으로 매핑한다. 마찬가지로 аррӏө.com에서는 가로줄이 있는 키릴 o가 결합 기호로 남아 실제 Apple 도메인과 일치하지 않는다. 이 주소의 스켈레톤은 [a p p l o - . c o r n]이다.
브라우저 업체들은 이런 사칭 수법을 막기 위해 방어 기능을 계속 보완하고 있다. 예를 들어 크롬 148에서는 ҏ와 ӿ를 브레이커로 사용해 라틴 문자와 비슷하게 보이게 하는 수법이 차단됐다.
두 주요 검사 외에 크로미움은 웹사이트로 이동할 때 표시하는 ‘세이프티 팁(Safety Tips)’ 경고도 제공한다. 예를 들어 ínstagarm[.]com은 첫 글자의 발음 구별 기호를 제거하면 Instagram과 비슷하고, 두 글자의 위치만 바꾼 형태다. 이 도메인은 하드코딩된 사이트 목록과 일치하지 않고 금지 문자도 포함하지 않지만, 크롬은 사용자가 실제 사이트를 방문하려는 것인지 묻는 팝업 가운데 하나를 표시한다. 현재 이동하려는 주소가 가짜로 보인다는 경고다.
다만 이 경고는 실제 주소와 문자가 완전히 같거나, 한 글자만 다르거나, 인접한 두 글자의 순서만 바뀐 경우에만 작동한다. аррӏө[.]com처럼 두 군데 이상이 다른 주소에는 경고가 표시되지 않는다. 다섯 글자보다 짧은 도메인도 경고 대상이 아니다. 실제 Okta와 한 글자만 다른 oƙta.com은 도메인이 네 글자에 불과해 방어가 작동하지 않을 수 있다.
세이프티 팁은 하드코딩된 신뢰 사이트 목록뿐 아니라 사용자가 자주 방문하는 사이트의 스켈레톤도 확인한다. 자주 방문한 사이트와 비슷한 주소에는 같은 경고가 나올 수 있지만, 방문 기록이 충분하지 않은 사용자는 이 방어 기능의 도움을 받지 못할 수 있다.
이런 방어책은 브라우저에만 적용된다. 이메일 클라이언트는 유사 도메인 문자열을 더 느슨하게 처리한다. 연구진이 유사 주소와 정상적인 국제화 도메인(IDN)을 섞어 전달한 20개 주소를 테스트했을 때, Gmail은 공격자가 원하는 대로 모두 유니코드로 표시했다. Outlook Web은 안전한 주소까지 포함해 20개 모두를 퓨니코드로 표시했다. 연구진은 두 이메일 서비스 모두 사용자가 주소를 제대로 판단하도록 적절한 검사를 적용하지 않는 것으로 보인다고 밝혔다.
연구진은 문제의 규모를 파악하기 위해 ICANN의 전체 .com 도메인 목록도 살펴봤다. .com 도메인은 약 1억 6,700만 개이며, 비ASCII 문자를 포함해 퓨니코드 형태로 저장되는 국제화 도메인은 약 73만 3,000개다. 연구진은 각 국제화 도메인의 비ASCII 문자를 ASCII 문자로 바꿔 일치 여부를 확인했고, 일반 ASCII 도메인처럼 보이는 쌍 약 16만 2,000개를 찾았다.
이 수치가 유사 도메인 16만 2,000개가 실제로 등록돼 피싱에 쓰인다는 뜻은 아니다. 일부는 기업이 방어 목적으로 등록했을 수 있고, 여러 언어권을 위한 웹사이트를 운영하려는 같은 기업이 소유한 도메인도 있을 수 있다. 연구진은 조직이 이런 사칭 수법을 파악하고 등록 도메인을 살펴야 한다고 밝혔다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요