"Fly high but don't fly alone"
พบช่องโหว่ใหญ่ในแอนดรอยด์ แฮคเกอร์แอบขโมย Username/Password ไปได้โดยเราไม่รู้ตัว
25 Aug 2014 18:13   [12608 views]

วันนี้อ่านเจอข่าวใน The Hacker News แล้วอึ้งตาโตกันไปเลยทีเดียว เมื่อนักวิจัยจาก University of California พับลิชเปเปอร์ Peeking into Your App without Actually Seeing It: UI State Inference and Novel Android Attacks เผยให้เห็นช่องโหว่รูใหญ่มากกกกกกกกกบนแอนดรอยด์ที่เปิดให้แฮคเกอร์สามารถขโมยข้อมูลจากเครื่องเราได้โดยที่เราไม่รู้ตัว แถมแอพฯที่ทำแบบนี้ได้ ไม่จำเป็นต้องขอ Permission อะไรแปลกๆ แค่ขอเข้าถึง INTERNET ธรรมดาๆก็ได้แล้ว (เพื่อส่งข้อมูลกลับไปยังแฮคเกอร์)

โดยข้อมูลสองอย่างที่เทคนิคนี้สามารถขโมยไปได้ก็คือ (1) Input ข้อมูลใดๆบนแอพฯ รวมถึง Username/Password (2) ภาพถ่ายที่เพิ่งถ่ายเสร็จใหม่ๆ

ปกติเกลียดการอ่าน Paper มาก แต่ Paper นี้อ่านแล้วหัวใจเต้นเลย

... ไม่เต้นก็ตายดิ ...

นั่นแหละๆ อ่านแล้วรู้สึกตื่นเต้นและตกใจหน่อยๆ เพราะมันก็เรื่องใหญ่พอดู

เนื่องจากเรื่องนี้ Geek ค่อนข้างมาก เรื่องทางด้าน Technical เพียบ แต่จะพยายามเขียนในภาษาคนให้เข้าใจง่ายมากที่สุดครับ เพราะมันก็เป็นเรื่องสำคัญต่อ User ด้วยเหมือนกันที่จะต้องรู้เรื่องนี้ไว้

Activity Hijacking

แอพฯแอนดรอยด์ที่เราใช้อยู่ทุกวันนี้นี้ ส่วนที่มี UI ให้เราสามารถมองเห็นและโต้ตอบได้ เราเรียกว่า Activity ทางผู้วิจัยได้ไปค้นพบวิธีในการตรวจจับการเปลี่ยนแปลงของ Activity ได้ผ่าน Activity Transition ทำให้รู้ได้ว่าตอนนี้ Activity ไหนถูกเรียกขึ้นมาแสดงอยู่

ตัวเลข % ของความแม่นยำในการดักจับ Activity ก็ถือว่าโหดมาก

จากนั้นผู้วิจัยจึงไปย้อนรอยดูการทำงานของแอพฯต่างๆ แล้วจดบันทึกว่ามี Activity อะไรบ้าง การเคลื่อนจาก Activity 1 ไปยัง Activity 2 (หรือภาษาคนคือการเปลี่ยนจากหน้าหนึ่งไปยังอีกหน้าหนึ่ง) เป็นการทำอะไร และ "เดา" ว่าตอนนั้น User กำลังจะทำอะไร เพื่อไปขโมยข้อมูลอะไรบางอย่างให้ถูกจังหวะนั่นเอง (When to attack)

ยกตัวอย่างเช่นการทำ UI Phishing เมื่อแอพฯกำลังจะเด้งหน้า LoginActivity ขึ้นมา นักวิจัยจะอาศัยจังหวะดีเลย์ระหว่าง Activity ดักจับ Event แล้วแอบแสดง Activity หลอกสำหรับ Phishing ขึ้นมาแทน LoginActivity ตัวจริง

โดย Activity ดังกล่าวจะทำให้หน้าตาเหมือนกับ Activity จริงของแอพฯแบบไม่ผิดเพี้ยน ทำให้ผู้ใช้ไม่มีทางรู้ว่าเป็นของปลอม คราวนี้ข้อมูลทุกอย่างที่พิมพ์ลงไป ก็จะถูกดักจับและส่งกลับไปยังแฮคเกอร์อย่างง่ายดาย ยกตัวอย่างการใช้งานให้ดูเลยกับแอพฯ H&R Block อันนี้ใช้ UI Phishing ลองดูว่าท่านดูออกมั้ยว่าเป็น Activity ปลอมเด้งขึ้นมา

ส่วนอันนี้เป็นแอพฯ NewEgg มีการ Phishing หน้า Shipping Info ดูออกมั้ยว่าเป็น Activity ปลอม ...

นี่ไม่ใช่ครั้งแรกที่มีการทำ UI Phishing เพียงแต่ก่อนหน้านี้ไม่ได้เนียนขนาดนี้ นี่ถือเป็นครั้งแรกที่มีการ Inject Phishing เข้าไประหว่างที่แอพฯนั้นๆถูกเรียกใช้งานอยู่ เรียกว่าเนียนจนเราดูไม่ออกเลย

