文档章节

牛盾云加速架构分享之SACC演讲

牛盾云安全
 牛盾云安全
发布于 2015/11/03 17:24
字数 3735
阅读 31
收藏 0

引言 从安全问题聊起

围绕web安全漏洞的检测和防护系统有非常多,经常用到的有漏洞扫描器,waf防火墙,代码审计产品。漏洞扫描器通常是通过爬虫抓取网站url去进行漏洞 探测,通常我们只需要填写目标域名就可以帮助我们发现很多明显的web安全漏洞。但是因为大部分的漏洞扫描器需要通过爬虫抓取网站连接参数,然后进行漏洞 测试,这样的模式会存在一些爬虫深度、表单和js交互能力的挑战,造成请求地址和参数抓取不完整,另外缺少加密数据测试等问题,最终造成部分安全漏洞被漏 报,也会有业务增长带来新漏洞难以实时监控,加上绝大部分都是定期扫描,这样就会存在给关注漏洞的攻击者放开了利用漏洞完成攻击的时间窗口。waf防火墙 是通过对http协议数据分析发现恶意流量并进行拦截的一个系统。传统waf设备需要采购,价格昂贵,需要对现有业务网络拓扑进行调整,且不 能跟随业务发展灵活拓展节点,比如新增几个idc就需要再进行设备采购,而且部署较为麻烦。代码审计产品可以发现的解决程序代码里的漏洞,从根本上解决程 序漏洞,但是网站的运行不只是web安全问题,也会有web容器的安全问题、配置不合规或者漏洞。比如nginx,iis和apache都出现过解析漏 洞,对很多企业或个人都造成过巨大的损失。DDOS硬防价格更加昂贵,且DDOS的防御并不是采购硬防就可以了,还需要解决庞大的带宽问题。这些安全问题,我们很难通过一个系统,一次配置或者一次扫描解决掉。


理想方案

       能够在各个环节时刻保障网站的安全、快速、稳定运营,且便于用户使用、最好是零部署,零维护的可持续不断完善的解决方案。


牛盾云加速架构解析

调度系统介绍

       牛盾云加速的调度系统使用了我们公司的兄弟产品CloudXNS(以下简称XNS),这是一款基于DPDK自主研发的智能 DNS系统,共有30多个点近百组万/双万兆服务器。与传统的AXFR、IXFR等分发方式相比,可以做到半秒级生效。还对DNS协议进行扩展,除了常见的所有记录类型外还衍生了LINK、AX、CNAMEX记录。API简单全面非常适合作为CDN的GSLB服务。


海量配置管理

       牛盾云加速每天都面临数万域名的安全、加速策略的变更操作,对配置变更频繁度极大。由于我们的服务节点业务层是基于nginx二次开发的,且可以根据 nginx新版无缝升级。最初在配置管理这一块之前我们使用etcd+confd的方案,confd每隔俩分钟去监控etcd的配置信息,根据模板去生成 nginx的配置文件,这样我们很方便的完成了服务的自动发现和配置生成,随着业务的发展我们发现的配置内容变多,且变更频繁,reload时候 workers对配置生效时间较长且影响性能,有些特殊情况一旦加载错误配置,会影响之后无法正常reload。为了解决这些问题,我们采用了ngx_lua+redis的方案,在过程里增加了内存锁和故障时也可以使用过期数据等机制。最终完美实现了5s完成全网配置变更且无需reload即可实时生效,而且每个域名配置走独立路由互不影响。

       另外cdn回源都需要用到inerdns,而inerdns每次配置的同步和实时生效是个很棘手的问题。bind+mysql方案又效率低下。牛盾云加速通 过golang+redis重新开发了inerdns系统,借用如上海量配置管理思路。也完成了动态的变更和实时生效。并且在每个节点的机器上都部署了很 轻量级的DNSserver,顺便也规避了网络查询慢和超时等问题。

 

云waf

       牛盾云加速的云waf非常注重安全防护灵的活性和处理性能。能够对数据流进行双向处理,对接收到的数据进行自解码处理,通过基于语义分析的sql注入检测方式 和其余少量的正则,引入了规则链的概念使我们在诸多复杂的变种攻击的处理中更加精准,避免了策略粗暴造成的误拦截。对POST不同类型的数据格式进行了解 析,能够获取到文件名,文件内容,参数,参数名等信息做深入的检测分析。支持用户在平台内自定义安全策略,并对以上所有所有安全策略动态管理。另外我们的 用户网站在接入牛盾云加速时会进行指纹的识别分配最优的安全策略给用户。关注最新的攻防技术和漏洞情况更新安全策略,更新的时候我们结合后端的实时日志分 析分析系统(ERK)进行策略的适配调整。另外结合数据分析系统可以对误报和漏报进行监控,在后续数据分析部分会有介绍。

 

