Clear
Lead Graphic Papers

รู้ทันและป้องกัน Malware ในระบบปฏิบัติการ Android ตอนที่ 2

ผู้เขียน: เสฏฐวุฒิ แสนนาม
วันที่เผยแพร่: 17 ส.ค. 2555
ปรับปรุงล่าสุดวันที่: 17 ส.ค. 2555

Share on Facebook Share on Twitter Share on Google+

จากบทความ รู้ทันและป้องกัน Malware ในระบบปฏิบัติการ Android ผู้เขียนได้กล่าวถึงภัยคุกคามจาก Malware ในระบบปฏิบัติการ Android พร้อมทั้งแนะนำวิธีการตรวจสอบ Permission หรือสิทธิการทำงานของโปรแกรม และแนะนำวิธีการป้องกัน Malware ในเบื้องต้นไปแล้ว ในบทความตอนที่ 2 นี้จะกล่าวถึงช่องโหว่หรือวิธีการใหม่ๆ ที่ผู้สร้าง Malware นำมาใช้ในการโจมตี พร้อมทั้งเสนอแนวทางการป้องกันที่อาจช่วยได้

สถิติที่น่าสนใจเกี่ยวกับ Malware ในระบบปฏิบัติการ Android

จากข้อมูลใน Mobile Threat Report Q2 2012 ของ F-Secure [1] พบว่า Malware กว่า 64% มาจากศูนย์ซอฟต์แวร์ของผู้พัฒนาภายนอก (Third-party Android market) โดยประเภทของ Malware ที่พบมากที่สุดคือ Trojan ซึ่งคิดเป็น 81% ของจำนวน Malware ทั้งหมดที่พบในเดือนเมษายน - มิถุนายน 2555 ดังรูปที่ 1 สถิติดังกล่าวแสดงให้เห็นว่า วิธีการแพร่กระจายของ Malware โดยส่วนใหญ่นั้นจะเป็นการหลอกลวงให้ผู้ใช้เป็นผู้ติดตั้งโปรแกรมอันตรายเข้าไปเอง

Pp2012te0011-1.jpg
รูปที่ 1 ประเภทของ Malware ที่พบในระบบปฏิบัติการ Android (ที่มา F-Secure)

และจากข้อมูลของ Kaspersky พบว่า จำนวน Malware ในระบบปฏิบัติการ Android ในเดือนเมษายน - มิถุนายน 2555 เพิ่มขึ้นเกือบ 3 เท่าของจำนวน Malware ในเดือนมกราคม - มีนาคม 2555 ดังรูปที่ 2 [2]

Pp2012te0011-2.jpg
รูปที่ 2 สถิติการเพิ่มขึ้นของจำนวน Malware ในระบบปฏิบัติการ Android (ที่มา Net-Security)

ทางฝั่ง Android Market ที่ตอนนี้เปลี่ยนชื่อเป็น Google Play Store ถึงแม้ว่าทาง Google จะพัฒนาระบบ Bouncer ขึ้นมาเพื่อใช้ในการตรวจสอบความมั่นคงปลอดภัยของแอปพลิเคชันที่นักพัฒนาส่งเข้ามา ก่อนจะปล่อยให้ผู้ใช้ดาวน์โหลดจากศูนย์ซอฟต์แวร์แล้วก็ตาม [3] แต่นักวิจัยก็ยังค้นพบช่องโหว่ของระบบดังกล่าว และได้ทดลองส่งแอปพลิเคชันที่มีโค้ดของ Malware เข้ามาใน Play Store แล้วพบว่าแอปพลิเคชันดังกล่าวสามารถผ่านเข้าสู่ Play Store ได้โดยไม่มีการแจ้งเตือนเรื่องความมั่นคงปลอดภัยแต่อย่างใด [4] ตัวอย่างการข้ามผ่านระบบ Bouncer ที่นักวิจัยใช้ เช่น การแบ่งส่วนโค้ดของ Malware ใส่ในแอปพลิเคชันที่อยู่ใน Play Store แล้วเก็บส่วนที่เหลือไว้ในเซิร์ฟเวอร์ภายนอก เมื่อผู้ใช้ติดตั้งแอปพลิเคชันดังกล่าวและเปิดใช้งาน แอปพลิเคชันนั้นก็จะไปดาวน์โหลดโค้ดส่วนที่เหลือมาจากเซิร์ฟเวอร์แล้วเริ่มทำงานตามคำสั่งอันตรายที่ถูกใส่ไว้ [5] ดังนั้น ถึงแม้ผู้ใช้จะดาวน์โหลดแอปพลิเคชันจาก Play Store ที่น่าจะเป็นศูนย์ซอฟต์แวร์ที่มีความน่าเชื่อถือที่สุดแล้วก็ถาม แต่ก็ยังไม่อาจมั่นใจว่าจะปลอดภัยจาก Malware ได้

