Home/Cloud
Análisis de Seguridad de Pull Requests

Sentinel Cloud

Analiza pull requests de GitHub detectando vectores de supply chain, lifecycle hooks, ejecución remota y secretos expuestos. Los escaneos se ejecutan bajo demanda o vía integración con GitHub; Sentinel no reescribe los resultados de GitHub ni declara limpio lo que no ha inspeccionado.

2,740
OWASP Java cases · Cloud score 0
95.0%
Cloud FPR on OWASP Java cases
602
annotated NPM malicious samples
87.5%
Cloud FPR on a 32-package benign sample
20%
Cloud false-positive rate on 40 synthetic benign PRs
Historical offline evaluations · three distinct corpora

What the results support and where they stop.

These offline evaluations cover different tasks and cannot be combined into a single ranking. The NPM result has a small benign sample and high false-positive rate; the synthetic PR set is not evidence of generalization. No result here establishes general superiority over another security tool.

OWASP Java · NPM annotated samples · synthetic PR corpus (separate evaluations)Local/offline runs · Node v24.13.1
Evaluation MetricSentinel CloudSentinel CLISentinel OracleScope and limitation
OWASP Benchmark v1.2 — Java (2,740 cases)TP 1,336 · FP 1,259 · FN 79 · TN 66 · Score 0Not evaluatedNot evaluatedCloud recall 94.4%; FPR 95.0%. This corpus does not establish Java SAST capability.
NPM malicious annotated-file recall (602 samples)87.9% (529 / 602)83.1% (500 / 602)87.5% (527 / 602)Cloud / CLI / Oracle respectively. Sentinel scanned annotated malicious files, not full packages; this comparison is optimistic and not apples-to-apples.
NPM benign sample false-positive rate (32 packages)87.5% (28 / 32)65.6% (21 / 32)81.3% (26 / 32)Cloud / CLI / Oracle respectively; the curated sample is small and is not the paper’s full benign corpus.
Synthetic PR-level malicious recall (60 malicious / 40 benign)Cloud 76.7% (46 / 60)CLI 65.0% (39 / 60)Oracle 15.0% BLOCK (9 / 60)Benign PR false-positive rates: Cloud 20%, CLI 10%, Oracle 0%. Oracle BLOCK+REVIEW is 46.7%; these are distinct decision thresholds.
Determinism (100 synthetic PRs × 2 passes)Cloud 100%CLI 100%Oracle 100%Observed agreement on this corpus only; it is not evidence of detection quality or generalization.
LLM usage in the recorded offline runs0 calls0 calls0 callsThese offline runs do not measure every production Cloud operation.

NPM Malicious Package Study — evaluated subset

Malicious sample
602 packages
Annotated malicious code files; not full package scans
Benign sample
32 packages
Curated popular packages; not the paper’s benign set
Cloud recall
87.9%
529 / 602 malicious samples flagged
Cloud benign FPR
87.5%
28 / 32 benign packages had any finding
Cloud high-severity FPR
84.4%
27 / 32 benign packages had HIGH or above
Interpretation
Limited
Recall is optimistic; package-level precision is not established

OWASP Benchmark v1.2 outcome (Java)

OWASP-JAVAOWASP Benchmark v1.2 (Java)
SCORE 0

Raw counts are preserved in docs/benchmarks/results/owasp-2026-08-16T02-19-43-975Z.json. FPR is FP / (FP + TN) = 1,259 / 1,325 = 95.019%; an older summary said approximately 93%. The historical JSON is unchanged.

TP means a labeled vulnerable case was flagged; FP means a labeled benign case was flagged; FN means a labeled vulnerable case was missed; TN means a labeled benign case passed. Recall = TP / (TP + FN), FPR = FP / (FP + TN), precision = TP / (TP + FP). OWASP labels its Java cases; the NPM set uses paper annotations; the PR set uses synthetic labels. None of these results is a paired vulnerable-versus-patched CVE test.

References: OWASP Benchmark · NPM Malicious Package Study. Historical engine commits: Cloud worker `5b5e1dd`, CLI `bb95341`, Oracle `786b55f`; runs were offline/local, with Oracle tarball and content-intelligence integrations disabled.

Real-world audits — public repos

Beyond the internal corpus.

The Cloud engine run against real, well-known open-source repositories. Raw signals are engine output; human-verified are the findings that survived manual triage and map to a shipped change. Every false positive is documented, not dropped.

