InQuest/ThreatIngestor
GitHub: pedramamini/ThreatIngestor
ThreatIngestor 是一个可扩展的威胁情报聚合工具,用于从 Twitter、RSS、网页等多种来源自动提取 IOC 并输出到下游分析系统。
Stars: 923 | Forks: 136
ThreatIngestor
[](https://github.com/InQuest/ThreatIngestor/actions/workflows/workflow.yml)


一个可扩展的工具,用于从威胁情报源中提取和聚合 [IOC](https://en.wikipedia.org/wiki/Indicator_of_compromise)。
开箱即用地集成了 [ThreatKB](https://github.com/InQuest/ThreatKB) 和 [MISP](https://www.misp-project.org/),并能通过 [SQS](https://aws.amazon.com/sqs/)、[Beanstalk](https://beanstalkd.github.io/) 和[自定义插件](https://inquest.readthedocs.io/projects/threatingestor/en/latest/developing.html)无缝融入任何现有工作流。
目前被 InQuest Labs IOC-DB 使用:https://labs.inquest.net/iocdb
## 概述
ThreatIngestor 可以配置为监控 Twitter、RSS 源、sitemap (XML) 源或其他来源,提取有意义的信息(例如恶意 IP/域名和 YARA 签名),并将这些信息发送到另一个系统进行分析。

立即通过这个[快速教程](https://inquest.readthedocs.io/projects/threatingestor/en/latest/welcome.html#try-it-out)进行体验,在 InQuest 博客上阅读更多[ThreatIngestor 教程](https://inquest.net/taxonomy/term/42),并查看 [labs.inquest.net/iocdb](https://labs.inquest.net/iocdb),这是一个由 ThreatIngestor 提供支持的 IOC 聚合和查询工具。
## 安装说明
ThreatIngestor 需要 Python 3.6+ 及其开发头文件。
从 PyPI 安装 ThreatIngestor:
```
pip install threatingestor
```
根据需要安装某些插件所需的可选依赖项:
```
pip install threatingestor[all]
```
查看[完整安装说明](https://inquest.readthedocs.io/projects/threatingestor/en/latest/installation.html)以获取更多信息。
## 使用方法
创建一个新的 ``config.yml`` 文件,并配置您想使用的每一个 source 和 operator 模块。(布局请参见 ``config.example.yml``。)然后运行脚本:
```
threatingestor config.yml
```
默认情况下,它将永久运行,每 15 分钟轮询一次每个已配置的 source。
如果您想运行图像提取 source,或者为其他 source 包含图像提取功能,由于其依赖项的要求,您需要使用 Python 3.7 >= 版本:
```
pip install opencv-python pytesseract numpy
```
查看[完整的 ThreatIngestor 文档](https://inquest.readthedocs.io/projects/threatingestor/)以获取更多信息。
## 插件
ThreatIngestor 采用包含“source”(输入)和“operator”(输出)插件的插件架构。目前支持的集成如下:
### Source
- [Git 仓库](https://inquest.readthedocs.io/projects/threatingestor/en/latest/sources/git.html)
- [GitHub 仓库搜索](https://inquest.readthedocs.io/projects/threatingestor/en/latest/sources/github.html)
- [按用户名搜索 Gists](https://inquest.readthedocs.io/projects/threatingestor/en/latest/sources/github_gist.html)
- [RSS 源](https://inquest.readthedocs.io/projects/threatingestor/en/latest/sources/rss.html)
- [Sitemap 源](https://inquest.readthedocs.io/projects/threatingestor/en/latest/sources/sitemap.html)
- [图像提取](https://inquest.readthedocs.io/projects/threatingestor/en/latest/sources/image.html)
- [Amazon SQS 队列](https://inquest.readthedocs.io/projects/threatingestor/en/latest/sources/sqs.html)
- [Twitter](https://inquest.readthedocs.io/projects/threatingestor/en/latest/sources/twitter.html)
- [通用网页](https://inquest.readthedocs.io/projects/threatingestor/en/latest/sources/web.html)
### Operator
- [CSV 文件](https://inquest.readthedocs.io/projects/threatingestor/en/latest/operators/csv.html)
- [MISP](https://inquest.readthedocs.io/projects/threatingestor/en/latest/operators/misp.html)
- [MySQL 表](https://inquest.readthedocs.io/projects/threatingestor/en/latest/operators/mysql.html)
- [SQLite 数据库](https://inquest.readthedocs.io/projects/threatingestor/en/latest/operators/sqlite.html)
- [Amazon SQS 队列](https://inquest.readthedocs.io/projects/threatingestor/en/latest/operators/sqs.html)
- [ThreatKB](https://inquest.readthedocs.io/projects/threatingestor/en/latest/operators/threatkb.html)
- [Twitter](https://inquest.readthedocs.io/projects/threatingestor/en/latest/operators/twitter.html)
查看[完整的 ThreatIngestor 文档](https://inquest.readthedocs.io/projects/threatingestor/)以了解有关内置插件以及如何创建您自己的插件的更多信息。
## 威胁情报来源
在寻找一些威胁情报源来开始吗?InQuest 有一个 Twitter 列表,其中包含多个发布 C2 域名和 IP 的账号:https://twitter.com/InQuest/lists/ioc-feed。请注意,您需要申请一个 Twitter 开发者账户才能使用 ThreatIngestor 的 Twitter Source。查看 ``config.example.yml`` 以了解如何将此列表设置为 source。
为了更快捷的设置,RSS 源可以成为很好的情报来源。查看此 [RSS 配置文件示例](https://github.com/InQuest/ThreatIngestor/blob/master/rss.example.yml),其中包含几个预配置的安全博客。
## 支持
如果您在设置过程中需要帮助或遇到任何问题,请随时提交一个 [issue](https://github.com/InQuest/ThreatIngestor/issues)。您也可以在 Twitter 上联系 [@InQuest](https://twitter.com/InQuest),或访问 https://www.inquest.net 在网上了解更多关于我们的信息。
我们非常乐意听取您对 ThreatIngestor、其文档以及您如何将其应用于实际工作的任何反馈!
## Docker
### 生产环境
提供了一个 `Dockerfile` 用于在 Docker 容器中运行 ThreatIngestor。
首先,您需要构建容器:
```
docker build . -t threatingestor
```
之后,您可以使用以下命令挂载容器:
```
docker run -it --mount type=bind,source=/,target=/dock threatingestor /bin/bash
```
在您挂载容器并进入 `/bin/bash` shell 之后,您就可以像平时一样运行 ThreatIngestor 了:
```
threatingestor config.yml
```
### 开发环境
还有一个 Dockerfile.dev 可用于构建 ThreatIngestor 的开发版本。您只需要一个可用的 .whl 文件,可以使用以下命令生成:
```
python3 -m build
```
构建项目后,您可以构建容器:
```
docker build . -t threatingestor -f Dockerfile.dev
```
注意:如果您在构建开发环境或在容器中运行 ThreatIngestor 时遇到任何问题,您可能需要注释掉 `Dockerfile.dev` 中的以下几行才能正常运行:
```
FROM ubuntu:18.04
...
# RUN apt-get install tesseract-ocr -y
...
# RUN pip3 install opencv-python pytesseract numpy
...
```
### 额外脚本
现在提供了一些脚本来帮助您进行 ThreatIngestor 的本地配置。
您可以访问[此处](https://github.com/InQuest/ThreatIngestor/tree/master/scripts/README.md)查看包含更多信息的 README.md。
标签:IOC提取, Python, 基础设施安全, 威胁情报, 开发者工具, 数据聚合, 无后门, 请求拦截, 逆向工具