Sentry 企业级数据安全解决方案 - Relay PII 和数据清理

本文涉及的产品
数据安全中心,免费版
简介: Sentry 企业级数据安全解决方案 - Relay PII 和数据清理

一个基本的例子



假设您有一条异常消息,不幸的是,其中包含不应该存在的 IP 地址。你会写:


{
  "applications": {
    "$string": ["@ip:replace"]
  }
}


它读作 “替换所有字符串中的所有 IP 地址”,或 "将 @ip:replace 应用于所有 $string 字段"。

@ip:replace 称为规则,$string 称为选择器。



内置规则



默认存在以下规则:

  • @ip:replace@ip:hash 用于替换 IP 地址。
  • @imei:replace@imei:hash 用于替换 IMEI
  • @mac:replace@mac:mask@mac:hash 用于匹配 MAC 地址。
  • @email:mask@email:replace@email:hash 用于匹配 email 地址。
  • @creditcard:mask@creditcard:replace@creditcard:hash 用于匹配信用卡号码。
  • @userpath:replace@userpath:hash 用于匹配本地路径(例如 C:/Users/foo/)。
  • @password:remove 用于删除密码。在这种情况下,我们对字段的 key 进行 pattern 匹配,无论它是否包含 passwordcredentials 或类似的字符串。
  • @anything:remove@anything:replace@anything:hash 用于删除、替换或 hash 任何值。它本质上等同于通配符正则表达式,但它也比字符串匹配得多。


编写自己的规则



规则一般由两部分组成:

  • 规则类型 描述要匹配的内容。有关详尽列表,请参阅PII 规则类型。
  • 规则编辑方法 描述了如何处理匹配。有关列表,请参阅PII 编辑方法。

每个页面都带有示例。通过将这些示例粘贴到 Piinguin 的 “PII 配置” 列并单击字段以获取建议来尝试这些示例。


交互式编辑



解决此问题的最简单方法是,如果您已经拥有来自某个 SDK 的原始 JSON payload。转到我们的 PII 配置编辑器 Piinguin,然后:


  1. 粘贴到原始事件中
  2. 点击你想要消除的数据
  3. 粘贴其他有效负载并查看它们是否正常,如有必要,请转到步骤 2

在对配置进行迭代后,将其粘贴回位于 .relay/projects/<PROJECT_ID>.json 的项目配置中

例如:


{
  "publicKeys": [
    {
      "publicKey": "___PUBLIC_KEY___",
      "isEnabled": true
    }
  ],
  "config": {
    "allowedDomains": ["*"],
    "piiConfig": {
      "rules": {
        "device_id": {
          "type": "pattern",
          "pattern": "d/[a-f0-9]{12}",
          "redaction": {
            "method": "hash"
          }
        }
      },
      "applications": {
        "freeform": ["device_id"]
      }
    }
  }
}


PII 规则类型



pattern

: 自定义 Perl 风格的正则表达式 (PCRE)。


{
  "rules": {
    "hash_device_id": {
      "type": "pattern",
      "pattern": "d/[a-f0-9]{12}",
      "redaction": {
        "method": "hash"
      }
    }
  },
  "applications": {
    "$string": ["hash_device_id"]
  }
}


imei

: 匹配 IMEI 或 IMEISV。


{
  "rules": {
    "hash_imei": {
      "type": "imei",
      "redaction": {
        "method": "hash"
      }
    }
  },
  "applications": {
    "$string": ["hash_imei"]
  }
}


mac

: 匹配一个 MAC 地址。


{
  "rules": {
    "hash_mac": {
      "type": "mac",
      "redaction": {
        "method": "hash"
      }
    }
  },
  "applications": {
    "$string": ["hash_mac"]
  }
}


ip

: 匹配任何 IP 地址。


{
  "rules": {
    "hash_ip": {
      "type": "ip",
      "redaction": {
        "method": "hash"
      }
    }
  },
  "applications": {
    "$string": ["hash_ip"]
  }
}


creditcard

: 匹配信用卡号。


{
  "rules": {
    "hash_cc": {
      "type": "creditcard",
      "redaction": {
        "method": "hash"
      }
    }
  },
  "applications": {
    "$string": ["hash_cc"]
  }
}


userpath

: 匹配本地路径(例如C:/Users/foo/)。


{
  "rules": {
    "hash_userpath": {
      "type": "userpath",
      "redaction": {
        "method": "hash"
      }
    }
  },
  "applications": {
    "$string": ["hash_userpath"]
  }
}


anything

: 匹配任何值。这基本上等同于通配符正则表达式。

例如,要删除所有字符串:


{
  "rules": {
    "remove_everything": {
      "type": "anything",
      "redaction": {
        "method": "remove"
      }
    }
  },
  "applications": {
    "$string": ["remove_everything"]
  }
}


multiple

: 将多个规则合二为一。这是一个析取 (OR):有问题的字段必须只匹配一个规则来匹配组合规则,而不是全部。


