VPN杀手。正确远程访问战斗服务器

本文表达的观点是作者的个人观点。他强调说,这可能与他的雇主,上级和安全部门的意见不一致。

就基础架构而言,我们公司最酷的事情之一就是我们如何实现远程访问。这只是超级巨型保护的魔法。我曾与许多安全警卫和审计员交谈,看来我们不小心将商业解决方案和我们的软件混为一谈,创造了一个全新的故事。因此,我认为,深入研究该行业如何使用过时的远程访问解决方案以及我们如何实施它的技术细节将很有趣。

好人VPN不会建议


我首先要声明:所有VPN都是垃圾

可以像配置其他数字技术一样对VPN进行配置,以便如果被黑客入侵,世界将不会终结。但是,没有人这样做……但是从理论上讲,他们可以做到!

在99.95%的情况下,VPN配置为:

  1. 在设备(笔记本电脑或其他服务器)之间创建网桥
  2. ...以及更大的服务器网络(例如,在云中或本地
  3. ...以及受附加加密层保护的互联网



这不是一个好主意。试想一下,如果笔记本电脑上已经感染了病毒,并且您正在通过VPN连接到战斗服务器网络?塔坝!该病毒现在可以通过局域网访问您的产品。什么累死了?悲伤很多悲伤。

好的,假设病毒案例牵强附会。但是,黑客可以利用VPN所运行的设备或软件内部的漏洞来侵入VPN本身的事实又如何呢?那么,您直接进入目标网络了吗?这是一个严重的问题,而且远非理论化。您可以在有关如何使用Heartbleed如何使用攻击媒介捕获VPN的文章中阅读更多信息,我已在我的博客中直接警告了该内容

不久前,全球范围内席卷了VPN漏洞浪潮,网络犯罪分子立即利用这些漏洞来访问目标网络。但这并不奇怪,对吗?这些系统直接“看”到网络中,而前面没有任何其他保护机制。修补程序和补丁程序通常不会自动应用,而是涉及由专有OS上运行的专有软件控制的专有机制。好吧,祝你好运。

很难找到这些VPN设备吗?在写这篇文章之前,我从未尝试过,所以我不确定。Shodan.io中大约半小时-输出的一些主要结果:

  • 汤森路透是一家市值410亿美元的公司,拥有26,000名员工,其中一半来自金融服务业。
  • SAP Concur是一项旅行管理服务,将其破坏将提供大量的各种个人和付款数据。
  • 渐进式保险 -个人数据和个人医疗信息,以及一些付款数据。
  • 雪佛龙菲利普斯化学 -这个名字不言而喻。

好吧,这可能不是很好。如果这些东西很容易找到,那么将它们放在网上似乎不是完美的解决方案。我们还有其他选择吗?

零信任


零信任[字面意思:“零信任”]-本质上,这意味着您授权每个连接,并且不要假设其中的某些连接是可信任的,因为它们已经在您的网络中。如果您想更好地理解这个术语并重新考虑您的业务方法,请阅读Network World上的这篇文章(对不起,另一个无耻的自我PR)。

我们购买了Okta高级服务器访问(OASA)解决方案,以在战斗服务器上引入零信任授权。
OASA很酷的原因有以下三个:

1.这仅仅是在类固醇上配置OpenSSH的包装


在底层,OASA平台是对OpenSSH进行良好管理的部署(控制台中使用相同的ssh命令)。而且OpenSSH是一种经过充分测试和安全的远程管理解决方案。顺便说一句,自2003年以来,OpenSSH就再也没有一个漏洞可以导致标准配置中未经授权的远程访问。
该方案的入口点是常规的Amazon Linux 2 EC2实例,因此,攻击范围非常小。请记住:使用VPN的主要问题之一是专有软件/操作系统配置,它们会阻止自动补丁。能够与其他基础设施一起更新我们的网络入口点是一个巨大的胜利。

2.没有网桥


如上所述,大多数VPN被配置为在网络设备(例如笔记本电脑)和Internet上的服务器网络之间创建网桥。 VPN中我最痛苦的地方之一是它们拦截了您的所有网络流量。您当然可以重新配置为其他行为,但是我们的客户端和NIST 800-53 SC-7(7)安全协议通常只需要这样做

这是一些安全措施远远落后于行业发展的好例子。在过去的世界中,VPN可能是唯一用于加密流量的层。审核员有时认为,如果没有VPN保护,您将通过未加密的通道发送数据。

幸运的是,有更好的方法。在OASA模型中,您与服务器之间分别建立了连接。例如,响应请求“我要登录到EC2实例i-028d62efa6f0b36b5”,您的系统连接到网络的输入点,然后连接到目标服务器。在通过SSO首次验证您的数据之后,OASA还通过发出十分钟的客户端证书来保护这些连接,然后验证您是否位于预期的(和已确认的)受信任设备上。

漫游网络几乎没有自由。管理员可以输入网络入口点并将端口转发到另一个目标,但是默认情况下此功能是禁用的,并且在建立连接时必须明确请求。最好的部分是,没有人要求我通过虚拟私有云传输所有流量,因为这没有被称为“ VPN”。

3.专用网络访问和随机IP


这些网络入口点分别为每个虚拟私有云部署(例如,一个用于生产,一个用于登台,一个用于开发等)。此外,我们的安全解决方案对每个应用程序都进行了严格监控,该应用程序记录所有活动并过滤流量。如果饼干在其中一个入口点之内,那么某些东西也将无法解决。在任何情况下,我们的安全方案都不允许仅仅因为您已经在虚拟私有云中而访问受保护的资源。

我最喜欢的防御机制之一是偶然出现的。刚开始配置入口点时,每个入口点都已从AWS配置为静态IP地址。我们很快发现,这些IP地址有时没有在正确的时间绑定到EC2实例,这可能导致错误的OASA自配置。经历了生产中的十二种不同修复的乐趣之后,我无法忍受,只是删除了有关静态IP的整个故事-并且它起作用了。



OASA只需一个面向Internet的IP;不必事先知道。当客户端准备好建立连接时,将请求唯一的GUID,并借助该GUID来确定IP:

  • 用户:我要登录以连接到vpc-99f2acff
  • OASA客户端应用程序:我已将vpc-99f2acff定义为具有GUID 25af5d4f-e657-4583-b0bd-beb1ca4f0c1f的已知服务器
  • OASA服务器:K 25af5d4f-e657-4583-b0bd-beb1ca4f0c1f可以在3.22.198.24处访问,这是证书
  • OASA客户端应用程序:已安装证书,通过SSH连接到3.22.198.24 ...

这意味着我们入口点基础结构的每个实例(您需要注意单独帖子)都带有一组全新的IP地址。因此,随机黑客将不得不在数千万中寻找一个IP,并且其数量每天都在增长。不幸的是,由于...

企业港口敲门


原则上,没有人在现实世界中使用端口敲击(直译为:敲开端口),但是配置非常有趣。简而言之,端口敲门是对各种封闭的网络端口的“碰撞”序列,如果正确重复该序列,则“真实”端口会打开您的IP。优雅,但在实际的大型项目中不切实际。
这个想法启发了我,并思考了如何改进这个想法。因此,我称之为企业端口敲门的解决方案诞生了

我想创建一种机制,以确保我们的入口点与Internet的亲密性,直到有人能够访问它们为止。该机制应该易于使用,可靠并以现有方式进行身份验证。
我草绘了该机制的架构,并与她一起去了我们非常有才华的工程师团队。几周后,我们开始了。

该服务非常简单,可以部署为AWS Lambda函数,并可以通过AWS API Gateway进行访问(无服务器架构的乐趣!),以便于轻松可靠地使用。该机制的工作原理如下:

  1. 通过SSO成功验证了用户。
  2. 该应用程序绕过已配置的AWS帐户,以搜索经过特殊标记的安全组(防火墙规则的AWS概念)
  3. 该应用程序更新安全组,从而允许访问请求者的IP地址。安全组中的规则还存储添加时间戳。
  4. cron任务在每个指定的时间段清除允许的IP列表。

由于这种情况,我们现在拥有一个远程访问解决方案,该解决方案完全不访问Internet,并且需要在打开防火墙中的端口之前通过我们的用户数据库进行两因素身份验证

而且很简单!


我还没有谈到这些机制的操作有多么简单。我知道有很多组件,但是它们一起创建了一个非常简单的授权:

  1. 通过SSO登录。
  2. 单击SSO门户中的Enterprise Port Knocking启动。
  3. 在终端中,使用SSH命令,将目标指定为目标EC2实例的ID。OASA系统足够智能,可以弄清楚要使用哪个入口点,其他一切都会自动发生!



整个系统对于我们的基础设施,我们遵守所有安全协议以及客户安全都是一个巨大的胜利。用户真的很喜欢连接到我们的服务器有多么容易,因为您不需要进行其他身份验证或记住要使用哪个VPN。我真的很喜欢平静的睡眠。每个人都从新模式中获胜!

好吧,当然除了黑客。


All Articles