首页 > 薪福通安全白皮书

薪福通安全白皮书

来源:
2021年10月19日

       一、简介

对于薪福通产品而言极大的方便了企业的内部数字化管理的同时,也带来了更多敏感信息泄露的风险,系 统的安全至关重要,我们建立我们的安全文化,在安全文化的导向下,建立产品、开发、运营的安全意识,并形成全链路的安全防范为企业用户提供高效、安全的服务。本篇主要从安全文化、全链路安全防护、产品安全特点合规审计等方面,全面阐述了薪福通安全技术工作思路和实践方法。

二、安全文化

      1.安全组织

薪福通产品是基于招商银行安全管理制度下开发的产品。在全行级,有专门的安全管理部门安全内控团队、数据中心安全管理团队和架构管理团队协调组织级的跨部门安全工作检查各项安全制度,并设置专职的安全岗位、安全角色,明确岗位职责、权利和义务;产品级,薪福通团队有自己的安全管控小组,衔接全行级安全管控的实际落实及制定产品特性的安全管控手段,从产品、开发、运营等领域建立安全规划,监控安全风险,以确保给提供安全的服务

      2.安全开发生命周期

薪福通产品严格遵循招商银行内部安全开发生命周期SDL)管理主要安全过程管理如下

 

      1)安全需求

项目立项时,明确安全门限要求,作为后续研发运营实践中安全检查的关键节点,主要考虑业务场景、产品类型、系统整体架构、语言类型等;根据合规要求、用户隐私要求、功能要求结合最佳实践等进行安全需求分析,作为测试用例编写的前期工作,安全需求分析纳入专题特性模板;对系统可能面临的威胁、存在的弱点、造成的影响,以及三者综合所带来的风险的可能性的评估,量化系统遭受攻击带来的影响或者损失的可能程度;针对安全需求建立统一的知识库,形成知识复用。

       2)安全设计

安全设计的原则是针对服务、系统进行整体的安全设计,确保整体的设计安全,以下为安全设计标准的一部分:

攻击面最小化( Attack Surface Reduction ):攻击面最小化即是指尽量减少暴露恶意用户可能发现并试图利用的攻击面数量。软件产品的受攻击面是一个混合体,不仅包括代码、接口、服务,也包括对所有用户提供服务的协议。

基本隐私( Basic Privacy ):用户使用软件时避免个人信息被收集、使用甚至分发,企业则有责任和义务建立保护个人信息的保护措施,抵御敌对攻击行为,确保用户基本隐私的安全性。隐私安全是建立可信任应用程序的关键因素,只收集程序必须用到的隐私数据并进行加密,明确告知用户并征得用户同意。

权限最小化( Least Privilege ):如果一个应用程序或网站被攻击、破坏,权限最小化机制能够有效的将潜在损害最小化。在进行软件设计时,安全设计人员可以评估应用程序的行为及功能所需的最低限度权限及访问级别,从而合理分配相应的权限。

默认安全( Secure Defaults):默认安全配置在客户熟悉安全配置选项之前不仅有利于更好的帮助客户掌握安全配置经验,同时也可以确保应用程序初始状态下处于较安全状态。

纵深防御( Defense in Depth ):与默认安全一样,纵深防御也是设计安全方案时的重要指导思想。纵深防御包含两层含义:首先,要在各个不同层面、不同方面实施安全方案,避免出现疏漏,不同安全方案之间需要相互配合,构成一个整体;其次,要在正确的地方做正确的事情,即:在解决根本问题的地方实施针对性的安全方案。纵深防御并不是同一个安全方案要做两遍或多遍,而是要从不同的层面、不同的角度对系统做出整体的解决方案。

威胁建模( Threat Modeling ):威胁建模是一种分析应用程序威胁的过程和方法。这里的威胁是指恶意用户可能会试图利用以破坏系统,和我们常说的漏洞并不相同。漏洞是一个特定的可以被利用的威胁,如缓冲区溢出、sql注入等。业界常用威胁建模方法包括:STRIDE(6个安全维度,攻击树(攻击者角度),TVRA(通过资产被攻击的可能性)。

      3)安全研发

使用经过安全团队认可的开发工具,确保开发工具没有法律风险、漏洞风险等情形;在安全扫描方面,研发过程中,使用静态代码分析工具(SAST)及时发现开发过程中安全风险。行内提供了一系列的代码分析扫描工具,并与流水线集成,配套质量门安全策略,提升我行的安全编码能力;在研发过程中,对于开源及依赖组件的安全风险进行统一管理,针对开源及依赖组件有明确的引入机制,针对开源及依赖组件的风险漏洞有明确的拦截机制。开源及依赖组件的风险包括但不限于许可证风险、安全漏洞风险(我们的做法:源管理办法、黑名单、白名单、hub中高风险阻断)。

      4)安全验证

