Identifique las aplicaciones de acceso a Internet "deshonestas"


14

Por el momento tengo una aplicación / servicio / widget / plugin / cronjob lo que sea, acceder a Internet de forma regular. Podría entrar en los detalles de mi problema específico, pero prefiero tener una respuesta que me permita encontrarlo por mi cuenta y en el proceso aprender más sobre Ubuntu.

Estoy usando dnstopen este momento para mostrar todas las solicitudes de DNS que se realizan en mi red. Actualmente por razones de argumentos, hay una solicitud que va a weather.noaa.govun ciclo de 15 minutos. Es probable que sea un widgit meteorológico, aunque he revisado mis procesos y no he encontrado nada, y la solicitud proviene de mi computadora.

Entonces, la pregunta, ¿cómo determino a qué proceso está accediendo weather.noaa.gov?

No quiero pasar por un proceso de eliminación eliminando cada servicio / complemento / aplicación para resolver esto. Me gustaría encontrar una manera de determinar qué proceso está haciendo esa solicitud de DNS.

Si tuviera un "firewall de aplicación" decente, la solicitud nunca se habría hecho. Pero este es un escenario de "el caballo ya ha salido" y me gustaría encontrar ese proceso "deshonesto" que está haciendo esa solicitud de DNS.

Respuestas:


7

Si no le importa tener un bucle infinito ejecutándose durante algún tiempo, puede ejecutar netstat continuamente y filtrar la salida para la dirección IP de la computadora a la que se conecta su programa. Sugiero usar direcciones IP en lugar de nombres de dominio porque es mucho más rápido, lo que reduce el tiempo que toma cada llamada de netstat y, por lo tanto, aumenta las posibilidades de capturar su proceso. Debe ejecutar el comando netstat como root, si cree que el proceso no pertenece al usuario actualmente conectado. Entonces, primero use nslookup para calcular la IP del dominio:

nslookup weather.noaa.gov

Para mí esto da en este momento: 193.170.140.70 y 193.170.140.80. Ahora puedes poner un bucle infinito de netstats. La salida puede filtrar usando grep (y descartar STDERR).

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

Por supuesto, edite las direcciones IP en el ejemplo anterior. Este ejemplo está sondeando las conexiones TCP y UDP (-tu), no realiza la resolución DNS (-n) y enumera los procesos (-p). Si cree que hay tiempo suficiente para hacer la resolución DNS, simplemente omita la opción -n para netstat y coloque el dominio para grep en lugar de la IP. Puede detener el ciclo infinito simplemente presionando CTRL + c

Espero que esto ayude, Andreas

PD: Lo sé, esta no es la forma ideal, eficiente o limpia de hacerlo, pero para una búsqueda única esto debería ser suficiente.


Voy a intentarlo y ver si puedo atrapar a mi culpable
Meer Borg

3

También podría "romper" la aplicación mediante la adición de / etc / hosts del FQDN al que se está conectando. Dele algo de IP no enrutable como 10.1.2.3 (o 127.0.0.1) y vea qué se rompe.


Normalmente lo configuro a 0.0.0.0 ya que no se enruta, el tipo de aplicaciones de las que hablo rara vez anuncian su "maldad"
Meer Borg
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.