RepositoryScopeRawVerifiedOutcome
axios/axiosworkflows + lib/ source590 (documented FPs)CLEAN
nodejs/undicinpm publish pipeline311 — provenance gapPR #5880
pnpm/pnpm + pnpr registryCI + 11 Rust crates2040 (documented FPs)CLEAN
vitejs/vite.github workflows440 (documented FPs)CLEAN
fastify/fastifypackage-manager CI221 — curl|bash without pinPR #7050
drizzle-team/drizzle-ormrelease workflows680 (placeholder creds)CLEAN
modelcontextprotocol/typescript-sdk8 workflows2929 — mutable tagsPR #2603
punkpeye/fastmcpCI/CD workflows77 — hardening gapsPR #303

Raw = engine findings pre-triage · verified = survive human verification, map to a change · PRs are supply-chain hardening framing

Made to save your AI tokens

The AI can't be immutable.
That's where Cloud comes in.

Sentinel Cloud analyzes pull-request changes and presents its own findings with repository and scan context. The output is evidence for a reviewer and may vary when the scanned commit, enabled checks, or integrations change.

GitHub check runs and Code Scanning alerts are shown in a separate evidence view. They are not folded into Sentinel findings or used to rewrite the Sentinel scan result.

So we do not replace your AI. We feed it. Cloud returns deliverables as structured JSON — verdicts, kill chains, evidence — designed to be consumed by both humans and AI tools. Your agent stops re-reading raw diffs and starts answering from pre-filtered evidence.

Flow
01
PR submitted
Scanning depends on plan, GitHub integration, and repository configuration
02
Sentinel analysis
Review findings produced by the enabled scan checks
03
GitHub evidence
Checks and Code Scanning alerts appear in a separate view
04
Review
Inspect the recorded evidence and scan limitations
05
Merge controls
Repository branch rules and configured authorization tools decide merge access
Three products, different turf

Cloud, CLI, and Oracle have different operating models.

These products are not assigned comparative scores here. The descriptions below summarize the integration boundaries documented in their current contracts.

Integration boundaries
Hosted Cloud
GitHub App webhook can scan pull requests and post a Check Run verdict.
CLI
Local scanner and local history are available offline. Cloud remote scan is a separate authenticated operation.
Oracle
Separate merge-authorization product. This benchmark does not measure its production authorization service.
Group collaboration
Verified groups, GitHub invitations, and member-attributed group activity are not implemented.
CLI
  • →Local scanning runs offline; hosted repository scans require Cloud authentication.
  • →File classification and pre-commit hooks
  • →OS Guard package-install interception
  • →Signal Vault and baseline data are stored locally.
Oracle
  • →Oracle is a separate merge-authorization product.
  • →The offline benchmark does not evaluate Oracle’s production authorization service.
  • →The inspected Cloud integration reports account status; it does not send group activity events.
Producción & Telemetría

Galería de Detección en Producción

Capturas operativas reales del motor Sentinel Cloud analizando repositorios de alta exposición, trazando grafos de kill chain y generando recibos criptográficos deterministas.

Panel Operativo de Repositorios

Panel Operativo de Repositorios

Monitor centralizado con el estado de sincronización de repositorios, métricas de escaneo y protección activa en Sentinel Cloud.

CLOUD-SCREENSHOT-1Ver en grande →
Desglose de Severidades y Resumen de PR

Desglose de Severidades y Resumen de PR

Clasificación precisa de hallazgos por severidad (CRITICAL, HIGH, MEDIUM, LOW) con veredicto final determinista.

CLOUD-SCREENSHOT-2Ver en grande →
Detección Quirúrgica de Vector de Ataque

Detección Quirúrgica de Vector de Ataque

Tarjeta forense detallando la carga útil identificada, fragmento de código, categoría de amenaza y mitigación sugerida.

CLOUD-SCREENSHOT-3Ver en grande →
Grafo de Trazabilidad y Kill Chain

Grafo de Trazabilidad y Kill Chain

Correlación multietapa que mapea cómo una instrucción secundaria se conecta a un vector de exfiltración o ejecución remota.

CLOUD-SCREENSHOT-4Ver en grande →
Recibo Criptográfico Determinista

Recibo Criptográfico Determinista

Prueba de auditoría inmutable firmada digitalmente para garantizar verificabilidad sin drift en el pipeline CI/CD.

