谈谈安全防御领域DNS攻击防御中的一些策略及弊端,以及解决办法。

一、网络安全定义

传统意义的网络安全,是指具有高性能、利用技术手段区分攻击流量和正常业务流量,清洗过滤攻击流量的安全措施。常见的如安全厂家的专业服务器设备,思科的Guard,以及阿里大名鼎鼎的aliguard等。这些方法的共性就是利用会话技术识别某个请求是否是真实的用户请求。实现方式为使用网关或反向代理代替server响应client的请求,并通过client的下一步动作有无跟进继续请求来判断请求是否有效。通常情况下如果是肉鸡发起的攻击行为,一般不会有下一步的动作被匹配到。而如果某个特定的client IP(从服务端视角来说是全局IP,不考虑NAT映射)被判定为真实用户IP,那么该IP会放入白名单(也可针对特定IP设置黑名单过滤),后续一段时间内该IP继续请求时直接判定合法。

二、UDP DNS的问题及相应安全方案

与DNS相关的攻击主要有DDOS攻击和放大攻击(DNS劫持本文不讨论),对DNS而言最大的问题在于UDP没有连接会话的概念,数据包的交互是无状态的,因此不能通过交互来判断某个请求是否为攻击行为。因此传统安全技术的一个重要工作就在于将缺乏会话交互的UDP无状态请求转换为有状态的会话请求,并根据第二次请求(如果没有第二次请求,那么超时后判定为非法攻击)的数据包来判定客户端IP是否为真实请求。通常会采用下面几种技术:

1、cname重传

根据DNS迭代查询一直到获取最终结果的特点,网关给client返回一个伪造的唯一随机字符串cnema域名,并根据client源IP是否继续针对该cname域名发起请求来判断该client是否为正常请求。如果为攻击者,则在规定超时时间内基本不会发起针对该cname域名的请求。

2、TC重传

DNS协议实现中client遇到DNS应答的flag字段携带TC标记时会发起TCP DNS请求(注:比如443端口,在tcp和udp都是预留给dns协议),利用该特点,网关给client返回一个伪造空应答,该应答的flag字段TC标记为1,然后查看该client是否针对同样域名发起TCP的DNS请求来判断该客户端IP是否为正常请求。

3、首包丢弃

大部分协议都设置了超时重传特性,网关可以直接丢弃首包请求,根据客户端IP是否会继续请求来判定是否为正常请求。

三、存在的问题

1、cname重传伪造一个虚构应答,正常交互流程中该应答只起到中间传递的作用,对dns处理结果不会有影响。但是由于运营商实际部署中存在的“缓存递归分离”、“缓存加速应答”等缓存技术都会对dns交互流程进行修改,导致伪造的cname域名被当成正确的结果直接返回给终端用户;另外运营商的TTL优化技术也会放大这种影响,导致出现严重故障。最终我们可能看到下面这种结果:

2、相对于cname重传策略,TC重传不会对交互数据进行修改。然而发起TCP DNS请求需要安全服务与DNS server支持TCP请求,在性能上是个挑战,随之带来的被打瘫痪的风险反而增大。除此之外,某些运营商的localdns不支持TCP DNS,这种场景在客户端调试中会出现很多坑。

3、DNS防御一般不会采用首包丢弃的方法,原因是递归DNS查询在遇到权威查询请求被丢弃时,会根据SRTT算法来选择其他的权威服务器,导致安全网关基本无法收到需要的第二次请求,因此误判概率很大。此外权威服务器丢弃请求会对递归服务器资源占用造成比较严重的浪费,此外这种情况下递归服务器可能会根据自身保护算法策略直接丢弃该域名的正常请求,造成更严重的故障。

除此之外,安全集群DNS的会话一致性、运营商互联网环境原生丢包导致的黑白名单误判、伪造IP影响真实IP导致的误杀等等也会影响正常业务。

四、解决方案

防御DNS攻击真正有效的方法只有两个:

1、报警

一般能控制大量肉鸡执行攻击的基本是成规模的黑产,这种情况已经满足立案标准了。而且对于淘宝域名的攻击,淘宝基本会配合西溪派出所打击黑产,净化互联网环境。

2、硬扛

理论上而言,传统安全防护将UDP转换为有状态会话的策略比单纯回复一个DNS应答更耗费计算资源。比如在服务器性能相同的场景下,回复一个cname应答或者tc应答,与直接回复原生DNS应答,两者耗费的CPU指令集并没什么差别,当然前提是DNS服务器系统性能达标,有能力对标安全服务器性能。

