audit审计超详细介绍,常见审计规则示例,与syslog、secure对比

Audit(审计)介绍

Audit(审计)在Linux系统中,特别是CentOS中,是一个用于监控和记录系统上各种操作的技术手段。Audit的主要功能是为系统管理员提供一个跟踪系统上与安全相关信息的方法。根据预配置的规则,Audit会生成日志条目,以尽可能多地记录系统上所发生的事件的相关信息。

① Audit主要由以下几个部分组成:

  • auditd:Audit守护进程负责把内核产生的信息写入到硬盘上,这些信息由应用程序和系统活动触发产生。用户空间审计系统通过auditd后台进程接收内核审计系统传送来的审计信息,并将这些信息写入到日志文件中,通常是/var/log/audit/audit.log。

  • auditctl:这是一个即时控制审计守护进程行为的工具,用于添加、修改或删除审计规则等。

  • aureport:这是一个查看和生成审计报告的工具,可以根据审计日志生成各种报告,帮助管理员更好地理解系统上的活动情况。

  • ausearch:这是一个查找审计事件的工具,可以根据指定的条件在审计日志中搜索相关事件。

  • audispd:它可以将事件通知转发给其他应用程序,而不是直接写入审计日志文件中。

  • autrace:这是一个用于跟踪进程的命令,类似于strace,可以跟踪某一个进程,并将跟踪的结果写入日志文件之中。

② Audit的主要作用有:

  • 安全审计:Audit可以记录系统上的各种活动,包括文件访问、用户登录、进程启动等,帮助管理员了解系统上的安全状况,发现潜在的安全威胁。
  • 合规性检查:对于需要遵守特定安全规定或法规的组织来说,Audit可以提供有关系统活动的详细记录,以证明系统符合相关要求。
  • 问题追踪:当系统出现问题时,Audit可以提供相关的日志记录,帮助管理员更快地定位问题的原因。
  • 说明:Audit无法直接增强系统的安全性,但可以用于发现违反系统安全政策的行为。

③ 工作原理:

  • 审计事件通过内核模块记录到审计子系统,这些事件记录包括事件类型、时间戳、主体(发起事件的进程或用户)、客体(受事件影响的对象)等信息。
  • 管理员可以使用审计工具(如auditctl、ausearch、aureport等)来查看、分析和处理这些审计事件记录。

④ Audit所记录的安全相关事件通常包括:

  1. 文件访问和操作:包括文件的读、写、执行等权限变更,以及文件的创建、删除、修改等操作。这些事件对于追踪潜在的安全威胁或内部滥用行为非常有用。
  2. 用户和系统账户管理:Audit会记录与用户账户和系统账户相关的更改,例如新用户的创建、密码更改、用户组的修改等。这些事件有助于管理员监控账户管理的安全性。
  3. 系统调用:Audit可以记录系统调用的使用情况,包括哪些进程调用了哪些系统函数,以及调用的参数和返回值。这对于分析潜在的安全漏洞或恶意行为非常关键。
  4. 进程创建和终止:Audit会记录系统中进程的创建和终止事件,包括进程的ID、父进程ID、启动时间、终止原因等。这些信息有助于管理员了解系统的运行状况和潜在的安全风险。
  5. 网络连接和会话:Audit可以记录网络连接的建立和断开事件,以及用户会话的启动和结束。这对于监控网络访问和用户活动非常有用,特别是对于那些涉及敏感数据或关键服务的系统。
  6. 安全策略违规:Audit可以帮助管理员检测安全策略的违规情况,例如未经授权的访问尝试、权限滥用等。通过记录这些事件,管理员可以及时响应并采取措施来防止潜在的安全威胁。

Audit使用

1. 安装audit服务:

sudo yum  -y install audit

2. 两个配置文件:

① /etc/audit/auditd.conf

/etc/audit/auditd.conf 是auditd守护进程的主要配置文件,用于定义守护进程的参数和行为。

该文件包含一系列的选项,其中一些常见的选项包括:

  • log_file:指定审计日志文件的路径,通常是 /var/log/audit/audit.log

  • log_group:指定审计日志文件的组所有者,通常是 auditroot

  • max_log_file:指定在轮转之前审计日志文件可以增长到的最大大小(以MB为单位)。

  • max_log_file_action:定义当日志文件达到 max_log_file 时应该采取的操作,如 rotate(轮转)、keep_logs(保留日志)或 ignore(忽略)。

  • num_logs:指定要保留的审计日志文件的数量。

  • priority_boost:定义审计消息的优先级提升级别。

  • dispatcher:指定用于处理审计事件的插件或脚本的路径。

  • log_format:定义审计日志的格式,可以是 raw(原始格式)或 enhanced(增强格式)。

