来自 安全 2022-06-09 00:00 的文章

ddos防火墙_防御ddos攻击命令_零元试用

ddos防火墙_防御ddos攻击命令_零元试用

osquery审计:第二部分-配置和实现Palantirfollow2018年12月14日8分钟阅读

在本系列的第一部分中,我们介绍了Linux审计框架的基础知识。在本文中,我们将重点介绍osquery审计实现的细节。除了配置审核之外,我们还将为读者提供减少大多数审核配置对性能的影响和日志记录量的策略。

使用osquery启用审核

命令行标志是更改osquery中核心行为的主要方法。基本配置的审核相关标志列表如下所示:

--audit_allow_sockets=trueTells osquery记录网络连接(bind()和connect()系统调用)--audit_allow_process_events=trueTells osquery记录进程执行(execve()系统调用)--audit_allow_config=trueTells告诉osquery允许更改审核配置选项。如果您使用的是自定义审核规则,则可能需要禁用此功能。-audit\u persist=truetolls osquery在失去连接时重新访问netlink套接字--disable\u audit=false tolls osquery启用审核--events\u expiration=1在单次选择后将osquery终止事件--events\u max=500000将osquery告知缓冲区500,查询间隔定义的选择之间的000个事件--logger_plugin=filesystems告诉osquery登录到文件系统--watchdog_memory_limit=350告诉osquery将内存限制提升到350mb

这些命令行标志通常保存到/etc/osquery/osquery.flags。除了命令行标志之外,您需要确保在osquery.conf配置文件中查询process\u events和socket\u events表。Palantir在这里公开了我们的osquery配置:

osquery配置osquery.Conforsquery.flags

日志记录注意事项

从每个表中选择要记录的特定列

尽管在查询中可能很容易使用通配符(例如,从进程事件中选择*并从套接字事件中选择*),考虑这个数据在10, 1000、甚至10000个主机上会消耗多少空间。如果仅通过选择某些列就可以将平均进程和套接字事件大小减少25%,那么整个osquery审核日志记录量将减少25%。在收集的数据中要有选择性,以最小化OsQueq生成的日志卷。使用SQL Sube过滤出无关事件。考虑是否需要从系统上的每个二进制文件记录进程执行。有许多工具使用得相当频繁,cc防御五秒盾代码,但提供的安全性或取证价值很低,例如awk、sed、tr、cut。简单地创建如下查询对osquery的性能影响可以忽略不计,并且可以节省大量日志:从路径不在('/usr/bin/awk'、'/usr/bin/sed'、'/usr/bin/tr')中的进程_事件中选择*;注意:如本文第一部分所述,以这种方式排除事件不会降低性能开销。osquery仍然必须处理通过SQL过滤掉的事件,它只是不记录这些事件。

仅记录成功的套接字事件

套接字事件表包含一个标题为"成功"的列,指示连接是否成功。根据您的日志卷要求,可能需要确定套接字事件成功与不成功的百分比,并可能过滤掉所有不成功的连接。显然,这是可见性和日志记录量之间的折衷。

按计数监控前10个流程

在Palantir,我们维护一个审计仪表板,以跟踪生成最多日志的流程。如果我们发现特定流程比系统上的其他流程生成的事件多出几个数量级,多少cc的防御,我们可以采取行动,并通过一行更改对其进行过滤。

疑难解答审核

如果您在让osquery记录流程和审核事件时遇到问题,检查清单上的每个项目:

确保osquery以root用户身份运行。osquery中存在正确的标志(本文中有记录)。osquery.confosquery.flags和osquery.conf中存在与流程和/或套接字事件表相对应的标志。osquery安装并运行pid列出在auditctl-s的输出中的被映射到一个osqueryd进程,并且不会改变没有其他审核使用者(auditd/go audit/auditbeat)同时运行至少一个系统调用规则使用syslog列出在auditctl-lIf的输出中,确保其配置为允许大消息且不限制速率

如果您已经验证了所有这些项,我们将使用两种主要的故障排除策略:

停止任何正在运行的osquery进程,并使用--verbose标志将osqueryd作为前台进程运行,并检查输出是否有错误:(a)$osqueryctl Stop;osqueryd--flagfile=/etc/osquery/osquery.flags--verbose停止任何正在运行的osquery进程,并使用隐藏的--audit_debug=true标志运行osqueryi:(a)$osqueryctl stop;osqueryi--flagfile=/etc/osquery/osquery.flags--audit_debug=true--verbose(b)osqueryi将把您放入一个交互式shell,类似于sqlite提供的shell--audit_debug标志将输出osqueryd从netlink套接字接收到的原始审核事件,然后再将它们处理到一个内部表中。如果没有出现审核事件,则可能是配置错误。

了解性能影响

使用osquery进行审核主要通过两种方式引入性能开销:

当内核中启用审核且存在审核规则时,内核在将每个系统调用与审核规则列表进行比较并生成实际审核事件时,开发防御ddos,必须执行其他操作。审核使用者(本例中为osquery)从内核netlink套接字提取事件,将事件数据解析为其内部表格式,并将该事件存储在RocksDB中。一旦查询选择了事件,该事件将写入日志文件或通过日志插件发送。