源代码审查案例

简介: 源代码审查案例

如果你已经拥有了内部专业知识,那么为了你满足你的合规要求,Web应用防火墙(WAF)似乎是一个简单的选择。但是对于IT安全来说,永远没有这么简单的方法。例如,Web应用防火墙不能防止应用程序的逻辑缺陷所带来的损害。如今的Web 2.0应用使用了大量动态代码,想想这些Web 2.0应用的复杂度,逻辑缺陷很容易发生。

面对这种情况,代码审核的好处就显现出来了。通过在代码级解决问题,你可以减少安全性相关的设计、编程缺陷或其他有严重危害的缺陷。通过更新程序版本,动态地提高应用程序的整体安全。

有四种代码审查方式符合PCI DSS要求:

• 手动审查应用程序源代码

• 源代码自动分析工具

• 手动web应用安全漏洞评估

• Web应用安全漏洞自动评估工具

源代码审查可能是最彻底的一个选择。分析师会检查数据在程序中的确切流向,一切都逃不过他的眼睛。分析师会考虑程序域的特殊属性,如信用卡号码和个人资料,从而全方位地识别出所有的安全漏洞。

这种方法的主要缺点是,要找到那些使用最广泛的Web应用程序的所有漏洞,过程费时且昂贵。需要有技术和经验的工程师,要求在应用程序开发和安全方面有大量的专业知识。虽然准确的花费因程序复杂度而异,但你仍有可能为此付出数万美元的成本。请记住,源代码审查并不要求如防火墙那样的维护和保养水平(尽管需要对未来版本的源代码进行审查,但是你的开发者仍然需要具备修改已发行的漏洞的能力)。

如果审查人员接受过程序代码评估方面的训练,并且不是程序的开发人员,那么他的审查资格就符合PCI标准的要求。

不过,只有那些经常需要开发自己的应用程序的大型企业,才能在经济上承受专用的代码审查人员。

PCI标准还批准“正确地使用应用程序源代码自动分析(扫描)工具”和“正确地使用Web应用程序安全漏洞自动评估(扫描)工具”。尽管静态分析工具不能测试应用程序在多大程度上符合安全政策,也不能像手动代码审查那样找出应用程序中的后门,但是他们可以缩短审查大型的、复杂的应用程序的时间。

此类工具的高端产品使用复杂的功能,如数据流分析、控制流分析和模式识别等,确定潜在的安全漏洞。我说潜在的,是因为分析结果可能会包含大量误报。优点是它们可以分析高度复杂的代码,并能找出分析关注的问题。这种特性使得这类工具物有所值。

代码审查物有所值

先不管称代码审查为“漏洞评估”是否正确,代码审查能够提供一种满足规章要求的更加物有所值的方法。许多人会争论说,应用程序变得如此复杂,还有许多方法比代码审查更符合实际。漏洞评估能揭示弱点和漏洞,但这些漏洞既可能被不受信任的外部人员利用,也可能被授信的用户误用。同样的,敏感数据未加密这类问题不会被检测出,因为应用程序用户界面是唯一的攻击向量。此外,在产品测试环境中测试应用程序,这不一定可行,且往往很昂贵。

作为自行审查代码和使用商业评估套件的折中,你可以使用开源的Web安全测试工具。你可以在开放Web应用安全项目(Open Web Application Security Project)中找到许多此类工具。

当你开始审视这个市场时,你会发现,一些你买的自动化工具能给你提供灵活的服务,使得审查过程简单而又节省成本。将你的测试工作外包给分析专家——如Veracode或者WhiteHat安全公司——在某些方面意义重大:你不用再去安装和学习使用某一应用程序,还可以从专业的测试人员那里获得有益的结果。

无论是外包测试还是使用内部管理测试,你需要记住的是两者都是有局限的,而攻击是没有限制的。例如,你的供应商可能会很不乐于见到你深入他的网络,仅仅是为了确定你是否能用它侵入你自己的网络。但是攻击者是不会有任何犹豫的。

相关文章
5-20|本文目标为svn合并代码
5-20|本文目标为svn合并代码
|
9月前
|
安全 测试技术 网络架构
【专栏】编写网络设备割接方案的七个步骤,包括明确割接目标、收集信息、制定计划、设计流程、风险评估、准备测试环境和编写文档。
【4月更文挑战第28天】本文介绍了编写网络设备割接方案的七个步骤,包括明确割接目标、收集信息、制定计划、设计流程、风险评估、准备测试环境和编写文档。通过实际案例分析,展示了如何成功完成割接,确保业务连续性和稳定性。遵循这些步骤,可提高割接成功率,为公司的网络性能和安全提供保障。
877 0
|
6月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何确保解决冲突代码是提交到合并的目标分支
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
9月前
|
缓存 Java 应用服务中间件
云效常见问题之把代码库里面的代码覆盖到目标机器组的对应目录如何解决
云效(CloudEfficiency)是阿里云提供的一套软件研发效能平台,旨在通过工程效能、项目管理、质量保障等工具与服务,帮助企业提高软件研发的效率和质量。本合集是云效使用中可能遇到的一些常见问题及其答案的汇总。
|
9月前
|
弹性计算 Shell 开发工具
自动化代码质量检查
【4月更文挑战第30天】
50 0
|
XML 存储 SQL
【C#编程最佳实践 五】项目与代码流程实践
【C#编程最佳实践 五】项目与代码流程实践
198 0
【C#编程最佳实践 五】项目与代码流程实践
【测试一】——研发自测相关注意事项
该文档针对媒资4.1相关接口的两轮测试结果进行了抽象汇总,针对于研发自测相关项提供了具体的自测依据。
|
Oracle IDE Java
最详细的Android开发环境配置经验分享(包含配置过程中可能出现的问题及解决办法。繁琐的配置步骤是否是你头疼呢,详细配置步骤你值得拥有!)
最详细的Android开发环境配置经验分享(包含配置过程中可能出现的问题及解决办法。繁琐的配置步骤是否是你头疼呢,详细配置步骤你值得拥有!)
476 0
最详细的Android开发环境配置经验分享(包含配置过程中可能出现的问题及解决办法。繁琐的配置步骤是否是你头疼呢,详细配置步骤你值得拥有!)
|
前端开发
前端工作小结12-工具里面代码提交
前端工作小结12-工具里面代码提交
81 0
前端工作小结12-工具里面代码提交
|
安全 编译器 C++
C++ 最佳实践 | 7. 正确性和脚本
C++ 最佳实践 | 7. 正确性和脚本
128 0

热门文章

最新文章