摘要:所有即使是公司制定了最严格的代码安全规范同时每个程序员都有能并完美执行了安全编码规范,也只能解决最多的潜在问题。大型为了确保安全还可以采用渗透测试和分析公司提出来的一项新兴技术,称运行应用程序自我保护功能。
尽管像银行、大型电商以及政府等大型机构在确保程序员写出最安全的软件上付出了巨大的努力:比如雇佣最有经验的程序员,使用昂贵的代码分析工具等等。但是媒体头条上还是经常可以看到大型组织出现的安全事故。
这的确让很多企业非常沮丧,管理者都可能在想同样的问题:为什么付出这么多努力还是不能确保系统安全呢?是什么原因导致这样的情况发生呢?本文从6个方面来解释为什么编写安全的代码只能解决安全的一小部分问题:
1,确保自己代码安全只是冰山一角
现代软件尤其是大型的银行系统软件都是由自己的编写的代码、开源软件、第三方提供的组件以及软件开发框架组成,现在几乎没有纯粹使用自己的编写的软件就能完成一个系统,这无论从软件思想和ROI方面考虑都是不现实的。研究标明通常一个现代软件里完全由本公司程序员编写的代码只占所有代码的10%到30%。所有即使是公司制定了最严格的代码安全规范同时每个程序员都有能并完美执行了安全编码规范,也只能解决最多20%的潜在问题。 这些仅仅只是冰山一角。
2,应用系统大部分代码安全不可控
根据金融机构的统计数据,大部分银行最少也有一般的软件系统都是从第三方买来的,有可能在买来的系统中做一些定制化的修改。这些软件通常是不提供源代码,所以企业也很难确保这些买来的软件的开发过程遵守安全代码开发最佳实践。正如我们所看到的,过去两年,许多知名度非常高的安全事故都是攻击第三方应用和IT供应量的漏洞。这个趋势会越来越明显。
3,想修补了已经为时已晚
在项目启动就制定并执行最佳代码安全实践效果是最理想的,但是不幸的在大部分大型项目开发,等意识到需要代码安全并制定规范和标准的时候,大部分功能都已经实现了,每个经历过大型项目的人都太熟悉这个场景了。这个时候想修复想通过重构代码去修复漏洞几乎不可能,重构大型软件需要非常程的时间,这在开发周期和人力成本都是不可承受的,带病上线是非常正常的事情。这些带着已知漏洞运行的系统只能寄希望虚拟防火墙补丁甚至是运气来防止灾难性的安全事故发生。
4,代码安全规范控制非常艰难
现代大型系统都已经告别小作坊的方式,大型系统通常需要很多程序员一起通力合作才能完成,这些程序员的能力,资历以及性格各方面都有非常大的区别,项目外包也是一大趋势,还有的大型公司的程序员工作在不同的地域,时区,文化,语言,国家,这些都给代码安全规范的统一完整实施带来巨大的困难,代价非常的大。
5,应用程序运行环境也存在漏洞
即使企业有非常强大的整合能力,能确保自己编写的程序和所有外部购买的程序都没有漏洞,但是应用程序还是得部署到各种运行环境里,比如 Java 程序需要 JVM,同时需要运行在各种 Web 容器里(比如 Apache Tomcat, WebLogic, JBoss, WebSphere 等等),这些环境漏洞是企业没有办法控制的,只能将所用到环境跟新到最新的版本。其他的漏洞只能听天由命了。
6,每个人都可犯迷糊的时候:
理想来说是每个人在写每一行代码的时候都能够遵循安全编码的最佳实践,这个本身就是违背基本规律的,每个人都有犯迷糊的时候,同时项目的进度,排期,以及各个部门的协调都会造成各种错误的发生。
尽管我们在这里详细的描述了仅仅通过安全编码是不能完全杜绝安全事故发生,但是安全编码对任何公司都是非常重要的,毕竟安全无小事,公司应该为开发者和安全编码制定政策和程序,提供安全意识培训,并结合各种代码扫描、分析工具,尽可能的减少代码漏洞的数目,对能承受修复漏洞需要付出的成本的大公司来说还是非常有意义的,它能有效的减少受到攻击的可能性。
大型为了确保安全还可以采用渗透测试和分析公司 Gartner 提出来的一项新兴技术,称运行应用程序自我保护功能 RASP 。这种方法实现在程序运行时进行安全检测和保护的能力,对防范零日攻击和 APT 有非常好的效果。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/11155.html
摘要:目前主要的互联网金融模式包括第三方支付在线理财网贷直销银行互联网保险及互联网众筹等。互联网金融安全风险蔓延态势及具体表现据相关机构统计数据显示,早在年,中国移动互联网金融呈现爆发式增长,全年交易额超过万亿人民币。 随着中国互联网金融市场的发展、政策试点扩大范围、央行开放征信牌照、从互联网巨头到新兴创业公司都开始布局消费金融。特别是随着移动互联网的普及和推广,移动互联网金融也逐渐成为互联...
摘要:借助语法树,开发者能够更好地展现和修改源程序代码,优化开发环节,提高安全系数,还能进一步实现安卓预编译。用语法树来实现预编译指令开发者还能用语法树来实现预编译指令,常见的预编译指令主要分为条件编译宏定义文件包含三大类。 如何在保证安全性的前提下,提升开发过程的效率,是每个开发者都在不断探索的问题。借助语法树,开发者能够更好地展现和修改源程序代码,优化开发环节,提高安全系数,还能进一步实...
摘要:企业上云企业在担心什么盘点企业必须面对的七大顾虑众所周知,企业上云有诸多好处,单是从提高效率节约成本这两个方面就能为企业节省不少开支。究其原因,在于这些企业对上云存在诸多的顾虑。企业上云企业在担心什么?盘点企业必须面对的七大顾虑众所周知,企业上云有诸多好处,单是从提高效率、节约成本这两个方面就能为企业节省不少开支。但,企业真的如此看待企业上云吗?如今大部分尚未上云的企业,似乎还处于迷茫之中。...
阅读 3818·2021-09-27 13:35
阅读 994·2021-09-24 09:48
阅读 2863·2021-09-22 15:42
阅读 2309·2021-09-22 15:28
阅读 3108·2019-08-30 15:43
阅读 2574·2019-08-30 13:52
阅读 2942·2019-08-29 12:48
阅读 1410·2019-08-26 13:55