ภัยคุกคามจาก Malware ในระบบปฏิบัติการ Android

Malware ในระบบปฏิบัติการ Android ได้ถูกพัฒนาไปมาก ข้อมูลด้านล่างนี้คือตัวอย่างวิธีการโจมตีแบบใหม่ที่ถูกค้นพบ

Man-in-the-Mobile

Man-in-the-Mobile (MitMo) เป็น 1 ในวิธีการโจมตีแบบ Man-in-the-Middle ซึ่งเป็นวิธีการที่ผู้ไม่หวังดีเข้ามาแทรกกลางในระหว่างการสนทนาเพื่อดักรับข้อมูลโดยไม่ให้ผู้ที่สนทนาอยู่รู้ตัว ซึ่งผู้ที่ดักรับข้อมูลได้นอกจากจะสามารถทราบข้อมูลทุกอย่างที่สนทนากันได้แล้ว ยังอาจแก้ไขหรือปลอมแปลงข้อมูลที่รับส่งได้ด้วย เมื่อการโจมตีดังกล่าวมาอยู่ในอุปกรณ์พกพาจึงถูกเรียกว่า Man-in-the-Mobile

ตัวอย่าง Malware ที่โจมตีด้วยวิธีนี้ เช่น SPITMO (SpyEye in the mobile) ซึ่งจะหลอกให้ผู้ใช้ดาวน์โหลดแอปพลิเคชันมาติดตั้ง โดยภายในมีคำสั่งไม่พึ่งประสงค์ที่จะดัก OTP (One-time password) ซึ่งเป็นรหัสผ่านชั่วคราวที่ทางธนาคารจะส่ง SMS มาให้กับลูกค้าเพื่อใช้ในการเข้าสู่ระบบ ตัว Malware จะดักและส่งต่อ SMS ดังกล่าวไปให้กับผู้สร้าง Malware เพื่อสวมรอยเข้าสู่ระบบของธนาคารแทนผู้ใช้ตัวจริง [6]

Clickjacking

Clickjacking โดยปกติจะหมายถึงเว็บไซต์ที่ดูเหมือนเป็นเว็บไซต์ธรรมดาทั่วไป แต่หน้าเว็บนั้นถูกซ้อนทับโดยเนื้อหาที่มองไม่เห็น (Transparent Layer) โดยผู้ไม่หวังดีจะวางตำแหน่งของปุ่มหรือลิงก์ที่มีคำสั่งอันตรายไว้ซ้อนทับกับปุ่มหรือลิงก์ปกติ ทำให้เมื่อผู้ใช้คลิกที่ลิงก์ดังกล่าว ก็จะเป็นการสั่งให้คำสั่งอันตรายนั้นทำงานโดยไม่ได้ตั้งใจ [7]

ในระบบปฏิบัติการ Android นักวิจัยได้ทดลองสร้าง Malware ที่แสดงผล Transparent Layer ซ้อนทับไอคอนของแอปพลิเคชัน Browser ที่มากับระบบปฏิบัติการ โดยให้ไปเรียกแอปพลิเคชันอื่น เช่น แอปพลิเคชันที่บันทึกข้อมูลการใช้งานของผู้ใช้แล้วแอบส่งข้อมูลดังกล่าวไปให้ผู้ไม่หวังดี เป็นต้น ตัวอย่างการโจมตีด้วยวิธีดังกล่าวสามารถดูได้จาก http://youtu.be/RxpMPrqnxC0 [8]

Antivirus ปลอม

