Та VPN зөвшөөрлийн товчийг товшиход диалог хариу үйлдэл үзүүлэхгүй байна. VPN апп эсвэл сервер эвдэрсэн гэсэн дүгнэлт хийх нь байгалийн юм, тиймээс хүмүүс нууц үгээ сэргээж, DNS-ээ сольж эсвэл клиентийг дахин суулгадаг. Ихэвчлэн эдгээрийн аль нь ч гэмтлийг хөнддөггүй, учир нь Android саадаар дамжин ирж буй хүрэлтийг хаядаг бөгөөд VPN зөвшөөрлийн дэлгэц нь яг ийм мэдрэмтгий зөвшөөрлийн мэдэгдэл юм. Товшилт товчид хэзээ ч хүрдэггүй.

Хамгаалалт яг юуг няцааж байна

Android нь мэдрэмтгий харилцан үйлдлийг tapjacking-аас хамгаалдаг бөгөөд энэ үед өөр цонх диалог дээр сууж, товшилтыг хулгайлах эсвэл хоёрдмол утгатай болгодог. View нь View.setFilterTouchesWhenObscured-ээр үүнд нэгддэг бөгөөд өөр цонхыг хэсэгчлэн эсвэл бүрэн бүрхэж байна гэж тэмдэглэсэн үед үйл явдал MotionEvent.FLAG_WINDOW_IS_OBSCURED-тэй ирдэг. Ийм үед үйл явдлыг буруу газарт хүргэхийн оронд хаядаг. Android 12 (API 31) системийн зөвшөөрлийн гадаргуу дээр итгэмжлэгдээгүй хүрэлтийг блоклох замаар ижил хамгаалалтыг өргөжүүлсэн тул бусад аппууд хүлээн авах overlay-ээс ирсэн товшилтыг зөвшөөрлийн диалог няцааж чаддаг.

Гурван зүйл тогтмол саад үүсгэдэг: бусад апп дээр харуулах зөвшөөрөлтэй апп, агуулга зурж буй хүртээмжийн үйлчилгээ, дэлгэц бичигч эсвэл шүүлтүүрийн хэрэгслийн хөвөгч виджет. Зарим үйлдвэрлэгчийн дэлгэцийн функцууд өөрсдийн давхарга нэмдэг тул ижил Android хувилбартай хоёр утсан дээр ижил диалог өөр өөр ажиллаж болно. Хэсэгчлэн бүрхсэн цонх FLAG_WINDOW_IS_PARTIALLY_OBSCURED-г тогтоодог бөгөөд товч түүнийг харахаас өмнө хүрэлтийг хаядаг. Энэ нь дэлгэцийн шинж чанар, сүлжээний биш. Хүрэлтийг хаях мөчид VPN сервер рүү юу ч илгээгээгүй тул серверийн талын ямар ч өөрчлөлт үр дүнд нөлөөлж чадахгүй.

Үхсэн товшилтыг холболтын алдаанаас ялгах

Энэ ялгаа нь бүх оношилгоо бөгөөд аравхан секунд зарцуулна. Хэрэв товшилтыг үл тоомсорлож, диалог яг хэвээр үлдвэл саад нь локал юм. Хэрэв диалог хаагдаж, дараа нь алдаа гарч ирвэл зөвшөөрөл хүлээн авагдсан бөгөөд та VPN аппын өөрийн үйл явдлын мэдээлэл шаардлагатай өөр үе шатанд шилжсэн байна.

Локал уншилтыг хүсэлт илгээж буй апп холболт хийхийг оролдсон эсэхийг шалгаж баталж болно. Зөвшөөрлийн диалог дэлгэц дээр байх үед гар барих оролдлогыг хэзээ ч бүртгэдэггүй клиент сүлжээнд хүрээгүй байна.

adb shell cmd appops get com.example.vpn SYSTEM_ALERT_WINDOW
adb shell settings get secure enabled_accessibility_services

Overlay зөвшөөрөл хэнд байгаа, аль хүртээмжийн үйлчилгээ идэвхтэй байгааг жагсаагаад, ажиллаж байгаа зүйлтэй харьцуулна уу. Платформын хамгаалалтыг өөрөө бүү унтраа; нуугдсан цонх таны өмнөөс зөвшөөрлийн мэдэгдэлд хариулахыг сэргийлж байгаа нь тэр юм.

Саадыг арилгаад ердийн урсгалыг дахин оролдоно уу

