Skip to content

收集敏感信息正则表达式 #25

@RuoJi6

Description

@RuoJi6
	// 预定义的正则表达式
	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

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions