เมื่อวันอาทิตย์ที่ผ่านมา ได้มีโอกาสไปแบ่งปัน เรื่องของ Android Security ซึ่งก็ได้พูดในมุมของความปลอดภัยใน Android กับเครื่องที่ Root แล้ว
วันนี้เลยมาเขียน Blog ส่วนของเนื้อหาที่ได้พูดในงานให้อ่านกัน เผื่อว่าใครพลาดโอกาสไม่ได้ไปร่วมงาน จะได้รู้ด้วย
ก่อนงาน DroidSans Meeting ประมาณ 2-3 สัปดาห์ ผมได้รับการติดต่อจาก Octopatr หนึ่งใน Mod เว็บไซด์ DroidSans ให้ไปพูดในงานในหัวข้อ Android Security ร่วมกับ Akexorcist สั้น ๆ ก็เลยตอบรับไป และได้แบ่งเนื้อหากัน โดยเอกจะพูดในมุมของเครื่องที่ไม่ได้ Root ส่วนผมจะพูดในมุมของเครื่องที่ Root
ด้านบนเป็น Slide ที่ใช้ในงาน แต่ Slide Share แสดงผลเพี้ยนไปหน่อย สามารถไปดูต้นฉบับได้ที่ Google Slide ผมแชร์ไว้ที่นี่แล้วครับ http://bit.ly/AndroidSecurity-RootedDevice
เนื้อหาจะเริ่มต้นที่ Slide ที่ 4 โดยจะพูดถึง App Superuser หรือ SuperSU ซึ่งหน้าที่ของ App เหล่านี้ จะเป็นผู้ช่วยของเรา คอยแจ้งให้เราทราบเมื่อมี App ไหนขอสิทธิ์ Root และให้เรากำหนดสิทธิ์ได้ว่า จะไม่ให้สิทธิ์, ให้สิทธิ์เป็นครั้งคราว หรือให้สิทธิ์ตลอดไป ตรงนี้ผมได้แนะนำว่า ควรจะตระหนักถึงการให้สิทธิ์กับ App ที่ขอสิทธิ์ Root ไม่ใช่ App ไหนขอก็ให้หมด และไม่ควรให้สิทธิ์ตลอดไป แต่ควรจะถามทุกครั้งที่จะขอสิทธิ์ Root
Slide ที่ 5 จะพูดถึงระบบปฏิบัติการ Linux ซึ่ง Android ก็มาจาก Linux เช่นกัน โดยใน Linux จะมีคำสั่ง su เพื่อเปลี่ยนไปใช้ User root โดยจะต้องใส่ Password แล้วจะสามารถเข้าถึงส่วนต่าง ๆ ใน Linux ได้
แต่ใน Android นั้น ไม่มี su การ Root ก็คือการยัด su ลงไปใน Android ให้ได้ เพียงแต่ su บน Android จะไม่มี Password แต่จะไปถามจาก App Superuser/SuperSU ว่าจะให้สิทธิ์มั๊ย…
ถ้าไม่มี su มีแต่ App Superuser/SuperSU ก็ไม่ได้หมายความว่าเครื่องนั้น Root เรียบร้อย เพราะ App เหล่านี้ สามารถโหลดได้จาก Play Store
Slide ที่ 6 Root ด้วยวิธีไหน…!? จะพูดถึงวิธีการ Root โดยทั่วไปที่มีอยู่ โดยจัดกลุ่มแล้ว จะได้เป็น
- Toolkit – คือเครื่องมือที่มีนักพัฒนาทำขึ้น เพื่อให้ผู้ใช้งานที่ไม่ค่อยมีความรู้จัก สามารถใช้งานได้ เพียงแค่เปิดโปรแกรม และเชื่อมต่อมือถือเข้าคอมพ์ แล้วคลิกเพียงไม่กี่คลิก ก็เรียบร้อย ตัวอย่างเช่น Root Toolkit, Root Script, Flash Tool (ผมเองก็เคยพัฒนาแจกอยู่ 2 ตัว ในชื่อ Nexus root script และ Nokia X Toolkit)
- Insecure Boot – คือเครื่องมือที่ทำขึ้นมาเสมือนเป็น OS พิเศษ เพื่อโยนเข้าไป Boot ในมือถือ แล้วทำการยัด su และ App Superuser/SuperSU ลงเครื่องให้ ตัวอย่างเช่น CF-Auto-Root
- Flash Zip ด้วย Custom Recovery – วิธีนี้ ผู้ที่ชอบลง Custom ROM หรือชอบดัดแปลง Android จะคุ้นเคย ใน Zip ที่นำมา Flash นั้น จะมีไฟล์ su และ App Superuser/SuperSU อยู่ รวมถึง Script ที่จะติดตั้งไฟล์เหล่านี้ลงไปในเครื่อง โดย Zip เหล่านี้ จะต้องแฟลชผ่าน Custom Recovery เช่น CWM หรือ TWRP
- etc. – วิธีการอื่น ๆ เช่นเดี๋ยวนี้ บางรุ่นบางยี่ห้อ สามารถลง App แล้วจิ้มใน App ก็เสร็จเลย
คำถามที่ถามผู้ฟังออกไปคือ… รู้ได้ไงว่า วิธีต่าง ๆ นั้น ปลอดภัย!! แน่นอนว่าไม่มีใครกล้าตอบได้อย่างมั่นใจว่าปลอดภัย
แล้วจะรู้ได้อย่างไรว่า ตัวไหนปลอดภัย… จริง ๆ ไม่มีใครตอบได้หรอก ถ้าไม่สามารถแงะดูได้ บังเอิญผมเคยแงะมาหมดแล้ว จึงบอกได้ว่า ทุกตัว พอเชื่อถือได้ในอดีต แต่ตอนนี้ไม่รู้ เพราะเดี๋ยวนี้ไม่ว่างแงะ >_<
สรุปได้ว่า… อยู่ที่ “ความน่าเชื่อถือของนักพัฒนา”
Slide ที่ 7 Root เพื่ออะไร…!? ซึ่งก็ได้ถามจากผู้ฟัง ก็มีทั้ง ลง Custom ROM (ซึ่งจริง ๆ แค่ Unlock Bootloader ก็ลงได้แล้ว), Block Ad (เห็นใจนักพัฒนาบ้างเถอะคร๊าบบบ ), ลง Xposed เพื่อแต่งหน้าจอ, ปรับ Speed CPU, ใช้ Titanium Backup และอื่น ๆ ซึ่งก็สรุปเป็นหัวข้อได้ประมาณนี้
- โกงเกม/โกงแอพ
- ดัดแปลงระบบ
- Overclock/Underclock CPU
- Backup App+Data
- etc.
Slide ที่ 8 Root แล้วไม่ปลอดภัยอย่างไร ซึ่งจะพูดในมุมของช่องทางที่สามารถใช้สิทธิ์ Root ว่าทำอะไรกับเครื่องเราได้บ้าง
- เข้าถึงไฟล์ระบบ (แก้ไข/ลบไฟล์ได้) – แน่นอนว่า เมื่อได้สิทธิ์ Root แล้วนั้น การแก้ไขดัดแปลง เพิ่ม ลบไฟล์ หรือเปลี่ยนสิทธิ์ของไฟล์ สามารถทำได้ทั้งหมด
- ติดตั้ง/ถอด App ได้โดยไม่มีการแจ้งเตือน – โดยปกติถ้าเราลง App จากนอก Store จะมีการแจ้งให้ทราบก่อนเสมอ และเราต้องเป็นคนกดยืนยันเอง รวมถึงการลบ App ออกก็เช่นกัน แต่ถ้า Root แล้ว สามารถทำได้ทั้งหมดโดยเราไม่รู้ตัว
- เข้าถึงข้อมูลของ App และการตั้งค่าต่าง ๆ ได้ – เมื่อเข้าถึงข้อมูลเหล่านี้ได้ ก็มีโอกาสที่จะถูกขโมยข้อมูล รวมถึงการแก้ไขข้อมูลได้ด้วย
- เข้าถึง Partition ต่าง ๆ ได้ทั้งหมด – ใน Android ก็มี Partition ต่าง ๆ เหมือน OS อื่น ๆ นั่นแหล่ะ และเมื่อมันเข้าถึงได้ มันก็ไปแก้ไข ไปลบได้หมดเลย
Slide ที่ 9 ความเสี่ยงจาก App ที่ขอสิทธิ์ Root – ต่อเนื่องจาก Slide ที่แล้ว เมื่อเรารู้ว่า Root แล้วทำอะไรได้ App ที่ขอสิทธิ์ Root ก็สามารถทำอะไรเหล่านั้นได้ทั้งหมด เช่น
- ติดตั้ง Malware/Trojan – ยกตัวอย่าง App เถื่อน ๆ บางตัว อาจขอสิทธิ์ Root เพื่อโกงเกมให้เราได้ แต่นอกจากจะโกงให้แล้ว แถม Malware/Trojan ให้ด้วย คอยขโมยข้อมูลของเราไป
- ถอด App แท้ แล้วแทนที่ด้วย App ปลอม – ก็ในเมื่อถอด App ลง App ได้โดยผู้ใช้งานไม่รู้ ก็มีความเป็นไปได้ที่จะแอบถอด App ทางการเงินหรือโซเชียลต่าง ๆ แล้วเสียบแทนด้วย App ปลอม ที่ทำ Icon และหน้า Login ให้เหมือนของแท้ เพื่อหลอกให้เรากรอก Username/Password แล้วขโมยไปใช้กันดื้อ ๆ แบบนี้เลย
- ขโมยข้อมูลส่วนตัว – ก็ในเมื่อเข้าถึงการตั้งค่าต่าง ๆ ได้ การแอบอ่านข้อมูลต่าง ๆ จากในเครื่อง ก็เป็นไปได้ทั้งหมด
- ทำลายระบบ – ในเมื่อเข้าถึง Partition ได้ แค่ไปลบ Partition Bootloader เครื่องคุณก็พังแล้วล่ะ
ทั้งหมดนี้ก็คือสิ่งที่แชร์ไปแบบเร็ว ๆ ในงาน ซึ่งได้เก็บรวมรวมมาจากประสบการณ์ต่าง ๆ และที่เห็นทางเครือข่ายสังคมทั้งหลาย ที่ผ่านมา ผมเห็นผู้ใช้งาน Android มากมาย ทำการ Root โดยไม่ได้ตระหนักถึงความปลอดภัยสักเท่าไหร่ บางคน Root ด้วยความเข้าใจผิด ๆ หวังว่าผู้ที่ได้อ่าน จะได้ระวังให้มากขึ้น จะได้อยู่กับ Android อย่างมีความสุข
สำหรับผมนั้น เริ่มเล่น Android ครั้งแรกก็ Android 4.0 ก็ Root ตั้งแต่วันแรกที่มี Android ใช้เลย และใช้มาเรื่อย ๆ จนการมาของ Android 5.0 นั้น มี Security ที่ดีขึ้นมาก ๆ รวมถึงเหตุผลที่จะ Root นั้นน้อยลง จนถึงตอนนี้ ประมาณ 1 ปีแล้ว ที่ผมไม่ได้ Root เครื่องตัวเอง เพราะยังหาเหตุผลที่จะ Root ยังไม่ได้
สุดท้าย ขอบคุณทีมงาน DroidSans ที่ได้ให้โอกาสไปพูดในงาน Meeting ในครั้งนี้ และขออภัยที่เตรียมตัวไปน้อย เพราะช่วงนี้ไม่ค่อยจะว่างเลย ได้เตรียมทุกอย่างก่อนวันงานแค่ครึ่งวันเท่านั้น
ป.ล. นี่ตั้งใจจะเขียน Blog นี้หลังจบงาน Meeting เพิ่งจะพอมีเวลาได้เขียนเนี่ย…
เพิ่มเติม