กระเป๋าเงินมือถือ Web3.0 มีวิธีการโจมตีแบบฟิชชิงที่ไม่เหมือนใคร Modal Phishing

เมื่อเร็ว ๆ นี้เราได้ค้นพบเทคนิคฟิชชิ่งแบบใหม่ที่สามารถใช้เพื่อหลอกลวงเหยื่อเกี่ยวกับตัวตนของแอปพลิเคชันกระจายอำนาจที่เชื่อมต่อ (DApp)
เราตั้งชื่อเทคนิคฟิชชิ่งใหม่นี้ว่า Modal Phishing
ผู้โจมตีสามารถส่งข้อมูลปลอมปลอมไปยังกระเป๋าเงินมือถือโดยสวมรอยเป็น DApp ที่ถูกต้อง และหลอกล่อเหยื่อให้อนุมัติการทำธุรกรรมโดยแสดงข้อมูลที่ทำให้เข้าใจผิดในหน้าต่าง modal ของกระเป๋าเงินมือถือ เทคนิคฟิชชิ่งนี้ใช้กันอย่างแพร่หลาย เราได้สื่อสารกับผู้พัฒนาส่วนประกอบที่เกี่ยวข้องและยืนยันว่าพวกเขาจะออก API การตรวจสอบสิทธิ์ใหม่เพื่อลดความเสี่ยงนี้
โมดอลฟิชชิ่งคืออะไร?
ในระหว่างการวิจัยด้านความปลอดภัยของ CertiK เกี่ยวกับโมบายวอลเล็ต เราสังเกตเห็นว่าองค์ประกอบอินเทอร์เฟซผู้ใช้ (UI) บางอย่างของวอลเล็ตสกุลเงิน Web3.0 สามารถควบคุมโดยผู้โจมตีเพื่อทำการโจมตีแบบฟิชชิง เราตั้งชื่อเทคนิคฟิชชิ่งนี้ว่า Modal Phishing เนื่องจากผู้โจมตีมุ่งเป้าไปที่หน้าต่าง Modal Wallet ที่เข้ารหัสเพื่อการโจมตีแบบฟิชชิงเป็นหลัก
Modals (หรือหน้าต่าง modal) เป็นองค์ประกอบ UI ที่ใช้บ่อยในแอปพลิเคชันมือถือ Modals มักจะแสดงที่ด้านบนของหน้าต่างแอปพลิเคชันหลัก การออกแบบดังกล่าวมักจะใช้เพื่ออำนวยความสะดวกให้ผู้ใช้ดำเนินการอย่างรวดเร็ว เช่น การอนุมัติ/ปฏิเสธคำขอธุรกรรมจากกระเป๋าเงิน Web3.0
คำอธิบายภาพ

