- หลัง Android 11 Google จำกัดการตรวจสอบข้ามแอป แต่หลายแอปยังสามารถตรวจสอบ รายชื่อแอปที่ติดตั้ง ได้เพียงแค่ประกาศไว้ใน
AndroidManifest.xml
- นโยบาย package visibility กำหนดให้แอปมองเห็นเฉพาะแอปที่จำเป็นต่อฟังก์ชันหลัก แต่การประกาศแพ็กเกจรายตัวและฟิลเตอร์
ACTION_MAIN ถูกใช้เหมือนเป็น ช่องทางเลี่ยง
- Swiggy ประกาศไว้ 154 แอป, Zepto 165 แอป, KreditBee 860 แอป และ Moneyview 944 แอป ทำให้ตรวจสอบได้ว่ามีแอปเฉพาะอยู่ในอุปกรณ์ของผู้ใช้หรือไม่
- จากแอปอินเดีย 47 แอปที่สุ่มดู มี 31 แอปใช้ intent filter
ACTION_MAIN ซึ่งทำให้มองเห็นแอปที่ติดตั้งส่วนใหญ่ที่มีหน้าจอได้โดยไม่ต้องใช้ QUERY_ALL_PACKAGES
- ข้อมูลแอปที่ติดตั้งและสิทธิ์
READ_SMS อาจนำไปสู่การทำโปรไฟล์ การตั้งราคาต่างกัน และการตัดสินเครดิต/คุณสมบัติ แต่ผู้ใช้รู้ได้ยากว่าแอปอ่านอะไรเมื่อใด
ช่องโหว่ในนโยบายการมองเห็นแอปของ Android
- ในอดีต Android อนุญาตให้แอปมองเห็นแอปอื่นที่ติดตั้งอยู่ในโทรศัพท์ของผู้ใช้ได้โดยไม่ต้องมีสิทธิ์พิเศษ
- Google เริ่มใช้นโยบาย package visibility ตั้งแต่ Android 11 เพื่อจำกัดการเข้าถึงนี้
- แอปควรมองเห็นแอปอื่นที่ติดตั้งอยู่ได้เฉพาะเมื่อจำเป็นต่อฟังก์ชันหลักเท่านั้น
- นักพัฒนาต้องระบุแอปที่ต้องการตรวจสอบไว้ใน
AndroidManifest.xml ซึ่งเป็นไฟล์ตั้งค่าจำเป็นของแอป Android ทุกแอป
- สำหรับกรณีใช้งานเฉพาะ เช่น แอปจัดการไฟล์ เบราว์เซอร์ และแอปแอนติไวรัส สิทธิ์
QUERY_ALL_PACKAGES จะได้รับอนุญาตเป็นข้อยกเว้น
- กรณีอย่างการแสดงแอปชำระเงิน UPI หรือการตรวจจับแอปโคลน/แอปหลายบัญชี อาจเป็นเหตุผลที่ชอบด้วยกฎหมายในการตรวจสอบแอปได้
- manifest จำนวนมากที่ตรวจสอบก็มีการตรวจสอบแอปเพื่อวัตถุประสงค์ด้านการชำระเงิน ความปลอดภัย และการตรวจจับการฉ้อโกงรวมอยู่ด้วย
การตรวจสอบแอปในวงกว้างของ Swiggy และ Zepto
- Swiggy ระบุ ชื่อแพ็กเกจ 154 รายการ ไว้ใน manifest เพื่อให้ตรวจสอบได้ว่าแอปเหล่านั้นอยู่ในโทรศัพท์หรือไม่
- รายชื่อมีแอปอย่าง Xbox, PlayStation, Naukri และ Upstox รวมอยู่ด้วย
- หมวดหมู่กว้างมาก จึงมีความเป็นไปได้สูงว่าเป็นการเก็บข้อมูลเพื่อทำโปรไฟล์ผู้ใช้และสร้างโปรไฟล์พฤติกรรม
- Google มองรายชื่อแอปที่ติดตั้งว่าเป็น ข้อมูลผู้ใช้ส่วนบุคคลและละเอียดอ่อน
- Zepto ลงทะเบียนใน manifest ให้ตรวจสอบ 165 แอป บนอุปกรณ์
- มีแอปยอดนิยมหลายหมวดหมู่ เช่น Netflix, Bumble และ Binance รวมอยู่ด้วย
- มี รายงาน ว่า Zepto แสดงราคาต่างกันให้ผู้ใช้ iOS และ Android และลูกค้าบางส่วน รายงาน ว่าราคาแตกต่างกันระหว่างโทรศัพท์ Android แต่ละเครื่อง
- เมื่อผู้ใช้ติดตั้งแอปจาก Play Store จะไม่สามารถเห็นได้ว่า manifest ของแอปนั้นมีรายชื่อแอปใดที่ใช้ตรวจสอบอยู่บ้าง
ขอบเขตการตรวจสอบของแอปไรเดอร์ส่งอาหารและแอปสินเชื่อส่วนบุคคล
- แอปสำหรับไรเดอร์ส่งอาหารของ Swiggy และ Zepto มีรายชื่อแอปที่ตรวจสอบต่างจากแอปสำหรับผู้บริโภค
- ทั้งสองแอปมีรายการที่สามารถตรวจสอบได้ว่าไรเดอร์ทำงานให้บริษัทอื่นใดบ้าง
- Swiggy ยังตรวจสอบแอปสินเชื่อส่วนบุคคล แอปการเงินส่วนบุคคล และแอปเกมอย่าง Ludo King กับ Carrom Pool ด้วย
- แนวปฏิบัติแบบเอารัดเอาเปรียบของแอปสินเชื่อส่วนบุคคลในอินเดียได้รับการ บันทึกไว้ แล้ว และเมื่อหลายปีก่อนเคยมีการกวาดล้างครั้งใหญ่จนแอปหลายพันรายการถูกลบออกจาก Play Store
- KreditBee เป็นหนึ่งในแอปยอดนิยมด้านสินเชื่อส่วนบุคคลบน Play Store มียอดดาวน์โหลด มากกว่า 50 ล้านครั้ง และตรวจสอบ 860 แอป ใน manifest
- มีรายการอย่าง Tamil Calendar, Odia Calendar, Qibla Direction Finder, แอปวัด และแอปโหราศาสตร์รวมอยู่ด้วย
- แอปหาคู่สำหรับผู้ที่ยังไม่จบมัธยมปลาย
Jodii for Diploma, +2,10 below และแอปซื้อขายวัวกับควาย ซื้อขายวัวและควาย Animall ก็ปรากฏเป็นตัวอย่าง โดยทั้งสองมียอดดาวน์โหลดมากกว่า 10 ล้านครั้ง
- Moneyview ก็เป็นแอปสินเชื่อส่วนบุคคลที่มียอดดาวน์โหลด มากกว่า 50 ล้านครั้ง และมี 944 แอป ใน manifest
- นโยบาย Play Store จำกัดอย่างชัดเจน การใช้
QUERY_ALL_PACKAGES ของแอปสินเชื่อส่วนบุคคล แต่ KreditBee และ Moneyview เลี่ยงข้อจำกัดนี้ด้วยการไล่ระบุแอปที่ต้องการทีละรายการใน manifest
วิธีดูรายชื่อแอปโดยไม่ใช้ QUERY_ALL_PACKAGES
- ในบรรดาแอปที่ตรวจสอบ มีเพียง Cred เท่านั้นที่ใส่
QUERY_ALL_PACKAGES ซึ่งเป็นสิทธิ์ความเสี่ยงสูงและละเอียดอ่อนไว้ใน manifest
- Play Store อนุญาต “ข้อยกเว้นชั่วคราว” สำหรับสิทธิ์นี้แก่แอปที่มีวัตถุประสงค์หลักที่ตรวจสอบได้ในการอำนวยความสะดวกธุรกรรมทางการเงินที่เกี่ยวข้องกับผลิตภัณฑ์ทางการเงินที่อยู่ภายใต้การกำกับดูแล
- manifest ของ PhonePe หรือ PayTM ที่อยู่ในสาขาเดียวกันไม่มีสิทธิ์นี้
- Cred ยังให้บริการสินเชื่อส่วนบุคคลด้วย และดูเหมือนจะไม่เข้าข่ายข้อยกเว้นตามนโยบายสินเชื่อส่วนบุคคลของ Play Store
- manifest ของบางแอปมี intent filter
ACTION_MAIN ดังต่อไปนี้
<queries>
[...]
<intent>
<action android:name="android.intent.action.MAIN" />
</intent>
[...]
</queries>
- ฟิลเตอร์
ACTION_MAIN ให้การมองเห็นแอปที่ติดตั้งส่วนใหญ่ที่มีหน้าจอ และทำให้มองเห็นรายชื่อแอปในโทรศัพท์ได้แม้ไม่มีสิทธิ์ QUERY_ALL_PACKAGES
- เมื่อใช้แอป Android พื้นฐานที่ใส่การตั้งค่าเดียวกันนี้เพื่อตรวจสอบแอปที่ติดตั้ง ก็ได้รับรายชื่อแอปทั้งหมดในโทรศัพท์กลับมา
- จากแอปอินเดียที่สุ่มวิเคราะห์ 47 แอป มี 31 แอป ใช้ฟิลเตอร์นี้ หรือประมาณ 2 ใน 3 แอป
- แอปที่ใช้: Astrotalk, Axis Mobile, Bajaj Finserv, BookMyShow, Cars24, Cure.fit, Fibe, Groww, Housing, Instamart, Ixigo, JioHotstar, KreditBee, KukuTV, LazyPay, Ludo King, Meesho, MoneyTap, Moneyview, Navi, NoBroker, Nykaa, Ola, PhonePe, PhysicsWallah, Slice, Spinny, Swiggy, Swiggy Delivery, Tata Neu, Zomato
- แอปที่ไม่ใช้: Airtel Thanks, Blinkit, Byju’s, MyGate, Dream11, Flipkart, HDFC Mobile, Healthify, INDmoney, MyJio, Paytm, PaisaBazaar, ShareChat, Unacademy, Vedantu, Zepto
- Swiggy มีฟิลเตอร์
ACTION_MAIN ด้วย แต่ก็ยังระบุรายชื่อแอปที่ตรวจสอบไว้อย่างชัดเจน ทำให้เห็นบางส่วนของแนวทางการเก็บข้อมูล
- ไฟล์ manifest ที่อ่านเผยแพร่อยู่ที่ android-manifest-files และส่วนใหญ่ดาวน์โหลดเมื่อวันที่ 18 หรือ 19 มีนาคม
- การตั้งค่านี้ไม่ได้จำกัดอยู่เฉพาะแอปของบริษัทอินเดีย
- Facebook, Instagram, Snapchat, Subway Surfers และ Truecaller มีการตั้งค่าเดียวกัน
- Amazon, Spotify, X, Discord และ WhatsApp ไม่มี
ความละเอียดอ่อนของข้อมูลแอปที่ติดตั้งและสิทธิ์ SMS
- ข้อมูลแอปที่ติดตั้งเป็น ข้อมูลส่วนบุคคลที่ละเอียดอ่อน
- ในปี 2022 Vice รายงาน ว่าหลังมีข่าวว่า Roe v. Wade อาจถูกพลิกกลับ ไม่นานนัก ตลาดข้อมูลชื่อ Narrative ก็กำลังขายข้อมูลผู้ใช้ที่ดาวน์โหลดแอปติดตามประจำเดือน
- นอกจากการตรวจสอบแอปที่ติดตั้งแล้ว manifest ของแอปยังอาจรวมสิทธิ์จำนวนมากที่ดูเกินขอบเขตที่จำเป็นได้
- Zepto ขอสิทธิ์
READ_SMS
- ผู้ใช้สามารถปฏิเสธได้ แต่จำเป็นต้องให้สิทธิ์นี้เมื่อสมัคร Zepto Postpaid
- หากอนุญาตสิทธิ์ดังกล่าว SMS จาก sender ID ของธนาคารจำนวนมากตามระบบ TRAI รวมถึง SMS จาก Blinkit, Swiggy, Bigbasket และ Flipkart จะถูกนับรวมอยู่ในเป้าหมายการตรวจสอบด้วย
- ดูเหมือนว่าเป็นการอ่านข้อความ SMS ของธนาคารเพื่อตรวจสอบคุณสมบัติสำหรับแผน Postpaid แต่ก็สามารถอ่านได้แม้ผู้ใช้ไม่ได้เลือกใช้ฟังก์ชันนั้น
- หลังจากผู้ใช้ให้สิทธิ์อย่าง
READ_SMS แก่แอปแล้ว ผู้ใช้จะไม่สามารถเห็นได้ว่าแอปเข้าถึงอะไรเมื่อใด
- ข้อมูลการติดตั้งแอปบน Android อาจถูกใช้โดยนักพัฒนาแอปและนายหน้าข้อมูลเพื่อทำโปรไฟล์ อ้างอิงข้ามกับข้อมูลจากเครือข่ายโฆษณา และใช้ในงานอย่างการกำหนดราคา
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ช่องโหว่ ACTION_MAIN เคยถูกพูดถึงมาก่อนแล้ว: https://commonsware.com/blog/2020/04/05/android-r-package-vi...
Google ไม่พยายามแพตช์เรื่องนี้ อยากรู้เหมือนกันว่าจะเกิดอะไรขึ้นถ้าส่งเรื่องนี้เข้า Android VDP ในฐานะการข้ามสิทธิ์
ยังมีคำถาม SO ที่ผู้เขียนโพสต์ไว้เกี่ยวกับการ bypass ด้วย: https://stackoverflow.com/q/79527331
ถึงตอนนั้น โฟลว์ที่ Android ถามว่าจะตั้งเกมสุ่ม ๆ ที่เพิ่งดาวน์โหลดมาเป็น launcher เริ่มต้นหรือไม่ จะกลายเป็นปฏิสัมพันธ์ที่ค่อนข้างเสี่ยงสำหรับแอปน่าสงสัยเอง ผู้ใช้อาจเลิกใช้แล้วรายงาน หรือผู้ใช้ที่ไม่ค่อยรู้เรื่องอาจเลือกเป็น launcher เริ่มต้นจนทำหน้าจอ Home พัง แล้วไปรายงานใน Play Store ก็เป็นไปได้ จริง ๆ แล้วถ้าจะเผยแพร่เป็นแอประดับ launcher ก็น่าจะมีการทดสอบอัตโนมัติและข้อกำหนดเพิ่มเติม ทำให้เป็นภาระต่อผู้พัฒนา
ยากที่จะเชื่อว่าวิศวกรของ Google จะไม่รู้ช่องโหว่ที่ใช้กันแพร่หลายนี้ แต่ก็สงสัยว่ามีแหล่งอ้างอิงไหมว่า Google ปฏิเสธที่จะแก้ไข
ยังไม่เข้าใจเลยจริง ๆ ว่าทำไมถึงต้องมี “แอป” แบบ native จนถึงตอนนี้ยังไม่เคยเห็น “แอป” ที่เว็บไซต์หรือเว็บแอปทำแทนไม่ได้ และส่วนใหญ่ถ้าเป็นเว็บแอปก็น่าจะดีกว่าด้วยซ้ำ
ข้อดีเดียวของ “แอป” ดูเหมือนจะเป็นการที่นักพัฒนาสามารถเข้าถึง ข้อมูลส่วนตัว ที่จริง ๆ แล้วไม่จำเป็นต้องใช้
การได้ขึ้น “App Store” ก็เป็นข้อดีอย่างหนึ่ง แต่ App Store เป็นแนวคิดที่ไม่จำเป็นซึ่ง Apple/Google สร้างขึ้นเพื่อหักส่วนแบ่งก้อนใหญ่จากยอดขาย
เว็บเบราว์เซอร์ให้ sandboxing ที่ดีพอสมควร ไม่มีค่าธรรมเนียม “submit” และทุกคนบนโทรศัพท์ทุกเครื่องเข้าถึงได้
ในความเป็นจริง เว็บแอปบนมือถือส่วนใหญ่แย่มาก ประสบการณ์ผู้ใช้สู้แอป native ไม่ได้เลย ไม่ชอบที่ข้อความถูกเลือกได้ ไม่ชอบที่ทุกหน้าดึงลงเพื่อรีเฟรชได้ และไม่ชอบที่ปัดซ้ายแล้วกลับไปหน้าก่อนหน้า
ปัญหาเหล่านี้คงหาวิธีเลี่ยงได้ แต่ไลบรารี Silk ตัวใหม่ (https://silkhq.co/) ดูเหมือนเป็นกรณีแรกที่เข้าใกล้ประสบการณ์ native มาก ๆ แต่แค่ความจริงที่ว่ามันเป็นไลบรารีแบบเสียเงิน ก็แสดงให้เห็นแล้วว่าปัญหานี้ไม่ใช่เรื่องเล็กน้อย
มีหลายอย่างที่แอป native ทำได้ แต่เบราว์เซอร์ทำได้ไม่ดีหรือทำไม่ได้เลย เช่น การตัดต่อวิดีโอ/เสียงหนัก ๆ การเข้าถึง RAM ปริมาณมาก การใช้ประโยชน์จากการประมวลผลด้วย GPU และงานที่ใกล้กับฮาร์ดแวร์ ซึ่งเบราว์เซอร์อย่างเดียวยังไม่พอ
ไม่ได้หมายความว่าวิธีที่ Apple และ Google นำไปใช้จริงนั้นดี แต่ก็ไม่คิดว่าอนาคตที่ใช้แต่เว็บแอปจะมาถึง ด้วยเหตุผลเดียวกัน ผม/ฉันคงไม่เปลี่ยนคอมพิวเตอร์จริง ๆ ของตัวเองไปเป็น Chromebook ในเร็ว ๆ นี้
แต่แอปที่ ทำงานแบบออฟไลน์ บนอุปกรณ์ และไม่โปรยข้อมูลไปยังบริการต่าง ๆ ที่ผม/ฉันควบคุมไม่ได้ ยังเป็นสิ่งที่ดีอยู่ ผม/ฉันก็ไม่อยากพึ่งพาการเชื่อมต่ออินเทอร์เน็ตไม่ว่าจะอยู่ที่ไหน
ชอบแอปออฟไลน์อย่าง OsmAnd/Organic Maps ที่นำทางเวลาอยู่ในป่าหรือภูเขา และชอบแอปที่แชร์ข้อมูลโดยเชื่อมต่อโดยตรงกับอุปกรณ์ local ของผม/ฉัน แทนที่จะผ่านเซิร์ฟเวอร์บุคคลที่สาม
ถ้าเป็นไปได้ แอปทุกตัวควรถูกพัฒนาแบบ offline-first และต้องการอินเทอร์เน็ตเฉพาะเมื่อจำเป็นเท่านั้น แอปที่ทำงานไม่ได้หากไม่มีอินเทอร์เน็ต เป็นเว็บแอปก็พอแล้ว และไม่จำเป็นต้องมาอยู่บนอุปกรณ์ของผม/ฉัน
สงสัยว่าครั้งล่าสุดที่คุณจองตั๋วเครื่องบินบนมือถือเว็บคือเมื่อไหร่ ก็ไม่รู้ว่าจะจัดการพื้นที่หน้าจอที่เบราว์เซอร์กินไปอย่างไร แอปสามารถ cache การยืนยันตัวตนและจัดการด้วย FaceID ได้ แต่การต้องล็อกอินทุกครั้งก็เป็นปัญหา
นี่แหละเหตุผลที่ชอบ Hacker News
เมื่อวานเจอบทความนี้เลยเอาไปโพสต์ในบอร์ด Android ของ Reddit: https://old.reddit.com/r/Android/comments/1jmwg4w/everyone_k...
ได้ upvote 0 และคอมเมนต์เต็มไปด้วยปฏิกิริยาที่ไม่รู้ว่าเป็นคนซึม ๆ หรือบอตกันแน่
แต่ที่นี่ขึ้นมาอยู่แถวอันดับ 2 และคอมเมนต์ส่วนใหญ่ก็น่าสนใจ
subreddit ที่ตายแล้วมีเยอะ แต่ r/android น่าจะเกือบแย่ที่สุดในบรรดานั้น
แถม subreddit ตามหัวข้อต่าง ๆ โดยรวมดูเหมือนจะถูกดูแลโดยคนที่มีผลประโยชน์เกี่ยวข้องกับหัวข้อนั้น ๆ ซึ่งเป็นผลเสียต่อชุมชน เคยโพสต์บทความที่เขียนอย่างละเอียดว่า Llama ของ Meta อยู่ภายใต้ไลเซนส์กรรมสิทธิ์แบบไหน และไลเซนส์นั้นหมายความว่าอะไรกันแน่ แต่ผู้ดูแล r/LocalLlama ลบเองโดยไม่มีเหตุผล และแม้จะถามเพื่อจะเข้าใจกฎให้ดีขึ้น ก็ไม่ตอบว่าลบเพราะอะไร
ตอน “Reddit purge” ครั้งล่าสุด มีการแทนที่ผู้ดูแลชุมชนจำนวนมากด้วยพนักงาน Reddit เลยอดคิดไม่ได้ว่าแพลตฟอร์มส่วนใหญ่ถูกขายให้แต่ละบริษัทดูแลพื้นที่ของตัวเองโดยตรงหรือเปล่า
ถ้ากดลิงก์ “past” ใต้หัวข้อ จะเจอกระทู้เมื่อ 2 วันที่แล้วที่เงียบสนิท
Hacker News เข้าใจแนวคิดของการวิจารณ์เชิงสร้างสรรค์
ประเด็นสำคัญคือส่วนที่ว่า “ตรวจไปไกลกว่าหมวดหมู่ทั่วไป ถึงขั้นดูแอปอย่าง Tamil Calendar, Odia Calendar, Qibla Direction Finder, แอป mandir, แอปโหราศาสตร์ด้วย พวกเขารู้ว่ากำลังทำอะไรอยู่”
แอปกู้นี้กำลังทำ profiling ผู้คนตาม อัตลักษณ์ทางชาติพันธุ์/ภูมิภาค (Tamil, Odia) และ ศาสนา (Qibla Direction Finder คือมุสลิม, แอป mandir คือฮินดู)
แอป Android ของ HSBC UK จะดูแอปที่ติดตั้งอยู่ และถ้ามีแอปที่มีสิทธิ์บางอย่างก็จะปฏิเสธไม่ยอมทำงาน เช่น ห้ามมี launcher ทางเลือก และตอนนี้ถ้ามีแอปแม้เพียงตัวเดียวที่ติดตั้งจากนอก Google app store ก็จะปฏิเสธไม่ยอมทำงาน
เคยบ่นไว้ที่นี่มาก่อนแล้ว แต่สุดท้ายก็ไปขอ อุปกรณ์รักษาความปลอดภัยแบบฮาร์ดแวร์ แล้วใช้เว็บไซต์แทน
สงสัยว่าพวกเขามีบอกไหมว่าข้อมูลนี้จะไม่ถูกส่งกลับไปยังบริษัท
คำตอบของคำถามที่ว่า “ทำไมการรู้ว่ามีแอป Xbox หรือ Playstation ติดตั้งอยู่ในมือถือฉันถึงจำเป็นต่อฟังก์ชันหลักของ Swiggy? การรู้ว่ามีแอป Naukri หรือ Upstox ช่วยอะไรในการส่งของชำถึงบ้านฉัน?” คือเพื่อ fingerprinting
แอปธนาคารก็เช่นกัน ถ้าเป็นมิจฉาชีพ การรู้ล่วงหน้าว่าเป้าหมายใช้ธนาคารไหนย่อมมีประโยชน์มาก
โดยเฉพาะถ้าเชื่อมโยงกับหมายเลขโทรศัพท์ได้ ก็น่าจะมีกลุ่มคนจำนวนไม่น้อยที่ต้องการข้อมูลแบบนี้
จากส่วนที่ว่า “สำหรับกรณีใช้งานที่เฉพาะเจาะจงมาก เช่น file manager, browser, แอป antivirus Google ให้ข้อยกเว้นสิทธิ์ QUERY_ALL_PACKAGES เพื่อให้เห็นแอปทั้งหมดที่ติดตั้งอยู่ได้” ผมไม่เข้าใจว่าทำไม browser ต้อง enumerate แอปที่ติดตั้งอยู่ด้วย
ทำไม?!
พูดง่าย ๆ คือโทษฝ่าย product management ของ Google ได้เลย
เช่น Obsidian ขอสิทธิ์ทั้ง file system ทั้งที่จริงแล้วแค่เข้าถึงไฟล์ที่ผู้ใช้ให้ดูได้ก็เพียงพอ
เป็นฟีเจอร์ที่มีประโยชน์มาก และคงไม่อยากให้มันหายไป
“ทุกคนรู้จักแอปทั้งหมดในมือถือคุณ” หมายถึงเรื่องของ มือถือ Android ส่วน iPhone ไม่มีข้อบกพร่องด้านความเป็นส่วนตัวแบบนี้
https://blog.verichains.io/p/technical-analysis-improper-use...
ถ้าใช้ work profile ซึ่งเป็นวิธีมาตรฐานใน Android ช่วงหลัง ๆ บริษัทจะเห็นได้เฉพาะแอปใน work profile เท่านั้น
หนึ่งในแรงจูงใจใหญ่ที่สุดของการทำแอปคือการกวาดข้อมูลสารพัดจากผู้ใช้ ลองดูว่ามีแอปจำนวนแค่ไหนที่ขอสิทธิ์เข้าถึงรายชื่อผู้ติดต่อ และมีแอปจำนวนแค่ไหนที่จำเป็นต้องใช้รายชื่อผู้ติดต่อจริง ๆ สำหรับฟังก์ชันของมัน ดังนั้นจึงยังน่าแปลกใจอยู่บ้างที่หลายคนตกใจกับการค้นพบแบบนี้
เดิมทีแอปสามารถลองสื่อสารกับแอปอื่นผ่าน custom URI scheme และถ้าสำเร็จก็จะรู้ว่าแอปนั้นติดตั้งอยู่ Twitter เคยใช้วิธีนี้ในการทำ fingerprinting
ตอนนี้แอปต้องรับ intent แบบพิเศษ และต้องระบุรายชื่อแอปที่จะใช้เพื่อวัตถุประสงค์นั้น
ช่วงหลังฟีเจอร์ LLM ของพวกเขาอัปเดตครั้งใหญ่ เลยติดตั้งแอปเพื่อลองดู ระหว่างที่ติดตั้งแอปอยู่ ทุกครั้งที่ดูเว็บไซต์บนมือถือจะมีแบนเนอร์ใหญ่บอกให้ไปใช้แอป โผล่ขึ้นมา และลบด้วย ad blocker หรือ content blocker สำหรับสิ่งรบกวนก็ไม่ได้ พอลบแอปออกอีกครั้งมันก็หายไป
ทำไมถึงเป็นแบบนี้? สงสัยว่าเว็บไซต์บนมือถือรู้ได้อย่างไรว่าติดตั้งแอปไว้หรือไม่ และตอนที่ไม่ได้ติดตั้งแอป ก็สามารถบล็อกคำชวนให้ใช้แอปทั้งหมดด้วย content/blocker สิ่งรบกวนได้ แต่ทำไมตอนติดตั้งแล้วถึงบล็อกไม่ได้
ต้องมี root แต่สามารถบล็อกหรือปลอมสิ่งนี้ได้ด้วยโมดูล LSPosed[1] อย่าง XPrivacyLua[2] ได้ยินว่ายังมี AppOps[3] ซึ่งเป็น closed source ด้วย แต่ไม่เคยลองใช้
[1]: https://lsposed.org
[2]: https://github.com/M66B/XPrivacyLua / https://github.com/0bbedCode/XPL-EX
[3]: https://appops.rikka.app
ที่น่าสนใจคือ XPrivacyLua ไม่ได้รับการสนับสนุนอีกต่อไป และแอป companion รุ่นโปรกำลังจะถูก Google ถอดออกจาก Play Store ด้วยเหตุผลว่าใช้สิทธิ์ QUERY_ALL_PACKAGES
[0]: https://github.com/M66B/NetGuard
[1]: https://xdaforums.com/t/closed-app-xposed-6-0-xprivacylua-an...
สงสัยว่าแอป Windows โดยเฉพาะแอปที่ไม่ได้ติดตั้งจาก MS Store สามารถ enumerate ชื่อหน้าต่างทั้งหมดที่เปิดอยู่ได้หรือไม่ แอปจะเฝ้าดูทราฟฟิกเว็บทั้งหมดได้ยากแค่ไหน ถ้าดูจากชื่อหน้าต่างอย่างเดียว?
ถามจริง ๆ นะ ChatGPT เออออไปหมดเลยไม่ค่อยมีประโยชน์ ต้องการคนที่บอกได้ว่าในโลกจริงทำไมมันถึงทำได้ไม่จริง
มีฟังก์ชัน EnumWindows() และ EnumChildWindows() สำหรับจุดประสงค์นี้
ตัวอย่างของฟีเจอร์นี้ให้ดูยูทิลิตี “Windows Modifier v2.00” และ Spy++ (SPYXX.EXE) ของ Microsoft เมื่อก่อนตอนเพิ่งได้มาใหม่ ๆ มีหน้าที่เกี่ยวข้องเยอะมาก แต่ตอนนี้ค้นหาด้วยชื่อที่ถูกต้องแทบไม่เจอแล้ว รู้สึกเหมือนเป็นสัญญาณว่าอินเทอร์เน็ตลืมอะไรได้ดีขึ้น
ทางออกสำหรับแอปที่ไม่น่าไว้วางใจคือไม่ใช้มันเลย หรือใช้ใน VM
อย่างน้อยนี่ก็เป็นจริงกับ Windows และระบบ *nix แบบดั้งเดิมส่วนใหญ่ โดยเฉพาะ X11
ในเรื่องนี้มีอย่างหนึ่งที่ Android ทำได้ดี โดยพื้นฐานแล้วรันแอปพลิเคชันทั้งหมดในฐานะผู้ใช้คนละคนกัน กล่าวคือมีโฟลเดอร์ home ต่างกัน และมองไม่เห็นแอปอื่น
ถึงอย่างนั้นเครื่องมืออย่าง ManicTime หรือ ActivityWatch ถ้าไม่ติดตั้งปลั๊กอินเบราว์เซอร์ ก็จะติดตามประวัติเบราว์เซอร์ด้วยชื่อหน้าต่าง
https://www.manictime.com/
https://activitywatch.net/
โดยเฉพาะประโยคที่ว่า “UAC [ยังคง] ไม่ใช่ขอบเขตความปลอดภัย” นั้นถูกต้อง เมื่อคุณกดยืนยันหรือป้อนรหัสผ่านเพื่อยกระดับโปรเซส ก็เท่ากับว่ายกระดับเดสก์ท็อปทั้งชุดและทุกอย่างที่กำลังรันอยู่ไปด้วยโดยพฤตินัย