问:SANS Institute系统网络安全协会在今年二月份发布了最新版的25个最危险的编程错误名单。应用程序安全人员能从中得到哪些重要的收获呢? 答:CWE/SANS每年都会公布25个最危险的编程错误名单。该错误名单和OWASP(开放式Web应用程序安全项目)发布的十个最严重的网页应用程序安全风险是所有计算机软件开发相关人员都必须阅读的内容。他们提供了一个非常好的应用程序安全最佳实践检查列表,人们可以利用他们来检查那些应用程序中需要关注的关键地方。
项目管理人员和开发人员要确保他们的代码不会犯名单中的任何一种错误,而代码审查人员则应该特别注意那些被罗列出来的漏洞。 SANS公布的这25……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
问:SANS Institute系统网络安全协会在今年二月份发布了最新版的25个最危险的编程错误名单。应用程序安全人员能从中得到哪些重要的收获呢?
答:CWE/SANS每年都会公布25个最危险的编程错误名单。该错误名单和OWASP(开放式Web应用程序安全项目)发布的十个最严重的网页应用程序安全风险是所有计算机软件开发相关人员都必须阅读的内容。他们提供了一个非常好的应用程序安全最佳实践检查列表,人们可以利用他们来检查那些应用程序中需要关注的关键地方。项目管理人员和开发人员要确保他们的代码不会犯名单中的任何一种错误,而代码审查人员则应该特别注意那些被罗列出来的漏洞。
SANS公布的这25大错误告诉我们,应用程序开发人员还是努力从过去的错误中学习经验。这25个错误可以分成三种类型:组件之间不安全的交互(8个错误),高风险的资源管理(10个错误)以及渗透防御(porous defenses)(7个错误)。
高风险的资源管理错误是指拙劣的编程技术和开发人员缺乏安全意识等。我知道大多数开发人员都不太注重安全,而是把精力集中在“特点和功能”上面,但是在2010年有些应用程序中竟然包含缓冲区溢出漏洞和路径遍历漏洞,这种情况表明,刚刚进入这个行业的人没有得到正确的教育,他们不知道如何正确地进行编程,更不用说具有安全意识了。如果应用程序的代码中包含了众所周知的漏洞,系统和用户将会继续遭受攻击。
渗透防御是项目管理拙劣或者项目资金不足的反应。我想不出“敏感数据缺少加密”出现在那个错误名单上的其他原因。“关键功能缺少身份认证”再次表明,许多开发人员没有掌握如何创建运行在恶劣互联网环境中的应用程序的方法。开发人员需要明白,他们不能依靠防火墙和负责应用程序安全的IDS(入侵检测系统);他们也需要对安全负责。
开发人员通常不会意识到他们在应用程序中添加的特殊特点和功能具有安全隐患。威胁建模是解决这个安全性与实用性问题的好方法。它不仅可以提高开发人员的安全意识,而且还使应用程序安全成为应用程序设计和开发过程的组成部分。这是缩小安全人员与开发人员之间专业知识差距的一个很好的办法。
最后,我认为,第一类错误——组件之间不安全的交互,通常是开发团队非常庞大的直接结果。一个应用程序中的不同组件由不同的开发人员编写,在该应用程序完成和部署之前,他们通常很少交流。为了减少这种类型的错误,所有的代码都要用文档记录清楚,这样做至关重要。文档内容应该包括代码是干什么的、这些代码被调用时有哪些前提假设、为什么要用到这些假设、怎样使用这些假设等等。
通过确认和测试这些假设没有被违背,可以消除应用程序中的许多缺点。列出一个特殊组件参考的代码也很重要。这种交叉参考有助于确保部件的变化不会破坏其他地方的假设和逻辑,这样审查人员可以更容易看到或者理解哪些流程或者业务控制应该进行规避。为了确保此项文档和确认工作得到实施,我建议把它作为设计和创建要求的组成部分。如果每个项目管理人员都确保他们的应用程序经过检查,排除这25个错误,那么我们会在执行好的代码实践以及减少简单黑客攻击数量上向前迈进一大步。
作者
翻译
相关推荐
-
应用程序安全管理的“八大”主张(二)
任何环境中最大的风险之一是终端用户安装和运行所有他们想要的软件的能力。有很多工具可用来限制终端用户是否可以在桌面上运行程序。
-
应用程序安全管理的“八大”主张(一)
在BYOD、云计算、大数据充斥的年代里,应用程序仍然是企业信息安全不可忽略的危险地带,系统管理员应该把管理应用程序及其安全作为首要任务。
-
如何缓解Windows应用程序本地管理权限风险?
用户总想多安装一些Windows应用程序,但是,如果管理员真的给了用户这个权限,那么网络有可能面临严重的威胁。
-
Web应用安全保障“六要素”(一)
Web应用程序比客户端应用程序更难保证安全性,它有大量的web应用程序和自定义脚本数量,而且每个都可能包含潜在的漏洞。