โมเดลการอนุมัติดีลของแท้เทียบกับโมเดลการอนุมัติดีลฟิชชิ่ง
ในภาพหน้าจอด้านบน เราแสดงให้เห็นว่าหน้าต่างโมดอลการอนุมัติธุรกรรมปกติปรากฏบน Metamask อย่างไร
เมื่อคำขอธุรกรรมใหม่เริ่มต้นโดยแอปพลิเคชันกระจายอำนาจที่เชื่อมต่อ (DApp) กระเป๋าเงินจะแสดงหน้าต่างโมดอลใหม่และขอให้ผู้ใช้ยืนยันด้วยตนเอง
ดังที่แสดงทางด้านซ้ายของภาพด้านบน โดยปกติแล้วหน้าต่างโมดอลจะมีข้อมูลประจำตัวของผู้ร้องขอ เช่น ที่อยู่เว็บไซต์ (ในกรณีนี้คือ localhost) ไอคอน เป็นต้น กระเป๋าเงินบางประเภทเช่น Metamask ยังแสดงข้อมูลสำคัญเกี่ยวกับคำขอ และในตัวอย่าง เราเห็นองค์ประกอบ UI บางส่วนที่มีเครื่องหมาย "ยืนยัน" เพื่อเตือนผู้ใช้ว่านี่เป็นคำขอธุรกรรมปกติ
อย่างไรก็ตาม ผู้โจมตีสามารถควบคุมองค์ประกอบ UI เหล่านี้ได้สำหรับการโจมตีแบบฟิชชิ่งแบบโมดอล ในภาพหน้าจอทางด้านขวา เราจะเห็นว่าผู้โจมตีสามารถเปลี่ยนรายละเอียดธุรกรรมและปลอมแปลงคำขอธุรกรรมเป็นคำขอ "อัปเดตความปลอดภัย" จาก "Metamask" เพื่อหลอกลวงผู้ใช้ให้อนุมัติ
ดังที่แสดงในภาพหน้าจอ ผู้โจมตีสามารถปรับเปลี่ยนองค์ประกอบ UI หลายอย่าง
ดังนั้นในบทความนี้ เราจะแชร์กรณีทั่วไป 2 กรณีและระบุองค์ประกอบ UI ที่ผู้โจมตีสามารถควบคุมได้
รายละเอียดมีดังนี้:
① หากใช้โปรโตคอล Wallet Connect ผู้โจมตีจะสามารถควบคุมองค์ประกอบ UI ข้อมูล DApp (ชื่อ ไอคอน ฯลฯ)
คำอธิบายภาพ

