长安北大青鸟:如何应对网络微服务的安全问题?2016-11-21 10:01:24

“我们都知道洗手在预防疾病传播上的重要性,但是在面对应用安全问题时,类似的行为却变成了马后炮。我们已经掌握了在开发工作流中加入测试的做法,但是对于安全问题却常假定稍后会有其他的人去解决。”这是 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指出,我们首先要去做的一件事情是如何在一个集中的地点获取对所有日志的访问。这不仅是出于安全方面的考虑,而且是来自应用开发上的考虑。

金码学校热门课程4008-315-776
不知道自己能学什么?
灵活多样的班型,满足你的需求
2020如何逆袭加薪?免费领取专属提升方案!
资深职业规划师免费规划发展路线 名额仅剩:
    电话 姓名
免费咨询热线 : 4008-315-776
学校地址 : 东莞市莞城区莞太路金120号金马大厦3楼
东莞市南城区胜和路金盈大厦C区5楼