ThreatIngestor
An extendable tool to extract and aggregate IOCs from threat feeds.
Integrates out-of-the-box with ThreatKB and MISP, and can fit seamlessly into any existing worflow with SQS, Beanstalk, and custom plugins.
Overview
ThreatIngestor can be configured to watch Twitter, RSS feeds, or other sources, extract meaningful information such as malicious IPs/domains and YARA signatures, and send that information to another system for analysis.
Try it out now with this quick walkthrough, or see more ThreatIngestor walkthroughs on the InQuest blog.
Installation
ThreatIngestor requires Python 3.6+, with development headers.
Install ThreatIngestor from PyPI:
pip install threatingestor
Install optional dependencies for using some plugins, as needed:
pip install threatingestor[all]
View the full installation instructions for more information.
Usage
Create a new config.yml
file, and configure each source and operator module you want to use. (See config.example.yml
for layout.) Then run the script:
threatingestor config.yml
By default, it will run forever, polling each configured source every 15 minutes.
View the full ThreatIngestor documentation for more information.
Plugins
ThreatIngestor uses a plugin architecture with "source" (input) and "operator" (output) plugins. The currently supported integrations are:
Sources
- Beanstalk work queues
- Git repositories
- GitHub repository search
- RSS feeds
- Amazon SQS queues
- Generic web pages
Operators
View the full ThreatIngestor documentation for more information on included plugins, and how to create your own.
Support
If you need help getting set up, or run into any issues, feel free to open an Issue. You can also reach out to @InQuest on Twitter.
We'd love to hear any feedback you have on ThreatIngestor, its documentation, or how you're putting it to work for you!
Contributing
Issues and pull requests are welcomed. Please keep Python code PEP8 compliant. By submitting a pull request you agree to release your submissions under the terms of the LICENSE.