下面的系列文章主要围绕《GB/T 38674—2020 信息安全技术 应用软件安全编程指南》进行讲解。对该标准中一些常见的漏洞进行了梳理,大家感兴趣的话可以自己去下载下来学习一下,里面有一些最佳实践是比较好的。
本标准从程序安全和环境安全两个方面提出了提升应用安全性的编程最佳实践。其中,程序安全部分描述软件在资源使用、代码实现、安全功能方面的安全性规范,环境安全部分描述软件的安全管理配置规范。前面的文章为大家讲解了程序安全和代码安全,本文我们继续问大家讲解环境安全。
环境安全这部分主要包含:第三方软件使用安全 、开发环境安全 、运行环境安全这三部分。这个也是我们在系统设计的环节就要考虑好这些问题。
在系统的设计过程中,我们会用到哪些第三方的软件,这些软件我们要用哪一个版本,哪个版本是安全的,我们的开发环境怎么配置,运行环境怎么来配置,都要提前做好规划。防止不同的人员,用不同的环境、不同的版本造成的安全问题。
【第三方软件使用安全】
针对第三方软件也要进行代码的安全审计,因为第三方的软件也不一定是安全的。
【开发环境安全】
开发环境这部分强调要使用统一的官方编译器,确保安装了所有的补丁。还要去掉调试开关,这个也非常重要,很多黑客的攻击就是通过调试开关这里进入的。
另外就是源代码的安全管理,怎么保护源代码不被非法访问,以及开发环境与实际物理环境进行隔离。
【运行环境安全】
应用软件发布前去除所有与调试和测试相关的代码、配置、文件等。这一条是我们在代码审计中经常发现的问题。
很多开发人员非常不注意,测试代码和开发代码不是那么明确,上线的时候也不把测试代码去掉,很多测试代码就跟着上线了,就会暴露一些敏感信息。
像前面举的携程的例子,就是它的调试信息被获取到了,这个问题虽然不是一个大问题,可能我们开发各个方面都很注意,开发能力也非常强,但是在这些环节如果不注意的话就会产生非常大的风险。这一块如果开发人员没有时间和精力去做的话,可以让测试人员来帮忙测试。
安全配置信息只能是只读的,对重要的配置信息进行安全防护,像一些配置文件,如果明文放到一些不安全的路径下面,就很容易被黑客获取到。
如果应用软件部署在客户端,例如移动APP,宜使用混淆、签名、加固等措施防止逆向获取源代码。现在移动应用上线前也会针对这部分进行检查,必须要做一定的处理。
在软件安全中,环境安全这部分往往是开发人员特别不注意的地方,而这些地方一旦出现问题都是一些比较大的问题,大家多去了解一下,在开发过程中多去规避这些问题。
以上就是我们对软件安全开发国家标准的解读,这个标准的内容是比较多的,里面也有很多最佳实践,大家可以去看一下。