代码安全审计及相关服务内容概述
1. 目的
为了解决在代码安全审计过程中没有结合 XXXX 公司实际情况的安全策略和
安全审计基线的问题,XXXX 公司因此邀请在业界在软件安全开发和安全审计方
面有丰富实践经验的咨询人员针对 XXXX 公司的实际状况作安全咨询,其完成如
下主要的任务和目的:
1) 结合 XXXX 公司的软件安全开发和管理需要,建立 XXXX 公司代码安全审计
策略;
2) 建立 XXXX 公司代码安全审计基线和版本发布的安全标准;
3) 整合源代码安全扫描工具 Checkmarx 和安全审计策略和基线;
4) 结合 XXXX 公司的研发环境和技术架构, 撰写 XXXX 公司安全编码指南;
5) 培训相关的软件开发人员、测试人员和安全专员软件安全知识和技能。
2. 服务内容
为了辅助 XXXX 公司建立并实施代码安全标准基线并以得到实施,我们为 XXXX
公司提供如下的服务内容:
代码安全开发策略
调查 XXXX 公司软件研发管理过程和管理规范
调查 XXXX 公司整体项目开发平台和技术框架
分析 XXXX 公司和扫描 XXXX 公司典型项目代码安全风险
总结 XXXX 公司整体代码安全风险
文档化代码安全开发策略
代码安全基线标准
讨论并文档化代码安全基线
代码安全基线实施方案
Checkmarx 代码安全基线的实施方案.
代码安全基线实施和必要安全知识培训
代码安全开发规范
3. 实施过程和说明
为了真实了解 XXXX 公司当前软件安全状态,制定确实有效的代码安全审计
策略、审计基线和安全开发管理规范和制度。安全咨询人员在完成这些任务之前,
需要里对 XXXX 公司的研发管理过程、管理规范、整体项目开发平台和技术框架、
典型项目代码安全风险作调查和评估,并提炼出在当前状态下,可能有的代码安
全风险,然后根据这些风险,结合管理需要和标准的技术规范,制定安全审计策
略、基线和安全开发规范和制度。以下是各个阶段的主要说明。
4.1 调查 XXXX 公司软件研发管理过程和管理规范
识别软件开发过程中关键的软件安全活动是否已经开展,以及这些活动是如
何开展的。(已有的软件安全培训课程,安全需求、威胁建模、代码安全审查、
安全测试和安全部署和产品发布的条件和标准,SDl安全管理)并标识出软件
安全开发流程和管理方面的缺陷和不足,识别过程和管理风险。
4.2 调查 XXXX 公司整体项目开发平台和技术框架
调查 XXXX 公司主流软件开发平台和技术框架,识别这些技术框架的可能风
险,并调查这些风险在设计和开发阶段是否有技术手段去规避和消除,以及如何
处理这些风险。识别架构安全风险。
4.3 分析 XXXX 公司和扫描 XXXX 公司典型项目代码安全风险( 5~10 典型项目)
结合架构安全风险,使用源代码安全扫描工具及人工的方式审计典型项目源
代码,得出每个项目得代码安全风险评估报告。
4.4 总结 XXXX 公司整体代码安全风险
综合分析过程和管理风险、架构安全风险和代码安全风险,
撰写 XXXX 公司总体代码安全风险报告,为后期代码安全策略和代码安全基线标
准提供数据和参考。
4.5 代码安全开发策略
根据前阶段的分析和 XXXX 公司总体代码安全风险报告,结合国际代码安全
相关标准,确定 XXXX 公司安全策略的内容和相关的控制标准,具体包含如下的
内容:
更为详细的内容参照《代码安全策略模板》
4.6 代码安全基线标准
代码安全基线是用于部署代码安全策略的,基线标准确保所有的受影响的系统
及其相关版本都有相同的安全设置,满足相同的安全标准。基线是安全的起始点,
是代码安全的一个最小的要求,基线也可以根据实际的项目安全和管理需要作调
整。比如可以以项目和管理需要建立不同的代码安全基线标准,比如
核心代码安全基线标准:《XXXX 公司核心代码安全基线标准》
在核心代码安全基线标准的基础上,扩展出如下的特定标准
按语言分类
Java 项目代码安全基线标准
C# 项目代码安全基线标准
C/C++ 项目代码安全基线标准
按应用形式
XXXX 公司 web 应用安全基线漏洞列表
中信行 C/S 应用安全基线漏洞列表
按特定项目
AAA 项目代码安全基线标准
BBB 项目代码安全基线标准
CCC 项目代码安全基线标准
按业务应用分类
公司银行业务代码安全基线标准、
零售银行业务代码安全基线标准、、
国际业务代码安全基线标准、、
资金资本市场业务代码安全基线标准、
更多信息参照代码安全基线标准模板。
4.7 代码安全基线实施方案,
本方案是基于代码安全的基线要求,采用人工或者结合代码安全相关的基
线实施工具动化代码安全基线扫描、审计和结果报告。
比如,参照 OWASP 及国际权威标准的代码安全标准:如下的 Java 项目代码安全
基线标准要求将是 XXXX 公司的代码安全基线:
所有 Java 项目的代码不允许有如下的代码安全漏洞,项目必须修复和预防相
关的代码安全漏洞。并且最好通过基线实施方案最大自动化。
Java 安全漏洞
Java 高风险
Code_Injection"
Command_Injection
Connection_String_Injection
LDAP_Injection
Reflected_XSS_All_Clients
Resource_Injection
Second_Order_SQL_Injection
SQL_injection
Stored_XSS
UTF7_XSS
XPath_Injection
Java_中等风险
Buffer_Overflow
DB_Paramater_Tampering
DoS_by_Sleep
Files_Manipulation
Hardcoded_Cryptographic_Keys
Hardcoded_password_in_Connection_String
HttpSplitting
Integer_Overflow
Kill_VM
Mutex_Problem
Parameter_Tampering
Privacy_Violation
Spring_ModelView_Injection
Unclosed_Connection
Verbose_Error_Reporting
XSRF
Java_低风险
DoS_by_Unreleased_Resources
Equals_without_GetHashCode
Files_Canonicalization_Problems
Hardcoded_Absolute_Path
Hardcoded_Password
Improper_Session_Management
Improper_Transaction_Handling
JavaScript_hijacking
Leaving_Temporary_File
Log_Forgery
Password_Misuse
Personal_Info_In_Cookie
Session_Poisoning
Java_GWT"
GWT_DOM_XSS
GWT_Reflected_XSS
JavaScript_Vulnerabilities
Code_Injection
Cookie_Poisoning
HttpSplitting
Potential_XSRF
Reflected_XSS_All_Clients
URL_Redirection_Attack
4.7.1 基线实施方案:Checkmarx CxEnterpris 代码安全基线的实施方案
在代码安全基线确定以后,使用 Checkmarx CxEntterpriis 代码安全基线自
动化实施平台根据基线要求实现代码安全基线标准,比如 XXXX 公司 Java 代码安
全基线:Citic_java_Baselines. 然后创建代码扫描项目,配置扫描任务,调用
基线要求扫描代码. .,审查扫描结果 ,生成基线条件下的扫描报告. 以下是以
webbgoat
项目的过程说明 ..
1. 公司代码安全管理员或者项目经理配置 代码安全基线标准. 比如
XXXX 公司 Java 代码安全基线:Citic_java_Baselines.
2.扫描代码时,运用代码安全基线
3.工具使用代码基线安全规则要求扫描代码,并在扫描过程中自动审计代码。
4.精确的代码基线安全漏洞违规结果,审计人员复查结果
5.生成精确而又准确的代码安全基线安全漏洞扫描结果报告。(或者相关人员通过网络察看结果