您的位置:首页 > 业界新闻

互联网安全防御之道

2016-09-05 22:19 260 查看

前言

互联网安全在时下炙手可热,12306,网易邮箱,唯品会,天涯,小米等等账户信息的泄露,无不敲响互联网安全警钟,互联网安全其本质是黑客和开发者之间的攻防战争,既然是战争就有相通性,就可以借鉴战争的一些基本思想来实施防御。苏联元帅米·尼·图哈切夫斯基在对第一次世界大战以及国内战争经验的基础上,提出一种名为:大纵深作战理论的思想,该思想的核心是:多点布防,以点带面,多面成体,纵深打击及防御。在攻击和防御上均有典型应用,那我们今天就大纵深作战理论来谈一谈如何在互联网安全中进行有效实践。

纵深防御整体框架



整个防御分解到如下几层实施处理:展现层,网络层,代理层,接入层,逻辑层和存储层,每层都有对应的方法和策略,下面具体逐层讲解:

展现层

展现层分为app客户端以及web网页端,app客户端主要有DEX加壳保护,内存防dunp,资源文件保护,防二次打包以及防调试保护等等,现在移动互联网化,所以防御战场很多转向移动app端处理,特别是金融和游戏领域显得尤为重要。另外一种就是web网页端,虽然现在网页版比较少,但是急于可动态调整的H5版本化也逐渐流行,所以这一块的防护也是不容忽视,主要是js的混淆加密,以及页面混淆加密机制。

网络层

网络层是中间人攻击的主要手段,所以信息的脱敏变得尤为重要,数据的加密传输,HTTPS的加密传输协议甚至自定义加密传输协议(特别适用于app客户端)就显得比不可少,数据脱敏可以采取非对称加密,但是非对称加密有一个比较大的问题,cpu资源耗损较大,如果能在数据传输阶段就直接采用不可逆加密使最好的,例如密码加密传输可以直接采用MD5加签传输,即使在网络层获取也无从得知明文,或者说得知明文的代价很大。

网络层还有一种就是类似云防御机制的WAF系统,通过流量导入,对接口请求的参数进行整体过滤防御,例如xss攻击,sql注入,恶意文件后门传输等可以做到有效防御,WAF可以采取流量复制也可以采取流量清洗的模式,只要前端WAF网络层的性能可观,原则上可以选择流量清洗的模式,因为流量复制的一个比较大的问题就是无法实施阻断,只能事后通知,及时性上面会稍显不足。

代理层

代理层主要是指类似nginx的代理层,这一层是流量进入系统的最后一个环节,所以nginx代理层的作用也非常重要,主要防护措施可以有:白名单限制,refer域名限制,以及流量控制等等。例如某个不法IP在一段时间之内访问频次过高,就直接将此ip下发到防火墙一层,直接通过网络层把非法IP封杀过滤掉,例如小米的秒杀系统就有此做法。

接入层

以上所有的层都是停留在非系统核心层,也就是说之前其实都没有到达业务处理的重要关口,那么接下来要说的接入层其实就可以说是系统业务处理的第一层关卡了,在这一层业务逻辑以及用户行为的一些数据都可以获取到,那这一层就什么好的防御措施和方法呢?

接入层基于以上阐述的特点:请求数据和行为数据均可以获取,我们需要一个急于行为以及业务数据的智能风险识别系统来进行防护,这个系统有这样的特点:基于历史数据进行智能模型建模,线上实时行为数据采集通过模型计算出本次访问的风险系数,业务系统可以依据风险系数进行有效防御。这个系统要做好有价值的一个关键因素是数据,通过大量的线上数据喂给算法进行学习,算法会依据数据吐出一个模型框架,这个模型框架的准确度关系到实时风控的有效性。一个好的风控系统除了有大量有价值的数据之外,其次就是算法,算法的有效性直接决定了模型的有效性。刚才所阐述的都是风控系统里面的识别层,一个完整的风控系统还应该具备另外一个模块层,那就是防御层,它需要实现有效的阻断防御工具,例如:12306的看图选物,阿里的拖动条就是典型的防御工具。另外一点接口加签是一个在接入层常用的做法,特别是app客户端访问的接口。

逻辑层

接入层之后就是逻辑层,逻辑层负责进行数据运算的,所以在这一层主要还是一点,就是数据的脱敏,以及加密算法的选择。例如密码,在逻辑层密码不应该显示打印,而且在对密码加密的算法选择上需要精细考量,为什么呢?加密算法是一个cpu耗损型运算,而密码又是一个极其敏感的数据,简单加密很有可能惨遭破解,那如何平衡之间的关系就显得很重要了。建议密码存储不能做简单的一次hash运行算,可以通过倒置,混淆,重复叠加多次hash运算来实现。另外对于逻辑层还需要主意逻辑漏洞的防护,对客户端传递的一切参数秉承不信任的做法,例如举一个简单的例子查询账户信息,首先就需要校验账户是否在session中存在,而不能传递什么账户就返回什么信息。

存储层

最后一层就是存储层了,存储层原则上是终极核心层,如果像出现携程数据库dba直接删除的情况出现,可能从技术层面上是回天无力的了,但是业务层面可以做防空,例如权限管控,这里所要说的其实是另外一个处理方式,就是在存储层做”蜜罐”处理,”蜜罐"是安全防御领域里面的一个象形词,它的基本做法是多复制几个表,在表的取名上近似相像,如果有人操作这些表,就通过监控机制直接告警,使得问题尽早的暴露出来,达到一个早期防御的功效。

总结

以上是从技术层面上来阐述互联网环境下大纵深安全防御做法,其实还有业务层面也可借鉴这一点,例如一个账户有注册,登陆,登陆之后还有支付,论坛,商场等等业务,那我们可以这样处理,先在注册层面进行防护,之后进入登陆,登陆也做一层防护,如果还有不乏分子,那我们就可以在后端业务方再做防护,例如支付设置密码,或者其它重要业务设置二次验证查看等等。

总之,理论是提供一种指导思想,这种思想可以在不同层面均可以精细化使用,来达到我们的终极防护目标。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: