防火墙说我正在开发的程序正在尝试连接到 Internet

信息安全 防火墙 病毒 入侵
2021-08-25 20:23:22

我对此感到非常困惑,因为该程序完全由我自己开发,并且没有任何方法/功能可以连接到任何网络/互联网。

我是一名软件工程师,但对计算机安全一无所知,所以当我在 Windows XP Professional 上的 Visual Studio 调试器中运行它时,我的 Comodo 防火墙显示一个警报,我们称之为“MyProgram.exe”正在尝试连接到互联网。

由于该程序没有理由连接到 Internet,因此我选择阻止它。在防火墙日志的最后,MyProgram.exe 的 5 次连接尝试记录在列出的几分钟时间跨度内,整个事件被列为“到目前为止,防火墙已阻止 1 次入侵”。

(顺便说一句,程序的真实名称和驻留文件夹非常独特,我绝对不会误认为其他程序。)

完整的源代码由我编写,除了由 antlr 自动生成的解析器和词法分析器。它们自动生成的源代码也是由我编写的。

它似乎试图连接到的两个 IP 的反向查找被列为属于同一家大型互联网公司。

(我使用的是最新的病毒扫描程序,这台电脑从未出现过病毒问题。我用进程资源管理器检查了正在运行的进程,没有发现任何异常。)

这可能是防火墙中的错误,例如误报吗?

难道连接尝试实际上来自不同的应用程序并且由于它在调试器中运行而与我的程序不匹配?

在这种情况下,您的想法/步骤是什么?

我认为需要更多信息来回答这个问题,但我不确定什么是相关的,什么是重要的或不重要的,那么什么是重要的?


更新

非常感谢您的回答。

我正在写一些关于我的发现的详细信息,以防其他人有类似的问题,以便更容易找到。

让我感到困惑的主要事情是以下组合:

  • 它看起来很随意;换句话说,我无法将它与我所做的可能触发它的事情相匹配
  • 我无法重现它(无论是使用调试器还是使用独立的 exe)
  • 我开发这个程序已经一年多了,这从未发生过
  • 在此之前不久,另一个程序(我几天前才下载)试图连接到互联网,这似乎没有必要/我也没有触发。

为了简短起见,其他程序的连接尝试肯定与此无关,很可能只是更新检查。

这些 IP 所属的公司是 Akamai,在再次搜索后,我发现了一篇描述“Akamai 与 Microsoft 之间的联盟”和“可用于....NET 开发人员工具(如 Visual Studio(R))的服务”的文章

因此,在那之后,我认为它很可能是 Visual Studio 并再次尝试重现它,最后在调试期间单击 + 符号以展开监视窗口中的 CommonTree 变量时意外地这样做了。 因为我现在总是可以用它来重现它,所以这一定也是第一次触发它的原因。

所以事后看来,我第一次发生的事情是我点击它触发连接尝试,因为我阻止它或让它超时,这五次尝试都属于视觉工作室的一次连接尝试,并在之后展开或折叠 CommonTree 变量这样的连接尝试不会触发另一个连接尝试,这使得它看起来非常随机。
所有这一切以及“调试运行本身”(没有点击)不会触发的事实是我一开始无法将它分配给这个非常具体的触发器的原因:
“在调试期间扩展 CommonTree 变量在监视窗口中”。

3个回答

先问几个问题:

  1. “同一家大型互联网公司”是什么意思?
  2. 是 MyProgram.exe 还是 MyProgram.vshost.exe 试图连接?
  3. 当您在没有调试器的情况下以发布模式运行应用程序时会发生什么?

可能是 Visual Studio 调试器正在尝试下载 CLR 程序集的调试文件,而防火墙将请求误认为来自您的应用程序,而不是托管您的应用程序的调试器。

注入程序的调试代码与 Visual Studio 之间的连接可能基于 Internet 协议,而防火墙可能会将其与 Internet 连接混淆。你知道,那些桌面防火墙必须向用户证明它们物有所值。

众所周知,当通过 Eclipse IDE 调试 Java 程序时,Windows 防火墙会显示警告。Windows 防火墙提供了足够的信息来明确原因。

虽然调试连接是最可能的原因,但仍然可能存在真正的威胁,例如感染您的程序的病毒。但是如果没有防火墙确切发现的详细信息(协议、源 IP 地址、目标 IP 地址、源端口、目标端口),则无法回答。

很有可能是误报。

如果可能,您可以禁用阻止规则并运行(因为您是应用程序的开发人员)

netstat -anob

这将显示 MyProgram.ext 是否正在建立连接以及与什么建立连接。

如果它确实在建立连接,那么您可以查找它正在与之通信的 IP(例如属于 MS 的东西或奇怪的 IP)。