ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Aliens Eye如何判断账号是否存在?ML+30维特征混合检测算法深度剖析

Aliens Eye如何判断账号是否存在?ML+30维特征混合检测算法深度剖析 Aliens Eye如何判断账号是否存在ML30维特征混合检测算法深度剖析【免费下载链接】Aliens_eyeHunt down 840 social media accounts using AI项目地址: https://gitcode.com/gh_mirrors/al/Aliens_eyeAliens Eye是一款 AI 驱动的用户名账号检测OSINT扫描工具能在 840 个社交平台上一键搜索目标账号是否存在。它的核心不是简单的HTTP 状态码检查而是一套ML 机器学习模型 30 维页面特征的混合检测算法。本文将带你完整拆解这套算法的工作原理看懂它是如何把每一次网页响应判断成 Found、Maybe 或 Not Found 的。一、为什么看状态码不够最朴素的账号存在性检测是这样的请求https://某平台.com/用户名返回 200 就算存在返回 404 就算不存在。但在真实世界里这种做法漏洞百出很多平台对不存在的用户返回 200 一个该用户不存在的页面有些平台把访客重定向到登录页、地区限制页状态码完全撒谎首页 200、404 页也可能包含大量与真实个人资料相似的 DOM 结构。Aliens Eye 的解法是不只看状态码而是把整个页面拆成 30 个维度的结构化信号再交给两个评委投票。二、30 维特征向量把网页拆成 30 个信号 每次 HTTP 响应都会被 core/analyzer.py 中的特征提取器解析基于 selectolax 解析 HTML转换成一套固定 schema 的特征向量定义在 core/features.py 的FEATURE_SCHEMA中。信号大致分为五大类类别代表特征含义HTTP 层http_200、http_404、http_3xx、http_5xx状态码分桶URL 结构has_username_in_path、is_homepage、has_auth_pattern、redirect_count用户名是否还在 URL 里、是否被踢去登录页内容关键词error_keyword_count、positive_keyword_count、meta_error_keyword_count用户不存在Profile等正/负关键词命中数DOM 结构img_count、form_count、profile_section_count、error_section_count页面里的图片、表单、profile/error 样式块数量结构化数据og_type_profile、has_json_ld_person、username_in_canonicalOpenGraph 的og:typeprofile、JSON-LD 中的Person类型此外还包含response_time响应耗时、content_length内容长度以及两个指纹匹配特征下一节介绍。启发式引擎的打分结果heuristic_score本身也会被喂给 ML 模型作为一个输入特征——两个评委的信息是互通的。三、两位评委如何投票 ⚖️检测核心在 core/detector.py 的Detector类中实现流程是两个评委各自给出一个 0~1 的概率加权融合成最终概率。1️⃣ 启发式引擎一套加减分规则启发式引擎_heuristic_score对特征做加权求和典型规则包括HTTP 2005 分HTTP 404-10 分HTTP 5xx-3 分用户名仍出现在 URL 路径中且不是首页3 分请求经过重定向后 URL 中不再包含用户名典型的登录墙/访客拦截信号-4 分页面出现og:typeprofile6 分强档案信号页面包含 JSON-LDPerson结构5 分canonical 链接含用户名4 分错误关键词每个 -2 分正向关键词profile/about 等每个 1.5 分原始分再经过 sigmoid 函数压扁成概率值。2️⃣ ML 模型离线训练、纯 Python 推理第二评委是一个逻辑回归模型离线用 scikit-learn 训练后导出为 data/model.jsonv2.5.0基于 286 个平台、1,455 个样本训练。亮点在于运行时完全不需要任何 ML 依赖ml/inference.py 用纯 Python 实现标准归一化 点积 sigmoid等价于一次逻辑回归前向传播。模型文件里还自带混合权重和判定阈值出厂值融合公式: probability 0.9 × ml_prob 0.1 × heuristic_prob Found 阈值: probability 0.6202 Not Found 阈值: probability 0.3597如果模型文件缺失或损坏检测会静默降级为纯启发式回退参数0.4 的 ML 权重、0.6 / 0.35 阈值定义在core/detector.py顶部。四、三级判定与置信度Found / Maybe / Not Found 最终概率并不直接二分而是映射为三档结果probability 0.6202 → Found 置信度 60~99% probability 0.3597 → Not Found 置信度 60~99% 两者之间 → Maybe 置信度 50~70%置信度按概率与阈值的距离线性缩放——离阈值越远置信度越高。Maybe档是这套算法的精华之一它承认我不确定并且如果你安装了 Playwright 浏览器扩展pip install aliens-eye[browser]扫描器会对 Maybe 结果渲染 JS 后重新提取特征有机会把模糊结果升级成确定结论。五、指纹记忆让检测越用越聪明 Aliens Eye 还有一个自学习机制——core/fingerprints.py 中的指纹库。每遇到一个 Found 或 Not Found 页面它会为对应站点存下一组紧凑签名标题哈希、meta 哈希、DOM 签名、Server 响应头。后续再扫描同一平台时新响应会与历史指纹比对匹配数计入fingerprint_match_found/fingerprint_match_not_found两个特征直接影响评分。也就是说工具用得越多对冷门平台的记忆越准误报越少。六、实测准确率一组诚实的数字 项目作者在 WORKING.md 中给出了非常透明的评估在模型从未见过的 142 个平台上做站点不相交留出测试指标数值Precision精确率0.65Recall召回率0.51误报率 FPR8.9%旧模型为 25.1%F10.57更值得注意的结论是在 F1 上没有任何配置能显著优于status 200的朴素检查这套混合算法的真正收益体现在精确率上——用略低的召回换取了约三分之一的误报。作者也明确提醒把 Found/Maybe 当作待验证的线索而不是最终结论。七、动手验证三条实用命令 ✅# 1. 关闭 ML只用启发式引擎对比效果 aliens_eye username --no-ml # 2. 用已知账号验证检测准确率精确率/召回率/误报率 aliens_eye selfcheck --negatives 2 --report json # 3. 录制冻结语料库保证评估可复现 aliens_eye corpus record --out corpus/v1 --split all --negatives 4selfcheck的地基数据存放在 data/selfcheck.json训练集30 站点与 data/eval_holdout.json留出集13 站点按站点而非账号切分——因为检测器学的是每个站点的页面结构只在账号层面留出会高估泛化能力。八、总结Aliens Eye 的检测算法可以浓缩为一张图HTTP 响应 → 30 维特征向量 →启发式加权分 × 0.1 逻辑回归 × 0.9→ 三级判定 置信度 → 指纹库反哺它的设计哲学值得借鉴不迷信单一信号——状态码、DOM、关键词、结构化数据全部入模承认不确定性——Maybe 档 Playwright 兜底而不是强行二分透明可复现——阈值、权重随模型文件走冻结语料库保证评估可重复优雅降级——没有模型文件也能工作不会让普通用户卡住。完整的模块清单与运行流程图可参阅项目内的 WORKING.md。【免费下载链接】Aliens_eyeHunt down 840 social media accounts using AI项目地址: https://gitcode.com/gh_mirrors/al/Aliens_eye创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表