Aquí no hay ni una cifra escrita a mano. Todas salen del lockfile, del package.json, de la política de pnpm, de los workflows o de git, en tiempo de build.
riesgo asumidoCode owner review means reviewing your own code on a solo repository. CODEOWNERS exists so ownership is explicit, but enforcing self-review would be theatre.
altaRepository default branch requires status checks
repository_default_branch_status_checks_required
pendienteCI already runs lint, typecheck, build, audit, gitleaks and a SHA-pin check on every push. Making them a merge gate requires moving to a pull-request workflow.
altaRepository has secret scanning enabled to detect sensitive data
repository_secret_scanning_enabled
bloqueadoGitHub only offers secret scanning for public repositories or paid plans. The GitHub API rejects it here with a 422. Gitleaks runs on every pull request instead, which covers the same ground from CI.
mediaRepository default branch requires conversation resolution before merging
riesgo asumidoRequires two approving reviews. This is a one-person repository, so a second approver does not exist. Stated rather than hidden.
En verde
✓Repository default branch denies force pushes
✓Repository default branch protection applies to administrators
✓Repository enforces branch protection on the default branch
✓Repository default branch requires signed commits
✓Repository grants workflows a read-only default GITHUB_TOKEN
✓Repository has package vulnerability scanning (Dependabot alerts) enabled
✓Repository has immutable releases enabled
✓Repository denies default branch deletion
✓Repository has a CODEOWNERS file
✓Repository is archived or active within the configured inactivity threshold
✓Repository deletes branches after pull request merge
✓Repository default branch requires linear history
Nada de esto está escrito a mano: el JSON-OCSF de Prowler se normaliza en el build. Los fallos se muestran tal cual, con su motivo; esconderlos dejaría la página sin sentido.
Encuentra la mala configuración
Tres configuraciones reales. Haz clic en la línea peligrosa de cada una.0/3
Política de bucket S3
Un Principal con comodín deja el bucket abierto a cualquier usuario anónimo de internet. Es la causa más común de fuga pública de datos en AWS.
Solución Indica la cuenta o el rol que realmente lo necesita: "Principal": { "AWS": "arn:aws:iam::111122223333:role/invoice-reader" }
Política IAM
iam:PassRole sobre * es una vía de escalada de privilegios. Quien lo tenga puede levantar una instancia con cualquier rol de la cuenta, incluido uno de administrador, y heredar sus permisos. La policy parece inofensiva; el alcance es total.
Solución Limita Resource a los roles concretos que se pueden pasar y añade una condición sobre iam:PassedToService.
Grupo de seguridad
SSH queda expuesto a todo internet. Aunque solo se entre por clave, deja el servicio a la vista de cualquier escáner y de cualquier CVE que salga mañana.
Solución Limita el CIDR al rango de tu VPN, o quita el puerto 22 y tira de SSM Session Manager, que no necesita ninguna regla de entrada.