sudo cat /etc/audit/auditd.conf## This file controls the configuration of the audit daemon#local_events = yeswrite_logs = yeslog_file = /var/log/audit/audit.loglog_group = rootlog_format = RAWflush = INCREMENTAL_ASYNCfreq = 50max_log_file = 8num_logs = 5priority_boost = 4disp_qos = lossydispatcher = /sbin/audispdname_format = NONE##name = mydomainmax_log_file_action = ROTATEspace_left = 75space_left_action = SYSLOGverify_email = yesaction_mail_acct = rootadmin_space_left = 50.....

这些选项允许系统管理员根据他们的需求配置auditd守护进程的行为。

② /etc/audit/audit.rules

/etc/audit/audit.rules 文件用于定义审计规则,这些规则指定了哪些系统事件应该被记录到审计日志中。审计规则使用auditctl命令的语法,并可以包含多个规则条目。每个规则条目都定义了一个或多个条件和一个或多个操作。

规则的条件可以包括:

  • -w:监视对指定文件或目录的访问。
  • -p:指定要监视的权限类型(如读、写、执行等)。
  • -k:为规则分配一个关键字,以便后续搜索和分析。
  • -F:指定其他过滤条件,如用户ID (uid)、进程ID (pid)、系统调用号 (S) 等。
  • -a:用于添加或修改规则。通常与 -w-p-k-F 等参数一起使用
  • -S:指定要监视的系统调用号
  • -e:控制auditd的行为。例如,-e 1 启动auditd,-e 0 停止auditd。

规则的操作通常是将匹配的事件记录到审计日志中。

系统管理员可以使用文本编辑器编辑 /etc/audit/audit.rules 文件来定义所需的审计规则,或者使用auditctl命令在运行时动态地添加、删除或修改规则。在修改了规则文件后,通常需要重新启动auditd守护进程或重新加载规则文件以使更改生效。

3. 常见的审计规则示例

监视文件或目录的访问
-w /path/to/directory -p wa -k directory-access 

这条规则会监视 /path/to/directory 目录下的文件访问。-p wa 表示监视写(w)和属性(a)更改。-k directory-access 给这个规则设置了一个关键字,方便后续搜索和过滤日志。

记录所有与特定用户相关的活动
-a always,exit -F auid=username -k user-activity 

这条规则记录当用户 username 执行任何系统调用并在系统调用结束时,无论成功还是失败,审计系统都应该记录一个审计事件,并使用关键字 user-activity 来标识这些事件。

③ 监视特定的系统调用
-a always,exit -S chmod -F auid>=1000 -k priv-chmod 

这条规则记录当任何用户 ID 大于或等于 1000 的用户执行 chmod 系统调用时,无论结果如何(成功或失败),都应该记录一个审计事件,并使用关键字 priv-chmod 来标识这个事件。

④ 记录进程创建
-a always,exit -F arch=b64 -S clone,fork,vfork -k process-creation 

这条规则记录 在 64 位系统架构上,当 cloneforkvfork 这三个系统调用完成时(无论成功或失败),审计系统都应该始终记录一个审计事件,并使用关键字 process-creation 来标识这些事件。

4. 要查看与关键字相关的所有事件,运行:

要查看与ssh-access关键字相关的所有事件,运行:

ausearch -k ssh-access 

要实时查看audit日志,你可以使用auditd-l选项(但这通常需要root权限):

sudo auditd -l 

补充:Audit日志与syslog、secure的区别

① Audit跟syslog记录的区别

  • audit:日志通常更加详细,专注于记录与安全相关的事件,是一个专门用于记录系统安全信息的审计服务。它主要关注于记录核心层的事件,详细记录了事件的各个方面,如时间戳、用户ID、进程ID、文件路径、访问权限、系统调用等,有助于检测和处理攻击、漏洞和安全风险等问题。
  • syslog:记录的内容更为广泛,用于记录系统和应用程序的各种事件,包括安全、调试、运行信息等。它不仅可以记录安全事件,还可以记录其他与系统状态、硬件警告、应用软件记录等相关的信息。

举例对比:假设在一个Linux系统中,某个用户尝试访问一个受保护的文件。

  • audit会记录这个用户尝试访问文件的详细信息,包括时间戳、用户ID、文件路径、访问类型(读/写/执行)等。
  • syslog也会记录这个事件,但可能只会记录一个较为通用的消息,如“用户尝试访问文件”或“文件访问事件”等。

