mztkn123456

安信证券如何实现云原生安全


Listen Later

选自公众号:金融电子化

原文链接:

实战 | 安信证券云原生安全实践

安信证券云原生安全防护架构如图所示,包括安全研发生命周期、应用安全、数据安全、计算环境安全和安全管理五个部分。

1.安全研发生命周期

首先,安全开发。云原生的技术架构更加复杂,业务的需求调整、上线、变更也愈发频繁,传统的安全实践不足以适应云原生安全防护的要求。安信证券在云原生应用建设工作中,引入了安全左移的概念,在云原生应用建设初期即开展各项安全活动,设置关键卡点进行风险拦截。

在系统需求分析阶段考虑安全合规的需求、公司内部的安全管理需求和软件本身的安全功能需求等。通常包括通用的身份识别、认证、访问控制和授权、日志审计、敏感数据保护,还包括开源软件选型及外购软件供应链的供应商安全审查需求和安全交付要求等。制定开源软件的使用规范,管理开源软件资产和安全风险。在开源软件的源头进行统一管理,在流水线中自动化进行开源软件资产扫描识别和维护。

其次,安全交付。在应用系统制品的功能开发、软件测试和制品制作等过程中进行全方位的检测。在开发阶段集成静态安全检查工具和镜像扫描工具,检测代码中的安全缺陷和引用外部镜像的安全及合规问题;构建通用安全防护能力,向开发人员提供安全SDK或安全服务,使制品具备内生安全能力;实时获取自动化测试的请求数据,使用IAST安全检测工具,在应用运行状态下检测应用程序中安全漏洞;设置质量门禁,在各环节验证应用风险遗留情况,满足安全检测规范后的制品制作进入下一环节。

将安全管控措施无缝接入到应用生命周期管理流程,实现安全检测活动流程化;将安全扫描工具嵌入到开发流程中,在制品开发、编译、入库等过程中增加自动化监测点,在镜像流转的每一步进行自动化检测和卡点控制,保证制品安全。

第三,安全运营。K8S集群具备完善的RBAC权限控制体系,遵循最小化赋权的管理要求,为项目运维人员、项目组成员等不同角色分配合理的权限,同时对用户的所有操作都能通过审计日志进行跟踪。另一方面,通过建设容器平台安全检测系统,实现运行时安全能力全平台覆盖。系统支持镜像、容器运行环境、K8S运行环境等进行镜像安全检测、漏洞检测、配置检测、入侵检测、配置检测等能力,可解决安全漏洞、入侵检测、配置合规三大方面的安全需求。

2.应用安全

云原生应用倡导采用微服务架构的方法来实现更高的可扩展性和灵活性,实现部分服务的独立组件化管理,各应用系统内部高内聚,跨系统的调用通过API接口实现松耦合,在资源层通过容器技术相互隔离。在实践中,安信证券云原生应用的安全防护措施包括以下内容。

一是身份认证。单个业务系统内的多个服务互访互通,跨系统间的接口调用,通过引入API网关实现接口的认证和授权,支持CAS、Basic Auth、Key Auth等常用的认证方式。同时,API网关还能提供IP黑白名单限制客户端,针对客户端或服务端的流量控制。

二是访问控制。K8S中的应用程序,通过Ingress对外暴露后端服务接口,使用Ingress可以实现更精细的流量管理、较高级别的访问控制和SSL终止等功能,相对于使用NodePort将节点固定端口(通常是完全公开的)映射到服务中暴露的端口上,一定程度上提高了安全性。

三是容器隔离。不同容器之间的隔离访问。Docker等容器技术,通过Linux提供的NameSpace和Cgroup等,技术实现不同容器之间的进程命名空间、网络命名空间、CPU、内存、磁盘和网络IO等资源隔离。在实践中,为了遵循最小化访问权限、进一步提升不同业务系统之间的隔离性,默认情况下,还将分布在不同NameSpace中的业务系统通过网络策略进行隔离。

四是API安全。云原生架构下API面临非法信息窃取、未授权访问、访问权限不合理、业务逻辑漏洞、高频暴力调用、传统安全漏洞等风险。安信证券基于API生命周期制定了API安全防护措施。首先在研发阶段提出API安全需求、关注API安全设计和API安全防护的开发实现;其次是在API上线前执行安全检测;最后是在生产环境使用API安全管理系统,实时检测API安全漏洞和监测针对API的攻击行为。

3.数据安全

云原生应用架构中,服务访问以API交互为主,数据大多是通过API进行访问、传输。随着API数量增长导致的管理复杂度提升,API安全问题将会显现,其中无效的访问控制、数据返回未最小化等问题将导致API成为数据泄漏的源头。

