来自 防护 2021-10-11 23:01 的文章

高防ddos_cdn防ddos_免费测试

高防ddos_cdn防ddos_免费测试

在整个开发过程中,可能需要花费数小时或数天的时间来更新应用程序的安全性。你的应用已经准备好了,对吧?错了!在安全性问题上,您还需要在安全过程中再做一步:安全代码审查。在许多行业,包括医疗保健和支付行业,安全代码审查是法规遵从性要求的一个强制性部分,它们在发布应用程序之前提供了一个附加的安全层。无论是否强制执行,安全代码审查都会为应用程序和整个组织的安全性提供附加值。 安全代码审查是流程组织在开发过程的后期阶段识别和修复潜在风险安全漏洞的过程。作为发布应用程序之前的最后一个门槛,安全代码审查是安全过程中不可或缺的一部分。它们作为一种最终检查,以检查代码是否安全可靠,以及应用程序的所有依赖项和控件是否安全且正常工作。由jeffwilliams撰写的OWASP代码审查指南说得很好:"代码是你相对于黑客的唯一优势。不要放弃这个优势,只依赖外部渗透测试。使用代码。" 什么是安全代码审查? 如果您在整个开发过程中集成了安全性测试,您可能会认为您的发布是安全的。但是,除非您通过自动和/或手动检查确保您的应用程序正确地实现了安全机制,否则您无法确定是否出现了安全工具无法检测到的紧急问题或漏洞。 这就是安全代码审查进入画面的地方。就像我们在发送重要文档之前都要再检查一次一样,应用程序需要"最后一次查看",以确保应用程序及其组件没有安全缺陷。安全代码检查用于检测在其他类型的安全测试中没有发现的所有不一致性,并确保应用程序的逻辑和业务代码是可靠的。评审可以通过手动和自动两种方法完成——我们稍后将讨论每种技术的优缺点。 通过安全代码检查验证代码的安全性还可以减少在发布后检测到漏洞时所需的时间和资源。在安全代码审查期间发现的安全漏洞是导致无数违规行为的原因,这些漏洞导致数十亿美元的收入损失、罚款和客户被抛弃。 安全代码审查的重点是在以下每个方面查找缺陷:身份验证、授权、安全配置、会话管理、日志记录、数据验证、错误处理和加密。代码审阅者应该精通他们正在测试的应用程序的语言,并且了解他们需要注意的安全编码实践和安全控制。 评审人员的另一个重要需求是他或她要理解应用程序的完整上下文,服务器防御cc攻击,包括它的目标受众和用例,以便能够成功地评审代码。如果没有这个上下文,代码审阅者将无法保护第一眼看上去安全的部分代码,但如果有可能很容易受到攻击。了解一个应用程序将要使用的上下文以及它将如何运行,这是唯一的方法来证明代码充分保护了你所赋予它的任何东西。 手动与自动安全代码审查 当需要选择用于执行安全代码检查的工具和过程时,您可能会遇到这样一个问题:应该使用哪些工具,以及您应该使用自动工具还是人工检查。哪个更好?与SDLC的其他领域一样,下列哪些方法防御ddos,最好的方法是混合方法,使用强大的静态代码分析工具将手动检查和检查结合起来。以下是两种审查方法的利弊: 自动化代码审查专业人士: 检测悬而未决的水果和数百个其他漏洞,包括SQL注入和跨站点脚本在敏捷和持续集成环境中,快速测试和大量代码的能力至关重要能够按需调度和运行能够添加非安全检查,包括业务逻辑能够根据组织需要扩展自动化测试根据工具选择的不同,可以根据组织的需要(尤其是某些法规遵从性标准)和高价值应用程序定制自动源代码审查工具可以帮助提高开发人员的安全意识,并提供一种更好地教育使用该工具的开发人员的方法 自动代码审查缺点: 不允许微调和定制的工具可能会产生误报和漏报覆盖率和广度实际上取决于您选择的工具类型以及它所覆盖的语言、框架和标准为那些不熟悉静态代码检查程序的人提供了一个学习曲线虽然有强大的通用语言开源工具,但并非所有预算都可行 手工代码审查专业人士: 能够深入到代码路径中检查设计和架构中大多数自动化工具找不到的逻辑错误和缺陷与一些自动化工具相比,手动检测授权、身份验证和数据验证等安全问题可以更好地进行检测对于高价值的应用程序,总是有额外的空间(经过专业训练)查看其他人的代码是共享安全编码和AppSec知识的好方法 手动代码审查缺点: 需要精通应用程序中使用的语言和框架以及对安全性有深入了解的专家不同的评审者会产生不同的报告,导致评审者之间的结果不一致——尽管同行评审可以是一个解决方案测试和编写报告是及时的,并且常常要求开发人员参加有时很长的访谈会议,以便向评审者提供上下文,这会消耗开发人员的时间和资源手动审查超过10-15k LoC的应用程序仅限于针对高风险功能 应用程序有数千到数十万行代码,我们发布新应用程序和版本的周期越来越短。但是,我们不能比10到15年前更快地检查代码。另一方面,人类的工具不是完美的。 而且,正如维基百科关于应用程序安全性的条目所说的那样,"人脑更适合过滤、中断和报告商业上可用的自动源代码分析工具的输出,便宜的高防cdn,而不是试图通过编译的代码库跟踪每一条可能的路径来发现根本原因级别的漏洞。",手动和自动的源代码审查是相辅相成的,每一个都覆盖了对方通常薄弱的领域。 随着应用程序安全程序的成熟,您将发现手动和自动代码审查都应该在其中占有一席之地。因此,如果您的预算既考虑到工具的成本,又考虑到内部审查人员或外包的成本,那么在您的正常安全活动中最好同时进行自动化和手动审查。 5个更好的安全代码审查提示: 1生成代码评审检查表,以确保评审和不同开发人员之间的一致性当执行手动代码检查时,确保所有审阅者都使用相同的综合检查表工作。正如编写代码的开发人员是人,可以忽略安全编码实践一样,如果不使用设计良好的检查表,审阅者可能会忘记某些检查。 此外,对手动代码审阅者强制执行时间限制和强制休息。请记住,就像我们在写电子邮件或连续阅读数小时后都会褪色一样,评论者也会感到疲劳。重要的是要确保评审人员的意见最敏锐,尤其是在查看高价值的应用程序时。同时,在源代码评审上投入一定的时间,也会激励评审人员在适当的时间内完成。 2.通过不挑出开发人员来确保积极的安全文化将矛头指向那些经常犯同样错误的开发人员是很容易的,特别是在某些工具能够比较结果的情况下。在构建安全文化时,避免与开发人员玩推卸责任的游戏非常重要;这只会加深安全与开发之间的差距。使用您的发现来帮助指导您的安全教育和意识计划,将这些常见错误作为起点,并提供开发人员应该注意的相关示例。 同样,如果开发人员觉得有人在监视他们,随时准备对犯下的每一个错误大发雷霆,如何进行ddos防御,那么他们的安全性就不会提高。以更积极的方式促进他们的安全意识,以及你与开发团队的关系,但更重要的是,整个组织将从中获益。 三。每次引入代码中有意义的更改时都要检查代码如果你有一个安全的SDLC,ddos防御多少g,你就会明白定期测试代码的价值。安全代码审查不必等到发布之前。对于主要应用程序,我们建议在引入新的更改时执行手动代码复查,通过分块查看应用程序来节省时间和人力。 4将人工审查和工具使用相结合是检测所有缺陷的最佳方法工具还没有人的思想武装起来,因此无法检测代码逻辑中的问题,并且很难正确估计如果在一段代码中未修复此类缺陷,组织将面临的风险。因此,正如我们上面所讨论的,混合静态分析测试