② Audit跟secure的区别

  • Audit它侧重于对整个信息系统的安全性和合规性进行审查,包括安全策略、安全控制、安全管理和安全培训等方面。方法主要通过人工审查、安全检查、安全测试等手段进行,强调评估和审查的准确性和全面性。

  • Secure记录监测则更侧重于实时监控和防范安全威胁和攻击,以保证信息系统和数据的安全性和可靠性。它关注系统、网络、应用程序和数据等实时数据的安全性,并通过实时监控、日志管理、事件响应等技术手段进行。

Secure(安全)记录监测确实可以包含主动响应的功能,主要体现在以下几个方面:

  1. 威胁检测与预防:Secure记录监测通过实时监控和分析系统、网络、应用程序等的日志和数据,能够检测潜在的威胁和攻击行为。一旦检测到威胁,系统可以立即触发警报,并采取相应的预防措施,如阻止恶意流量的访问、隔离受感染的系统等。
  2. 自动化响应:一些高级的Secure记录监测工具可以实现自动化响应功能。当检测到安全事件时,这些工具可以自动执行预设的响应策略,如封锁攻击者IP、关闭被攻破的账户、重启服务等,以迅速应对威胁并减少损失。
  3. 事件关联与分析:Secure记录监测可以收集和分析来自不同来源的安全事件信息,通过事件关联技术将相关的事件进行关联和整合,形成完整的攻击链。这有助于安全人员更好地理解攻击行为,并制定相应的响应策略。

Secure记录监测的实现通常依赖于一些先进的技术和工具,如:

  • 日志管理工具:用于收集、存储和分析系统、网络、应用程序等的日志数据。这些工具可以实时或定期地收集日志,并提供搜索、过滤和可视化等功能,帮助安全人员快速定位和分析安全事件。
  • 安全信息和事件管理(SIEM)系统:SIEM系统可以将来自不同来源的安全事件信息进行整合和关联,提供全面的安全态势感知和威胁情报。通过SIEM系统,安全人员可以实时监控整个信息系统的安全状况,并快速响应安全事件。
  • 安全自动化和响应平台(SOAR):SOAR平台可以自动化安全事件的响应流程,包括事件的识别、分类、调查、处置和报告等。通过SOAR平台,安全人员可以更加高效地应对安全事件,减少人工干预和误操作的风险。

需要注意的是,虽然Secure记录监测可以包含主动响应的功能,但具体的实现方式和效果取决于所使用的技术和工具,以及组织的安全策略和需求。因此,在选择和实施Secure记录监测解决方案时,需要根据组织的实际情况进行综合考虑和评估。

觉得有用,点赞再走啊君~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/49022.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UWA Gears正式上线,助力移动平台性能优化

亲爱的开发者朋友们, 我们非常激动地向大家宣布,UWA最新的无SDK性能分析工具 - UWA Gears,现已正式发布!无论您使用的是哪种开发引擎,这款工具都能轻松应对,为您的项目保驾护航。更令人心动的是&#xff0c…

后台管理系统登录安全和权限要求

一、前言 几乎所有的系统都有后台管理系统,后台登录需要账号和密码,后台管理员权限需要有控制。所有管理员的操作都应该有操作日志。 二、存在的问题 现在很多系统只需要账号和密码就能登录,有的还是简单账号和简单密码,就是弱口…

虚拟机之ip配置,ssh连接到虚拟机

