Неге блокталған Android қолданбасы әлі де желі қолданысын көрсетеді
Қолданыс есептегіші бір шекарада байттарды өлшейді, сәтті сұранысты емес. Уақыт терезесін, UID-ге жатқызуды және VPN қызметі қай қолданбаға тиесілі екенін тексеріңіз.
Сіз Android VPN файрволында қолданбаны блоктайсыз, қолданба жұмысын тоқтатады, ал оның қолданыс жолы өсуді жалғастырады. Танымал қорытынды — блок ағып кетті немесе есептегіш бұзылды. Екеуі де туындамайды. Қолданыс жазбасы байттардың қандай да бір бақылау нүктесінде сол сәйкестікке жатқызылғанын айтады; ол қашықтағы қызметтің сұранысты қабылдағаны туралы ештеңе айтпайды. Қай шекара өлшенгенін және қай сәйкестікке жүктелгенін білгеннен кейін екі бақылау бір-біріне қайшы келуін тоқтатады.
Есептегіш байттарды өлшейді, жеткізуді емес
Android трафикті UID-ге жатқызып, оны екі бағытта да санайды және мұны интерфейс шекарасында жасайды, қолданба сұранысы сәтті болған сәтте емес.
Қабылданбаған қосылым әрекеті бәрібір пакеттерді қозғайды: SYN, қайта орнату немесе одан кейінгі қайта жіберулер, сонымен қатар екеуінің алдында болған DNS сұранысы. Ештеңе жеткізілмесе де бұл байттар бар, ал кейбір жолдарда оларды кез келген сүзгі не істеу керектігін шешпей тұрып санайды.
Сондықтан блокталған қолданбаның жолы әрбір сұраныс сәтсіз болса да өсуі мүмкін. Есептегіш «осы сәйкестікке қанша байт жатқызылды» дегенге жауап береді, «осы сәйкестік интернетке жетті ме» дегенге емес. Диаграмма қабылданған ағынды сыпайы түрде қабылданбаған қол алысудан ажырата алмайды, екі бағытты бірге қосатын жиынтық та ажырата алмайды.
Жатқызу UID-ге, белгішеге емес
Жол әр UID бойынша, ал бір UID-ді бірнеше пакет бөлісуі мүмкін, сол уақытта көрінетін қолданба жұмысты өз сәйкестігімен жұмыс істейтін жеке компонентке тапсыра алады. Ортақ WebView процесі салған браузер қойындысы, фондық синхрондау қызметі немесе негізгі қолданбамен қатар орнатылған серіктес пакет — барлығы қолданыс экраны күтпеген атаумен немесе сіз блоктаған қолданба астында көрсетуі мүмкін трафик тудырады. Блокталған пакет пен оның сұраныстарын тасымалдайтын көмекші екі түрлі субъект, ал ереже олардың тек біреуін қамтыды.
Сандар қате көрінсе, белгіні емес, UID-ді салыстырыңыз. Қолданыс API-і UID арқылы сұралады, ал adb shell dumpsys package <package> | grep userId= салыстыратын санды басып шығарады, сондықтан бірдей UID-і екі жазба есептегіш тұрғысынан бір сәйкестік.
Уақыт терезесі сіздің ережеңізден бұрын болуы мүмкін
Қолданыс деректері шелектерге жиналып, мезгіл-мезгіл сұралады, тікелей таратылмайды. Күндік жиынтық блокты қоспас бұрынғы минуттарды, алдыңғы сағаттағы фондық синхрондауды немесе әлдеқашан жолда болған трафикті қамтуы мүмкін. Жинақталған жиынтықты бір қабылданбаған сұраныспен салыстырып, айырманы ағу деп атау — өлшеу қатесі, файрвол табысы емес.
Қысқарақ терезе мен таза бастауды қолданыңыз. Ережені өзгерткен кездегі уақыт белгісін жазып алыңыз, бір жинау аралығын күтіңіз, содан кейін тек одан кейінгі деректерге қараңыз. Ережеден кейін басталатын терезеде жиынтық өсе берсе, зерттейтін нәрсе бар; өсуді тоқтатса, бұрынғы өсу көрсетілген тарих еді.
VPN қызметі сіз конфигурациялаған қызмет болмауы мүмкін
VPN файрволы тек өз қызметі тасымалдайтын трафикті көреді. Егер басқа VPN қолданбасы іске қосылып, белсенді қосылымды алса, сүзгіңіз енді жолда емес, ал оның интерфейсі параметрлерде әлі бар. Қолданба бойынша айналып өту тізімдері мұны әдейі жасайды, ал қолданбаны шығарып тастайтын профиль қолданба кейін жұмыс істесе, ағу болып саналмайды.
IPv4, IPv6 және DNS те алшақтауы мүмкін. IPv4-ті өңдейтін сүзгі IPv6-ны немесе жеке DNS шешушісін сыртта қалдыруы мүмкін, сондықтан қолданба трафигінің бір бөлігі ережелеріңіз ешқашан сипаттамаған жолмен жүреді. Бірдеңені қайта жазбас бұрын VPN-ге қазір қай қолданба ие екенін және алып тастау тізімінің не дейтінін тексеріңіз:
adb shell settings get secure always_on_vpn_app
adb shell dumpsys connectivity
adb shell dumpsys netstats detail
Бір жаңа сұранысты сынап көріп, төрт фактіні жазыңыз
Зиянсыз сұраныс таңдаңыз, оны бір рет орындаңыз және төрт факті жазыңыз: қолданыстағы ереже, қолданбаның UID-і, желі күйі және уақыт. Содан кейін сүзгіңіз ағынды тіркеді ме, ал мақсат немесе шлюз сол қосылымды көрді ме, соны тексеріңіз. Екі жақта анықталған бір ағын — дәлел; жиынтық сома — олай емес.
Қорғауға болатын қорытынды не қабылданбағанын және қай бақылаудың оны растағанын атайды. «Есептегіш өсті» — табыс емес, «барлық қолданыс есептегіштері жалған» да табыс емес. OSI деңгейінің ұраны мұны шешпейді: адал жауап — есептегіш те, блок та бір уақытта дұрыс бола алады, әрі олар әртүрлі нәрселерді сипаттайды. Android-тың NetworkStatsManager анықтамасы бұл шелектердің қалай сұралатынын және жатқызылатынын құжаттайды.