应用程序数据安全
Elastic Stack Serverless
在设置 Elastic APM 时,务必仔细检查所有捕获的数据,以确保其不包含密码、信用卡号或健康数据等敏感信息。此外,您可能希望过滤掉其他可识别的信息,例如 IP 地址、用户代理信息或表单字段数据。
根据数据类型,我们提供了几种不同的方法来过滤、操作或混淆摄取期间或之前的敏感信息
除了使用过滤器之外,您还应该定期查看敏感字段表,以确保未摄取敏感数据。 如果是这样,可以删除或编辑它。 有关更多信息,请参见删除敏感数据。
内置数据过滤器允许您过滤或关闭以下类型数据的摄取
数据类型 | 常见敏感数据 |
---|---|
HTTP 标头 | 密码、信用卡号、授权等。 |
HTTP 正文 | 密码、信用卡号等。 |
个人数据 | 客户端 IP 地址和用户代理。 |
真实用户监控数据 | 访问的 URL、点击事件、用户浏览器错误、使用的资源等。 |
数据库语句 | 敏感的用户或业务信息 |
自定义过滤器允许您在摄取时过滤或编辑其他类型的 APM 数据
Ingest pipelines | 在摄取时应用。支持所有代理和字段。数据离开检测的服务。对检测的服务没有性能开销影响。 |
APM agent filters | 并非所有代理都支持。数据在离开检测的服务之前被清理。对检测的服务有潜在的开销影响 |
您应该定期检查以下字段,以确保未捕获敏感数据
字段 | 描述 | 补救措施 |
---|---|---|
client.ip |
客户端 IP 地址,由代理转发。 | 个人数据 |
http.request.body.original |
受监视的 HTTP 请求的正文。 | HTTP 正文 |
http.request.headers |
受监视的 HTTP 请求的规范标头。 | HTTP 标头 |
http.request.socket.remote_address |
最后一个代理或最终用户的地址(如果没有代理)。 | 自定义过滤器 |
http.response.headers |
受监视的 HTTP 响应的规范标头。 | HTTP 标头 |
process.args |
进程参数。 | 数据库语句 |
span.db.statement |
数据库语句。 | 数据库语句 |
stacktrace.vars |
在堆栈帧中捕获的局部变量的平面映射 | 自定义过滤器 |
url.query |
请求的查询字符串,例如 ?pass=hunter2 。 |
自定义过滤器 |
user.* |
已登录的用户信息。 | 自定义过滤器 |
user_agent.* |
发出网络请求的设备和版本。 | 个人数据 |