让我们假设一些事情:
备份确实每隔 X 分钟运行一次,但我保存的内容应该是永久的。
已经有防火墙和病毒扫描程序,但我却遭遇了零日攻击。
我使用的是 Windows。(不过,您也可以将 Linux / OS X 部分内容附加到您的答案中)
问题在于
任何软件都可以更改我的用户文件夹内的任何内容。
篡改文件可能会让我丧命,无论是访问、修改还是擦除它们。
所以,我想问的是:
是否存在基于权限的方法可以默认禁止程序以任何方式访问我的文件?
延伸上一个问题,我能确保某些程序只能访问某些文件夹吗?
除了使用 Comodo 之外,还有其他更省事的方法吗?或者我可以让 Comodo 更省事吗?
例如,解决方案应该能够抵御(别跑):
del /F /S /Q %USERPROFILE%
答案1
您可以将重要数据放在只有组1Administrators
才具有写入权限的文件夹中。任何想要写入/删除此数据的程序都必须通过 UAC 进行提升,从而为您提供一定的防篡改安全性。
扩展这个想法,您可以将所有文件保存到临时位置,然后通过 Windows 资源管理器(或类似程序)手动复制/移动到此安全文件夹,从而减少需要提升并授予此文件夹访问权限的程序数量。explorer.exe
本身限制了写访问权限TrustedInstaller
,从而提供了进一步的防篡改保护。
这一切都假设恶意软件无法绕过 Windows 的 ACL 安全性。并且还假设您对提升哪些程序非常谨慎。
虽然它不像将每个程序限制在一组文件夹中那么严格,也不会阻止大部分用户配置文件被擦除,但它将要保护那些您认为足够重要的文件。
但是它是否比常规备份更安全或者更少麻烦则完全是另一回事。
1如果是敏感数据,也应该限制读取访问权限,以消除恶意软件上传给攻击者的可能性。
答案2
你必须白名单软件方法与可写的目录将不可执行控制风格。实际上,这意味着软件限制策略并且只安装您认为值得信赖的软件。
白名单:用户是受限(标准)用户。软件仅以管理员身份安装到非用户目录;即程序文件等。
可写但不可执行的位置:任何用户可以写入的目录都通过 SRP 标记为不允许 .dll 或 .exe 从中运行。您可以将它们复制到那里,但它们不会运行。用户不是管理员这一事实确保了这一点。浏览器劫持到临时目录不再有效。下载病毒以取乐;无所谓。
答案3
汤姆,你有没有想过使用虚拟机并完全分离两个操作系统来测试软件?
也许像 VMWare Player 之类的东西(免费)..
答案4
您可以在不同的用户帐户下运行应用程序。例如,设置一个用于 Web 浏览的辅助用户帐户,然后使用“以...身份运行”功能以该用户身份执行该程序。也可以使用批处理文件或 PowerShell 脚本来完成此操作,以使其更加透明。这不会像虚拟化提供的隔离那样安全,但在大多数情况下,这意味着必须发生两次攻击(恶意软件首先进入辅助帐户,然后权限提升到管理员或 LOCAL_SYSTEM)。
软件限制策略也可以实施(http://technet.microsoft.com/en-us/library/bb457006.aspx),这将拒绝未经授权的程序,或降低已授权但不受信任的程序的权限。当我使用 Windows XP 时,我曾为我的 Web 浏览器和电子邮件程序使用过这种策略,以便它们放弃管理员权限,但它也可以将程序的访问权限降低到与来宾帐户相同的程度。这是一个相当复杂的设置,需要相当多的组策略使用经验,但可以在启动给定的可执行文件时自动提供与“以...身份运行”方法相同的隔离。
总而言之,@indifferentDrum 建议的虚拟机在大多数情况下都是最简单的方法,并且可能会更安全,但性能损失较小,但对于不同的威胁,值得考虑结合使用各种方法 - 您最好考虑设置沙盒帐户和运行方式快捷方式以进行网页浏览,同时在虚拟机中启动完全不受信任的软件,并使用软件限制策略防止意外从您的下载文件夹执行,该策略拒绝运行该文件夹中的任何内容。