1 คะแนน โดย GN⁺ 2025-10-17 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Pixnapping คือเทคนิคการโจมตีแบบใหม่ที่ทำให้แอป Android อันตรายสามารถขโมย ข้อมูลส่วนบุคคล ที่แสดงอยู่ในแอปอื่นหรือเว็บไซต์ได้อย่างลับ ๆ
  • การโจมตีนี้อาศัย ช่องทางรั่วไหลด้านข้างของ Android API และฮาร์ดแวร์ GPU และส่งผลกระทบต่ออุปกรณ์รุ่นใหม่ส่วนใหญ่จากผู้ผลิตหลักอย่าง Google, Samsung เป็นต้น
  • ข้อมูลทุกอย่างที่แสดงบนหน้าจอ เช่น รหัสยืนยัน แชต และอีเมล อาจรั่วไหลได้ และสามารถโจมตีได้ โดยไม่ต้องมีสิทธิ์ของแอป
  • ใน Google Authenticator สามารถขโมยรหัสยืนยันตัวตนสองชั้นได้ภายใน 30 วินาที
  • ทั้ง Google และผู้ผลิต GPU ยังอยู่ในสถานการณ์ที่ ขาดแพตช์หรือมาตรการรับมือ ที่ชัดเจนเพื่อบรรเทาการโจมตีนี้

ภาพรวม

  • Pixnapping คือการโจมตีที่ทำให้แอป Android อันตรายสามารถขโมยข้อมูลที่แสดงอยู่ในแอปอื่นหรือเว็บไซต์ได้โดยที่ผู้ใช้ไม่รู้ตัว
  • การรั่วไหลของข้อมูลเกิดจากการนำ side channel ของ Android API และ GPU มาใช้ในทางที่ผิด และสมาร์ตโฟน Android รุ่นใหม่ส่วนใหญ่ รวมถึงอุปกรณ์ของ Google และ Samsung ได้รับผลกระทบ
  • แอปที่ยืนยันผลกระทบแล้วมี Gmail, Signal, Google Authenticator, Venmo, Google Maps และสามารถขโมยรหัส 2FA ของ Google Authenticator ได้ภายใน 30 วินาที

งานวิจัยและเดโม

  • มีกำหนดเปิดเผยในงาน ACM CCS 2025 ภายใต้บทความ “Pixnapping: Bringing Pixel Stealing out of the Stone Age”
  • สามารถดูหลักการโจมตีและรายละเอียดเพิ่มเติมได้จากฉบับ preprint ของบทความ

คำถาม-คำตอบหลัก

อุปกรณ์ใดได้รับผลกระทบ

  • มีการพิสูจน์บน Google Pixel 6, 7, 8, 9 และ Samsung Galaxy S25 ที่ใช้ Android 13~16
  • มีความเป็นไปได้สูงว่าอุปกรณ์จากผู้ผลิตรายอื่นก็จะทำงานตามหลักการโจมตีหลักแบบเดียวกัน

เงื่อนไขของการโจมตี

  • แอป Android ใด ๆ ที่ไม่มีสิทธิ์ ก็สามารถรันการโจมตีได้
  • สามารถทำงานได้โดยไม่ต้องประกาศสิทธิ์เพิ่มเติมในไฟล์ manifest ของแอป

ขโมยข้อมูลอะไรได้บ้าง

  • ข้อมูลทุกอย่าง ที่แสดงบนหน้าจอ เช่น แชต รหัสยืนยัน และอีเมล เป็นเป้าหมายของการโจมตี
  • ข้อมูลภายในที่ไม่แสดงบนหน้าจอ ไม่สามารถรั่วไหลได้

ตัวอย่างการถูกนำไปใช้จริง

  • ขณะนี้ยังไม่ยืนยันว่ามีการนำไปใช้โจมตีจริงอยู่หรือไม่

วิธีป้องกันสำหรับผู้ใช้

  • แนะนำให้ ติดตั้งทันที ทุกครั้งที่มีแพตช์ความปลอดภัย Android ออกใหม่

