Web3.0 모바일 지갑에 고유한 피싱 공격 방식이 속속 등장하고 있는 모달 피싱(Modal Phishing)

우리는 최근 연결된 분산 응용 프로그램(DApp)의 신원에 대해 피해자를 오도하는 데 사용할 수 있는 새로운 피싱 기술을 발견했습니다.
우리는 이 새로운 피싱 기술을 Modal Phishing이라고 명명했습니다.
공격자는 합법적인 DApp으로 위장한 모바일 지갑에 가짜 가짜 정보를 보내고 모바일 지갑의 모달 창에 잘못된 정보를 표시하여 피해자가 거래를 승인하도록 속일 수 있습니다. 이 피싱 기술은 널리 사용됩니다. 우리는 해당 구성 요소 개발자와 소통하고 이 위험을 완화하기 위해 새로운 인증 API를 출시할 것임을 확인했습니다.
모달 피싱이란 무엇입니까?
모바일 지갑에 대한 CertiK의 보안 연구 중에 공격자가 Web3.0 통화 지갑의 특정 사용자 인터페이스(UI) 요소를 제어하여 피싱 공격을 수행할 수 있음을 확인했습니다. 공격자가 피싱 공격을 위해 주로 암호화된 지갑 모달 창을 대상으로 하기 때문에 이 피싱 기술을 모달 피싱이라고 명명했습니다.
모달(또는 모달 창)은 모바일 애플리케이션에서 자주 사용되는 UI 요소입니다. 모달은 일반적으로 기본 애플리케이션 창 위에 표시됩니다. 이러한 디자인은 일반적으로 사용자가 Web3.0 통화 지갑의 트랜잭션 요청 승인/거부와 같은 빠른 작업을 수행할 수 있도록 하는 데 사용됩니다.
이미지 설명

정품 거래 승인 모델 vs. 피싱 거래 승인 모델
위 스크린샷에서 Metamask에 일반 거래 승인 모달 창이 어떻게 나타나는지 보여줍니다.
연결된 탈중앙화 애플리케이션(DApp)에 의해 새로운 트랜잭션 요청이 시작되면 지갑은 새로운 모달 창을 표시하고 사용자에게 수동 확인을 요청합니다.
위 이미지의 왼쪽에 표시된 것처럼 모달 창에는 일반적으로 웹 사이트 주소(이 경우 localhost), 아이콘 등과 같은 요청자의 ID가 포함됩니다. Metamask와 같은 일부 지갑은 요청에 대한 주요 정보도 표시하며, 인스턴스에서 사용자에게 이것이 일반 거래 요청임을 상기시키기 위해 "확인"이라고 표시된 일부 UI 요소를 보았습니다.
그러나 이러한 UI 요소는 Modal Phishing 공격에 대해 공격자가 제어할 수 있습니다. 오른쪽 스크린샷에서 공격자가 트랜잭션 세부 정보를 변경하고 트랜잭션 요청을 "Metamask"의 "보안 업데이트" 요청으로 위장하여 사용자가 승인하도록 속일 수 있음을 알 수 있습니다.
스크린샷과 같이 공격자는 여러 UI 요소를 조작할 수 있습니다.
따라서 이 문서에서는 두 가지 일반적인 사례를 공유하고 공격자가 제어할 수 있는 UI 요소를 식별합니다.
자세한 내용은 다음과 같습니다.
① Wallet Connect 프로토콜을 사용하는 경우 공격자가 DApp 정보 UI 요소(이름, 아이콘 등)를 제어할 수 있습니다.
이미지 설명