CC防护

       CC攻击是DDoS攻击的一种,通常是通过僵尸主机发起大量的HTTP请求进行攻击。传统的CC防御有ip频率、IP+URI频率、验证码、302等方 案,然而这些方案最终处理方式要么封ip,要么容易被绕过,要么用户体验不好。牛盾云加速默认策略通过对客户端的带有网站资源维度特征的请求频率判定是否 存在CC攻击的可疑行为,然后给客户端植入特定代码进行检测,如果客户端可以带过来即可正常访问,如果带不过来那么该请求会被阻断。并且牛盾云加速会把识 别到的攻击指纹,全节点实时同步,完成全线防御。从而保障后端业务的正常运行不受攻击影响。面对较为复杂的CC攻击,牛盾云加速会对访问日志进行实时的异 常分析,对防御策略进行智能调控。同时我们在平台也给客户提供了多种防御策略可自由选择,也支持请求限速功能等功能。整个防御策略自始至终只是阻断了黑客 攻击的客户端请求,对正常用户不受影响。

 

DDOS防御

       牛盾云加速提供了400G的抗D带宽。全 线部署了自研的cc和synflood防御机制。构建了五个大清洗中心,旁路部署基于DPI的DDOS攻击检测设备和清洗设备,可以做到逐包深度检测,秒 级攻击响应时延,从而保障流量清洗效果,并支持攻击指纹报文匹配丢弃,动态的指纹学习机制。在攻击流量达到单节点一定比例的时候,我们通过XNS把攻击流 量调度到我们的清洗中心完成流量的清洗。而抗DDOS光拼带宽和硬防是不行的,攻击流量把带宽打满怎么办?为了解决这个问题,牛盾云加速跟运营商合作对于 超大DDos攻击采用近源压制的办法,在攻击流量到达目的机房前进行黑洞。

 

SSL支持

       SSL 与CDN在云加速市场一直被当做鱼与熊掌不可兼得,支持HTTPS加速的只有寥寥两三家,而且比起某加速政企版的高额门槛,牛盾云加速的HTTPS 服务更加亲民。此局面的原因,小编想着一方面是HTTPS尚未普及,另一方面则是解决性能与质量问题的技术成熟度了。牛盾云加速很早就开始了前瞻性的深度 调研,当之无愧称得上先锋典范。先说说技术问题,早期的SSL握手的过程中,不会有Host的信息,所以服务器端通常返回的是配置中的第一个可用证书。因 而一旦需要多域名分别配置证书,返回的始终是同一个。SNI (Server Name Indication) 是一项用于改善SSL/TLS的技术,在SSLv3/TLSv1中被启用。它允许客户端在发起SSL握手请求时(具体说来,是客户端发出SSL请求中的 ClientHello阶段),提交请求的Host信息,使得服务器能够切换到正确的域并返回相应的证书。于是牛盾云加速通过ngx_lua开发了基于 SNI的HTTPS服务,只要用户提供HTTPS的key文件就可以加速,甚至无证书支持也已列入研发进程,不久就会面世。另外同是HTTPS网站,差距 却可以很大,很多网站只是加上TLS证书就万事大吉,譬如12306,殊不知HTTPS还存在巨大优化空间,牛盾云加速在证书质量方面就深得客户好评。全 球知名的SSL安全和性能研究机构Qualys SSL Labs评测表明,牛盾云加速所支持的SSL,在sslab标准检验评分可以达到A,如果强制HTTPS的时候HSTS值放大一些可以得到A+,这已然是 最高评价了。


CDN加速

在CDN加速环节牛盾云加速主要分为以下四方面:

  • 缓存优化:就近节点缓存,自定义缓存策略,且支持百万级目录缓存刷新

  • 网络优化:TCP协议栈优化(cloudtcp)、KEEPALIVE优化

  • 内容优化:内容传输压缩,图片内容优化,去除空白字符和注释

  • 父层回源:BGP/多线机房部署父层节点,自动分配到源站最快的父层,提供集中缓存回源


数据分析系统

       首先在weblog采集环节我们直接修改了nginx的access_log部分代码,使之兼容老配置的前提下,增加新的选项让记录的log变成了json 格式。这个地方有个坑需要注意,网上有很多基于log_format配置来生成json格式的weblog其中对json数据格式转义处理不当会造成很多 数据丢失。其次对于fluentd,flume,scribe等日志采集工具都基于正则元组提取出json格式化的数据,其中因为涉及到正则的匹配,难以 避免俩个问题:第一个问题是正则的性能,第二个问题是正则匹配不上造成的数据丢失。所以我们在nginx上做了这个变更。我们使用rsyslog v8版本对于全线的nginxlog进行收集传输到kafka集群,使用fluentd集群对kafka集群的数据进行实时的读取经过预处理后输出到 es,hdfs,和日志合并等操作。hdfs的数据交给hadoop做平台报表的离线计算,因为是第二次统计结果覆盖第一次所以我们把每次统计的结果存储 到redis内,交由平台程序处理。交给es的数据分俩部分一部分是全量的acceslog数据,提供给我们的运维和安全小伙伴们用来做实时的数据分析和 质量检测;另一部分丢给es的安全攻击log索引中,交由我们的客户分析使用。fluentd集群还对我们客户的日志进行合并存储起来提供下载。另外我们 用storm对日志进行实时的安全分析,这里做了很多有意思的事情,比如安全策略挖掘方面,通过storm我们可以实时的侦测到被其他厂商漏过来的攻击, 也可以发现一些我们遗漏的攻击数据,以此来完善我们的安全策略,并帮助其他厂商进行完善。也有无死角WEB漏洞扫描方面和webshell分析的有趣的事 情,这里暂时不做太多阐述,有机会再跟大家分享

 

