如何预防零日攻击


21

传统上,所有防病毒程序和IPS系统都使用基于签名的技术来工作。但是,这对于防止零时差攻击没有太大帮助。

因此,如何预防零时差攻击?


1
除了我在下面建议的答案中的要点之外,即使您使用零日攻击利用某些软件也是如此。如果您不在公共互联网上运行该系统,那么您就不会直接受到攻击。因此,防火墙是您的朋友,如果您真的想运行某些新型的安全风险软件,则可以在云中的其他网络上进行设置,从而使其受到黑客攻击,而不会影响任何其他系统。
汤姆H

0天威胁和未知威胁正是在这种名称的防病毒/反恶意软件中使用启发式的原因。不幸的是,由于性能下降,启发式方法经常被禁用。
约翰·加迪尼尔

0days只是一个类别,该类别的每个成员彼此之间都非常不同。您不能采用考虑针对0days实施安全性的方法。最终,成功的秘密入侵与无法使用的利用或检测到的利用之间的区别才是安全系统的质量。就像有人说的那样,专注于检测和快速响应时间。监视每个系统,流量并保持安全更新。这是一项全职工作,至少应该如此。
Aki 2012年

可能得到从这里一些很好的答案太- security.stackexchange.com
Bratch

Linux无处不在。没有窗户。问谷歌。
尼尔·麦圭根

Answers:


37

我认为您在那里承认了一个有趣的系统管理员真相,那就是

除非您可以将被黑可能性降低到零,否则最终在某个时候,您将被黑

这只是数学和概率的基本事实,对于事件的任何非零概率而言。该事件最终发生...

因此,有2条黄金法则可以减少这种“最终被黑客入侵”事件的影响:

  1. 最小特权原则

    您应该将服务配置为以用户身份运行,以最少的权限来完成服务的任务。即使他们侵入计算机,也可能包含黑客。

    例如,黑客使用Apache Web服务器服务的零日漏洞侵入系统,很可能仅限于该进程可以访问的系统内存和文件资源。黑客将能够下载您的html和php源文件,并可能查看您的mysql数据库,但是他们不应该能够获得root权限或将其入侵范围扩展到可通过Apache访问的文件之外。

    许多默认的Apache Web服务器安装默认情况下会创建“ apache”用户和组,您可以轻松配置主Apache配置文件(httpd.conf)以使用这些组运行apache。

  2. 特权分离原则

    如果您的网站仅需要对数据库的只读访问权限,则创建一个仅具有只读权限并且仅对该数据库具有访问权限的帐户。

    SElinux是创建安全性上下文的不错选择,app-armor是另一个工具。巴士底狱是硬化的先前选择。

    通过将已被破坏的服务的功能分离到自己的“盒子”中,减少任何攻击的后果。

银牌规则也不错。

使用可用的工具。(您极不可能像安全专家那样出色,因此请发挥他们的才能来保护自己。)

  1. 公钥加密提供了出色的安全性。用它。到处。
  2. 用户是白痴,强制执行密码复杂性
  3. 了解您为何对上述规则设置例外。定期检查您的例外情况。
  4. 让某人负责失败。它使您保持警惕。

我认为这是事实-根据定义,您可以采取多种措施来阻止0天漏洞利用。如果您具有易受攻击的软件,那么您就具有易受攻击的软件-因此,唯一的措施是减少任何影响和攻击面。关于防火墙的要点,尽管值得牢记的是,例如,可以通过电子邮件发送针对MS Outlook的0天攻击。
2012年

2
是的,有关MS邮件产品的观点。但是,有一种类似于邮件防火墙的比喻,例如,禁用了所有VBscript,ActiveX,OLE类型扩展的任何人都将完全错过所有黑客攻击,非常幸福地不知道大屠杀... ;-)
Tom H

1
+1,但符合Silver规则1:“谁认为他的问题可以使用加密技术解决,不了解他的问题,也不了​​解加密技术。” -Needham / Lampson;)
花生

@Peanut我喜欢公共密钥,因为它避免了使用密码。经过理论上的入侵之后,无需重置密码,因为无需重置密码,只有公钥受到了破坏。甚至可以使用哈希密码数据库来验证或离线破解帐户。
汤姆H

