InQuest/ThreatIngestor

GitHub: pedramamini/ThreatIngestor

ThreatIngestor 是一个可扩展的威胁情报聚合工具,用于从 Twitter、RSS、网页等多种来源自动提取 IOC 并输出到下游分析系统。

Stars: 923 | Forks: 136

ThreatIngestor

[![Build Status](https://static.pigsec.cn/wp-content/uploads/repos/cas/d5/d58b45a755a445de633a81e46578692dd74662a77e1330bde659c70d420826b3.svg)](https://github.com/InQuest/ThreatIngestor/actions/workflows/workflow.yml) ![Documentation Status](https://readthedocs.org/projects/threatingestor/badge/?version=latest) ![PyPI Version](http://img.shields.io/pypi/v/ThreatIngestor.svg) 一个可扩展的工具,用于从威胁情报源中提取和聚合 [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 签名),并将这些信息发送到另一个系统进行分析。 ![多个源输入到多个操作器的 ThreatIngestor 流程图](https://inquest.readthedocs.io/projects/threatingestor/en/latest/_images/mermaid-multiple-operators.png) 立即通过这个[快速教程](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, 基础设施安全, 威胁情报, 开发者工具, 数据聚合, 无后门, 请求拦截, 逆向工具