AgentSmith HIDS是字节跳动开源的HIDS,采用内核驱动方式进行入侵检测,可以检测各种rootkit/bootkit,具有实时,高性能,无感知的优势。

由于它是基于内核,只对2.6.32+内核支持,且rootkit的检测必须要在3.10.0+内核才支持。同时,由于它是监控内核函数的调用,事件和消息,并不提供软件管理,用户管理,系统管理,网络管理之类的基线。

虽然目前总体代码只是2500行左右,但实现功能却非常多,多得作者Will大佬的指点,在撸一把5.12.0内核的代码,才勉强清楚这些检测点的应用场景。感谢Will大佬。Will大佬在内核造诣非常深厚。

附上Will大佬创建的hids群,有兴趣的同学请下载飞书加群。谢谢

公共信息


AgentSmith在检测信息时,这些信息是每个场景都采集的。详情见kprobe_print.h

  1. 当前用户id

  2. 当前进程id

  3. 当前父进程id

  4. 当前进程组id

  5. 任务会话id

  6. 内核线程组id

  7. UTS命名空间节点名称 (对docker之类的支持)

  8. 当前进程执行程序

  9. Audit会话id(没有开启audit,就为0)

原理


AgentSmith是LKM(可加载内核模块)的方式hook住Linux内核一些函数。由于它是使用kprobe的方式,它hook的函数不只是系统调用,还可以hook内核内部一些函数,而这些内部函数是某些系统调用的关键点调用。

Hook


下面按照这样格式列举各个钩子:内核版本:该钩子支持的内核版本 作用:该钩子对应syscall的作用 危害:黑客可以利用相应syscall所造成的危害 实现原理:该钩子的实现方式 不足:该钩子还没有覆盖的情况

mprotect

内核版本:

1.0+

作用

这个系统调用对当前进程内存段设置保护

危害

  1. 恶意软件把当前进程的数据段设置为可执行,从而绕过DEP

  2. 恶意软件把当前进程的代码段设置为可写,从而注入恶意代码

实现原理

mprotect系统调用挂钩,记录任何把进程内存段改为**执行权限(PROT_EXEC)**的操作。记录信息:

  1. 执行程序

  2. 执行程序的进程树

  3. 目标进程

  4. 目标进程所属的程序

  5. 操作

不足

