随着国家对网络安全的重视,国内各个企业也开始在安全方面增加投入,我们公司也不例外。作为防守方,实时了解主机状态(主机文件是否被修改?是否有被入侵?等等)以及实时获取告警信息,是很重要的。及时反制入侵行为、及时修复系统,将入侵扼杀在摇篮阶段。于是引入了HIDS(主机入侵检测系统),网上关于HIDS的文章比较少、内容也不尽完善,下面是我自己在搭建HIDS时的记录。

常用的主机入侵检测系统

AIDE(Advanced Intrusion Detection Environment):高级入侵检测环境,CIS

OSSEC:开源的、跨平台的主机入侵检测系统,官网:https://www.ossec.net/

等等

OSSEC

功能

1、文件完整性检查即文件篡改检查(syscheck)

2、日志监控

3、rootkit检测

4、主动响应:主动反制,匹配到规则后主动采取措施,如:检测到sshd日志存在多次失败登录后,将登录的源地址加入黑名单。

5、告警:通过配置实现邮件等方式的告警

安装

1、local:本地安装,只在一台设备安装,检测本台设备

2、server-agent:服务+代理模式安装

server安装在一台设备,agent安装在其他设备,agent收集各个设备的信息,然后发送给server,server统一进行分析、告警、主动响应、统一管理各个agent。

# 在server和agent上安装依赖 及 yum 远程库yum install zlib-devel pcre2-devel make gcc zlib-devel pcre2-devel sqlite-devel openssl-devel libevent-devel
yum install mysql-devel
wget -q -O - https://updates.atomicorp.com/installers/atomic | sudo bash
# Server
sudo yum install ossec-hids-server
# Agent
sudo yum install ossec-hids-agent

3、agentless:无代理

和server-agent的方式类似,但是只有server没有agent即不需要在设备上安装agent,server通过ssh去进行监控和扫描各个设备。

本次实践,使用server-agent方式

组件

1、server

# 各个进程
ossec-maild         # 邮件告警
ossec-execd         # 应该是执行主动响应及各种自定义的命令(猜的)
ossec-analysisd     # 日志分析服务
ossec-logcollector  # 日志收集
ossec-remoted       # server和agent通信
ossec-syscheckd     # 完整性检测包括rootkit
ossec-monitord      # agent监控

2、agent

# 各个进程
ossec-logcollector    # 日志收集器
ossec-syscheckd       # 完整性检测包括rootkit
ossec-agentd          # agent客户端
ossec-execd           # 应该是执行主动响应及各种自定义的命令(猜的)

详解

配置

首先说一下配置,在使用过程中,可能发现配置文件好多,里面内容也很类似。

日志监控/分析

日志监控/分析由OSSEC中 logcollector和analysisd进程来完成的。首先,日志收集器手机日志,然后分析进程分析(解码、过滤、分离)事件。日志监控和分析时实时进行的。

重点:

1、实时监控

2、在server上进行日志分析

3、存储时间由用户配置

配置

在每个代理的ossec.conf或共享的agent.conf中配置。

如:

<localfile><log_format>syslog</log_format><location>/var/log/messages</location>
</localfile># 在<localfile>元素内部,可以使用下面的选项
<location>  #指定读取的日志位置,strftime格式可用于日志文件名。例如,file.log-2011-01-22可以使用引用名为的日志文件file.log-%Y-%m-%d。通配符可以在非Windows系统上使用。使用通配符时,日志文件在ossec-logcollector启动时必须存在。它不会自动开始监视新的日志文件。strftime和通配符不能用于同一条目。
<log_format>  #日志格式,默认是syslog。可选:snort-full、eventlog、mysql_log、apache、command等

日志监控之rules配置

rules 匹配顺序:先匹配0级的,如果0级 没有匹配到,将所有规则按照level 降序的顺序排列(level相同的,按照rules 加载顺序排列),开始从最高级往下匹配,知道匹配到。

如果我们需要在已匹配到的规则的基础上,继续匹配,则可以用:<if_sid><if_sid>

日志检测规则,测试程序:/var/ossec/bin/ossec-logtest

先输入要进行测试的日志内容

phase 1 、2 是解码器解码(将日志进行解释、进行处理)阶段,3是匹配rules阶段

syscheck-完整性检测

syscheck是OSSEC中完整性检查过程的名字。属于OSSEC的一部分。syscheck定期运行,来检查是否有文件被修改。

syscheck通过关键文件的 MD5/SHA1 校验值是否改变来判断是否完整。

agent每几个小时(用户自己配置)扫描一次系统并且将校验值发送给server。server存储校验值并且对比校验值,如果校验值发生改变则发出告警。

