Version: 1.0.0
Status: Initial Release
Language: Python 3
MISP Threat Intelligence Collector & IOC Search is a Python-based tool designed to collect threat indicators from supported MISP feeds, consolidate threat intelligence into searchable databases, and perform IOC matching against collected indicators.
It helps security analysts quickly identify whether an IP address, domain, URL, or file hash is present in the collected threat intelligence feeds and determine which providers reported a match.
- Collect threat intelligence from supported MISP feeds.
- Retrieve and process MISP event data.
- Cache raw feed responses and event data to reduce unnecessary downloads.
- Export collected indicators to CSV and JSON.
- Generate feed metadata and error reports.
- Search individual or multiple IOCs against the collected database.
- Accept IOC input from command-line arguments, TXT files, and CSV files.
- Perform normalized, case-insensitive exact IOC matching.
- Identify threat intelligence providers associated with matching indicators.
- Export matching records to
ioc_matches.csv.
missp/
├── missp.py
├── ioc_search.py
├── ioc.csv
├── threat_indicators.csv
├── threat_indicators.json
├── misp_available_feeds.csv
├── misp_feed_metadata.json
├── threat_feed_errors.csv
├── ioc_matches.csv
├── threat_feed_events/
├── threat_feed_raw/
├── README.md
├── requirements.txt
├── .gitignore
└── .gitattributes
Generated databases, reports, and cache directories may not be present until the collector has been executed.
- Python 3
requests- Internet connectivity to access configured threat intelligence feeds
- Git and Git LFS if downloading the large IOC database from this repository
Clone the repository:
git clone <YOUR_GITHUB_REPOSITORY_URL>
cd misspInstall dependencies:
python -m pip install -r requirements.txtIf the IOC database is stored using Git LFS, install Git LFS and pull the database:
git lfs install
git lfs pullRun the collector:
python missp.pyUse the supported command-line options to control feed selection and collection behavior. Check the available options with:
python missp.py --helpDepending on the selected feeds and configuration, the collector generates files such as:
threat_indicators.csv— collected IOC database.threat_indicators.json— JSON representation of collected indicators.misp_available_feeds.csv— feed inventory.misp_feed_metadata.json— feed metadata.threat_feed_errors.csv— feed processing errors.
Search for an IP address, domain, URL, or file hash:
python ioc_search.py --ioc 8.8.8.8Replace the example IOC with the value you want to investigate.
Provide a text file containing one IOC per line:
python ioc_search.py --input input_iocs.txtSpecify the input CSV and the column containing the IOCs:
python ioc_search.py --input input.csv --column iocThe search tool reports matching indicators and their associated threat intelligence providers. Matching records are exported to:
ioc_matches.csv
Use the command-line help to review all supported options:
python ioc_search.py --helpThe collector and search utility generate local databases, reports, and cache files. These files may contain large amounts of threat intelligence data.
threat_indicators.csv— primary database used by the IOC search utility.threat_indicators.json— JSON export of collected indicators.misp_available_feeds.csv— feed inventory.misp_feed_metadata.json— feed metadata.threat_feed_errors.csv— feed errors.ioc_matches.csv— search results.threat_feed_events/— cached event data.threat_feed_raw/— cached raw feed responses.
The collector should be run before IOC searches when the database is not already available.
The IOC CSV database may be large. Git LFS is used to manage threat_indicators.csv without storing the full database directly as a regular Git object.
After cloning the repository, run:
git lfs install
git lfs pullKeep generated caches and temporary reports out of version control unless there is a specific reason to publish them.
Status: Planned — not implemented in v1.0.0.
A future release is intended to support manually running IOC searches from the GitHub Actions tab.
The planned workflow will allow users to:
- Open the repository's Actions tab.
- Select the IOC Search workflow.
- Enter an IP address, domain, URL, or file hash.
- Manually start the workflow.
- Review the search results and matching threat intelligence providers.
- Download a results artifact, if supported by the implemented workflow.
The workflow is not available in this release. When implemented, it will need access to an IOC database snapshot. Updating a local database will not automatically update the GitHub-hosted database; the updated data must be published or made available through a configured storage source.
- Results depend on the feeds collected and the data available in the IOC database.
- An IOC match indicates that the indicator exists in the collected threat intelligence; it does not independently confirm that a system is compromised.
- A missing match does not establish that an IOC is benign.
- Feed availability, network restrictions, and provider changes may affect collection results.
- Feed access restrictions must be respected.
Use this tool for authorized security monitoring, threat hunting, incident response, and defensive threat intelligence analysis. Validate findings using additional telemetry and trusted sources before making blocking or incident-response decisions.
- Initial release of the MISP threat intelligence collector.
- IOC database generation in CSV and JSON formats.
- IOC search using manual input, TXT files, and CSV files.
- Threat intelligence provider attribution for matching indicators.
- CSV export of matching records.