VPN-app ber om kontakter og tilgjengelighet: hva du bør tillate
En VPN trenger én nettverksautorisasjon. Tilgjengelighet, kontakter og sertifikatinstallasjon trenger sin egen begrunnelse, som en rutefunksjon ikke kan gi.
Installasjonsprogrammet ber om nettverkstilgang, deretter om kontakter, tilgjengelighet og en sertifikatinstallasjon. Bare den første forespørselen hører til jobben. Den andre skjermen er der den faktiske avgjørelsen ligger.
Vurder hver forespørsel mot en funksjon du valgte, på plattformen du kjører. Ingen universell tillatelsesliste dekker alle VPN-produkter, og en lang liste beviser ingenting i seg selv.
Den ene tillatelsen jobben virkelig trenger
Android ber brukeren godkjenne en VPN-tjeneste gjennom en systemdialog før noen tunnel starter, og tjenesten til appen erklærer BIND_VPN_SERVICE slik at systemet kan binde seg til den. Operativt gjør appen rutingarbeidet. Samtykket kommer fra personen som holder enheten, i en dialog som navngir appen, og å trekke det tilbake senere er en støttet handling.
Apple-plattformer uttrykker den samme ideen gjennom en nettverksutvidelse pluss en installasjonsgodkjenning i stedet for en tillatelsesskjerm. Windows bruker en driver for en virtuell adapter og en melding om hevede rettigheter. To former, én betydning: dette programmet kan håndtere pakker. Ingenting i den autorisasjonen dekker å lese adresseboken din eller å utstede en egen sertifikatmyndighet.
Ekstra tilgang er en separat tillatelse med separate virkninger. En ruteklient som vil ha den, trenger sin egen begrunnelse.
Der de ekstra forespørslene trenger sin egen historie
En tilgjengelighetstjeneste kan lese skjerminnhold og handle på dine vegne, noe som er langt utover ruting. Enhetsadministrasjon kan håndheve låsepolicyer og slette data. Et brukerinstallert rotsertifikat lar den som har den samsvarende nøkkelen lese trafikk som TLS ellers ville beskytte.
Enhver av disse kan være legitim. Produkter for styrte enheter og foreldrekontroll kan trenge policymakt, og et støtteverktøy kan trenge tilgjengelighet for å lede deg gjennom innstillingene.
Kravet er sporbarhet: forespørselen peker på en navngitt funksjon, og den funksjonen er synlig i produktet du installerte. En kontaktforespørsel uten en kontaktrettet skjerm har ingenting å forklare. Krypteringsargumentet overføres heller ikke, fordi beskyttelse av pakker ikke sier noe om hvem vennene dine er. Et legitimt produkt kan likevel be om for mye gjennom et buntet bibliotek, og det er en mangel å ta opp, ikke en forbrytelse å melde.
Noter forespørselen og funksjonen den hører til, og bestem deg så. Den noten er også det du viser støtten når en funksjon bryter sammen etter et avslag.
Å lese forespørselen på enheten
Butikkoppføringen beskriver intensjonen, mens den installerte pakken beskriver virkeligheten. Spør pakkebehandleren hva som er erklært og hva som er innvilget før du godkjenner noe annet. Paret betyr mest når en oppføring og et manifest er uenige.
To kommandoer dekker det meste:
adb shell dumpsys package com.example.vpn | grep -E "requested permissions|install permissions" -A 30 adb shell cmd appops get com.example.vpn
Den første lister erklærte mot innvilgede tillatelser, og det er sammenligningen som avdekker et for bredt manifest. Den andre viser app-ops ved kjøring, inkludert spesialtilganger som aldri vises som vanlige tillatelser. Der utviklerverktøy mangler, les de samme fakta på innstillingsskjermene til plattformen.
De skjermene tar ett minutt og trenger ingen programvare. Tilgjengelighet, enhetsadministrasjon og sertifikatlagring lister hver for seg appene som har tillatelsen.
Å bestemme, og så begrense skaden
Gi nettverksautorisasjonen til en klient du valgte, og behandl hver ekstra forespørsel som sin egen avgjørelse. Avslå dem uten en samsvarende funksjon, og se hva som bryter. En ruteklient som feiler når kontakttilgang blir avslått, ba aldri om kontakter på dine vegne.
Å trekke tilbake én tillatelse slår vanligvis ut en enkelt funksjon uten å avinstallere appen eller rive ned hver profil. Koble til på nytt etterpå og bekreft at tunnelen fortsatt etableres.
Skill de to spørsmålene en dialog ofte slår sammen: hva dette programmet kan gjøre på enheten, og hva operatøren gjør med trafikken når tunnelen er oppe. Det første besvares her. Det andre krever en lagringspolicy, og ingen dialog leverer en.