新加坡发布《安全应用标准2.0》 | ||||||||
| ||||||||
2024年10月15日,新加坡网络安全局(CSA)发布《安全应用标准2.0》(SAFE APP STANDARD 2.0),为移动应用开发者和提供者提供安全控制标准,涵盖认证、授权、数据存储、防篡改与防逆向、网络通信、加密、代码质量与漏洞缓解、平台交互等八个网络安全领域。(1)认证(AUTHENTICATION)。多因素认证(MFA):建议开发者使用MFA,如结合基于知识、持有和固有因素的认证方法,并优先选择低风险认证方式,同时考虑SSO与MFA结合、使用密码密钥以及区分第一方和第三方认证等。基于上下文的认证:通过引入用户位置和设备属性等动态元素进行认证,如检查设备地理位置和类型。安全会话认证:包括安全有状态和无状态认证,管理会话状态,防止会话劫持,确保用户真实性和数据安全。会话终止:在注销、不活动或应用关闭时终止会话,重新认证用户,生成新会话标识符,清除本地存储的令牌或标识符。暴力破解防护:限制登录尝试次数,实施反自动化检查、速率限制、渐进式增量时间延迟和账户锁定,并告知用户账户锁定原因及解锁方式。交易完整性验证:通过发起交易验证或确认呼叫、提供实时交易历史、设置冷却期、默认禁用海外交易及允许用户终止活动会话等机制,保护用户和交易真实性。(2)授权(AUTHORISATION)。服务器端授权:在服务器端进行授权,根据用户角色和动态上下文因素授予权限,确保敏感数据安全和操作完整性。客户端授权(通过设备绑定):将授权与设备绑定,验证设备身份和状态,确保数据安全和操作完整性。最小权限请求:仅请求应用运行所需的最小权限,向用户清晰说明权限用途,并允许用户管理权限。高风险交易通知:向用户通知已授权和完成的高风险交易,可通过应用内警报、电子邮件或短信通知,且去除敏感数据。(3)数据存储(DATA STORAGE)。必要时存储敏感数据:根据组织敏感度级别和法律要求分类数据,实施安全存储解决方案,对敏感数据进行保护措施,并在不再需要时删除。安全存储敏感数据:根据数据敏感度选择合适的存储位置,如服务器端或客户端的可信执行环境(TEE),确保数据保密性、完整性和用户隐私。删除敏感数据:在应用终止、卸载或相关业务功能停止时,删除敏感数据,遵循相关数据保留法律,如PDPA、GDPR和PCI DSS。(4)防篡改与防逆向(ANTI-TAMPERING & ANTI-REVERSING)。使用官方证书签名应用:使用官方应用商店证书签名应用,确保应用完整性和真实性,防止应用被篡改和恶意分发。检测设备root或越狱:检测设备是否root或越狱,保护应用进程和系统完整性,防止攻击者利用提升的权限进行攻击。检测模拟器:检测应用是否在模拟器中运行,禁止在非开发环境中使用模拟器,保护应用完整性和进程安全。恶意软件检测:在运行时检测恶意软件,防止用户被利用,保护应用和用户数据安全。反挂钩机制:实施反挂钩机制,防止攻击者在运行时修改应用行为,保护应用完整性和进程安全。覆盖、远程查看和截图防护:防止应用屏幕内容被捕获或记录,保护用户隐私和敏感数据安全。(5)网络通信(NETWORK COMMUNICATION)。使用安全通信协议:优先选择现代和安全的加密套件,如TLS 1.3的强加密套件,确保通信保密性、完整性和真实性,防止数据泄露和篡改。证书固定:只信任特定证书,预加载证书,保护应用与服务器通信安全,防止中间人攻击。安全集成API:对API进行安全集成,包括访问控制、速率限制、输入输出验证和数据加密,保护API可用性、真实性和数据安全。(6)加密(CRYPTOGRAPHY)。强加密哈希算法:使用SHA3或SHA2系列等强加密哈希算法,确保数据完整性,防止哈希算法被攻击。强加密算法:实施强对称和非对称加密算法,确保加密信息安全,根据数据特点选择合适算法,并管理加密密钥。强数字签名算法:使用ECDSA或RSA-PSS等强数字签名算法,保护数据传输的完整性、真实性和不可否认性。密钥管理:遵循行业最佳实践进行密钥管理,包括生成、分发、存储、归档和删除等环节,确保密钥安全,保护应用数据安全和算法可靠性。(7)代码质量与漏洞缓解(CODE QUALITY & EXPLOIT MITIGATIONS)。检查设备操作系统版本:检查设备操作系统版本,禁用不安全版本的应用,提醒用户升级,保护应用和数据安全。强制应用安全更新:要求用户更新到最新安全版本,通过多种机制实现,确保用户免受已知漏洞攻击。安全软件依赖管理:评估依赖必要性,进行安全评估,使用自动化管理工具,分析依赖安全性,实施特定依赖的最佳实践,保护应用保密性和完整性。输入输出数据验证和清理:在客户端和服务器端验证和清理所有输入输出数据,防止注入攻击和数据泄露,保护应用进程和数据安全。错误处理:识别和处理错误,使用通用错误消息和自定义错误页面,避免敏感数据泄露,保护应用进程和数据安全。内存管理和漏洞检查:确保正确的内存管理,检测内存损坏漏洞,使用安全编程语言和编译器选项,进行漏洞检测,保护应用进程和数据安全。(8)平台交互(PLATFORM INTERACTIONS)。安全实现进程间通信机制:确保IPC 机制安全配置,仅暴露必要组件,使用SAST工具验证,保护敏感数据隐私,主要针对Android设备。安全实现 WebView:避免使用过时库和方法,利用安全浏览API,禁用内容缓存,采用安全协议,验证Web内容,保护应用进程和数据安全。安全处理输入方法:使用安全的应用内自定义键盘,限制输入方法功能,主要针对Android设备,保护用户隐私和敏感数据安全。该标准为非强制性指南,开发者应根据实际情况应用,并进行风险管理,确保应用安全。同时,标准应与相关法律法规结合使用,开发者需关注行业最佳实践,定期更新应用以应对新的安全威胁。 (东营市技术性贸易措施研究咨询中心、山东省国际商务联合会供稿) | ||||||||
打印本页 关闭窗口 | ||||||||