如何防止零日攻击

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

因此,可以做些什么来防止零日攻击?

我想你承认有一个有趣的系统pipe理的真相,就是这样

除非你可以减less被黑客入侵可能性,否则最终会在某个时候被黑客入侵

这只是math和概率的一个基本事实,即事件的任何非零概率。 事件最终发生…

所以减less这个“最终被黑客”事件的影响的两条金科玉律是:

  1. 最小特权的原则

    您应该将服务configuration为以完成服务任务所需的最less权限的用户身份运行。 即使在入侵机器之后,这也可能包含黑客。

    例如,黑客利用Apache Web服务器的零日攻击闯入系统,极有可能仅限于该进程可以访问的系统内存和文件资源。 黑客将能够下载你的HTML和PHP源文件,并可能查看你的MySQL数据库,但他们不应该能够得到root或扩展他们的入侵超出Apache可访问的文件。

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

  2. 特权分离的原则

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

    SElinux是创build安全上下文的好select, app-armor是另一个工具。 巴士底狱是以前的select硬化。

    减less任何攻击的后果,把被攻陷的服务的权力分成自己的“盒子”。

银牌规则也不错。

使用可用的工具。 (你不可能像安全专家那样做,所以要用自己的才能来保护自己。)

  1. 公钥encryption提供了极好的安全性。 用它。 到处。
  2. 用户是白痴,执行密码复杂
  3. 了解你为什么要对上述规则作出例外。 定期检查你的例外。
  4. 抱着某人来解释失败。 它让你的脚趾。

白名单,不要黑名单

你正在描述一个黑名单的方法。 白名单方法会更安全。

独家俱乐部绝不会列出所有不能进入的人, 他们会列出所有可以进来的人,并排除那些不在名单上的人。

同样,试图列出所有不应该访问机器的东西也是注定的。 限制访问程序/ IP地址/用户的短名单将更有效。

当然,就像其他任何事情一样,这需要一些权衡。 具体而言,白名单极其不便,需要不断的维护。

要进一步权衡,你可以通过从机器上断开networking来获得很好的安全性。

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

根据定义,你不能防止零日攻击。 正如其他人所指出的那样,你可以做很多事情来减less零日攻击的影响,你应该,但这不是故事的结尾。

让我指出,另外,你应该投入资源来检测什么时候发生了攻击,攻击者做了什么,攻击者是如何做到的。 对黑客可能进行的所有活动进行全面而安全的logging,这两者都可以更容易地检测到攻击,更重要的是,可以确定从攻击中恢复所需的损害和修复。

在许多金融服务环境中,执行交易的延迟和开销方面的安全成本非常高,因此将资源集中用于检测和撤销欺诈性交易,而不是采取旨在首先防止这些交易的广泛措施。 理论上说,没有任何措施是100%有效的,所以还是需要build立检测和反转机制。 而且,这种方法经受住了时间的考验。

零日不意味着签名是未知的。 这意味着软件的用户没有可用的补丁,从而closures漏洞。 所以IPS对防止利用零日漏洞很有用。 但是你不应该只依靠它。 创build并遵循可靠的安全策略,硬化您的服务器,更新软件,并始终有一个“计划B”

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

网站引用“只有grsecurity才能提供针对零时差和其他高级威胁的保护,这些威胁可以为pipe理员提供宝贵的时间,而漏洞修复则可以用于分发和生产testing。”

如果您正在使用Apache, mod_security等模块可以帮助您防止常见的攻击媒介。 用mod_security你可以

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

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

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

严格的防火墙策略是必须的,在很多情况下,SELinux或grsecurity等其他安全增强function可能会阻止攻击。

但是,无论你做什么,坏人都是非常有耐心,非常有创意,非常熟练。 有一个详细的计划,当你被黑客做什么。

我想添加一些铜牌规则:

  1. 如果暴露,不要运行不需要运行的东西。

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

  3. 防止任何此类有针对性的攻击往往是不经济/不切实际的。 检查谁可能有一个严重的利益打破什么,并开始在那里。

  4. 考虑到“尽量减less外部信息”和“远离众所周知的违约”,只不过是默默无闻的安全(经常被误解为“毫无价值”,而不是“本身不足”的层面)而忽略了这种危险的傲慢。 门上的一把可拆卸的锁不会阻止贼,但可能会阻挡狼。

