@guardbee/guard-core 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/README.md +3 -1
  2. package/TR.md +36 -0
  3. package/ZH.md +36 -0
  4. package/package.json +4 -2
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # @guardbee/guard-core
2
2
 
3
+ **🇬🇧 English** | [🇹🇷 Türkçe](TR.md) | [🇨🇳 中文](ZH.md)
4
+
3
5
  Shared detectors used by other GuardBee MCP packages. Not an MCP server on its own, just a library — you don't need to install this package directly.
4
6
 
5
7
  It exists so the same rule runs everywhere: a static scanner flagging a pattern and the runtime proxy blocking it use one implementation.
@@ -25,7 +27,7 @@ A regex alone masks any 11-digit number as a TC Kimlik No and any 16-digit numbe
25
27
  | VKN (tax number) | Gelir İdaresi check digit, and a `VKN` / `Vergi No` label before the number |
26
28
  | IBAN | ISO 7064 MOD97-10 |
27
29
  | Card number | Luhn |
28
- | Phone (TR) | Mobile (5xx), landline (2xx–4xx) or 850 code after the +90 / 0 prefix |
30
+ | Phone (TR) | Mobile (5xx), landline (2xx–4xx) or 850 code; written with a +90 / 0 prefix or grouped with spaces/dashes, and not part of a URL or id |
29
31
 
30
32
  A match that fails its check (an order number, a tracking code) is left unchanged.
31
33
 
