SUpraudit:一款MacOS上的日志审计工具

背景

你可能对BSM审计有所了解,也可能完全没有听说过。这是Solaris OS遗留下来的产物,它存在于FreeBSD,Linux,当然还包括MacOS上。在我的*OS Internals::Security & Insecurity的第二章中有审计的详细介绍。虽然它没有MAC框架那样强大(并且无法进行推理,只能对操作做出反应),但也不像其他框架将简单的现场监控与纯用户模式的优点相结合。内核仍然非常复杂,但是你不能也不应该修改它的默认审计逻辑。

值得注意的是,praudit(1),它用于打印来自/var/audit和/dev/auditpipe中的文件的审计记录,这是一个非常可怕的工具,即使在与-l(单行输出)一起使用时,它也不是grep(1)友好的工具。

SUpraudit

经过25年左右的时间,现在是时候进行改造了。我已经将praudit paltry ~220行的汇编回源(assembly back to source),然后我决定重建它:

root@Zephr (~) # supraudit -h
supraudit: illegal option -- -h
usage: supraudit [-lnpx] [-r | -s] [-d del] [file ...]
         OR
       supraudit [-S [-C] |-J] [-F filter] [-O output]
       -S: SuperAudit records (much more readable)
       -C: Color (because everything looks better in color)
       -J: JSON
       -L: Relay to local syslog
       -F: Filter by predefined rules - files, net, proc
       -O: Log to specified outputfile

This is J's supraudit, compiled on May 22 2018\. 
Latest version always free @http://NewOSXBook.com/tools/supraudit.html

使用模式与praudit几乎相同 - 即supraudit可以用作审计文件的pipe (|)的接收端,或者运行在通常是/dev/auditpipe上,因为它提供了实时审计firehose。supraudit的新开关都是大写的,以避免与之前的开关产生冲突。这些开关允许各种输出格式或过滤器(如下“使用示例”中所述)。

与praudit(1)不同的是,我的工具 - 在/dev/auditpipe上运行时 - 通过ioctl(2)代码配置管道,允许它在不影响本地审计策略的情况下设置自定义过滤器(或根本没有)。简而言之,你不需要再配置任何东西 - 只需在管道上直接运行supraudit并查看每个BSD级别的操作即可!(请注意,由于内核不支持该Mach级别操作,因此无法对其进行审计)。

使用示例

最直接和有用的功能是-S,它使用我自己的记录格式,而不是Apple的默认格式。格式非常像Linux的strace(和我自己的jtrace),并且非常友好。你可以使用-C或JCOLOR=1来切换颜色:

你可以使用grep和cut -d’|’进行过滤。

.一些有用的grep过滤是’INET’(所有网络连接),’INET4’(IPv4)和’INET6’。

作为grep的快速替代方案,你可以使用 -F files, net或proc作为内置过滤器。这是推荐的,因为之后你可以随时应用grep(1)。此外,这样做会自动将未经过滤的审计日志保存到/tmp,以便你可以随时查看完整的图片。

syslog/os_log集成

将-L与-S一起使用将记录到本地syslog/os_log:

远程日志主机(loghost)

审计机制最明显的遗漏之一是,与syslogd不同,它没有对中央服务器进行远程日志记录 - 如果你想确保日志的完整性,那么这是非常必要的,如果你拥有超过5台机器(如在企业中),则至关重要。那么,这已被修复。将supraudit与-R一起使用将会转发给中央服务器,但这需要……

Supraudit-PRO

Supraudit的“专业版”具有更多功能(PRO版目前正处于开发阶段),其中包括:

触发器:使用配置文件,可以用基本变量替换来执行超审计命令(例如:’on file access “/secret/*” kill subject’)。这对于安全敏感的防御是不适用的,因为审计机制是被动的。但是建立一个基本的主机入侵机制会很有用。 插件:SUpraudit为希望编写自己插件的开发人员提供了一个简单但功能强大的API。这可以用来与littlesnitch/bigbrother/twinsister/whatever结合使用。 GUI(即将推出):当你合并多个审计日志时,数据会复杂的让你眼花缭乱。SUpraudit pro有一个GUI,你可以使用它来过滤,排序,分析甚至构建timeline视图,以记录你的完成进度。

相关授权

supraudit免费供个人,和/或5个主机内使用。如果你打算在10个以上主机的商业环境中使用它,则需要与products@technologeeks.com联系取得授权 - 你可能想要获得PRO版本,其中包含服务器(用于-R 消息中继)以及方便快速的GUI操作。同时欢迎大家对我提出修复或改进的建议。阅读原文下载supraudit。

*参考来源:newosxbook,FB小编 secist 编译,转载请注明来自FreeBuf.COM

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-06-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏翻译

在Ubuntu 14.04/14.10上搭建Minecraft Spigot服务器

本文介绍了如何在Ubuntu 14.04 / 14.10上搭建自己的Minecraft服务器,搭建一个让我们可以与朋友远程开黑的私服,甚至是搭建一个几百人的公共...

37330
来自专栏腾讯移动品质中心TMQ的专栏

应用宝基于Robotium自动化测试(下)

基于Robotium自动化测试(上)》一文中小编介绍了框架选择、测试环境搭建、用例编写、跨应用处理等等内容,本文将承接上文,继续介绍测试报告生成、持续集成等等相...

23770
来自专栏零基础使用Django2.0.1打造在线教育网站

利用Flask搭建微电影视频网站(一):项目介绍

努力与运动兼备~~~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

2.6K30
来自专栏kl的专栏

记spring boot快速改造老项目

博主公司一个项目在开发中使用某些功能的时候,受限于spring低版本的限制,故索性将整个模块升级为spring boot,在这里做个记录,希望能帮助到有相同场景...

65880
来自专栏IT技术精选文摘

微服务架构中的进程间通信

介绍 在单体应用程序中,组件通过语言级的方法或函数调用进行彼此的调用。相比之下,基于微服务的应用程序是在多台机器上运行的分布式系统。每个服务实例通常是一个进程...

62350
来自专栏编程微刊

如何运行vue项目(维护他人的项目)

前提: 首先,这个教程主要针对vue小白,并且不知道安装node.js环境的。言归正传,下面开始教程:在维护项目之前,需要把所有的环境搭建好,这里我就不多说了...

12720
来自专栏finleyMa

说下browserslist

browserslist 是一个开源项目 见到有些package.json里会有如下的配置参数

63610
来自专栏腾讯云serverless的专栏

使用 SCF 无服务器云函数定时拨测站点并邮件告警

利用无服务器架构中提供的定时触发能力,在运维监控场景有很多种用处,例如定时备份、定时拨测、定时统计等。

9.5K20
来自专栏BeJavaGod

阿里巴巴Druid数据源,史上最强的数据源,没有之一

目前常用的数据源主要有c3p0、dbcp、proxool、druid,先来说说他们 Spring 推荐使用dbcp; Hibernate 推荐使用c3p0和pr...

40590
来自专栏用户2442861的专栏

CQRS架构简介

http://www.cnblogs.com/netfocus/p/4055346.html

15420

扫码关注云+社区

领取腾讯云代金券