404saint/arkoi

GitHub: 404saint/arkoi

一个通过交叉比对多个搜索引擎结果来检测 SEO 投毒行为的实验性安全工具,专注于识别软件下载场景下的域名仿冒和欺骗性排名。

Stars: 0 | Forks: 0

# Arkoi **一个用于软件下载的跨引擎 SEO 投毒检测器。** ## 为什么会有这个项目 SEO 投毒是一种真实存在且未受到足够重视的攻击媒介。威胁行为者注册看起来极具欺骗性的域名,将其塞满合适的关键词,然后通过购买或操纵手段使它们跻身 Google、Bing 或 Brave 的顶部搜索结果。毫无戒心的用户在搜索 "Siemens TIA Portal V17 download" 时,点击了第三个搜索结果,结果下载了一个被植入木马的安装程序。 Arkoi 背后的核心洞察是:**很难在大规模范围内同时对每个搜索引擎进行投毒。** 一个恶意域名可能会跻身 Google 的前三个结果中。但是,如果在 Bing、Brave、DuckDuckGo 和 Yandex 中使用相同的查询却找不到该域名——这种不一致性本身就是一个信号。Arkoi 对六个搜索引擎的结果进行交叉比对,并提出了一个有别于任何 URL 扫描器的问题: 这是一个个人实验和正在进行的演示项目。它并非用于生产环境的安全软件。 ## 工作原理 ``` Query → Parse intent (vendor, software, version) → Fetch all engines in parallel (async) → For each result, run signals concurrently: ① Vendor domain verification ② Cross-engine consensus scoring ③ Rank anomaly detection ④ Query-result relevance + path analysis ⑤ URLhaus threat intel lookup ⑥ Domain age (WHOIS) → Assemble verdict from signals → Render results + summary ``` 没有数字风险评分。结论是分类明确的,并附带直观、人类可读的推理过程: | 结论 | 含义 | |---|---| | `✓ TRUSTED` | 官方厂商域名或受信任的合作伙伴,在各搜索引擎中表现一致 | | `? UNVERIFIED` | 未发现危险信号,但也未确认与查询的厂商存在关联 | | `⚠ SUSPICIOUS` | 存在一个或多个中等风险信号——例如新域名、SEO 异常、可疑路径 | | `✗ DECEPTIVE` | 存在欺骗性排名的强烈指标——例如冒充、盗版信号、单一引擎推广 | ## 系统要求 - Python 3.10+ - 在 `http://127.0.0.1:8080` 上运行着一个 [SearXNG](https://docs.searxng.org/) 实例 SearXNG 是一个自托管的元搜索引擎。Arkoi 通过它同时查询 Google、Bing、Brave、DuckDuckGo、Yahoo 和 Yandex 的结果。你需要运行自己的实例——这样可以保持查询的私密性并避免触发 API 速率限制。 使用 Docker 快速搭建 SearXNG: ``` docker run -d -p 8080:8080 searxng/searxng ``` ## 安装 ``` git clone https://github.com/404saint/arkoi.git cd arkoi python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt ``` ## 使用方法 ``` # Interactive python arkoi.py # Direct query python arkoi.py "Siemens TIA Portal V17 download" python arkoi.py "AutoCAD 2025 download" python arkoi.py "Wireshark install" python arkoi.py "PyCharm professional" ``` ### 输出示例 ``` ══════════════════════════════════════════════════════════════════════════════ ARKOI — SEO Poisoning Detector ══════════════════════════════════════════════════════════════════════════════ Query : Siemens TIA Portal V17 download Vendor : Siemens Version: V17 Fetching results from all engines... done in 3.0s (21 unique domains, 3/6 engines responded) Running signal checks... done in 6.0s [✓ TRUSTED ] sieportal.siemens.com Engines: bing #8 · google #2 · brave #1 (3/3 engines) Vendor : VENDOR_MATCH ├─ Official vendor domain └─ Consistent across 3 search engine(s) ↳ This is a verified source. [✗ DECEPTIVE ] plc4me.com Engines: google #3 (1/3 engines) Vendor : UNRELATED └─ URL path contains piracy/bypass signals on an unverified domain ↳ Avoid this result. Do not download anything from this domain. ✓ Safest result : sieportal.siemens.com ✗ Avoid : plc4me.com, plcshare.com Total runtime : 9.1s ``` ## 项目结构 ``` arkoi/ ├── arkoi.py # Entry point and pipeline orchestrator ├── query_parser.py # Extracts vendor, version, tokens from query │ # Contains the vendor registry and product aliases ├── fetcher.py # Async multi-engine search via SearXNG ├── signals.py # All signal checks (vendor, consensus, age, malware...) ├── verdict.py # Assembles signals into verdict + reasons ├── renderer.py # Terminal output formatting └── requirements.txt ``` ## 厂商覆盖范围 Arkoi 目前能识别以下领域的厂商和产品: - **工业 / PLC**:Siemens、Rockwell、Schneider、Honeywell、Beckhoff、Omron、ABB - **CAD / CAE / 仿真**:Autodesk、ANSYS、PTC、Dassault、SolidWorks、Altair - **开发者工具**:Microsoft、JetBrains、HashiCorp、Docker、Atlassian、GitHub、GitLab - **创意设计**:Adobe、Affinity、Blender、Blackmagic、Foundry、Maxon - **科学 / 数据**:MathWorks、NI、Wolfram、ESRI、Anaconda - **网络 / 安全**:Cisco、Palo Alto、Fortinet、Wireshark、Nmap、PuTTY - **远程访问**:AnyDesk、TeamViewer、Zoom、Slack - **虚拟化 / 操作系统**:VMware、VirtualBox、Ubuntu、Red Hat - **云计算**:AWS、Google Cloud、Apple - **数据库**:Oracle、MySQL、PostgreSQL、MongoDB、Elastic 支持产品别名——例如搜索 `"autocad"` 会自动解析为 Autodesk 厂商配置。请查看 `query_parser.py` 以获取完整的注册表。 ## 已知局限性 - **SearXNG 引擎可用性**:并非所有六个引擎都会对每次查询做出响应。共识评分会根据实际响应的引擎数量进行调整,但结果会因你的 SearXNG 配置而异。 - **WHOIS 覆盖范围**:由于隐私保护或 WHOIS 速率限制,许多域名的显示年限为 `UNKNOWN`。域名年龄是一个辅助信号,而非主要信号。 - **查询中无厂商信息**:如果查询与任何已知的厂商或产品别名都不匹配,则会跳过厂商验证,所有结果将仅退回到基于共识和异常的评分。 - **不能替代 VirusTotal**:Arkoi 专门设计用于通过搜索结果分析来捕获 SEO 投毒。如果要对特定文件或 URL 进行深度恶意软件分析,请使用专用工具。 ## 待解决问题 请查看 [Issues](https://github.com/404saint/arkoi/issues) 以了解已知错误和计划中的改进。欢迎提交贡献——请先阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 许可证 MIT
标签:ESC4, Go语言工具, OSINT, Python, SEO投毒检测, URLhaus, WHOIS查询, 供应商仿冒, 协议探测, 域名信誉分析, 威胁情报, 开发者工具, 异步并发, 恶意域名识别, 意图解析, 排名异常检测, 搜索引擎作弊, 无后门, 网络安全, 网络防御工具, 计算机取证, 请求拦截, 跨搜索引擎审计, 软件下载安全, 配置审计, 钓鱼防护, 隐私保护, 黑帽SEO检测