写点什么

当金融科技遇上云原生,蚂蚁金服是怎么做安全架构的?

  • 2019-10-21
  • 本文字数:2994 字

    阅读完需:约 10 分钟

当金融科技遇上云原生,蚂蚁金服是怎么做安全架构的?

蚂蚁金服在过去十五年重塑支付改变生活,为全球超过十二亿人提供服务,这些背后离不开技术的支撑。在 2019 杭州云栖大会上,蚂蚁金服将十五年来的技术沉淀,以及面向未来的金融技术创新和参会者分享。我们将其中的优秀演讲整理成文并将陆续发布在“蚂蚁金服科技”公众号上,本文为其中一篇。


在云原生发展趋势之下,金融行业想要应用云原生技术,安全问题是一个非常大的拦路虎,而云原生社区对安全问题的重视程度远远不够。蚂蚁金服在落地云原生的时候,解决安全问题是重中之重,经过探索与实践,我们沉淀出了一套从底层硬件到软件、从系统到应用层的全链路金融级云原生安全架构。


金融行业最重要的就是信任,我们认为,安全所带来的信任,是一种无形的产品,支撑着所有金融业务。


顺应互联网时代发展,金融行业与机构也发生了很多的变化,包括 App、小程序等更多的访问渠道,更快的业务变化,更多的第三方供应商。但是,不管怎么变化,金融行业有一点始终不变,那就是 Zero Fault,对错误的零容忍,也就是对稳定性和安全性的极高要求。


这里,我还想澄清大家对金融行业的一个错误看法,就是,大家都说金融机构有很多遗留系统,很多技术是十几年前的,就认为金融机构的技术是落后的。但其实,金融行业一直是科技含量非常高的。前段时间有一部电影上映,叫《蜂鸟计划》,根据真实事件改编,讲一帮做高频交易的人,为了降低从堪萨斯到纽约交易所的时间,建造了一条上千英里直通两地的光纤,想尽办法去争取那最后一毫秒。所以,金融行业并不只有平庸保守的科技,它同样也在追逐最前沿最先进的技术,我们的使命就是要用科技来进一步武装金融行业,为金融科技注入更多的活力。


云原生架构其实代表一种新的生产力,金融行业肯定是需要云原生的,它为我们带来了节约成本和敏捷开发的能力,但是在它前面还需要加一个定语,就是安全的云原生架构,它里面不仅仅包含之前的相对简单的安全方案,而是一个从端到端的全链路可信的安全解决方案。包括明晰代码所有权,做到可信启动,对镜像的制作和发布收口,配合账号体系,明晰应用的所有权和访问权限;以及安全可独立部署的精细化隔离方案,将安全策略和实施集成在基础架构中,对软件开发和测试透明。


这里我们着重分享蚂蚁金服正在实践的几项云原生安全技术,包括云原生网络安全


Service Mesh,安全容器,以及机密计算。

云原生网络安全:SOFAMesh

当前,云原生里除了容器之外第二大技术其实就是 Service Mesh,从蚂蚁的实践来看,其实它对金融安全有非常高的帮助。它至少可以做到三点:


  • 策略化高效流量控制,可以帮助运维迅速适应业务快速变化;

  • 全链路加密,保护端到端数据安全;

  • 流量劫持与分析,当发现异常流量与容器时,进行流量阻断。


并且,这些工作对业务是透明的,不需要给业务开发增加负担,同时我们还可以对流量进行实时的语义分析等等,做比传统的防火墙做更多的事情。



蚂蚁金服在对 Service Mesh 的探索中,推出了自己用 Golang 打造的 SOFAMesh,并且已经对外开源,希望和社区一起努力,让 Service Mesh 的理念和技术更加普及。


SOFAMesh 是基于 Istio 改进和扩展而来的 Service Mesh 大规模落地实践方案。在继承 Istio 强大功能和丰富特性的基础上,为满足大规模部署下的性能要求以及应对落地实践中的实际情况,所做的改进包括采用 Golang 编写的 SOFAMosn 取代 Envoy,极大降低了 Mesh 本身的开发难度,并做了一些创新性工作,例如合并 Mixer 到数据平面以解决性能瓶颈,增强 Pilot 以实现更灵活的服务发现机制,增加对 SOFARPC、Dubbo 的支持,等等。