{
  "rules": {
    "remove_ips_and_macs": {
      "type": "multiple",
      "rules": [
        "@ip",
        "@mac"
      ],
      "hide_rule": false,  // Hide the inner rules when showing which rules have been applied. Defaults to false.
      "redaction": {
        "method": "remove"
      }
    }
  },
  "applications": {
    "$string": ["remove_ips_and_macs"]
  }
}


alias

: 别名一个规则到另一个。这与 multiple 相同,只是您只能包装一个规则。


{
  "rules": {
    "remove_ips": {
      "type": "multiple",
      "rule": "@ip",
      "hide_rule": false,  // Hide the inner rule when showing which rules have been applied. Defaults to false.
      "redaction": {
        "method": "remove"
      }
    }
  },
  "applications": {
    "$string": ["remove_ips"]
  }
}


PII 编辑方法



remove

: 删除整个字段。Relay 可以选择将其设置为 null 或完全删除它。


{
  "rules": {
    "remove_ip": {
      "type": "ip",
      "redaction": {
        "method": "remove"
      }
    }
  },
  "applications": {
    "$string": ["remove_ip"]
  }
}


replace

: 用 static string 替换 key


{
  "rules": {
    "replace_ip": {
      "type": "ip",
      "redaction": {
        "method": "replace",
        "text": [censored]"
      }
    }
  },
  "applications": {
    "$string": ["replace_ip"]
  }
}


mask

: 用 "masking(掩码)" 字符 * 替换匹配字符串的每个字符。与 replace 相比,它保留了原始字符串的长度。


{
  "rules": {
    "mask_ip": {
      "type": "ip",
      "redaction": {
        "method": "mask"
      }
    }
  },
  "applications": {
    "$string": ["mask_ip"]
  }
}


hash

: 用它自己的 hash 版本替换字符串。相等的字符串将产生相同的 hash 值,因此,例如,如果您决定对用户 ID 进行散列处理而不是替换或删除它,您仍将获得受影响用户的准确计数。


{
  "rules": {
    "hash_ip": {
      "type": "ip",
      "redaction": {
        "method": "hash"
      }
    }
  }
  "applications": {
    "$string": ["mask_ip"]
  }
}


PII 选择器



选择器允许您将规则限制在事件的某些部分。这对于按变量/字段名称从事件中无条件删除某些数据很有用,但也可用于对真实数据进行保守的测试规则。


数据清理始终适用于原始事件负载。请记住,UI 中的某些字段在 JSON schema 中的调用方式可能不同。在查看事件时,应该始终存在一个名为 "JSON" 的链接,可让您查看数据清理器看到的内容。


例如,在 UI 中称为 "Additional Data" 的内容在事件负载中称为 extra。要删除名为 foo 的特定 key,您可以编写:


[Remove] [Anything] from [extra.foo]


另一个例子。Sentry 知道两种错误消息:异常消息顶级日志消息。以下是由 SDK 发送的此类事件负载(可从 UI 下载)的示例:


{
  "logentry": {
    "formatted": "Failed to roll out the dinglebop"
  },
  "exceptions": {
    "values": [
      {
        "type": "ZeroDivisionError",
        "value": "integer division or modulo by zero"
      }
    ]
  }
}


由于 "error message" 取自 exceptionvalue, 而 "message" 取自 logentry,因此我们必须编写以下内容以将两者从事件中删除:


[Remove] [Anything] from [exception.value]
[Remove] [Anything] from [logentry.formatted]


布尔逻辑


您可以使用布尔逻辑组合选择器。


  • ! 为前缀来反转选择器。foo 匹配 JSON key foo,而 !foo 匹配除 foo 之外的所有内容。
  • 使用 && 构建连词 (AND),例如:foo && !extra.foo 以匹配 key foo,除非在 extra 内部。
  • 使用 || 构建析取 (OR),例如:foo || bar 匹配 foobar


通配符


  • ** 匹配所有子路径,因此 foo.** 匹配 foo 中的所有 JSON 键。
  • * 匹配单个路径项,因此 foo.* 匹配比 foo 低一级的所有 JSON 键。


值类型


使用以下内容按 JSON-type 选择子节:

  • $string 匹配任何字符串值
  • $number 匹配任何整数或浮点值
  • $datetime 匹配事件中代表时间戳的任何字段
  • $array 匹配任何 JSON 数组值
  • $object 匹配任何 JSON 对象

使用以下方法选择 schema 的已知部分:

  • $exception 匹配 {"exception": {"values": [...]}} 中的单个异常实例
  • $stacktrace 匹配一个堆栈跟踪实例
  • $frame 匹配一个帧
  • $request 匹配事件的 HTTP 请求上下文
  • $user 匹配事件的用户上下文
  • $logentry(也适用于 message 属性)
  • $thread 匹配 {"threads": {"values": [...]}} 中的单个线程实例
  • $breadcrumb 匹配 {"breadcrumbs": [...]} 中的单个面包屑
  • $span 匹配一个 trace span
  • $sdk 匹配 {"sdk": ...} 中的 SDK 上下文