针对系统和功能模块进行安全相关测试,包括针对安全需求的测试、动态应用安全测试(DAST) 、交互式应用程序安全测试(IAST)。我行主要使用awvs工具在向互联网暴露的应用上线前进行安全测试并要求研发必须修复被扫出的漏洞:

  • 针对安全需求测试:针对在安全需求分析阶段识别的安全需求,进行有针对性的测试;
  • 动态应用安全测试(DAST):一种黑盒测试技术,在程序运行时,通过模拟黑客行为对系统进行动态攻击,分析系统的反应,从而验证程序的安全性。模糊测试是一种专门形式的动态安全测试,通过故意向应用程序引入不良格式或随机数据诱发程序故障。模糊测试策略的制定,以应用程序的预期用途,以及应用程序的功能和设计规范为基础。
  • 交互式应用程序安全测试(IAST):通过在程序中插装收集程序运行时函数执行, 数据传输的情况进行分析从而高效准确的识别安全缺陷及漏洞。

开源及依赖组件安全风险验证方便通过工具扫描并设置拦截策略的方式,在上线前进行最终确认,确保开源及依赖组件的使用没有安全漏洞以及法律风险。我行主要使用twistlock工具对容器进行开源及依赖组件的风险扫描,并针对存在中高安全风险漏洞和命中黑名单的情况进行阻断。

      5)安全发布

行内要求,系统发布之前需要将测试发现的安全漏洞全部修复,并且升级所有版本过低包含安全漏洞的组件。在产品发布前,安全管理室在复测之前测试中发现的所有安全漏洞并确认其已修复后,会通知网络室管理员让其对产品发布放行。

      6)安全运营

安全监控与防护针对上线的应用进行安全监控与防护并可视化展示,常见的安全监控内容包括但不限于DDoS攻击、暴力破解、病毒攻击、注入攻击、网页篡改,可视化展示的内容包括但不限于安全事件数、攻击类型、攻击来源、严重程度分级及影响范围。我行通过在网络入口等关键节点部署防火墙,入侵检测系统等监控恶意流量,并且在所有服务器上部署安全监控系统监控所有恶意行为及软件,并安排值班人员7乘24小时值班,在半小时内响应处理攻击成功事件。

安全运营:制定安全事件响应和处理流程,确保信息安全事件被及时发现和处置,并通过对事件的定期总结回顾进一步优化信息安全管理体系,降低信息安全风险。

运行环境巡检:针对线上应用,定期进行安全风险评估,确保服务的安全性。从系统架构、应用程序、网络漏洞等方面进行安全巡检。我行每周会对全行互联网资产进行安全巡检扫描系统,应用程序和高危端口等漏洞并督导修复。

安全培训: 每年会组织全行安全培训, 向对此有兴趣的研发科普主流安全漏洞原理以及防范方法。 每月会统计产生安全漏洞最多的分行和室组, 下发安全培训资料给相关研发进行学习。

      3.可信任原则

我们的愿景是做企业数字化一站式统一SaaS服务平台,以维护客户数据机密完整性可用性为价值基础。为了达到这一愿景,我们的方法是通过全链路安全防护,来保证和促进服务的安全性。主要通过深入防御、深入研究、开放透明等方面持续努力,以保障对客户而言这是可信任的平台。

      三、全链路安全防护

薪福通产品招商银行安全设计指导原则,根据SaaS服务产品特性,在技术方面对产品从客户端、传输、服务端、数据运营等全链路进行安全防控,建立了完整的事前动态管控、事中实时防御、事后快速响应的纵深防御体系,确保薪福通用户使用安全。

      1.基础设施安全

物理环境管理方面,温度、湿度、电力、消防等物理环境安全是数据中心安全可靠运行的必要前提。招商银行机房是最高级的国标T4级(白金级认证)数据中心,对应数据中心的可用性99.995% ,年平均故障时间0.4小时。大规模集群部署实现灵活的水平扩展。招商银行制定了非常严格的运行管理制度,运维人员具有非常丰富的管理经验,可以确保系统7x24安全稳定运行。所有基础设施组件都有冗余和容错,包含网络应用服务器和数据库服务器。