공격자가 제어하는 Modal 및 관련 정보 소스의 예(DApp 정보 및 메서드 이름)
예시 ①: Wallet Connect를 통한 DApp 피싱 공격
Wallet Connect 프로토콜은 QR 코드 또는 딥 링크를 통해 사용자의 지갑을 DApp과 연결하기 위한 인기 있는 오픈 소스 프로토콜입니다. 사용자는 Wallet Connect 프로토콜을 통해 지갑을 DApp과 연결한 다음 프로토콜로 거래 또는 전송을 수행할 수 있습니다.
Web3.0 통화 지갑과 DApp 간의 페어링 과정에서 Web3.0 통화 지갑이 DApp 이름, 웹사이트 주소, 아이콘을 포함하여 들어오는 페어링 요청의 메타 정보를 표시하는 모달 창을 표시하는 것을 확인했습니다. 그리고 묘사하십시오. Web3.0 지갑이 표시하는 정보와 방법은 사용자가 볼 수 있는 DApp 이름, 아이콘 및 웹 사이트 주소에 따라 다릅니다.
그러나 이 정보는 DApp에서 제공하는 것이며, 지갑은 제공하는 정보가 합법적이고 진위 여부를 확인하지 않습니다. 예를 들어, 피싱 공격에서 특정 Lebi는 특정 Sprite(둘 다 DApp임)인 것처럼 가장한 다음 사용자가 거래 요청을 시작하기 전에 연결하도록 사용자를 속일 수 있습니다.
친구는 [https://www.youtube.com/watch?v=x 6 muJmDBC 3 o] 링크를 브라우저에 복사하여 CertiK에서 만든 작은 테스트를 볼 수 있습니다.
비디오에서 CertiK는 공격자가 Uniswap DApp이라고 주장하고 Metamask 지갑에 연결하여 공격자가 사용자를 속여 들어오는 거래를 승인하도록 속이는 방법을 보여줍니다.
페어링 프로세스 중에 지갑 내에 표시되는 모달 창에는 호환 Uniswap DApp의 이름, 웹사이트 URL 및 파비콘이 표시됩니다.
URL에 https 스키마를 사용하기 때문에 자물쇠 아이콘도 표시되어 모달 창을 보다 현실적이고 합법적으로 만듭니다. 페어링 과정에서 피해자가 가짜 Uniswap 웹사이트에서 거래 작업을 수행하려는 한 공격자는 거래 요청 매개변수(예: 대상 주소 및 거래 금액)를 교체하여 피해자의 자금을 훔칠 수 있습니다.
모달 디자인은 지갑마다 다르지만 공격자는 항상 메타 정보를 제어할 수 있습니다.
이미지 설명

모달 피싱: 젠고와 1인치 지갑에 연결된 가짜 DApp
공격자가 페어링 및 트랜잭션 모달 창을 조작할 수 있다는 것을 알았으므로 이러한 공격을 사용하여 트랜잭션 요청이 합법적인 DApp에서 온다고 사용자를 설득할 수 있습니다.
아래 스크린샷과 같이 "Metamask"라고 주장하는 가짜 DApp을 만들고 피싱 스마트 계약을 시작했습니다. 공격자는 트랜잭션 승인 모달에서 Metamask 또는 Uniswap DApp을 가장할 수 있습니다.

위 예시와 같이 대규모로 사용되는 Wallet Connect 프로토콜은 페어링된 DApp 정보의 적법성을 검증하지 않습니다. 조작된 메타 정보는 지갑 애플리케이션에서 추가로 사용되어 사용자에게 제공되며, 이는 모달 피싱에 사용될 수 있습니다. 가능한 솔루션으로 Wallet Connect 프로토콜은 DApp 정보의 유효성과 적법성을 사전에 검증할 수 있습니다. Wallet Connect 개발자는 이 문제를 인식하고 있으며 해결책을 찾기 위해 노력하고 있습니다.
예시 ②: MetaMask를 통한 스마트 컨트랙트 정보 피싱
Metamask 승인 모달의 아이콘 또는 웹사이트 이름 아래에 "확인" 또는 "알 수 없는 방법"과 같은 부동 문자열을 표시하는 또 다른 보기가 있음을 눈치채셨을 것입니다. 이 UI 요소는 Metamask에서 해당 트랜잭션 유형을 식별하도록 설계되었습니다.
이미지 설명

이미지 설명

메타마스크의 스마트 컨트랙트 방식 명칭 설명
"보안 업데이트"라는 레이블이 붙은 메타마스크에서 트랜잭션 요청 모달을 볼 수 있습니다. 공격자는 결제 기능이 있는 SecurityUpdate가 포함된 피싱 스마트 계약을 구축하고 피해자가 스마트 계약으로 자금을 이체할 수 있도록 합니다.
공격자는 또한 SignatureReg를 사용하여 메서드 서명을 사람이 읽을 수 있는 문자열 "SecurityUpdate"로 등록합니다. 앞서 언급한 바와 같이 Metamask는 이 피싱 스마트 컨트랙트를 파싱할 때 함수 서명 바이트를 사용하여 해당 함수 메서드를 쿼리하고 승인 모달에서 사용자에게 제시합니다.
이미지 설명

피싱 거래 승인 모달
위의 예에서 스마트 계약 정보와 관련된 지갑의 UI 요소가 피셔에 의해 어떻게 조작될 수 있는지 보여주었습니다.
마지막에 쓰기
마지막에 쓰기
이 기사에서는 맹목적으로 신뢰해서는 안 되는 Web3.0 통화 지갑의 공통 UI 구성 요소인 모달 창을 보여줍니다.
공격자는 모달 창의 특정 UI 요소를 조작하여 매우 "실제적이고 설득력 있는" 피싱 트랩을 만들 수 있습니다. 따라서 우리는 이 새로운 피싱 기술을 Modal Phishin이라고 명명했습니다.
이 공격의 근본 원인은 지갑 애플리케이션이 제시된 UI 요소의 적법성을 철저히 검증하지 않는다는 것입니다.
예를 들어 지갑 애플리케이션은 Wallet Connect SDK의 메타데이터를 직접 신뢰하여 사용자에게 제공합니다.
또한 Wallet Connect SDK는 들어오는 메타데이터의 유효성을 검사하지 않으므로 경우에 따라 제시된 메타데이터를 공격자가 제어할 수 있습니다. Metamask에서 우리는 모달 창에 사기성 스마트 계약 기능 메서드 이름을 표시하기 위해 공격자가 유사한 공격 원칙을 악용하는 것을 볼 수 있습니다.
전반적으로 우리는 지갑 애플리케이션 개발자가 들어오는 데이터를 신뢰할 수 없다고 항상 가정해야 한다고 생각합니다. 개발자는 사용자에게 표시할 정보를 신중하게 선택하고 해당 정보의 적법성을 확인해야 합니다. 또한 사용자는 보안 측면에서 자신의 "1에이커 3포인트 토지"를 보호하기 위해 알려지지 않은 모든 거래 요청에 대해 회의적인 태도를 유지해야 합니다.


