如何限制应用程序可以对我的计算机执行的操作?

信息安全 应用安全 视窗
2021-08-31 13:16:18

通常当我在我的计算机上安装应用程序时,我意识到我需要信任该应用程序,因为它可以对我的计算机做任何想做的事情,例如访问文件、听我的键盘、监控我的网络等等。

这种感觉很不安全。例如,在 Windows 7 上,我如何控制或限制我安装的应用程序可以在我的计算机上执行的操作?是否有任何软件工具,或者我应该在每次安装应用程序或如何处理软件安装时创建一个新用户帐户?

在 Android 上,我可以在安装应用程序之前查看应用程序需要哪些资源,Windows 7 是否有类似的东西?

2个回答

很好的问题。不幸的是,没有真正的好方法可以做你想做的事。

我不知道有什么方法可以提前查看桌面应用程序可以访问哪些资源。相反,唯一的方法是在沙盒或受限环境中运行它,从而限制它可以做什么。有两种通用方法:

  1. 使用沙盒。 您可以在限制其功能的沙箱中运行应用程序。但是,您可能需要为沙箱指定策略,或使用受严格约束的默认策略运行它。在 Windows 上,很难找到运行通用软件的优秀沙盒软件;最好的选择可能是Sandboxie惠普还构建了一个名为Polaris的沙盒系统,但据我所知,它从未在商业上发布过。在 Linux/BSD 平台上,查看 Plash、Systrace、Capsicum、Subterfugue 和Rainbow

  2. 使用虚拟机。 一个更简单、更实用的解决方案是使用虚拟机并将您的应用程序安装在虚拟机映像中(在来宾操作系统中)。这将让您运行应用程序,并有理由相信它不会逃离虚拟机。如果应用程序不合法地需要访问您的任何个人信息,这可能会正常工作,但如果它确实需要这种访问权限,您可能会发现很难为应用程序提供对您数据的部分但不完整的访问权限,设备和其他资源。

    在 Linux 上,QubesVirtics提供了一个安全的桌面,它使用虚拟机对您运行的每个应用程序进行沙箱处理,尽管我相信它们是研究质量的原型,而不是强大的成品。如果您愿意处理未完成的软件,它们也可能值得一看。

对于本机应用程序,这是不可能的,但对于 .Net 应用程序却是。

.Net 框架在许多方面具有特定的授权功能。我非常了解这些限制的存在,因为它们通常是导致某些事情失败的原因(由于权限太少)。

回到 .Net 1.1 时代,我记得有一个 .Net 传道者(是的,这确实是他的头衔,甚至印在他的卡片上!)声称未来的管理员只需要托管代码,因为他们可以管理或限制应用程序的权利。InAdministrative Tools或 inC:\Windows\Microsoft.NET\Framework\v1.1.4322\您会发现ConfigWizards.exe可以定义不同的安全区域。使用mscorcfg.msc管理控制台管理单元,您可以对其进行微调,甚至为特定应用程序制定特定规则。

我刚刚在更新的.Net 应用程序(Paint.Net)上尝试过,但这个工具似乎不再适用。我找不到任何替代以太。显然他们已经为 .Net 4 改变了一些东西

不过,我希望有一个漂亮的透明 GUI 来配置它。我讨厌 Paint.Net 在检查更新时访问我的网络摄像头的想法;-)(我不是说它会这样做,只是我不喜欢这个想法)。