Identificare le applicazioni di accesso a Internet "canaglia"


14

Al momento ho un'applicazione / servizio / widget / plugin / cronjob qualunque, accedendo a Internet su base regolare. Potrei entrare nei dettagli del mio problema specifico, ma preferirei avere una risposta che mi permetta di trovare la colpa da solo e nel frattempo saperne di più su Ubuntu.

dnstopAttualmente sto usando per visualizzare tutte le richieste DNS che vengono fatte sulla mia rete. Attualmente per ragioni di argomenti, c'è una richiesta che va weather.noaa.govsu un ciclo di 15 minuti. È probabilmente un widget meteo anche se ho controllato i miei processi e non ho trovato nulla e la richiesta arriva dal mio computer.

Quindi la domanda, come faccio a determinare a quale processo accede weather.noaa.gov?

Non voglio passare attraverso un processo di eliminazione chiudendo ogni servizio / plugin / applicazione per capirlo. Vorrei trovare un modo per determinare quale processo sta effettuando quella richiesta DNS.

Se avessi un "Application Firewall" decente la richiesta non sarebbe mai stata fatta. Ma questo è uno scenario "cavallo già scappato" e vorrebbe trovare quel processo "canaglia" che sta facendo quella richiesta DNS.

Risposte:


7

Se non ti dispiace avere un ciclo infinito in esecuzione per un po 'di tempo, puoi eseguire netstat continuamente e filtrare l'output per l'indirizzo IP del computer a cui il tuo programma si sta connettendo. Suggerisco di utilizzare gli indirizzi IP anziché i nomi di dominio perché è molto più veloce, riducendo il tempo impiegato da ogni chiamata netstat e quindi aumentando le possibilità di intercettare effettivamente il processo. È necessario eseguire il comando netstat come root, se si ritiene che il processo non appartenga all'utente attualmente connesso. Quindi, prima usa nslookup per capire l'IP del dominio:

nslookup weather.noaa.gov

Per me questo dà al momento: 193.170.140.70 e 193.170.140.80. Ora puoi creare un ciclo infinito di netstats. L'output che puoi filtrare usando grep (e scarta STDERR).

while [ true ] ;  do netstat -tunp 2>/dev/null | grep -e 193.170.140.70 -e 193.170.140.80  ; done

Ovviamente modifica gli indirizzi IP nell'esempio sopra. Questo esempio sta analizzando le connessioni TCP e UDP (-tu), non esegue la risoluzione DNS (-n) ed elenca i processi (-p). Se pensi che ci sia abbastanza tempo per eseguire la risoluzione DNS, ometti semplicemente l'opzione -n ​​per netstat e metti il ​​dominio per grep anziché IP. È possibile interrompere il ciclo infinito semplicemente premendo CTRL + c

Spero che questo aiuti, Andreas

PS: lo so, questo non è il modo ideale, efficiente o pulito per farlo, ma per una ricerca di una volta questo dovrebbe essere sufficiente.


Ci proverò e vedrò se riesco a catturare il mio colpevole
Meer Borg,

3

È inoltre possibile "interrompere" l'applicazione tramite l'aggiunta di / etc / hosts dell'FQDN a cui si è connessi. Dagli un IP non instradabile come 10.1.2.3 (o 127.0.0.1) e vedi cosa si interrompe.


Normalmente lo imposto su 0.0.0.0 poiché non instrada, il tipo di App di cui parlo raramente annuncia la loro "cattiveria"
Meer Borg
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.