写点什么

微服务与安全

  • 2016-11-20
  • 本文字数:1364 字

    阅读完需:约 4 分钟

“我们都知道洗手在预防疾病传播上的重要性,但是在面对应用安全问题时,类似的行为却变成了马后炮。我们已经掌握了在开发工作流中加入测试的做法,但是对于安全问题却常假定稍后会有其他的人去解决。”这是 Sam Newman 近期在伦敦微服务大会主题演讲中所提出的观点。他的演讲内容围绕微服务环境中的安全问题而展开。

Newman 当前供职于 Atomist ,他认为各个微服务构成了一种六边形的形态,其中每种微服务的命名是与它们的业务职责相对应的。这些微服务具备自治能力。Newman 特别指出,这些微服务的自治能力主要来自于它们的独立可部署性。

单体系统通常会具有一个边界,以及一个需要得到保护的数据库。如果攻击者借助安全漏洞闯入了这样的系统,他很有可能会窃取到系统内的全部东西。如果基于微服务的系统具备了适当的安全性,我们就可以限制攻击者窃取的权限,以及在一次攻击破坏了某个服务后所能窃取到的东西。但是在使用微服务的同时,也暴露了更大的可攻击面,使得更多的服务器可被攻击。单体进程内的方法调用,现在变成了对远程API 的网络调用。另外为大量服务器手动打补丁容易出现漏打补丁的情况。

通常我们在发现渗透或潜在的攻击时并不会采取理性思考。我们通常会修补漏洞以防止被再次利用,而不是退后一步从整体看待这个问题。这意味着我们常将钱花在了错误的事情上,反而将容易受攻击的缺陷留在了系统中。

正确的做法应该是建立威胁模型,并仔细思考如何在防范攻击问题上合理地分配你的精力。Newman 给出了他们所使用的两个例子,分别是由Bruce Schneider 提出的 Attack trees 以及使用了 STRIDE 和 DREAD 威胁建模技术的 Microsoft 安全开发生命周期

增强安全性的一个简单做法是对包括内部网络在内的所有地方都使用 HTTPS。该做法可确保消息载体不会被篡改,而且不会出现恶意的冒牌服务器。 Let’s encrypt 是一个免费且自动化的认证机构,它的目标是试图为在公共网络中随意获取 HTTPS 认证提供便利。Newman 指出 Let’s encrypt 最重要的特点在于它是自动化的。服务器在对客户端进行验证时需要客户端认证,但是通常情况下管理这些认证信息会是一种负担。

Newman 认为 Docker 是一项伟大的技术,但是他同时也指出许多受信任的官方镜像都具有严重的缺陷,这意味着安装了这些镜像的系统同时也包含了该镜像的缺陷。Newman 极力推荐使用 clair 这类工具,它具有缺陷静态分析及日常打补丁的功能。

检测或是对已发生的攻击事件了如指掌对防止新的攻击是十分有用的,但是在运行中的服务器上发现新的缺陷也是十分重要的。一般情况下攻击会在日志中留下痕迹,因此 Newman 指出,我们首先要去做的一件事情是如何在一个集中的地点获取对所有日志的访问。这不仅是出于安全方面的考虑,而且是来自应用开发上的考虑。

除了预防和检测问题,Newman 还指出对漏洞问题做出响应和恢复受攻击系统的重要性。你如何对一个安全漏洞问题做出响应并就该问题与客户进行沟通?你如何去恢复一个被攻击的系统?在数据散布到微服务系统中去之后,从备份进行恢复会变得更加困难。

明年的伦敦微服务大会将在11 月6 日至7 日期间召开。

查看英文原文: Microservices and Security


感谢薛命灯对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-11-20 18:003438
用户头像

发布了 227 篇内容, 共 73.8 次阅读, 收获喜欢 28 次。

关注

评论

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

【新品尝鲜】OCR磅单识别上线邀测,为货运物流提速增效

百度大脑

人工智能 OCR

音视频终端引擎优化实践

百度开发者中心

最佳实践 音视频 实践案例 智能视频 行业深度

艾瑞发布《2021年中国企业级 SaaS 行业研究报告》,ONES 入选典型厂商案例

万事ONES

项目管理 SaaS 协同办公

东软熙康、百度、京东方,互联网医院的三个典型样本

海比研究院

用Python绘制专业的K线图【含源代码】

恒生LIGHT云社区

金九银十不要怕!有了腾讯这本2021年最新Java面试手册,offer手到擒来!

Java 程序员 架构 面试 后端

互斥锁、自旋锁、读写锁...理清它们的区别和应用

行云创新

云计算 编程 开发 应用

超十年渗透专家总结出636页渗透测试全笔记,100课时一次讲清

Java 架构 面试 程序人生 编程语言

目睹阿里技术官写的Tomcat架构笔记后,瞬间觉得自己是渣渣

Java 架构 面试 程序人生 编程语言

使用 grpcurl 通过命令行访问 gRPC 服务

AlwaysBeta

golang gRPC

如何做一场有趣又高效的迭代回顾会议?

万事ONES

Scrum 敏捷 回顾会

史上最全Java高频面试合集,命中率高达95%

Java 程序员 架构 面试 后端

拥抱开源,共建生态 - 开源生态与效能提升专场 | CIF 精彩看点

CODING DevOps

DevOps 研发效能 腾讯云 CIF 峰会 开源生态

智能大数据专场,百度智能云带来智能大数据产品架构全景图

百度大脑

人工智能 大数据

如何让文件共享 SDK 支持使用 Uri 上传文件

ZEGO即构

文件存储 分区存储 文件共享

行云创新:云原生技术助力企业数字化转型

行云创新

技术 云原生 转型 数字化 平台

图谱相关技术在风控反作弊中的应用和探索

百度Geek说

后端 软件架构

阿里巴巴架构师十年整理出的JavaSpringBoot核心文档,真是太全了

Java 架构 面试 程序人生 编程语言

四面字节跳动(高级开发岗):分布式+中间件+TCP+JVM+Hashmap

Java 编程 架构 面试 计算机

从工具、工具箱到数字化软件工厂——DevOps 设计理念与工程实践专场 | CIF 精彩看点

CODING DevOps

DevOps 数字化 研发工具 腾讯云 CIF 峰会

浪潮云洲荣获两项工业自动化及数字化行业年度大奖 inspur浪潮云 昨天

云计算

掘金热榜第一!阿里P8用近十个月整理出来999页Java岗核心笔记限时开源!

Java 架构 面试 程序人生 编程语言

快手、知乎等平台严厉打击“病媛”炒作行为:自媒体行业不能被流量裹挟

石头IT视角

提高工作效率的三种方法

石云升

团队管理 管理 引航计划 内容合集 9月日更

手把手教你使用Studio Lite + Digtal car!助力智能汽车场景、轻应用开发更轻松!

SOA开发者

重磅来袭,虚拟化技术分类

hanaper

不得不聊一聊英语爱好者的单词杂货铺了

小匚

随笔杂谈 生活记录 英语 大学英语四六级 单词

搞不懂云原生

二哥不再迷茫

华为云带你探秘Xtrabackup备份原理和常见问题分析

华为云数据库小助手

GaussDB 华为云数据库 MySQL 数据库 GaussDB(for MySQL)

AlibabaP9力荐!最新出品1297页JDK源码+并发核心原理解析小册

Java 架构 面试 程序人生 编程语言

智能网联汽车行业信息安全现状与威胁

SOA开发者

微服务与安全_语言 & 开发_Jan Stenberg_InfoQ精选文章