阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

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

  • 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:001093

评论

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

软件测试/测试开发简历写作与面试技巧-VIP内部资料

测试人

面试 软件测试 自动化测试 简历 测试开发

Spring为什么需要三级缓存来解决循环依赖

做梦都在改BUG

Java spring 循环依赖

DSW-Gallery使用体验+生成吸引人眼球的新闻标题

六月的雨在InfoQ

模型训练 机器学习PAI DSW-Gallery EasyNLP

如何在Java中做基准测试?JMH使用初体验

做梦都在改BUG

Java JMH 基准测试

印象最深的都是关于 IoTConsensus 共识协议?听听新晋 Committer 怎么说!

Apache IoTDB

IoTDB Apache IoTDB

LLM 快人一步的秘籍 —— Zilliz Cloud,热门功能详解来啦!

Zilliz

非结构化数据 Milvus Zilliz LLM

可处理十亿级向量数据!Zilliz Cloud GA 版本正式发布

Zilliz

SaaS 非结构化数据 Milvus Zilliz 向量数据库

博睿数据受邀出席GOPS 2023 深圳站:自适应AI支撑可观测性全面升级

博睿数据

可观测性 智能运维 博睿数据 Bonree ONE 自适应AI

百度APP iOS端包体积50M优化实践(一)总览

百度Geek说

ios xcode 百度 企业号 4 月 PK 榜

青海等保测评机构有几家?分别是哪几家?

行云管家

等保 等级测评 青海

设计模式-备忘录模式

Java你猿哥

Java 设计模式 ssm 架构师 备忘录模式

干掉微服务,换下Dubbo,Spring CloudAlibaba王者降临

做梦都在改BUG

Java 架构 微服务 Spring Cloud spring cloud alibaba

微信支撑10亿用户背后核心技术:亿级流量Java并发与网络编程实战

做梦都在改BUG

Java 网络编程 高并发 亿级流量

一文了解MySQL中的多版本并发控制

京东科技开发者

MySQL 京东云 企业号 4 月 PK 榜

AI真的会让程序员失业吗 | 社区征文

五分钟学大数据

三周年征文

测试1号位的自我修养

京东科技开发者

测试 京东云 企业号 4 月 PK 榜

图解云消息服务KooMessage

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

惟实励新,精进臻善!MIAOYUN人人是讲师(第二季)焕新重启

MIAOYUN

学习 企业文化 人才培养 企业培训 学习成长

Spring 之依赖注入底层原理

做梦都在改BUG

Java spring 依赖注入

我们与AI共生的未来 | 社区征文

TiAmo

人工智能 AI 三周年征文

GitHub上线一天星标99.9K:阿里内部高逼格SpringCloud实战手册

做梦都在改BUG

Java 架构 微服务 Spring Cloud

在 Rainbond 上使用在线知识库系统zyplayer-doc

北京好雨科技有限公司

云原生 #Kubernetes# rainbond 企业号 4 月 PK 榜

如何在移动应用开发中,用小程序实践灰度发布策略

FinFish

灰度发布 APP开发 小程序容器 小程序技术

运维堡垒机定义以及作用简单讲解-行云管家

行云管家

堡垒机 运维堡垒机

AI 能否取代打工人?| 社区征文

阿发

三周年征文

数据智能服务商奇点云完成近亿元C2轮融资

奇点云

数据中台 融资 奇点云

2023年MQTT协议的7个技术趋势|描绘物联网的未来

EMQ映云科技

物联网 IoT mqtt 信息技术 企业号 4 月 PK 榜

应用火山引擎DataTester“避坑”,抖音实现用A/B实验快速试错

字节跳动数据平台

大数据 抖音 实验 A/B测试 企业号 4 月 PK 榜

前端自动化测试之葵花宝典

京东科技开发者

前端 企业号 4 月 PK 榜

Redis缓存穿透/击穿/雪崩以及数据一致性的解决方案

Java你猿哥

redis ssm 架构师 Java工程师

华为进军ERP!北用友南金蝶的格局是否会动摇?

这我可不懂

华为 低代码 用友 金蝶 JNPF

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