专栏首页黑白安全干货 | Linux系统行为新型实时监控技术

干货 | Linux系统行为新型实时监控技术

作者:王建荣

       万物互联和大数据技术的发展,让我们的生活更加活色生香,其背后离不开安全、稳定可靠的服务器系统。

为了保障服务器系统资源能被用户正常使用,避免被恶意行为劫持,我们需要记录服务器系统资源的使用情况、系统行为事件信息和I/O流量等信息,为服务器系统的运维和安全保障工作提供可靠的数据支撑。

这里我们主要是从系统日常行为安全的角度分享一种能满足线上部署、能够将进程或文件创建、网络连接、网络I/O、文件I/O、shell操作、数据库操作、telnet操作、http访问、系统调用(syscall)和系统资源信息等系统相关的行为信息实时采集和存储的Linux行为监控技术。

传统监控技术

现有系统行为监控的实现技术主要采用的是以下方法:

1、Linux Kprobes调试技术

Kprobes调试技术是一种专为Linux内核跟踪和调试而设计的特定API。Kprobes允许内核开发人员为任何内核指令以及函数入口和函数返回处理程序安装预处理程序和后处理程序,这些处理程序可以访问并更改寄存器。这样一来,内核开发者们就可以监控系统调用相关工作流程并簿记。利用Kprobes技术,内核开发人员可以在内核的绝大多数指定函数中动态地插入探测点来收集所需的调试状态信息;关于“调用了哪些系统”、“系统何时被调用”、“执行是否正确以及函数的入参和返回值是什么”等疑惑都可以轻松解决。此外,还能将这些信息屏幕输出或转储日志文件。

2、Linux内核的tracepoints(跟踪点)技术

内核的tracepoint是一种轻量级的hooks技术,使用高效的系统调用行为跟踪及相关性能计算,对系统本身的性能只有微小的时间损失和空间损失。通过注册syscall_enter_probe等定制的probe函数,在发生系统调用相关行为后,内核找到probe函数,并将参数等信息传递给probe函数。只要将probe函数中记录的相关行为信息输出,即可达到监控目的。

在现有的Linux系统行为监控工具中,采用Linux Kprobes调试技术、Linux内核的tracepoints(跟踪点)技术的工具有:strace、ftrace、tcpdump、lsof、htop、iftop、systemTap、perf……

以上的工具通常只能作为日常内核开发调试或日常运维分析工具来使用,主要用于开发调试或问题定位等简单的信息输出。然而,这些工具存在一些使用缺陷,可以总结为以下几点:

1、仅适用于内核开发人员调试使用或是运维人员在现场开启使用,各工具特点不一,难以满足系统全面监控的需求。

2、没有提供行为数据的良好存储能力,只提供简单的输出或是日志存储。由于没有数据缓存功能,容易造成行为数据的丢包,不能很好地支撑事后数据回放或分析。

3、不能进行线上运行的实时部署,只能在事后或事中开启,无法满足运维或安全监控的自动化要求。在高吞吐、高并发的服务器上,增加了服务器运行的负担。

新型实时监控缓存技术方案

针对现有技术无法满足线上实时部署、影响服务器性能、行为数据不具备良好的存储和缓存功能等缺陷,我们给大家分享一种具备实时监控和缓存功能的技术方案。

该方案主要是采用分层结构的模型进行架构的,具体分为内核probe层、基于内存映射mmap技术的buffer层、基于本地数据库的用户态缓存层。具体结构如下图:

业务流程描述

下面通过一个具体的系统行为事件信息采集-缓存的例子,来说明这三层之间的业务流关系:

首先,当用户发起网络连接服务主机操作,在服务主机系统中将发生socket accpet系统调用中断,服务进程陷入内核态,进入系统调用例程。

其次,通过Linux内核tracepoints机制,内核查找系统调用tracepoint的probe函数;此时,内核查到已经挂载的内核probe层的probe函数,并将相应accpet系统调用参数信息传入probe函数。

接下来,内核probe层的probe函数将传来的系统调用相关信息进行分类、序列化处理后,将相关参数信息转化为系统行为事件信息写入mmap buffer层。

最后,用户态缓存层进程通过mmap映射技术,从mmap buffer层读取具体的系统行为事件信息,将系统行为事件信息再次格式化为易于阅读和分析的字符串信息,并选择一种本地或分布式的缓存技术,持久化存储系统行为事件信息。

通过上述业务流程的分析,可以概括出上述三层主体功能分别为:内核probe层采集系统调用信息、mmap buffer层转化系统行为事件信息、用户态缓存层持久化系统行为事件信息。如下图所示:

技术亮点

通过上文的概述,本方案与目前现有工具或方案的主要区别在于本方案体现了以下两方面:实时性、缓存持久化。

1.实时性

“实时性”就是指系统操作行为(系统调用)信息能够实时感知,“零损耗”地对信息进行采集。

我们知道系统行为信息的采集是由“内核probe层”完成的,在该层中主要也是采用了Linux内核字符设备驱动技术+Linux tracepoints机制。通过开发Linux内核字符设备驱动来驱动probe模块,在probe模块中挂载tracepoint函数,采集各系统调用的相关信息。

为了实现系统调用信息从内核probe层到用户态缓存层的“Zero copy”高效传递,在probe层与用户态缓存层采用了Linux内核驱动与用户态进程实现地址共享的mmap buffer 技术方案。

2.缓存持久化