仅处理了执行权限(PROT_EXEC, 没有处理可写权限(PROT_WRITE)

open

内核版本:

1.0+

作用

打开并且有可能创建新的文件或设备

危害

恶意软件隐藏自身文件, 躲避检测

实现原理

open系统调用挂钩,记录程序打开文件操作,记录信息:

  1. 执行程序

  2. 文件

  3. 打开标志

  4. 打开模式

nanosleep

内核版本:

2.0+

作用

进程休眠一定时间再执行,高精度的休眠

危害

恶意软件hook nanosleep系统调用,可以延迟执行,从而逃避HIDS软件的检测。详情请见https://reyammer.io/publications/2018_oakland_linuxmalware.pdf

实现原理

nanosleep系统调用挂钩,记录程序进程休眠操作,记录信息:

  1. 执行程序

  2. 纳秒

剩余内容请关注本人公众号debugeeker, 链接为最后防线:字节跳动HIDS分析

最后防线:字节跳动HIDS分析相关推荐

  1. 字节跳动pest分析_字节跳动小程序分析:前景及优势都是什么?

    近几年小程序渐渐成为微信.百度.支付宝等巨头的标配,各大互联网巨头纷纷加码小程序,字节跳动自然也不甘落后.字节跳动小程序前景如何呢?我们来做一个详细的字节跳动小程序分析: 1.平台条件 小程序要想做起 ...

  2. 阿里、百度、字节跳动、京东、地平线等计算机视觉实习生面试经历分析,已成功上岸!...

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|AI算法与图像处理 来源:https://www.now ...

  3. 2021年最新总结,腾讯、阿里、美团、百度、字节跳动、京东等技术面试题,以及答案,专家出题人分析汇总。持续更新中。

    阿里篇 华为篇 百度篇 腾讯篇 美团篇 字节跳动篇 滴滴篇 京东篇 MySQL篇 Redis篇 MongoDB篇 Zookeeper篇 Nginx篇 算法篇 内存篇 cpu篇 磁盘篇 网络通信篇 安全 ...

  4. 字节跳动到底为什么能成功?十个公式深层分析 (含底层业务逻辑,及落地方法拆解)

    理解字节跳动业务逻辑的干货好文,建议小伙伴码住,慢慢消化~ 采编作者:NCloud    [转载申请/商务合作入口→N1Cloud(申请备注:1012)] 资料来源:前沿思考论坛系列内容-第七篇 发文 ...

  5. 字节跳动Android三面视频解析:framework+MVP架构+HashMap原理+性能优化+Flutter+源码分析等

    前言 对于字节跳动的二面三面而言,Framework+MVP架构+HashMap原理+性能优化+Flutter+源码分析等问题都成高频问点!然而很多的朋友在面试时却答不上或者答不全!今天在这分享下这些 ...

  6. 阿里、百度、字节跳动、京东、地平线等计算机视觉实习生面试经历分析,已成功上岸!

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 来源:https://www.nowcoder.com/discuss/192224 本文已授权,未经允许,不得二次 ...

  7. SkyNet:字节跳动泛客诉问题挖掘与风险监控中台实践

    背景 随着互联网和智能手机的普及,人们的生活大多时候都离不开移动 App,在信息量与日俱增的大数据时代,用户反馈数据可以帮助发现热点问题.避免安全问题.优化产品体验.提升产品质量等. 简介 SkyNe ...

  8. BERT是图像预训练未来?字节跳动iBOT刷新十几项SOTA,部分指标超MAE

    视学算法发布 机器之心编辑部 这个新方法在十几类任务和数据集上刷新了 SOTA 结果,在一些指标上甚至超过了 MAE. 前段时间,何恺明等人的一篇论文成为了计算机视觉圈的焦点.这篇论文仅用简单的 id ...

  9. AI总监王长虎被曝离职,字节跳动AI Lab 再失一将!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | 琰琰 据Tech星球报道,字节跳动人工智能实验室总监王长虎 ...

最新文章

  1. wifi管理系统_KJ725(A)精确人员定位管理系统实现对井下人员和车辆的精确定位
  2. 听说微软出了个 Windows XP reStart Edition? 重启版?
  3. java程序实验总结_Java Socket 编程实验总结
  4. 节点相似性与链路预测
  5. 面试官给我挖坑:单台服务器并发TCP连接数到底可以有多少 ?
  6. 关于springMVC传参问题
  7. python语句分为复合语句_对Python中for复合语句的使用示例讲解
  8. mysql-server rpm_Mysql rpm包安装
  9. c盘分小了如何扩大c盘,重新分区扩大c盘
  10. 深度生成模型重塑药物研发【Cell子刊综述】
  11. 计算机图形学(十二):真实感图形(光照模型、材质模型)
  12. BusyBox 的配置
  13. c语言中数字字符的ascii码,求教!我想显示数字但是现在显示的却是数字在ASCII码中对应的符...
  14. Windows安装TVM详细教程及报错提示
  15. 虚拟机下载安装Centos7(新手详解)
  16. Windows留后门--教程(三)——Windows服务后门
  17. PyhontPygame 飞船大战外星人 完整代码及资源下载
  18. mongo如何删除数据后相应的删除空间和内存占用
  19. CodeKK源码地址
  20. MobaXterm专业版(含授权)

热门文章

  1. android ping网络连接服务器失败,Android 中网络连接检测和使用ping检测网络是否可访问...
  2. Java零基础P20使用IDEA开发
  3. 教你自定义Windows10微软输入法
  4. 万亿蚂蚁的高光与隐忧
  5. 功能测试是什么?性能测试是什么?两者有什么区别?
  6. 深度融合钉钉PaaS,授客学堂助力企业实现培训数字化
  7. python中char是什么意思_MySQL中char和varchar的区别是什么
  8. Java使用Tomcat服务器打开jsp等文件出现源码的解决办法
  9. vpu测试_611bp上的VPU测试
  10. 电脑重装系统后黑屏怎么解决