蚂蚁金服率先在生产环境中大规模落地 SOFAMesh,超过 10W+ 容器做到了 Mesh 化,平稳支撑了 618 大促,给我们带来了多协议支持、UDPA、平滑升级、安全等多方面的好处,并且对性能仅有轻微的影响,单跳 CPU 增加 5% 损耗,RT 增加不到 0.2ms,甚至部分业务经过 Mesh 化改造将业务链路下沉,RT 反而下降 7%。

安全容器 Kata Containers


传统容器架构


提云原生大家肯定都会提容器,传统容器从虚拟机到容器,其实是牺牲了隔离性的,从上图可以很清楚的看到,当我们的应用在容器里,其实共享着同一个 CPU、内存、网络和存储,只是从外面看起来是不同的。这会导致安全上的问题,就是不同的容器之间不存在真正的隔离,一旦一个容器发生安全问题,很可能影响到其它容器,甚至入侵整个系统。蚂蚁金服在这方面做的工作就是安全容器,具体就是 Kata Containers。



安全容器架构


Kata Containers 安全容器是 OpenStack 基金会的顶级开放基础设施项目,由蚂蚁金服和 Intel 共同主导开发。在安全容器里,每个 Pod 运行在独立的沙箱中,彼此不共享内核,提供强安全保障。


这里给大家分享一下 Kata Containers 的近期进展,针对大家最关注的性能问题有了非常大的提升:


  • 引入 shimv2 每 Pod 辅助进程数量从 2N+2 减少到 1 个;

  • 引入 virtiofs,提升文件系统性能约 70% 到 90%;

  • 引入 Firecracker, VMM 内存开销从 60MB 降到约 15MB;

  • 改用 rust 实现 agent,占用内存从 11MB 下降到约 1MB。


我们也会和社区一起继续共建 Kata Containers,让安全容器成为云原生的标配。


安全容器可以有效的保护主机,但是,金融业务本身仍然需要更强的隔离保护,蚂蚁金服引入了机密计算,并根据实际场景研发了大规模落地解决方案 SOFAEnclave。

机密计算中间件:SOFAEnclave

所谓机密计算,也就是基于例如 Inte SGX,ARM Trustzone 等可信执行环境(Trusted Execution Environment, TEE),也称为 Enclave ,访问计算机内存时隔离用户数据,以避免将数据暴露给其他应用程序、操作系统或其他云服务器租户的解决方案。



Enclave 架构


Enclave 是运行时的双向保护,比如说你的金融业务跑在 Enclave 上的时候,操作系统都看不到 Enclave 里的内存,同时会进行完整性检查,保证访问 Enclave 的代码不被替换。


但是 Enclave 目前存在一些问题,阻碍了它在实际生产环境中的应用。总结这些问题包括:


第一,需要改写应用,因为可信执行环境里面没有内核和基础库,所以没法把应用直接在 Enclave 中执行;


第二,需要分割应用,需要把业务程序划分为 Enclave 内和 Enclave 外的部分;


第三,未集群化,与客户端场景不同,Enclave 中的应用如何 failover,容灾也是阻止其在数据中心中大规模使用的一个原因。


蚂蚁金服针对这些问题的答案就是 SOFAEnclave 机密计算中间件。



SOFAEnclave 架构


SOFAEnclave 由三个组件组成,第一个是 Occlum LibOS,另外一个是 SOFAst,以及 KubeTEE。Occlum 是蚂蚁和英特尔、清华主导开发的一个内存安全的多任务 Enclave 内核,把系统内核的功能通过 lib 的方式链接过去,通过这种方式给 Enclave 增加功能。同时我们也创新性的解决了在 Enclave 跑多进程的方式,让 Enclave 真正适配大型的应用。


当我们把这些安全组件与云原生框架编织在一起,构成一个全景,就是我们正在构建的金融服务的安全云原生安全架构——基于阿里云和 Kubernetes,以端到端的安全性保障金融服务。



上述这些组件有些是蚂蚁金服在实践检验之后开源并与合作伙伴和社区共同发展的,有些从开始就是在社区中开发的。与传统金融行业的技术发展不同,我们提倡建立一个开放的架构,并相信开放的开源治理对于这个架构是不可或缺的,我们会持续参与和支持社区化的开放开发,与社区一起打造下一代金融级云原生技术。


