来自 数据 2021-12-14 04:25 的文章

ddos清洗_烈火神盾游戏_3天试用

ddos清洗_烈火神盾游戏_3天试用

介绍GrammaTech的一些人,以及许多来自UVA的天才人士,最近作为TECHx团队参加了DARPA的网络大挑战赛(CGC)。CGC面临的挑战是建立一个自主的网络推理系统(CRS),能够在"夺旗"(CTF)黑客竞赛中发挥作用。我们的系统叫做Xandra。每个系统负责保护网络服务,同时证明其他系统的防御服务中存在漏洞("捕获标志")。挑战始于2014年。在两年的时间里,最初的100多支球队通过预选赛逐渐减少到最后只有7支队伍。在最后一次事件中,ddos防御整体方案,DARPA分发了实现网络服务的质询二进制文件(CBs),这些二进制文件经过特别设计,具有不同的脆弱性1。每个CRS负责部署这些CBs的一个版本,该版本可能会受到竞争对手CRS的攻击。诀窍在于,crse可以重新编写cb以降低其脆弱性,同时尝试利用其他系统cb中的漏洞。每次一个CRS能够成功攻击另一个CRS的CB,它就会获得积分。它每一次攻击都输了一分。最后,我们的系统,Xandra,做得很好(第二名!)根据我的分类,良好的防守,良好的可用性和一般的进攻。Xandra在CGC舞台上。其他球队已经写了很多关于这场比赛的文章(Mayhem 1,Mayhem 2,Shellphish,CodeJitsu)。正如入围者提供了他们的意见,有趣的是我们在进攻方面所做的和其他竞争者一样。至少还有三个团队使用了AFL,一个非常酷的灰盒模糊工具,最初由michalzalewski从Google发布。像许多其他竞争对手一样,我们用自己的内部符号执行引擎Grace的"智能"来补充AFL的"快速"能力。其他竞争对手似乎有一些优越的漏洞生成技术(尤其是我的部门,如何大家ddos防御系统,我很恼火);然而,我们似乎擅长的攻击领域是寻找漏洞的速度。当Xandra发现一个漏洞时,它做得非常快,这一速度使我们能够获得积分。 有趣的东西我们系统的一个部分似乎是独特的(或者至少在其他博客文章中还没有讨论过)是我们使用DARPA提供的资源来驱动我们的各种分析的方式。但首先,有一点背景。国防高级研究计划局(DARPA)设计了CGC竞赛来模拟软件即服务模型2,在这个模型中,团队有能力监视用户如何与他们的服务器交互。为了评估修改后的CB,DARPA要求CB编写者与二进制文件一起提供一个可以生成数百万个样本交互的生成器。这些示例交互作用有两个目的:(1)它们允许DARPA检测为防御目的而重新编写的程序何时被破坏;(2)它提供了一组丰富的样本输入,为搜索崩溃和漏洞提供种子。在竞争中,国防高级研究计划局为这些与部署的哥伦比亚广播公司的互动提供了原始的网络接口。这很快就变成了每个CB的数千个PCAP文件,高防cdn举报会死吗,这是很好的,因为许多形式的分析,如模糊化,在给定一个大的和多样的种子输入集时,功能要强大得多。然而,将这些输入直接输入分析系统有两个缺点。第一:投入太多首先,也是最明显的一点是,各种各样的分析很快就会被大量(通常是重复的)输入所淹没。为了应对这一挑战,我们创建了一个修改后的AFL实例来充当看门人。这个实例将运行每个传入的PCAP文件,并评估它们是否给表带来了任何"新的"。为了更正式地定义"新",我们使用了AFL的内部覆盖指标(在这里讨论)。任何增加覆盖率的输入都将被添加到"有趣"的输入池中,而我们的其他分析就是从中提取的。这个过滤掉"无趣"输入的过程对Grace来说特别重要。对于那些以前没有使用过符号执行引擎的人来说,ddos防御云服务,符号执行引擎通常非常慢,特别是一旦达到了任何深度的探索。通过限制输入的数量,我们允许Grace专注于独特和有趣的输入,而不是在可能导致之前探索路径的事情上浪费精力。第二:授权令牌直接将输入输入输入到分析系统可能不起作用的另一个原因是,这些输入可能依赖于一些随机生成的令牌的值。一个简单的例子例如,考虑DARPA在限定符之前提供的示例程序KPRCA U 00001。该程序为用户提供了一个ID,用户必须使用该ID登录到系统并访问该程序提供的功能。与程序的交互示例如下所示:用户:你好服务器:好5CF98744用户:AUTH 5CF98744服务员:好的用户:设置模式编码服务员:好的...在这种情况下,用户使用server3提供的随机生成的令牌登录到系统中。天真地用AFL运行这个程序,寻找它是否扩大覆盖范围,几乎肯定会错过输入的潜在探索能力。这是因为安全令牌基于一些未知的随机种子。在另一台计算机上运行相同的交互将导致以下交互:用户:你好服务器:OK 49F589F7用户:AUTH 5CF98744服务器:错误403用户:设置模式编码服务器:错误403可以看出,既然提供了一个新的随机令牌,那么当捕捉到输入和输出时,分析就不再能够跟踪原始运行期间遍历的路径。在这种情况下,AFL极不可能"猜测"正确的授权令牌,这意味着所有PCAP文件都将沿着同一路径到达"ERROR 403"。因此,数千个PCAP样本文件中几乎没有一个会产生新的覆盖范围(根据AFL),因此几乎没有一个会被添加到"有趣的"输入池中。当用这个特定的程序运行一个竞争的模拟时,生成的数千个输入中只有前几个能够进入其余的分析(每一个通过的输入只有在失败的次数上才是"有趣的")。快速解决方案为了解决这个问题,我们在AFL的gate keeping实例中增加了一个额外的stage。AFL通常通过获取一些输入,稍微调整一下,然后运行它,看看输入是否增加了所覆盖的程序的数量。我们的新阶段将PCAP文件中的预期输出与程序的实际输出进行了比较。然后,它尝试使用以下形式化来识别输入中可疑授权令牌的位置:(Tokenize(应为_input))∩Tokenize(input))\Set(实际输出)其中,Tokenize函数接受一个字符数组并生成一组这些字符,ddos攻击手段防御,这些字符被分解成令牌。直观地说,该进程查找PCAP文件的输入和输出中的标记。(对于非ascii程序,例如模拟存储设备的程序,我们做了类似的事情,但是我们没有把事情分解成令牌,而是寻找超过某个最小长度的公共子序列。)这表明,可能有一些令牌必须被Parrow回系统。然后,进程只保留那些不在实际计算输出中的标记。这表明令牌是基于一些不确定的行为。对于这组可疑的授权令牌,进程然后从实际输出中选择令牌作为潜在的替换。在这里,我们使用了各种启发式方法,因为您不能假设授权令牌会在同一个位置,甚至是相同的长度。这就是选择使用AFL的真正回报。AFL真的很快。因此,该过程可以运行数千个可疑/替换令牌对。在许多情况下,一旦使用了正确的授权令牌,就可以知道。例如,在上面的KPRCA_00001示例中,实际输出将从"ERROR 403"变为"OK"。这显然是一个改进,因为实际输出现在与预期输出相匹配。但是,输出中可能存在一些不用于授权的随机性。在这种情况下,预期输出和实际输出可能永远不会完全匹配。因此,我们可能永远无法确定是否找到了正确的授权令牌。在这里,我们依赖AFL,特别是它的覆盖指标。如果替换可疑的授权令牌会增加覆盖率,那么我们将其添加到"有趣"输入池中。虽然这将我们的搜索从尝试遍历PCAP文件的"相同"路径改为只搜索"新的"和有趣的路径,但从AFL的角度来看,这个视图实际上更有用。我们不仅能够识别与原始PCAP文件后面的路径相同的令牌,而且还可以找到其他有趣的路径。考虑全局,模糊局部对整个过程有一个最后的警告:多个授权令牌。这些方式可以是在整个交互过程中重复使用相同的授权令牌,或者在单个交互过程中给出新的授权令牌。这种额外的复杂性要求我们从全局和局部的角度来查看特定PCAP文件的覆盖范围。检查每个PCAP文件的授权令牌的目的是增加其他分析正在处理的"有趣"输入的全局覆盖率。然而,为了在多个授权令牌的上下文中实现这个目标,我们必须检查每个PCAP文件的覆盖率。这一点可能很重要的一个例子是一个PCAP文件,它有多个授权令牌,其中只突破最终授权