Skip to content
Sedat Özdemir
Writing

cybersecurity

Hunting for Treasure in the IOC Trash: The ‘Real’ Face of Threat Intel

Stop chasing static IPs and hashes. If you want to actually hurt an attacker, you need to climb the Pyramid of Pain and start targeting our TTPs.

Sedat Özdemir
· 5 dk read

Remember those romantic days when we’d just jam a thousand "malicious" IP addresses into a firewall, lean back, and say, "Alright, we're safe for the day"? Or that feeling of being a digital guardian when you tossed a hash into VirusTotal and saw a 50/70 detection rate? Most of us have finally accepted that an 8-character password with an exclamation mark at the end won't save us, but somehow, people still fall for the trap of thinking every "IOC (Indicator of Compromise)" list they find is actual intelligence.

Let’s be real: that 50,000-line IP list you just downloaded is nothing but a pile of data unless it tells you which TTPs (Tactics, Techniques, and Procedures) the actor behind those IPs is using. Speaking as a Red Team Lead, I can tell you this: we change proxies and hop through new infrastructure faster than you can click "save" on that static blocklist. Real Threat Intelligence (TI) doesn't start with a list of IPs; it starts when you understand why we changed that proxy, which domain naming algorithms we’re fond of, and what time of day we usually "log in" to work.

Where Are We on the Pyramid of Pain?

You’ve probably seen David Bianco’s "Pyramid of Pain." If you haven’t, it’s basically the Red Team’s favorite thing and the Blue Team’s biggest headache. At the bottom, you have Hash values, IPs, and Domain names. For us, changing these is trivial—it's a "no-brainer." I can change a file’s hash with one line of code, or spin up a new C2 (Command and Control) server with a quick curl command.

The real game is at the top of the pyramid: TTPs.

When you detect an attacker’s behavior, that’s when you actually cause us "pain." Humans are creatures of habit, and hackers are no different. If I love using certutil.exe to download files during an engagement and you start monitoring that and go, "Wait a minute, Sedat, what are you doing?"—then I’m in trouble. Now I have to change my entire strategy, which costs me time, effort, and possibly the whole operation. Real intel isn't saying "This IP is bad"; it’s saying "This actor targets financial institutions, prefers C#-based wrappers over PowerShell, and uses DNS Tunneling for exfiltration."

Automation or Just Digital Manual Labor?

There are plenty of expensive TI platforms out there with flashy dashboards. They’re great, sure, but sometimes you need a "tailor-made" approach, especially when tracking a specific threat actor.

Instead of just staring at a dashboard, you can build your own little "Threat Fetcher" using APIs like AlienVault OTX. But remember, just pulling the data isn't enough—you have to make sense of it. Here’s a quick Python snippet I put together that grabs the latest activities for a specific tag and helps you see what's actually happening out there.

import requests
import json

class ThreatIntelFetcher:
    def __init__(self, api_key):
        self.api_key = api_key
        self.base_url = "https://otx.alienvault.com/api/v1/indicators/export"

    def get_tag_intel(self, tag):
        headers = {"X-OTX-API-KEY": self.api_key}
        params = {"tag": tag, "limit": 10}
        
        response = requests.get(self.base_url, headers=headers, params=params)
        
        if response.status_code == 200:
            return response.json()
        else:
            return f"Error: {response.status_code}"

# Example usage:
# fetcher = ThreatIntelFetcher(api_key="your_key_here")
# print(fetcher.get_tag_intel("apt29"))

The goal here isn't to just collect more "trash." The goal is to find the patterns. Look for the tools being used, the execution flow, and the timing. Stop being a data hoarder and start being an analyst. If you can make us change our habits, you've already won half the battle.

Stay curious, stay paranoid.

Related posts