数据存储位置:/var/ossec/queue/syscheck

ossec-syscheckd 提供了几乎实时地检查文件完整性。linux 上需要安装 inotify-tools

配置

所有的配置都可以在agent的etc/ossec.conf中进行配置,除了auto_ignore和alert_new_file,它们适用于管理器和本地安装。ignore如果在管理器上指定,则适用于所有的agent。

<directories></directories> 监控目录,目录中的文件和子目录也将监控

# 默认
<directories check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
# 属性
realtime=yes   #这样启用在Linux(使用inotify系统调用)和windows上的实时/连续监控,实时监测只适用于目录
report_changes=yes # 报告文件更改的差异,仅限于文本文件,只适用于类unix系统
check_all=yes  #除了显式指明为no的属性,其他 check_* 的属性都是yes
check_sum=yes   #检查文件的md5 和 sha1 哈希值  等价于 check_sha1sum ="yes"和check_md5sum ="yes"
check_sha1sum=yes  #仅检查sha1哈希值
check_md5sum=yes #仅检查md5哈希值
check_size=yes  #检查文件的大小
check_owner=yes  #检查文件所有者
check_group=yes  #检查文件所属组
check_perm=yes  #检查文件或目录的权限
restrict=string  #限制检查文件或目录名包含该字符串的文件
no_recurse=no    #不要递归到定义的目录

server和agent通信

默认server和agent之间以安全模式在端口 1514/udp上进行。还可以使用系统自带的syslog服务(514/udp)进行通信。

通信由 ossec-remoted实现

通信配置:

vim etc/ossec.conf

<ossec_config><remote><conection>secure</connection>  # 指定连接类型:secure:1514端口通信,syslog:514端口通信<allowed-ips>10.251.1.0/24</allowed-ips>  # 设置允许连接server的ip。其他配置参考:https://www.ossec.net/docs/docs/syntax/head_ossec_config.remote.html</remote>
</ossec_config>

集中管理agent配置

在server创建agent配置

vim etc/shared/agent.conf

server缓存了共享的agent.conf每几个小时会重新读取。所以修改了共享文件后,如果要立即生效,则需要重启server

如果agent同步了server共享的agent.conf,则会在Client version 字段中 表明配置文件的md5值

给特定agent进行特殊配置

<agent_config name="agent1"><localfile><location>/var/log/my.log</location><log_format>syslog</log_format></localfile>
</agent_config>
# 可以通过指明agent name的方法对agent1进行独特的配置,此配置只在agent1 生效,当然还有其他办法,可以查看官方文档

告警配置

邮箱告警

默认情况下,ossec的邮箱配置是关闭的。邮件告警由 ossec-maild 这个进程实现的,只有配置了邮件告警,启动ossec-server时才会启动这个进程

vim etc/ossec.conf

邮件告警只需要在server端进行设置即可。

由于ossec-server设置邮件告警的smtp服务器时,没有提供设置用户名和密码的地方,所以使用的smtp必须是不需要认证的smtp服务器,一般直接使用centos自带的postfix即可

<ossec_config><global><email_notification>yes</email_notification>   # 开启邮件告警<smtp_server>localhost</smtp_server>   # 设置smtp服务器,由于ossec未提供用户名和密码配置,所以只能使用没有认证的smtp,所以只能用自定义的smtp,一般使用主机自带的<email_to>ossecm@localhost</email_to>  # 设置收件人<email_from>ossec-dev@supertramp.localdomain</email_from>  #设置发件邮箱,没有实质用处,只是在收件人邮箱中展示发件人信息</global><alerts><log_alert_level>1</log_alert_level>   # 设置往alert.log 中记录的告警最低等级<email_alert_level>1</email_alert_level>   #设置邮件告警的最低告警级别</alerts>

上面设置了将告警邮件发送到ossecm@localhost  这个本机的邮箱,如果我们想发送到外网邮箱:

vim /etc/aliases

ossecm: 1234567890@qq.com     # 设置smtp 将发送到ossecm的邮件,转发到 1234567890@qq.com  需要重启smtp即postfix

当然还有其他很多告警方式,如:将告警数据存到数据库,为自定义的告警程序提供数据

将告警数据存到数据库

#安装依赖
yum install -y mysql-devel
#启用数据库
bin/ossec-control enable database