เพื่อเพิ่มความเนียน หลังจากดักจับข้อมูลเสร็จแล้วก็ขึ้น Dialog ว่า "Server Error" ซะ แล้วก็ดักจับข้อมูลกันได้ต่อไป !

เรียกว่าเป็นช่องโหว่ที่โหดมาก ดูจาก Permission ก็ดูไม่ออกเลยว่าจะขโมยข้อมูลได้ถึงเพียงนี้ เท่าที่อ่าน Paper ดู เหมือนช่องโหว่นี้จะปิดได้ด้วยการปิด Transition ทิ้งซะ แล้วมันจะดักจับ Activity Transition ไม่ได้

เทคนิคที่ทางผู้วิจัยใช้เป็นการไปดักจับการเปลี่ยนแปลงของ Shared Memory ที่ไว้จัดการ Window Manager ซึ่งตรงนี้ถูกนำมาใช้บน OS อันใหม่หลายตัวมาก ไม่ว่าจะเป็น Mac OS X, iOS, Windows ทำให้ผู้วิจัยเชื่อว่า ช่องโหว่นี้จะสามารถนำไปใช้ได้กับทุก Platform อีกด้วย (แต่เนยไม่เชื่อ iOS กับ Windows Phone จะไปใช้ท่าไหนได้ว้าาา)

Camera Peeking

นอกจาก Activity Hijacking แล้ว เปเปอร์นี้ยังพูดถึงอีกเทคนิคหนึ่งที่เอาไว้ขโมยภาพที่เพิ่งถ่ายสดๆจากกล้อง มาดูเดโมกันก่อนเลย

ถามว่าทำได้ยังไง? ต้องบอกว่าเทคนิคนี้ดูโง่ๆยังไงไม่รู้ แต่กลับให้ผลฉลาดอย่างบอกไม่ถูก

เป็นการต่อยอดการดักจับ Activity Transition เช่นเดียวกัน โดยจะเรียนรู้ว่าถ้า Activity นี้ๆเด้งขึ้นมาแล้ว แปลว่าเค้ากำลังจะถ่ายรูปนะ (ยกตัวอย่างเช่นแอพฯด้านบนกำลังจะถ่ายรูปบิล)

คราวนี้แอพฯ Attacker ที่รันอยู่ด้านหลังก็ยิงคำสั่งเปิดกล้องรัวๆเลย ซึ่งมันจะใช้งานไม่ได้เพราะแอพฯถ่ายรูปจองเอากล้องไปใช้แล้ว (ปกติกล้องจะถูกใช้ได้ 1 แอพฯต่อ 1 ช่วงเวลาเท่านั้น) แต่พอถ่ายภาพเสร็จ แอพฯก็จะคืนกล้องให้ระบบ คราวนี้แอพฯ Attacker ก็จะได้กล้องไปครอบครอง แล้ว Attacker ก็จะดึงภาพจากกล้องล่าสุดมาเก็บไว้ทันที ด้วยสมมติฐานว่าผู้ใช้น่าจะยังเล็งไปยังที่เดิมอยู่ (ก็คือไม่ใช่ภาพเดียวกับที่แอพฯนั้นๆถ่ายได้ แต่เป็นภาพที่ถ่ายใหม่โดยแอพฯ Attacker ในเปเปอร์บอกว่าจะใช้เวลาประมาณ 500-1000 ms ซึ่งเป็นระยะเวลาที่คนส่วนใหญ่จะยังเล็งไปที่เดิมอยู่)

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

ความอันตรายคือคราวนี้ภาพถ่ายส่วนตัวหรือภาพข้อมูลสำคัญ (เช่นถ่ายเช็ค) ก็จะถูกดึงไปให้แฮคเกอร์ทันที

ผลจึงเป็นอย่างวีดีโอด้านบน


สรุป UI State Inference Attack เป็นช่องโหว่ที่เห็นแล้วทำเอาบรื๋ออออเลยทีเดียว เพราะจากนี้ไป จะลงแอพฯแต่ละตัว ดูแค่ Permission ไม่พอแล้ว ต้องดูด้วยว่าผู้พัฒนาเป็นใคร เพราะแอพฯไม่ได้ขอ Permission อะไรแปลกๆเลย แต่กลับเอาข้อมูลสำคัญสุดอย่าง Username/Password ไปได้ง่ายๆเลย อันตรายมาก ...


Reference: UI State Inference Attack

บทความที่เกี่ยวข้อง

Oct 12, 2014, 14:04
20107 views
[โหมด Geek] RecyclerView สิ่งใหม่ที่กูเกิ้ลหวังว่าจะทำให้แอพฯแอนดรอยด์ดีขึ้น
Aug 26, 2014, 01:41
11180 views
ถึงยุค App Bubble อย่างเป็นทางการ? ผู้ใช้ US 2 ใน 3 ไม่โหลดแอพฯเพิ่มแล้ว (แต่การใช้งานกลับเพิ่มขึ้น)
0 Comment(s)
Loading