一台拥有巨大安全套装的臃肿机器往往会让平庸的个人电脑进入恐龙和四核成普通的老电脑。 我已经有足够的固定(数千)来理解大部分是正确的。 如果您不知道什么是100%的安全性,性能的成本会随着安全性而呈指数级下降,而感染的概率只会呈线性下降。 当我停止比较时,大多数结果是在数千个风险的真实世界testing中达到90%,意味着10%的感染未被检测到或太晚。 而个人电脑的潜伏期则增加了200至900%。 OSX有一个理想的情况,那就是在安全方面基本没有问题,但由于2010年非手机/平板电脑产品的市场份额只有4%,所以攻击的风险较小。这将会改变,但我不会改变我的理念,保持我的操作系统干净,精益和卑鄙。 我为XP和Win7做同样的事情。 我有一个修复工具的高度武库,但只需要一个应用程序来解决每个人感染,只需要10至20分钟,而不是几小时或几天。

我的方法,工作;

  1. 教育用户,不要点击安全警告,除非你真的知道他们是什么,而不是几百个好警报的副本。 那些不能被训练的人很容易得到非pipe理账户和沙盒浏览器,禁用了Java和JS。 但是如果我为他们启用它,不用担心,只需15〜20分钟即可恢复或修复。

    1. 系统恢复是好的,但有很多限制,其中一个是在您的文档文件夹和用户临时文件夹中的项目受到保护,可以安装stream氓驱动程序,并在下次启动时启动并感染您。

    2. UAC对很多事情都很有用,但是我从来没有使用这种PITA,并依靠更好的工具来检测初创公司和/或新的stream程,包括但不限于:

      • Winpatrol.com仍然是我为安全做出的最好的投资,对其他人也是免费的。 它涵盖了80%的初创公司在被执行之前被添加的问题,并且可以被用户提示检测和禁用或者删除。 但是,如果你是一个焦虑的人,不能做出决定吃药或者只是使用Windows Defender 。 不是最好的覆盖率,而是爆炸/降压比率最高的一个。保护/损失性能或延迟比率上升。

      • 迈克林的启动工具是存储在十几个registry位置的初创公司最轻的拦截器

      • Script Guard是Kiddy脚本的一个有用的脚本拦截器

      • ProcessGuard是一个老式的不存在的程序,对于任何新的可执行程序来说都像防火墙一样工作,但是要求您批准,但是在您接受可信来源或忽略或阻止不可信来源之后,它是安全和精益的。

      • 您的浏览器的黑名单附加组件与Web of Trust(WOT)相似,但Chrome的部分属于类似的行为,但范围较小。

      • 一个黑名单可以得到巨大的HOSTS文件,如果你使用这个(> 1MB是巨大的,每隔10分钟扫描4KB块,但如果你这样做,我强烈build议禁用DNScaching服务,以减less每个应用程序的冗余定期扫描活跃与防火墙privies。

      • 禁用文件索引,如果你真的不使用它的电子邮件和东西,因为它产生的AV套件扫描每一次访问,每次访问的文件一次又一次..多么多余。

有些人可能会对我头顶的这个部分列表置之不理,但是我可以节省时间保护我的电脑并在精益环境中运行。 定期审核以确认我的安全是在晚上完成的,certificate我无忧的做法是合理的。 我还有一千个HJT日志,combofix.txt日志和Runscanner日志来支持我对治疗的看法和更好的安全/性能平衡。

  • 避免不小心下载/安装exe或Windows媒体文件,可以执行scipts(如.WMA,.WMV)不像.mp3或.avi。

  • 避免所有广告目标大button来下载或更新您的安全性 ,这可能会分散注意力,免费更新下载聚合器像hippo点com .. cnet是不错的。 要特别小心。 有些网站使用第三方广告,并且没有内容控制。

  • 我在一个10页的PowerPoint演示文稿中logging了一个正确的例子, 如果有人感兴趣,请问。 忽略上面的问题很容易让你感染。

所有现在。

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