App Android che accedono alle impostazioni DNS?

2

Ho il mio dispositivo Android con root e solo one RootTool app (che è abbastanza popolare e mi sembra degno di fiducia, e che uso per ottimizzare il telefono) con accesso root. E ricordo di aver impostato correttamente le impostazioni DNS su OpenDNS. Durante l'eliminazione di un problema di rete, le impostazioni My DNS selezionate e sono state modificate .

Si è scoperto che un'app Video player ha causato questo cambiamento, insieme ad alcuni annunci pubblicitari nella barra di notifica. Dopo aver disinstallato l'app, ho trovato il mercato pieno di app con video simili, tutte senza accesso root, ma con accesso alle impostazioni del dispositivo.

Due domande:

  1. DNS è davvero un'impostazione normale per Android? Non appare nel menu delle impostazioni. Può qualsiasi app senza accesso root?
  2. Quanto è pericoloso il controllo dell'indirizzo su un server sconosciuto?
posta user117 31.10.2012 - 12:09
fonte

2 risposte

3

In realtà è possibile impostare i server DNS nell'interfaccia utente del telefono, scegliendo un IP statico nelle impostazioni avanzate delle connessioni di rete. Secondo una domanda su StackOverflow , queste impostazioni possono essere modificate a livello di codice come a condizione che sia impostata l'autorizzazione WRITE_SETTINGS , utilizzando il seguente codice:

android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_USE_STATIC_IP, "0");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS1, "192.168.0.2");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS2, "192.168.0.3");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_GATEWAY, "192.168.0.1");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_NETMASK, "255.255.255.0");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_IP, "1");

Se hai attivato Debug USB, le impostazioni possono anche essere modificate dal software sul PC, senza requisiti di autorizzazione o interazione dell'utente.

Nella seconda parte della tua domanda: , questo è sicuramente un problema di sicurezza. Se un'app imposta il server DNS su un server canaglia, può reindirizzare il traffico verso qualsiasi indirizzo IP che desidera, facilitando un attacco man-in-the-middle. Combinato con strumenti come BeEF, sslstrip e sslsniff, è quasi banale rovinare completamente la tua esperienza di navigazione.

    
risposta data 31.10.2012 - 12:23
fonte
1

Questo codice non funzionerà su Android 3.0 e versioni successive a meno che l'app non sia installata nella partizione / system / app. Quelli ora sono impostazioni protette.

Inoltre, non risponde alla domanda di impostazione del DNS su dati mobili invece di WiFi.

    
risposta data 28.04.2013 - 18:28
fonte

Leggi altre domande sui tag