Эхлээд VPN зөвшөөрөл хүссэн аппыг тодорхойлж, ямар зөвшөөрөл өгч байгаагаа мэдээрэй. Дараа нь дараа нь хэрэгтэй байж болох өргөн зөвшөөрлийг цуцлахын оронд тухайн overlay-г өөрийн тохиргоогоор нь зогсоо. Дэлгэцийн шүүлтүүр ихэвчлэн өөрийн апп дотор унтраалгатай; хөвөгч виджет хаах удирдлагатай; үйлдвэрлэгчийн дэлгэцийн горим Дэлгэцийн тохиргоонд унтраалгатай.

Үүний дараа VPN апп руу буцаж, зөвшөөрлийг дахин хүс, ингэснээр диалог шинээр үүснэ. Хэрэв товшилт одоо ажиллаж байвал overlay-ийн нийцлийн зан төлөвийг тохируулах эсвэл холбогдох хугацаанд унтраалттай үлдээж, хүрэлтийн хамгаалалтыг идэвхтэй байлга.

Аль цонх хариуцлагатайг хэлж чадахгүй бол нэг нэгээр нь авч, өөрчлөлт бүрийн дараа зөвшөөрлийн диалогыг дахин оролдоно уу. Бичигчийн удирдлагын самбар эсвэл хөвөгч товчлол ихэвчлэн буруутан байдаг бөгөөд ажиллахаас яг өмнө нь таны авсан нь хариулт юм.

Замдаа унтраасан холбоогүй бүх зүйлээ сэргээ. Дэлгэцийн шүүлтүүр эсвэл шөнийн горим дайсан биш; диалогтой давхцаж буй тодорхой цонх л дайсан.

Диалогыг давахын тулд юу хийх ёсгүй

Товчийг дарахын тулд танил бус апп-д хүртээмжийн эрх бүү өг, үүний тулд туслах апп бүү суулга. Тэдгээр нь VPN-д эрх олгодог дэлгэц дээр хамгаалалт няцаахыг зорьж буй чадварыг яг олгодог.

Диалогыг оролтын хэрэгслээр автоматжуулж болохгүй. Энэ нь хортой overlay-той ижил үр дүн гаргаж, шалтгааны талаар юу ч заадаггүй.

Удирдлагатай төхөөрөмж дээр VPN өөрчлөлтийг хязгаарласан бодлого нь администраторын шийдвэр. Overlay туршилт нь түүнийг тойрч гарах зөвшөөрөл биш. Мөн хариу үйлдэлгүй зөвшөөрлийн товч нь гэрчилгээний баталгаажуулалтыг сулруулах эсвэл бүртгэлийн итгэмжлэлийг өөрчлөх шалтгаан биш: аль ч тохиргоо локал хүрэлтийн саадыг арилгахгүй.

Хэрэв одоо ч бүтэхгүй бол яг зан төлөвийг мэдээлнэ үү

Дүгнэлтийг биш, диалогыг тайлбарла: аль апп зөвшөөрөл хүссэн, диалог нээлттэй үлдсэн эсвэл хаагдсан, үл мэдэгдэх эх сурвалж эсвэл хүртээмжийн анхааруулга зэрэг бусад мэдрэмтгий мэдэгдлүүд мөн товшилтыг үл тоомсорлож байгаа эсэх, төхөөрөмжийн загвар ба Android хувилбар, мөн таны авсан overlay болон хүртээмжийн жагсаалт.

Тэнд байхдаа дэмжлэгийн эзнээс дахин нэг асуулт асуу: төхөөрөмжийн бодлого VPN тохиргооны өөрчлөлтийг ер нь хязгаарладаг уу. Удирдлагатай блок нь үл тоомсорлосон товшилтоос өөр харагдана, аль нь болохыг мэдэх нь хоёр дахь тойргийг хэмнэнэ.

Энэ багц нь бүрхэгдсэн хүрэлтийн асуудлыг эвдэрсэн оролтын төхөөрөмж, царцсан диалог эсвэл бодлогын блокоос ялгадаг. Мөн дараагийн хүнд дэлгэц рүү эсвэл сүлжээ рүү харах эсэхийг хэлдэг.

Android tapjacking заавар нь бүрхэгдсэн цонхны нөхцөл ба энэ зан төлөвийн ард байгаа API-г хамардаг. Нотлох мөр хэрэгтэй бол товчид хүрээгүй үйл явдлаас FLAG_WINDOW_IS_OBSCURED болон FLAG_WINDOW_IS_PARTIALLY_OBSCURED-г хай. Нээлттэй үлдсэн диалог нь барьж авах ёстой зүйл, учир нь товшилт өөр цонх руу хүргэгдэхийн оронд түдгэлзсэнийг харуулдаг.

Холбоотой нийтлэлүүд