배경
최근 슬로우 포그와 래비 월렛 팀은 구글 광고를 이용한 피싱 공격을 발견했습니다. 슬로우 포그 보안팀과 래비 월렛 팀은 이 공격에 대한 심층 분석을 실시했습니다.
래비 월렛 팀에 따르면, 이 팀은 Google 광고를 구매하지 않았지만 가짜 광고는 실제 웹사이트로 이동했습니다.
구글 키워드 검색에서 처음 두 개의 검색 결과는 피싱 광고이지만, 첫 번째 광고 링크는 매우 이례적이며, 래비 월렛의 공식 웹사이트 주소 https://rabby.io, 피싱 그룹이 왜 이렇게 하려고 할까요? 피싱 그룹이 왜 이런 짓을 할까요?
피싱 광고를 추적한 결과 피싱 광고가 실제 공식 주소인 https://img.jinse.cn/7186769_image3.png 로 이동하는 경우가 있는 반면, 래비 월렛의 공식 주소로 이동하는 경우도 있었습니다. 실제 공식 주소 https://rabby.io, 프록시를 다른 지역으로 여러 번 변경한 후 피싱 주소 http://rebby.io 로 이동하고 이 피싱 주소는 업데이트 및 변경됩니다. 이 글을 쓰는 시점에 링크는 피싱 주소 https://robby.page[.] link/Zi7X/?url=https://rabby.io?gad_source=1.
기술적 분석
302가 무엇인지부터 알아봅시다. 302는 임시 리디렉션(발견됨)을 나타내는 HTTP 상태 코드입니다. 서버가 클라이언트로부터 요청을 받으면 요청된 리소스를 일시적으로 다른 위치로 이동해야 하는 경우 302 상태 코드를 반환하고 동시에 응답 헤더에 클라이언트를 리디렉션해야 하는 새 위치를 나타내는 위치 필드를 포함합니다. 이 리디렉션은 일시적입니다.
분석 결과, 다음 그림과 같이 피싱 광고 링크가 여러 번의 302 홉을 거치는 것으로 나타났습니다. curl 명령을 사용하여 링크를 처음 요청할 때는 피싱 주소 https://rabby.iopost.ivsquarestudio. com으로 302 홉하지만 두 번째 302 홉에서는 두 가지 경우가 있습니다.
1. : left;">1. curl 명령을 사용하여 위의 위치 주소 https://rabby.iopost.ivsquarestudio.com 를 요청하면 실제 공식 주소 https://rabby.io 로 302가 전송됩니다.
2. 그러나 curl 명령을 사용하여 위의 위치 주소를 요청하는 일반 브라우저를 시뮬레이션하면 다음과 같습니다. https://rabby.iopost.ivsquarestudio.com(요청 헤더에 사용자 에이전트, 허용, 리퍼러, 허용-인코딩 등이 포함됨)로 요청하면 새 위치 https:// dnovomedia.com?uid=087aa42d-724b-4a1e-bae7-f1f700ce71e6.
위에서 볼 수 있듯이 피싱 링크는 두 번째 302 점프에서 판단하여 정상 브라우저가 아닌 요청을 감지하면 공식 주소로 리디렉션하고, 정상 브라우저의 요청이고 지역이 합리적이라고 판단하면 피싱 주소로 리디렉션됩니다.
마지막 피싱 점프는 https://rabbyo.com/index.php?uid=087aa42d-724b-4a1e-bae7-f1f700ce71e6.
피싱 링크를 열어본 결과, 피싱 페이지가 실제 공식 웹사이트의 콘텐츠 대부분을 거의 복제한 것으로 확인되었습니다.
이 피싱 페이지는 실제 공식 웹사이트 페이지의 복제품입니다.
This phishing page is a clone of the real website page:
. 대부분의 콘텐츠:
302 점프를 추적하여 확인했습니다. 다음 피싱 링크 주소를 발견했습니다:
https://robby.page.link/Zi7X
https://rabby.iopost. ivsquarestudio.com
https://dnovomedia.com?uid=087aa42d-724b-4a1e-bae7-f1f700ce71e6
https://rabbyo.com
https://rebby.io
위협 인텔리전스 플랫폼에서 rebby.io와 rabbyo.com 피싱 도메인을 조회한 결과 두 도메인 모두 2024년 1월에 등록된 것으로 확인되었습니다.
위협 인텔리전스 플랫폼.
트로이 목마 분석
코드 확인 결과 공격자가 러시아어를 사용했습니다:
피싱 배포 백엔드 프로그램에서는 Fastpanel(Fastpanel은 러시아어를 사용하는 호스트가 개발한 웹 호스팅 관리 패널):
확인 결과 현재 환경이 Mac인 경우 다운로드 주소 https://brandsrocket.com/data/rabby-wallet-desktop- 로 리디렉션됩니다. installer-x64-latest.dmg.
트로이 목마가 차지하는 저장 공간은 1.1MB로 매우 적습니다.
이 트로이 목마는 분석을 위해 온라인 위협 분석 사이트에 업로드되었으며, 이 기사가 작성되기 19일 전에 이미 여러 안티바이러스 엔진에서 트로이 목마 백도어로 식별된 샘플이 분석된 것으로 밝혀졌습니다.
(https:// www.virustotal.com/gui/file/ce6169ae0efe851473a189add9c88f96fdebe1ff3f549c457339e25d9e6feca8/detection)
피싱의 기술
피싱 조직은 광고부터 피싱 웹사이트 제작, 트로이 목마 제작에 이르기까지 일련의 작업을 수행하는 것을 볼 수 있습니다. 그 이유는 구글 검색에 광고된 정보에 공식 주소가 표시되어 있기 때문입니다. 그리고 왜 302 점프 후 후속 조치가 이루어질까요? 분석 결과, 피싱 조직이 구글의 자체 파이어베이스 쇼트 링크 서비스인 302 점프를 사용하여 구글의 디스플레이를 속인 것이 핵심 작전인 것으로 밝혀졌습니다.
이 과정을 더 명확하게 이해하기 위해서는 Google의 광고 게재 메커니즘도 이해해야 합니다(Google 계정이 있는 경우 Google의 광고 관리 사이트(https://ads.google.com)에 로그인하여 프로모션을 설정할 수 있습니다):
1. 먼저 광고 관리 사이트에서 웹사이트 트래픽과 검색 유형을 타겟팅하는 새 광고 캠페인을 만들어야 합니다.
2. 광고가 게재될 가격과 횟수를 설정합니다. 정보 입력 후 광고가 게재될 지역과 언어를 선택합니다. 이는 다른 지역이나 언어로 키워드를 검색한다고 해서 항상 광고가 게재되는 것은 아닌 이유이기도 합니다.
3. 트래킹 템플릿을 설정하는 것이 핵심 단계입니다. 추적 템플릿은 타사에서 광고 링크를 추적할 수 있도록 해주는 Google 광고의 고급 기능입니다.
피싱 페이지가 첫 번째 점프를 사용하고 있음을 알 수 있습니다. 링크 도메인은 page.link이며, 이는 실제로 임의의 리디렉션 주소를 page.link의 하위 도메인에 바인딩할 수 있는 Google의 Firebase의 짧은 주소 서비스입니다.
써드파티 추적 링크는 Google 타사 추적 링크는 Google 인증 주소여야 하고 페이지링크는 Google의 자체 도메인이기 때문에 피싱 그룹은 이 제한을 우회합니다.
4. 광고가 게재된 후 피싱 그룹은 광고가 게재된 후 일정 기간 동안 피싱 URL로 리디렉션을 수정하는데, 이는 Google이 302 홉의 링크가 변경되었는지 실시간으로 확인하지 않고 광고를 실시간으로 수정하지 않기 때문입니다.
유사한 피싱 수법은 다양한 채팅 소프트웨어에서도 발견됩니다. 예를 들어, 텔레그램의 경우, 채팅 중에 URL 링크가 전송되면, 텔레그램 백엔드에서 URL 링크 도메인 이름, 제목, 아이콘을 가져와 미리보기를 표시합니다.
(이 이미지는 데모용으로만 사용됩니다)
그러나, 텔레그램은 미리보기 정보를 가져올 때 302 홉을 차단하지 않습니다. 그 결과, 사용자가 해당 페이지의 정보만을 보고 판단하여 링크를 클릭할 경우, 미리 정의된 피싱 주소로 리디렉션 될 수 있습니다.
요약
래비월렛의 공식 주소는 https://rabby.io 이며, 검색 결과에 표시되는 광고주는 신뢰하지 마시기 바랍니다. 검색 결과에 표시되는 광고성 주소는 절대 신뢰하지 마시고, 안타깝게도 피해를 입으셨다면 우선 지갑 자금을 이체하고 개인 컴퓨터에서 백신 검사를 실시하시기 바라며, 일반적으로 웹사이트 링크를 클릭하기 전에 의심하는 마음을 가지시고, 보안 지식은 슬로우미스트 보안팀에서 제작한 "블록체인 다크 포레스트 자가 진단 매뉴얼"을 참고하시기 바랍니다(https://github.com/slowmist/). 블록체인 다크 포레스트 셀프 가드 핸드북/blob/main/README_CN.md.