经过内核probe层采集的系统行为事件信息存放在mmap buffer层中,为了实时高效地将这些事件信息持久化存储,本方案采用了一种开源高效的本地文件数据库引擎,该引擎占用资源少、无需安装和管理配置、数据吞吐率每秒可达上万条记录。这样轻型的持久化模块,可以通过“零损耗”的方式部署到线上服务器,而不占用服务器资源。

从mmap buffer层中读取到系统行为事件信息,在用户态缓存层还可以根据具体业务的要求,做一些数据处理分析,如格式化、过滤等。最终存放到文件数据库中,从而实现系统行为事件信息的持久化缓存。具体流程如图:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 8月腾讯云容器产品技术月报|留言抢腾讯定制T恤

    ? 2021年8月 ? ? VOL:16 ? ? ? ? 腾小云告诉你最前线的产品新特性 总有一款让你心动~ ? 云说新品 ? 容器产品新特性 8月上新 ? ...

    腾讯云原生
  • Linux 下 4 种实时监控日志文件的方法,总有一种适合你

    在 Linux 下如何才能实时查看日志内容呢?有很多工具可以帮助我们在文件持续修改的同时输出文件内容,最常用的莫过于 tail 命令 了。

    用户1516716
  • 大牛书单 | 系统架构方向好书推荐

    导语:读书是一生的功课,技术人通过读书实现自我提升,学习优秀技术沉淀。TEG书知道本期特邀腾讯TEG架构平台部专家工程师高向冉、腾讯TEG架构平台部高级工程师黄...

    腾讯技术工程官方号
  • 容器进化史

    和虚拟机一样,容器技术也是一种资源隔离的虚拟化技术。我们追溯它的历史,会发现它的技术雏形早已有之。 容器简史 容器概念始于 1979 年提出的 UNIX chr...

    猿大白
  • 黑无止境 2015KCon黑客大会顺利召开

    大数据文摘
  • 大数据和云计算技术周报(第59期)

    “大数据” 三个字其实是个marketing语言,从技术角度看,包含范围很广,计算、存储、网络都涉及,知识点广、学习难度高。

    大数据和云计算技术
  • Android和Linux应用综合对比分析

    原文地址:http://www.cnblogs.com/beer/p/3325242.html 免责声明:     当时写完这篇调查报告,给同事看了后,他觉得...

    用户1170933
  • 容器生态系统

    说起生态,不禁让人想起贾跃亭的乐视,想当初我多次被它的生态布局给震撼到,一度相信它将要超越百度,坐拥互联网三大江山的宝座,但没过时日,各种劲爆的新闻就把它推到了...

    猿大白
  • 2017 全球移动技术大会

    导语 6月9日-10日,“2017年全球移动技术大会(GMTC)”在北京举行。会议为期两天,面向移动开发、前端、AI技术人员,聚焦前沿技术及实践经验,打造技术人...

    腾讯技术工程官方号
  • 玩转电商系统:深入剖析智慧电商平台

    因为本人最近几年都在从事电商相关的工作,因此购买了这本书,主要是想了解大型的电商系统应该包括哪些组成部分,以弥补自身知识的不足。

    张子阳
  • 打造SuperEdge开源边缘云生态,促进边缘计算发展

    ? 本文由腾讯云资深云架构师“陈一苇”在【全球边缘计算大会 · 深圳站】的大会上,关于 “打造SuperEdge开源边缘云生态” 主题演讲整理而成。 讲师...

    腾讯云原生
  • 大佬是怎么思考设计MySQL优化方案的?

    在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已。

    搜云库
  • 3月容器产品技术月报|留言抢定制款T恤

    ? 2021年3月 ? ? VOL:11 ? ? ? ? 腾小云告诉你最前线的产品新特性, 总有一款让你心动~ ? 云说新品 ? 容器产品新特性 3月上新 ?...

    腾讯云原生
  • 1分钟链圈 | 越来越多律师接受加密货币付费,称“没有选择余地”;日本将在3月份推出虚拟货币自动兑换机,方便虚拟货币兑换成日元

    区块链大本营
  • docker容器入门最佳教程

    容器技术是继大数据和云计算之后又一炙手可热的技术,而且未来相当一段时间内都会非常流行。

    sunsky
  • 转发有礼 | 50篇+云原生系列干货文章汇总,请查收!

    云原生技术干货文章合集,来咯~ ? 2020 年,要说咱们技术圈子里什么最火? 云原生肯定是那 NO.1 ? 截止目前,我们不难看出,K8s 容器、服务...

    腾讯云原生
  • 长连接网关技术专题(五):喜马拉雅自研亿级API网关技术实践

    网关是一个比较成熟的产品,基本上各大互联网公司都会有网关这个中间件,来解决一些公有业务的上浮,而且能快速的更新迭代。如果没有网关,要更新一个公有特性,就要推动所...

    JackJiang
  • 深度 | 劳斯莱斯的野心:远洋无人船以及背后的黑科技

    午夜时分,北大西洋。 一艘巨大的集装箱货船收到最新的天气预报:风暴就在前方。为了摆脱糟糕的天气,确保及时到达目的地,巨轮静静地改变了航向和航速,并把修正后的航线...

    量子位
  • 5月月报 | TKE 容器给大小儿童发礼物啦~

    ? 2021年5月 ? ? VOL:13 ? ? ? ? 腾小云告诉你最前线的产品新特性, 总有一款让你心动~ ? 云说新品 ? 容器产品新特性 5月上新 ?...

    腾讯云原生

扫码关注云+社区

领取腾讯云代金券