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检测