opentide

HarfangLab (`platform::harfanglab::1.0`)

`configurations.harfanglab` is a HarfangLab detection rule, either a Sigma behavioural rule or a YARA scan rule. There is no query validator. The HarfangLab rule id is the Tide rule's `metadata.uuid` for both kinds. A block may carry both `sigma` and `yara`; deploy publishes the Sigma rule and does not publish the YARA

Summary

configurations.harfanglab is a HarfangLab detection rule, either a Sigma behavioural rule or a YARA scan rule. There is no query validator. The HarfangLab rule id is the Tide rule's metadata.uuid for both kinds. A block may carry both sigma and yara; deploy publishes the Sigma rule and does not publish the YARA rule in that case.

Shared fields are defined in platforms.

Requirements

  • Static validation MUST NOT require sigma or yara. maturity, confidence, and action have defaults, so a block with only the shared fields validates.
  • Deploy MUST fail unless sigma or yara is present.
  • When both are present, deploy MUST publish sigma and MUST NOT publish yara.
  • A sigma object MUST include logsource.category, logsource.product, selections, and condition for static validation. Each selection MUST include name, field, and value. The HarfangLab loader supplies an empty selections list when that key is omitted, so registry load accepts a Sigma block the validator rejects.
  • A yara object MUST include meta.context, meta.os, strings, and condition.
  • action SHOULD be Alert, Alert & Block, or Alert, Block & Quarantine. Any other string deploys as alert.
  • maturity SHOULD be Stable, Testing, or Experimental. Any other string deploys as experimental.
  • confidence SHOULD be Weak, Moderate, or Strong. Any other string deploys as moderate.
  • Legacy external-id keys are invalid. rule_id_bundle, rule_id, and rule_id::<tenant> fail external_id_in_rule. Migration removes them as external_id_unused; HarfangLab continues to address Sigma and YARA rules by metadata.uuid.

Definition

Block

FieldTypeRequiredDefaultDescription
maturitystringoptionalExperimentalRule maturity. Mapped to HarfangLab hl_status.
confidencestringoptionalModerateAnalyst confidence. Mapped to rule_confidence_override.
actionstringoptionalAlertWhat the agent does on a match. Mapped to global_state.
tagslist[string]optionalnullSigma tags, and the YARA tags meta line.
sigmaHarfangLabSigmaoptionalnullBehavioural rule. Preferred when yara is also set.
yaraHarfangLabYaraoptionalnullFile or memory scan rule.

Action, maturity, and confidence

actionglobal_stateAgent
Alertalertalert only
Alert & Blockblockblock
Alert, Block & Quarantinequarantinequarantine
any otheralertalert only

On a Sigma deploy, DISABLEMENT forces global_state to disabled and sets the rule disabled, regardless of action. A YARA deploy does not consult the status strategy when it builds global_state; the action table above still applies.

maturityhl_status
Stablestable
Testingtesting
Experimentalexperimental
any otherexperimental
confidenceoverride
Weakweak
Moderatemoderate
Strongstrong
any othermoderate

Sigma level and the YARA score come from response.alert_severity, not from these three fields:

response.alert_severitySigma levelYARA score
Informationalinformational10
Lowlow30
Mediummedium50
Highhigh70
Criticalcritical90
missing or unknownmedium50

sigma (HarfangLabSigma)

Deploy builds a Sigma YAML document. The title is the Tide rule name, the id is metadata.uuid, and the author is metadata.author.

FieldTypeRequiredDescription
logsource.categorystringyesSigma logsource category (process_creation).
logsource.productstringyesSigma logsource product (windows).
selectionslist[Selection]yesNamed selections.
conditionstringyesSigma condition expression (selection, selection1 and selection2).
false_positiveslist[string]optionalSigma false-positive notes.

selections[]:

FieldTypeRequiredDescription
namestringyesSelection name used by condition.
fieldstringyesEvent field (Image, CommandLine).
valuestring | number | boolean | list of thoseyesMatch value. A list is a Sigma list.
modifierslist[string]optionalSigma modifiers (contains, endswith). Empty when omitted.

yara (HarfangLabYara)

Deploy builds a YARA rule. The rule name is the Tide rule name lowercased, with non-alphanumeric characters turned into _, and prefixed with rule_ when it would start with a digit. Meta id is metadata.uuid.

FieldTypeRequiredDescription
metaYaraMetayesScan context, OS, and optional score override.
stringsstringyesYARA string section body, one definition per line, without the strings: header.
conditionstringyesYARA condition body, without the condition: header.
importslist[string]optionalYARA modules (pe, elf). Each becomes import "<module>".

yara.meta

FieldTypeRequiredDescription
contextlist[string]yesScan contexts. The value file is rewritten from os: Windows → file.pe, MacOS → file.macho, Linux → file.elf. Other context values are kept.
osstringyesWindows, MacOS, or Linux. Also written to meta os.
archlist[string]optionalArchitectures, joined with commas.
scorestringoptionalInformational, Low, Medium, High, or Critical. A known value overrides the score taken from response.alert_severity. An unknown value falls back to that severity, then to 50.
classificationstringoptionalFree-form classification written to meta.

Author meta uses metadata.author, then metadata.organisation.name. metadata.created and metadata.modified are written when set. Public references are joined into meta references.

Deploy

Block status strategyHarfangLab result
DISABLEMENTSigma rule disabled (global_state: disabled, enabled: false). A YARA rule is still created or updated with the action mapping.
DELETIONSigma or YARA rule deleted by metadata.uuid. Sigma is chosen when both blocks are present.
any otherCreate or update by metadata.uuid.

The tenant source_id is sent with the rule. The tenant type (Sigma or YARA) selects which HarfangLab API the workspace is configured for; the block's sigma / yara keys select which compiler runs.

Relationships

  • platforms — shared fields, no query validation, external ids
  • deployment-state.md — external_id_unused in migration; HarfangLab has no shard entry
  • rule-1.0.md — response.alert_severity feeds level and score
  • metadata.md — uuid, author, organisation, dates

Defaults & overrides

FieldDefault
maturityExperimental
confidenceModerate
actionAlert
Sigma level / YARA scorefrom response.alert_severity, else medium / 50
Rule idmetadata.uuid

Examples

Sigma:

configurations:
  harfanglab:
    enabled: true
    schema: platform::harfanglab::1.0
    status: STAGING
    maturity: Testing
    confidence: Strong
    action: Alert
    tags: [attack.execution, attack.t1059]
    sigma:
      logsource:
        category: process_creation
        product: windows
      selections:
        - name: selection
          field: Image
          value: cmd.exe
          modifiers: [endswith]
      condition: selection
      false_positives:
        - Administrative scripts

YARA:

configurations:
  harfanglab:
    schema: platform::harfanglab::1.0
    action: "Alert & Block"
    yara:
      meta:
        context: [file]
        os: Windows
        arch: [x86, x64]
        classification: trojan
      imports: [pe]
      strings: |
        $a = "cmd.exe" ascii
      condition: |
        $a

Fixtures: fixtures/platforms/harfanglab-sigma.yaml, fixtures/platforms/harfanglab-yara.yaml.

History

VersionDateNotes
1.02026-09-30Initial field contract from the HarfangLab configuration model and deployer.
1.12026-10-16rule_id_bundle is removed. Legacy external-id keys fail external_id_in_rule, and migration removes them as external_id_unused (RFC 0010). Identity stays metadata.uuid. Schema id unchanged.

On this page