ข้อบกพร่องด้านความปลอดภัยที่อาจเกิดขึ้นใน Autofill API ของ Android Oreo ช่วยให้ผู้จัดการรหัสผ่านรั่วไหลข้อมูล เช่น รหัสผ่าน ที่อยู่ หรือบัตรเครดิต
ป้อนอัตโนมัติ เป็นหนึ่งในคุณสมบัติใหม่ที่ใหญ่ที่สุดและเผยแพร่มากที่สุดที่เปิดตัวพร้อมกับการเปิดตัว Android 8.0 Oreo แอปจัดการรหัสผ่านต่างๆ มากมาย เช่น LastPass ได้นำ API ใหม่นี้ไปใช้กับแอปพลิเคชันของตนแล้ว และในขณะที่มันสามารถพิสูจน์ได้ว่าเป็น ค่อนข้างมีการปรับปรุง จากการใช้งานป้อนอัตโนมัติก่อนหน้านี้โดยใช้บริการการเข้าถึง มีข้อบกพร่องด้านความปลอดภัยที่อาจเกิดขึ้นที่ต้องพิจารณา เมื่อเดือนที่แล้ว มีการเผยแพร่สมุดปกขาวไปยัง GitHub ซึ่งบันทึกข้อบกพร่องโดยธรรมชาติใน Android Oreo Autofill API ที่สามารถทำได้ อาจส่งผลให้ผู้จัดการรหัสผ่านของคุณรั่วไหลข้อมูลส่วนตัวของคุณมากกว่าที่คุณอนุญาต. เราจะมาสรุปเอกสารไวท์เปเปอร์ที่เขียนโดย Mark Murphy (หรือที่รู้จักกันดีในชื่อ) คอมมอนส์แวร์) และเผยแพร่บนหน้า GitHub ของเขาเมื่อวันที่ 8 สิงหาคม 2017
ข้อบกพร่องของข้อมูลรั่วไหลที่อาจเกิดขึ้นใน Autofill API ของ Android Oreo
ข้อบกพร่องทำงานอย่างไร?
การใช้การป้อนข้อความอัตโนมัติใน Android Nougat (และเวอร์ชันต่ำกว่า) และเบราว์เซอร์ เช่น Google Chrome เป็นสิ่งที่ง่ายมาก โดยปกติแล้ว แอปจัดการรหัสผ่านจะใช้บริการการเข้าถึงเพื่อสแกนเนื้อหาบนหน้าจอเพื่อหากล่องเข้าสู่ระบบ และแนะนำข้อมูลป้อนอัตโนมัติตามสิ่งที่พบ ในขณะที่มันทำงานมันก็
อาจทำให้เกิดความล่าช้าอย่างมาก.บน Android Oreo การทำงานจะแตกต่างออกไปเล็กน้อย เนื่องจากขณะนี้แอปรหัสผ่านได้รับการสนับสนุนอย่างเป็นทางการด้วย Autofill API แอปพลิเคชันรหัสผ่านของบุคคลที่สามไม่ต้องการบริการการเข้าถึงอีกต่อไป เนื่องจากขณะนี้พวกเขาสามารถเติมเต็มบทบาทของบริการป้อนอัตโนมัติ โดยสื่อสารกับแอปผ่านกรอบป้อนอัตโนมัติ เมื่อผู้ใช้โฟกัสไปที่วิดเจ็ต ระบบจะแพ็กเกจข้อมูลบางอย่างเกี่ยวกับวิดเจ็ต/แบบฟอร์มนั้น และส่งไปยังแอปป้อนอัตโนมัติ จากนั้นแอปพลิเคชันจะส่งคืนข้อมูลที่ป้อนอัตโนมัติที่เกี่ยวข้อง เช่น รหัสผ่าน อีเมล บัตรเครดิต หรือข้อมูลที่ละเอียดอ่อนประเภทอื่น ๆ ระบบ Android ทำหน้าที่เป็นสื่อกลางระหว่างแอปพลิเคชันที่จัดเก็บข้อมูลกับแอปพลิเคชันที่ร้องขอ
อย่างไรก็ตาม แอปหรือมัลแวร์ที่เป็นอันตรายสามารถใช้ประโยชน์จากฟีเจอร์ป้อนอัตโนมัติเพื่อรับข้อมูลเพิ่มเติมได้ กิจกรรมที่เป็นอันตรายสามารถ ขอข้อมูลป้อนอัตโนมัติเพิ่มเติมเพื่อป้อนด้วยวิดเจ็ตที่มองไม่เห็นหรือซ่อนอยู่. ในขณะที่ผู้ใช้ตกลงที่จะกรอกวิดเจ็ตที่มองเห็นได้ เช่น แบบฟอร์มเข้าสู่ระบบหรือสิ่งที่คล้ายกัน วิดเจ็ตที่มองไม่เห็นนั้นยังได้รับข้อมูลเพิ่มเติมโดยที่คุณไม่เห็นมัน สิ่งนี้อาจเป็นอันตรายได้หากข้อมูลที่รั่วไหลนั้นเป็นรหัสผ่าน ที่อยู่ หรือรายละเอียดบัตรเครดิตของคุณ!
ภาพหน้าจอด้านบนแสดงแอปพลิเคชันทดสอบที่เป็นอันตรายซึ่งใช้ประโยชน์จากข้อบกพร่องด้านความปลอดภัยนี้
คำตอบของ Google สำหรับปัญหา
ตาม CommonsWare ปัญหาด้านความปลอดภัยนี้ยังไม่มีวิธีแก้ปัญหาสาธารณะที่โพสต์โดย Google อย่างไรก็ตาม เรารู้ว่า Google ตระหนักถึงปัญหานี้แล้ว CommonsWare ระบุว่าวิศวกรของ Google ยอมรับว่าปัญหานี้มีอยู่ในรายงานตัวติดตามปัญหาส่วนตัว แต่ก็เป็นเช่นนั้น จะเป็นเรื่องยาก (ถ้าไม่ใช่เป็นไปไม่ได้) ในการแก้ไขจริง หรือออกแนวทางแก้ไข
แต่ ไม่ได้หมายความว่าการป้อนอัตโนมัติไม่ปลอดภัยในการใช้งานโดยสิ้นเชิงเนื่องจาก Google กำลังใช้แนวทางอื่นในการรับรองความปลอดภัยของข้อมูล บริษัทอยู่ ผลักดันให้บริการป้อนอัตโนมัติจัดการปัญหาในตอนท้าย และด้วยเหตุนี้ จึงพยายามสร้างความตระหนักรู้ให้กับนักพัฒนาเพื่อปรับปรุงผู้ให้บริการป้อนข้อความอัตโนมัติและทำให้ปลอดภัยยิ่งขึ้น มีการเสนออะไรกันแน่?
ก่อนอื่นเลย ผู้ให้บริการป้อนข้อความอัตโนมัติ ควรแบ่งพาร์ติชันข้อมูลของตน. แทนที่จะเก็บข้อมูลที่ป้อนอัตโนมัติทั้งหมดไว้ในกลุ่มเดียว นักพัฒนาควรแยกข้อมูลผู้ใช้ที่จัดเก็บไว้ในพาร์ติชั่น ตัวอย่างเช่น พาร์ติชันที่อยู่/โทรศัพท์ พาร์ติชันบัตรเครดิต พาร์ติชันรหัสผ่าน/ชื่อผู้ใช้ ฯลฯ บริการป้อนอัตโนมัติควรส่งคืนข้อมูลของพาร์ติชันครั้งละหนึ่งพาร์ติชันตามวิดเจ็ตที่โฟกัสเท่านั้น นี่คือหนึ่งใน หน้าสาธารณะ บนแอปป้อนอัตโนมัติที่ป้องกันตนเองจากการรั่วไหลของข้อมูลไปยังวิดเจ็ตที่มองไม่เห็น
นอกจากนี้ยังมีบางสิ่งที่นักพัฒนาของผู้จัดการรหัสผ่านควรทำตามที่วิศวกรของ Google กล่าว ตัวอย่างเช่น ผู้ให้บริการป้อนข้อความอัตโนมัติควรส่งคืนข้อมูลให้กับแอปเฉพาะที่ให้ข้อมูลดังกล่าวตั้งแต่แรกเท่านั้น ซึ่งควรทำโดยการตรวจสอบชื่อแพ็กเกจและลายเซ็นสาธารณะของแอปพลิเคชัน แม้แต่ APK ที่ได้รับการแก้ไขก็ไม่สามารถเข้าถึงได้ อีกประการหนึ่งคือแอปป้อนอัตโนมัติต้องมีการตรวจสอบสิทธิ์ก่อนที่จะให้ข้อมูลจริงด้วย กิจกรรมการตรวจสอบสิทธิ์นั้นจะแจ้งให้ผู้ใช้ทราบว่าจะมีการจัดเตรียมข้อมูลประเภทใดให้กับแอปที่ร้องขอ คำแนะนำนี้มีข้อผิดพลาดมากมาย สิ่งสำคัญที่สุดคือคำแนะนำเหล่านี้ไม่ได้มีการบังคับใช้โดย Google จริงๆ
โปรดทราบว่าข้อเสนอข้างต้นหลายข้อนำมาจากรายงานตัวติดตามปัญหาส่วนตัวของ CommonsWare และไม่ได้มาจากหน้าเอกสารอย่างเป็นทางการของ Google หากต้องการรายละเอียดทางเทคนิคเพิ่มเติมว่าแอปที่ใช้ Autofill API สามารถป้องกันตนเองจากการโจมตีประเภทนี้ได้อย่างไร เราขอแนะนำให้คุณอ่าน เอกสารไวท์เปเปอร์ฉบับเต็มโดย CommonsWare.
แอพใดบ้างที่ปลอดภัยจากข้อบกพร่องนี้
เราได้ติดต่อผู้พัฒนา 1Password, Enpass และ LastPass เกี่ยวกับช่องโหว่นี้แล้ว และทีมรักษาความปลอดภัยที่อยู่เบื้องหลังแอปทั้ง 3 ตัวนี้ก็มี อ้างสิทธิ์ ว่าพวกเขาเป็น ปลอดภัยแม้ว่าเราจะยังไม่ได้ตรวจสอบการกล่าวอ้างเหล่านี้ก็ตาม
ดังที่เราเห็นในข้อความข้างต้น 1Password ต้องมีการตรวจสอบสิทธิ์จากผู้ใช้ก่อนที่จะกรอกข้อมูล พร้อมทั้งแจ้งให้ทราบว่าข้อมูลใดบ้างที่จะถูกกรอกล่วงหน้า นอกจากนี้ยังช่วยแก้ปัญหาการกรอกแบบไม่ต้องแจ้งด้วย เนื่องจากป๊อปอัปการตรวจสอบสิทธิ์จะปรากฏขึ้นสำหรับแต่ละกิจกรรมที่ขอข้อมูลป้อนอัตโนมัติ
Enpass จะไม่เปิดเผยพวงกุญแจทั้งหมดให้กับแอปที่ร้องขอ ไม่ว่าจะเป็นอันตรายหรือเป็นของแท้ก็ตาม เฉพาะรายการที่บันทึกไว้ซึ่งตรงกับชื่อแพ็คเกจของแอปที่ร้องขอเท่านั้นที่จะถูกนำเสนอต่อผู้ใช้ พวกเขายังยืนยันว่าจะมีมาตรการเพิ่มเติมตามคำแนะนำของ Google
นอกจากนี้ LastPass ยังยืนยันกับเราว่า แม้ว่าพวกเขาจะไม่รู้เกี่ยวกับปัญหาก่อนที่จะมีการเปิดตัว Android Oreo แต่แอปของพวกเขาก็ใช้งาน การแบ่งพาร์ติชันข้อมูลเพื่อปกป้องผู้ใช้ พร้อมด้วยการตรวจสอบอื่น ๆ เพื่อให้แน่ใจว่า LastPass จะกรอกข้อมูลลงในแอปที่เกี่ยวข้องกับรายการเท่านั้น
แม้ว่าการใช้งานทั้ง 3 แอปพลิเคชันนี้ไม่น่าจะมีปัญหาใดๆ ทั้งสิ้น แต่หากคุณต้องการให้อยู่ในที่ร่มโดยสมบูรณ์ คุณควรปิดการใช้งาน ป้อนอัตโนมัติบนโทรศัพท์ของคุณจนสมบูรณ์จนกว่าคุณจะยืนยันกับนักพัฒนาตัวจัดการรหัสผ่านว่าแอปของพวกเขาปลอดภัยจากบรรทัดนี้ จู่โจม. โชคดีที่สามารถทำได้ง่ายๆ โดยไปที่การตั้งค่า > ระบบ > ภาษาและการป้อนข้อมูล > ขั้นสูง แล้วค้นหาการตั้งค่า "บริการป้อนอัตโนมัติ" จากนั้นแตะแล้วเลือก "ไม่มี"
ดังที่เราได้กล่าวไว้ข้างต้น ยังไม่ทราบว่า Google จะสามารถแก้ไขปัญหานี้ได้จริงหรือไม่ ดังนั้นการใช้แอปที่เชื่อถือได้หรือเพียงแค่ปิดใช้งานคุณลักษณะนี้เป็นวิธีเดียวที่จะทำให้คุณปลอดภัย หากคุณต้องการอ่านเพิ่มเติมเกี่ยวกับปัญหานี้และรายละเอียดทั้งหมดที่เกี่ยวข้อง คุณควรอ่านต้นฉบับ กระดาษสีขาวที่บันทึกข้อมูลดังกล่าว บน GitHub
บทความนี้ได้รับการอัปเดตเมื่อวันที่ 13 กันยายน 2560 เพื่อให้สะท้อนถึงความหมายของการตอบสนองของ LastPass, Enpass และ 1Password ได้แม่นยำยิ่งขึ้น