0xPrashanthSec/IOCQuery
GitHub: 0xPrashanthSec/IOCQuery
一款纯前端的 IOC 提取与多 SIEM 查询生成工具,帮助安全人员将威胁情报报告快速转化为可操作的搜索语句。
Stars: 0 | Forks: 0
# IOC Hunter – 多 SIEM 查询生成器

[](https://opensource.org/licenses/MIT)
[](https://github.com/your-username/ioc-hunter)
一款专为网络安全专业人员设计的现代化专业 Web 应用程序,用于从威胁情报报告中提取失陷指标 并自动为多个 SIEM 平台生成搜索查询。
## 🎯 目的
IOC Hunter 简化了将威胁情报报告转化为可操作的 SIEM 搜索的过程,在事件响应和威胁狩猎活动中节省了宝贵的时间。无论您是在分析 APT 报告、恶意软件分析文档还是安全公告,此工具都能自动提取 IOC 并生成可立即使用的针对特定平台的查询。
## ✨ 主要特性
### 🔍 **智能 IOC 提取**
- **IP 地址**:具有全面验证的 IPv4 地址
- **文件哈希**:MD5、SHA1、SHA256 和 SHA512 哈希值
- **URL**:具有适当解析的 HTTP/HTTPS URL
- **域名**:具有 TLD 验证的有效域名
- **实时处理**:输入时实时统计 IOC 数量
- **去重**:自动删除重复的指标
### 🛡️ **多 SIEM 支持**
为五大主流 SIEM 平台生成查询:
| 平台 | 查询语言 | 描述 |
|----------|----------------|-------------|
| **Elastic Security** | KQL (Kibana Query Language) | 默认 ECS 字段映射 |
| **Microsoft Sentinel** | KQL (Kusto Query Language) | Azure Sentinel 特定字段 |
| **IBM QRadar** | AQL (Ariel Query Language) | QRadar 事件和流搜索 |
| **Splunk** | SPL (Search Processing Language) | 通用信息模型字段 |
| **ArcSight Logger/ESM** | CEF (Common Event Format) | ArcSight 搜索语法 |
### 🎨 **现代化用户界面**
- **浅色主题**:专业、整洁的设计,具有极佳的可读性
- **响应式布局**:在桌面、平板和移动设备上均能完美运行
- **实时更新**:切换 SIEM 平台时立即重新生成查询
- **语法高亮**:彩色代码查询,提升可读性
- **Toast 通知**:为所有操作提供用户反馈
### 🚀 **生产力功能**
- **一键复制**:将单个查询复制到剪贴板
- **批量操作**:一次性复制所有查询
- **导出选项**:将结果保存为 TXT 或 JSON 文件
- **键盘快捷键**:Ctrl+Enter 提取 IOC
- **样本数据**:内置示例用于测试和学习
## 🔧 技术实现
### **IOC 提取模式**
应用程序使用优化的正则表达式模式进行准确的 IOC 识别:
```
// IPv4 Address Pattern
(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
// Hash Patterns
MD5: [a-fA-F0-9]{32}
SHA1: [a-fA-F0-9]{40}
SHA256: [a-fA-F0-9]{64}
SHA512: [a-fA-F0-9]{128}
// URL Pattern
https?://[^\s<>"']+
// Domain Pattern
[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z]{2,}
```
### **SIEM 字段映射**
每个 SIEM 平台对相同数据使用不同的字段名称。IOC Hunter 将 IOC 映射到相应的字段:
#### Elastic Security (ECS)
```
IP Addresses: source.ip, destination.ip, client.ip, server.ip
File Hashes: file.hash.md5, process.hash.md5, file.pe.imphash
URLs: url.original, url.full, http.request.url
Domains: destination.domain, source.domain, dns.question.name
```
#### Microsoft Sentinel
```
IP Addresses: SrcIpAddr, DstIpAddr, RemoteIP, ClientIP
File Hashes: InitiatingProcessMD5, InitiatingProcessSHA1, FileHash
URLs: Url, RequestURL, UrlOriginal
Domains: DnsQuery, RemoteDomain
```
#### IBM QRadar (AQL)
```
IP Addresses: sourceip, destinationip
Other IOCs: TEXT SEARCH (full-text search across payloads)
```
#### Splunk (SPL)
```
IP Addresses: src_ip, dest_ip, src, dest, clientip
File Hashes: file_hash, hash, md5, sha1, sha256
URLs: url, uri, request_url, http_url
Domains: domain, dest_domain, dns_query, hostname
```
#### ArcSight (CEF)
```
IP Addresses: deviceAddress, sourceAddress, destinationAddress
File Hashes: fileHash, oldFileHash, cs1, cs2
URLs: requestURL, request, cs3, cs4
Domains: destinationDnsDomain, sourceDnsDomain, cs5, cs6
```
## 🚀 快速入门
### **在线版本(推荐)**
直接在您的浏览器中访问实时应用程序:
```
https://0xprashanthsec.github.io/IOCQuery/
```
## 📖 使用指南
### **基本工作流**
1. **选择 SIEM 平台**:从下拉菜单中选择您的目标 SIEM(默认为 Elastic Security)
2. **输入威胁数据**:将威胁情报文本粘贴到输入区域
3. **提取 IOC**:点击“Extract IOCs”按钮或按 Ctrl+Enter
4. **查看结果**:查看按类型组织并带有实时计数的已提取 IOC
5. **生成查询**:为所选 SIEM 自动生成查询
6. **复制或导出**:使用复制按钮或导出功能
### **样本输入**
尝试粘贴此示例威胁报告:
```
Threat Report: APT29 Campaign Analysis
The following indicators of compromise (IOCs) were identified:
IP Addresses:
- 192.168.1.100 (C2 server)
- 203.0.113.45 (exfiltration server)
File Hashes:
MD5: 5d41402abc4b2a76b9719d911017c592
SHA256: 2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
URLs:
- https://malicious-domain.com/payload.exe
- http://evil-site.org/data-exfil
Domains:
- malicious-domain.com
- c2-server.net
```
### **预期输出**
应用程序将提取并生成如下查询:
**Elastic Security (KQL)**:
```
source.ip:"192.168.1.100" OR destination.ip:"192.168.1.100" OR client.ip:"192.168.1.100" OR server.ip:"192.168.1.100"
```
**Microsoft Sentinel (KQL)**:
```
(SrcIpAddr:"192.168.1.100") OR (DstIpAddr:"192.168.1.100") OR (RemoteIP:"192.168.1.100") OR (ClientIP:"192.168.1.100")
```
**IBM QRadar (AQL)**:
```
sourceip = '192.168.1.100' OR destinationip = '192.168.1.100'
```
**Splunk (SPL)**:
```
src_ip="192.168.1.100" OR dest_ip="192.168.1.100" OR src="192.168.1.100" OR dest="192.168.1.100"
```
**ArcSight (CEF)**:
```
deviceAddress = "192.168.1.100" OR sourceAddress = "192.168.1.100" OR destinationAddress = "192.168.1.100"
```
## 🎯 应用场景
### **威胁情报分析**
- 处理 APT 报告和恶意软件分析文档
- 从安全供应商公告中提取 IOC
- 将 OSINT 威胁源转换为可搜索的查询
### **事件响应**
- 根据事件报告快速生成狩猎查询
- 调查期间进行跨平台 IOC 搜索
- 快速部署检测规则
### **安全运营中心 (SOC)**
- 简化日常威胁狩猎活动
- 标准化 IOC 处理工作流
- 减少手动编写查询的时间
### **威胁狩猎**
- 将威胁情报转化为可操作的狩猎任务
- 多平台 IOC 关联分析
- 跨不同 SIEM 的历史数据分析
## 🛠️ 浏览器兼容性
| 浏览器 | 版本 | 状态 |
|---------|---------|--------|
| Chrome | 90+ | ✅ 完全支持 |
| Firefox | 88+ | ✅ 完全支持 |
| Safari | 14+ | ✅ 完全支持 |
| Edge | 90+ | ✅ 完全支持 |
## 🔒 安全与隐私
- **客户端处理**:所有 IOC 提取均在您的浏览器中进行
- **无数据传输**:您的威胁情报数据永远不会离开您的设备
- **无依赖**:纯 JavaScript 实现,无外部 API
- **离线可用**:加载后无需网络连接即可使用
## 🚧 路线图
### **计划功能**
- [ ] **支持更多 SIEM**:CrowdStrike Falcon、SentinelOne、Sumo Logic
- [ ] **增强 IOC 类型**:电子邮件地址、比特币地址、注册表键
- [ ] **批量处理**:支持多个文件/报告
- [ ] **API 集成**:直接上传至 SIEM 平台
- [ ] **历史存储**:将以前的提取结果保存至本地存储
- [ ] **查询验证**:对生成的查询进行语法检查
- [ ] **深色模式**:在浅色和深色主题之间切换
- [ ] **自定义映射**:用户自定义字段映射
### **增强请求**
- [ ] **性能优化**:大文件处理
- [ ] **高级过滤**:IOC 置信度评分
- [ ] **导出格式**:CSV、STIX/TAXII、OpenIOC
- [ ] **协作功能**:共享和团队工作流
## 🤝 贡献
我们欢迎网络安全社区的贡献!以下是您可以提供帮助的方式:
### **贡献方式**
- **错误报告**:发现问题?请报告它!
- **功能请求**:有想法?我们很乐意倾听!
- **SIEM 映射**:了解其他 SIEM 的字段映射?
- **文档**:帮助改进我们的文档
- **代码**:提交增强功能的 Pull Requests
### **开发设置**
1. Fork 此仓库
2. 创建功能分支:`git checkout -b feature/amazing-feature`
3. 进行更改并充分测试
4. 提交包含详细描述的 Pull Request
### **编码规范**
- 使用现代 JavaScript (ES6+)
- 遵循现有的代码风格和格式
- 为复杂逻辑添加注释
- 在多个浏览器上进行测试
- 根据需要更新文档
## 📋 系统要求
### **最低要求**
- **浏览器**:任何现代 Web 浏览器 (Chrome 90+, Firefox 88+, Safari 14+, Edge 90+)
- **JavaScript**:必须启用
- **内存**:50MB 可用 RAM
- **存储**:无要求(完全在浏览器中运行)
### **推荐配置**
- **浏览器**:最新版 Chrome 或 Firefox
- **内存**:100MB+ 可用 RAM(用于处理大型文档)
- **显示**:最低分辨率 1024x768(响应式设计)
## 📞 支持与联系
### **获取帮助**
- **文档**:查阅此 README 获取全面指导
- **Issues**:通过 GitHub Issues 报告 Bug 或请求功能
- **社区**:加入我们的 GitHub Discussions 进行讨论
### **作者信息**
**开发者**:@prashanthblogs
*热衷于开发能够赋能网络安全专业人员并提升安全运营效率的工具。*
## 📄 许可证
本项目基于 MIT 许可证授权 - 详情请参见 [LICENSE](LICENSE) 文件。
### **MIT 许可证摘要**
- ✅ 允许商业使用
- ✅ 允许修改
- ✅ 允许分发
- ✅ 允许私人使用
- ❌ 不提供担保
- ❌ 不承担责任
## 🙏 致谢
### **灵感与资源**
- **Elastic Common Schema (ECS)**:字段命名标准
- **Microsoft Sentinel**:KQL 查询语言文档
- **MITRE ATT&CK**:威胁情报框架
- **网络安全社区**:反馈与功能请求
### **第三方资源**
- **Font Awesome**:图标和视觉元素
- **Modern CSS**:样式框架
- **Regex Patterns**:IOC 提取算法
## 📊 项目统计
- **语言**:JavaScript (70%), CSS (25%), HTML (5%)
- **文件**:3 个核心文件
- **大小**:总计约 150KB
- **依赖**:无(原生实现)
- **性能**:在 <1 秒内处理 10,000+ 个 IOC
**用 ❤️ 为网络安全社区而作**
*IOC Hunter – 将威胁情报转化为可操作的安全运营。*
标签:APT分析, AQL, ArcSight, CEF, Common Event Format, DAST, Elastic Security, IBM QRadar, IOC提取, IP 地址批量处理, IP提取, KQL, Kusto Query Language, MD5, Microsoft Sentinel, Search Processing Language, SHA256, SPL, URL提取, 反编译, 哈希提取, 域名提取, 多模态安全, 失陷标示, 威胁情报, 安全信息与事件管理, 安全运营, 库, 应急响应, 开发者工具, 恶意软件分析, 情报转化, 扫描框架, 搜索引擎爬取, 数据可视化, 数据解析, 查询生成器, 网络安全, 隐私保护