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

ddos清洗_免备案高防vps_快速解决

01-12 CC防护

ddos清洗_免备案高防vps_快速解决

简介:高级静态分析工具很受欢迎,因为它们已经证明能够有效地发现严重的编程缺陷。与传统的动态测试相比,代码从未执行,防御ddos攻击的免费工具,因此不需要测试用例。这意味着静态分析可以在开发过程中很早应用。当程序员一编写代码就使用静态分析时,甚至在单元测试或集成测试阶段之前,也可以发现并消除bug和安全漏洞。发现缺陷越早,修复成本越低。这种节省成本是自动静态分析的一个主要优势。最新的静态分析工具代表了早期工具的重大技术改进。这些新工具使用复杂的整体编程技术来发现缺陷,并且通常用于大量的源代码,这些代码是用高级语言编写的,例如C/C++和java,甚至是在目标代码上。这篇文章的主题是使用这些工具。相关:十条规则的力量——制定安全关键规范的规则有缺陷的Java代码:重要的错误90%汗水:工业应用的工程静态分析技术测量静态分析工具展开的值当然这些工具不完美。对于大多数非平凡的程序,ddos防御盾,没有实用工具能够找到所有的bug(即存在假否定),所有这些工具也可能报告代码中无缺陷的问题(即假阳性)。正如我稍后将解释的,鉴于目前普遍可用的技术和资源,这是不可避免的。因此,必须由人检查工具发出的所有警告,以确定它们是否表明了真正的问题,以及是否需要采取行动。这个过程被称为"分庭"。假阳性与假阴性之间存在着强烈的反关系。发现更多真实缺陷(真阳性)的工具通常也有较高的误报率。即使对于单个工具,也有一些配置选项,允许最终用户控制底层分析,使频谱的一端优于另一个端。用户不喜欢假阳性结果,因为各种原因,所以他们更喜欢保持假阳性率低的工具(或工具的配置)。然而,这带来了工具可能无法报告实际缺陷的风险。最有效的工具是在错误肯定、错误否定和性能之间达到正确平衡的工具。在部署其中一个工具或决定购买哪种工具时,用户应该考虑这种折衷,以最大限度地利用该工具的好处。影响这一决定的因素很多。在后面的文章中,我将描述重要的考虑因素和参数,然后描述一个模型,该模型可以帮助用户测量静态分析工具的好处,并评估如何最好地配置它。从模型中导出的公式允许用户使用简单的警告报告计数比较工具。术语首先,我想简单介绍一些术语。静态分析工具本质上是缺陷的检测器,因此,这里的一些词汇从信息检索是适当的。召回是衡量工具发现真正缺陷的能力的一种度量。它被定义为工具发现缺陷的概率。一个100%召回的工具可以找到所有的缺陷,据说是健全的。精度是工具排除假阳性能力的一种度量,定义为结果与实际缺陷相对应的概率。一旦检测到警告报告,精度很容易测量,但由于错误否定数未知,很难准确地测量召回率。测量它需要准确地知道在分析中的代码中确实存在多少缺陷。必须指出,即使是对于单个工具,缺陷类之间的精度和召回率也会有很大的变化。一个非常擅长发现缓冲区溢出的工具可能不一定很擅长发现资源泄漏为什么假阳性和否定是不可避免的对于大多数用户来说,衡量静态分析工具有用性的真正尺度是,它是否能在程序中找到合理数量的重要错误,而不必用无用的报告来压倒它们,而不使用不合理的计算资源。问题是,使这些工具实用的相同特性也意味着它们容易受到假阳性和假阴性的影响。静态分析工具通过创建要分析的代码模型,然后以各种方式查询该模型来工作。该模型通常由一组中间表示形式组成,如符号表、抽象语法树、控制流图、程序调用图等。查询机制可以从简单的搜索这些数据结构到基于数据流分析、符号执行、抽象解释或模型检查等先进概念的非常复杂的算法。需要强调的重要是,分析不是直接在程序上运行,ddos防御5gbs是什么意思,而是在程序的模型上运行,而且模型几乎永远都不精确——它们要么是过度逼近,要么是近似值不足。如果模型是精确的或近似的,那么它被称为健全的,因为它捕捉到了实际程序的所有可能行为。一个声音模型,有声音分析结果,没有假否定。如果模型是近似值不足,则它无法捕获程序的某些相关方面,并且无论分析是否正确,都可能产生假阳性结果。为了理解为什么创建一个程序的精确完美逼真度模型实际上是不可能的,值得描述一个工具是如何做到的。如果工具在源代码上运行,那么首先必须以与用于创建对象代码的编译器解析的代码完全相同的方式解析代码。然后分析器必须对语言语义的解释与编译器完全相同,这样它就可以创建一个模型,准确地反映程序执行时会发生什么。语言规范中有很多问题,例如新的C++ 11标准,例如困难。同样,同一代码可能有微妙的不同行为,这取决于它编译的平台。由于这些困难,所有通用的实用静态分析工具都会创建一些意义上的过度逼近和近似不足的程序模型,因此即使分析算法是完美的,假阳性和假负也不可避免地会滑入。当然,分析算法也不完善。他们自己做了近似。最令人信服的动机是,他们将扩展到大型项目。市场需要在一小倍数内完成的工具来进行常规构建。不幸的是,如果要精确,许多算法基本上是超线性的。例如,考虑一个路径敏感的分析:能够通过程序计算关于单个路径的信息。通过一个没有调用或循环的单个过程的路径数是条件数的指数。显然,如果算法试图单独枚举所有可能的路径,那么它都不可能希望近似线性。相反,工具会在聚合中解释路径,并部署其他策略,以使分析接近线性。当真为假时到目前为止,我一直在使用传统的技术定义来表示真和假阳性——真的正是关于真正缺陷的正确报告,假阳性是关于一个不存在的bug的报告。然而,这几乎从来不是最终用户查看报告时使用的确切标准。对于最终用户来说真正重要的是报告是否会产生有用和可操作的信息。如何根据缺陷的性质、用户角色、应用程序将运行的平台以及部署结果的环境来解释结果有很大的差异。在"重要的错误"中,比尔·普赫描述了他在谷歌部署静态分析时在这个问题上的经验。例如,从安全的角度来看,缓冲区溢出是一个最臭名昭著的C/C++缺陷类。在应用程序开发的早期阶段,更改代码以修复此类错误几乎总是有意义的。程序员们正在积极地修改代码,因此修复它只需要额外的开销。但是,如果在应用程序部署之后发现了相同的缺陷,那么决定是否值得修复就更为困难了。可能是良性缓冲区溢出,覆盖了一个字节未使用的内存,因此恶意攻击者无法利用它进行攻击。在这种情况下,修复代码、重新测试应用程序并重新部署代码可能非常昂贵。这种费用,加上代码的任何更改都可能引入新缺陷的风险,可能意味着在当时纠正缺陷是不值得的。另一个例子是安全分析师通常会考虑冗余条件警告(即,其值始终为true或始终为false的条件)没有帮助,怎样防御ddos,但是负责测试代码以达到100%条件覆盖率的人会很乐意得到这样的报告,因为这意味着他们不必浪费时间来生成数据来测试不可能的情况。与直觉相反,甚至有一些情况下,为了响应错误的阳性报告而更改代码是有意义的。许多程序员对此反应强烈;毕竟,这个工具显然是程序错误的,哪里cc防御好,所以为什么他们需要更改代码?然而,通过更改代码,程序员可以更容易地分析生成有用的结果,从而增加了发现真正缺陷的机会。更改代码利用自动化的能力。这样的更改也使代码更容易让人理解。这个原则

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

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

    QQ客服

    400-0797-119

    X