gogochina.cn

续断如何改善内网穿透隧道可用性——DDoS规避

2019-05-15 10:27 编辑:小孔编辑 来源:加油中国

  技术和流程是续断隧道可用性的核心保障,CI/CD DevOps的自动化测试环节可以在产品日趋复杂时实现质量一致。对CS架构的产品来说,自动化测试实现起来要困难很多,但比起愚蠢的人类在重复性工作中失误的概率(对,100%),这些代价是值得的。事实上,续断核心功能的测试代码量要超过产品代码量,并且会继续加强。

  这还不够,续断内网穿透作为网络基础设施提供者,有安全的义务。”安全”是产品的基本属性,是产品在设计之初就该考虑的重要问题。如果设计时缺失上线后再修补,就效果看往往事倍功半。这也是DevSecOps区别于DevOps的最大不同。前者强调“安全”应该在开发流程的各个环节得到贯彻,是每个开发者的共同责任,是一个持续的过程。这远非“将隧道进行SSL加密”这种补历史欠帐的小动作所能代表的。

  是的,设计之初就考虑“安全”这个属性。DDoS攻击是内网穿透产品面临的主要安全问题之一,续断针对该问题进行了以下实践。

  硬道理:服务器多且分散

  传统的服务器集群无助于增强隧道可用性,主要原因是内网穿透产品对隧道服务器的计算和存储能力要求较低,对网络要求较高,服务器越多越分散,就越容易控制影响面,提高攻击成本。同时,服务器分散在多个城市也有利于就近建立隧道,稳定性自然也越好。续断在全球范围内部署了100多个服务器节点,可以有效的降低受攻击时的影响。续断服务端完全容器化,使用Swarm统一调度各节点资源。

  软实力:快速迁移并尝试寻找攻击源

  续断的众多服务器节点中有10个很特殊,它们在平时不对外提供服务,只有在其他节点被DDoS攻击时才会承担分散用户,筛选导致攻击的隧道的任务。这些节点被我们称为“沙箱节点”。续断每条隧道的域名都是唯一的,可独立配置。借助于云解析提供的SaaS接口,安全响应子系统可以在数分钟内完成数千条隧道在沙箱节点上分散部署。甄别之后,正常沙箱节点的隧道会被迁回生产环境的服务器。被跟随攻击的隧道再次重新分散。理论上,经过四次分散可以做到从数千条隧道中定位攻击源隧道。

  续断的这种处置可以极大缩短DDoS对用户的影响时间,产品设计与实现时重点考虑了以下几点。

  1、 以隧道为对象设计产品,每条隧道生命周期完全独立,最重要的是在建立后生成的域名都是唯一的可独立配置的,不使用泛解析;

  2、 在1的基础上,安全响应子系统使用域名云解析的API接口自动重分配服务器,确保快速;

  3、 可靠的服务器节点监测机制,从业务层面和基础设施层面第一时间发现事件。