右边是我的虚拟机,左边是我使用vscode来连接(终端也可以。然后注意vscode配置后点一下刷新,不会自动刷新的QA)(吐槽一下,虚拟机都不能复制内容呢,确实仿真,centos仿真就是因为没有图…

二手车小程序

本文来自:FastAdmin二手车小程序 - 源码1688 一款基于ThinkPHPFastAdmin开发的原生微信小程序二手车管理系统。 前端小程序码: 后台演示地址: https://facars.site100.cn/OHNYSKzuba.php/carswxsys/sysinit?refaddtabs

解决springboot的跨域冲突

前言 赶时间的可以直接加入地下的配置文件,就可解决问题。上面从概念讲起。 概念 在Web开发中,浏览器出于安全考虑,默认不允许从一个源加载页面的同时通过XMLHttpRequest发起对不同源的请求。例如,一个运行在http://example.co…

视觉巡线小车——STM32+OpenMV(四)

目录 前言 一、整体控制思路 二、代码实现 1.主函数 2.定时器回调函数 总结 前言 通过以上三篇文章已将基本条件实现,本文将结合以上内容,进行综合控制,实现小车的视觉巡线功能。 系列文章请查看:视觉巡线小车——STM32OpenMV系列…

【轨物方案】电表红外抄表物联网装置

对于光伏运维工程师来说,电表抄表是一件并不陌生的工作,不过很多并网电表的RS485通讯接口一般都被占用了,并且电表的外壳也被铅封起来。在这种情况下电站通常采用人工抄表的方式采集电量数据,这种方式费时费力,对电站运…

京东科技集团将在香港发行与港元1:1挂钩的加密货币稳定币

据京东科技集团旗下公司京东币链科技(香港)官网信息,京东稳定币是一种基于公链并与港元(HKD) 1:1挂钩的稳定币,将在公共区块链上发行,其储备由高度流动且可信的资产组成,这些资产安全存放于持牌金融机构的独立账户中,通…

【OpenCV C++20 学习笔记】扫描图片数据

扫描图片数据 应用情景图像数据扫描的难点颜色空间缩减(color space reduction)查询表 扫描算法计算查询表统计运算时长连续内存3种扫描方法C风格的扫描方法迭代器方法坐标方法LUT方法 算法效率对比结论 应用情景 图像数据扫描的难点 在上一篇文章《基…

OAK-FFC 分体式相机使用入门介绍

概述 OAK FFC 主控板和多种可选配镜头模组非常适合灵活的搭建您的3D人工智能产品原型。由于镜头是分体式的,因此你可以根据需要测量的距离,自定义深度相机安装基线,并根据你的项目要求(分辨率、快门类型、FPS、光学元件&#xff…

微前端--qiankun(3)

微前端–qiankun(3) 微前端的运行原理 监听路由变化匹配子应用加载子应用渲染子应用 监听路由变化 window.onhashchange 和window.addEventListener(popstate,() > {})等等,下篇文章我写个 匹配子应用 const currentApp apps.find(app > window.locati…

FPGA教程|零基础到实战的全方位指导

在数字化时代,FPGA(现场可编程门阵列)作为一种灵活的硬件编程平台,正逐渐成为电子工程师和计算机科学家必备的技能之一。无论你是电子专业的学生,还是职场中的工程师,掌握FPGA开发技术,都将为你…

前端与HTML

前端与HTML 什么是前端? 解决GUI人机交互问题跨终端(PC/移动浏览器)(客户端小程序)(VR/AR等)Web技术栈 前端工程师:利用web技术栈解决多端图形界面用户交互的工程师 前端技术栈 …

CDGA|数据治理:安全如何贯穿数据供给、流通、使用全过程

随着信息技术的飞速发展,数据已经成为企业运营、社会管理和经济发展的核心要素。然而,数据在带来巨大价值的同时,也伴随着诸多安全风险。因此,数据治理的重要性日益凸显,它不仅仅是对数据的简单管理,更是确…

Lua 类管理器

Lua 类管理器 -- ***** Class Manager 类管理*****‘local ClassManager {}local this ClassManagerfunction ClassManager.Class(className, ...)print(ClassManager::Class)--print(className)-- 构建类local cls {__className className}--print(cls)-- 父类集合local …

rv1126物体检测 rkmedia、opencv……

整体码流流向: 因此代码也分为这几部分: VI:采集视频 配置视频采集信息 模型推理线程:获取VI码流、载入模型、进行模型推理、保存推理结果 画框线程:获取VI码流、获取推理结果、显示推理结果、输出码流到VENC VENC…

LeetCode-day25-2844. 生成特殊数字的最少操作

LeetCode-day25-2844. 生成特殊数字的最少操作 题目描述示例示例1:示例2:示例3: 思路代码 题目描述 给你一个下标从 0 开始的字符串 num ,表示一个非负整数。 在一次操作中,您可以选择 num 的任意一位数字并将其删除…

如何使用C#快速创建定时任务

原文链接:https://www.cnblogs.com/zhaotianff/p/17511040.html 使用Windows的计划任务功能可以创建定时任务。 使用schtasks.exe可以对计划任务进行管理,而不需要编写额外代码 这里掌握schtasks /CREATE 的几个核心参数就可以快速创建计划任务 /SC …

vue3响应式转换常用API

响应式常用API ref 相关:toRef、toRefs、unRef只读代理:readonly判断相关:isRef、isReactive、isProxy、isReadonly3.3新增API:toValue ref相关 toRef:基于响应式对象的某一个属性,将其转换为 ref 值 i…

必修-场景题

场景题 1. 树遍历二叉树三叉树 2. 并发问题架构设计前端后端NginxSpring Cloud Gateway和限流的依赖: 处理优惠券的缓存逻辑:处理优惠卷HTTP请求:实现令牌桶算法请求限流一秒 用Resilience4j实现降级策略在 application.yml 或 application.p…