Summary
Add regex pattern to extract Sigma rule IDs from CTI text.
Context
Sigma is the open standard for SIEM detection rules. CTI reports reference Sigma rules by name (e.g., sigma:apt28_cobalt_strike, Sigma Rule: win_susp_powershell_encoded_cmd). ZettelForge should extract these as entities.
Acceptance Criteria
Example Input/Output
ext = EntityExtractor()
result = ext.extract_all("Detection via sigma:apt28_cobalt_strike")
assert "apt28_cobalt_strike" in result["sigma_rule"]
Summary
Add regex pattern to extract Sigma rule IDs from CTI text.
Context
Sigma is the open standard for SIEM detection rules. CTI reports reference Sigma rules by name (e.g.,
sigma:apt28_cobalt_strike,Sigma Rule: win_susp_powershell_encoded_cmd). ZettelForge should extract these as entities.src/zettelforge/entity_indexer.pytests/test_basic.py::TestEntityExtractorAcceptance Criteria
sigma_ruletoREGEX_PATTERNSinentity_indexer.pysigma:rule_name,Sigma Rule: rule_name, and bare Sigma rule IDs from SigmaHQ conventionsigma_ruletoENTITY_TYPESnote.semantic.entitiesafterremember()tests/test_basic.py::TestEntityExtractor:sigma:apt28_cobalt_strikeextracts assigma_ruleSigma Rule: win_susp_powershell_encoded_cmdextracts assigma_rulesigma_rulepytest tests/test_basic.py -vExample Input/Output