จากปัญหาการแพร่ระบาดของ Malware ในระบบปฏิบัติการ Android จึงมีผู้พัฒนาซอฟต์แวร์ Antivirus ขึ้นมาเพื่อตรวจจับและกำจัด Malware ออกจากระบบ ผู้ไม่หวังดีอาศัยช่องทางนี้ในการโจมตีแบบ Social Engineering โดยการสร้างแอปพลิเคชัน Antivirus ปลอมขึ้นมาแล้วหลอกให้ผู้ใช้ดาวน์โหลดไปติดตั้ง [9] ตัวอย่างแอปพลิเคชัน Antivirus ปลอม เป็นดังรูปที่ 3 อย่างไรก็ตาม แหล่งที่มาของซอฟต์แวร์ Antivirus ปลอมโดยส่วนใหญ่นั้นจะมาจากศูนย์ซอฟต์แวร์ภายนอก ยังไม่มีรายงานว่ามีแอปพลิเคชัน Antivirus ปลอมใน Play Store

Pp2012te0011-3.jpg
รูปที่ 3 ตัวอย่างแอปพลิเคชัน Antivirus ปลอม (ที่มา nakedsecurity)

Root bypass

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

การ root อุปกรณ์ที่ใช้งานระบบปฏิบัติการ Android นั้นจะมีขั้นตอนวิธีในการทำแตกต่างกันไป แต่โดยหลักแล้ว จะเป็นการนำไฟล์ไบนารีของคำสั่ง su (Super User) ไปไว้ในไดเรกทอรีที่เก็บคำสั่งของระบบ แล้วกำหนดสิทธิให้ไฟล์ su สามารถประมวลผลได้ จากนั้นติดตั้งแอปพลิเคชัน เช่น Superuser หรือ SuperSU ลงในระบบ เพื่อตรวจสอบสิทธิและกำหนดการอนุญาตให้โปรแกรมอื่นๆ สามารถประมวลผลผ่านคำสั่ง su โดยเมื่อติดตั้งโปรแกรมดังกล่าวลงในระบบ แล้วมีการเรียกใช้โปรแกรมที่ต้องการสิทธิของ root จะปรากฎหน้าต่างขึ้นมาเพื่อให้ผู้ใช้กดยืนยันการอนุญาตก่อน ดังรูปที่ 4 [10]

Pp2012te0011-4.jpg
รูปที่ 4 การขออนุญาตรันโปรแกรมโดยใช้สิทธิของ root (ที่มา Superuser)

ในระบบปฏิบัติการ Android เวอร์ชัน 3.0 และเวอร์ชัน 2.3.3 หรือเก่ากว่า จะมีช่องโหว่ CVE-2011-1823 ซึ่งช่องโหว่ดังกล่าวทำให้แอปพลิเคชันใดๆ ก็ตามสามารถประมวลผลคำสั่งอันตรายโดยใช้สิทธิของ root ได้ ช่องโหว่ดังกล่าวนี้ถูกเรียกในชื่อ Gingerbreak [11] Malware ตัวแรกที่โจมตีผ่านช่องโหว่ดังกล่าว คือ Gingermaster ซึ่งจะลักลอบเปิด Service ลับในเครื่องของผู้ใช้และส่งข้อมูลส่วนตัวออกไปให้กับผู้สร้าง Malware [12] Gingermaster สามารถทำงานภายใต้สิทธิของ root ได้โดยไม่ปรากฎหน้าต่างยืนยันการอนุญาต และเนื่องจากเป็นการโจมตีผ่านช่องโหว่ของระบบปฏิบัติการเอง ดังนั้นต่อให้ผู้ใช้ไม่ได้ root เครื่อง ก็จะถูกโจมตีได้เหมือนกับเครื่องที่ถูก root แล้วเช่นกัน

Drive-by-Download

โดยปกติแล้วแอปพลิเคชันในระบบปฏิบัติการ Android จะรันในโหมด Sandbox ซึ่งจะเป็นการทำงานแยกส่วนออกมาจากการทำงานของระบบปฏิบัติการตามปกติ เพื่อป้องกันไม่ให้แอปพลิเคชันใดๆ สามารถเข้าถึงหรือแก้ไขข้อมูลของแอปพลิเคชันอื่นได้ ในระบบปฏิบัติการ Android เวอร์ชัน 3.1 และเวอร์ชัน 2.3.4 หรือเก่ากว่า มีช่องโหว่ CVE-2011-2357 [13] ซึ่งเป็นข้อผิดพลาดในการโหลด URL ของแอปพลิเคชัน Browser โดยช่องโหว่ดังกล่าวนี้อนุญาตให้แอปพลิเคชันใดๆ สามารถข้ามผ่านระบบ Sandbox ของ Browser และส่ง JavaScript เข้ามาประมวลผลคำสั่งอันตรายได้ ตัวอย่างการโจมตีเป็นดังรูปที่ 5