ตัวอย่างของ Modal ที่ควบคุมโดยผู้โจมตีและแหล่งข้อมูลที่เกี่ยวข้อง (ข้อมูล DApp และชื่อเมธอด)
ตัวอย่าง ①: การโจมตีแบบฟิชชิงของ DApp ผ่าน Wallet Connect
โปรโตคอล Wallet Connect เป็นโปรโตคอลโอเพ่นซอร์สยอดนิยมสำหรับเชื่อมต่อกระเป๋าเงินของผู้ใช้กับ DApps ผ่านรหัส QR หรือลิงก์ในรายละเอียด ผู้ใช้สามารถเชื่อมต่อกระเป๋าเงินของพวกเขากับ DApps ผ่านโปรโตคอล Wallet Connect จากนั้นทำธุรกรรมหรือโอนด้วยโปรโตคอล
ในระหว่างกระบวนการจับคู่ระหว่างกระเป๋าเงินสกุลเงิน Web3.0 และ DApp เราสังเกตเห็นว่ากระเป๋าเงินสกุลเงิน Web3.0 จะแสดงหน้าต่างโมดอลที่แสดงข้อมูลเมตาของคำขอจับคู่ที่เข้ามา รวมถึงชื่อของ DApp ที่อยู่เว็บไซต์ ไอคอน และอธิบาย ข้อมูลและวิธีการที่แสดงโดยกระเป๋าเงิน Web3.0 จะแตกต่างกันไปตามชื่อ ไอคอน และที่อยู่เว็บไซต์ของ DApp เพื่อให้ผู้ใช้ดู
อย่างไรก็ตาม ข้อมูลนี้จัดทำโดย DApp และกระเป๋าเงินไม่ได้ตรวจสอบว่าข้อมูลที่ให้นั้นถูกกฎหมายและเป็นของจริงหรือไม่ ตัวอย่างเช่น ในการโจมตีแบบฟิชชิง Lebi บางตัวสามารถแสร้งทำเป็น Sprite บางตัว (ทั้งคู่เป็น DApps) แล้วหลอกให้ผู้ใช้เชื่อมต่อกับมันก่อนที่ผู้ใช้จะเริ่มคำขอธุรกรรม
เพื่อนๆ สามารถคัดลอกลิงก์ [https://www.youtube.com/watch? v=x 6 muJmDBC 3 o] ไปยังเบราว์เซอร์เพื่อดูการทดสอบเล็กๆ น้อยๆ ที่ทำโดย CertiK
ในวิดีโอ CertiK แสดงให้เห็นว่าผู้โจมตีสามารถ “หลอก” Uniswap DApp ได้อย่างไร — โดยอ้างว่าเป็น Uniswap DApp และเชื่อมต่อกับกระเป๋าเงิน Metamask ผู้โจมตีจะหลอกให้ผู้ใช้อนุมัติธุรกรรมที่เข้ามา
ในระหว่างกระบวนการจับคู่ หน้าต่างโมดอลที่แสดงภายในกระเป๋าเงินจะแสดงชื่อ URL ของเว็บไซต์ และไอคอน favicon ของ Uniswap DApp ที่สอดคล้องกัน
เนื่องจากมีการใช้รูปแบบ https ใน URL ไอคอนแม่กุญแจจึงแสดงขึ้นด้วย ซึ่งทำให้หน้าต่างโมดอลมีความสมจริงและถูกต้องมากขึ้น ในระหว่างขั้นตอนการจับคู่ ตราบใดที่เหยื่อต้องการทำธุรกรรมบนเว็บไซต์ Uniswap ปลอม ผู้โจมตีสามารถแทนที่พารามิเตอร์คำขอธุรกรรม (เช่น ที่อยู่ปลายทางและจำนวนเงินที่ทำธุรกรรม) เพื่อขโมยเงินของเหยื่อ
โปรดทราบว่าแม้ว่าการออกแบบโมดอลจะแตกต่างกันไปตามกระเป๋าเงินต่างๆ แต่ผู้โจมตีก็สามารถควบคุมข้อมูลเมตาได้เสมอ
คำอธิบายภาพ

Modal Phishing: DApp ปลอมที่เชื่อมต่อกับ Zengo และ 1Inch Wallets
ตอนนี้เราทราบแล้วว่าผู้โจมตีสามารถจัดการหน้าต่างจับคู่และธุรกรรมโมดอลได้ การโจมตีดังกล่าวสามารถใช้เพื่อโน้มน้าวผู้ใช้ว่าคำขอธุรกรรมมาจาก DApps ที่ถูกต้อง
ดังที่แสดงในภาพหน้าจอด้านล่าง เราได้สร้าง DApp ปลอมที่อ้างว่าเป็น "Metamask" และเปิดตัวสัญญาอัจฉริยะแบบฟิชชิ่ง ผู้โจมตีอาจปลอมแปลงเป็น Metamask หรือ Uniswap DApp ในโมดอลการอนุมัติธุรกรรม

ดังที่แสดงในตัวอย่างข้างต้น โปรโตคอล Wallet Connect ซึ่งใช้ในขนาดใหญ่ไม่ได้ตรวจสอบความถูกต้องของข้อมูล DApp ที่จับคู่ ข้อมูลเมตาที่ถูกจัดการจะถูกใช้เพิ่มเติมโดยแอปพลิเคชันกระเป๋าเงินและแสดงต่อผู้ใช้ ซึ่งสามารถใช้สำหรับ Modal Phishing ในฐานะโซลูชันที่เป็นไปได้ โปรโตคอล Wallet Connect สามารถตรวจสอบความถูกต้องและถูกต้องตามกฎหมายของข้อมูล DApp ได้ล่วงหน้า ผู้พัฒนา Wallet Connect รับทราบถึงปัญหานี้และกำลังดำเนินการแก้ไข
ตัวอย่าง ②: ฟิชชิ่งข้อมูลสัญญาอัจฉริยะผ่าน MetaMask
คุณอาจสังเกตเห็นว่าใต้ไอคอนหรือชื่อเว็บไซต์ของโมดอลการอนุมัติ Metamask มีมุมมองอื่นที่แสดงสตริงแบบลอย เช่น "ยืนยัน" หรือ "วิธีที่ไม่รู้จัก" องค์ประกอบ UI นี้ออกแบบโดย Metamask เพื่อระบุประเภทธุรกรรมที่เกี่ยวข้อง
คำอธิบายภาพ

คำอธิบายภาพ

คำอธิบายชื่อเมธอดสัญญาอัจฉริยะของ MetaMask
เราสามารถเห็นโมดอลคำขอธุรกรรมบน Metamask ที่มีข้อความว่า "Security Update" ผู้โจมตีสร้างสัญญาอัจฉริยะแบบฟิชชิ่งที่มี SecurityUpdate พร้อมฟังก์ชันการชำระเงิน และอนุญาตให้เหยื่อโอนเงินเข้าสู่สัญญาอัจฉริยะ
ผู้โจมตียังใช้ SignatureReg เพื่อลงทะเบียนลายเซ็นเมธอดเป็นสตริง "SecurityUpdate" ที่มนุษย์อ่านได้ ดังที่ได้กล่าวไว้ก่อนหน้านี้ เมื่อ Metamask แยกวิเคราะห์สัญญาอัจฉริยะของฟิชชิ่ง มันจะสอบถามเมธอดของฟังก์ชันที่สอดคล้องกันโดยใช้ฟังก์ชันซิกเนเจอร์ไบต์ และแสดงให้ผู้ใช้เห็นในโมดอลการอนุมัติ
คำอธิบายภาพ

โมดอลการอนุมัติธุรกรรมฟิชชิ่ง
ในตัวอย่างข้างต้น เราแสดงให้เห็นว่าองค์ประกอบ UI บนกระเป๋าเงินที่เกี่ยวข้องกับข้อมูลสัญญาอัจฉริยะอาจถูกจัดการโดยฟิชเชอร์ได้อย่างไร
เขียนในตอนท้าย
เขียนในตอนท้าย
ในบทความนี้ เราจะแสดงองค์ประกอบ UI ทั่วไปบนกระเป๋าเงิน Web3.0 ที่ไม่ควรเชื่อถือโดยสุ่มสี่สุ่มห้า - หน้าต่างโมดอล
องค์ประกอบ UI บางอย่างในหน้าต่างโมดอลสามารถถูกควบคุมโดยผู้โจมตีเพื่อสร้างกับดักฟิชชิ่งที่ "จริงและน่าเชื่อถือ" ดังนั้นเราจึงตั้งชื่อเทคนิคฟิชชิ่งใหม่นี้ว่า Modal Phishin
สาเหตุของการโจมตีนี้คือแอปพลิเคชันกระเป๋าเงินไม่ได้ตรวจสอบความถูกต้องขององค์ประกอบ UI ที่นำเสนออย่างละเอียดถี่ถ้วน
ตัวอย่างเช่น แอปพลิเคชันกระเป๋าเงินเชื่อถือข้อมูลเมตาโดยตรงจาก SDK ของ Wallet Connect และแสดงข้อมูลดังกล่าวแก่ผู้ใช้
Wallet Connect SDK ยังไม่ได้ตรวจสอบข้อมูลเมตาที่เข้ามา ซึ่งในบางกรณีอนุญาตให้ผู้โจมตีควบคุมข้อมูลเมตาที่นำเสนอได้ ใน Metamask เราสามารถเห็นหลักการโจมตีที่คล้ายกันซึ่งถูกโจมตีโดยผู้โจมตีเพื่อแสดงชื่อวิธีการทำงานของสัญญาอัจฉริยะที่ฉ้อฉลในหน้าต่างโมดอล
โดยรวมแล้ว เราเชื่อว่าผู้พัฒนาแอปพลิเคชันกระเป๋าเงินควรสันนิษฐานเสมอว่าข้อมูลขาเข้าไม่สามารถเชื่อถือได้ นักพัฒนาซอฟต์แวร์ควรเลือกข้อมูลที่จะแสดงต่อผู้ใช้อย่างรอบคอบและตรวจสอบความถูกต้องของข้อมูลดังกล่าว นอกจากนี้ ผู้ใช้ควรรักษาทัศนคติที่สงสัยต่อทุกคำขอธุรกรรมที่ไม่รู้จัก เพื่อป้องกัน "พื้นที่หนึ่งเอเคอร์-สามจุด" ของตนเองในแง่ของความปลอดภัย