网络安全保护方面,我行通过对网络系统进行分区域划分和防护,构建起有效的纵深防护体系,确保上层主机系统和应用系统的安全和稳定。在安全域划分方面,我行结合业务与安全需求,划分出单独的网络区域用于对外提供互联网服务,利用防火墙实现不同网络区域之间的隔离。在入侵检测与防御方面,我行在关键网络安全区域均部署了流量探针,并配套多种类型的全包流量检测设备,实现全流量的安全检测;对互联网应用进行重点安全防护,部署了Web应用防火墙、入侵防御系统等各类安全防护措施。在漏洞扫描和渗透方面,我行构建了自己的漏洞扫描系统,定期对互联网站点的安全状态进行检测和评估;聘请多家外部机构对我行互联网应用实施不间断的渗透工作。在拒绝服务攻击防护方面,我行在外部购买运营商的攻击防护服务实现流量清洗;在内部通过多线路架构分散风险。在安全情报方面,我行购买了多家外部公司的安全情报服务,通过最新安全情报的获取,不断优化完善我行现有的安全管控措施。

主机安全保护方面,我行通过对主机节点的全面防护和网络安全防护相配合,形成有层次的立体防御体系。我行建立了服务器的基线合规标准,通过自动化的检查工具和跟踪流程,持续对服务器不合规项进行整改;全面部署主机层面的入侵检测产品,系统层面的异常行为进行检测,并对系统行为日志进行采集;在服务器上部署恶意程序防护系统,及时发现和清除系统中的恶意程序。

薪福通产品是部署在招商银行ACS容器云平台上,容器平台安全防护方面,基于业界容器安全方案,结合招行实际情况,打造全面的安全能力主要包含以下方面:

镜像安全:定制化10大类29个安全基础镜像,涵盖招行各业务系统技术栈;提供容器镜像扫描,阻断问题镜像入库。

网络安全提供Namespace级的容器网络隔离控制,提供基于eBPF的宿主机网络异常监测和告警。

运行时安全:容器完全禁止root用户,对应用的文件系统访问、系统调用进行异常行为监测和阻断。

安全审计:对平台所有调用实行严格权限控制与访问安全审计

容器应用的高可用方面,薪福通应用部署在容器集群DMZBIZ区,其中DMZ集群深圳、上海各2AZ部署前端流量分发采用负载均衡方案;BIZ集群深圳3AZ、上海2AZ部署前端流量分发采用DNS方案。

      2.客户端安全

薪福通产品通过CMF框架安全加固多因素安全校验防前端攻击等方面进行安全设计。

1)CMF框架是招商银行提供的客户端安全框架,采取了多方面的安全加固措施:

防静态破解:通过控制流混淆、符号混淆、字符串加密,混淆多样化技术,使源代码逆向变得困难,增加代码阅读难度。

代码完整性保护:代码完整性保护防止代码逻辑被篡改,保护源代码抵御主流调试器,避免动态分析执行中的代码;当代码完整性遭到破坏时,会引发程序闪退,动态保护程序安全。

防动态注入:防 Hook 技术保护代码不被注入攻击,抵御恶意侵入,当发现程序被 Hook 时,会引发程序闪退,动态保护程序安全。

代码运行安全:应用在打开和运行时,会检查运行环境的安全性(如root,越狱,模拟器),若存在风险会向后端风控系统反馈,在检测到模拟器或者越狱环境下均无法正常使用与客户身份信息关联的操作;

安全输入:敏感数据输入采用安全键盘,并提示用户截屏监测;

存储安全:敏感数据会通过加密后存储在安全区,只存储必须数据 ,并且一些场景会读取后 删除文件。

2)多因素安全校验包含密码安全、验证码、数字证书、数字签名、人脸识别等,不同安全要求的功能采用不同的组合校验。

密码安全:前端使用行内封装的安全密码控件,并采用了改进的Lamport哈希一次一密机制来保存和传输密码,整个链路全密文传输,而且传送的值每次登录都会改变。该机制可以有效防止网络侦听认证协议或伪冒骗取密码,也可以防止管理员盗取用户密码。

验证码:通过短信验证码、图形数字验证码、图形滑动验证码等多种方式,可以有效阻止DDOS攻击、密码碰撞、手机号碰撞等。

数字证书:采用2048比特的RSA密钥数字证书体系对数据进行数字签名,必须有数字证书卡才可以进行资金交易操作。

数字签名:数字签名可以用来防止电子信息被修改、冒用他人名义发送信息、发出后又加以否认等情况的发生。薪福通系统对一些比较重要的交易请求使用数字签名,可以彻底杜绝非法交易,并可以确保交易的不可抵赖性。

人脸识别:采用人脸识别和密码校验双重识别,使得用户注册、代发支付等高风险交易得到安全保证。

3)通过成熟前端框架的使用和开发规范有效的防止了跨站脚本攻击(XSS)、跨站点请求伪造(CSRF)、点击劫持等。

     3.传输安全

