Skip to main content
Version: 25.06

Rule Pack Reference

Overview

Rule Packs are XML files that contain one or more classification rules along with their metadata and shared resources. They serve as the deployment unit for content detection rules and provide versioning, localization, and management capabilities.

Rule Pack Structure

Basic Structure

<?xml version="1.0" encoding="UTF-8"?>
<RulePackage xmlns="http://schemas.microsoft.com/office/2011/mce">
<RulePack id="unique-id">
<Version major="1" minor="0" build="0" revision="0"/>
<Publisher id="publisher-id"/>
<Details defaultLangCode="en">
<LocalizedDetails langcode="en">
<PublisherName>Publisher Name</PublisherName>
<Name>Rule Pack Name</Name>
<Description>Rule pack description</Description>
</LocalizedDetails>
</Details>

<!-- Rules Section -->
<Rules>
<!-- Classification rules go here -->
</Rules>

<!-- Resources Section (Optional) -->
<Resources>
<!-- Shared resources go here -->
</Resources>
</RulePack>
</RulePackage>

Rule Pack Metadata

Required Attributes

AttributeTypeDescriptionRequiredConstraints
idStringUnique identifier for the rule packYesMust be unique across all rule packs
xmlnsStringXML namespace declarationYesMust be http://schemas.microsoft.com/office/2011/mce

Version Element

The Version element specifies the rule pack version for management and updates.

AttributeTypeDescriptionRequiredRangeExample
majorIntegerMajor version numberYes0-9991
minorIntegerMinor version numberYes0-9990
buildIntegerBuild numberYes0-99990
revisionIntegerRevision numberYes0-99990

Example:

<Version major="2" minor="1" build="15" revision="3"/>

Publisher Element

AttributeTypeDescriptionRequiredExample
idStringUnique publisher identifierYes"company-security-team"

Example:

<Publisher id="cyberhaven-content-rules"/>

Details Element

The Details element contains localized metadata about the rule pack.

AttributeTypeDescriptionRequiredValues
defaultLangCodeStringDefault language codeYesISO 639-1 codes (en, fr, de, etc.)

LocalizedDetails Sub-elements

ElementTypeDescriptionRequiredMax Length
PublisherNameStringDisplay name of the publisherYes256 characters
NameStringDisplay name of the rule packYes256 characters
DescriptionStringDescription of the rule packYes1024 characters

Example:

<Details defaultLangCode="en">
<LocalizedDetails langcode="en">
<PublisherName>Cyberhaven Security Team</PublisherName>
<Name>Financial Data Protection Rules</Name>
<Description>Classification rules for detecting financial and payment card data</Description>
</LocalizedDetails>
<LocalizedDetails langcode="fr">
<PublisherName>Équipe de sécurité Cyberhaven</PublisherName>
<Name>Règles de protection des données financières</Name>
<Description>Règles de classification pour détecter les données financières et de cartes de paiement</Description>
</LocalizedDetails>
</Details>

Rules Section

The Rules section contains all classification rules included in the pack.

Structure

<Rules>
<Entity id="rule-id-1" patternsProximity="300" recommendedConfidence="75">
<!-- Rule definition -->
</Entity>
<Entity id="rule-id-2" patternsProximity="150" recommendedConfidence="85">
<!-- Rule definition -->
</Entity>
<!-- Additional rules... -->
</Rules>

Rule Container Attributes

AttributeTypeDescriptionRequiredDefaultRange
idStringUnique rule identifierYes-Must be unique within rule pack
patternsProximityIntegerMaximum distance between patternsNo3001-1000 characters
recommendedConfidenceIntegerRecommended confidence thresholdNo751-100

Resources Section

The Resources section contains shared resources that can be referenced by multiple rules.

Supported Resource Types

Keyword Lists

<Resources>
<Keyword id="financial-terms">
<Group matchStyle="word">
<Term>account</Term>
<Term>balance</Term>
<Term>payment</Term>
<Term>transaction</Term>
</Group>
</Keyword>
</Resources>

Keyword Attributes

AttributeTypeDescriptionRequiredValues
idStringUnique keyword list identifierYesMust be unique within rule pack
matchStyleStringHow keywords should be matchedNoword, string, regex

Keyword Group Attributes

