เบราว์เซอร์ลับที่ซ่อนอยู่ในการตั้งค่าของ Google
(matan-h.com)- ในป๊อปอัป Manage my account บน Android สามารถเปิดหน้าที่ไปยังเว็บไซต์ทั่วไปได้ และยังเข้าถึงได้จาก Settings และชุดแอป Google
- เส้นทางการเข้าถึงคือผ่านแท็บ Security ของการจัดการบัญชี Google, Password Manager, ความช่วยเหลือเกี่ยวกับการเข้ารหัสบนอุปกรณ์, นโยบายความเป็นส่วนตัว และเมนู Search ตามลำดับ
- หน้านี้สามารถเล่น YouTube ได้ด้วย แต่ไม่มีประวัติการเข้าชมหรือแถบที่อยู่ และเมื่อกดย้อนกลับจะกลับไปยังหน้าการตั้งค่าแทนประวัติเว็บ
- ใน JavaScript console จะเห็นอ็อบเจ็กต์
mmและฟังก์ชันcloseView(),requestSecurityKeyHandshake(),updateSecurityKey()โดยยังไม่ยืนยันการใช้งานจริงของบางฟังก์ชัน - ตอนแรก Google ตอบว่าไม่ใช่ช่องโหว่ด้านความปลอดภัย และการ ข้ามการควบคุมโดยผู้ปกครอง ก็เป็นพฤติกรรมที่ตั้งใจไว้ แต่หลังการเปิดเผยและรายงานจากสื่อ 3 วัน ก็แจ้งว่าจะทบทวนรายงานนี้อีกครั้ง
เบราว์เซอร์ลับที่เปิดได้จากในการตั้งค่า Android
- ในหลายแอปของ Android มีป๊อปอัป Manage my account และเข้าถึงได้จากแอปหลักอย่าง Settings และชุดแอป Google
- หากผ่านหลายขั้นตอน ป๊อปอัปนี้จะทำงานเหมือนเบราว์เซอร์ที่สามารถไปยังเว็บไซต์ทั่วไปได้
- Settings → Google หรือในแอปที่เลือกบัญชีได้ ให้เลือก “Manage my account”
- ในแท็บ “Security” เลือก “Password Manager”
- เลือกไอคอน
Settingsที่มุมขวาบน - เลือก “Set up on-device encryption” → “Learn more about on-device encryption”
- จากเมนูแฮมเบอร์เกอร์ ไปที่ “Privacy Policy”
- กดเมนู 9 จุดด้านบน รอประมาณ 5 วินาที แล้วเลือก “Search” หรือไปที่รายการ
Google - หากออกจากระบบบัญชี Google จะใช้งานเหมือนเบราว์เซอร์ที่ไปยังที่ใดก็ได้ตามต้องการ
- ในสถานะนี้ยังสามารถ เล่นวิดีโอ YouTube ได้ และหน้าจอจะเปิดอยู่ภายในแอป Settings หรือแอปที่ใช้เข้ามาตอนแรก
-
จุดที่ต่างจากเบราว์เซอร์ทั่วไป
- ไม่บันทึกประวัติการเข้าชม
- เมื่อตัดจบเซสชัน จะออกจากระบบบัญชี Google ที่ล็อกอินอยู่โดยอัตโนมัติ
- ไม่มีแถบที่อยู่
- เมื่อกดปุ่มย้อนกลับ จะไม่กลับไปยังหน้าเว็บก่อนหน้า แต่จะกลับไปยังหน้าการตั้งค่าของ Password Manager
อ็อบเจ็กต์ JavaScript mm และการตอบสนองของ Google
- สามารถตรวจพบอ็อบเจ็กต์ JavaScript ชื่อ
mmได้ใน mobile JavaScript console อย่าง eruda - อ็อบเจ็กต์
mmมีฟังก์ชันอยู่ 3 ตัวcloseView(): ปิดเบราว์เซอร์ และทำงานคล้ายกับตอนกดปุ่มย้อนกลับrequestSecurityKeyHandshake(): ยังไม่ยืนยันหน้าที่ แต่จากชื่อดูเหมือนเป็นฟังก์ชันที่อ่อนไหวupdateSecurityKey(): ยังไม่ยืนยันหน้าที่ แต่จากชื่อดูเหมือนเป็นฟังก์ชันที่อ่อนไหว
- เนื่องจากเบราว์เซอร์นี้เปิดผ่านเส้นทางฟีเจอร์ on-device encryption จึงยังเป็นเพียงข้อสันนิษฐานว่าฟังก์ชันที่ยังไม่ยืนยันทั้งสองอาจเกี่ยวข้องกับการตั้งค่าคีย์เข้ารหัสในเครื่อง
- Google ตอบต่อการรายงานครั้งแรกว่าไม่ใช่ช่องโหว่ด้านความปลอดภัย และการข้ามการควบคุมโดยผู้ปกครองเป็น “Intended Behavior”
- หลังบทความถูกเผยแพร่ ก็มีหลายสื่อทั้งฝั่งภาษาอังกฤษและรัสเซียหยิบไปนำเสนอ และ 3 วันหลังการเปิดเผย Google แจ้งว่าจะกลับมาทบทวนรายงานดังกล่าวอีกครั้ง
- มีการพูดคุยที่เกี่ยวข้องใน Hacker News discussion
2 ความคิดเห็น
พอเข้าไปที่การจัดการรหัสผ่านก็รู้สึกเหมือนมีอาการหน่วงช้ากว่าปกติอยู่หนึ่งจังหวะมาตลอด.. สงสัยคงไม่ใช่แค่คิดไปเองสินะ
ความคิดเห็นบน Hacker News
ผมลองสืบดูนิดหน่อย พบว่าเมื่อกด "Manage my account" มันไม่ได้อยู่ในแอป Settings ต่อ แต่พาไปยัง Activity ที่ฝังอยู่ใน Google Play Services
สุดท้ายแล้วเบราว์เซอร์คือ
com.google.android.gms/.auth.folsom.ui.GenericActivityและดูเหมือนไม่ได้ใช้ Chrome ซึ่งเป็น System WebView เริ่มต้นในเครื่องผมAndroid สามารถใช้
addJavascriptInterfaceเพื่อสร้างอินเทอร์เฟซระหว่างโค้ด Android กับโค้ด JavaScript ได้ และดูเหมือนว่า GMS จะใช้สิ่งนี้ค่อนข้างมาก จึงน่าจะเป็นพื้นผิวการโจมตีที่ควรกลับมาดูในภายหลังอินเทอร์เฟซ
mmที่น่าสงสัยอยู่ในMagicArchChallengeViewและเชื่อมไปยังคลาสbwuzที่ถูก obfuscate ไว้ ตัวbwuzเองแทบจะว่างเปล่า แต่ก็เชื่อมต่อไปยังคลาสที่ถูก obfuscate อื่น ๆ อีกหลายตัวลองค้นหาสตริงดูพบว่าคลาส
"qvc"และ"pdn"สองตัวเปิดเผยฟังก์ชันที่เกี่ยวข้อง โดยpdnดูเหมือนเป็นแกนหลัก และในqvcมี error log ที่มีประโยชน์ซึ่งเผยให้เห็นว่าแต่ละพารามิเตอร์คืออะไรsetVaultSharedKeysคาดหวังอาร์เรย์ของอ็อบเจ็กต์ JSON ที่มีgaiaIdและค่าคู่หนึ่งคือepoch,keyจากนั้นนำไปทำเป็นลิสต์แล้วส่งต่อให้คลาส abstract ที่ดูเหมือนเกี่ยวข้องลึก ๆ กับความปลอดภัยของบัญชีaddEncryptionRecoveryMethodคาดหวังgaiaId, รายการ security domain และ public key ของสมาชิก แล้วส่งต่อให้คลาส abstract เดียวกันผมหยุดแค่นี้เพราะต้องไปทำงาน แต่ดูเหมือนว่านอกจากอินเทอร์เฟซนี้แล้ว อินเทอร์เฟซอื่น ๆ ที่ GMS เปิดให้ WebView ใช้ก็น่าขุดคุ้ยต่อเช่นกัน
https://developer.android.com/reference/android/webkit/WebVi...
ต่อให้เป็น Blink ก็มีโอกาสสูงว่าจะไม่ใหม่เท่าที่ Chrome มีให้ ดูจากลิงก์เอกสารแล้วน่าจะเป็น WebKit จริง ๆ
https://2021.stateofthebrowser.com/speakers/alex-russell/
gaiaIdนี่คือ Google Accounts and ID Administration ID คนที่ตั้งชื่อนี้ให้ ID แบบ unique ทั่วทั้ง Google คงภูมิใจพอตัว และก็น่าภูมิใจจริง ๆไม่แน่ใจว่าสิ่งนี้ต่างจาก WebView แบบฝังตัวอื่น ๆ ยังไง แทบทุกแอปก็ใส่ WebView แบบฝังตัว ไว้ตรงที่อย่าง "ดูนโยบายความเป็นส่วนตัว" ไม่ใช่เหรอ?
หลายครั้งการแสดง HTML นั้นง่ายกว่าการโยนเนื้อหานโยบายความเป็นส่วนตัวทั้งหมดให้ผู้พัฒนาแอปมาก
เท่าที่จำได้ การตั้งค่า WebView ให้ยอมรับหลายโดเมนหรือหลาย URL ก็ค่อนข้างยากอยู่แล้ว ผมไม่ใช่นักพัฒนา Android และครั้งล่าสุดที่แตะก็เมื่อหลายปีก่อน
เรื่องการจัดการคีย์ยังค่อนข้างเป็นการคาดเดา และผู้เขียนก็ยังไม่ได้ทดสอบว่าจริง ๆ แล้วมันทำอะไร จึงอยู่ในระดับ “ไม่รู้ว่าคืออะไร แต่มีเมธอดสองตัวที่ดูน่ากลัว”
คล้าย ๆ กับการเข้าอินเทอร์เน็ตผ่าน ไฟล์ช่วยเหลือ CHM ตอนที่เบราว์เซอร์ถูกบล็อกอยู่
บ้าเอ๊ย เผลอเผยอายุซะแล้ว
เหมือนกับวิธีที่ผมใช้เลี่ยง แอปควบคุมโดยผู้ปกครอง บน Windows ตอนเด็ก ๆ เป๊ะ
ผมมีเวลาใช้คอมพิวเตอร์แค่ 1 ชั่วโมง และพอหมดเวลา มันจะปิดทุกแอป ยกเว้นแอป Microsoft Office โดยให้เหตุผลว่าเป็นแอปเพื่อการทำงาน
หลังจากกดนู่นกดนี่ไปเรื่อย ๆ ผมก็เปิดเบราว์เซอร์จากใน Outlook ได้ somehow แล้วเล่นเกม Flash บน Miniclip ได้
ผมเปลี่ยนเว็บเบราว์เซอร์เริ่มต้นเป็น Terminal จากนั้นเปิด Word สร้างลิงก์แล้วคลิก โดยปกติ Terminal ที่เปิดขึ้นมาจะถูกจำกัดจนการเรียกใช้แอปอื่นล้มเหลว แต่ instance ของ Terminal ที่เปิดด้วยวิธีนี้มีสิทธิ์มากกว่า จึงใช้
open /path/to/your/appรันเกมจากดิสก์ที่เสียบเข้าไปได้ตอนครูคุมห้องอ่านหนังสือเดินมาถามว่าเล่น Starcraft ได้หรือ ผมตอบว่า “อย่างที่ครูก็รู้ คอมพิวเตอร์พวกนี้ถูกล็อกไว้แน่นมาก ดังนั้นถ้าเราเล่นเกมนี้ได้ ก็แปลว่าโรงเรียนอนุญาตใช่ไหมครับ” ถึงทุกวันนี้ก็ยังไม่อยากเชื่อว่ามุกนั้นได้ผล
ถ้าเด็กหาวิธีแฮ็กนี้เจอและเข้าเว็บที่ถูกบล็อกได้ ผมว่าก็สมควรได้รับสิทธินั้นแล้ว
เคยมีวิธีเลี่ยงคล้าย ๆ กันใน หน้าไลเซนส์ ของ
aboutด้วยพอกดตามลิงก์ไปยังไลเซนส์ ก็จะได้เบราว์เซอร์ขึ้นมา มีประโยชน์เวลาจะเปิดเบราว์เซอร์บน head unit ในรถหรือจักรยาน Peloton
ดูเหมือนรายการไฟล์ทั้งหมดใน filesystem
ประสบการณ์ของคนนี้ที่รายงานบั๊กให้ Google ทำให้นึกถึงประสบการณ์ของผมเอง
ผม: มีบั๊กใน Google Sheets ที่ทำให้เนื้อหาที่ถูกลบถูกเปิดเผยต่อบุคคลที่สามได้
Google: ไม่ใช่บั๊ก ทำงานตามที่ตั้งใจไว้ ปิดประเด็น
ผม: จริงเหรอ? ผมได้รับความเสียหายจริงจากการใช้แอปพลิเคชันนี้นะ
Google: จริง ๆ แล้วเป็นบั๊ก แต่เป็นประเด็นที่รู้กันมานานแล้ว จึงไม่เข้าเกณฑ์บั๊กบาวน์ตี ปิดประเด็น
ผม: มีบั๊กใน Gmail ที่ทำให้อีเมลปลอมสามารถลบสถานะ DKIM failed แล้วดูเหมือนอีเมลปกติได้
Google: "Won't fix (Intended Behavior)"
ผม: หมายความว่า Google ตั้งใจให้อีเมลปลอมดูเหมือนปกติในอินเทอร์เฟซจริง ๆ เหรอ?
Google: จริง ๆ แล้วเป็นประเด็นที่ทราบอยู่แล้ว
แถมบทความแรก ๆ ยังพยายามโยงช่องโหว่นั้นกับการแฮ็กของจีน/รัสเซียด้วย โฆษณาชวนเชื่อแบบนั้นควรย้อนกลับไปหา Google เอง Google เป็นบริษัทอเมริกัน และเปิดแบ็กดอร์อ้าไว้ให้ใครก็ได้ ไม่ว่าจะต่างชาติหรือในประเทศ ใช้ในทางที่ผิดได้เต็มที่ ซึ่งในความเป็นจริงทั้งสองฝ่ายก็ใช้ไปแล้ว
Google มีปัญหาจริง ๆ ไม่รู้ว่าหลังปี 2019 เกิดอะไรขึ้น แต่ไม่ใช่เรื่องดี
ผม: มีบั๊กใน Google Play Services
Google: ไม่ใช่บั๊ก ทำงานตามที่ตั้งใจไว้ ปิดประเด็น
ผม: ผมเขียนบล็อกเรื่องบั๊กนี้ และสื่อรายงานกันใหญ่
Google: ดูเหมือนเราจะผิดเอง! เป็นบั๊กจริง ๆ เราจะติดต่อกลับในอีกไม่กี่สัปดาห์
วันนี้เพิ่งรู้ว่ามีสิ่งที่เรียกว่า คอนโซล JavaScript บนมือถือ
https://eruda.liriliri.io/
เปิดเครื่องมือนักพัฒนาจากคอมพิวเตอร์อีกเครื่องได้ และข้อมูลทั้งหมดซิงก์ผ่าน WebSocket เคยลองใช้ครั้งหนึ่งตอนดีบักปัญหาบนอุปกรณ์ของลูกค้า
data:text/html,ด้วย แต่นี่มีฟีเจอร์ครบจนน่าทึ่งผมเคยทำแบบเดียวกันในล็อบบี้ระหว่างที่พ่อแม่ทำธุรกรรมธนาคาร
สมัยนั้นแท็ก best viewed in Netscape Navigator คือขุมทองเลย ลำดับก็แทบเหมือนกัน คือกดไปเรื่อย ๆ จนเจอแท็กแบบนั้น แล้วจากตรงนั้นก็ไปต่อที่เสิร์ชเอนจิน
จากนั้นก็เข้าเว็บสตรีมมิงที่เต็มไปด้วยแอดแวร์น่าสงสัย พอเปลี่ยนไปวิดีโออื่น คอมพิวเตอร์ทั้งคันของ Tesla ก็ค้าง และต้องฮาร์ดรีบูตรถ
นึกถึง Windows เวอร์ชันเก่า ๆ เลย กด F1 แล้วสามารถทริกเกอร์ คำสั่งรัน หลายอย่างผ่าน Windows Help ได้
explorer.exeแล้วเลือก Run”