我正在使用 MacBook Pro,并且从未安装过 Chrome、Google Earth 或任何明显的 Google 产品。
刚刚安装了 Little Snitch(Mac 没有好的免费防火墙吗?)并且发现 CURL 每隔几分钟就会向 Google 发送一次请求,就像向 Google 发送更新请求等等。
Little Snitch 并未透露是什么程序设置了这些请求。
那么,我怎样才能知道 Google 是如何进入我的机器的,为什么它会发送这么多请求(大约每分钟一次)以及如何删除它(它存在除了帮助 Google 监视我之外还有其他目的吗)?
答案1
刚刚安装了 Little Snitch(Mac 没有好的免费防火墙吗?)
有人可能会说,OS X 确实不需要第三方防火墙。它内置了一个,虽然 Little Snitch 确实能完成这个任务,但我看不出它有什么实际用途。如果只是为了让用户感到疑神疑鬼就好了。大多数时候,你都想检查某个应用程序是否在“打电话回家”,但在你启动某个程序时收到数百条警报后,它可能会变得比实用更烦人。
如果您不想花任何钱,请坚持使用内置的。
CURL 每隔几分钟向 Google 发送一次
这几乎可以任何事物。如果您通过地址簿或日历启用了 Google 同步,则将contactsd
连接到 Google。如果没有,则很可能任何您安装的应用程序会 ping Google 以检查您是否已连接到互联网。虽然不是很高级,但您多久会检查ping google.com
一次终端?
这里的主要问题是 Little Snitch 不会报告正在调用curl
或 的进程ping
。您可以在此处找到如何找出父进程的描述Security.SE 答案基本上,您可以为二进制文件创建一个包装器脚本来找出谁调用了它们:
sudo cp /usr/bin/curl /usr/bin/curl.bin
sudo nano /usr/bin/curl.wrapper
来,复制这个:
#!/bin/sh
date >> /var/tmp/curl_ppid.log
ps -f -p $PPID >> /var/tmp/curl_ppid.log
exec curl.bin "$@"
使用 保存CtrlO,然后按↩。现在:
sudo chmod 755 /usr/bin/curl.wrapper
sudo touch /var/tmp/curl_ppid.log
sudo chmod a+w /var/tmp/curl_ppid.log
sudo ln -sf /usr/bin/curl.wrapper /usr/bin/curl
现在您可以curl
通过检查 中新创建的日志文件来查看是谁打来的电话/var/tmp/curl_ppid.log
。
要检查哪个进程属于某个 PID,请使用:
ps -fp <pid>
<pid>
您从日志文件中获取的进程 ID 在哪里。
如果你想逆转这个过程,这就足够了:
sudo cp /usr/bin/curl.bin /usr/bin/curl