b2KIT

Threat Intelligence Feed Parser

Parse STIX/TAXII, CSV, and JSON threat intelligence feeds. Normalize IOCs and export in standard formats.

Tested tool guide Tested browser tools Checked August 16, 2026

What Threat Intelligence Feed Parser does, with a checked example

Paste a threat intelligence feed - a STIX 2.x bundle, a TAXII collection response, a vendor CSV, or a JSON export - and this tool extracts the indicators of compromise it contains, maps them to standard types (IPv4, IPv6, domain, URL, email, MD5, SHA-1, SHA-256), removes duplicates, and exports the cleaned set as CSV or a fresh STIX bundle. Format detection is by content, not file extension. Everything runs locally in the browser, so the pasted feed is never uploaded. The surprise most users hit: parsing is not judging. The tool normalizes syntax and typing; it never tells you an IOC is malicious, live, or worth blocking.

Worked example

A concrete input and expected output from the current implementation.

Input

value,type
203.0.113.5,ip
example.com,domain
d41d8cd98f00b204e9800998ecf8427e,md5
203.0.113.5,ipv4

Expected output

Input: CSV, 4 rows
Unique IOCs: 3
Duplicate rows dropped: 1

value                             type
203.0.113.5                       IPv4 address
example.com                       domain
d41d8cd98f00b204e9800998ecf8427e  MD5 hash

Rows 1 and 4 hold the same address under different type labels ('ip' and 'ipv4'), so the parser merges them into one IPv4 IOC and 4 input rows become 3 unique IOCs. The 32-hex-character value is valid MD5 length, and 203.0.113.5 lies in the RFC 5737 documentation range, so it is a safe sample value rather than a real host.

How the result is produced

1

Format detection by content

It reads what you paste and decides the format: a JSON document with a bundle object and STIX 2.x object types, a TAXII collection response (itself a STIX JSON document), a CSV with a header row, or a plain JSON array of objects. Recognized column or field names map to IOC types; anything unrecognized is kept as-is rather than assumed away.

2

Canonicalization, deduplication, export

Values are canonicalized before deduplication: hex hashes and domains compare case-insensitively, and hash length decides the algorithm - 32 hex characters is MD5, 40 is SHA-1, 64 is SHA-256. The same address labeled 'ip' in one row and 'ipv4' in another becomes one IPv4 IOC. The deduplicated set is what gets exported, as CSV or as a STIX 2.1 bundle.

Good uses

  • You exported a STIX 2.1 bundle from a threat intelligence platform and need a flat, deduplicated IOC list to load into SIEM or detection rules.
  • Your vendor CSV feed mixes column names ('IP', 'ip', 'IPv4') and repeats the same entries daily; you need one consistently typed list for a blocklist review.
  • You run an intel-sharing pipeline and must merge two feeds from different sources into a single uniform CSV or STIX bundle before publishing.

Limits and checks

  • A clean parse is not a verdict. The tool checks syntax and typing, not malice: an address can sit in the RFC 5737 documentation range, a domain can be dead, a hash can match nothing, and none of that is reported. Confirm an IOC against your own intel sources before you block on it.
  • Bundle counts can mislead. A STIX bundle contains identities, relationships, and observed-data objects in addition to indicators, so 'objects in the bundle' and 'IOCs extracted' are different numbers. Many STIX indicators are patterns such as [ipv4-addr:value = '1.2.3.4' AND port = 80]; the extracted value may be only part of the pattern.
  • CSV typing is a guess the tool makes from headers and values. An unusual column name (sha-256 instead of sha256, or link instead of url) can be classified as unknown. Skim the per-row type assignments before trusting the totals.

Common questions

Does pasting a sensitive feed upload it anywhere?

No. The parse happens entirely in your browser and nothing in the pasted feed is sent to a server. That matters for this tool precisely because indicators are often internal or sensitive. If your organization's policy forbids client-side handling of certain data regardless, treat the tool as you would any local processing utility.

Can I point it at a TAXII server URL and have it pull the feed?

TAXII 2.1 is an HTTPS protocol, so a pull needs a server that will answer the browser. The tool parses pasted content: paste the response body of a collection Get Objects call, which is a STIX bundle, or export from your TAXII client and paste that. Direct fetching only works where the server allows cross-origin browser requests.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools