---
name: ioc
lang: go
domain: cybersecurity
version: "1.0.0"
algebraic: product
definition: |
  type IoC struct {
      Type  string
      Value string
      Start int
      End   int
      Extra map[string]string
  }
description: "Indicador de Compromiso extraido de texto. Type es uno de: email, ip_address, domain, file_hash, crypto_wallet, cve_id, mac_address, phone_number. Start y End son byte offsets en el texto original. Extra contiene campos adicionales dependientes del tipo (algorithm para file_hash, asset para crypto_wallet)."
tags: [ioc, cybersecurity, indicator, threat-intel]
uses_types: []
file_path: "functions/cybersecurity/extract_iocs.go"
---

## Notas

El struct IoC es el tipo de retorno de `ExtractIocs`. El campo `Extra` es nil para la mayoria de tipos; solo se puebla para:
- `file_hash`: `Extra["algorithm"]` = "md5" | "sha1" | "sha256" | "sha512"
- `crypto_wallet`: `Extra["asset"]` = "btc" | "eth"
