InfluxDB 端点安全状态模板

导航至

我们最近发现了一个未启用身份验证的暴露端点,尽管我们知道它以前是必需的。根本原因是在几周前的一次升级中缺少配置,只需正确启用配置参数即可轻松修复。

我们需要一种方法来快速捕捉此类问题,包括此类和其他公共端点,它们应该默认是安全的。以下是我们的解决方案。

一个完整的监控系统应持续验证安全控制是否按预期运行且未发生变化。这里我们将展示如何使用InfluxDB 端点安全状态模板跟踪我们的 Web 服务身份验证和 SSL 证书的状态。

这将告诉我们

  • 服务是否可用?
  • SSL 证书是否仍然有效?
  • 如果需要身份验证,是否已开启并正常工作?

服务可用性是用于安全和操作中的许多指标之一。一个可用性是安全问题的例子是 DoS(或 DDoS)攻击。此类攻击的目的是使服务不可用。

SSL 证书验证也可以由运营商用于协助证书续订自动化。出于安全目的,我们需要定期验证我们的身份和服务的安全措施是否正常工作。

当需要身份验证时,我们应该持续验证其是否活跃且正常工作。错误、配置错误或黑客攻击是一些可能导致身份验证失败的可能原因,这可能导致任何人都能访问。

我们建议使用专门的服务帐户进行身份验证验证。该帐户应仅具有访问所需以正常工作的最低级别服务的只读访问权限。

设置InfluxDB CLI 环境;从命令行运行

influx apply --template-url https://raw.githubusercontent.com/influxdata/community-templates/master/endpoint-security-state/endpoint-security-state.yml

Telegraf的配置需要更新为要监控的端点(s)的URL和凭据。

Telegraf config InfluxDB Endpoint Security State Template

从InfluxDB UI的导航窗口下载Telegraf模板。选择数据?Telegraf。从这里,选择配置“端点安全状态”,并将文件下载到您的系统。

Telegraf configuration endpoint security state template

让我们深入了解上述的Telegraf配置。它使用了多个输入插件和正则表达式处理器来对数据进行一些规范化。

x509证书插件从网站的证书中收集各种指标。这仅支持HTTPS协议。

HTTP响应插件用于连接和授权尝试。

对于授权测试,请确保为每个端点配置带和不带凭据的配置。我们需要一个失败的配置来进行验证。

如果启用,请验证URL不会重定向到其他网站进行认证。

Flux endpoint security state template

Flux查询使用响应状态码来确定各种状态。任何成功的状态或认证失败响应都表示服务可用。认证失败响应表示认证服务可用。成功的响应表示认证功能正常。

InfluxDB Endpoint Security State Template results

结果表格将显示每个端点和表示每个指标状态的图标。

  • ?  服务或功能符合预期。
  • ????  网站的证书将在不到30天内过期。
  • ????  服务或功能处于失败或意外状态。
  • ?  我们无法推导出状态。

这可以通过警报来扩展,用于失败的认证服务或过期的证书。

我们可以收集ApacheNGINX的性能指标,添加一个变量和几个直方图,为用户提供更全面的服务视图。

对我来说,我真的很喜欢在InfluxDB平台上快速构建解决方案的能力。不久前,我可能会拼凑出一个解决方案,开始评估第三方解决方案或将问题移至“我有额外时间时再完成”的队列。

因此,请继续使用InfluxDB端点安全状态模板,如果您有任何问题,请在我们的InfluxDB社区网站Slack上告诉我们。