示例


  • 删除 event.user:


[Remove] [Anything] from [$user]


  • 删除所有帧局部变量:


[Remove] [Anything] from [$frame.vars]


转义特殊字符


如果要匹配的对象 key 包含空格或特殊字符,可以使用引号将其转义:


[Remove] [Anything] from [extra.'my special value']


这与 附加数据 中的 key my special value 相匹配。

要在引号内转义 '(单引号),请将其替换为 ''(两个引号):


[Remove] [Anything] from [extra.'my special '' value']


这与 附加数据 中的key my special ' value 值相匹配。

相关文章
|
6月前
|
存储 安全 数据管理
数据安全之认识数据资产管理平台
随着企业数字化转型的深入,数据已经成为企业的重要资产。企业需要更加有效地管理和利用数据,以支持业务决策、优化运营和提高竞争力。本文让我们一起来认识数据资产及数据资产管理平台。
396 1
|
SQL 安全 网络安全
03-数据安全-ACA-01-数据安全中心_数据审计_数据脱敏_数据库防火墙(一)
03-数据安全-ACA-01-数据安全中心_数据审计_数据脱敏_数据库防火墙(一)
141 0
|
1月前
|
存储 人工智能 安全
数据治理:强化数据安全与隐私保护的基石
在当今这个数字化时代,数据已成为推动社会进步和企业发展的核心驱动力。从个人消费习惯到企业运营策略,从政府决策支持到科研创新突破,数据无处不在,其价值不言而喻。然而,随着数据量的爆炸性增长和流通范围的扩大,数据安全与隐私保护问题也日益凸显,成为制约数据价值最大化利用的重要瓶颈。因此,构建完善的数据治理体系,特别是强化数据安全与隐私保护,成为了时代发展的必然要求。
|
1月前
|
人工智能 安全 大数据
CDGA|数据要素与数据安全:携手构建可信数据生态的深远探讨
数据要素与数据安全是数字经济时代不可分割的双生子。只有在保障数据安全的前提下,才能充分发挥数据要素的价值,推动数字经济持续健康发展。构建可信数据生态,需要政府、企业、社会组织及广大公众的共同努力,形成合力,共同应对挑战,共创数字经济的美好未来。
|
3月前
|
监控 安全 数据安全/隐私保护
确保数据安全与隐私保护的数据治理最佳实践
【8月更文第13天】随着数据成为企业最重要的资产之一,数据安全和隐私保护变得至关重要。本文将探讨数据治理中的一些最佳实践,并提供具体的代码示例来说明如何实施这些策略。
694 4
|
6月前
|
安全 算法 数据管理
数据安全产品之认识数据脱敏系统
数据脱敏是一种信息安全技术,它通过将敏感信息转换成无实际意义的数据,同时保持原始数据的格式、类型和业务逻辑,以确保数据在使用过程中的安全性和合规性。数据脱敏的目的是保护个人隐私和企业敏感信息,防止数据在非生产环境中泄露或被不当使用。
201 0
|
6月前
|
机器学习/深度学习 自然语言处理 安全
数据安全目前面临的最大挑战是数据泄露和数据滥用的问题
【4月更文挑战第19天】数据安全目前面临的最大挑战是数据泄露和数据滥用的问题
161 1
|
6月前
|
监控 安全 数据处理
《数据治理简易速速上手小册》第4章 数据安全与合规性(2024 最新版)
《数据治理简易速速上手小册》第4章 数据安全与合规性(2024 最新版)
121 0
|
6月前
|
运维 安全 容灾
亿格名片 | 小红书:「红线数据不外泄」准则下的数据安全“种草”攻略
小红书的安全是紧贴业务类型与发展阶段演进开展的,从内容安全再到技术安全、网络安全等方面不断迈进。区别于传统围绕防止黑客入侵的安全建设思路,保障数据安全以及管理访问控制是小红书高度关注的要点,防止红线数据外泄是终态目标。当下,随着数据安全等政策法规的落地,数据安全成了备受关注的领域,在实现我们防护红线数据不外泄的核心目标,且保障员工工作效率及体验,我们选择性地舍去了传统云桌面、沙箱之类比较“重”的工具。基于此,共创落地零信任数据安全体系,集成至内部安全办公系统中,替代3、4个安全软件,实现最小权限访问以及数据分类分级、流转、分发等全方位管控,这样既有效保护红线数据、又不影响员工效率与体验。
亿格名片 | 小红书:「红线数据不外泄」准则下的数据安全“种草”攻略
|
存储 SQL 分布式计算
数据中台实战(11)-数据中台的数据安全解决方案
数据中台实战(11)-数据中台的数据安全解决方案
416 1