入侵检测 - AIDE高级入侵检测平台

news/2024/7/3 13:54:04

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

AIDE(Advanced Intrusion Detection Environment)是一款针对文件和目录进行完整性对比检查的程序,它被开发成Tripwire的一个替代品。

AIDE如何工作

这款工具年纪也不小了,相对来同类工具Tripwire说,它的操作也更加简单。它需要对系统做快照,记录下HASH值,修改时间,以及管理员对文件做的预处理。这个快照可以让管理员建立一个数据库,然后存储到外部设备进行保管。 当管理员想要对系统进行一个完整性检测时,管理员会将之前构建的数据库放置一个当前系统可访问的区域,然后用AIDE将当前系统的状态和数据库进行对比,最后将检测到的当前系统的变更情况报告给管理员。另外,AIDE可以配置为定时运行,利用cron等日程调度技术,每日对系统进行检测报告。 这个系统主要用于运维安全检测,AIDE会向管理员报告系统里所有的恶意更迭情况。 AIDE的特性​

支持消息摘要算法:md5, sha1, rmd160, tiger, crc32, sha256, sha512, whirlpool 支持文件属性:文件类型,文件权限,索引节点,UID,GID,链接名称,文件大小,块大小,链接数量,Mtime,Ctime,Atime 支持Posix ACL,SELinux,XAttrs,扩展文件系统属性 纯文本的配置文件,精简型的数据库 强大的正则表达式,轻松筛选要监视的文件和目录 支持Gzip数据库压缩 独立二进制静态编译的客户端/服务器监控配置

下载地址 http://aide.sourceforge.net

安装配置

yum install aide 

#vi /etc/aide.conf

MyRule = p+u+g
/www MyRule

!/www/uploads/
!/www/cache/
!/www/tmp/

#添加对文件权限、属性的关注;(!)为忽略目录。 #AIDE参数:权限(p)、索引节点(i)、链接数(n)、用户(u)、组(g)、大小(s)、修改时间(m)、创建时间(c)、ACL(acl)、SELinux(selinux)、xattrs(xattr)、SHA256/SHA512校验和(sha256和sha512)。 初始化基础数据库

/usr/sbin/aide -c /etc/aide.conf -i
#初始化数据库

mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz -f
#把当前初始化的数据库作为基础数据库,so 这样就好了

<!--more-->

日常维护 1.重构数据库方法(正常的改动 更新改动到基础数据库)

aide --update
#或者aide -u 

cd /var/lib/aide/ &&mv aide.db.new.gz aide.db.gz -f
#覆盖替换旧的数据库

2.手动安全校验方法

aide --check 

邮件通知

#vi /home/aide.sh

#!/bin/bash
MAILUSER='admin@attacker.club 888888@qq.com'
#定义发送的邮箱
log=/home/report-`date +%Y%m%d`.txt
#定义日志存放路径
 
aide -C --report=file:$log >/dev/nell 2>&1
grep differences $log
#校验对比
 
if [ $? -eq 0 ];then
  cat $log| /bin/mail -s "安全报告 IP:$(ip add |grep global |awk  '{print $2}'|cut -d / -f 1 |grep $(route |grep default |awk  '{print $2}'|cut -d "." -f 1,2)) [$(uname -n)] at $(date +'%b %e %H:%M')" $MAILUSER
aide -u
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz -f
#与基础库对比,有改变则向管理员发送报告,同时更新基础数据库。
fi
 
find /home/ -name "aide-report-*.txt"  -mtime +60 -exec rm -rf {} \;
#删除60天前日志

循环脚本(防止入侵者发现计划任务) #vi /home/defend

#!/bin/bash
while true ;do
/home/aide.sh >/dev/null 2>&1
sleep 7200
done

启动命令​

chmod +x aide.sh
chmod +x defend
nohup ./defend &  >/dev/nell 2>&1
#后台运行

外部邮箱配置 #vi /etc/mail.rc

set from=xxx@163.com
set smtp=smtp.163.com
set smtp-auth-user=xxx@163.com
set smtp-auth-password=xxxxxxx
set smtp-auth=login

#外部邮箱我用的163,qq还有163新账号可能走的ssl会邮件发送不成功,可以试试sendEmail

转载于:https://my.oschina.net/attacker/blog/2246827


http://www.niftyadmin.cn/n/3459257.html

相关文章

C++线程编程-内存顺序

内存顺序模型 有六种内存顺序选项可以应用到原子类型上&#xff0c; memory_order_relaxed;memory_order_consume; memory_order_acquire;memory_order_release;memory_order_acq_rel; memory_order_seq_cst; 它们代表三种模型&#xff1a; 顺序一致 memory_order_seq_cst;获…

看源码,我为什么推荐IDEA?

1.条件断点 看源码的时候,经常遇到这个情况,源码中有个for循环,关键是这个list的size有时候长达数百个.但是我们只想debug一种情况.肥朝就曾经见过,在for循环中打了断点,一直按跳过,按了数十下之后.才找到自己想debug的值.这样效率不高 比如下文这个 1Test2public void testLis…

SQLServer中SYSCOLUMNS表的各个字段的意义

列名 数据类型 描述 name sysname 列名或过程参数的名称。 id int 该列所属的表对象 ID&#xff0c;或与该参数关联的存储过程 ID。 xtype tinyint systypes 中的物理存储类型。 typestat tinyint 仅限内部使用。 xusertype smallint 扩展的用户定义…

C++线程编程-设计基于锁的并发数据结构

序列化 多个线程轮流存取互斥元保护的数据&#xff0c;它们必须线性的而非并发的存取数据。 高并发就意味着&#xff1a;更小的保护区域&#xff0c;更少的序列化&#xff0c;更高的并发潜能。 设计基于锁的并发数据结构关键是要确保存取数据时要锁住正确的互斥元&#xff0c…

SQLServer常用系统存储过程

sp_add_log_file_recover_suspect_lib 当数据库的复原不能完成时,向文件组增加一个日志文件sp_add_targetservergroup 增家指定的服务器组sp_add_targetsvrgrp_member 在指定的目标服务器组增加一个目标服务器sp_addapprole 在数据库里增加一个特殊的应用程…

深入理解Java中的底层阻塞原理及实现

Information Technology Solutions as a Presentation 谈到阻塞&#xff0c;相信大家都不会陌生了。阻塞的应用场景真的多得不要不要的&#xff0c;比如 生产-消费模式&#xff0c;限流统计等等。什么 ArrayBlockingQueue、 LinkedBlockingQueue、DelayQueue 等等&#xff0c;都…

sqlserver 所有系统和用户定义错误消息

下面的示例将查询 sys.messages 目录视图以返回具有英文文本 (1033) 的数据库引擎中所有系统和用户定义错误消息的列表。 language_id1033 英文 language_id1041 日文 language_id2052 中文简体 language_id1028 中文繁体 SELECTmessage_id,language_id,severity,is_event_log…

DDD学习笔记 - 领域、子域和限界上下文

在设计欠佳的软件里&#xff0c;子域和限界上下文(context)很难存在一对一的映射关系。-- 说明设计较好的&#xff0c;子域和限界上下文应该是一对一的映射关系。 在不同的模型中存在名字相同或者相近的对象&#xff0c;但是它们的意思缺不同。当模型被一个显示的边界所包围时&…