我们正在用swag升级FutureStack注册,直到4月30日。条款和条件适用。 现在注册

New Relic日志的四个安全用例

8分钟阅读

在典型的企业账户中,我看到应用程序开发人员、DevOps和SRE团队的日志管理按以下兴趣顺序排列:

  1. 来自核心web和后台服务的应用程序日志
  2. 访问NGINX、Apache、AWS负载均衡器和类似服务的日志
  3. 来自关键平台的基础设施日志,如SQL数据库、Redis集群、Kafka集群和虚拟化层

然而,还有另外一类日志提供了对现代数字企业面临的一些最严重威胁的必要可见性。这类日志大体上与安全相关,但它们为团队提供了跨整个平台的特定用户/客户端操作的记录。这类日志包括:

  • Linux systemd日志
  • Security-Enhanced (SE) Linux审计日志
  • Windows安全事件日志
  • 防火墙日志

在这篇文章中,我将展示如何使用我们的基础设施监控代理将这些日志类型发送到New Relic。

systemd日志

基于linux的systemd统一了服务配置和行为。在许多为世界上最大的一些公司运行企业工作负载的Linux发行版中,systemd控制大多数“核心”Linux进程,如cron、网络和防火墙进程。换句话说,它控制了系统中发生的大量处理。虽然不是特别关注安全,但它发出了一个“与安全相邻”的日志流,可以告诉您很多关于Linux环境中正在发生的事情。

例如,systemd从安全的角度来看是令人担忧的,因为它可以:

  • 停止防火墙服务
  • 重启防火墙服务(可能是在不适当的配置更改之后)
  • 停止运行网络接口的服务
  • 管理关键的引导进程,如挂载文件系统

通过基础设施代理向New Relic发送systemd日志

我们的基础设施的代理提供一个简单的入口,将各种systemd日志转发到New Relic。贪婪的方法会将输出的几乎所有日志转发给/var/log/messages,这是处理systemd控制的日志的通常路径。然而,一种更可控的方法是指定要记录的特定systemd服务。

例如,在New Relic中这样做:

添加以下条目到/etc/newrelic-infra / logging.d / logs.yml

日志:—名称:systemd-firewalld systemd: firewalld

New Relic基础架构代理应该能够识别此更改,并自动开始转发由防火墙进程发出的日志。向配置中添加额外的systemd服务日志很简单:

日志信息:—名称:systemd-firewalld systemd: firewalld—名称:systemd-auditd systemd: auditd

通过这个简单的配置,New Relic将接收与这两个服务相关的每个事件的日志。

下面是一个查询和结果图表,显示了我自己的SSH操作的日志:

SELinux审计日志

SELinux是一个Linux内核安全模块,它允许您设置访问控制安全策略,包括每个用户空间的强制访问控制(MAC)。SELinux日志为各种访问和拒绝与Linux系统资源相关的事件提供了高度细粒度的事件日志。

SELinux日志可以告诉你:

  • 未经授权的使用sudo
  • 未经授权或意外的SSH访问
  • 未授权访问文件或可执行文件

这些事件并不一定要被视为“入侵检测”——您可以将它们视为访问策略实施日志。例如,即使您的系统管理员可能被授权SSH到某个主机,您仍然希望了解可能导致意外失败的“未归档的热修复程序”。

在现代SRE的环境中,许多聪明的用户不断地协同工作,以保持复杂的系统正常运行。在某些情况下,试图减轻和调查可能本身就是一个漏洞。

让我们假设一个进程或用户试图访问一个他们没有被授权访问的HTML文件。如果auditd守护进程正在运行时,会写入一个默认的SELinux拒绝消息,如下所示/var/log/audit/audit.log:

dev=dm-0 ino=399185 scontext=unconfined_u:system_r: samba_share_t:s0 tclass=file . conf . conf . conf . conf . conf . conf . conf . conf . conf . conf . conf . conf . conf . conf . conf . conf . conf . conf . conf . conf

此外,SELinux将向/var/log/messages:

May 7 18:55:56 localhost se疑难解答:SELinux is preventing httpd (httpd_t)/var/www/html/file1 (samba_share_t)的getattr。获取完整的SELinux消息。执行sealert -l de7e30d6-5488-466d-a606-92c9f40d316d命令

向New Relic发送SELinux审计日志

