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

Linux安全之AIDE系统入侵检测工具安装和使用

一、AIDE 系统入侵检测工具简介

  AIDE,全称为Advanced Intrusion Detection Environment,是一个主要用于检测文件完整性的入侵检测工具。它能够构建一个指定文件的数据库,并使用aide.conf作为其配置文件。AIDE数据库能够保存文件的各种属性,包括权限、索引节点序号、所属用户、所属用户组、文件大小、最后修改时间、创建时间、最后访问时间、增加的大小以及连接数等。此外,AIDE还支持多种算法,如sha1、md5、rmd160、tiger等,以密文形式建立每个文件的校验码或散列号。然而,这个数据库不应保存经常变动的文件信息,例如:日志文件、邮件、/proc文件系统、用户起始目录以及临时目录等。当操作系统被入侵时,可以通过对比基准数据库来获取文档的改变情况。这种方式能够帮助用户快速发现异常情况,从而及时进行应对。博文以centos7环境安装和使用AIDE为例进行介绍,环境说明:

  • 操作系统:centos7.6
  • aide版本:0.15.1

二、AIDE安装及使用示例

1、yum安装aide

  aide工具

[root@s166 ~]# yum install -y aide
Running transaction
正在安装 : aide-0.15.1-13.el7_9.1.x86_64 1/1
验证中 : aide-0.15.1-13.el7_9.1.x86_64 1/1

已安装:
aide.x86_64 0:0.15.1-13.el7_9.1

完毕!

2、检查aide.conf配置文件

  AIDE作为入侵检测工具,本质上是一个文件完整性校验工具,可以监测和校验配置文件指定的重要文件的完整性,通过MD5、SHA值校验文档是否被更新修改,如果发生变动则通过检测后确认是管理者主动修改还是入侵者执行的改动。

[root@s166 ~]# cat /etc/aide.conf |grep -Ev “^#|^$”
@@define DBDIR /var/lib/aide
@@define LOGDIR /var/log/aide
database=file:@@{DBDIR}/aide.db.gz
database_out=file:@@{DBDIR}/aide.db.new.gz
gzip_dbout=yes
verbose=5
report_url=file:@@{LOGDIR}/aide.log
report_url=stdout
FIPSR = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256
ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger
EVERYTHING = R+ALLXTRAHASHES
NORMAL = sha256
DIR = p+i+n+u+g+acl+selinux+xattrs
PERMS = p+u+g+acl+selinux+xattrs
STATIC = p+u+g+acl+selinux+xattrs+i+n+b+c+ftype
LOG = p+u+g+n+acl+selinux+ftype
CONTENT = sha256+ftype
CONTENT_EX = sha256+ftype+p+u+g+n+acl+selinux+xattrs
DATAONLY = p+n+u+g+s+acl+selinux+xattrs+sha256
/boot/ CONTENT_EX
/bin/ CONTENT_EX

/etc/hosts$ CONTENT_EX
/etc/host.conf$ CONTENT_EX

3、初始化配置数据库

  为了获得系统入侵检测的初始数据,我们需要先对aide数据库进行初始化,使用i参数完成数据库初始化,初始化生成的文件为aide.db.new.gz。使用-i或者–init初始化数据库。

[root@s166 ~]# aide -i

AIDE, version 0.15.1
### AIDE database at /var/lib/aide/aide.db.new.gz initialized.

4、检测配置数据库

  使用-C或者–check参数检查数据库。

[root@s166 aide]# aide --check

5、检测并更新配置数据库

  更新数据库实际上是先检查然后更新,即先检查文件变化,然后更新输出到新的数据库文件。

[root@s166 aide]# aide --update

6、对比配置数据库

  比较数据库配置文件需要在配置文件中指定database和database_new参数。比较结果跟update和check是一样的。

[root@s166 aide]# aide --compare

三、AIDE入侵检测使用简介

  AIDE入侵检测工具的本质就是配置文件中指定文件的哈希值存储到数据库文件中,在进行检测的时候进行再次计算并对比。只能发现有区别,并不能告知区别明细。所以我们需要提前将待监控的文件进行备份,在发现文件有改动更新之后进行对比,以便修复还原。监控策略中包含权限、文件类型、ACL、时间属性等,所以我们检测的内容不仅仅是文件大小的变化,实际上也包括文件属性的相关参数。

