上一期讲述了安全架构的可用性架构,这一期想与大家分享的是安全性架构。
什么是安全性?
安全包括网络层面、传输层面、系统层面、应用层面、数据层面的安全,要考虑安全性架构需要从这5方面入手,当然最不能忽视的还是业务本身。
如何构建网络层面的安全?
其实在上一篇的架构体系中已经涉及了一部分了,就是代理服务器,用于隐藏真实应用服务器地址,当然这只是很小的一部分,网络层面发生的入侵事件一般以DoS攻击为主,而DoS指向是通过DNS解析或者真实IP而判定的,那么隐藏真实IP有助于迷惑DoS攻击目标。而通过DNS解析到的一般采用CDN或者SLB负载均衡来达到抗DoS的效果,如果涉及云架构,基础云防护就有抗DDoS黑洞,会把超过阀值的ip拉到运营商黑洞,从而解决DoS攻击产生的威胁。
如何构建传输层面的安全?
在数据传输层面,通常发生的是监听行为,或者中间人攻击,这里其实涉及到保密性架构的东西,我们假如业务是使用的HTTP协议,那么明文的HTTP流量显然是不安全的,通过wireshark、burp等工具都可以轻松抓到,这时个人信息就一览无余。那么使用了HTTPS就能解决这个问题吗?这种说法并不绝对,早在多年以前SSL加密算法就爆出安全漏洞,随后推出TLS,目前TLS1.0也已经被广大解密极客突破,信息赤裸裸的被泄露,2018年PCI DSS推出3.2.1版本,已经明令TLS1.1为过检的必要项,而且是最低要求,也从侧面证实了解密极客团队的实力。仅采用HTTPS的方式是远远不够的,重要信息的加密应该通过更复杂的加密手段来进行,这块留在保密性架构中叙述。
如何构建系统层面的安全?
近日Linux出现0day漏洞,TCP-sack存在重大漏洞,可利用此漏洞造成DoS攻击,使服务器瘫痪,具体信息详见:https://access.redhat.com/security/vulnerabilities/tcpsack
操作系统一直不太平,包括Windows、Linux、MAC OS其实都是在不断的修复与曝光中,像这次的TCP-sack内核漏洞等等,我们没有办法提前发现操作系统底层的为止漏洞,但是我们可以很大程度上预防这样的漏洞,那么归根结底还是隐藏目标,在隐藏目标的同时要发现系统上存在的异常,并且进行日常监控。
应用安全很简单也很好理解,像Windows的SMB漏洞,RDP漏洞,Linux的SSH漏洞等等,这些应用要在业务允许的情况下保持最新保本以保证应用的安全性,并且要实时检测监控。
数据安全同样是老生常谈的话题了,其实并不像多说什么,数据存放不管是在大数据集群,还是在什么地方,底层都是数据库,在传输层做好加密后,数据库安全就是重中之重,包括数据脱敏、数据加密等等。
直接见架构设计吧。
详细理解这个架构,那么从监控的角度来说,5大层面都需要监控到位,每层的日志、行为分析都要掌控到,并且联动告警,这里可以是MQ,可以是短信可以是邮件等等。
从5大层面的角度来说,最重要的意义是防御攻击防御入侵防御数据泄露,那么严格的登录流程,复杂的登录手续,加密算法的复杂程度等等都直接影响架构的安全性。
根据每个功能模块的特点,制定如下的设计图
办公区需要连接VPN登录堡垒机去访问可用性架构中的服务器,可用性架构中的每台服务器都安装HIDS和防病毒软件,旁路的漏扫集群随时对服务器进行漏洞扫描,数据库审计来审计数据库操作日志,同时所有服务器日志与应用日志均反馈给日志分析集群,公网访问通过抗DDoS设备和加密机访问到服务器,图中没有体现告警系统与监控系统。
监控系统一般由两部分组成,应用监控与主机监控
主机监控主要监控CPU、内存、文件是否变更、网络流量等等
而应用监控则需要监控应用状态、接口是否异常、访问请求是否有效等等
针对监控系统,目前我采用的是zabbix+grafana联合监控,业务监控则需要自己根据业务选择对应语言进行脚本监控,与告警系统联动
以上是我想分享的大致安全性架构,后期会有详细的架构拆分,包括各种集群具体采用什么、怎么搭建等等。下一期主要讲述加密架构的实现与综合架构整体设计。
*本文作者:煜阳yuyang,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。