您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 网络/安全 > 正文

如何加固基于云端凭据的身份认证

发表于:2022-01-17 作者:陈峻 来源:51cto

如今,云服务已是无处不在了。从商业角度来看,任何希望得到快速发展的公司,都会选择通过其首选的云服务提供商,来获取计算、网络和存储资源,以加持他们的产品。不可否认,云服务正在以指数级的速度简化着他们的开发和自动化过程。而人工智能(AI)和物联网(IoT)等新兴技术,也在助推着这些过程的转化。

然而,应用架构在得益于云服务所提供的效率、灵活性和成本收益的同时,也暴露出了安全上的薄弱环节。不同程度及类型的数据和信息泄露事件,屡屡登上新闻头条。总的说来,如下三个因素是导致大多数攻击者有可乘之机的安全漏洞与隐患:

  1. 用于身份验证(verification)和认证(authentication)的集中式云原生模型
  2. 存在着根本性缺陷的数据安全与隐私架构
  3. 云原生解决方案的复杂性,以及主动性安全措施内在固有的缺陷

本文将专注于讨论上述第一类漏洞的基础上,提供基本的解决思路与方法。

现有弱密码认证机制存在的问题

基于凭据的身份验证(即:用户名和密码的方式)是导致目前80%以上数据泄露的根源。然而,大多数最终用户仍然会通过这种简单方便方式,去访问​​他们的网站和应用。更糟糕的是,许多DevOps和云服务工程师并未对其敏感的云端生产环境引起足够重视。目前,诸如GitHub之类越来越多的网站,都已意识到了此类威胁,并在逐渐弃用基于密码的身份验证方式。

来自云端的威胁

如前所述,虽然云服务的好处主要体现在灵活性、可扩展性、以及分布式访问上,但是将数据湖、数据库、以及IAM(身份访问管理)等服务集中到一处,只会造成安全组件的简单堆砌,甚至相互影响。因此,任何安全工程师都应该清楚,由于体量的原因,集中在庞大的、基于云的数据湖里的数据和服务,都是网络黑客宁可铤而走险,也要攻击并获取的丰厚资源,他们需要通过合理的规划,来提高整体安全态势。具体而言,当前的身份与密码验证方案存在着如下三类漏洞:

  1. 对于那些依赖用户凭据实施访问控制的云端数据库而言,由于它们在同一处聚合了各种关于用户身份、活动、历史等数据,因此天然地形成了单点隐患。
  2. 严重依赖用户识别和授权,而忽略了用于执行此类操作的手段。例如,短信和电子邮件,是攻击者两个极易得手的渠道。
  3. 最终用户的体验度与合规性之间的摩擦。毕竟硬件令牌的使用,以及仅包含短信的SFA(单因素认证)等方式,看似方便了用户,但是在一些安全等级要求较高的场合,显然是不合规的。

此外,就攻击本身而言,它们既可以来自任何地方、任何设备、以及任何水平的黑客(或为业余爱好者、或为老练的专业人士),又可以源于僵尸主机、恶意软件、勒索软件,甚至是AI软件。此类攻击通常能够比负责监控的安全组件,提前一步得手。

我们应该如何应对?

秉承着迎难而上的思想,我们下面来讨论如何基于简单的设计和网络安全构建,去消减云端威胁的攻击面。

1. 使用加密密钥而非凭据来强化访问认证

使用AES的256位强加密方式,来有效地防止身份凭据在被盗的情况下,暴露敏感的信息资源。

2. 将加密访问绑定到设备,再将设备绑定给用户

我们可以通过两个简单的步骤来保障设备的安全。

  • 将密钥绑定到设备。我们可以使用包括可信平台模块(Trusted Platform Module,TPM)在内的多种方法,将加密密钥的使用,唯一性地限制在对于相应设备的构建和授权环节。
  • 将设备与经过身份验证的用户相绑定。在上一步确认了设备的真实性的基础上,我们可以为设备添加有权使用或控制的唯一性身份角色,及其验证方法。

3. 将MFA(多因素身份验证)去中心化,并绑定到设备上

如今,所有的MFA都会最终依赖于基于云端的数据库和服务器,并且需要由一个信任链(Chain of Trust)来执行。为了让云服务能够完全脱离单点管控,我们可以将MFA分散开来,并分发给绑定到设备的用户侧,进而消除所谓中心节点的角色。

可见,上述三步不但极大地增强了访问过程中的安全性,而且减少了与最终用户的潜在“摩擦”、以及IT人员的支持开销。就MFA而言,其首要因素是:您“知道”什么。这主要体现在通过登录环节的常规密码输入、一次性口令、消息推送、以及硬件令牌等,对设备予以身份验证。更重要的是,我们应该利用基于加密设备的验证方式,去提供另两个强大的因素,进而确保身份的合法性:

  • 您“拥有”什么?——拥有AES的256位私钥。
  • 您“是”谁?——利用生物识别技术将基于云端与设备的活动监控相结合。

4. 持续使用零信任

上三步足以给绝大多数身份验证用例与需求,带来安全与隐私保护。不过,对于那些严格要求访问人员与身份相对应的场景,我们则需要引入具有“永不信任,持续验证”特性的零信任,来保障终端安全、链路安全、以及访问控制安全。

安全加固的意义

从简单层面来看,上述四招可以直接将云端身份验证和认证的受攻击面大幅减少。从深远角度而言,我们将获得如下三方面的优势:

1. 消减基于凭据的攻击

我们所熟悉的网络钓鱼、身份盗窃和冒用、社会工程等攻击方式,都是基于身份凭据的。如果没有了可窃取的凭据,那么由它所引发的受攻击面将会大幅缩减。

2. 消减基于云端的、系统范围的攻击

根据零信任的管控方式,用户在访问资源的时候,需要一个接一个地持续认证,其访问到的端点设备也会被逐一跟踪。显然,此举抬高了绝大多数黑客攻击云端系统与服务的门槛。

3. 按需升级和执行“人在回路(Human-In-The-Loop)”中的零信任验证

归根结底,如今各种基于云服务的身份验证,都需要依赖软件或端点设备,来验证身份。当您的应用上下文需要对设备或用户,进行实时且重复性的身份验证时,就可以适当地引入知晓该用户身份的授权人员角色,根据预先配置好的自动化软件驱动流程,来流畅地执行身份验证任务。

小结

综上所述,我们与其沿用以前“打地鼠”式的安全补救方式,不如从根本上对易受攻击的、集中式的云原生服务架构进行安全加固。希望上述为您提供的设计与构建方式,能够协助您不断弥补云服务中的现有漏洞,并能持续提高其安全态势。

原文标题:Raising the Bar on Security by Purging Credentials From the Cloud,作者:Gene Allen