1、 移动终端 APP安全防护规范及安全开放标准 解决方案 2016年 10月 移动 终端 APP 安全防护规范及安全开放标准解决方案 第 1 页 目 录 一、 前言 . 2 二、 术语与解释 . 2 三、 开发阶段安全要求 . 2 1、 安全编码原则 . 2 2、 安全需求设计与分析 . 3 3、 APP客户端安全功能要求 . 3 4、 开发环境安全管理 . 6 5、 源代码的安全管理 . 7 6、 委外开发安全要求 . 8 7、 罚则 . 8 四、 上线阶段安全要求 . 8 1、 APP应用上线前安全评估原则 . 8 2、 组织与职责 . 8 3、 APP安全评估内容 . 9 4、 罚则 10
2、 5、 附件 10 五、 运行阶段安全要求 10 六、 下线阶段安全要求 11 移动 终端 APP 安全防护规范及安全开放标准解决方案 第 2 页 一、 前言 为了加强和规范湖南电信 企业信息化部 (以下 简称:企信部 ) APP 应用的开发阶段、上线阶段、运行阶段、下线阶段的安全建设,有效防范来自应用层的威胁和攻击,保证 APP应用整个生命周期的安全 ,特编制本解决方案。 企 信部 APP 应用 全生命周期管理遵循“谁开发谁负责”“谁使用谁负责”的原则;即:企 信部 APP 应用相关各 单位开发的应用由该单位负责开发过程的安全管理和安全功能的设计工作以及上线前安全评估发现问题的加固工作、 A
3、PP 使用部门负责运行阶段的安全维护管理及下线阶段数据销毁工作、安全中心负责 APP 上线前安全评估工作。 二、 术语与解释 机密性 : 个人或团体的信息不为其他不应获得者获得。 完整性 : 在传输、存储信息或数据的过程中,确保信息或数据不被未授权的篡改或在篡改后能够被迅速发现。 抗抵赖性 :发送者不能在 事后否认其发送的信息。 SQL 注入: 通过把 SQL 命令插入到 Web 表单 提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL命令 。 XSS: 跨站脚本攻击, 恶意攻击者往 Web 页面里插入恶意 html代码,当用户浏览该页之时,嵌入其中 Web 里面的 h
4、tml代码会被执行,从而达到恶意攻击用户的特殊目的。 SSL: 安全套接层协议, 是为 网络通信 提供安全及 数据完整性 的一种安全协议 。 APP 客户端 : 是指具有新功能或新使用价值的移动终端 APP软件程序。包括软件程序状态处于建设试点、试商用和商用 的所有移动终端 APP 软件程序。 APP 服务端 :是指为 APP客户端提供应用交互服务的后台应用平台。 三、 开发阶段安全要求 1、 安全编码原则 程序只实现制定的功能 移动 终端 APP 安全防护规范及安全开放标准解决方案 第 3 页 用户输入都是不可信的,对用户输入数据做有效性检查 必须对异常情况进行处理 尽可能使用安全函数编程
5、2、 安全需求设计与分析 在 APP 应用 立项开发批准前,需要明确所有的安全需求并形成文档。安全需求可以从以下几个方面考虑: 1)信息的机密性和完整性保护; 2)抗抵赖性; 3)身份鉴别和认证; 4)访问控制和授权; 5)数据校验及消息验证; 6)数据传输安全保护; 7)密码保护; 8)跟踪监控与审计; 10)合法性和符合性需求; 11)灾难恢复等 在 APP 应用的开发过程中,开发人员需对安全需求进行详细的分析,并将已确定的安全需求体现于应用程序设计中,包括安全架构的设计和安全功能的设计。 APP 应用服务端的安全设计参照湖南 电信企业信息化部 应用系统安全设计与开发管理规范(试行)执行。
6、 APP 客户端的基本安全设计见“ 3APP 客户端 安全功能要求”,通用安全要求参照湖南 电信企业信息化部 应用系统安全设计与开发管理规范(试行)执行。 3、 APP 客户端安全功能要求 APP 客户 端 数据安全存储 APP 客户端应用程序本地存储的数据(包括但不限于数据文件,日志文件、数据库文件、会话 cookie、配置文件、 SD 卡等)应采取加密方式保护存放敏感信息的文件。 对于关键数据加密,应使用 TripleDES( 192 位密钥)加密算法 。要减慢并加强对移动 终端 APP 安全防护规范及安全开放标准解决方案 第 4 页 大量数据的加密,应使用 Rijndael ( 256
7、位密钥)算法。要对将暂时存储的数据加密,可以考虑使用较快但较弱的算法,如 DES。对于数字签名,应使用 RSA 或 DSA 算法。对于哈希,应使用 SHA1.0 算法。对于用户键入的哈希,应使用基于哈 希的消息验证代码( HMAC) SHA1.0 算法。 APP 客户端 数据安全传输 APP 客户端应用程序传输敏感信息过程中应采用 SSL/TLS 数据加密传输方式(推荐密钥长度为: 2048 位),并在客户端对 SSL 证书合法性进行校验。具体数据安全传输要求如下: ( 1) 全流程使用 HTTPS 传输,且是强制使用; ( 2) 敏感信息传输过程中应采用 SSL/TLS 数据加密传输方式(推
8、荐密钥长度为: 2048位); ( 3) 证书锁定 ( Certificate Pinning),在客户端对 SSL 证书合法性进行校验; ( 4) 完全正向保密( perfect forward secrecy)一个密钥只能访问由它所保护的数据;用来产生密钥的元素一次一换,不能再产生其他的 密钥 ;一个密钥被破解,并不影响其他密钥的安全性。 APP 客户端 安全认证与鉴权机制 ( 1) APP 客户端应用程序应对密钥 /密码采取安全的存储保护方式(推荐哈希算法:SHA-512,加密算法: RSA-2048、 AES-256); ( 2) APP 客户端应用程序应根据 APP 重要程度不同采用
9、适宜的安全认证方式 (如“密码 +验证码”、“密码 +动态密码”、“密码 +令牌”、“密码 +证书”等); 普通 APP 安全认证与鉴权要求如下: 密码强度要求 :对用户设置密码进行检测,输入至少 6 位字符,其中要包含大写字母、小写字母、数字和特殊字符中 的至少 两种。 账号密码传输要求 : 客户端向服务器第一次发起登录请求(不传输用户名和密码)。服务器利用 RSAAES 算法产生一对公钥和私钥。并保留私钥, 将公钥发送给客户端。客户端收到公钥后, 加密用户密码,向服务器发送用户名和加密后的用户密码; 同时另外产生一对公钥和私钥,自己保留私钥 , 移动 终端 APP 安全防护规范及安全开放标
10、准解决方案 第 5 页 向服务 器发送公钥; 在第二次登录请求时传输用户名和加密后的密码以及客户端生成的公钥。服务器利用保留的私钥对密文进行解密,得到真正的密码。 为提升用户体验,在首次登陆时用户只需要输入用户名和密码,当服务器发现异常情况时启用验证码、动态密码等机制。 自动登陆 : 在实现自动登陆功能时 , 应将 token 和用户使用该 App 的移动终端进行绑定 (如: 绑定 imsi,mac 等 ),在登陆终端发生变化时,需重新进行账号密码验证并启用验证码或动态密码验证机制。 重要内部 APP 安全认证与鉴权要求如下: 密码强度要求 :对用户设置密码进行检测,输 入至少 8 位字符,其
11、中要包含大写字母、小写字母、数字和特殊字符中 的至少 三种。 针对内部重要 APP 每次登陆必须使用账号 +密码方式进行认证鉴权; 当登陆终端发生变化时 , 应采用账号 +密码 +动态密码的验证方式 。 ( 3) APP 客户端应用程序应采取安全的会话机制(如:安全 cookie 方式、 session 方式); ( 4) APP 客户端应用程序不应过度授权(如管理后台向低权限用户开放)。 APP 客户端 数据上传安全 ( 1) 管理后台应关闭非必要上传功能或模块,关闭非必要 WEB 管理方法( put、 move、delete 等); ( 2) 前端和后端应严格限制用户侧 上传功能(如文件类
12、型、文件格式、文件大小等); ( 3) 应对用户上传数据的合规性(如暴恐、涉黄、政治言论等)进行安全审核过滤(如在 RequestParam 的参数上使用 SensitiveFormat 注解, Spring MVC 就会在注入该属性时自动进行敏感词过滤)。 APP 客户端应用安全 APP 客户端应用安全 (如: SQL 注入、 XSS、 CSRF、弱口令和越权等相关安全要求) 参照 湖南 电信企业信息化部 应用系统安全设计与开发管理规范(试行)执行。 移动 终端 APP 安全防护规范及安全开放标准解决方案 第 6 页 APP 客户端反编译安全( APK 加密) APP 客户端程序应通过 对代
13、码的高级混淆、流程混排加密、代码内部字符串加密等,对源码、函数名称以及接口调用进行加密隐藏,以防止第三方对应用程序进行反编译得到源代码。(对安卓应用的 DEX、 RES、 SO 库等主要文件进行加密保护,可使用第三方商业化 APK 加密工具进行加密,达到防止反编译的目的) APP 客户端访问操作安全 ( 1) APP 客户端应用程序访问用户终端的权限应限制在程序实现自身功能的最低权限范围内,不应额外访问 /读取本地其他文件获取用户信息;不应额外截获 /记录 /传输应用登录访问的敏感信息;不应访问非应用外 internet 访问及执行非许可的动作。 ( 2) APP 客户端应用程序不应调用 /修
14、改本地其它系统功能(如摄像头、录音、音量调节)进行非正常应用。 ( 3) APP 客户端 应用程序权限使用应充分告知终端用户。 APP 客户端软键盘安全 涉及用户敏感信息交互的用户输入软键盘应采用有效的防窃取措施,如使用 随机分布式虚拟安全键盘,对键盘的数据输入过程、数据存储过程、内存数据换算过程进行全程高级加密 (加密要求见前文“ APP 客户端数据安全存储”、“ APP 客户端数据安全传输”部分) ,达到效防止数据侦听、键盘劫持、键盘截屏等攻击行为。 APP 客户端完整性校验安全 APP 客户端程序应在启动和更新时进行真实性和完整性校验,防范客户端程序被篡改(通过计算 crc32 或哈希值
15、的方法对整个 apk 的真实性和 完整性进行校验)。 4、 开发环境安全管理 开发环境隔离要求 ( 1) 开发测试环境、运行环境必须独立,并实施适当的控制措施; 移动 终端 APP 安全防护规范及安全开放标准解决方案 第 7 页 ( 2) 测试系统环境应尽可能的效仿运行系统环境; ( 3) 生产数据在未经相关领导批准前,不应拷贝到测试系统环境中。 开发环境用户权限管理 ( 1) 应在项目组内部指定专人负责账户安全管理工作。账户安全管理的范围包括:应用系统账户和基础架构账户(操作系统、数据库、源代码管理库账户等); ( 2) 对于关键、特 权账户(如管理员账户)的申请和变更需经项目经理审批; (
16、 3) 开发环境、测试环境中的账户管理应遵照湖南电信相应账户管理要求执行; ( 4) 加强对开发环境用户权限的限制,禁止在开发环境使用超级用户或者其它特权用户进行软件开发; ( 5) 用户权限变更必须经过相关负责人批准。 开发环境安全管理软件防护 ( 1) 开发环境中的开发用机必须安装公司要求的相关安全管理软件。 ( 2) Windows 平台的开发用机要求及时进行系统及中间件补丁升级和漏洞修复。 ( 3) 开发用机必须安装防病毒软件,并保持升级至最新的病毒定义码,及时增补安全补丁程序。 5、 源代码的安全管理 建立专 门的源代码管理服务器,对程序源代码实施有效管理; 代码管理应保存所有的历史
17、版本,以便查阅; 所有源代码应进行归档保护; 应对软件主拷贝构建 DSL( Definitive Software Library,最终软件库),安全存放正式授权软件版本; 应建立源代码修改保护制度; 经审批通过后,专职源代码管理人员才能将源代码(或设置文件)提取出来,交给修改人进行修改; 修改完毕应通过安全检查后提交,防止代码中存在隐蔽通道和木马; 通过检查后的源代码(或设置文件)应交还专职源代码管理人员,由其上载到源代码管理服务器; 重新上载后,必须给予新的版本号。 移动 终端 APP 安全防护规范及安全开放标准解决方案 第 8 页 应具备应用软件文件完善的备份制度和灾难恢复机制。文档、源
18、代码等数据每天备份一次,备份数据存放在其它服务器上。 应用软件正式 上线前 应 删除所有测试页面 、 测试接口等 所有 测试 代码 片段。 6、 委外开发安全要求 在开发过程中,将开发任务交给第三方时必须在双方签订第三方服务的安全协议中明确规定系统的安全要求、安全控制措施、服务定义和交付水准; 所有的第三方开发人员在签订合同时必须签订个人保密协议; 针对第三方提交的交付物必须做安全审查,检查是否存在安全脆弱性或者包含恶意程序及特洛伊木马。 7、 罚则 对未按照 APP 安全开发要求落实安全设计与开发而引发的重大信息安全事件的单位,企 信部 进行通报批评、考核及责令停止有关业务等处罚。 四、 上
19、线阶段安全要求 1、 APP 应用上线前 安全评估原则 依据工信部新技术新业务信息安全评估管理办法(试行)(工信部保 2012 117号 ) ,为促进互联网业务健康有序发展,维护国家安全和社会稳定,保障用户合法权益和加强新技术新业务安全管理的要求,以及进一步细化落实相关要求。对可能引发信息安全风险或对国家安全、社会稳定和用户权益产生重要影响的业务移动终端 APP(以下简称:移动终端 APP)程序在上线、版本升级前均需开展安全评估工作。 2、 组织与职责 ( 1) 企信部安全中心负责确定企信部移动终端 APP 评估工作规范,并负责组织开展的移动终端 APP 安全评估工作; ( 2) 各单位是移动
20、终端 APP 安全评估的主要责任单位和评估主体,遵循业务“谁主管谁负责、谁运营谁负责 、 谁使用谁负责 ”的原则负责协助开展移动终端 APP安全评估及安全加固工作; 移动 终端 APP 安全防护规范及安全开放标准解决方案 第 9 页 3、 APP 安全评估内容 移动终端 APP 数据安全存储评估。该评估内容包括如下: ( 1) 检查该应用程序的数据可能的本地存放位置,包括但不限于数据文件,日志文件、数据库文件、会话 cookie、配 置文件、 SD 卡等; ( 2) 检查该数据文件、日志文件、数据库文件、会话 cookie、配置文件、 SD 卡文件是否包含记录敏感信息; ( 3) 评估该应用程
21、序是否采取足够的安全措施(如:加密方式、访问权限)保护存放敏感信息的文件。 移动终端 APP 数据安全传输评估。该项评估内容包括如下: ( 1) 检查该应用程序传输敏感信息过程中是否采用 SSL/TLS 数据加密传输方式; ( 2) 评估 SSL 加密算法强度(推荐密钥长度为: 2048 位); ( 3) 评估客户端是否对 SSL 证书合法性进行校验。 移动终端 APP 安全认证与鉴权机制检测。该项评估内容包括如下: ( 1) 评估应用程序 是否采用适宜的安全认证方式(如“口令 +验证码”、“口令 +短信”、“口令 +令牌”、“口令 +证书”等); ( 2) 评估应用程序对密钥 /密码的安全存
22、储保护方式(推荐哈希算法: SHA-512,加密算法: RSA-2048、 AES-256); ( 3) 评估应用程序安全的会话机制(安全 cookie 方式、 session 方式); ( 4) 评估应用程序是否过度授权(如管理后台向低权限用户开放)。 移动终端 APP 数据上传安全检测。该项评估内容包括如下: ( 1) 检查管理后台是否关闭非必要上传功能或模块,是否关闭非必要 WEB 管理方法( put、 move、 delete 等); ( 2) 检查前端和后端是否严格限制用户侧上传功能(如文件类型、文件格式、文件大小等); ( 3) 评估是否对用户上传数据的合规性(如暴恐、涉黄、政治言
23、论等)进行安全审核(人工或技术)。 移动终端 APP、 Web 应用安全检测 。例如: SQL 注入、 XSS、 CSRF、弱口令和平行越权等。 移动终端 APP 反编译安全检测。该项评估内容包括如下: 移动 终端 APP 安全防护规范及安全开放标准解决方案 第 10 页 ( 1) 评估是否能通过测试工具对应用程序进行反编译得到源代码; ( 2) 评估是否可通过测试工具发现应用程序工作流程。 应用程序恶意访问操作检测。该评估内容主要如下: ( 1) 评估应用程序的本地执行的配置与权限; ( 2) 评估应用程序是否会访问 /读取本地其他文件获取用户信息; ( 3) 评估应用程序是否会截获 /记录
24、 /传输应用登录访问的敏感信息; ( 4) 评估应用程序在运行时是否会访问非应用外 internet 访问及执行非许可的动作 ; ( 5) 评估应用程序是否会调用 /修改本地其它系统功能(如摄像头、录音、音量调节)进行非正常应用; ( 6) 评估应用程序权限使用知情告知的充分性。 移动终端软键盘安全性监测。 评估涉及用户敏感信息交互是否采用有效的防窃取措施,如软键盘。 移动终端完整性检测。 评估客户端程序是否在启动和更新时存在真实性和完整性校验,防范客户端程序被篡改 。 4、 罚则 对未按照 APP 上线阶段安全要求进行评估的移动终端 APP 软件程序而引发的重大信息安全事件的单位,省公司进行
25、通报批评、考核扣分及责令停止有关业务等处罚。 5、 附件 具体 APP 安全问题评测方法及整改建议参考 APP 安全评测手册 APP安全评测手册.docx 五、 运行阶段安全要求 1、 各 APP 应用开发使用部门,依据湖南电信业务系统安全运维相关管理办法,负责APP 应用的日常安全运维工作;保证 APP 应用持续稳定运行; 2、 企信部安全中心,将所有 APP 下载渠道纳入自建或第三方大数据监测中心进 行实时监控,监测内容包括包括版本、渠道、下载源、下载量等。从而,第一时间发现盗移动 终端 APP 安全防护规范及安全开放标准解决方案 第 11 页 版应用,进行正版盗版 APP 信息精准对比,使湖南电信安全部门清晰了解 APP 的正盗版情况及升级情况;做到及时发现、及时处理。 六、 下线阶段安全要求 根据湖南电信业务系统下线相关安全管理规定,进行 APP 应用下线工作,及时删除销毁敏感数据。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1