首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从“漏洞为王”到“携漏生存”

美创科技总经理 柳遵梁

网络安全史从某种程度上是一部漏洞(包括弱配置)攻防史,漏洞在网络安全史上一直处于核心地位,无论是黑客还是白帽,都以漏洞挖掘和利用(检测)能力作为其技术水平的重要标签。

在年复一年的攻防拉锯战中,攻防双方的水平都在不断上升。非常遗憾的是,在这个过程中,作为真实利害方:最终用户的风险并未大幅降低,似乎安全漏洞越来越多,安全相关的成本费用也越来越高,安全风险反而越来越大。而作为这场拉锯战的另一个主角,软件开发商似乎也收益不多,开发的软件在安全性上也没有多大进步或者远远落后于攻防双方。

在这个网络安全风险威胁越来越大的今天,我们来重新审视流行的“漏洞为王”的防御策略是否合适,也许到了需要改变防御思路的时候了。

近10年漏洞分布和发展

我们来看360CERT发布的一些漏洞统计报告:

图:近十年漏洞数量披露趋势,数据来源:360CERT

从最近10年的漏洞披露趋势报告,我们很悲伤的发现,漏洞数量并没有因为我们的投资和努力而减少,反而在2017年出现披露漏洞的大幅度上升。2017年披露漏洞的大幅度上升,应该可以确定为由于2016年底和2017年度的勒索病毒大爆发,使各种漏洞阳光化,加速了漏洞披露的速度。

图:近几年漏洞数量按月分布,数据来源:360CERT

根据360CERT发布的报告,从漏洞危害程度和利用效果分布来看,甚至也没有通过我们的努力降低高危漏洞数量。漏洞似乎完全脱离我们的努力我行我素,按照自己的节奏行动。当然同样可以看到2017年的爆发情况,这无非是因为勒索病毒的影响漏洞被阳光化了。

以漏洞攻防为核心的网络安全防御困境

从360CERT的10年漏洞趋势发展报告可以明显的告诉我们当前的困境,这个时候你只能无助的感叹:道高一尺,魔高一丈。当然从乐观的来说,由于我们的有效防御迫使黑客们去寻求更多的漏洞以进行攻击,漏洞攻防是有效的。但是从悲观的角度来说,如果大家都不做太多防御,其最终结果是否也是类似的。

我们可以简单的分析一下其中的原因:

1、攻击分析思路决定了防御方的弱势

“不知攻焉知防”是当前以漏洞攻防为核心的网络安全体系的核心观点或者指南之一。从简单的攻防战役来讲,具有绝对的真理性,毕竟知己知彼,百战不怠。但是网络攻防和一般的战场战役不同,你不知道你的攻击者是谁。古语云:人心难测,这还是建立在你知道对方是谁的情况下。当你不知道对方是谁,又需要去揣摩对方的想法,有所纰漏难以避免。攻击分析主导的网络攻防注定防御方是处于弱势地位,注定了必需存在一定概率的牺牲,甚至是大概率的牺牲才可以达到“知攻”的目的,然后才能改善“知防”。

2、网络攻防力量对比不均衡

在真正的战场上,只有绝对的力量才是制胜法宝,以少胜多的案例在历史上极少发生才会成为经典。在网络攻防战场上,黑客方占据着绝对的优势力量,是白帽、安全厂商、开发商和用户所无法匹配的。这种力量对比不平衡是有其深刻的内在动因:黑客是逐利的,巨大的利益可以聚集海量的资源。而作为防御方的白帽,开发商和最终用户则没有足够的利益驱动去完成这场对抗。

我们以一个简单的漏洞发现为例子:黑客发现一个具有高利用价值的漏洞,其收益可以达到几百万甚至几千万,同样这个漏洞被白帽发现则收益非常少,甚至是不可兑现的。

3、软件代码是“不完美”的人写的

构成应用程序的软件代码是人写的,是人写的代码必然会在代码中犯下很多错误。事实上,在软件开发实践中,代码不仅仅是人写的,而且绝大部分代码是由3年之内的年轻工程师写的,知识和经验上的缺乏必然使代码中充满漏洞。即使发现了漏洞,由于高昂的修复成本,很多时候软件开发商也缺乏足够的动力去修复相关的漏洞。

4、漏洞修复和应急响应的成本极为高昂

对于很多用户而言,很多漏洞即使已经发布了补丁也是不可修复的。比如数据库漏洞,由于修复漏洞内置的巨大业务风险,使很多运行中的数据库不敢去应用补丁修复漏洞。另外,由于网络对抗的极强专业性和巨大成本消耗,很少有机构具有快速反应和入侵对抗能力。

5、几乎不可防御的后门

很多软件会出于各种不同的目的预留后门,也许这些后门预留的初始目的并不是恶意的。但是随着时间的推移,这些后门可能会被坏人掌握。甚至开发商有可能由于各种不同原因,从一个不带恶意目的的后门最终演变为一个恶意攻击的后门,毕竟现在无害并不意味着未来无害。

未来的漏洞防御之道

在信息化和数字化渗透到日常生活每一个角落的今天,网络安全风险已经成为了一支高悬的达摩克利斯之剑,不知道哪天会彻底摧毁我们的生活。为了我们的生活可以延续,以漏洞为中心的攻防之战需要延续。

在延续漏洞攻防的同时,我们也可以想想新思路新方法:我们需要承认漏洞存在是一种客观现实,是不可消灭的。即使当前漏洞全部修复也并不意味着没有漏洞,只是没有被发现而已。甚至漏洞已经存在于黑客的武器库之中,只是没有被曝光而已。从这个角度出发,也许和漏洞共存共生(携漏生存)是一种可以选择的方案。

如何携漏生存,我们可以从以下几个方面去考虑:

1、低风险的自动化或者半自动化补丁应用机制

在企业级应用中,打补丁总是一门高风险的专业活。我们需要一种低风险的补丁自动化或者半自动化应用机制,至少对于高危的漏洞补丁提供。通过自动化补丁机制可以帮助用户及时止损,避免风险敞口不断扩大。在补丁应用实践中,虚拟补丁作为补丁应用的快速响应具有比较好的价值。

2、防止应用程序被静态或者动态代码注入

可以采用签名、md5校验等方式来防止应用程序被注入。一个无法被静态和动态代码注入的应用程序,攻击者只能通过应用自身的开放接口或者漏洞来进行攻击和伤害。

3、控制漏洞危害范围

所有的漏洞都由应用程序产生,操作系统,数据库从本质上只是一个复杂的应用程序而已。我们可以考虑隔离漏洞影响,让漏洞影响不会脱离应用软件本身。简单点说,一个应用程序的漏洞不会成为黑客的媒介,危害到其他应用程序和数据,让损害范围保持在漏洞应用程序本身。

4、业务逻辑伤害控制

在控制了漏洞危害范围之后,所有伤害将会局限于应用程序自身伤害和应用程序业务逻辑伤害。对于业务逻辑伤害则可以通过Web防火墙和数据库防火墙等安全措施来加以控制和消除。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190415A0K6PY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券