淘宝后台开发中总结的一些DNS攻击防御经验相关推荐

  1. 淘宝API开发相关的常见问题

    关于商品API相关的常见问题 1.上传图片报盗链的错误,图片校验业务规则是什么? A.对于分销商品,不做任何图片校验 B.对于其他商品,使用图片空间的校验逻辑,只允许使用以下2种情况的图片,其他图片都 ...

  2. 淘宝API开发系列--商家的绑定2

    在上篇<淘宝API开发系列--开篇概述>介绍了下淘宝API平台的一些基本知识,由于一直有事情忙,就没有及时跟进随笔的更新,本篇继续讨论淘宝API的开发知识,主要介绍商家的绑定操作.上篇我们 ...

  3. java淘宝客开发(二)

    java淘宝客开发(二) 淘宝客订单获取接口 第三方淘宝客订单接口调用示例 淘宝客订单获取接口 通过接口获取淘宝客订单,非渠道管理模块,只需要淘宝客授权即可.         通过在淘宝联盟开发平台文 ...

  4. android平台下,淘宝客户端开发之——登陆

    android平台下,淘宝客户端开发之--登陆 本文来自:http://hi.baidu.com/lynn_wong/blog/item/da5322c31a4f962ee5dd3b29.html 1 ...

  5. 淘宝店铺优化中影响商品排名的几个必看因素

    淘宝店铺优化中影响商品排名的几个必看因素 影响商品搜索权重的因素有很多,除了之前讲到的最基本的5大相关性之外,还有很多细节方面的因素,如是否加入橱窗推荐.是否参加了消保.是否添加了淘宝标签等.这些因素 ...

  6. 淘宝双促中的 RAX

    摘要:在2017年1月12日 Weex Conf 2017上,来自淘宝前端团队的亚城结合淘宝实际业务分享了淘宝双促中的RAX实践,在本次 Weex Conf 上正式开源的 RAX 是基于 React ...

  7. 淘宝API开发系列---阿里.聚石塔.开放平台的使用5

    好久没有继续跟进淘宝的API使用了,有很多做相关应用的同行都来咨询,很多都因为自己开发工作比较忙而没有来得及好的处理,前几天,有一个朋友叫帮忙指导如何使用淘宝API,由于原来有一些成熟的例子应用,因此 ...

  8. 【.Net码农】【淘宝API】淘宝API开发系列---阿里.聚石塔.开放平台的使用

    好久没有继续跟进淘宝的API使用了,有很多做相关应用的同行都来咨询,很多都因为自己开发工作比较忙而没有来得及好的处理,前几天,有一个朋友叫帮忙指导如何使用淘宝API,由于原来有一些成熟的例子应用,因此 ...

  9. 仿淘宝后台设置商品SKU

    仿淘宝后台设置商品SKU 效果图 关键代码 function getVariantFun(doubelArrays) {let len = doubelArrays.length; //获取最外层的长 ...

最新文章

  1. 基于BootStrap 4.x 中的Flex 实现各种布局
  2. 获取浏览器窗口宽高问题总结
  3. 文件内容查找java,java库从文件内容中查找mime类型
  4. [Asp.Net]自己的一个SqlHelper类
  5. Linux ssh shell 自动登录,shell脚本实现ssh自动登录功能分享
  6. 将职业教育职业化 - 各IT培训中心必须完成的使命
  7. 光伏项目用地政策解析
  8. 时点数列序时平均数_时点数列序时平均数计算方法研究
  9. 值得收藏的网盘搜索引擎网盘搜索工具
  10. EPSON LQ-675KT 打印机无法进纸解决方法
  11. java前后端分离怎么测试,前后端分离如何提高开发测试效率
  12. 批处理 使用Win7照片查看器
  13. 为什么电子计算机奏出美妙的交响,《延安,我把你追寻》教学设计
  14. 网络技术学习:虚拟专用网络
  15. 系统测试之功能测试:测试用例的设计步骤——从登陆开始说起
  16. 3ds max 使用cloth修改器制作抱枕
  17. Pytorch里addmm()和addmm_()的用法详解
  18. 数字ic设计流程以及相关工具
  19. Android从驱动到应用开发实例分析
  20. 【R语言爬虫】R语言提交post请求抓取盈盈理财数据

热门文章

  1. linux右键菜单颜色,Linux_自定义右键菜单代码详解, style !-- /*定义菜单 - phpStudy...
  2. 科汛用mysql数据库_KesionCMS科讯CMS系统SQL标签使用方法详细介绍
  3. Oracle面试题集锦(2020大厂秋招真题)
  4. strace java_Linux strace命令
  5. APK反编译工具与使用方法
  6. 电子档案目录PDF预览
  7. Nowa Flutter开发教程之 06 什么是Components以及为什么使用 (无代码开发)
  8. 无符号数在计算机中怎么存储,计算机中数的存储
  9. 【COT】Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
  10. LabVIEW数据采集系统-队列