使用BPF改善SSH会话的安全审计

最近Teleport 4.2版本中新增加ssh增强的回话记录功能用来接收非结构化的ssh会话,并将其通过结构化事件流来输出。该功能使用到了Linux内核中集成的一项新技术eBPF(简称为BPF)。用来完善Teleport审计功能的不足之处。本文虫虫就给大家介绍Teleport中是如何做的。

背景

Teleport的一个优势就是,可以对ssh会话全程记录。该功能可以捕获用户屏幕上显示的所有内容。之后,可以使用该记录回放还原所有操作,以便于审计。这些记录易于理解,并提供了有关用户在会话过程中所做操作和显示的信息

然而,和其他同类工具一样(堡垒机),Teleport也有不足之处,用户可以使用一些方法绕过会话记录。其中包括:

混淆命令:

比如通过加密或者其他方式对命令予以混淆。比如下面的语句,用base64编码对要执行的命令进行了混淆。

echo Y3VybCBodHRwOi8vd3d3LmV4YW1wbGUuY29tCg== | base64 -d | sh

这样实际的执行命令(curl example.com)不会直接被记录。

Shell脚本:

如果用户通过上传并执行脚本的方式,也不能捕获脚本中运行的命令,只能捕获脚本的输出。

终端控制:

ssh终端可以支持多种控件,比如用户可以禁用终端回显的控件,在一些应用程序通常会使用。例如sudo命令当它们提示用户输入密码时。这是也不能在ssh记录中捕获它们。

此外,由于TTY流是非结构化性质,会话记录在某种程度上可能难以捕获和监视。

技术实现

为了解决安全审计的这些不足,Teleport需要一种能将非结构化ssh会话转换为结构化事件流的方法。这就是本文要说的增强回话记录功能,具体功能展示如下:

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章