วิธีป้องกันสำหรับนักพัฒนา

  • ขณะนี้ยังไม่พบ มาตรการป้องกันหรือวิธีหลีกเลี่ยง ที่มีประสิทธิภาพ
  • หากมี insight ด้านความปลอดภัย ขอให้ติดต่อผู้วิจัย

หลักการทำงานของการโจมตี

  1. แอปอันตรายเรียกแอปเป้าหมาย (เช่น Google Authenticator) เพื่อชักนำให้มีการเรนเดอร์ ข้อมูลอ่อนไหว
  2. บนหน้าจอของแอปเป้าหมาย จะบังคับใช้การประมวลผลกราฟิก (เช่น blur) กับ พิกเซลบางจุด
  3. ใช้ side channel อย่าง GPU.zip เพื่อดึงพิกเซลในขั้นตอนที่ 2 ออกมาทีละพิกเซล
  • ทำซ้ำขั้นตอนที่ 2 และ 3 เพื่อกู้คืนทั้งภาพของพิกเซล แล้วใช้ OCR เพื่อดึงเนื้อหาเดิมออกมา
  • ให้ผลคล้ายกับการถ่ายภาพหน้าจอของหน้าจอที่ตามปกติแอปอันตรายไม่สามารถเข้าถึงได้

Android API ที่ถูกใช้ในการโจมตี

  • ใช้ window blur API เพื่อทำกราฟิกเอฟเฟกต์ (blur) กับบริเวณพิกเซลที่มีความอ่อนไหว
  • ใช้ VSync callback วัดเวลาเรนเดอร์ และนำไปใช้ในการดึงข้อมูลทีละพิกเซล

แพตช์และการรับมือของ Google

  • Google รับมือด้วยวิธีจำกัดจำนวน กิจกรรมที่มีการทำ blur ที่แอปสามารถเรียกได้ แต่ก็มีการพบวิธีเลี่ยง (workaround) ในเวลาต่อมา
  • วิธีเลี่ยงดังกล่าวยังอยู่ในสถานะไม่เปิดเผยต่อสาธารณะ (embargo)

side channel ระดับฮาร์ดแวร์

  • ใช้ side channel บน GPU ที่ชื่อ GPU.zip เพื่อดึงข้อมูลพิกเซล
  • ณ เดือนตุลาคม 2025 ยังไม่มีแผนแพตช์แยกจากผู้ผลิต GPU

ข้อมูลระบุช่องโหว่ (CVE)

  • ขึ้นทะเบียนอย่างเป็นทางการเป็น CVE-2025-48561

ผลกระทบต่อระบบปฏิบัติการอื่น

  • Android กลายเป็นเป้าหมายของการโจมตีนี้เพราะแอปสามารถทำกราฟิกโอเปอเรชันกับข้อมูลหน้าจอของแอปอื่นและวัด side effect ได้
  • ยังไม่ยืนยันความเป็นไปได้ในการใช้กับ OS อื่น

ช่องโหว่เพิ่มเติม App List Bypass

  • ยังมีช่องโหว่ app list bypass ที่สามารถระบุรายชื่อแอปอื่นที่ติดตั้งอยู่ได้โดยไม่ต้องมีสิทธิ์เพิ่มเติมหรือประกาศใน manifest
  • สามารถนำไปใช้ในการทำโปรไฟล์ผู้ใช้ได้ และต่างจากวิธีเลี่ยงเดิมตรงที่ทำงานได้โดยไม่ต้องประกาศเพิ่มเติม
  • Google ตัดสินว่าเป็น “Infeasible” และปิดเรื่องโดยไม่มีมาตรการเพิ่มเติม

