Skip to content

Comando Rules

El comando rules permite gestionar los conjuntos de reglas utilizados por RootCause para el análisis de código. Las reglas se almacenan en el directorio ~/.config/rootcause/rules por defecto.

$>rootcause rules help
Manage security rules and rule sets

Usage: rootcause rules <COMMAND>

Commands:
  verify   Verify that rules are correctly formatted
  inspect  Inspect a specific rule or all rules from a file
  install  Install a ruleset from a tarball
  update   Update installed rulesets
  remove   Remove an installed ruleset
  list     List installed rulesets
  help     Print this message or the help of the given subcommand(s)

Options:
  -h, --help  Print help
  
$>rootcause rules list
[LIST] Listing installed rulesets...

Official RootCause Rules
  └─ Name: Official RootCause Rules
  └─ Author: RootCause Team
  └─ Version: 1.0.0
  └─ Origin: https://github.com/rootcause/rules
  └─ Folder: /home/rootcause-admin/.config/rootcause/rules/official

[SUCCESS] Found 1 ruleset(s)

Ubicación de las reglas

Por defecto, RootCause busca las reglas en:

  • ~/.config/rootcause/rules (Linux/macOS)
  • %APPDATA%\rootcause\rules (Windows)

Puedes especificar directorios adicionales en el archivo de configuración config.toml:

toml
[rules]
rule_dirs = [
    "/home/usuario/.config/rootcause/rules", 
    "./reglas-personalizadas"
]

Formatos de reglas soportados

RootCause soporta múltiples formatos de reglas:

  • YAML: Formato principal para reglas de configuración y código
  • JSON: Formato alternativo para reglas
  • Semgrep: Compatible con reglas de Semgrep
  • OPA WASM: Módulos WASM para reglas complejas

Ejemplos de flujo de trabajo

Instalar y usar un conjunto de reglas

bash
# 1. Instalar conjunto de reglas de seguridad
rootcause rules install https://github.com/security/rules/releases/latest/download/security.tar.gz

# 2. Verificar que se instaló correctamente
rootcause rules list

# 3. Verificar las reglas
rootcause rules verify ~/.config/rootcause/rules

# 4. Inspeccionar una regla específica
rootcause rules inspect py.subprocess-shell

# 5. Usar las reglas en un escaneo
rootcause scan . # Las reglas están instaladas así que se usan siempre

Actualizar reglas existentes

bash
# Actualizar todas las reglas
rootcause rules update

# O actualizar una específica
rootcause rules update security-rules

Gestionar reglas personalizadas

bash
# 1. Crear directorio para reglas personalizadas
mkdir ./my-custom-rules

# 2. Crear reglas en formato YAML
# (ver documentación de reglas para formato)

# 3. Verificar las reglas personalizadas
rootcause rules verify ./my-custom-rules

# 4. Usar en escaneo
rootcause scan . --rules ./my-custom-rules

RootCause - Modular Static Analysis Engine