在客户端和服务器之间传输的所有数据都经过了两层加密:采用标准SSL协议,密钥长度为2048位,该协议能够有效地防破译、防篡改、防重发;采用私有的加密协议,密钥长度为2048位,该协议不采用公开算法并且有非常高的加密强度。通过私有通信安全协议,实现端到端的通信链路加密、签名,防止窃听、篡改,以确保数据信息的传输安全。

 

      4.服务端安全

租户隔离:作为一个SaaS产品,薪福通的应用和数据库都是被多租户共享的集群,需要让租户保证只能看到他们自己的内容,主要有以下措施:

  • 每个表增加租户号(PRJCOD)字段;
  • 网关层统一控制分发至哪个应用实例和数据库实例;
  • JDBC层引入SQL解析器,拦截未加入租户字段的SQL语句,进行报错;
  • 提供封装过的ORM工具类,自动插入租户字段条件
  • 严格SQL规范,SQL进行自动审核
  • 以租户号进行分库;
  • 以租户号进行应用实例分发;

防止注入攻击:通过ORM框架使用预编译语句及SQL规范,防止SQL注入风险,并对SQL进行拦截和审计;

文件上传下载漏洞:文件存储统一使用行内ECS对象存储,定时对文件进行安全扫描,防止非法文件及文件对服务器的攻击;

认证与会话管理:薪福通产品通过多因素认证校验严格把控身份安全,并通过网关层统一管理会话,主要有以下措施:

             1)支持SSO单点统一登录,除了让用户使用更加方便,还能集中处理安全风险;

             2)通过多因素组合的身份校验,不同安全级别采用不同的组合校验方式,包含密码验证、验证码、数字证书、数字签名、人脸识别等(参见上一章节);

             3)所有对外的API通过严格的签名认证(应用签名+企业签名),使用SHA256和国密两种方式;

             4)网关层统一管理用户会话,通过失效机制(半小时)降低风险;

产品功能方面,对登录也做了较多的安全限制:

  • 用户登录IP设置,控制用户登录范围
  • 平台登录时效控制,长时间未操作登录身份会失效
  • 账号同时登录数量和频次有做限制
  • 长时间未登录账号,需要验证后登录
  • 移动端App登录设备更换的验证机制
  • 登录日志:对设备、IP等详细信息进行记录,对异地/非常用设备登录提示异常
  • 二次校验:核心业务功能操作打开之前需验证后才能使用,如查看工资条,需要进行二次验证

访问权限控制:在保证租户间访问权限与数据隔离的基础下,同时给租户内提供了一套完善的权限管理体系,涵盖垂直权限管理(功能权限)和水平权限管理(数据权限),同时通过Auth2.0权限控制支持外部系统的接入。

 应用层拒绝服务攻击:DDOS又称为分布式拒绝服务,是利用合理的请求造成资源过载,薪福通产品通过限制请求次数、验证码(图形滑动)等多种方式相结合,有效的防止DDOS攻击。

 

     5.数据安全

在数据库架构、租户隔离机制以及数据生命周期各阶段如数据采集、数据使用、数据存储、数据共享、数据备份销毁等,我们采取进行安全控制措施,确保用户数据的机密性、完整性、可靠性。

数据库架构:当前薪福通产品使用MySQL主流架构MySQL MGR架构。

1)MGR架构高可用设计:MGR架构是MySQL官方当前主推也是后续重点发力的一种高可用实现方案。MGR的诞生是为了应对事务一致性要求很高的系统对高可用数据库系统的要求,并且增强高可用集群的自管理能力,避免节点故障后的failover需要人工干预或其它辅助工具干预。基于Group Replication搭建的系统,不仅可以自动进行failover,而且同时保证系统中多个节点之间的事务一致性,避免因节点故障或网络问题而导致的节点间事务不一致。此外还提供了节点管理的能力,真正将整个集群做为一个整体对外提供服务。

除去MGR产品本身提供的高可用保障外,我们在容器化部署及管理带来先进性的基础之上,进一步做了高可用增强。利用容器化节点反亲和等技术,我们将MGR三节点分别部署在不同的物理节点上(同城跨3AZ),规避某台物理服务器故障带来的可用性风险。

下图为MySQL8.0版本基于MySQL Router以及域名访问的MGR架构图。MGR 3节点可实现同城跨AZ部署,利用MySQL Router实现读写分离以及读请求的负载均衡。借助与MySQL MGR产品本身的能力,我们可实现多副本数据存储、高效主备数据同步、对业务透明的故障自动切换、RPO=0以及RTO<=6、无脑裂风险。

