Supported Formats¶
Crossfire auto-detects format by file content — just pass the file:
| Format | Extensions | Tool |
|---|---|---|
| JSON | .json |
Any (native format, custom rules) |
| YAML | .yaml, .yml |
Any |
| CSV | .csv |
Any (name and pattern columns) |
| GitLeaks | .toml |
GitLeaks |
| Semgrep | .yaml |
Semgrep (pattern-regex rules) |
| YARA | .yar, .yara |
YARA (regex strings) |
| Sigma | .yaml |
Sigma (\|re modifier fields) |
| Snort/Suricata | .rules |
Snort / Suricata (pcre patterns) |
Native format (JSON/YAML/CSV)¶
Rules need at minimum a name and pattern field:
[
{"name": "aws_key", "pattern": "AKIA[0-9A-Z]{16}"},
{"name": "slack_token", "pattern": "xoxb-[0-9]{11}-[0-9]{11}-[a-zA-Z0-9]{24}"}
]
Custom field names¶
If your rules use different field names:
Default mappings: name/id/rule_name and pattern/regex/regexp.
Adding a new format¶
Crossfire uses a plugin system for format adapters. See Contributing for how to add support for a new tool.