稳定性保障

不管安全还是加速做的再好,业务最终还是建立在稳定的基础上。稳定是最重要的,所以牛盾云加速采取内外兼修之法,在做好自身稳定性的前提下也帮助用户源站增强稳定性。

对内:

  • 四层和七层负载均衡 - 通过负载均衡来解决业务量不断上升所带来的业务量承载能力(分流),同时也很好的解决资源动态扩容,入口使用了四层负载均衡,双入口热备,业务层通过七层对业务进行分离,同时借助负载均衡,消除了到父层服务单点故障。

  • 监控系统调度 - 通过监控平台,我们监控全国各个地区边缘到父层的质量、父层和源站的链路质量,进行自动调度能力。

对外:

  • 宕机切换 - 支持填写多个IP,在主IP挂掉后能够自动帮助用户切到备IP完成故障的转移。

  • 永久在线 - 这个是CDN本身的优势,当网站原服务器宕机时,用户仍然可以访问网站的缓存数据(此页面的样式可由客户自由定制),从而可以解决服务器故障带给访客的不良体验问题,并且不影响搜索引擎的收录。

  • 7*24小时技术支持 - 资深的运维与技术支持人员轮班随时待命,为客户提供7×24小时的技术支持,快速响应处理用户问题

© 著作权归作者所有

共有 人打赏支持
牛盾云安全
粉丝 1
博文 3
码字总数 5943
作品 0
东城
私信 提问
演讲PPT:用Kubernetes实现Fabric区块链即服务的实践

题图摄于亚利桑那州大峡谷(Grand Canyon) 阅读导航 一、SACC2017大会演讲PPT分享: 用Kubernetes实现Fabric区块链即服务的实践 二、Blockchain on vSphere自动化部署Fabric工具介绍 上个周末...

q48s71bczbeylou9t0n
2017/10/22
0
0
引领架构创新之路第八届系统架构师大会撼世来袭

作为国内最受欢迎的架构师盛会,2016年第八届中国系统架构师大会(SACC2016)即将于10月27-29日在北京盛大召开。本届大会以"架构创新之路"为主题,安排两大主场和24个专场。届时,来自互联网...

玄学酱
05/15
0
0
Java架构师变形记:讲述Java码农到年薪100万架构师之路

  最近有不少朋友问我怎样才能成为年薪百万的架构师,我听到他这样问,首先想到的是什么样的人才可以称之为架构师,然后我给他总结了他需要攻克的3个难点:   1.接触不到一线实战架构设计...

java进阶架构师
昨天
0
0
聚焦SACC聚焦大数据时代的IT架构变迁

  不一样的大数据冲击   在熙熙攘攘的大数据年代,曾经有人说互联网将改变很多的行业,而在热衷大数据技术的人眼里真正改变那些行业的并不是互联网,而是互联网背后的大数据。无论是商业...

灵玖lingjoin
2013/08/26
0
0
免费公开课 | 机器学习的第二次入门

机器学习第二次入门 AI科技大本营在线公开课第15期 主题:机器学习第二次入门 时间:9月6日 20:00-21:00 扫码添加小助手,备注:机器学习,邀你入群 入群福利:讲师交流+PPT分享+抽奖送书 作...

AI科技大本营
09/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JAVA设计模式之模板方法模式和建造者模式

一、前期回顾 上一篇《Java 设计模式之工厂方法模式与抽象工厂模式》介绍了三种工厂模式,分别是工厂方法模式,简单工厂方法模式,抽象工厂模式,文中详细根据实际场景介绍了三种模式的定义,...

木木匠
23分钟前
2
0
C中的宏的使用(宏嵌套/宏展开/可变参数宏)

基本原则: 在展开当前宏函数时,如果形参有#或##则不进行宏参数的展开,否则先展开宏参数,再展开当前宏。 #是在定义两边加上双引号 #define _TOSTR(s) #sprintf(_TOSTR(test ABC))pr...

SamXIAO
53分钟前
2
0
SpringBoot 整合异步调用方法

1. 在 SpringBoot 主类上使用 @EnableAsync 注解,开启异步调用功能 package com.codingos.springbootdemo;import org.springframework.boot.SpringApplication;import org.springfra......

北漂的我
今天
1
0
0015-如何使用Sentry管理Hive外部表权限

1.文档编写目的 本文档主要讲述如何使用Sentry对Hive外部表权限管理,并基于以下假设: 1.操作系统版本:RedHat6.5 2.CM版本:CM 5.11.1 3.集群已启用Kerberos和Sentry 4.采用具有sudo权限的...

Hadoop实操
今天
3
0
边缘计算与数据中心的发展趋势

导读 Gartner研究表明,人工智能、物联网和5G助力下一代商业创新,由此产生大量数据,2020年前企业将使用超过75亿台联网设备。 在几乎每个方面,社会的节奏都正变得更快。我们希望客户服务问...

问题终结者
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部