规则中心
AppInfoScanner 内置规则的全量浏览:凭据检测、PII、组件识别、加固特征、敏感权限、公共域名后缀等,与主程序 default_config.py 保持同步(由 scripts/sync-rules.py 生成,配置版本随主程序发布更新)。规则在扫描中的生效方式与自定义覆盖见自定义规则。
共收录 9 类 375 条规则,与主程序内置配置同步(配置版本 1.0.11)。
云厂商与平台的密钥 / 令牌、JWT / 私钥 / 通用凭据形态(filter_ak_map)
Aliyun_OSS3 regex
(?i)(?:aliyun|ali|oss)[_-]?(?:access[_-]?key[_-]?id|access[_-]?key[_-]?secret)[\'"]?\s*[:=]\s*[\'"][0-9a-zA-Z]{10,}[\'"](?i)(?:aliyun|ali|oss)[_-]?secret[\'"]?\s*[:=]\s*[\'"][0-9a-zA-Z]{20,}[\'"]LTAI[A-Za-z0-9]{12,20}Tencent_Cloud1 regex
AKID[A-Za-z0-9]{32}Amazon_AWS_AccessKeyID1 regex
(?:AKIA|ASIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|A3T)[A-Z0-9]{16}Google_APIKey1 regex
AIza[0-9A-Za-z\-_]{35}Google_OAuth_ClientID1 regex
[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.comCloudinary1 regex
cloudinary://[0-9]{15}:[0-9A-Za-z]+@[a-z]+GitHub_Token2 regex
(?:ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9]{36}github_pat_[A-Za-z0-9_]{20,}GitLab_PAT1 regex
glpat-[A-Za-z0-9\-_]{20}Slack_Token1 regex
xox[bapoir]-[A-Za-z0-9\-]{10,}Slack_Webhook1 regex
https://hooks\.slack\.com/services/T[A-Za-z0-9_]{8,}/B[A-Za-z0-9_]{8,}/[A-Za-z0-9_]{24}Stripe_Key1 regex
[sr]k_live_[0-9a-zA-Z]{24}Square_Token2 regex
sq0atp-[0-9A-Za-z\-_]{22}sq0csp-[0-9A-Za-z\-_]{43}PayPal_Braintree1 regex
access_token\$production\$[0-9a-z]{16}\$[0-9a-f]{32}Twilio_APIKey1 regex
SK[0-9a-fA-F]{32}SendGrid_Key1 regex
SG\.[A-Za-z0-9\-_]{22}\.[A-Za-z0-9\-_]{43}Mailgun_Key1 regex
key-[0-9a-zA-Z]{32}Facebook_AccessToken1 regex
EAACEdEose0c[A-Za-z0-9]+Discord_Bot_Token1 regex
[NMz][A-Za-z0-9]{23}\.[A-Za-z0-9]{6}\.[A-Za-z0-9]{27}JWT1 regex
eyJ[A-Za-z0-9_\-]{8,}\.[A-Za-z0-9_\-]{8,}\.[A-Za-z0-9_\-]*Private_Key_Block1 regex
-----BEGIN (?:RSA |EC |DSA |OPENSSH |PGP )?PRIVATE KEY-----Authorization_Header2 regex
(?i)basic\s+[A-Za-z0-9_\-:\.=]{16,}(?i)bearer\s+[A-Za-z0-9_\-:\.=]{16,}Password_In_URL1 regex
://[A-Za-z0-9_\-]+:[A-Za-z0-9_@!#$%^&*\-]{3,}@Generic_API_Key1 regex
(?i)(?:api[_-]?key|apikey|app[_-]?key|access[_-]?key)[\'"]?\s*[:=]\s*[\'"][0-9a-zA-Z\-_]{8,}[\'"]Generic_Secret1 regex
(?i)(?:secret|password|passwd|pwd|pass)[a-z_-]*[\'"]?\s*[:=]\s*[\'"][0-9a-zA-Z\-_!@#$%^&*]{8,}[\'"]Generic_Token1 regex
(?i)token[\'"]?\s*[:=]\s*[\'"][0-9a-zA-Z\-_.=+]{8,}[\'"]Cloud_OSS_Key1 regex
(?i)(?:oss|cos|s3|storage)[_-]?(?:access[_-]?(?:key|id)|secret|key)[a-z]*[\'"]?\s*[:=]\s*[\'"][0-9a-zA-Z\-_]{8,}[\'"]WeChat_SDK2 regex
(?i)(?:wx|wechat|weixin)[_-]?(?:app[_-]?secret|secret)[\'"]?\s*[:=]\s*[\'"][0-9a-f]{32}[\'"](?i)(?:app[_-]?id)[\'"]?\s*[:=]\s*[\'"]wx[0-9a-f]{16}[\'"]Alipay_SDK2 regex
(?i)(?:alipay|ali)[_-]?(?:app[_-]?id|pid|merchant[_-]?id)[\'"]?\s*[:=]\s*[\'"]\d{16}[\'"](?i)(?:alipay|ali)[_-]?(?:private[_-]?key|secret)[\'"]?\s*[:=]\s*[\'"]MIIC[a-zA-Z0-9+/=]{50,}[\'"]Weibo_SDK1 regex
(?i)(?:weibo|sina)[_-]?(?:app[_-]?key|secret)[\'"]?\s*[:=]\s*[\'"][0-9a-f]{10,32}[\'"]Database_Auth2 regex
(?i)(?:mongo(?:db)?|postgres(?:ql)?|mysql|mariadb|amqp|rabbitmq)://[^\s"\':]+:[^\s"\']+@[^\s"\']+(?i)redis://:[^\s"\']+@Huawei_Cloud1 regex
(?i)(?:huawei|hw)[_-]?(?:ak|access[_-]?key)[\'"]?\s*[:=]\s*[\'"][A-Z0-9]{10,}[\'"]Azure_Storage1 regex
AccountKey=[A-Za-z0-9+/=]{50,}AWS_SecretKey1 regex
(?i)aws[_-]?secret[_-]?access[_-]?key[\'"]?\s*[:=]\s*[\'"][A-Za-z0-9/+=]{40}[\'"]Sentry_DSN1 regex
https://[0-9a-f]{32}@[0-9a-f]{16}\.ingest\.sentry\.ioAI_OpenAI1 regex
sk-(?!ant-)(?:proj-)?[a-zA-Z0-9_-]{20,}AI_Anthropic1 regex
sk-ant-(?:api03-)?[a-zA-Z0-9_-]{20,}AI_HuggingFace1 regex
hf_[a-zA-Z0-9]{20,}AI_DashScope1 regex
(?i)(?:dashscope|qwen|tongyi)[_-]?(?:key|secret)[\'"]?\s*[:=]\s*[\'"]sk-[a-zA-Z0-9]{10,}[\'"]AI_GLM1 regex
(?i)(?:zhipu|glm|chatglm)[_-]?(?:key|api[_-]?key)[\'"]?\s*[:=]\s*[\'"]\w{6,12}\.[a-zA-Z0-9]{8,}[\'"]AI_Baidu_ERNIE1 regex
(?i)(?:ernie|wenxin|baidu[_-]?ai|千帆)[_-]?(?:secret[_-]?key)[\'"]?\s*[:=]\s*[\'"][0-9a-zA-Z]{20,}[\'"]Map_AMap1 regex
(?i)(?:amap|gaode|高德)[_-]?(?:key|api[_-]?key|secret)[\'"]?\s*[:=]\s*[\'"][0-9a-f]{32}[\'"]Map_Baidu1 regex
(?i)(?:bmap|baidu[_-]?map|百度地图)[_-]?(?:ak|api[_-]?key|sn)[\'"]?\s*[:=]\s*[\'"][0-9a-zA-Z]{24}[\'"]Map_Tencent1 regex
(?i)(?:qq[_-]?map|tencent[_-]?map|腾讯地图)[_-]?(?:key|sk)[\'"]?\s*[:=]\s*[\'"][0-9A-Z]{26,32}[\'"]Map_Box1 regex
(?:pk|sk)\.eyJ[a-zA-Z0-9._-]{40,}AI_DeepSeek2 regex
(?i)deepseek[_-]?(?:key|api[_-]?key|token)[\'"]?\s*[:=]\s*[\'"]sk-[a-zA-Z0-9]{20,}[\'"]api\.deepseek\.comAI_Moonshot2 regex
(?i)(?:moonshot|kimi)[_-]?(?:key|api[_-]?key|token)[\'"]?\s*[:=]\s*[\'"]sk-[a-zA-Z0-9]{20,}[\'"]api\.moonshot\.cnAI_MiniMax2 regex
(?i)minimax[_-]?(?:key|api[_-]?key|token)[\'"]?\s*[:=]\s*[\'"]eyJ[a-zA-Z0-9._-]{20,}[\'"]api\.minimaxi?\.chatAI_Volcengine2 regex
(?i)(?:volcengine|doubao|huoshan|ark)[_-]?(?:key|api[_-]?key|token|secret)[\'"]?\s*[:=]\s*[\'"][a-zA-Z0-9\-_.]{16,}[\'"]ark\.cn-[a-z]+\.volces\.comAI_SiliconCloud2 regex
(?i)silicon(?:cloud|flow)[_-]?(?:key|api[_-]?key)[\'"]?\s*[:=]\s*[\'"]sk-[a-zA-Z0-9]{20,}[\'"]api\.siliconflow\.cnAI_Iflytek_Spark1 regex
(?i)(?:spark|xunfei|iflytek)[_-]?(?:api[_-]?key|api[_-]?secret)[\'"]?\s*[:=]\s*[\'"][0-9a-f]{16,}[\'"]AI_Groq1 regex
gsk_[a-zA-Z0-9]{20,}AI_OpenRouter1 regex
sk-or-(?:v1-)?[a-zA-Z0-9-]{20,}AI_Together1 regex
tgp_[a-zA-Z0-9_]{20,}AI_Endpoints7 regex
https?://api\.(?:openai|deepseek|anthropic|groq|together)\.com[/\w.-]*https?://api\.(?:moonshot\.cn|minimaxi?\.chat|siliconflow\.cn)[/\w.-]*https?://dashscope\.aliyuncs\.com[/\w.-]*https?://ark\.cn-[a-z]+\.volces\.com[/\w.-]*https?://open\.bigmodel\.cn[/\w.-]*https?://aip\.baidubce\.com[/\w.-]*https?://api\.minimax\.chat[/\w.-]*Coding_AI1 regex
(?i)(?:cursor|windsurf|codeium|tabnine|copilot|jetbrains[_-]?ai|cody|sourcegraph|augment)[_-]?(?:key|token|api[_-]?key)[\'"]?\s*[:=]\s*[\'"][a-zA-Z0-9\-_.=+]{16,}[\'"]Firebase_Config1 regex
(?i)firebase[_-]?(?:api[_-]?key|config)[\'"]?\s*[:=]\s*[\'"][A-Za-z0-9\-_]{30,}[\'"]补充规则
规则中心欢迎补充新规则(新云厂商凭据、PII 类型、组件 / 加固特征、敏感权限等)。两种提交方式:
- Issue 提交(推荐):使用规则补充模板开一个 issue,填写规则类别、正则、说明与测试用例。
- 直接 PR:编辑站点仓库的
shared/community-rules.ts,按文件内示例格式追加。
规则要求(审核标准):
- 正则为 Python
re语法,与主程序一致;请给出应命中 / 不应命中两组测试串,避免误报。 - 凭据 / PII 类规则需说明依据(官方文档、公开格式规范或实测样本)。
- 组件 / 加固特征需给出组件包名(或二进制标记串)与风险说明,有 CVE 的附编号与安全版本。
审核合入后规则会显示在上方「社区补充规则」区;长期有效的规则将随主程序下个版本固化进内置配置,并在发版时同步回官方规则。