Pp2012te0011-5.jpg
รูปที่ 5 ตัวอย่างการโจมตี Drive-by-Download ในระบบปฏิบัติการ Android (ที่มา IBMAppSecGrp)

NFC

NFC หรือ Near field communication เป็นเทคโนโลยีการสื่อสารไร้สายระยะสั้น โดยมีระยะการใช้งานประมาณ 10 ซ.ม. นิยมใช้ในการชำระเงินโดยการแตะอุปกรณ์เข้ากับเครื่องรับชำระเงิน หรือแลกเปลี่ยนข้อมูลกับอุปกรณ์ที่อยู่ในระยะใกล้เคียงกัน [14] ในระบบปฏิบัติการ Android ตั้งแต่เวอร์ชัน 4.0 ขึ้นไป มีความสามารถชื่อ Android Beam ซึ่งใช้ความสามารถ NFC ในการส่งไฟล์ระหว่างอุปกรณ์ Android ด้วยกันได้ [15]

นักวิจัยค้นพบว่าสามารถโจมตีอุปกรณ์ที่ใช้งานระบบปฏิบัติการ Android ผ่านทาง NFC ได้ โดยการโจมตีดังกล่าวนี้ไม่ได้ใช้ช่องโหว่ของโพรโทคอล NFC แต่เป็นการโจมตีผ่านช่องโหว่ของ Browser (ดังที่อธิบายไปในหัวข้อก่อนหน้านี้) เนื่องจากหากนำอุปกรณ์ที่มีความสามารถ NFC ไปแตะเข้ากับ NFC Tag ที่มี URL ของเว็บไซต์อันตรายอยู่ ตัวระบบปฏิบัติการจะเปิด Browser ไปที่ URL นั้นโดยอัตโนมัติ ซึ่งอาจเป็นการดาวน์โหลด Malware หรืออาจเป็นการสั่งประมวลผลคำสั่งอันตรายผ่าน Browser ได้ ช่องโหว่ดังกล่าวนี้ถูกแก้ไขแล้วใน Android 4.0.2 โดยหากพบ NFC Tag ที่เป็น URL ระบบปฏิบัติการจะแสดงหน้าต่างเพื่อให้ผู้ใช้ยืนยันการเปิดเว็บไซต์ก่อนเสมอ [16]

A-GPS

ในการระบุตำแหน่งที่อยู่ โทรศัพท์มือถือ Smartphone โดยทั่วไปจะไม่ได้ใช้แค่ข้อมูลจาก GPS เพียงอย่างเดียว เนื่องจากการจับตำแหน่งจากดาวเทียมนั้นต้องใช้สัญญาณจากดาวเทียมอย่างน้อย 4 ดวง และต้องการการประมวลผลที่ค่อนข้างซับซ้อน ถ้าต้องการให้ได้ตำแหน่งที่แม่นยำจริงๆ นั้นอาจต้องใช้เวลาในการคำนวณถึง 12 นาที ดังนั้นจึงมีการใช้ข้อมูลจาก Wi-Fi หรือ Cellular Network จากผู้ให้บริการโทรศัพท์มือถือมาช่วยในการคำนวณตำแหน่งด้วย ซึ่งวิธีการดังกล่าวนี้เรียกว่า Assisted GPS หรือ A-GPS [17] ในระบบปฏิบัติการ Android ผู้ใช้สามารถเลือกวิธีการระบุตำแหน่งได้ในเมนู Location service โดยการเปิดใช้งาน A-GPS จะอยู่ที่ส่วน Google’s location service และการเปิดใช้งาน GPS จากดาวเทียมจะอยู่ที่ส่วน GPS satelites ดังรูปที่ 6

Pp2012te0011-6.png
รูปที่ 6 การตั้งค่า Location Service