@TomH我的评论很简单:)有趣,因此在您的系统中,服务器可能会向客户端发送随机数+其他数据进行签名,而客户端使用用户名+签名的数据进行登录?
花生2012年

16

白名单,不要黑名单

您正在描述黑名单方法。白名单方法会更安全。

独家俱乐部永远不会尝试列出所有无法参加的人;他们会列出所有可以进入的人,并排除不在列表中的人。

同样,试图列出所有不应该访问计算机的内容也注定了。限制访问程序/ IP地址/用户的简短列表会更有效。

当然,像其他任何东西一样,这涉及一些权衡。具体来说,白名单非常不便,需要不断维护。

为了进一步权衡,您可以通过断开计算机与网络的连接来获得高度的安全性。


+1这对Tom H的回答来说是一个很好的补充。
乍得·哈里森

1
危险在于这样的规则集变得无法理解,维护,解释,审计的规模。这是致命的。
rackandboneman

11

检测比预防更容易(更可靠)

根据定义,您无法阻止零日攻击。正如其他人指出的那样,您可以做很多事情来减少零日攻击的影响,但是您应该这样做,但这还不是故事的结局。

让我指出,此外,您应该投入资源来检测何时发生攻击,攻击者做了什么以及攻击者如何进行。全面而安全地记录黑客可能进行的所有活动,不仅可以使检测攻击变得更加容易,而且更重要的是,可以确定造成的损害以及从攻击中恢复所需的补救措施。

在许多金融服务环境中,就执行交易的延迟和开销而言,安全成本如此之高,以至于将资源集中于检测和逆转欺诈性交易,而不是采取旨在首先防止欺诈性交易的广泛措施,更有意义。 。从理论上讲,没有任何措施可以100%有效,因此无论如何都需要建立检测和逆转机制。而且,这种方法经受住了时间的考验。


1
+1是,我想如果您不知道它的发生,您将无法响应...如果再有机会回答,我可能会停留在关于SANS 6步的问题上……
Tom H

+1,非常正确。预防需要审计。审计不能证明系统没有任何故障。
Aki 2012年

@Tom,您可以随时编辑答案。
老职业

4

零时差并不意味着签名未知。这意味着没有软件用户可以使用的补丁,可以消除漏洞。因此,IPS对于防止利用零日漏洞非常有用。但是您不应该仅仅依靠它。创建并遵循可靠的安全策略,加固服务器,更新软件,并始终执行“计划B”


3

Grsecurity或SELinux可以通过强化内核来帮助防止0天攻击。

来自网站的引用“只有grsecurity可以抵御零日攻击和其他高级威胁,这些威胁为管理员节省了宝贵的时间,而漏洞修复程序则可以用于发行和生产测试。”


2

如果您使用的是Apache,则诸如mod_security之类的模块可以帮助您防止常见的攻击媒介。使用mod_security,您可以

  • 阻止看起来像SQL注入攻击的请求
  • 阻止将某些RBL的IP地址列入黑名单的客户端
  • 如果满足您定义的某些条件,则将请求重定向到其他地方
  • 根据客户所在国家/地区阻止请求
  • 自动检测并阻止常见的恶意机器人

...还有更多。当然,使用像mod_security这样的复杂模块,也很有可能也会阻塞您的实际客户端,而在服务器端,mod_security会增加一些开销。

还必须保持服务器软件的更新,并确保已禁用将不使用的每个模块和守护程序。

严格的防火墙策略是必须的,在许多情况下,如SELinux或grsecurity之类的附加安全增强功能可能会阻止攻击。

但是,无论您做什么,坏蛋都非常有耐心,很有创造力和技能。有一个详细的计划,当您被黑客入侵时该怎么办。


1

我想添加一些古铜色的规则:

  1. 如果暴露,则不要运行不需要运行的内容。

  2. 不要让自己成为值得进行专门针对性攻击的目标。

  3. 无论如何,防止可能发生的任何这种有针对性的攻击通常都是不经济/不切实际的。检查谁可能对破坏内容有浓厚的兴趣,然后从那里开始。

  4. 认为“最小化外部可用信息”和“远离众所周知的默认值”无非是出于默默无闻的安全(通常被误认为“毫无价值”,而不是“本身不足的一层”),而忽略它是危险的自大。门上有可破解的锁不会将小偷拒之门外,但很可能会阻止狼。


