HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

评论

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

千万级学生管理系统的考试试卷存储方案

奔奔

入驻快讯 | 欢迎TDengine正式入驻 InfoQ 写作平台!

InfoQ写作社区官方

入驻快讯

vivo统一告警平台建设与实践

vivo互联网技术

软件架构设计 运维监控 告警系统

Prometheus Exporter (六)SNMP Exporter

耳东@Erdong

Prometheus snmp exporter 11月日更 snmp Exporter

架构训练营 - 模块四作业

VegetableBird

架构实战营 #架构实战营 架构师实战营 「架构实战营」

iOS开发:个人整理的关于UITableViewCell的常用属性的知识

三掌柜

11月日更

大厂算法面试之leetcode精讲3.动态规划

全栈潇晨

LeetCode 算法面经 算法面试

dart系列之:在dart中使用生成器

程序那些事

flutter dart 程序那些事 生成器模式 11月日更

和不安全访问say goodbye,手把手教大家如何给域名申请免费SSL证书

老表

https 云服务器 SSL证书 跟老表学云服务器

试卷存储方案设计

zjluoyue

中科柏诚本地生活,率先发力场景金融新营销模式

联营汇聚

最强最全面的数仓建设规范指南(二)

五分钟学大数据

11月日更

Elasticsearch 倒排索引详细剖析

大数据技术指南

11月日更

【死磕Java并发】-----J.U.C之AQS:AQS简介

chenssy

11月日更 死磕 Java 死磕 Java 并发

【架构实战营】模块四作业

liu🍊

vue3 学习笔记 (二)——axios 的使用有变化吗?

码仔

axios Vue 3

Hadoop 入门笔记—核心组件 YARN

恒生LIGHT云社区

大数据 hadoop YARN

模块四作业提交

21°Char

架构训练营 模块四 作业

dog_brother

「架构实战营」

在120篇系列专栏中,才能学会 python beautifulsoup4 模块,7000字博客+爬第九工场网

梦想橡皮擦

11月日更

不止承上启下,带你了解工业物联网关

华为云开发者联盟

物联网 边缘计算 网关 工业物联网 工业物联网关

架构师实战营 - 模块四 - 作业

lucian

架构师实战营

并发高?可能是编译优化引发有序性问题

华为云开发者联盟

Java 编译 代码 并发 指令

云小课 | SA基线检查---给云服务的一次全面“体检”

华为云开发者联盟

态势感知 华为云 基线检查 上云合规 全面体检

040022-week4-design

InfoQ_70156470130f

模块四作业

小鹿

高级可视化神器Plotly绘制热力图

Peter

可视化 plotly

第四模块-考试试卷存储方案设计

🌾🌾🌾小麦🌾🌾🌾

架构实战营

openLooKeng视图详解

openLooKeng

大数据 openLooKeng

架构实战营模块四作业

spark99

架构实战营

Android C++系列:Linux进程(二)

轻口味

c++ android jni 11月日更

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