CLOUD-SCREENSHOT-5Ver en grande →
Matriz Comparativa de Rendimiento

Matriz Comparativa de Rendimiento

Evaluación cuantitativa frente a marcos estándar de la industria (OWASP, NPM Malicious Datasets), mostrando recall y precisión.

CLOUD-SCREENSHOT-6Ver en grande →
Detection stack

What the engine actually catches

Six layers, one pipeline. Each layer feeds the next; kill chains are only built when signals across layers correlate. The worker path is what production runs on every PR.

01
L1 · Regex rule packs (14 files)
GitHub Actions · GitLab CI · Jenkins · CircleCI · secrets · malware · supply-chain · Go · Rust · Python. curl|bash pivots (risk 10), registry overrides, npm publish without review, action input injection, self-hosted runner misuse, credential exposure.
02
L2 · AST taint (JS/TS)
Acorn-backed source/sink analysis: exec/eval/spawn sinks, prototype pollution, reverse-shell patterns, and indirect calls that regex cannot see.
03
L3 · Threat intel / IOC
C2 domain list matched across URLs, quoted strings and hostnames; GitHub raw-content abuse tracking.
04
L4 · Binary, entropy, unicode
WASM profiling, high-entropy payload scoring, zero-width and confusable-character detection.
05
L5 · Lifecycle, lockfile, config
package.json script analysis, lockfile poisoning, .npmrc/.yarnrc registry overrides, proxy injection.
06
L6 · Correlation + scoring
Kill chains (SUPPLY_CHAIN_EXECUTION, RCE, EXFIL), adaptive confidence with campaign fingerprinting, risk-band classification P0–P4.
Honest scope

What Sentinel Cloud does not cover

  • ✕Offline evaluations include 2,740 OWASP Java cases, 602 annotated NPM malicious samples plus a separate curated benign sample of 32 packages, and 100 synthetic PRs (60 malicious, 40 benign).
  • ✕Language coverage: deep AST dataflow and source-to-sink taint is optimized for JS/TS; other ecosystems (Python, Go, Rust, CI/CD) rely on contextual AST, IOCs, and comprehensive security rules.
  • ✕False positives remain material in the measured corpora: Cloud FPR was 95.0% on OWASP Java, 87.5% on the small NPM benign sample, and 20% on synthetic benign PRs.
  • ✕Deterministic engine, not a probabilistic predictor: it scores what code actually does from the diff and causal graph, producing cryptographically verifiable HMAC receipts without LLM token drift.
  • ✕Cloud is a hosted DevSecOps service with GitHub App integration; local air-gapped enforcement is handled by Sentinel CLI, and isolated merge authority by Sentinel Oracle.
  • ✕Every benchmark claim is verified with reproducible scripts and ground-truth manifests across real-world malware and open-source corpora.
A note on independence

Every number on this page comes from a benchmark you can run yourself against the real production scanner — not from a vendor-commissioned report. If a claim breaks, the fix lands in the open test corpus, not in a footnote.

Your data

How we handle it

The two retention numbers on this site are different by design: 365 days is the Cloud metadata retention (ENTERPRISE); 14 days is the internal offline calibration buffer (hash-only, never customer data). Neither ever stores your source files.

What we keep+
PR metadata (repo, branch, title), findings with evidence snippets, kill chains, reports, audit log entries, and billing/usage records.
What we redact+
Secret values (tokens, keys, emails, IPs) are matched and rendered as [REDACTED] in outputs. API tokens are stored as SHA-256 digests only.
What we never store+
Full repository contents or raw source files. The offline calibration store keeps only snippet hashes and repo hashes — no PII, no tokens, no file contents.
Cloud retention+
Scan metadata is retained per plan (ENTERPRISE: 365 days). A cron purge removes unpinned scans and audit logs past each plan's retention; soft-deleted scans are purged after 30 days. Pinned scans are kept.
Offline ground-truth pipeline+
Separate SQLite store with a 14-day TTL for scan results, human feedback, and PR outcomes. Export runs before purge, so your history is preserved in the exported JSON and the database only ever holds a temporary buffer.
Deletion+
Deleting your account removes your scans and data. Retention purge is fail-closed: if the purge query fails, it surfaces an alert instead of silently skipping.
Read the full privacy & security policies →

¿Listo para empezar?

Revisa los planes disponibles en la página principal.

Ver Planes →