在研究防止CryptoLocker的方法的同时,我看到一篇论坛post,build议使用组策略对象 (GPO)和/或防病毒软件阻止在以下位置的运行访问:
显然,任何写在论坛上的东西都应该谨慎对待。 不过,我确实看到了这样做的好处,主要是因为恶意软件喜欢在这些位置执行操作。 当然,这也会影响到合法的程序。
阻止对这些位置的运行访问有什么缺点?
有什么优势?
恶意软件喜欢从这些位置执行的原因是因为合法的软件喜欢从这些位置执行。 他们是用户的帐户应该有一定的访问权限的领域。
基于我自己的系统和我们的networking上的随机最终用户帐户的快速grep:
%appdata%
现在,我已经安装了Dropbox , Adobe AIR的安装程序和一些Microsoft Office,并在此文件夹中结束。
%localappdata%
join.me和SkyDrive似乎住在这里,或者至less是最近开过的。
%temp%
很多程序,合法的或其他的,都希望从这个文件夹执行。 当您在压缩的安装程序归档文件上运行setup.exe
时,安装程序通常会将其自己解包到此文件的子文件夹中。
%用户资料%
除非用户有特殊的要求,否则它通常是安全的,但是请注意,上述文件夹中的至less一些文件夹可以是具有漫游configuration文件的networking的子集。
压缩的档案
不要直接运行代码,而是通常提取到%temp%
并从那里运行。
至于你是否应该阻止这些领域,这取决于你的用户通常在做什么。 如果他们所需要做的只是编辑Office文档,在午餐时间播放扫雷 ,也许可以通过浏览器访问LOB应用程序等,那么在阻止这些文件夹中的至less一些文件夹中的可执行文件时可能没有太多的麻烦。
显然,同样的方法不适用于工作量不太明确的人。
优点:
试图从这些位置执行的恶意软件将无法运行。
缺点:
尝试从这些位置执行的合法程序将无法运行。
至于你的环境中哪些合法的程序需要这些目录的执行权限,只有你可以说,但是我看到RobM刚刚发布了一个高层次概述的答案 。 阻止来自这些目录的执行会导致你的问题,所以你需要先做一些testing,以确定你将遇到什么问题,以及如何解决这些问题。
这些build议将在我的环境中完美工作。 没有用户可以安装软件,并且从所提到的位置执行无核准的软件。 工作站具有预先安装在工作站映像中的已批准软件,并通过脚本进行更新。
Dropbox,Chrome,Skype等都可以在安装过程中重新定位到更加可接受的“Program Files”安装位置。
只要你有权限pipe理员或域pipe理员(也可能是一个特定的“安装者”帐户)能够运行更新和添加批准的软件,我同意这些build议。
我假设你想要拒绝执行权不仅对这些文件夹,而且从他们开始的整个树(否则,没有意义做你想做的事情)。
这显而易见的后果将是任何位于这些可执行文件将无法运行。
不幸的是,这将包括相当数量的合法应用程序。
%localappdata%和%appdata%是最有问题的:例如,Dropbox,Chrome,SkyDrive将无法正常工作。 大多数自动上传和许多安装程序也将无法正常工作。
%UserProfile%更糟,因为它包含%localappdata%和%appdata%以及其他一些文件夹。
简而言之:如果您阻止应用程序从这些文件夹中运行,那么您的系统可能几乎无法使用。
%temp%是不同的。 虽然您偶尔可以从那里运行合法的程序,但这种情况很less发生,通常很容易解决。 不幸的是,根据用户上下文的不同,%temp%会扩展到不同的文件夹:它可能会以%localappdata%\ temp(在用户的上下文中)或%SystemRoot%\ temp该系统),所以你将不得不单独保护每个位置。
%temp%也是一个不错的select,因为大多数邮件程序在打开邮件程序之前都会保存附件,这对于许多基于邮件的马耳他邮件来说都有帮助。
一个好的方法是在安装系统时(当然还有%SystemRoot%),在C:\ Users \ Default \ AppData \ Local \ temp和C:\ Users \ DefaultAppPool \ AppData \ Local \ \ TEMP)。 Windows将在创build新configuration文件时复制这些文件夹,因此新用户将拥有安全的环境。
您可能希望将%UserProfile%\ Downloads添加到您的列表中:这是大多数浏览器将与用户的下载文件相同并拒绝执行的位置,这也会增加安全性。
在过去的三个月里,我在主工作站上进行了类似的设置。 我的主要用户有权限执行目录或写权限,但从来都没有。
这意味着这个帐户不能引入新的可执行文件。 这是专业人士,我可以执行已经在系统上的程序或由其他帐户安装的程序,但我不能下载任何新程序并运行它,这意味着通过浏览器或其他方式进入的任何恶意软件运行时间要困难得多在我的系统上,简单的DLL注入也不起作用。
正如其他人指出的,主要的问题是一些合法的软件使用我阻止的位置。 在我的情况下:
所以基本上我使用三个帐户,一个是我login的,另一个是正常的用户帐户来执行某些已validation的程序,另一个是pipe理员帐户,为另外两个安装新的软件。
我喜欢这个事实,它迫使我testing任何新下载的软件在虚拟机。
我通过PowerShell启动大部分程序,并有三个shell,每个帐户一个对我来说很好。 这是否适用于您,这取决于您使用的软件的种类有多less。
在开发人员的机器上,这不是真的工作,因为我必须编译我的代码,然后执行它。 所以我对数据驱动器上的代码目录做了一个例外,恶意软件可以扫描所有驱动器并find它。
我正在使用NTFS ACL而不是策略来执行此操作。 这可以防止任何程序运行,但我仍然可以创build一个PowerShell脚本,然后运行它,它可以做足够的损害。
所以,尽pipe它使事情变得更加困难,但它不是100%安全的,但仍能保护您免受当前恶意软件的攻击。
您可以查看这些文件夹,但大多数是数据,正是该文件夹的名称。 例如,您将看到chrome,但实际的可执行文件位于c:\ programs文件夹中。
我阻止除了程序文件夹以外的任何地方运行的所有可执行文件。 只有当我需要安装东西时才允许,而且我从来没有遇到任何问题。
我build议快速search目录,看看你目前在每个目录中有什么。 如果没有任何执行从他们现在按照论坛的指导。 如果您将来遇到问题,只需评估您的select。 无论如何,其中大部分都不应该有可执行文件。