一是识别含敏感数据API资产及漏洞。在云原生场景下,通过网络流量分析、日志分析、API资产台账等方式,结合公司对于敏感数据的定义,自动化盘点出公司需要关注的敏感数据API资产。对敏感数据API资产的访问流量进行实时监测,设置自定义检测规则,自动化发现流动中的敏感数据类型、数量、访问来源,以及安全问题,包括无效的访问控制、命令执行、SQL注入等等。

二是监测用户的敏感数据访问行为。通过自动化解析API的特定认证串(如token)或登录过程,将API的访问与公司员工或客户身份进行关联,具备了除IP、User Agent等额外属性。关联身份之后,与身份有关的岗位、权限、状态等属性可用以进一步判断用户的敏感数据访问行为是否存在风险。

4.计算环境安全

云原生计算环境是以K8S等技术为基础的容器云平台,对接外部认证授权、镜像仓库、存储、监控告警等组件,为应用容器编排、弹性伸缩等功能特性的全托管平台,其安全能力是承载的所有应用的基石,在建设时与安全治理同步规划、建设和运营,从制度规范、协作流程和技术检查工具等方面完善平台安全能力。具体内容包括以下几个方面。

首先,运行时安全。容器云平台运行时安全包括配置加固、容器漏洞管理等内容。例如,使用非Root用户启动应用进程、禁止容器配置特权提升、禁止Pod使用特权模式启动等方式降低容器逃逸风险,防止攻击者攻陷容器后进一步扩散至容器的宿主系统,利用宿主机的内核漏洞提权获得宿主机用户权限。

其次,镜像安全。容器镜像安全是保障容器安全的重要部分。常见的容器镜像安全手段包括三种。一是镜像仓库访问权限控制。镜像仓库身份认证和访问权限控制,避免用户提权访问其他用户的镜像资源。二是镜像源管理。在镜像源安全管理方面,采取以下措施来提前规避安全风险,如使用官方或受信任的仓库、采用最小化的操作系统、高危漏洞镜像阻断、限制K8S集群内Pod获取镜像的仓库地址、定期对镜像仓库内的镜像源进行安全扫描等。在实践中,以私有镜像仓库作为唯一制品源,由独立的团队同步开源社区最新的JDK、Nginx等基础镜像,并提供必要的安全定制,最大限度保障了基础镜像的安全性。三是镜像漏洞扫描。当应用镜像通过自动化流水线构建时,由安全检测工具进行自动化漏洞扫描,对于高危漏洞镜像及时阻断。

第三,编排及组件安全。K8S组件众多,对于APIServer等关键组件的安全防护尤为重要。在组件认证授权方面,基于项目给用户授权,并控制其访问K8S平台组件权限。在资源隔离方面,单独给每个项目配置资源配额实现资源隔离与限制。在敏感数据加密方面,对于常见的数据库账号密码、镜像仓库凭证等加密存储。

第四,网络安全。K8S容器集群的网络组件选择具备网络策略的能力,一定程度保障了Pod间的网络访问安全。在访问控制方面,禁止Pod使用主机网络和主机端口。在网络隔离方面,通过提前规划各租户的IP地址段,以及跨项目命名空间网络默认隔离等方式实现粗粒度的网络隔离,未来考虑借助微隔离、服务网格等技术进一步实现细粒度的网络隔离。

第五,基础设施安全。K8S集群对计算、存储和网络等基础资源统一管理,在计算资源方面与传统安全相似,包括主机访问控制及入侵监测等方法。在网络层面,K8S集群采用独立VLAN部署,使用独立的交换机、防火墙等网络设备,与其他环境隔离。在存储方面,K8S对接的存储具备安全认证、访问目录的权限控制和读写操作的审计日志功能,同时构建完备的存储数据备份机制,最大限度保障了存储数据安全。

5.安全运营

云原生安全也要通过运营手段保障安全水平。安信证券从如下几个方面开展安全运营工作。

安全策略:制定《云原生安全管理规范》并持续完善,以适应不断变化的威胁和新技术,内容涵盖云原生安全定义、研发安全策略、访问控制策略、数据安全策略、身份验证策略、运营策略等,确保环境中的应用程序和数据受到充分保护。

资配漏补:记录宿主机、K8S、容器、镜像、进程、文件、网络等云原生环境中各类资产的位置、状态和依赖关系。确保资源配置正确,漏洞得到及时修复。

响应处置:实现情报、监控、检测、告警和响应处置的闭环管理。当出现安全告警时,可以快速响应并采取必要处置和恢复措施,保障业务系统不受损失,支撑公司业务安全、稳定持续运行。

审计合规:监控并记录用户访问、配置变更、运维操作等动作,确保其符合各种法律法规和规章制度。

...more
View all episodesView all episodes
Download on the App Store

mztkn123456By mztkn123456