某日凌晨 2:13,汇丰风控系统接连收到 17 次 FaceID 登录请求。表面上是一位常用 iPhone 的老用户,却在毫秒级触发了“高危行为图谱”。
为什么 FaceID 没识别错,却仍然被汇丰风控拦截?
本篇,我们将从一次“模拟 FaceID 攻击”事件切入,拆解汇丰多重登录风控机制——并附完整模型检测与策略代码。
一、风控体系多层结构图
二、FaceID 模拟攻击复盘
攻击者行为流程:
- 获取受害人 iCloud 备份 + 旧设备使用“假 iPhone + 导入模型”方式伪造 FaceID(物理伪造)模拟真实解锁 + 提交登录请求被风控系统标记为“FaceID 符合但行为异常”
三、端侧行为采集与设备指纹(JavaScript 示例)
function collectDeviceSignal() { return { device_id: getHardwareId(), touch_speed: getTouchMetrics(), timezone: Intl.DateTimeFormat().resolvedOptions().timeZone, gyro: window.DeviceMotionEvent ? true : false, camera: navigator.mediaDevices ? true : false }}
异常点举例:
- 时间戳 vs 时区不匹配(人在美国,设备系统在中国)Touch 轨迹“极其匀速” → 脚本模拟行为设备序列号与注册时不一致
四、登录风险评分模型(Python)
🎯 模型输入特征:
[ is_faceid_passed, # 1 device_match_score, # 0~1 touch_behavior_score, # 0~1 timezone_gap_hours, # eg. 11 login_hour # 2 (凌晨2点)]
🎯 模型输出 + 拦截策略:
def risk_score(features): score = 0 if not features[0]: return 100 # FaceID 未通过直接拒绝 score += (1 - features[1]) * 40 score += (1 - features[2]) * 30 score += min(features[3], 12) * 2 if features[4] < 6: score += 10 # 凌晨时段加权 return min(score, 100)
⏱ 实例输入:
risk_score([1, 0.55, 0.3, 12, 2]) # 返回风险分:85
✅ 输出结果:
{ "uid": "8891001", "risk_score": 85, "trigger": ["设备指纹偏移", "滑动轨迹异常", "操作时间异常"], "action": "require_sms_2fa"}
五、行为图谱:登录关联分析
基于 Neo4j 构建登录行为图谱:
MATCH (u:User)-[:LOGIN]->(d:Device)WHERE d.ip <> u.last_known_ipRETURN u.uid, d.device_id, d.ip
示例图谱视图:
- 同一 UID 在 2 小时内连接 4 个国家设备指纹从
iphone_14
→ iphone_x
,降级跳变IP 和经纬度跳变超过 2000 公里→ 地理不一致、设备降级、行为异常同时命中
六、拦截策略联动中心(策略 DSL)
汇丰风控策略系统采用 DSL 规则配置:
rule: suspicious_loginwhen: - device_score < 0.6 - touch_score < 0.4 - timezone_diff > 6 - is_faceid_passed == truethen: - trigger_2fa - log("模拟 FaceID 风险:UID ${uid}")
系统可自动:
- 发起短信 / 邮件二次认证冻结高敏感交易(大额转账)向审计中心打标用户行为记录
七、反制建议(从攻击手段出发)
攻击方式 | 风控反制措施 |
---|---|
FaceID 模拟识别 | 加入操作轨迹与真实人脸联动识别 |
设备模拟 + Root 权限 | 检测设备 root 状态 + 系统完整性校验 |
夜间操作 / 自动滑动脚本 | Touch/滑动轨迹分析 + 时段异常得分 |
跨国频繁登录 | GeoIP 跳变检测 + 登出旧设备后强制二次登录验证 |
🎯 总结
本次模拟攻击虽然绕过了 FaceID 系统,但无法伪造用户“习惯”——
汇丰风控体系通过:
- 端侧滑动行为建模设备指纹融合比对多模型联动风控策略
最终在毫秒级精准拦截了异常行为。
📌 结果展示(监控视图)
模块 | 检测耗时 | 拦截率 | 日均触发 |
---|---|---|---|
行为轨迹识别 | < 20ms | 93% | 12,000+ |
风险评分模型 | < 8ms | 96% | 8,000+ |
GeoIP + 时区对比 | < 3ms | 92% | 15,000+ |
🧠 技术语录
“人脸可以模拟,滑动节奏骗不了;登录可以绕过,习惯画像骗不了。强大无须多盐”