Skip to content
Skillpedia
General coding35k · #5556

building-threat-intelligence-feed-integration

Lets your agent connect threat data sources in real-time. It helps identify attacks quickly by integrating security information.

What it does

This tool automates the collection of cybersecurity threat information from various sources. It organizes this data and sends it to your security tools, helping to identify and alert on malicious activity in real-time.

When to use it

  • ✓When you need to gather security intelligence from multiple places.
  • ✓To transform raw threat data into a usable format for your tools.
  • ✓So your security systems can automatically detect threats.

Example of what to ask your AI

“How can I integrate threat intelligence from CISA and AlienVault OTX into my SIEM?”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/building-threat-intelligence-feed-integration/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/building-threat-intelligence-feed-integration/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

The tool connects to different threat data sources, like STIX/TAXII feeds and commercial platforms. It normalizes this data into a standard format and sends it to your security tools, such as your SIEM, for analysis.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill building-threat-intelligence-feed-integration

Or download just the file:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/building-threat-intelligence-feed-integration/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

Building Threat Intelligence Feed Integration

When to Use

Use this skill when:

  • SOC teams need automated ingestion of threat intelligence feeds into SIEM platforms
  • Multiple TI sources require normalization into a common format (STIX 2.1)
  • Detection systems need real-time IOC matching against network and endpoint telemetry
  • TI feed quality assessment and deduplication processes need to be established

Do not use for manual IOC lookup — use dedicated enrichment tools (VirusTotal, AbuseIPDB) for ad-hoc queries.

Prerequisites

  • MISP instance or Threat Intelligence Platform (TIP) for feed aggregation
  • STIX/TAXII client library (taxii2-client, stix2 Python packages)
  • SIEM platform (Splunk ES, Elastic Security, or Sentinel) with TI framework configured
  • API keys for commercial and open-source feeds (AlienVault OTX, Abuse.ch, CISA AIS)
  • Python 3.8+ for feed processing automation

Workflow

Step 1: Identify and Catalog Intelligence Sources

Map available feeds by type, format, and update frequency:

Feed Source Format IOC Types Update Freq Cost
AlienVault OTX STIX/JSON IP, Domain, Hash, URL Real-time Free
Abuse.ch URLhaus CSV/JSON URL, Domain Every 5 min Free
Abuse.ch MalwareBazaar JSON API File Hash Real-time Free
CISA AIS STIX/TAXII 2.1 All types Daily Free (US Gov)
CrowdStrike Intel STIX/JSON All types + Actor TTP Real-time Commercial
Mandiant Advantage STIX 2.1 All types + Reports Real-time Commercial

Step 2: Ingest STIX/TAXII Feeds

Connect to a TAXII 2.1 server and download indicators:

from taxii2client.v21 import Server, Collection
from stix2 import parse

# Connect to TAXII server (example: CISA AIS)
server = Server(
    "https://taxii.cisa.gov/taxii2/",
    user="your_username",
    password="your_password"
)

# List available collections
for api_root in server.api_roots:
    print(f"API Root: {api_root.title}")
    for collection in api_root.collections:
        print(f"  Collection: {collection.title} (ID: {collection.id})")

# Fetch indicators from a collection
collection = Collection(
    "https://taxii.cisa.gov/taxii2/collections/COLLECTION_ID/",
    user="your_username",
    password="your_password"
)

# Get indicators added in last 24 hours
from datetime import datetime, timedelta
added_after = (datetime.utcnow() - timedelta(days=1)).strftime("%Y-%m-%dT%H:%M:%S.000Z")

response = collection.get_objects(added_after=added_after, type=["indicator"])
for obj in response.get("objects", []):
    indicator = parse(obj)
    print(f"Type: {indicator.type}")
    print(f"Pattern: {indicator.pattern}")
    print(f"Valid Until: {indicator.valid_until}")
    print(f"Confidence: {indicator.confidence}")
    print("---")

Step 3: Ingest Open-Source Feeds

Abuse.ch URLhaus Feed:

import requests
import csv
from io import StringIO

# Download URLhaus recent URLs
response = requests.get("https://urlhaus.abuse.ch/downloads/csv_recent/")
reader = csv.reader(StringIO(response.text), delimiter=',')

indicators = []
for row in reader:
    if row[0].startswith("#"):
        continue
    indicators.append({
        "id": row[0],
        "dateadded": row[1],
        "url": row[2],
        "url_status": row[3],
        "threat": row[5],
        "tags": row[6]
    })

print(f"Ingested {len(indicators)} URLs from URLhaus")

# Filter for active threats only
active = [i for i in indicators if i["url_status"] == "online"]
print(f"Active threats: {len(active)}")

AlienVault OTX Pulse Feed:

from OTXv2 import OTXv2, IndicatorTypes

otx = OTXv2("YOUR_OTX_API_KEY")

# Get subscribed pulses (last 24 hours)
pulses = otx.getall(modified_since="2024-03-14T00:00:00")

for pulse in pulses:
    print(f"Pulse: {pulse['name']}")
    print(f"Tags: {pulse['tags']}")
    for indicator in pulse["indicators"]:
        print(f"  IOC: {indicator['indicator']} ({indicator['type']})")

Abuse.ch Feodo Tracker (C2 IPs):

response = requests.get("https://feodotracker.abuse.ch/downloads/ipblocklist_recommended.json")
c2_data = response.json()

for entry in c2_data:
    print(f"IP: {entry['ip_address']}:{entry['port']}")
    print(f"Malware: {entry['malware']}")
    print(f"First Seen: {entry['first_seen']}")
    print(f"Last Online: {entry['last_online']}")

Step 4: Normalize and Deduplicate

…

FAQ

What are 'Indicators of Compromise' (IOCs)?

IOCs are digital clues, like malicious IP addresses, domain names, or file hashes, that indicate potential cyber threat activity.

What are STIX/TAXII?

STIX is a language for describing cyber threat information, and TAXII is a protocol for exchanging that information between systems.

Why not use tools like VirusTotal directly?

Tools like VirusTotal are great for quick, manual lookups. This tool is for automating the continuous collection and distribution of threat intelligence at scale to your security systems.

Details

Original description by the author

Builds automated threat intelligence feed integration pipelines connecting STIX/TAXII feeds, open-source threat intel, and commercial TI platforms into SIEM and security tools for real-time IOC matching and alerting. Use when SOC teams need to operationalize threat intelligence by automating feed ingestion, normalization, scoring, and distribution to detection systems. '

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularity

GitHub stars
35k
Ranking position
#5556
License
Apache-2.0
Updated
8/31/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills