1、软件开发安全设计方案表软件开发安全设计方案表海尔集团软件开发安全设计方案表威胁类型消减机制解决方案假冒 身份验证 使用强密码; 使用不在网络上传输密码的身份验证机制,如Kerberos协议,Windows身份验证机制 确认密码加密或使用加密通道 在固定次数密码重试后对账户进行锁定 考虑只支持本地管理 将管理界面的数量减到最少 审核和日志记录 记录重要的应用程序操作 审核登陆和注销事件,访问文件系统以及失败的对象访问尝试 备份日志文件,并定期分析可疑活动的记录 篡改 会话管理 利用SSL创建一个安全的通信通道; 实现注销功能,允许用户在启动另一个会话时结束身份验证会话; 确保限制会话/cooki
2、e的有效期; 使用加密技术; 使用散列消息身份验证代码HMAC; 执行关键功能时,重新进行身份验证; 使会话在适当的时间后过期,包括所有的cookie和会话标记; 不允许客户端存储会话数据; 审核和日志记录 使用受限的ACL来保护日志文件 将系统文件从默认的位置重新进行定位 敏感数据管理 使用防篡改协议,如散列消息身份验证代码(HMAC)来保护在网络上传输的敏感数据; 授权 访问控制 给予角色的安全策略 抵赖 身份验证 使用强密码; 使用不在网络上传输密码的身份验证机制,如Kerberos协议,Windows身份验证机制 确认密码加密或使用加密通道 在固定次数密码重试后对账户进行锁定 不得使用
3、共享管理账户 分配用户、应用程序、服务账户使用账户单一的访问源 审核和日志记录 记录重要的应用程序操作 审核登陆和注销事件,访问文件系统以及失败的对象访问尝试 备份日志文件,并定期分析可疑活动的记录 信息泄露 加密技术 使用内置的加密规程 使用强随机密钥生成函数,并将函数储存在一个受限的地方 使用密钥过期 不开发自己定义的算法 了解被破解的算法和用来破解算法的技术 异常管理 在整个应用程序代码库中使用异常处理 处理和记录允许传输到应用程序边界的异常 返回给客户端一般的错误信息 敏感数据管理 对包含敏感数据的数据存储区使用ACL; 对存储数据进行加密; 基于身份和角色的授权,确保只有具有适当授权
4、级别的用户才允许访问敏感数据; 授权 在访问数据前,进行身份验证 利用强ACL保护系统资源 使用标准的加密技术将敏感数据存储到配置文件和数据库中 拒绝服务 审核和日志记录 审核和记录服务器与数据库服务器以及应用服务器(如使用)上的活动 记录主要事件,如交易,登陆和注销事件 不得使用共享账户 异常管理 彻底验证服务器的所有输入数据 在整个应用程序代码库中使用异常处理 输入验证 执行完全的输入验证 使用最低特权账户与数据库连接 利用参数化存储过程访问数据库,确保不会将输入字符串视为可执行语句 避免使用文件名作为输入,使用最终用户不能更改的绝对文件路径 确保文件名正确,并在程序上下文进行验证 确保字符编码设置正确,以限制输入的表示方法 特权提升 授权 使用最低特权进程,服务和用户账户 使用恰当的授权来限制可信代码的访问