โลโก้ ซอร์สโค้ด และไลเซนส์

  • โลโก้ Pixnapping สามารถใช้งานได้อย่างอิสระภายใต้ไลเซนส์ CC0
  • หลังจากแจกจ่ายแพตช์แล้ว ซอร์สโค้ดจะเปิดเผยบน GitHub(https://github.com/TAC-UCB/pixnapping)

การรับมือและกำหนดการสำคัญ

  • ระหว่างเดือนกุมภาพันธ์~ตุลาคม 2025 มีการเปิดเผยช่องโหว่และขอให้รับมือกับ Google และ Samsung เป็นลำดับ
  • Google จัดระดับความเสี่ยงของ Pixnapping และ app list bypass เป็น High/Low และสรุปว่าแพตช์บางส่วนยังไม่เพียงพอหรือไม่สามารถแก้ได้ (Fix ไม่ได้)
  • มีแผนออกแพตช์เพิ่มเติมในประกาศความปลอดภัย Android เดือนธันวาคม 2025

สรุป

  • Pixnapping เป็นการโจมตีที่อาศัยช่องโหว่เชิงโครงสร้างร่วมกันของระบบสิทธิ์แอปและการทำงานของฮาร์ดแวร์ เพื่อ ทำให้ข้อมูลสำคัญบนหน้าจอจริงรั่วไหลโดยมิชอบ
  • ทั้งซอฟต์แวร์และฮาร์ดแวร์ด้านความปลอดภัยของ Android ยังต้องการมาตรการเสริมเชิงโครงสร้าง

1 ความคิดเห็น

 
GN⁺ 2025-10-17
ความคิดเห็นใน Hacker News
  • ผมคิดว่าปัญหาหลักคือระบบสิทธิ์ของ Android อนุญาตให้ "ทำงานอยู่เบื้องหลัง" หรือ "เข้าถึงอินเทอร์เน็ต" ได้โดยปริยายโดยไม่ต้องขออนุญาตจากผู้ใช้ ทำให้การโจมตีแบบนี้เป็นไปได้ เพราะทุกแอป—แม้แต่เกมออฟไลน์—ก็มีสิทธิ์เหล่านี้เป็นค่าเริ่มต้น หลายแอปควรจะเข้าถึงอินเทอร์เน็ตได้แค่ "ตอนที่กำลังใช้งานแอป" เท่านั้น ถึงจะไม่ใช่การป้องกันที่สมบูรณ์ แต่เพราะความเสี่ยงจากการเผลอรันแอปอันตรายมีอยู่เสมอ ก็จะช่วยลดประสิทธิภาพของการโจมตีลงได้มาก

    • สงสัยว่ามีงานวิจัยที่ศึกษาความเสี่ยงของการอัปเดตอัตโนมัติกับการอัปเดตแบบแมนนวล/ไม่อัปเดตอย่างจริงจังหรือไม่ โดยเฉพาะในสภาพแวดล้อมที่กึ่งแซนด์บ็อกซ์อย่าง Android อยากรู้ว่ามีงานเปรียบเทียบอัตราความบกพร่องแบบนี้หรือเปล่า

    • จริง ๆ แล้วมีสิทธิ์สำหรับการเข้าถึงอินเทอร์เน็ตอยู่ และใน GrapheneOS สามารถปฏิเสธการเข้าถึงอินเทอร์เน็ตกับแอปที่ประกาศสิทธิ์นี้ได้เลย

    • มีคำตอบที่น่าเชื่อถือว่าทำไม Android จึงไม่ให้แอปต้องขออนุญาตผู้ใช้สำหรับการเข้าถึงอินเทอร์เน็ต นี่คือคำตอบโดยตรงจากทีมพัฒนา Android แหล่งอ้างอิง ส่วนเรื่อง "ทำงานเบื้องหลัง" นั้น Android ใช้ระบบที่อิงกับ "intent" ทำให้แอปสามารถถูกปลุกขึ้นมาได้ทุกเมื่อ ดังนั้นตัวเลือกแบบง่าย ๆ อย่าง "ห้ามทำงานเบื้องหลัง" อาจไม่ทำงานตามที่ผู้ใช้คาดหวัง

  • ดูวิดีโอแล้วก็ยังรู้สึกว่าเข้าใจยากว่าโจมตีแบบนี้ทำงานอย่างไร สงสัยว่าหลังจากสลับแอปไปแล้วจะยังเข้าถึงพิกเซลของแอปยืนยันตัวตนได้อย่างไร

  • ในฐานะนักพัฒนาแอป ถ้าถามว่าจะปกป้องผู้ใช้อย่างไร แม้จะบอกกันว่ายังไม่มีวิธีรับมือที่เปิดเผยต่อสาธารณะ แต่ผมคิดว่ามีความพยายามพื้นฐานบางอย่างที่ทำได้ เช่น ไม่ตรึงตำแหน่งรหัสไว้กับที่บนหน้าจอ ซ่อนมันเมื่ออยู่เบื้องหลัง ทำให้รหัสเคลื่อนไหวตลอดเวลา เปลี่ยนสีและคอนทราสต์ แสดง static noise หรือทำให้รหัสกระพริบสั้น ๆ ทีละบางส่วนแทนที่จะแสดงครบทั้งหมด แน่นอนว่าวิธีเหล่านี้อาจกระทบ UX อยู่บ้าง แต่ในทางทฤษฎีก็น่าจะเพิ่มความยากให้ผู้โจมตีได้มาก เพียงแต่ก็มีข้อจำกัดหากมีข้อมูลลับที่ถูกแคชไว้ในรูปสกรีนช็อตอยู่แล้ว

    • จำได้ว่า Google Authenticator เคยเปลี่ยนให้ต้องแตะก่อนถึงจะแสดงรหัส TOTP ตอนนั้นผมคิดว่ามันไม่ได้ช่วยหยุดภัยคุกคามจริง ๆ และมีแต่ทำให้ใช้งานยากขึ้น หลายคนก็เห็นด้วย จนไม่นานฟีเจอร์นั้นก็ถูกย้อนกลับแบบเงียบ ๆ เลยสงสัยว่าอาจเป็นการป้องกันล่วงหน้าสำหรับช่องโหว่นี้หรือเปล่า

    • แนะนำเดโม unscreenshottable.vercel.app

  • สำหรับ TOTP มีการเน้นว่าถ้าการโจมตีนี้จะใช้งานได้จริง ตำแหน่งฟอนต์และพิกเซลต้องเป็นที่รู้แน่ชัด ตามบทความวิจัย การขโมยพื้นที่หน้าจอที่อ่อนไหวใช้เวลานาน และตัวอย่างเช่นรหัส 2FA จะรีเฟรชทุก 30 วินาทีโดยธรรมชาติอยู่แล้ว จึงมีข้อจำกัดด้านเวลาที่เข้มงวด หากผู้โจมตีดึงเลขทั้ง 6 หลักออกมาไม่ทันภายใน 30 วินาที ค่านั้นก็จะหายไป อย่างไรก็ตาม ถ้าฟอนต์เป็นสิ่งที่ผู้โจมตีรู้อยู่แล้ว ก็อาจแยกแยะได้จากการดึงพิกเซลเพียงไม่กี่จุด

    • แอปยืนยันตัวตนที่คนใช้กันอย่างแพร่หลายก็มีอยู่แค่ไม่กี่ตัว (Google, Microsoft Authenticator, Okta ฯลฯ) ดังนั้นจึงคิดว่าในทางปฏิบัตินี่ไม่ใช่อุปสรรคใหญ่
  • เป็นเทคนิคที่มีมานานแล้ว แต่มีประสิทธิภาพมากสำหรับการโจมตีแบบเจาะจงเป้าหมาย ถ้าสามารถทำให้ผู้ใช้ติดตั้งแอปบางตัวลงในโทรศัพท์ได้ ก็ไม่จำเป็นต้องซับซ้อนขนาดนี้ก็เข้าถึงข้อมูลที่ต้องการได้โดยตรงผ่านแอปอยู่แล้ว ตัวอย่างเช่น ถ้า Facebook แสดงประกาศความเป็นส่วนตัวว่า "แอปนี้จะจับภาพหน้าจอเป็นระยะ" ก็มีคนจำนวนมากอย่างน่าตกใจที่ยังยอมให้ทำอยู่ดี มีการบอกว่า source code ของ Pixnapping จะปล่อยที่ ที่นี่ เมื่อสามารถแพตช์ได้แล้ว แต่จริง ๆ แล้วการย้อนวิศวกรรมก็คงไม่ยากนัก พวกเขาอาจรอจนแพตช์เสร็จก็ได้ แต่ดูเหมือนนักวิจัยอยากให้ประเด็นนี้ได้รับความสนใจเร็วขึ้น

    • เดิมทีแพตช์สำหรับช่องโหว่นี้ถูกเผยแพร่ไปแล้วด้วยซ้ำ ข้อความใน คอมมิตที่เกี่ยวข้อง ก็ระบุไว้ชัดว่า "ป้องกันการขโมยพิกเซลด้วยการวัดเวลาการเบลอระหว่างหน้าต่าง" เหตุผลที่นักวิจัยยังไม่ปล่อยโค้ดคือพวกเขาพบว่ามีวิธีบายพาสแพตช์นี้ได้ นอกจากนี้ยังบอกอีกว่า "ไม่มี GPU vendor รายใดรับปากจะแพตช์ GPU.zip" และ "Google ก็ไม่มีแผนจะแพตช์ช่องโหว่บายพาสรายการแอป" ("ปิดเรื่องในสถานะ won't fix") เมื่อดูจากวันที่รายงานครั้งแรกคือ 24 กุมภาพันธ์ 2025 ก็ยากจะบอกว่านักวิจัยใจร้อนเกินไป และถึงจะมีการแจ้งเตือนว่า "แอปนี้กำลังจับภาพหน้าจอเป็นระยะ" หน้าจอที่ตั้งค่าไม่ให้จับภาพหน้าจอไว้อย่างชัดเจนก็ยังถ่ายไม่ได้หากไม่มี exploit แยกต่างหาก

    • วันที่รายงานกับ Google ครั้งแรกคือ 24 กุมภาพันธ์ 2025 ให้เวลากันมากพอแล้ว

  • ยอมรับว่านี่เป็นเทคนิคที่ฉลาดซึ่งใช้เวลาการเรนเดอร์เป็น side channel และแม้แต่กับ Google Authenticator เอง การเก็บพิกเซลทั้งหน้าก็ยังใช้เวลาพอสมควร กลับกัน ผมห่วงมากกว่าวิธีแบบนี้จะเอาไปใช้ขโมย OTP จากข้อความ SMS ได้มากแค่ไหน เดี๋ยวนี้อีเมลฟิชชิงที่รูปแบบตายตัวอย่างอีเมลแจ้งเตือนจาก GitHub ก็มีมากขึ้น จนผมหยุดคลิกลิงก์ในอีเมลไปแล้ว และตอนนี้ก็คิดว่าควรเลี่ยงการเปิดแอปผ่านคำแนะนำ intent ของแอปด้วย ทางที่ดีกว่าคือเปิดแอปเองโดยตรงเพื่อทำงาน และลบแอปที่ไม่จำเป็นทิ้งไป พื้นผิวการโจมตียังขยายได้ผ่าน SDK หรือ web page intent อีกด้วย ซึ่งผมคิดว่าคนมักมองข้ามกันมาก

  • ตอนเห็นชื่อครั้งแรกนึกว่าเป็นเกมบนเว็บเบราว์เซอร์ เลยกดเข้ามาดู

  • ผมไม่ใช่ผู้เชี่ยวชาญด้านความปลอดภัย แต่คิดว่าถ้าติดตั้งแอปบนเดสก์ท็อป Windows การโจมตีจะทำได้เร็วและแนบเนียนกว่า pixnapping บน Android มาก ถ้าใช้รหัสผ่านเดียวกันหลายเว็บไซต์ เว็บไซต์หนึ่งก็อาจขโมยรหัสผ่านไปล็อกอินอีกที่ได้เลย (ถ้าไม่มีชั้นความปลอดภัยอื่น) ในทางทฤษฎีแล้วความปลอดภัยอ่อนแอมาก แต่ในความเป็นจริงการโจมตีแบบนี้ก็ไม่ได้พบได้บ่อยหรือทำได้ง่ายนัก

    • บนเดสก์ท็อปไม่มีแซนด์บ็อกซ์ แต่บนมือถือมี ดังนั้นการหนีออกจากแซนด์บ็อกซ์ก็คือการเจาะระบบความปลอดภัยโดยตรง แถมบนเดสก์ท็อปเราก็ไม่ได้ติดตั้งแอปฟาสต์ฟู้ดทีละตัว ๆ แบบบนมือถือที่คนมักลงแอปกันสะเปะสะปะ
  • แจ้งลิงก์ไปยังการสนทนาก่อนหน้า

    • ในการสนทนาก่อนหน้า หลายคนตอบว่ามีแพตช์ออกมาแล้วจึงไม่ต้องกังวล แต่กรณีนี้บอกว่าแพตช์นั้นยังทำงานได้ไม่สมบูรณ์
  • คิดว่าอุปกรณ์สมัยใหม่ซับซ้อนเกินไปจนทำให้ความปลอดภัยสมบูรณ์เป็นไปไม่ได้ ฟีเจอร์ที่ไม่จำเป็นก็ถูกเพิ่มเข้ามาไม่รู้จบจนเกิดเรื่องแบบนี้ขึ้น เชื่อว่าในอนาคตจะมีความต้องการ OS ที่เน้นความปลอดภัยและมีเฉพาะฟังก์ชันขั้นต่ำแบบ FreeBSD มากขึ้นเรื่อย ๆ

    • อยากได้สภาพแวดล้อมที่สามารถ make world จากเทอร์มินัลได้แม้อยู่ระหว่างเดินทาง

    • มี Precursor ที่ Bunnie สร้างไว้ ซึ่งก็ดูน่าสนใจมาก แต่รู้สึกว่าแพงเกินไป ถ้าคิดว่าเครื่องคิดเลขราคา $100 ยังแพง Precursor ก็มีรูปทรงคล้ายกันและพลังประมวลผลพอ ๆ กัน แต่ราคา $1000 แถมยังเอาไปใช้สอบคณิตศาสตร์ไม่ได้ด้วย บล็อกทางการของ Precursor (ตอนนี้เข้าไม่ได้ แต่อาจกลับมาเปิดภายหลัง)

    • อ่านคอมเมนต์ใน hn มาหลายปีแล้ว ทำให้รู้สึกว่าความรู้และการปฏิบัติด้านความปลอดภัยถดถอยลงมาก และคิดว่าการแพร่หลายของ generative AI จะยิ่งทำให้แย่ลง ทุกวันนี้ยังมีคนพูดถึงโครงการ fsf phone พร้อมบ่นว่าการใช้แอป mobile banking ไม่สะดวก บางคนก็บ่นว่าการพิมพ์รหัสผ่านทุก 30 นาทีบนเดสก์ท็อปน่ารำคาญ หรือถามว่า "ต้องพกโทรศัพท์สองเครื่องเลยหรือ" สำหรับผม ถ้าโจรขโมยโทรศัพท์เห็นตอนคุณกดรหัสผ่าน เขาก็จะเปิดแอปธนาคาร แอปเงิน และพยายามดูดข้อมูลออกให้ได้มากที่สุดทันที เรื่องแบบนี้เกิดขึ้นทุกวันจริง ๆ ทางที่ดีคือไม่ควรติดตั้งแอปเหล่านี้ไว้ในโทรศัพท์เลย หรืออย่างน้อยไม่ควรปล่อยให้ล็อกอินค้างไว้ เช่นเดียวกับแอป 2FA มันเหมือนกับการถือกระเป๋าเดินทางแบรนด์หรูราคาแพงที่ประกาศตัวเองว่าเป็นเป้าหมาย ยิ่งถ้าคุณไม่ใช่ CEO หรือเป้าหมายระดับรัฐก็ยิ่งควรระวัง อุปกรณ์แบบ "OS ความปลอดภัยขั้นต่ำ" ก็ยังหนีปัญหาการถูกแย่งเครื่องจริง ๆ ไปไม่ได้อยู่ดี (มีคนเห็นตอนกดรหัสแล้วขโมยเครื่อง) แต่โทรศัพท์ที่ใช้ลงเกมกับแอปโฆษณาสำหรับใช้ในบาร์ ควรแยกขาดจากโทรศัพท์ที่ใช้ธนาคาร 2FA หรือเรื่องงานอย่างเด็ดขาด