首先,确保auditd业务日志正在发送到New Relic。将以下部分添加到/etc/newrelic-infra / logging.d / logs.yml:

—名称:systemd-auditd systemd: auditd

最后,添加此配置以将详细的审计日志转发到New Relic。

—审计日志文件名称:“/var/log/audit/audit.log”

在添加审计日志和systemd日志之后,您的logs.yml应该是这样的:

日志:—名称:systemd- firewallsystemd: firewall—名称:systemd-auditd systemd: auditd—名称:审计日志文件:/var/log/audit/audit.log

这是New Relic的一个视图,我正在搜索我的测试主机发送邮件失败的尝试:

Windows安全事件日志

SELinux现代Windows系统跟踪各种各样与安全相关的活动,并将它们作为日志记录Windows事件,每个都有一个特定的事件代码。不缺乏安全事件Windows的痕迹。例如:

事件代码 描述
4720 创建用户帐户
4722 日志含义启用用户帐户
4826 已加载启动配置数据
4825 一个用户被拒绝访问远程桌面
4624 帐户成功登录
4625 帐户登录失败
4700 日志含义启用定时任务
4701 日志含义禁用定时任务
4702 更新了一个计划任务
4735 日志含义修改了启用安全的本地组

要使用它,请在/etc/newrelic-infra / logging.d命名winlog.yml,或编辑您现有的log.yml文件中,添加以下部分:

我们的基础设施代理从Windows日志通道收集事件并将其转发给New Relic。

日志:—名称:windows-security winlog: channel: Security collect-eventids:—4624—4265—4700-4702 exclude-eventids:—4735

这是在New Relic的样子,如果我搜索的话频道:“安全”和“登录失败”:

防火墙日志

防火墙日志有双重目的:它们可以告诉您网络基础设施何时出现故障,如果发生了某种入侵,它们还可以向您提供早期警告。

防火墙日志的确切内容和输出格式取决于您所使用的供应商,因此没有一种适用于所有问题的解决方案。但是,如果您可以重新配置防火墙服务或设备来转发日志,您仍然可以通过TCP或UDP发送syslog日志。在这种情况下,您可以直接将syslog日志发送到syslog端点(仅限tpc),或将这些日志发送到转发层,如Fluent Bit、Fluentd或Logstash。

重要的是,所有现代防火墙设备都会发出类似的日志。在这个CISCO的例子中(具体来说Cisco Adaptive Security Appliance (ASA)软件版本7.2), 1级是最令人担忧的,6级或更高级别被认为是信息或调试:

(表id = 60 /)

下面的示例向您展示如何设置基础架构代理的内置日志转发程序,以通过TCP连接接收防火墙日志。请记住,您不需要在任何特定的设备上安装基础设施代理——它可以完全独立于防火墙设备。注意:如果您正在使用不同的防火墙系统,请联系您的新Relic帐户团队获取更具体的信息。

日志:名称:firewall-logs-tcp-raw tcp: uri: tcp: / / 0.0.0.0:1234 #使用tcp: / / LISTEN_ADDRESS:港口格式格式:#原始文本-这是没有一个默认的tcp分离器:\ t # max_line_kb字符串分离原始文本条目:32 -名称:firewall-logs-tcp-json tcp: uri: tcp: / / 0.0.0.0:2345 #使用tcp: / / LISTEN_ADDRESS:港口格式格式:json

您需要在防火墙设备上更新的唯一配置是日志输出配置。这是CISCO防火墙日志输出配置示例

在New Relic,你会过滤logtype:“思科防火墙”:

从这里开始,您可以构建一个查询来深入研究一个特定的子网:

提示:关于更高级的日志转发配置的解释,请查看我的文章,“设置日志转发器的五个最佳实践”。

结论

与强大的解析,查询仪表盘功能,New Relic是发送某些安全性和安全性相邻系统日志的完美场所。我们的内置日志管理组件——全栈可观察性的一部分提供一个方便的、开箱即用的工具包,用于探索、组织和丰富日志数据。

当你所有的DevOps和行为团队访问这些数据(而不只是你的网络和Linux专家)他们将更好地准备相关的异常情况与APM性能下降安全日志,或看到的一般基础设施性能degradation-all至关重要的实践统一的可观测性。

现在您知道了如何从日志数据中提取有价值的安全信息,报名为一个免费的新遗物帐户,并获得日志的一部分完整的可观测性