1

带有庞大安全套件的machine肿机器通常会使平庸的PC变成恐龙,而四核则变成普通的旧PC。我已经确定了足够的(数千)了解这是真的。如果您了解没有什么是100%安全性,那么性能的代价将随着安全性呈指数下降,而感染的可能性仅以线性方式下降。在对数千种风险的真实世界测试中,当我停止查看比较结果时,大多数结果最高为90%,这意味着10%的感染未被发现或为时已晚。而PC延迟则增加了200%至900%。OSX有一个理想的情况,它的安全性并没有得到改善,但是由于目标较小,2010年非电话/平板电脑产品的市场份额仅为4%,因此攻击的风险较小。这将会改变,但我不会改变我的理念是保持操作系统整洁,精简和卑鄙。对于XP和Win7,我也是如此。我拥有大量的维修工具,但只需要一个应用程序即可修复所有被感染的人,并且只需要10到20分钟,而不是几小时或几天。

我的方法有效;

  1. 对用户进行教育,不要单击安全警告,除非您真的知道它们是什么,而不是数百个ROgues,它们是良好警报的副本。无法培训的人会获得非管理员帐户以及禁用了Java和JS的沙盒式浏览器。但是,如果我为他们启用了此功能,请放心,只需15到20分钟即可恢复或修复。

    1. 系统还原功能很好,但是有很多限制,其中之一是Documents文件夹和User Temp文件夹中的项目受到保护,可以在其中安装恶意驱动程序并启动并在下次启动时感染您。

    2. UAC在许多方面都很有用,但是我从来没有使用过PITA,而是依靠更好的工具来检测启动和/或新流程,包括但不限于:

      • Winpatrol.com 仍然是我在安全性方面的最佳投资,对其他人仍然免费。它涵盖了80%的问题,在这些问题中,启动前在添加启动程序之前,这些启动程序可以被用户提示检测,禁用或删除。但是,如果您是急切无法做出决定的人,可以服用避孕药或仅使用Windows Defender。不是最佳的覆盖率,还是最高的bang / buck率之一。.性能的保护/损失或延迟率的上升。

      • 迈克·林(Mike Lin)的启动实用程序是存储在注册表的十几个位置中的最轻的启动程序拦截器

      • Script Guard是适用于Kiddy脚本的有用的脚本拦截器

      • ProcessGuard是一个已失效的旧程序,对于任何新的可执行文件,它都像防火墙一样工作,但会让您烦恼,但在您接受可信源或忽略或阻止不可信源之后,它既安全又精益。

      • 对于浏览器来说,黑名单加载项很像Web of trust(WOT),但Chrome具有类似的方式,但程度较小。

      • 黑名单可能会占用大量HOSTS文件,如果您使用此列表(每10分钟以4KB的块进行扫描时,> 1MB就会很大。),但如果这样做,我强烈建议您禁用DNS缓存服务,以减少每个对防火墙特权活动。

      • 如果您不真正将其用于电子邮件和其他事情,请禁用文件索引,因为它产生了AV套件,一次又一次地扫描访问的每个文件。

有些人可能会不屑一顾,但我节省了保护PC并在精简环境中运行的时间。定期检查以确认我的安全性是在晚上进行的,证明我的无忧行为是合理的。我仍然有一千个HJT日志,combofix.txt日志和Runscanner日志,以支持我对解决方法和更好的安全性/性能平衡的看法。

  • 避免不小心下载/安装可能会执行scips的exe或Windows媒体文件(例如.WMA,.WMV),而不是.mp3或.avi。

  • 避免所有以大按钮为目标的广告都下载或更新您的安全性,这可能会分散您对河马点com..cnet等下载聚合器的免费更新的注意力。要特别小心。一些网站使用第三方广告,没有内容控制权。

  • 我在10页的Powerpoint演示文稿中记录了一个perect示例,如果有人感兴趣,请询问。忽略上述主语很容易使您受到感染。

现在所有。

自1975年以来,托尼·斯图尔特EE。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.