机房360首页
当前位置:首页 » 服务器资讯 » 骏一创业星_思客云:代码安全审计的四大误区

骏一创业星_思客云:代码安全审计的四大误区

来源:黑猫 作者:DJ编辑 更新时间:2017-5-5 15:24:20

摘要:随着代码安全审计被越来越多的软件开发企业和开发人员所了 解和认识,采用代码安全审计的方式来避免软件中安全漏洞的产生也正在各个企业中积极地开展。作为这个行业的老兵,在与很多企业的管理人员和安全技术人员交流过程中,我发现大家或多或少对代码安全审计和代码安全审计工具还有一些理解上的误区,造成了工作上的困扰。

  随着代码安全审计被越来越多的软件开发企业和开发人员所了 解和认识,采用代码安全审计的方式来避免软件中安全漏洞的产生也正在各个企业中积极地开展。作为这个行业的老兵,在与很多企业的管理人员和安全技术人员交流过程中,我发现大家或多或少对代码安全审计和代码安全审计工具还有一些理解上的误区,造成了工作上的困扰。下面,我将就四个方面的个人理解分享给大家。

  1、代码安全审计就是漏洞挖掘

  一提到代码安全审计,大家首先想到的就是可以从代码中找到各种各样的安全漏洞。所以很多软件开发人员或者管理人员都想用代码安全审计工具这种“神器”,一下子就能挖掘出很多新的、未知的“漏洞”。

  不得不说这是一个误区。代码安全审计工具虽然它可以发现程序中潜在的安全漏洞,但并不能算作是漏洞挖掘工具,特别是对于没有较强安全知识和渗透攻击知识的开发人员来说,代码安全审计工具就是安全编码的辅助工具。

  从字面上就可以理解到“代码审计”——英文“CodeReview”,它只是对代码安全性的复查、审查,查看程序是编写是否符合相关要求和编程规范,是程序员的一种自查方式。代码安全审计工具也只是用自动化的工具去代替了人工审查而已。

  而对于那些有较强安全知识和丰富渗透攻击经验的“黑客”们来说,代码安全审计工具又能看作是他们“攻击”的辅助工具。这是因为他们常常可以利用代码安全审计工具查找出来的“蛛丝马迹”来找到那些深藏在代码深处的“0-day”或“获 root 级权限”的安全漏洞。所以我们可以看到有很多渗透攻击的大牛们,也纷纷编写一些小的、很实用的代码审计工具来查找漏洞的原因。但我还是要说,代码安全审计工具对于开发人员来说,不能作为漏洞挖掘工具来用,不然你就会陷入第二个重大误区。

  2、代码安全审计工具都会很高的误报率

  我常常听到很多用户或者开发人员讨论说代码安全审计工具的误报率很高,因为检测出来的漏洞大部分都不能被直接利用或者被渗透验证。这是一个很大的误区,这个误区就是上文的第一个误区的延伸,当用户把代码安全审计工具作为漏洞挖掘工具时就会产生。原因是代码安全审计工具是以静态的方式在程序中查找所有可能存在的安全漏洞特征,这些特征表面上就是我们不安全的编码方式,或者说是不安全的编程习惯,这些方式是产生安全漏洞的必要条件,但不是绝对条件,不能用渗透的方式来验证和证明。打个形象的比喻就是:“人人都知道吸烟有害健康,吸烟会导致呼吸道疾病或者肺癌;但我们不能证明某人吸烟后就一定会得肺癌。”

  所以我总结:代码安全审计的主要宗旨就是在编码环节,以(自我)审计的方式去尽量减少和消除这些不安全的编码方式和编码习惯,确保不会有安全漏洞的产生。

  这个宗旨就告诉开发人员在编码的时候,把所有不好的、不安全的编码方式规避掉,尽量以正确的方式,来编写出安全的程序。

  当代码安全审计工具辅助开发人员发现了这些不好的编码方式时,我们不必要去纠结它是否能够被利用或者被渗透验证。而是用最简单、最直接、成本最低的方式把它消除掉就 OK了。

  这也是 SDLC 开发模式所倡导的“在软件开发每一个环节中来避免安全漏洞的产生”的安全开发理念。当我们以帮助开发人员在代码中查找和消除所有不好的、不安全的编码方式为目标的时候,代码安全审计工具的所谓误报率就变得很小、很小了。

  3、代码安全审计应该由专业的人员来干

  关于代码安全审计工作到底应该由谁来负责,我之前曾写过一篇文章,《“让开发者爱上安全测试”系列 3 之(软件安全测试谁负责?)》大家可以参阅。同样,代码安全审计工作在我看来不能仅仅交给“专业的人员”来干,这是个误区。这个误区主要是存在于管理人员对软件安全开发理念上的误区。代码安全审计是软件安全开发的其中一个环节,代码安全审计如果想要有很好的效果,就一定要开发人员从开发意识上和编码习惯上有所改变。如果只是把代码安全审计交由安全测试人员,甚至是外包的安全测试团队来干的话,效果一定是不好的。而往往管理人员会受到“专业的事由专业的人员干”思想的影响。

  把代码安全审计工作只交给安全人员来做,甚至以服务的方式将和外包给安全服务团队来做,这样做就真的只是“代码安全审计”了(代码安全审计=代码安全测试+代码安全开发)。就把安全编码“最专业”的开发人员给排除在外了,把安全漏洞审计,与安全开发相对孤立起来了,效果怎么会好得了呢?

  为此,我们思客云公司以找八哥产品为基础,提出了“让开发人员爱上安全测试”的测试理念,就是希望在这一点上能给让广大的用户避免这些理念上的问题。能够在企业内自建一个完整的安全开发(审计)团队,并给予全面的安全知识培训,使得安全漏洞审计和安全开发有效地结合起来,成为一个高效、相通的整体。让代码安全审计真正流利起来。

  4、代码安全审计越全面越好

  当代码安全审计工作在企业中执行的时候,管理人员或者安全负责人员又会受“从代码层面杜绝一切安全漏洞的产生”这样的理想主义的影响,而采取较“左”的思想。希望开发人员将全部的不安全编码特征全部解决掉,这样又陷入了一个误区。

  代码安全审计也不是越全面越好,也要追求开发与安全的平衡。因为代码安全审计会给开发人员带来知识上的挑战和一定的工作量。开发人员如果一开始就受到太多安全漏洞特征和安全编码的约束时,很可能逆反心理,不与配合,甚至以“各种理由”不改,这样就很难开展工作。

  即使在“强行手段”下不得不配合,也会在修改时百般变通,能逃则避。代码安全审计正确的方式是企业以自身特点为基础,定制出一套安全人员和开发人员都能够接受的“代码安全审计标准”,在企业中有序开展相关工作,并在后期不断地补充和完善这个标准,使之成为一个既能迎合安全趋势的不断发展,又能适合开发人员的安全审计标准,这样代码安全审计工作才能在企业中顺利地开展。

  代码安全审计,一个简单又高效的软件安全保障手段,如果能够有效地在企业中展开,它会让您的软件安全建设工作事半功倍。反之,则只会让开发人员,安全人员和管理人员徒增烦恼。思客云找八哥系统以提供最佳“代码安全”整体解决方案为己任,希望能够给您提供必要的帮助!

  责任编辑:DJ编辑

机房360微信公众号订阅
扫一扫,订阅更多数据中心资讯

本文地址:http://www.jifang360.com/news/201755/n744695669.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
推荐图片