นักวิจัยได้ค้นพบว่าข้อมูลที่แลกเปลี่ยนกันระหว่างโทรศัพท์มือถือกับระบบเครือข่ายนั้นไม่ได้ส่งผ่านช่องทางที่มั่นคงปลอดภัย ทำให้ผู้ไม่หวังดีสามารถส่งข้อมูล A-GPS ปลอม หรือข้อมูลอื่นๆ ที่อาจใช้ในการโจมตีได้ และการคำนวณพิกัดตำแหน่งนั้นไม่ได้ทำบนชิป GPS แต่ถูกคำนวณบน CPU ของตัวอุปกรณ์โดยตรง เนื่องจากมีความเร็วในการทำงานที่มากกว่า ดังนั้นผู้โจมตีจึงสามารถส่งคำสั่งอันตรายเข้าไปประมวลผลได้ โดยนักวิจัยได้ทดลองสร้าง Wi-Fi Network ที่ส่งข้อมูลไปกับ A-GPS ให้เปลี่ยนแปลงการตั้งค่าของอุปกรณ์ โดยตั้งค่าให้ทุกครั้งที่อุปกรณ์นั้นเชื่อมต่อ A-GPS ต้องส่งข้อมูลพิกัดตำแหน่งมาให้กับ Wi-Fi Network นี้ด้วย ทำให้นักวิจัยสามารถติดตามตำแหน่งของคนที่เคยเชื่อมต่อกับ Wi-Fi Network นี้ได้ [18]

การตรวจสอบและป้องกัน

การตรวจสอบช่องโหว่ในระบบปฏิบัติการ Android ที่ใช้อยู่ สามารถใช้โปรแกรมที่ทำขึ้นมาเพื่อตรวจสอบช่องโหว่โดยเฉพาะได้ เช่น โปรแกรม X-Ray for Android ดังรูปที่ 7 โปรแกรมดังกล่าวนี้ถูกพัฒนาขึ้นโดยบริษัท Duo Security ซึ่งเป็นบริษัทที่พัฒนาซอฟต์แวร์ด้าน Two-Factor Authentication ผู้ใช้สามารถตรวจสอบข้อมูลเพิ่มเติมและดาวน์โหลดโปรแกรมดังกล่าวได้จากเว็บ ไซต์ http://www.xray.io/

Pp2012te0011-7.png
รูปที่ 7 โปรแกรม X-Ray for Android (ที่มา X-Ray)

จากข้อมูลที่นำเสนอไปข้างต้น จะเห็นได้ว่า การป้องกัน Malware โดยดูแค่ Permission ตอนติดตั้งแอปพลิเคชันนั้นคงจะไม่เพียงพอ เพราะผู้โจมตีต่างก็สรรหาวิธีการใหม่ๆ มาใช้อยู่เรื่อยๆ และการโจมตีบางอย่างก็เกิดขึ้นได้โดยที่ผู้ใช้แทบไม่รู้ตัวเลยด้วยซ้ำ ดังนั้น การป้องกันตัวที่ดีที่สุดควรเป็นการระวังในการใช้งานของตัวผู้ใช้เอง โดยเฉพาะการอัพเดตแอปพลิเคชันและระบบปฏิบัติการให้เป็นเวอร์ชันล่าสุด และหมั่นติดตามข้อมูลข่าวสารเรื่องความมั่นคงปลอดภัยอยู่เสมอ

อ้างอิง

  1. http://www.f-secure.com/weblog/archives/MobileThreatReport_Q2_2012.pdf
  2. http://www.net-security.org/malware_news.php?id=2225
  3. http://googlemobile.blogspot.com/2012/02/android-and-security.html
  4. http://www.theregister.co.uk/2012/06/04/breaking_google_bouncer/
  5. http://www.symantec.com/connect/blogs/android-threat-trend-shows-criminals-are-thinking-outside-box
  6. http://www.net-security.org/malware_news.php?id=2183
  7. https://www.owasp.org/index.php/Clickjacking
  8. http://thehackernews.com/2012/07/android-clickjacking-rootkit.html
  9. http://nakedsecurity.sophos.com/2012/05/16/fake-anti-virus-disguises-used-by-android-malware/
  10. http://droidlessons.com/what-is-rooting-on-android-the-advantages-and-disadvantages/
  11. http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011-1823
  12. http://nakedsecurity.sophos.com/2011/08/22/first-malware-using-android-gingerbreak-exploit/
  13. http://blog.watchfire.com/files/advisory-android-browser.pdf
  14. http://java.sun.com/developer/technicalArticles/javame/nfc/
  15. http://electronics.howstuffworks.com/android-beam.htm
  16. http://hexus.net/mobile/news/android/42933-android-nfc-walk-by-vulnerabilities-demonstrated/
  17. http://tech1.in.com/features/all/what-is-agps-how-does-it-work/115142
  18. http://www.technologyreview.com/news/428632/gps-weakness-could-enable-mass-smartphone-hacking/

Clear