1、修改hosts文件测试AIDE

  • 修改/etc/hosts文件

[root@s166 ~]# echo “192.168.0.1 gw” >> /etc/hosts
[root@s166 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.166 s166
192.168.0.167 s167
192.168.0.168 s168
192.168.0.1 gw

  • 重命名数据库初始化文件

[root@s166 aide]# mv aide.db.new.gz aide.db.gz

  • 执行aide数据库检查

[root@s166 aide]# aide --check
Entry /etc/hosts in databases has different attributes: b4020081d a4020081d

在这里插入图片描述

2、增加一个用户测试比较配置数据库

  • 修改配置文件指定数据库文件存储路径参数

[root@s166 aide]# cat /etc/aide.conf |grep database

database=file:@@{DBDIR}/aide.db.gz
database_new=file:///var/lib/aide/aide.db.new
database_out=file:///var/lib/aide/aide.db.new

  • 增加一个用户

[root@s166 aide]# useradd test

  • 执行配置数据库更新

[root@s166 aide]# aide --update
在这里插入图片描述

  • 执行数据库对比
    在这里插入图片描述

3、监控指定配置文件

  • 编写一个针对指定文件监控的配置文件,我可以复制aide.conf文件,删除后面监控文件内容,加入/home/test/a.conf CONTENT_EX这一行就是我们需要监控的配置文件及监控策略。测试后可以发现如果是初始化默认aide.conf配置文件还是需要一些时间的,如果我们初始化自定义配置文件很快,因为我们只自定义监控了1个文件,而默认包含上百个文件。

[root@s166 aide]# cat aidetest.conf |grep -Ev “^$|^#”
@@define DBDIR /var/lib/aide
@@define LOGDIR /var/log/aide
database=file:@@{DBDIR}/aide.db.gz
database_out=file:@@{DBDIR}/aide.db.new.gz
database_new=file:@@{DBDIR}/aide.db.new.gz
gzip_dbout=yes
verbose=5
report_url=file:@@{LOGDIR}/aide.log
report_url=stdout
FIPSR = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256
ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger
EVERYTHING = R+ALLXTRAHASHES
NORMAL = sha256
DIR = p+i+n+u+g+acl+selinux+xattrs
PERMS = p+u+g+acl+selinux+xattrs
STATIC = p+u+g+acl+selinux+xattrs+i+n+b+c+ftype
LOG = p+u+g+n+acl+selinux+ftype
CONTENT = sha256+ftype
CONTENT_EX = sha256+ftype+p+u+g+n+acl+selinux+xattrs
DATAONLY = p+n+u+g+s+acl+selinux+xattrs+sha256
/home/test/a.conf CONTENT_EX

  • 创建一个空配置文件

[root@s166 test]# touch a.conf

  • 初始化配置数据库

[root@s166 aide]# aide -c aidetest.conf -i
[root@s166 aide]# mv aide.db.new.gz aide.db.gz

  • 更新a.conf文件

[root@s166 test]# echo “This is a change” >> a.conf

  • 检查配置文件是否改动

[root@s166 aide]# aide -c aidetest.conf -C
在这里插入图片描述

  • 修改问权限

[root@s166 test]# chmod -x a.conf

  • 检查配置数据库

[root@s166 aide]# aide -c aidetest.conf -C
在这里插入图片描述

  • 将检查结果写入文件

[root@s166 aide]# aide -c aidetest.conf -C -r file:/tmp/report
#我们可以将检查结果写入文件,这样我们就可以结合定时任务,定期执行检查,通过邮件见结果报告发送到管理者邮箱实现指定配置文件的监控。如果检查结果提示“### All files match AIDE database. Looks okay!”则表示配置文件没有改动,如果包含其他哈希内容则表示文档有改动。

四、常用文件及策略参数说明

1、常用文件说明

  • /etc/aide.conf 服务默认配置文件
  • /var/lib/aide.db.gz 默认aide数据库
  • /var/lib/aide.db.new.gz 默认aide输出数据库

2、策略参数说明

  配置文件中DIR = p+i+n+u+g+acl+selinux+xattrs类似这样的参数配置均为定义的检查策略,配置中默认定义了目录、静态文件、日志等文件类型的检测策略,各参数说明如下,我们参照选择即可。

策略参数参数说明
p启用文件属性检查,包括权限、所有者和组。
u启用用户ID和组ID检查。
g启用组ID检查。
acl启用访问控制列表(ACL)检查。
selinux启用SELinux上下文检查。
xattrs启用扩展属性检查。
i启用索引节点检查。
n启用设备号和节点号检查。
b启用块大小检查。
c启用字符集检查。
ftype启用文件类型检查。
s启用大小检查,包括文件大小和目录大小。
m启用修改时间检查,包括文件修改时间和目录修改时间。

相关文章:

Linux安全之AIDE系统入侵检测工具安装和使用

一、AIDE 系统入侵检测工具简介 AIDE,全称为Advanced Intrusion Detection Environment,是一个主要用于检测文件完整性的入侵检测工具。它能够构建一个指定文件的数据库,并使用aide.conf作为其配置文件。AIDE数据库能够保存文件的各种属性&am…...

【Flink】状态管理

目录 1、状态概述 1.1 无状态算子 1.2 有状态算子 2、状态分类 ​编辑 2.1 算子状态 2.1.1 列表状态(ListState) 2.1.2 联合列表状态(UnionListState) 2.1.3 广播状态(BroadcastState) 2.2 按键分…...

《微信小程序开发从入门到实战》学习二十八

3.4 开发参与投票页面 3.4.3 使用radio单项选择器组件 逻辑层的数据已经准备好,现在实现视图层的页面展示。 投票的标题、,描述、截止日期、是否匿名等信息通过view和text组件就可以展示。比较特别的是投票选项的展示,涉及到单选还是多选&…...

2824. 统计和小于目标的下标对数目 : 详解 “左找右“ “右找左“ 两种方式

题目描述 这是 LeetCode 上的 「2824. 统计和小于目标的下标对数目」 &#xff0c;难度为 「简单」。 Tag : 「排序」、「二分」、「双指针」 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target&#xff0c;请你返回满足 0 < i < j < n 且 nums[i] n…...

windows电脑定时开关机设置

设置流程 右击【此电脑】>【管理】 【任务计划程序】>【创建基本任务】 gina 命令 查看 已经添加的定时任务从哪看&#xff1f;这里&#xff1a; 往下滑啦&#xff0c;看你刚才添加的任务&#xff1a;...

微信小程序取消自定义默认标题

微信小程序取消自定义默认标题 在单独页面index.json中添加 "navigationStyle":"custom"即可 注&#xff1a;仅记录开发查找&#xff01;&#xff01;&#xff01;...

Vue3鼠标拖拽生成区域块并选中元素

Vue3鼠标拖拽生成区域块并选中元素&#xff0c;选中的元素则背景高亮(或者其它逻辑)。 <script setup> import { ref } from vue// 区域ref const regionRef ref(null)// 内容ref const itemRefs ref(null)// 是否开启绘画区域 const enable ref(false)// 鼠标开始位置…...

[深度理解] 重启 Splunk Search Head Cluster

1: 背景: 关于释放Splunk search head 的job 运行压力:splunk search head cluster 要重启的话,怎么办? 答案是:splunk rolling-restart shcluster-members Initiate a rolling restart from the command line Invoke the splunk rolling-restart command from any me…...

Python + Docker 还是 Rust + WebAssembly?

在不断发展的技术世界中&#xff0c;由大语言模型驱动的应用程序&#xff0c;通常被称为“LLM 应用”&#xff0c;已成为各种行业技术创新背后的驱动力。随着这些应用程序的普及&#xff0c;用户需求的大量涌入对底层基础设施的性能、安全性和可靠性提出了新的挑战。 Python 和…...

[汇编实操]DOSBox工具: unable to open input file: 文件名.asm问题解决

出错原因1 &#xff1a;将文件放在debug文件下&#xff0c;mount后发现并没有该文件 解决方案 &#xff1a;重启DOSBox&#xff0c;重新mount&#xff0c;直到dir后可以看到该asm文件 出错原因2&#xff1a;DOS系统不支持8位以上的文件名 解决方案 &#xff1a;将文件名改为8…...

Windows安装MongoDB

1、下载MongoDB的zip&#xff0c;解压 2、创建目录 mkdir D:\JavaSoftware\Database\MongoDB\mongodb-win32-x86_64-windows-5.0.8\data\db mkdir D:\JavaSoftware\Database\MongoDB\mongodb-win32-x86_64-windows-5.0.8\data\log 3、创建一个配置文件mongod.cfg&#xff0c…...

HandBrake 1.7 近日发布

导读HandBrake 1.7 近日发布&#xff0c;作为这个开源、免费和跨平台视频转码器应用程序的重大更新&#xff0c;适用于 GNU/Linux、macOS 和 Windows 系统。 在 HandBrake 1.6 发布近一年后&#xff0c;HandBrake 1.7 版本为 Linux 用户提供了许多好处&#xff0c;包括视频摘要…...

Vue3的watch使用介绍及场景

目录 一、watch的使用 1. 监听一个变量 2. 监听一个对象的属性 3. 监听一个函数的返回值 二、watch的使用场景 1. 监听表单的变化 2. 监听路由参数的变化 3. 监听Vuex中的数据变化 三、watch的效果图 四、watch的示例 以上就是Vue3的watch的介绍&#xff0c;watch是…...

Java设计原则和设计模式

目录 第一部分&#xff1a;设计原则 单一职责原则 (Single Responsibility Principle)开闭原则 (Open-Closed Principle)里氏替换原则 (Liskov Substitution Principle)接口隔离原则 (Interface Segregation Principle)依赖倒置原则 (Dependency Inversion Principle)合成/聚…...

webshell之基于框架免杀

thinkphp array_map_recursive函数 array_map_recursive函数分析 这里存在一个call_user_func命令执行函数 免杀效果 B函数 免杀效果 B函数分析 exec函数分析 在exec函数用存在有个类调用&#xff0c;且所有的参数都可控 smarty_php_tag函数 免杀效果 smarty_php_tag函数分析…...

QT QJsonObject 插入 QByteArray十六进制数据

场景描述 有一组十六进制数使用QByteArray进行存储&#xff1b;需要将其插入QJsonObject&#xff0c;然后通过网络发送出去&#xff1b;接收到后&#xff0c;再转换回QByteArray&#xff1b; 操作代码 1. QByteArray转换QString插入QJsonObject QString str ""; …...

概要设计文档案例分享

1引言 1.1编写目的 1.2项目背景 1.3参考资料 2系统总体设计 2.1整体架构 2.2整体功能架构 2.3整体技术架构 2.4运行环境设计 2.5设计目标 3系统功能模块设计 3.1个人办公 4性能设计 4.1响应时间 4.2并发用户数 5接口设计 5.1接口设计原则 5.2接口实现方式 6运行设计 6.1运行模块…...

微服务qiankun通信方式

qiankun&#xff1a; 是一种类似于微服务的架构&#xff0c;是将一个大型应用拆分成若干个更小、更简单&#xff0c;可以独立开发、测试和部署的子应用&#xff0c;然后由一个基座应用根据路由进行应用切换&#xff0c;主要是为了解决大型工程在变更、维护、扩展等方面的困难而…...

【Azure 架构师学习笔记】-Azure Storage Account(7)- 权限控制

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Storage Account】系列。 接上文 【Azure 架构师学习笔记】-Azure Storage Account&#xff08;6&#xff09;- File Layer 前言 存储帐户作为其中一个数据终端存储&#xff0c;对安全性的要求非常高&#xff0c;不管…...

听GPT 讲Rust源代码--src/tools(2)

题图来自AI生成 File: rust/src/tools/rust-installer/src/util.rs 在Rust源代码中&#xff0c;rust/src/tools/rust-installer/src/util.rs文件是安装程序的一个辅助文件&#xff0c;它提供了一些实用函数和结构体来处理安装过程中需要的一些操作。 这个文件中定义了几个结构体…...

3个高效场景下VideoDownloadHelper视频下载助手的专业应用指南

3个高效场景下VideoDownloadHelper视频下载助手的专业应用指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 还在为无法保存网络教学视频而…...

3分钟解锁微信网页版:浏览器插件让你轻松访问网页微信

3分钟解锁微信网页版&#xff1a;浏览器插件让你轻松访问网页微信 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 还在为微信网页版无法登录而烦恼吗&…...

LFM2.5-VL-1.6B书法教学:字帖图识别+笔画分析+临摹建议生成

LFM2.5-VL-1.6B书法教学&#xff1a;字帖图识别笔画分析临摹建议生成 1. 项目概述 LFM2.5-VL-1.6B是Liquid AI发布的一款轻量级多模态模型&#xff0c;专为端侧和边缘设备设计。这款模型结合了1.2B参数的语言模型和约400M参数的视觉模型&#xff0c;总参数量为1.6B&#xff0…...

别再瞎猜性能了!手把手教你用Google Benchmark给C++代码做“体检”(附完整CMake配置)

别再瞎猜性能了&#xff01;手把手教你用Google Benchmark给C代码做“体检” 每次提交代码前&#xff0c;你是否会对着两段功能相似的代码犹豫不决&#xff1f;当同事质疑"这个优化真的有效吗"时&#xff0c;你是否只能支支吾吾地说"应该会快一点吧"&#…...

告别平台限制:三步解锁网易云音乐加密文件的自由播放体验

告别平台限制&#xff1a;三步解锁网易云音乐加密文件的自由播放体验 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经在网易云音乐下载了心爱的歌曲&#xff0c;却发现在手机、车载音响或其他播放器上无法播放&#xff1f…...

Qwen3.5-4B-Claude-Opus Web镜像教程:跨域配置与前端集成方案

Qwen3.5-4B-Claude-Opus Web镜像教程&#xff1a;跨域配置与前端集成方案 1. 模型与镜像概述 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF 是基于 Qwen3.5-4B 的推理蒸馏模型&#xff0c;特别强化了结构化分析、分步骤回答以及代码与逻辑类问题的处理能力。该版本以…...

小红书数据采集终极指南:3个高级技巧破解反爬机制

小红书数据采集终极指南&#xff1a;3个高级技巧破解反爬机制 【免费下载链接】xhs 基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/ 项目地址: https://gitcode.com/gh_mirrors/xh/xhs 在当今社交媒体数据成为商业决策关键的时代&#xff0c;小红书…...

边缘AI模型部署实战:telanflow/mps框架解析与性能优化

1. 项目概述与核心价值 最近在折腾一些边缘计算和物联网项目时&#xff0c;经常遇到一个头疼的问题&#xff1a;如何在资源受限的设备上高效地运行那些动辄几百兆甚至上G的AI模型&#xff1f;无论是树莓派、Jetson Nano&#xff0c;还是其他一些嵌入式开发板&#xff0c;直接部…...

Intv_ai_mk11模型微调入门:使用自有数据提升垂直领域表现

Intv_ai_mk11模型微调入门&#xff1a;使用自有数据提升垂直领域表现 1. 为什么需要微调大模型 你可能已经用过一些现成的大模型&#xff0c;比如ChatGPT或者Claude&#xff0c;它们能处理各种通用问题。但当你想让模型在特定领域&#xff08;比如法律咨询或医疗问答&#xf…...

YOLO11涨点优化:卷积优化 | 引入AKConv (Alternating Kernel Convolution),针对不规则形状目标实现降维打击

导语 在计算机视觉领域,每一年技术迭代都像一次“军备竞赛”——从YOLOv8到YOLO11,再到YOLO26,模型们在精度、速度和参数量之间反复博弈。然而,一个困扰检测任务的难题始终横亘在前:不规则形状目标如何被精准感知? 无论是自动驾驶场景中姿态多变的行人、农业场景中形态各…...