package/TR.md ADDED
@@ -0,0 +1,36 @@
1
+ # @guardbee/guard-core
2
+
3
+ [🇬🇧 English](README.md) | **🇹🇷 Türkçe** | [🇨🇳 中文](ZH.md)
4
+
5
+ Diğer GuardBee MCP paketlerinin kullandığı ortak dedektörler. Kendi başına bir MCP server değil, sadece bir kütüphane — bu paketi doğrudan kurmanız gerekmez.
6
+
7
+ Amacı, aynı kuralın her yerde çalışması: bir kalıbı raporlayan statik tarayıcı ile onu çalışma anında engelleyen proxy tek bir uygulamayı kullanır.
8
+
9
+ ## İçinde neler var
10
+
11
+ | Export | Kullanan | Amaç |
12
+ |---|---|---|
13
+ | `maskPiiInText`, `maskPiiInValue`, `PII_PATTERNS` | security-proxy | Tool sonuçlarında TC Kimlik No, VKN, IBAN, kart, telefon, e-posta, sağlayıcı API key'leri, özel anahtarlar, bağlantı dizeleri ve JWT'leri maskeler; isteğe bağlı bir replacer eşleşmeleri token'a çevirir |
14
+ | `SECRET_RULES` | secret-scanner, security-proxy | 38 secret kuralı (sağlayıcı anahtar ve token'ları, özel anahtarlar, bağlantı dizeleri, JWT). Tarayıcı hepsini raporlar; proxy `broad` işaretli olmayan 32'sini maskeler |
15
+ | `isValidTcKimlik`, `isValidVkn`, `isValidIban`, `isValidLuhn`, `isValidTrPhone` | security-proxy, prompt-leak-scanner | Regex eşleşmesinden sonra doğrulama |
16
+ | `INJECTION_RULES`, `findInjections` | prompt-injection-scanner, security-proxy | İngilizce ve Türkçe 27 injection kuralı, base64 çözme dahil; tarayıcı 17 kesin kuralı kullanır |
17
+ | `scanForPromptInjection`, `scanToolResult` | security-proxy | Kesin bir high/critical kuralda engeller, geri kalan her şeyde uyarır |
18
+ | `classifyTool`, `CAPABILITY_RULES` | toxic-flow-auditor, security-proxy | Bir tool'u untrusted-content / sensitive-data / exfiltration / destructive olarak etiketler (lethal trifecta) |
19
+
20
+ ## Checksum doğrulamalı maskeleme
21
+
22
+ Tek başına regex, 11 haneli her sayıyı TC Kimlik No, 16 haneli her sayıyı kart numarası sanar. Artık her eşleşme maskelenmeden önce kontrol edilir:
23
+
24
+ | Kalıp | Kontrol |
25
+ |---|---|
26
+ | TC Kimlik No | Resmi 10. ve 11. hane algoritması |
27
+ | VKN (vergi kimlik no) | Gelir İdaresi kontrol hanesi ve sayıdan önce bir `VKN` / `Vergi No` etiketi |
28
+ | IBAN | ISO 7064 MOD97-10 |
29
+ | Kart numarası | Luhn |
30
+ | Telefon (TR) | Cep (5xx), sabit hat (2xx–4xx) veya 850 kodu; +90 / 0 önekiyle ya da boşluk/tire ile gruplanmış yazılmış olmalı, bir URL'nin veya kimliğin parçası olmamalı |
31
+
32
+ Kontrolden geçemeyen eşleşme (sipariş no, takip kodu) olduğu gibi bırakılır.
33
+
34
+ ## Kesin ve genel kurallar
35
+
36
+ Injection ve secret kuralları, sıradan metinde de eşleşen kalıplar için bir `broad` bayrağı taşır: "act as", "developer mode", 40 karakterlik herhangi bir base64 dizisi, yayınlanabilir (publishable) bir Stripe anahtarı. Bulguyu bir kişiye gösteren statik tarayıcılar genel injection kurallarını atlar; çalışma anındaki proxy ise genel bir kurala dayanarak asla engelleme veya maskeleme yapmaz, çünkü oradaki yanlış bir eşleşme oturumu hassas veri tutuyor diye de işaretler ya da meşru bir çağrıyı durdurur.
package/ZH.md ADDED
@@ -0,0 +1,36 @@
1
+ # @guardbee/guard-core
2
+
3
+ [🇬🇧 English](README.md) | [🇹🇷 Türkçe](TR.md) | **🇨🇳 中文**
4
+
5
+ 其他 GuardBee MCP 包共用的检测规则库。它本身不是 MCP 服务器,只是一个库——你不需要直接安装这个包。
6
+
7
+ 它存在的目的是让同一条规则在所有地方运行:报告某个模式的静态扫描器,和在运行时拦截它的代理,使用的是同一份实现。
8
+
9
+ ## 包含内容
10
+
11
+ | 导出 | 使用方 | 用途 |
12
+ |---|---|---|
13
+ | `maskPiiInText`、`maskPiiInValue`、`PII_PATTERNS` | security-proxy | 对工具结果中的土耳其身份证号(TC Kimlik No)、税号(VKN)、IBAN、银行卡、电话、电子邮件、服务商 API 密钥、私钥、数据库连接串和 JWT 进行脱敏;可选的 replacer 可以把匹配项转换为令牌 |
14
+ | `SECRET_RULES` | secret-scanner、security-proxy | 38 条密钥规则(服务商密钥和令牌、私钥、数据库连接串、JWT)。扫描器会报告全部规则;代理只对未标记 `broad` 的 32 条进行脱敏 |
15
+ | `isValidTcKimlik`、`isValidVkn`、`isValidIban`、`isValidLuhn`、`isValidTrPhone` | security-proxy、prompt-leak-scanner | 正则匹配之后的校验 |
16
+ | `INJECTION_RULES`、`findInjections` | prompt-injection-scanner、security-proxy | 27 条英文和土耳其语注入规则,包含 base64 解码;扫描器使用其中 17 条精确规则 |
17
+ | `scanForPromptInjection`、`scanToolResult` | security-proxy | 命中精确的 high/critical 规则时拦截,其余情况只警告 |
18
+ | `classifyTool`、`CAPABILITY_RULES` | toxic-flow-auditor、security-proxy | 把工具标记为 untrusted-content / sensitive-data / exfiltration / destructive(lethal trifecta) |
19
+
20
+ ## 经校验和验证的脱敏
21
+
22
+ 单靠正则,会把任何 11 位数字当成 TC Kimlik No,把任何 16 位数字当成银行卡号。现在每个匹配在脱敏前都会先经过检查:
23
+
24
+ | 模式 | 检查 |
25
+ |---|---|
26
+ | TC Kimlik No | 官方的第 10、11 位校验算法 |
27
+ | VKN(税号) | 土耳其税务局(Gelir İdaresi)校验位,且数字前需有 `VKN` / `Vergi No` 标签 |
28
+ | IBAN | ISO 7064 MOD97-10 |
29
+ | 银行卡号 | Luhn |
30
+ | 电话(土耳其) | 手机(5xx)、座机(2xx–4xx)或 850 号段;需带 +90 / 0 前缀,或用空格/短横线分组书写,且不能是 URL 或 ID 的一部分 |
31
+
32
+ 未通过检查的匹配(订单号、快递单号)保持原样。
33
+
34
+ ## 精确规则与通用规则
35
+
36
+ 注入规则和密钥规则都带有一个 `broad` 标记,用于那些在普通文本中也会匹配的模式:"act as"、"developer mode"、任意 40 个字符的 base64 串、可公开的 Stripe publishable key。把结果展示给人看的静态扫描器会跳过通用注入规则;运行时代理则从不基于通用规则进行拦截或脱敏,因为在那里一次误匹配还会把会话标记为持有敏感数据,或拦下一次正常调用。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@guardbee/guard-core",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Shared detectors for GuardBee MCP packages — checksum-validated PII masking, prompt injection patterns, and lethal-trifecta tool classification",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -19,7 +19,9 @@
19
19
  },
20
20
  "files": [
21
21
  "dist",
22
- "README.md"
22
+ "README.md",
23
+ "TR.md",
24
+ "ZH.md"
23
25
  ],
24
26
  "keywords": [
25
27
  "mcp",