OSSEC-hids 主机入侵检测系统概述相关推荐

  1. 腾讯云(云镜)主机入侵检测漏洞检测

    腾讯云主机安全又称之为腾讯云 云镜.是腾讯云服务器云主机安全必备.云镜解决主机入侵.高危漏洞等主机安全问题,在腾讯云服务器上面部署了云镜,你就不必为服务器的安全费心了,一切交给腾讯云 云镜处理就好了. ...

  2. 基于主机的入侵检测优缺点_入侵检测技术 课后答案

    – – 1 第 1 章 入侵检测概述 思考题: ( 1 ) 分布式入侵检测系统 ( DIDS ) 是如何把基于主机的入侵检测方法和基于网络的入 侵检测方法集成在一起的? 答:分布式入侵检测系统是将主机 ...

  3. 新书推荐 |《Linux系统安全:纵深防御、安全扫描与入侵检测》

    新书推荐 <Linux系统安全:纵深防御.安全扫描与入侵检测> 点击上图了解及购买 资深Linux系统安全/运维专家撰写,腾讯.阿里技术专家高度评价,从纵深防御.安全扫描.入侵检测3个维度 ...

  4. 五大免费企业网络入侵检测工具(IDS)

    Snort一直都是网络入侵检测(IDS)和入侵防御工具(IPS)的领导者,并且,随着开源社区的持续发展,为其母公司Sourcefire(多年来,Sourcefire提供有供应商支持和即时更新的功能齐全 ...

  5. [ 笔记 ] 计算机网络安全_6_入侵检测系统

    [笔记] 计算机网络安全:(6)入侵检测系统 网络安全基础 internet协议的安全性 Web安全 网络扫描和网络监听 防火墙原理与设计 入侵检测系统 VPN技术 目录 [笔记] 计算机网络安全:( ...

  6. 基于机器学习的入侵检测系统

    导 语 在过去十年中,机器学习技术取得了快速进步,实现了以前从未想象过的自动化和预测能力.随着这一技术的发展促使研究人员和工程师为这些美妙的技术构思新的应用.不久,机器学习技术被用于加强网络安全系统. ...

  7. 什么是入侵检测系统?有哪些分类?

    在现在网络中,攻击无处不在,可以不夸张的说,每一秒都有企业或者个人被网络攻击.有人说了,不是有防火墙嘛? 确实,防火墙是防止有害和可疑流量流入系统的首选解决方案,但是防火墙并不能保证 100% 万无一 ...

  8. 主机端的入侵检测,难啃到让人想放弃!

    青藤云安全,江湖人称"藤厂",凭借领先的理念.技术和产品在网络安全圈逐步封神,久战而立于不败之地.为了让更多人了解青藤.了解网络安全,笔者特开通此专栏,争取用简洁明了的语言讲清楚晦 ...

  9. 信息安全软考 第十章 入侵检测技术原理应用

    入侵检测概述 入侵检测技术 ※ 入侵检测系统组成与分类 ※ 入侵检测系统主要产品与技术指标 入侵检测应用 ※ ※    命题规则:上午选择题2分左右,下午案例题结合其他知识考5-8分    入侵检测是 ...

最新文章

  1. 朴素、Select、Poll和Epoll网络编程模型实现和分析——模型比较
  2. Eclipse和PyDev搭建完美Python开发环境(Windows篇)(转)
  3. VirtualBox虚拟机后台运行
  4. 计算机丢失tlps,win7系统下PS提示计算机丢失tlpsplib10.dll文件的解决方法
  5. linux无线网卡消失,linux下wpa/wpa2的无线网卡设置 [暂时还没有证实是否能用]
  6. lucene解决全文检索word2003,word2007的办法
  7. leetcode349. 两个数组的交集
  8. zz -- QQ圈子感想
  9. Python wxpy通过ModBus控制电脑鼠标和键盘
  10. keras_contrib 安装
  11. Android Studio 字体大小设置
  12. 【javascript练习题】函数
  13. Python编程之求100以内的素数
  14. 白话Istio—流量管理四大概念
  15. 一个TCP长连接设备管理后台工程(四)---jtt808协议解析
  16. 批判性思维如何养成?
  17. 2022-2023年度必备宇宙最全Windows系统软件清单
  18. 多线程调用系统COM组件的体会(CoInitialize)
  19. 写一个轻量化的Google翻译脚本
  20. 数据结构课程设计 ——考试报名系统

热门文章

  1. .Net Core中间件
  2. ios软件架构的理解
  3. 组合的json嵌套文件分割或者拆分
  4. Thrift使用指南及语法介绍
  5. mysql可以安多个吗_安多县至拉萨的距离,一天能到吗
  6. H.265/HEVC结构
  7. 实现H5和小程序之间相互跳转
  8. May 25. 2018 Week 21st Friday
  9. C++11 可变参数
  10. python爬取爱情公寓电影评论并制作词云