DDOS防御专家-提供超强DDoS高防/CC防护/大流量清洗服务!
当前位置:主页 > DDOS防御 > 正文

DDOS高防服务_抗ddos攻击_原理

01-12 DDOS防御

DDOS高防服务_抗ddos攻击_原理

我们最新版本的CodeSonar有一个新的程序可视化特性:treemaps。CodeSonar从上一个版本开始就有了调用图可视化功能,事实证明实现treemaps非常简单,因为它们使用相同的框架。树图提供了一种信息密集的方式来查看层次结构的属性。它们最初被用作查看文件系统中空间消耗情况的一种简单方法,从那时起,它们就被用于许多不同的应用程序中。维基百科提供了一个很好的描述。treemaps的关键属性是节点的大小可以用来指示它所代表的项的大小。颜色也可以用来显示项目的不同属性。CodeSonar中的默认treemap使用节点的大小来指示项(函数、文件、目录)中的代码行数,颜色的强度表示在其中找到的CodeSonar警告的数量。下面是一个例子。上面的屏幕截图显示了一个名为Dovecot的开源程序的treemap,一个电子邮件ddos/39806.html">服务器。从树图中,可以很容易地找出最大的模块,并且在层次结构的每个级别,可以很容易地看到哪些组件对最多的警告负责。右下角的节点代表一个名为dns的目录。我选择了这个,在右侧的信息窗格中,您可以看到它包含七个函数。你看不到这些函数,因为视图太远了,但是如果你放大,它们就会出现。下面您可以看到一个放大的视图:在这些树状图上平移和放大缩小是很迷人的,特别是对于大型程序。你可以一直放大,看到一个只有几个函数的模块,当你缩小的时候,它会让你真正感受到程序相对于这些函数的重要性。你可以在这里看到我们网站的视频。现在,让这个视图特别有趣的是,您可以使用CodeSonar生成的任何度量来驱动视图。与使用颜色表示警告数的计数不同,您可以让color表示代码的其他一些数字属性。例如,颜色可以表示圈复杂度。这让我想知道在treemap视图中还有哪些度量是有用的。我一直在读CMU的Pratyusa Manadhata和Jeannette Wing写的一篇关于度量程序攻击面的度量的论文,所以这似乎值得探讨。安全分析员将程序的攻击面称为暴露于潜在攻击者的程序子集,通常是它在潜在敌对信道上接收输入的一组位置。在进行安全分析时,了解攻击面通常是至关重要的,因为这些点是应用程序最容易受到攻击的地方。现在,我前面提到的这篇文章非常小心地给出了一个很好的度量定义,包括恶意输入的来源、数据可能流经的通道以及数据的汇汇。这有点太复杂了,不可能一时兴起就实现,所以我决定用一个更简单的定义攻击面。对于许多应用程序,攻击面可以被认为是程序接收输入的一组地方。我决定将度量定义为函数中调用C库函数并获取输入的位置数。这些函数包括read、scanf、getenv等。CodeSonar有一个API,可以访问CodeSonar使用的整个程序模型。模型的大部分都是通过visitor模式公开的——你编写一个函数来处理,比如说,集群高防cdn,一个程序点,cc攻击防御脚本,内部机制负责调用所有符合条件的程序点上的函数。API还允许您方便地定义自己的度量。下面是Scheme中定义新度量的代码。1(codesonar:添加设置访问者2'("任何")3(λ()四(创建公制代码声纳5"表面"6"功能攻击面"7'公制粒度程序8 m:表面9(列出"公制标志自动")10条)11条)不要被Scheme语法所拖累-它比看上去容易,而且API也可以用C语言实现。对于那些不熟悉这个计划的人,让我来解释一下。这是对函数的调用codesonar:添加设置访问者两个参数。第2行的第一个参数指定访问者应用的语言集,第二个参数(第3-10行)是调用函数的lambda表达式(即闭包)codesonar:度量创建类。设置访问者是在分析开始时在任何遍历活动之前调用的访问者。功能codesonar:度量创建类将创建一个名为"Surface"的新度量(第5行),它在过程的粒度上工作(第7行)。为了计算它,ddos云服务防御,CodeSonar将在程序中的所有函数上调用函数m:surface(第8行),度量将自动报告(第9行)。内部控制着其他一切。实际计算度量的函数非常简单。现在显然它需要知道哪些函数是输入函数,所以脚本的前面部分(未显示)创建一个包含这些名称的哈希表(名为m:table)。1(定义(m:表面pdg)2(让((曲面0))3(每个4(λ(cs)5(let((被调用方(pdg过程名称(pdg顶点被调用方cs)))6(if(hash table get m:被调用方表#f7(设置!表面(+1表面)(八)(九)10条)11(pdg呼叫站点pdg)十二)13表面14条)15条)该函数以PDG作为其唯一参数,它是表示单个函数的内部数据结构。这个函数首先引入一个名为surface(第2行)的变量,然后遍历函数中的所有调用位置(第11行),然后为每个调用点查找被调用过程的名称(存储在第5行名为callee的变量中)。如果在输入函数表(第6行)中找到该名称,则surface的值将递增(第7行)。一旦考虑了所有调用位置,就会返回surface的值(第13行)。这些函数放在一个文件中,一旦我告诉CodeSonar将该文件作为插件执行,DDOS攻击漏洞防御,那么这些度量就会完全自动地显示出来。下面是一个屏幕截图,显示了程序中一些函数的值。更好的方法是构造一个使用它们的treemap。下面的屏幕截图显示了Dovecot程序的树图,颜色的强度表示度量值。为了好玩,这里有一个攻击面度量用于大小,颜色表示代码行数。请注意,如果度量为零,则节点永远不会出现。现在,我的攻击面度量非常简单,海外高防cdn,不太可能是真正的安全分析师真正想要的。然而,上面展示了扩展CodeSonar来计算和显示定制指标是多么容易。我希望这能启发其他人以类似的方式使用CodeSonar。

版权保护: 本文由 DDOS防御专家 原创,转载请保留链接: /ddos1/61128.html

DDoS防御专家简介孤之剑
国内资深白帽子二十人组成员,前BAT资深网络安全工程师,知名网络安全站点板块大神,每年提交Google及微软漏洞,原sina微博负载插件开发者,现在整体防御复合攻击长期接受1-4.7T攻击,CC防护自主开发指纹识别系统,可以做到99.9999%的无敌防御。
  • 文章总数
  • 8149682访问次数
  • 建站天数

    QQ客服

    400-0797-119

    X