我怎么知道一个软件只做作者声称的?

信息安全 源代码 后门
2021-08-12 03:50:39

如果不是程序员或计算机专家,我如何知道某个特定程序或任何软件通常没有隐藏的不想要的功能,从而损害隐私和安全?

4个回答

您可以知道某些软件是否只执行它所宣布的内容,就像您可以知道他们在餐馆为您提供的食物是否有毒一样。简而言之,你不能,但社会已经提出了各种方案来解决这个问题:

  • 您可以听取朋友和评论家的意见,以了解给定餐厅的食物是否具有良好的声誉。
  • 您可以取样并将其发送到实验室,该实验室将寻找许多(但不是全部)已知的有毒物质。
  • 您可以很好地询问是否可以在厨师准备菜肴时观察他。
  • 厨师对他的顾客对食物质量感到满意具有既得的商业利益,而幸福尤其包括不死。
  • 社会以最严厉的惩罚下毒者,通常可以假设厨师知道这一点。
  • 如果您太担心,您总是有不在那里吃饭的极端选择。

所有这些都可以直接转移到软件世界中。确定软件质量和遵守其发布行为的极端方法包括非常昂贵和无聊的东西,比如通用标准,归结为,基本上,知道谁制作了程序以及使用什么工具。

替代答案:每个软件都有错误,因此可以 100% 保证它不会完全按照它应该做的事情做。(顺便说一句,这个断言包括在您汽车中嵌入的十几台小型计算机中运行的软件。)

你不能,至少不能 100% 准确。作为一名程序员,我可以很容易地编写任何我想要的代码,而且不一定只是宣传的内容。

然而,并非所有意外活动都是恶意的。我假设您更担心恶意活动。即使这样也不是 100% 有可能一直检测到,但还是有希望的。

您可以使用监控网络流量、文件活动等内容的软件来查找软件行为异常的线索。例如(我知道这只是一个基本工具),您可以使用Fiddler查看特定应用程序是否通过 http(s) 访问 Internet。(是的,我知道那里有更好的工具。Fiddler 只是第一个想到的。)在 Windows 上,您可以使用Process Monitor获得更多洞察力。其他平台也存在类似的工具。

还有一些其他服务可供您使用,它们将为您执行分析。

尤其是随着软件变得越来越大、越来越复杂,即使是专家也无法*回答这个问题。在这种情况下,应用程序的隐私和安全最好通过使用沙盒强制访问控制方法来处理。这些方法背后的想法是,软件在一个系统中运行,该系统控制它可以做什么,并且你允许它只做你期望它做的事情。如果操作正确,您可以限制可能的连接,并在程序尝试访问您不希望它访问的文件时收到通知。非常先进的方法可用于通过代理服务监控内存或解密网络流量。

简而言之,如果你不能理解它所做的一切,答案是限制它可以用它在其中运行的东西(操作系统)做的一切。

Ken Thompson 在他广为人知的 ACM 图灵奖演讲“对信任的反思”(现在几乎正好是 30 年前!)中说:“你不能相信不是你完全自己创造的代码。” 在实践中,商业软件与其他商业产品也不例外,因为那些在市场上有好名声的生产商通常更有可能变得更好。但是,对此没有绝对的保证。几十年前,我从一个有病毒的知名生产商那里得到了软盘。在那种情况下,我个人认为这不是公司内部任何人的恶意行为,而是公司的某些计算机被外部病毒感染。然而,显然不可能 100% 排除公司内部人员将后门引入软件的可能性,无论其 CEO 是否知道这一点。恕我直言,后门可能是一个极其关键的问题,因为网络战争正在世界上迫在眉睫。政府的秘密机构可以通过某种方式(通过金钱、胁迫甚至恶意软件)将此类后门植入某些通常用于确保通信安全的软件(例如与数字签名相关的软件)并出售某些不友好或潜在不友好的外国或立即或在某些适当的稍后时间点(“定时炸弹”等)利用后门来实现其破坏目标国家关键基础设施等的目标. 等等 Stuxnet、Flame 和 Gauss 是几个名称,它们应该能说明潜在的恶意攻击者的能力。恕我直言,后门可能是一个极其关键的问题,因为网络战争正在世界上迫在眉睫。政府的秘密机构可以通过某种方式(通过金钱、胁迫甚至恶意软件)将此类后门植入某些通常用于确保通信安全的软件(例如与数字签名相关的软件)并出售某些不友好或潜在不友好的外国或立即或在某些适当的稍后时间点(“定时炸弹”等)利用后门来实现其破坏目标国家关键基础设施等的目标. 等等 Stuxnet、Flame 和 Gauss 是几个名称,它们应该能说明潜在的恶意攻击者的能力。恕我直言,后门可能是一个极其关键的问题,因为网络战争正在世界上迫在眉睫。政府的秘密机构可以通过某种方式(通过金钱、胁迫甚至恶意软件)将此类后门植入某些通常用于确保通信安全的软件(例如与数字签名相关的软件)并出售某些不友好或潜在不友好的外国或立即或在某些适当的稍后时间点(“定时炸弹”等)利用后门来实现其破坏目标国家关键基础设施等的目标. 等等 Stuxnet、Flame 和 Gauss 是几个名称,它们应该能说明潜在的恶意攻击者的能力。现在,网络战争正在世界上迫在眉睫。政府的秘密机构可以通过某种方式(通过金钱、胁迫甚至恶意软件)将此类后门植入某些通常用于确保通信安全的软件(例如与数字签名相关的软件)并出售某些不友好或潜在不友好的外国或立即或在某些适当的稍后时间点(“定时炸弹”等)利用后门来实现其破坏目标国家关键基础设施等的目标. 等等 Stuxnet、Flame 和 Gauss 是几个名称,它们应该能说明潜在的恶意攻击者的能力。现在,网络战争正在世界上迫在眉睫。政府的秘密机构可以通过某种方式(通过金钱、胁迫甚至恶意软件)将此类后门植入某些通常用于确保通信安全的软件(例如与数字签名相关的软件)并出售某些不友好或潜在不友好的外国或立即或在某些适当的稍后时间点(“定时炸弹”等)利用后门来实现其破坏目标国家关键基础设施等的目标. 等等 Stuxnet、Flame 和 Gauss 是几个名称,它们应该能说明潜在的恶意攻击者的能力。