-
Notifications
You must be signed in to change notification settings - Fork 110
Open
Description
// 预定义的正则表达式
defaultPatterns := []PatternInfo{
// AWS 凭据
{"accessKeyId[:=]\\s*([\\w-]+)", i18n.T("searchall.sensitive_type.aws_access_key")},
{"accessKeySecret[:=]\\s*([\\w-]+)", i18n.T("searchall.sensitive_type.aws_secret_key")},
// 企业微信
{"(?i).*corp(Id|Secret)=(\\w+)", i18n.T("searchall.sensitive_type.wechat_corp")},
// QQ相关
{"(?i).*qq\\.im\\.(sdkappid|privateKey|identifier)=(.*)", i18n.T("searchall.sensitive_type.qq_credentials")},
// 用户名密码 (英文)
{"(?i)(?:user(?:name)?\\s*[=:])\\s*([\\S]+)", i18n.T("searchall.sensitive_type.username")},
{"(?i)(?:pass(?:word)?\\s*[=:])\\s*([\\S]+)", i18n.T("searchall.sensitive_type.password")},
// 用户名密码 (中文)
{"(?:账户|账户名|用户名|账号|测试账户)\\s*[=::]*\\s*([\\w@#!$%^&*-]{3,20})", i18n.T("searchall.sensitive_type.chinese_account")},
{"(?:默认口令|默认密码|口令|密码|测试密码)\\s*[=::]*\\s*([\\w@#!$%^&*-]{3,20})", i18n.T("searchall.sensitive_type.chinese_password")},
// 数据库连接配置
{"jdbc\\.(driver|url|type)\\s*=(.*)", i18n.T("searchall.sensitive_type.jdbc_config")},
{"#jdbc\\.(driver|url|type)\\s*=(.*)", i18n.T("searchall.sensitive_type.jdbc_config_comment")},
// 数据库配置参数
{"(?i)(db|database)[_-]?(host|hostname|server)\\s*[=:]\\s*[^\\s;]+", i18n.T("searchall.sensitive_type.db_host_config")},
{"(?i)(db|database)[_-]?(port|name|user|username|pass|password)\\s*[=:]\\s*[^\\s;]+", i18n.T("searchall.sensitive_type.db_connection_params")},
{"(?i)(mysql|postgres|mongodb|redis|oracle)[_-]?(host|port|user|password|database)\\s*[=:]\\s*[^\\s;]+", i18n.T("searchall.sensitive_type.db_connection_info")},
// 连接池配置
{"(?i)(connection[_-]?string|conn[_-]?str)\\s*[=:]\\s*[^\\s;]+", i18n.T("searchall.sensitive_type.db_connection_string")},
{"(?i)(datasource|data[_-]?source)[_-]?(url|host|name)\\s*[=:]\\s*[^\\s;]+", i18n.T("searchall.sensitive_type.datasource_config")},
// API 密钥
{"(?i)api[_-]?key\\s*[=:]\\s*['\"]?([a-zA-Z0-9]{20,})", i18n.T("searchall.sensitive_type.api_key")},
{"(?i)secret[_-]?key\\s*[=:]\\s*['\"]?([a-zA-Z0-9]{20,})", i18n.T("searchall.sensitive_type.secret_key")},
{"(?i)access[_-]?token\\s*[=:]\\s*['\"]?([a-zA-Z0-9]{20,})", i18n.T("searchall.sensitive_type.access_token")},
// 数据库URL和连接字符串
{"mysql://[^\\s]+", i18n.T("searchall.sensitive_type.mysql_url")},
{"postgresql://[^\\s]+", i18n.T("searchall.sensitive_type.postgresql_url")},
{"postgres://[^\\s]+", i18n.T("searchall.sensitive_type.postgresql_url")},
{"mongodb://[^\\s]+", i18n.T("searchall.sensitive_type.mongodb_url")},
{"mongo://[^\\s]+", i18n.T("searchall.sensitive_type.mongodb_url")},
{"redis://[^\\s]+", i18n.T("searchall.sensitive_type.redis_url")},
{"rediss://[^\\s]+", i18n.T("searchall.sensitive_type.redis_ssl_url")},
{"oracle://[^\\s]+", i18n.T("searchall.sensitive_type.oracle_url")},
{"mssql://[^\\s]+", i18n.T("searchall.sensitive_type.sqlserver_url")},
{"sqlserver://[^\\s]+", i18n.T("searchall.sensitive_type.sqlserver_url")},
{"sqlite://[^\\s]+", i18n.T("searchall.sensitive_type.sqlite_url")},
{"cassandra://[^\\s]+", i18n.T("searchall.sensitive_type.cassandra_url")},
{"elasticsearch://[^\\s]+", i18n.T("searchall.sensitive_type.elasticsearch_url")},
{"influxdb://[^\\s]+", i18n.T("searchall.sensitive_type.influxdb_url")},
{"neo4j://[^\\s]+", i18n.T("searchall.sensitive_type.neo4j_url")},
{"clickhouse://[^\\s]+", i18n.T("searchall.sensitive_type.clickhouse_url")},
{"couchdb://[^\\s]+", i18n.T("searchall.sensitive_type.couchdb_url")},
{"memcached://[^\\s]+", i18n.T("searchall.sensitive_type.memcached_url")},
{"etcd://[^\\s]+", i18n.T("searchall.sensitive_type.etcd_url")},
{"consul://[^\\s]+", i18n.T("searchall.sensitive_type.consul_url")},
// JDBC连接字符串
{"jdbc:(mysql|postgresql|oracle|sqlserver|sqlite|h2|derby|hsqldb)://[^\\s]+", "JDBC连接URL"},
// 其他数据库连接格式
{"(?i)server\\s*=\\s*[^;\\s]+;.*database\\s*=\\s*[^;\\s]+", "SQL Server连接字符串"},
{"(?i)host\\s*=\\s*[^;\\s]+.*dbname\\s*=\\s*[^;\\s]+", "PostgreSQL连接字符串"},
{"(?i)data\\s+source\\s*=\\s*[^;\\s]+", ".NET连接字符串"},
{"(?i)provider\\s*=\\s*[^;\\s]+.*data\\s+source\\s*=\\s*[^;\\s]+", "OLE DB连接字符串"},
// 云数据库连接
{"(?i)(rds|aurora|cosmos|dynamodb|firestore|bigtable)://[^\\s]+", "云数据库连接URL"},
{"(?i)(atlas|cloud)\\.mongodb\\.[^\\s]+", "MongoDB Atlas连接"},
{"(?i)[^\\s]+\\.rds\\.[^\\s]+\\.amazonaws\\.com", "AWS RDS连接"},
{"(?i)[^\\s]+\\.database\\.[^\\s]+\\.azure\\.com", "Azure数据库连接"},
{"(?i)[^\\s]+\\.sql\\.goog", "Google Cloud SQL连接"},
// NoSQL数据库
{"(?i)(couchbase|riak|hbase|accumulo)://[^\\s]+", "NoSQL数据库连接"},
{"(?i)(zookeeper|kafka)://[^\\s]+", "消息队列连接"},
// 时序数据库
{"(?i)(prometheus|grafana|telegraf)://[^\\s]+", "时序数据库连接"},
{"(?i)(timescaledb|questdb)://[^\\s]+", "时序数据库连接"},
// 图数据库
{"(?i)(arangodb|orientdb|janusgraph)://[^\\s]+", "图数据库连接"},
// 搜索引擎
{"(?i)(solr|opensearch)://[^\\s]+", "搜索引擎连接"},
// 缓存数据库
{"(?i)(hazelcast|ignite|coherence)://[^\\s]+", "缓存数据库连接"},
// SSH 密钥
{"-----BEGIN.*PRIVATE KEY-----", "SSH私钥"},
{"-----BEGIN RSA PRIVATE KEY-----", "RSA私钥"},
{"-----BEGIN OPENSSH PRIVATE KEY-----", "OpenSSH私钥"},
// 云服务商 API 密钥
// 阿里云
{"LTAI[0-9a-zA-Z]{20}", i18n.T("searchall.sensitive_type.aliyun_access_key")},
// 腾讯云
{"AKID[0-9a-zA-Z]{32}", i18n.T("searchall.sensitive_type.tencent_secret_id")},
// 亚马逊云 (AWS)
{"(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}", i18n.T("searchall.sensitive_type.aws_access_key_id")},
// 火山引擎
{"(AKL|AKTP)[a-zA-Z0-9]{35,50}", i18n.T("searchall.sensitive_type.volcengine_access_key")},
// 金山云
{"AKLT[\\w-]{20}", i18n.T("searchall.sensitive_type.kingsoft_access_key")},
// 京东云
{"JDC_[0-9A-Z]{28}", i18n.T("searchall.sensitive_type.jdcloud_access_key")},
// 谷歌云
{"AIza[0-9A-Za-z_\\-]{35}", i18n.T("searchall.sensitive_type.google_api_key")},
// 华为云
{"(?i)(?:huawei|hw).*[=:]\\s*[A-Z0-9]{20}", i18n.T("searchall.sensitive_type.huawei_access_key")},
// 七牛云
{"(?i)(?:qiniu|qi).*[=:]\\s*[a-zA-Z0-9-_]{40}", i18n.T("searchall.sensitive_type.qiniu_access_key")},
// 联通云
{"(?i)(?:unicom|wo).*[=:]\\s*[A-Z0-9]{36}", i18n.T("searchall.sensitive_type.unicom_access_key")},
// 移动云 (控制台权限)
{"(?i)(?:chinamobile|cmcc).*[=:]\\s*[A-Z0-9]{20}", i18n.T("searchall.sensitive_type.chinamobile_access_key")},
// 移动云 (MD5形式) + endpoint匹配
{"(?i)(?:.*cmecloud\\.cn.*[=:]\\s*[a-z0-9]{32}|[a-z0-9]{32}.*cmecloud\\.cn)", i18n.T("searchall.sensitive_type.chinamobile_credentials")},
// 紫光云 + endpoint匹配
{"(?i)(?:.*unicloudsrv\\.com.*[=:]\\s*[A-Z0-9]{16}|[A-Z0-9]{16}.*unicloudsrv\\.com)", i18n.T("searchall.sensitive_type.uniscloud_access_key")},
// 中国特有敏感信息
// 身份证号相关匹配 (包含中文关键词)
{"(?:身份证|身份证号|身份证号码|ID[_\\s]*card)[:\\s]*([1-9]\\d{5}(18|19|20)\\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx])", i18n.T("searchall.sensitive_type.id_card_18")},
{"(?:身份证|身份证号|身份证号码|ID[_\\s]*card)[:\\s]*([1-9]\\d{5}\\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\\d{3})", i18n.T("searchall.sensitive_type.id_card_15")},
// 纯数字身份证号匹配 (更严格)
{"\\b[1-9]\\d{5}(18|19|20)\\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]\\b", i18n.T("searchall.sensitive_type.id_card_18")},
{"\\b[1-9]\\d{5}\\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\\d{3}\\b", i18n.T("searchall.sensitive_type.id_card_15")},
// 中国手机号相关匹配 (包含中文关键词)
{"(?:手机|手机号|手机号码|电话|联系电话|mobile|phone)[:\\s]*([1][3-9]\\d{9})", i18n.T("searchall.sensitive_type.china_mobile")},
{"(?:座机|固话|固定电话|landline)[:\\s]*(0\\d{2,3}-?\\d{7,8})", i18n.T("searchall.sensitive_type.china_landline")},
// 银行卡号相关匹配 (包含中文关键词)
{"(?:银行卡|银行卡号|卡号|bank[_\\s]*card)[:\\s]*(\\d{16,19})", i18n.T("searchall.sensitive_type.bank_card")},
// {"\\b\\d{16,19}\\b", i18n.T("searchall.sensitive_type.bank_card")},
// 中国邮政编码相关匹配 (包含中文关键词)
{"(?:邮政编码|邮编|postal[_\\s]*code)[:\\s]*([1-9]\\d{5})", i18n.T("searchall.sensitive_type.postal_code")},
// QQ号相关匹配 (包含中文关键词)
{"(?:QQ|QQ号|qq|qq号)[:\\s]*([1-9][0-9]{4,10})", i18n.T("searchall.sensitive_type.qq_number")},
// 微信号相关匹配 (包含中文关键词)
{"(?:微信|微信号|wechat|WeChat)[:\\s]*([a-zA-Z][-_a-zA-Z0-9]{5,19})", i18n.T("searchall.sensitive_type.wechat_id")},
// 中文姓名相关匹配 (包含中文关键词)
{"(?:姓名|真实姓名|用户姓名|客户姓名|联系人|name)[:\\s]*([\u4e00-\u9fa5]{2,4})", i18n.T("searchall.sensitive_type.chinese_name")},
// 电子邮箱
{"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}", i18n.T("searchall.sensitive_type.email")},
// 开发常用敏感信息
// JWT Token
{"eyJ[A-Za-z0-9-_=]+\\.[A-Za-z0-9-_=]+\\.?[A-Za-z0-9-_.+/=]*", i18n.T("searchall.sensitive_type.jwt_token")},
// Bearer Token
{"Bearer\\s+[a-zA-Z0-9\\-._~+/]+=*", i18n.T("searchall.sensitive_type.bearer_token")},
// Authorization Header
{"Authorization:\\s*[a-zA-Z0-9\\-._~+/]+=*", i18n.T("searchall.sensitive_type.authorization_header")},
// Session ID
{"(?i)session[_-]?id\\s*[=:]\\s*[a-zA-Z0-9]{20,}", i18n.T("searchall.sensitive_type.session_id")},
// Cookie值
{"(?i)cookie\\s*[=:]\\s*[^;\\s]+", i18n.T("searchall.sensitive_type.cookie_value")},
// 数据库连接字符串
{"(?i)(mysql|postgresql|mongodb|redis|oracle|mssql)://[^\\s]+", i18n.T("searchall.sensitive_type.db_connection_url")},
// Git仓库URL
{"(?i)git@[^\\s:]+:[^\\s]+\\.git", i18n.T("searchall.sensitive_type.git_ssh_repo")},
{"(?i)https?://[^\\s]+\\.git", i18n.T("searchall.sensitive_type.git_https_repo")},
}
Metadata
Metadata
Assignees
Labels
No labels