AttributeTypeDescriptionRequiredValues
matchStyleStringOverride match style for this groupNoword, string, regex

Regular Expression Patterns

<Resources>
<Regex id="credit-card-pattern">
<Pattern>(?:\d{4}[-\s]?){3}\d{4}</Pattern>
</Regex>
</Resources>

Built-in Functions

<Resources>
<LocalizedStrings>
<Resource idRef="creditCardValidation">
<Name default="true" langcode="en">Credit Card Validation</Name>
<Description default="true" langcode="en">Validates credit card numbers using Luhn algorithm</Description>
</Resource>
</LocalizedStrings>
</Resources>

Validation Requirements

XML Schema Validation

Rule packs must be valid XML using UTF-8 or UTF-16LE encoding and conform to the Microsoft Classification Engine schema.

Required Elements

  1. Root Element: Must be RulePackage with correct namespace
  2. RulePack Element: Must contain id attribute
  3. Version Element: Must specify all four version components
  4. Publisher Element: Must contain valid id
  5. Details Element: Must contain at least one LocalizedDetails
  6. Rules Section: Must contain at least one rule

Naming Conventions

ElementConventionExample
Rule Pack IDLowercase with hyphensfinancial-data-rules
Rule IDDescriptive with contextcredit-card-detection
Resource IDLowercase with hyphenspayment-keywords

Deployment Considerations

Version Management

  • Major Version: Increment for breaking changes
  • Minor Version: Increment for new features
  • Build: Increment for bug fixes
  • Revision: Increment for patches

Performance Impact

FactorImpactRecommendation
Number of RulesHighGroup related rules, limit to 50 per pack
Resource SizeMediumKeep keyword lists under 1000 terms
Pattern ComplexityHighUse simple patterns when possible
Proximity SettingsMediumUse appropriate proximity values

Localization Support

<Details defaultLangCode="en">
<LocalizedDetails langcode="en">
<PublisherName>Security Team</PublisherName>
<Name>PII Detection Rules</Name>
<Description>Rules for detecting personally identifiable information</Description>
</LocalizedDetails>
<LocalizedDetails langcode="es">
<PublisherName>Equipo de Seguridad</PublisherName>
<Name>Reglas de Detección de PII</Name>
<Description>Reglas para detectar información de identificación personal</Description>
</LocalizedDetails>
</Details>

Example Rule Pack

<?xml version="1.0" encoding="UTF-8"?>
<RulePackage xmlns="http://schemas.microsoft.com/office/2011/mce">
<RulePack id="cyberhaven-financial-rules">
<Version major="1" minor="2" build="5" revision="0"/>
<Publisher id="cyberhaven-security"/>
<Details defaultLangCode="en">
<LocalizedDetails langcode="en">
<PublisherName>Cyberhaven Security</PublisherName>
<Name>Financial Data Protection</Name>
<Description>Comprehensive rules for detecting financial and payment information</Description>
</LocalizedDetails>
</Details>

<Rules>
<Entity id="credit-card-detection" patternsProximity="300" recommendedConfidence="85">
<!-- Credit card detection rule -->
</Entity>
<Entity id="bank-account-detection" patternsProximity="200" recommendedConfidence="75">
<!-- Bank account detection rule -->
</Entity>
</Rules>

<Resources>
<Keyword id="financial-keywords">
<Group matchStyle="word">
<Term>account</Term>
<Term>routing</Term>
<Term>balance</Term>
<Term>payment</Term>
</Group>
</Keyword>
</Resources>
</RulePack>
</RulePackage>

Best Practices

Organization

  1. Group Related Rules: Keep functionally related rules in the same pack
  2. Logical Naming: Use descriptive, consistent naming conventions
  3. Version Control: Maintain proper version numbering
  4. Documentation: Include comprehensive descriptions

Performance

  1. Optimize Proximity: Use appropriate proximity values for rule types
  2. Limit Complexity: Keep rule packs focused and manageable
  3. Resource Sharing: Use shared resources to reduce duplication
  4. Testing: Validate rules with representative content

Maintenance

  1. Regular Updates: Keep rules current with evolving threats
  2. Performance Monitoring: Track rule performance and accuracy
  3. Localization: Maintain translations for international deployments
  4. Backup: Maintain version history for rollback capability