来自 防护 2021-12-14 03:07 的文章

网站安全防护_防御DDoS攻击的11种方法_免费试用

网站安全防护_防御DDoS攻击的11种方法_免费试用

简介:许多软件项目依赖于第三方代码、系统库和其他项目中的二进制代码。高级静态分析工具对整个程序的原因进行了分析。库内容不可用这一事实可能导致分析中的误报和假否定。这是由于大多数静态分析工具都不知道二进制库中的逻辑是什么。通过使用二进制静态代码分析建立库中逻辑模型,然后结合源代码分析分析,可以获得更准确的结果。本文讨论了将静态分析扩展到源/二进制屏障之外以及这样做的好处,并介绍了一种编码声纳、码声纳/库的变体。相关:用二进制分析提高质量和安全性用二进制分析管理第三方代码安全性和质量软件组装实践需要更多的预防措施全程序(源)分析高级静态分析工具在分析整个程序或应用程序时,会使自己与众不同。拥有可用于分析的完整源意味着静态分析的更好结果——减少误报(来自工具的警告不正确)和更少的假阴性(工具遗漏的实际错误)。使用这种方法意味着数据和控制流可以从一个单元跟踪到另一个单元,例如,这些单元可以用于污染数据分析。不管源代码的完整性如何,仍然缺少分析的部分——库中的二进制代码、操作系统调用以及链接到最终可执行文件的任何其他二进制对象。缺少组件第三方代码是嵌入式系统中的一个现实。VDC最近的一份报告指出,嵌入式系统中第三方源的增长。事实上,开源、商业现成等第三方代码的使用达到了现代项目的50%。图1:一个图,显示了不同类项目的代码源分布。来源"软件组装实践需要更多预防措施"–VDC研究,2016年。鉴于嵌入式项目中第三方软件的比率如此之高,因此,完全静态分析所需的许多依赖项都丢失了。没有这个细节,工具必须对库行为做出假设,ddos攻击防御公司,这些行为可能是不正确的或不完整的。考虑以下代码示例,高防cdn的目标客户是,handlePacket()函数是链接到应用程序的二进制第三方库的一部分:包装*myPacket;myPacket=malloc(sizeof(packetT));if(handlePacket(myPacket)=-1)返回-1; 从工具的角度分析这一点提出了许多问题。库是否拥有myPacket对象的生命周期,还是程序员必须释放内存?是否保证在库调用之后初始化myPacket的内容?下面是另一个使用libexpat(流式XML解析器)的示例:XML解析(p、Buff、len、done);静态分析工具不理解此库的详细信息,因此需要假设:库是否检查空指针?库是否会溢出Buff?增加分析深度虽然可以将对著名库函数的支持构建为静态分析工具,但不可能将其扩展到一般情况。但是,增加对这些外部库的分析深度,可以提高工具对错误和安全漏洞做出更好决策的能力。介绍码声纳/库Gramatech码声纳/库在分析源代码和二进制代码的同时是唯一的。利用Gramatech独特的二进制代码分析,高防cdn的目标客户,CodeSonar/Libraries支持对项目中源对象和二进制对象进行混合分析。此外,CodeSonar/Libraries可以处理任何类型的二进制库,包括那些不需要调试信息的二进制库和剥离和优化的二进制文件库。从二进制文件中收集的细节包含在整个程序模型中,大大提高了结果的精度。CodeSonar/Libraries的重点是查找和报告源代码中的错误。通过理解图书馆逻辑,深化整个程序分析,防御ddos攻击的防火墙,提高了系统的准确性。假设库供应商已经完成了适当的测试工作,它不会报告源于库本身的错误。二进制文件的代码声纳对于关心库本身内容的人来说,将进一步向前迈进一步。它报告二进制文件中的问题,这样您可以与库供应商讨论以更正它们。这两种产品都可以从Gramatech获得,现在可以免费提供评估版本。结论:高级静态分析工具可以对源执行高保真性分析,但当代码路径在源不可用的外部代码中出现时,可能会受到限制。CodeSonar/Libraries将静态分析扩展到外部二进制对象中,高防服务器cdn,以创建更好的分析程序模型,从而提高静态分析结果的精度。想了解更多信息吗?观看最近的一次网络研讨会"扩展静态分析,包括第三方库",该研讨会介绍了CodeSonar/Libraries,并讨论了它在项目中可能发现的问题类型。