Q/GUOSEN
国信证券股份有限公司企业标准
Q/GUOSEN-MAN-SEA01-2021
国信证券移动应用安全开发规范
国信证券股份有限公司 发布
前言
本标准于2021年7月初次起草发布,8月首次实施,在编制过程中得到各位同仁的大力支持,在此表示感谢!由于编制时间紧促,难免有遗漏之处,悬请广大参阅者多提高贵意见,以供参考校正.
本标准由国信证券股份有限公司提出.
本标准起草单位:国信证券股份有限公司.
本标准主要起草人:金文佳、朱毅.
本标准于2021年8月首次发布
引言
随着移动互联网新兴技术的蓬勃兴起,层出不穷的创新业务,移动应用的使用场景日益广泛,在公司展业与办公管理的使用比重逐渐增大.这种形势下信息系统建设与安全运行的压力越来越大,所面临的信息安全形势日趋复杂.金融行业的移动互联网应用程序(APP)安全问题尤其严峻.
国信证券移动应用开发安全规范约定了国信证券移动应用在开发阶段应该关注的安全问题,以及解决安全问题需要实现的安全需求,并可对移动应用设计、开发、测试、上线、运营全生命周期进行规范指导,以消减移动应用造成的安全风险.
1适用范围和对象
本文档主要适用于移动应用的需求、设计、开发阶段,帮助应用开发人员梳理安全需求,提出安全设计规范,并在开发过程中落地,提升系统安全性.
2引用标准
ISO/IEC27001信息安全管理体系-要求ISO/IEC27002信息安全管理实用规则ISO/IEC15408信息技术安全评估通用准则(简称CC)OWASP Development GuideOWASP Code Review GuideOWASPTesting GuideOWASPSecure Coding PracticesQuickReferenceGuide
3术语与定义
3.1白名单
白名单是定义用于许可放行的集合.
3.2黑名单
黑名单是定义用于禁止拒绝的集合.
3.3重放攻击
重放攻击就是把以前窃听到的数据原封不动地重新发送给接收方,已达到欺骗或者重复操作的效果.
3.4敏感数据
一旦泄漏、非法提供或者滥用可能危害人身和财产安全,极易导致个人或企业名誉财产受到损害等的个人及企业信息.
3.5中间人攻击
中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”.
4服务端安全
4.1框架组件
在使用第三方框架与组件进行移动应用并发时,应遵从以下安全要求:
a.在选用框架组件时,使用最新版本,在官方渠道下载.b.根据应用开发需求,删减或修改框架默认功能.删除不需要使用的功能,并对框架的后台地址和密码等默认配置进行修改.
4.2输入输出
对于应用程序的输入输出应遵从以下安全要求:
a.应通过黑名单过滤结合白名单过滤的方式,保证输入数据安全性.建立威胁字符黑名单,统一过滤外部输入数据.对于外部输入的富文本数据,需使用特殊的黑名单过滤机制,不能使用通用的黑名单过滤.对于可枚举类型的外部数据,在进行黑名单过滤后,应使用白名单进行二次过滤.b.为保证业务系统的安全性,在必要的业务功能中为用户提交的数据或提交数据的频度设置边界值检查机制,例如单笔转账金额限制,单日股票交易量,单日短信验证码发送数量限制等,防止输入负数导致逆向转账、10元股票0元购、超长整数计算结果变负数等不可预知的问题.C.对于输出在APP应用显示的数据,若数据加载在HTML5页面中,则服务器端应对数据进行相应的编码处理.d.对于在HTML上下文中的输出,使用HtmlEncode(ISO-8859-1)进行编码转换.
e.对于在JavaScript上下文中的输出,使用JavaScriptescape转义,并要求输出的变量在引号内部.f应尽量避免在CSS上下文中使用用户可控变量.若有需求,必须对CSS输出的用户可控数据进行CSS escape转义.9.在将客户可控数据插入到URL中时,需要对插入的数据进行URL编码.
4.3会话管理
会话的安全管理应该遵守如下安全要求:
a.sessionid在服务端创建保存.b.为避免会话被识别,sessionid需具备随机性.c.在未登录情况下,应使用临时session来维持会话.d.用户登录并建立一个会话时,若发现此用户有旧会话,则注销旧会话.e.在身份验证之时,若访问链接从HTTP变为HTTPS,则更新会话标识(一般情况下,不建议从HTTP与HTTPS中转换).f.当前会话下,如果客户端设备信息(如设备Deviceld、MAC地址等)发生变化时,应强制销毁当前会话.9.对于重要的请求应防护会话重放攻击,使用请求签名防范会话重放攻击.
4.4身份认证
身份认证应遵从以下安全要求:
a.身份认证密码需要有复杂度要求,12位以上、包含字母数字与特殊字符、不能包含用户名.b.身份认证接口使用双因素或者验证码实现防暴力破解的问题.C.认证失败时,错误提示模糊处理:不应该出现“用户名不存在、密码错误”的提示,代替为“用户名或密码错误”.制定登陆失败锁定机制.d.使用图形验证码时,图形验证码里的字符做扭曲处理,并添加干扰线.图形验证码应该动态生成,不重复,以防止根据图片hash进行内容匹配.图形验证码必须是一次性的,每次验证之后必须更新.图形验证码对应的字符内容只能在服务端保存.信认证信息的有效时间不超过15分钟.每个手机号在30分钟内连续未正常使用的短信验证
e.使用手机短信验证码时,每条短信认证信息只能使用一次.认证信息在服务器端生成.每条短