Router集群是一个无状态三副本高可用架构。其中一个Router节点故障,不会造成业务影响。DNS域名服务器也是6节点异地跨城高可用部署,同时DNS服务器还具备IP探活机制,避免业务连到的IP节点不可达。

 

2MGR架构异地容灾薪福通系统使用的异地容灾集群架构具体架构如下图所示带有异地容灾集群架构的两套MGR集群共用一个域名,通过远程容灾套件实现容灾关系的全生命周期管理。同城MySQL节点依靠MGR本身来保证数据库高可靠。异地使用异步复制保障数据同步。当前容灾切换已实现自动化,由人工确认并手动触发,容灾切换过程对应用无侵入,应用无需修改连接串信息。

 

多租户安全控制:为了满足高扩展性和高性能, 在薪福通产品后方的数据库是一个被多租户共享的集群实例。我们的应用保证了用户只能看到他们有权限看到的。

1)数据库中的每条记录都保存着企业的租户ID;

2)在登陆期间,被授权用户将会被匹配到他们的租户并根据权限进行展示

3)每个请求都包含租户ID,并对请求进行记录、拦截与审计

4)每个对数据库的请求都包含租户ID,并对请求进行记录、拦截与审计

5)每条数据库反馈的数据都包含租户ID,进行数据权限校验

数据采集:产品使用行内通用安全控件确保敏感信息数据采集过程安全业务处理完成后终端不保留任何数据所有面向互联网的应用,必须统一接入应用网关,实现SSL加密协议,对敏感信息(身份证号、银行账号等进行加密后传输;所有对外的API通过严格的签名认证,不同企业不同秘钥关键操作都会记录详细操作记录

数据使用在前端应用层面涉及敏感信息的页面全部加上水印,敏感信息已默认打点隐藏,限制数据批量导出;在服务端应用层面,必须统一接入权限管理系统,经过管理员分配权限后才可使用,离职转岗后权限自动关闭;在后台数据库操作方面,遵循招商银行完善的后台数据使用管理规范(如下图);严格的网络控制,封闭的环境终端,增删改查的操作命令全程监控,操作日志集中存储,操作流量实时分析,一旦发现高危 sql 语句、批量违规操作、危险时段异常操作等违背安全管理要求的行为,及时告警并可实时在线拦截。在运营系统数据使用方面,严格的权限申请流程,敏感数据加密处理 

数据存储:薪福通数据库是被多租户共享的集群实例,租户号进行分库分表存储,每张表都有租户号字段,以保障权限的隔离。用户密码等敏感信息通过SHA256加密存储。行内提供了一套系统化、专业化的数据库诊断优化能力,可轻松对数据库实例进行一键全面诊断,包括资源使用、慢SQL、会话/事务,锁,空间,配置等,数据中心专人进行24小时值班,及时反馈、解决问题

数据备份、销毁薪福通产品数据招商银行数据中心严格管控,备份到磁带上的内容加密,由机房操作员、保安、司机共同完成磁带运输并签署运送单存档,备份介质存放在机房内带独立门禁的专用带库间;所有存储介质出机房需审批,实施低格、消磁处理;报废退库存储介质存放专用存储柜,专人管理,定期统一消磁和物理粉碎。

 

       6.安全运营

薪福通不存在高级管理员角色,所有用户都至多访问本租户数据薪福通运营人员严禁使用企业用户变更企业数据薪福通安全事件响应小组及时响应安全事件。

全面的系统日志和操作日志记录,日志进行智能分析,识别可能存在的风险,提示薪福通产品安全响应小组。

 

       四、合规审计

  • ISO20000认证

ISO20000是针对信息技术服务管理领域的国际标准,招商银行基于ISO/IEC20000-1:2011建立的完善的信息技术服务管理体系,已获得权威机构认证。

  • 等保三级认证

信息安全等级保护是由公安部监制,由属地公安机关认可并颁发的国家级信息系统等级认证。招商银行薪福通产品2021年通过了公安部等保三级测评,按照《网络安全法》的要求履行了应尽的安全责任。

破解企业差旅管理难题|为什么更多企业选择招商银行薪福通?
上一篇:破解企业差旅管理难题|为什么更多企业选择招商银行薪福通?
联系我们 薪福通专线:400-0695-555
微信公众号
扫码立即咨询
商务合作 电话:0755-89272910      邮箱:randolph@cmbchina.com 媒体联系 电话:028-63896356      邮箱:jiangyusi@cmbchina.com
招商银行一网通 创建于一九九七年 2020招商银行版权所有粤ICP备 17088997号