下面将系统性地介绍各层中的技术及运营环节的安全风险控制措施。
1.数据中心计算资源安全
环信即时通讯服务由国内外多个数据中心(IDC)以及头部公有云供应商的云服务组成,以构 建一个统一、高可用、高扩展、高效率、高安全的基础资源环境。
1.1 网络隔离
对网络进行合理的划分,定义清晰用途,制定适配的访问控制策略,是网络安全的前提之一。 环信基于 IM PaaS 承载功能和安全级别的不同,将网络划分出了核心、边缘、IT 等几大安全区 域。在不同的安全域之间,根据不同的业务访问需求和安全级别,环信制定了不同的路由策略 以及严格的安全访问策略。
1.2 防 DDoS 攻击
分布式拒绝服务攻击(Distributed Denial of Service,DDoS)会对 IM 服务的系统和业务可用 性产生重大影响,严重时可导致服务中断或质量下降。为此,环信基于自身服务的特性,结合 公有云能力,在核心服务上部署了 DDoS 防御方案。该方案能够实时检测并防御来自网络层、 传输的 DDoS 攻击。防 DDoS 攻击方案,能够自动检测、自动调度并触发清洗功能,数秒内就 可以完成攻击、流量清洗动作,保证核心服务的可用性。
此外所有 DDoS 攻击事件,都会通过邮件、短信、电话等方式,第一时间知会安全团队,以便 安全团队持续关注和响应决策。
1.3 主机、数据库、中间件等计算资源安全
各类服务运行所依赖的资源,由操作系统或容器化为关联的后台程序、缓存、数据库等中间件, 合理地调度分配 CPU、内存、磁盘等资源来满足。环信结合自身基础服务场景,在实际安全运 营中,通过制定适配的安全基线、漏洞管理规范,并落地纵深威胁检测机制,确保基础运算负 载资源的安全性。
安全基线
环信制定了 IDC 和公有云的安全基线,涵盖主机操作系统、容器、数据库、存储、Web 服务等中间件,内容包括账户安全、身份认证、最小服务、最小授权、日志审计、时钟同 步等。并根据不同的用途,对操作系统或中间件进行不同程度的安全配置加固,确保新交 付的运算负载资源满足相关安全基线要求。对于运行中的负载资源,安全团队会进行定期 的配置巡检,对比与安全基线的差异,输出不符合项,通知到关联的运维和业务技术团队, 并落实整改。
漏洞管理
所有交付上线的运算负载资源,均来自统一管理的操作系统镜像或中间件软件包。对于交 付使用中的资源,安全团队会采集操作系统和中间件版本信息,然后发送到安全运营系统 中分析,从而识别是否存在受漏洞影响的版本。对于公有云上的主机资源,环信会部署公 有云的安全客户端,实现对操作系统和中间件等软件产品的实时漏洞检测。另外,安全团 队通过部署业界知名商业漏洞扫描产品,定期对运算负载资源发起扫描巡检,输出漏洞扫 描报告,并将信息采集到安全运营系统。
一旦发现存在漏洞版本匹配的组件,安全团队会对漏洞的风险做综合评估,提供应急处置 措施和修复建议,并联合运维及相关业务技术团队落实漏洞修复、配置加固、镜像更新, 从而实现漏洞管理的闭环。
计算资源中的安全运维
运维账号安全 :在日常运维中,环信制定并启用了 IAM(Identity and Access Management,身份和访 问控制管理)机制,所有涉及运维内容的人员必须具有有效的身份和授权才可进行操作, 运维账号与员工身份一一对应,其默认启用 MFA(Multi-factor authentication, 多重要 素验证)。
操作系统账号安全: 对于系统账号,环信制定了一系列安全制度和操作规范,例如,避免使用弱口令作为密码, 并要求定期更换,信息安全团队也会通过定期的安全检查。
运维操作审计: 环信在日常运维过程中,会实时记录归档各类操作,制定实时监控告警策略,并对风险操 作及时处置。
2.SDK 安全
环信提供 iOS、Android、Flutter、React Native、Windows、小程序、Web 等平台的 SDK 支持, 以满足开发者及用户的各类实时音视频互动接入需求。IM SDK 不仅仅为开发者及用户提供简 单、易用、统一、可信、安全的即时通讯开发套件,也竭尽全力为开发者及用户提供合规、安 全的配置选项,以提升开发者及用户在实时音视频互动场景和应用中合规监管和应对信源数据 安全威胁的能力。
根据国家法律法规规定及监管机构执法要求,APP 在使用第三方 SDK 时,必须在 APP《隐私 政策》中告知用户,并在调用时序上做好延迟初始化配置,确保用户同意 APP《隐私政策》后 SDK 才可以被启动,进行数据采集和服务。为了帮助开发者避免合规风险,环信推出隐私政策 合规要求,包括隐私政策展示内容和展示形式合规。
2.1 SDK 的合规与安全保证
环信 在为开发者提供 SDK 时,SDK 的可信和安全是首要保证的内容之一。在评审 SDK 新增或 迭代的功能时,会充分评估功能需求在合规隐私以及安全上的风险点,确保与环信合规和隐私 政策的一致性。功能实现时,会在进行充分的质量保证(QA)测试时对代码进行安全审计,在 涉及引用或集成第三方 SDK、库文件时进行安全检测,尤其是合规性确认,例如,是否存在恶 意代码或后门,是否遵守版权或使用协议。如果检测出存在风险,SDK 只有在修复并确认无风 险后,才允许进入下一阶段。
2.2 对开发者及用户的安全与合规支持
环信始终秉持“服务每一位开发者,尊重每一位终端用户”的初心,我们希望自身在安全上的 能力也能对开发者及用户有所帮助。在 SDK 上,提供了设备端存储内容加密,日志安全等安全 配置选项,以协助开发者及用户完善即时通讯数据安全及隐私合规。有需要的开发者及用户, 可以参考开发者文档进行配置启用。
本地存储内容 :环信 SDK 使用行业标准的加密技术对在设备本地的消息等内容记录进行加密存储。
日志脱敏: 环信 SDK 提供不同的日志级别,方便开发者在开发调试和发布时使用,同时对设备上的 日志进行脱敏,防止用户数据被识别和窃取。
3.RESTful API 安全
为方便开发者高效地管理自己的应用和服务,诸多业务功能和管理功能以 RESTful API 的方式 供开发者调用。在安全保障上,除了将站点接入 WAF 外,还有如下的安全控制措施。
身份鉴权
开发者在使用 RESTful API 前,需先登录控制台,创建开发者专属的 key&secret。后续API 调用,需使用对应的 key&secret 对,以区分不同项目或应用。
传输安全
RESTful API 支持 HTTPS 协议,以确保使用 SSL / TLS 对所有 API 通信进行加密,可以保 护 API 凭据和传输的数据,以及防止一些如中间人攻击(MITM, man in the middle)等 攻击。
API 限速
服务端对 API 请求的速率有限制,在保证正常用户请求可以得到响应的同时,限制恶意用 户的 API 请求。
输入验证
开发者请求的参数会经过服务器后台过滤,以避免一些常见的易受攻击缺陷(SQL- 注入, 远程代码执行等)。