本文转载自公众号蚂蚁金服科技(ID:Ant-Techfin)。


原文链接:


https://mp.weixin.qq.com/s/SmX2AI95L_PHAGUkS0iSOA


2019-10-21 08:001246

评论

发布
暂无评论
发现更多内容

北航基于openEuler构建工业机器人操作系统,打造“开箱即用”的机器人基础软件平台

openEuler

Linux 操作系统 机器人 嵌入式 openEuler

商品推荐系统浅析 | 京东云技术团队

京东科技开发者

算法 推荐系统 推荐算法 企业号 8 月 PK 榜 搜索推荐系统

透过源码,捋清楚循环依赖到底是如何解决的!

江南一点雨

Java spring

质量指标如何发挥作用?构建质量能力是关键

BY林子

质量指标 质量度量 质量能力

spring多数据源动态切换的实现原理及读写分离的应用 | 京东云技术团队

京东科技开发者

spring 读写分离 企业号 8 月 PK 榜 AbstractRouting 动态切换

11. 数据类型 - 字典

茶桁

Python 数据类型 字典

12. 数据类型 - 集合详解

茶桁

Python 集合 数据类型

明道云联合Kyligence结合示范性场景应用

明道云

NKD:容器云集群与 OS 一体化运维利器

openEuler

Linux Kubernetes 云原生 操作系统 openEuler

买量业务福音:自有App运行小游戏

FinFish

小游戏 App运行小游戏 游戏买量

哪些项目管理工具领跑2023年中国市场?全新榜单揭秘

爱吃小舅的鱼

项目管理 项目管理软件

JSP的内置对象

java易二三

编程 程序员 计算机

OpenSSL 3.0.0 设计(二)|Core 和 Provider 设计

铜锁开源密码库

开源 开发者 算法 信息安全 密码学

研发提测前测试到底能做些什么 | 京东云技术团队

京东科技开发者

测试 测试开发 企业号 8 月 PK 榜

Camtasia 2023 for Mac(视频录制和剪辑软件) v2023.1.2中文特别版

mac

Camtasia2023 苹果mac 屏幕录制软件 视频编辑软件

分享实录 | 将 NGINX 打造成功能强大的 API 网关(上)

NGINX开源社区

nginx 微服务 k8s API api 网关

鸿蒙智联再出发,携手伙伴共赢空间智能化,创造无限可能

HarmonyOS开发者

HarmonyOS

Java日记——使用强大的Elastisearch搜索引擎

java易二三

Java 编程 程序员 计算机

国产 etl engine 监控面板 为管理者掌握平台运行情况,决策执行方案提供即时数据支撑

weigeonlyyou

数据库 数据交换 物联网 ETL 云数据迁移

选择FastAPI或Flask:Python Web开发框架的终极指南

Apifox

Python flask 框架 web开发 FastApi

大模型AI人才培养研习会,上海、武汉站同期招募!

飞桨PaddlePaddle

人工智能 百度飞桨 文心大模型

移动云操作系统改造技术实践分享,跨操作系统云主机迁移优化(一)

openEuler

Linux centos 操作系统 迁移 openEuler

GPT-4助力数据分析:提升效率与洞察力的未来关键技术 | 京东云技术团队

京东科技开发者

数据分析 ChatGPT4 企业号 8 月 PK 榜

持续赋能 AI 应用,和鲸 ModelWhale 入选“2023 数字生态500强”优秀案例&解决方案榜单

ModelWhale

人工智能 大模型 数字生态 AIGC

MES和ERP的区别

优秀

ERP mes mes和erp区别

从 Java 11 迁移到 Java 17 的注意事项

高端章鱼哥

Java JVM java17

内卷和躺平之外,职场还有其他选择

老张

职场成长

Java中final、finally和finalize的区别

java易二三

Java 程序员 计算机 final

SSM框架——使用MyBatis Generator自动创建代码

java易二三

编程 程序员 mybatis 计算机

产业共振 智能涌现!8月16日飞桨携手生态伙伴带来大模型企业应用创新实践

飞桨PaddlePaddle

人工智能 百度飞桨 百度AI 文心大模型

当金融科技遇上云原生,蚂蚁金服是怎么做安全架构的?_云原生_何征宇_InfoQ精选文章