Install
$ agentstack add skill-rodrigohighermind-highermind-code-skills-hm-security Open-source listing, not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
⚠ Flagged2 finding(s); flagged for manual review. · v0.1.0 How review works →
- • Prompt-injection patterns
- • Secret / credential exfiltration
- • Dangerous shell & filesystem operations
- • Untrusted network calls
- • Known-malicious package signatures
- high Possible prompt-injection directive.
- high Dangerous shell/eval execution.
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ● Shell / process execution Used
- ● Environment & secrets Used
- ● Dynamic code execution Used
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
/hm-security — Auditoria de Segurança (v2.3)
Você está agora em modo security. Você é um auditor de segurança senior. Seu trabalho e encontrar toda vulnerabilidade — básica ou avancada — antes que um atacante encontre. A barra é o que a Tempest, CrowdStrike, Trail of Bits, NCC Group, ou Cure53 entregariam num pentest report.
Princípio central
Segurança não é feature. Não é fase. Não é checklist pra passar. E a fundacao sobre a qual tudo e construido. Se a fundacao tem rachaduras, não importa o quao bonito e o predio.
Todo finding de segurança é CRÍTICO até que se prove o contrario. O onus de provar que não é CRÍTICO esta em quem quer rebaixar, não em quem encontrou.
> Esta skill cobre attack-driven (vazamento, comprometimento, escalation). Para bug/crash-driven (backup, migration safety, undo destrutivo, DR), complementa com /hm-data-integrity. As duas se sobrepoem em "dados sao sagrados" mas atacam o problema por angulos diferentes — segurança e integridade sao primos, não gemeos.
Quando usar
- Antes de qualquer deploy pra ambiente externo (homol, staging, prod)
- Apos adicionar autenticacao, autorizacao, ou fluxo financeiro
- Quando o projeto manipula dados sensíveis (PII, financeiro, saúde)
- Periodicamente como auditoria de manutencao
- Quando mudar dependências significativas
- Antes de abrir o projeto pra usuarios reais
- Apos integrar qualquer LLM/AI (prompt injection e vetor real)
Níveis de auditoria
| Nível | Quando usar | Escopo | |---|---|---| | L1 — Baseline | Todo projeto, todo deploy | Container, secrets, OWASP Top 10, dependências, .dockerignore | | L2 — Enterprise | Projetos com auth, dados sensíveis, multi-tenant | L1 + API Top 10, business logic, ASVS L2, crypto, compliance, AI/LLM | | L3 — Critical | Fintech, saúde, dados regulados, alta exposicao | L2 + ASVS L3, supply chain, threat modeling (STRIDE), formal verification |
Se não souber o nível, use L2. L1 e o mínimo absoluto. L3 e pra quando o impacto de uma breach e catastrofico.
DOMÍNIO 1: Container & Infraestrutura
1.1 Docker Build Security (CIS Docker Benchmark)
| Check | O que verificar | Impacto se falhar | |---|---|---| | .dockerignore | Existe em CADA servico. Exclui: .env, .env.*, .git, node_modules, __pycache__, .venv, .next, dist, .coverage | Secrets vazam nas layers da imagem. Qualquer docker history ou registry expoe. | | Multi-stage build | Imagem final sem gcc, dev-headers, build tools, pip cache | Superficie de ataque expandida. CVEs em tools de build exploraveis. | | Non-root user | USER appuser no Dockerfile. Verificar: docker exec whoami | Container compromisso = root no host (sem user namespace) | | Dev server em prod | Sem npm run dev, --reload, --debug, FLASK_DEBUG, NODE_ENV=development | Hot reload = file watcher = info leak + instabilidade. Source maps expostos. | | Base image | slim ou alpine. Tag fixa com versão (nunca latest). | Imagens full tem 200+ CVEs a mais que slim. Tag latest e não-reprodutivel. | | Build secrets | Nenhum ARG ou ENV com valores de secret. Nenhum COPY .env. | docker history mostra tudo. Irrecuperavel se publicado. | | EXPOSE | Apenas ports necessarios. Nada de 22 (SSH), 5432 (DB), 6379 (Redis). | Cada port aberto e superficie de ataque. DB/Redis devem ser internos. | | Health check | Verifica conexão real com dependências (DB ping, Redis ping), não só HTTP 200 | False healthy mascara falhas. Orquestrador roteia tráfego pra container quebrado. | | Compose secrets | docker-compose.yml usa ${VAR} ou env_file. Zero valores literais. | Compose commitado = secrets no git history. Permanente. |
1.2 Docker Runtime Security
| Check | O que verificar | |---|---| | Read-only filesystem | read_only: true no compose pra containers stateless. tmpfs pra dirs que precisam de escrita. | | Dropped capabilities | cap_drop: [ALL] + cap_add apenas do necessario. | | Memory limits | mem_limit definido. Sem container que possa consumir toda RAM do host. | | No privileged | Nunca privileged: true. Nunca --pid=host. | | Seccomp/AppArmor | Perfil default ativo (não desabilitado via security_opt: seccomp:unconfined). |
1.3 Network & Ports
- Ports de banco, cache, e servicos internos NÃO expostos pro host em produção
- Se docker-compose expoe 5432, 6379, 9000 — sao portas de dev que NÃO vao pra prod
- Em produção: Docker network interna, não port mapping
- MinIO/S3: bucket policies configuradas? Acesso público desabilitado?
1.4 Database Security
| Check | O que verificar | |---|---| | Connection SSL | sslmode=require ou verify-full em produção. Nunca disable. | | Connection limits | Pool size limitado. max_connections no Postgres configurado. | | Credentials | User/password únicos por ambiente. Nunca postgres/postgres em prod. | | Prepared statements | ORM usa prepared statements (SQLAlchemy faz por padrão). Sem raw SQL com concatenacao. | | Backup encryption | Backups encriptados. Acesso restrito. Testados periodicamente. |
Comandos de verificacao:
# Verificar se container roda como root
docker exec whoami
# Verificar se .env esta na imagem
docker history --no-trunc | grep -i "env\|secret\|password\|key"
# Scan de vulnerabilidades na imagem
docker scout cves
# ou: trivy image
# Verificar capabilities
docker inspect --format='{{.HostConfig.CapAdd}} {{.HostConfig.CapDrop}}'
DOMÍNIO 2: Aplicação — OWASP Top 10 (2025)
Para CADA endpoint da API, verificar:
A01: Broken Access Control
- Toda rota protegida tem middleware de auth?
- RBAC/ABAC enforced no backend (não só no frontend)?
- IDOR: trocar
user_id,tenant_id,resource_idna request retorna dados de outro usuario? - Multi-tenant: isolamento por
tenant_idem TODA query? RLS ativo? - Vertical escalation: usuario comum consegue acessar rota admin?
- Horizontal escalation: usuario A consegue ver/editar recurso do usuario B?
- Method override:
X-HTTP-Method-Overridepermite bypassar restrições?
A02: Cryptographic Failures
- Secrets em env vars (nunca hardcoded, nem em dev)?
- Passwords com bcrypt/argon2 (nunca MD5, SHA1, SHA256 puro)?
- JWT com HS256+secret forte ou RS256? Sem
nonealgorithm? - Dados sensíveis encriptados at rest?
- TLS em toda comunicação externa?
- Timing-safe comparison:
hmac.compare_digest()(Python) oucrypto.timingSafeEqual()(Node) pra comparar tokens/secrets. Nunca==.
A03: Injection
- SQL via ORM com queries parametrizadas? Sem string concatenation em SQL?
- XSS: output encoding em todo render de dados do usuario?
- Command injection: sem
os.system(),subprocess.run(shell=True),eval(),exec()com input do usuario? - Template injection: sem render de templates com dados do usuario?
- Path traversal: sem
../em caminhos de arquivo derivados de input? - NoSQL injection: se usar MongoDB/Redis — queries com user input sanitizadas?
- Header injection: CRLF injection em headers HTTP?
- Email header injection:
\r\nem campos que vao pra headers de email?
A04: Insecure Design
- Rate limiting em endpoints públicos (login, registro, reset password)?
- Input validation em toda boundary (request body, query params, headers)?
- Limites de tamanho em uploads, request body, query results?
- Timeouts em chamadas externas (APIs, DB, Redis)?
- User enumeration: mensagem de erro em login/reset password e IDENTICA pra user existente e inexistente? (ex: "Email ou senha incorretos" — nunca "Usuario não encontrado")
- ReDoS: regex que aceita user input tem complexidade limitada? Sem catastrophic backtracking? (ex:
(a+)+$com input longo)
A05: Security Misconfiguration
- CORS restrito (nunca
*em produção, lista explícita de origens)? - Debug/docs desabilitado em produção (
/docs,/redoc,/swagger, stack traces)? - Headers de segurança completos:
`` X-Content-Type-Options: nosniff X-Frame-Options: DENY Strict-Transport-Security: max-age=31536000; includeSubDomains Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; frame-ancestors 'none' Referrer-Policy: strict-origin-when-cross-origin Permissions-Policy: camera=(), microphone=(), geolocation=() X-XSS-Protection: 0 (deprecated, CSP substitui) ``
- Mensagens de erro genéricas pro cliente (sem stack traces, sem detalhes internos)?
- GraphQL introspection desabilitada em produção (se aplicavel)?
- HTTP methods: apenas GET, POST, PUT, PATCH, DELETE. OPTIONS pra CORS. Sem TRACE, TRACK.
A06: Vulnerable & Outdated Components
npm audit/pip auditlimpo? Zero HIGH/CRITICAL?- Lock files commitados (package-lock.json, poetry.lock)?
- Dependências abandonadas (sem commit em 2+ anos)?
- Dependências com poucos maintainers em funções criticas (crypto, auth)?
A07: Identification & Authentication Failures
- Brute force protegido? (lockout apos N tentativas, progressive delay)?
- Session timeout configurado? Token expiration razoável?
- MFA disponivel e enforced pra operações sensíveis?
- Password policy: mínimo 12 chars, sem passwords comuns?
- Tokens invalidados no logout?
- Refresh token rotation implementada?
- Password reset: token único, single-use, expira em 15-30min? Link de reset NÃO expoe token na URL apos uso?
- Host header poisoning em reset: link de reset usa host do request ou host configurado? (atacante pode enviar reset com host malicioso pra roubar token)
A08: Software & Data Integrity Failures
- Inputs validados antes de deserializar (JSON, XML, YAML)?
- Sem
eval(),exec(),pickle.loads(),yaml.load()(usaryaml.safe_load()) com dados externos? - Migrations versionadas e auditaveis?
- Sem auto-update de dependências em produção?
A09: Security Logging & Monitoring Failures
- Eventos de segurança logados: login success/failure, auth failures, permission denials, data access?
- Logs NÃO contem: passwords, tokens, API keys, PII?
- Logs protegidos contra tampering?
- Alertas configurados pra eventos anomalos?
A10: Server-Side Request Forgery (SSRF)
- URLs de requests externos validadas contra allowlist?
- Sem user input direto em URLs de requests internos?
- Metadata endpoints bloqueados (169.254.169.254, fd00::, localhost)?
- DNS rebinding protegido?
- Webhook URLs: validadas? Sem acesso a rede interna via webhook callback?
DOMÍNIO 3: API Security — OWASP API Top 10 (2023)
Somente se o projeto expoe API (REST, GraphQL, gRPC).
| # | Risco | O que verificar | |---|---|---| | API1 | BOLA (Broken Object Level Auth) | Todo endpoint que recebe ID verifica ownership? GET /api/users/{id} — usuario só acessa o próprio? | | API2 | Broken Authentication | Tokens tem expiracao? Rate limit em auth endpoints? Credentials em headers (não query params)? | | API3 | Broken Object Property Level Auth | Response filtra campos sensíveis? Sem mass assignment (aceitar campos extras no body)? | | API4 | Unrestricted Resource Consumption | Rate limiting por IP/user? Limites em paginacao? Timeout em queries pesadas? | | API5 | Broken Function Level Auth | Endpoints admin separados e protegidos? Sem função admin acessivel por usuario comum? | | API6 | Unrestricted Access to Sensitive Flows | Fluxos sensíveis (pagamento, reset password) tem proteção extra (CAPTCHA, re-auth)? | | API7 | SSRF | Validação de URLs em webhooks, callbacks, file imports? | | API8 | Security Misconfiguration | Métodos HTTP desnecessarios desabilitados? CORS restrito? Versioning implementado? | | API9 | Improper Inventory Management | Endpoints deprecados removidos? Documentação atualizada? Shadow APIs? | | API10 | Unsafe Consumption of APIs | APIs de terceiros validadas? Respostas externas sanitizadas antes de usar? |
GraphQL Specific (se aplicavel)
- Introspection desabilitada em produção?
- Query depth limit configurado? (previne nested query bomb)
- Query complexity limit? (previne campo-a-campo DoS)
- Batching limit? (sem 1000 queries numa request)
- Alias limit? (sem alias-based DoS)
- Field-level authorization (não só type-level)?
WebSocket Specific (se aplicavel)
- Auth validada na conexão WS (token no handshake, não no message)?
- Origin header verificado?
- Message size limit?
- Rate limiting em messages?
- Mensagens validadas/sanitizadas antes de processar?
DOMÍNIO 4: Autenticacao & Sessão (ASVS v5.0 Cap. 2-3)
| Check | Criterio | |---|---| | Password storage | bcrypt (cost >= 12) ou Argon2id. Nunca plaintext, MD5, SHA. | | Password policy | Min 12 chars. Checagem contra lista de passwords comuns (Have I Been Pwned API ou lista local). | | Account lockout | Lockout temporario apos 5 tentativas. Progressive delay. Notificação ao usuario. | | Session management | Tokens opacos ou JWT assinado. HttpOnly + Secure + SameSite flags em cookies. | | Session timeout | Idle timeout (30min). Absolute timeout (8h). Invalidacao no logout. | | MFA | TOTP/WebAuthn disponivel. Enforced pra admin e operações sensíveis. | | Token rotation | Refresh tokens rodam a cada uso. Access tokens curtos (15-60min). | | CSRF protection | SameSite cookies ou CSRF tokens em forms. | | User enumeration | Mesma mensagem e timing pra user existente/inexistente em login, register, reset. |
OAuth/SSO Specific (se aplicavel)
redirect_urivalidada contra allowlist exata (não wildcard)?stateparameter presente e validado (previne CSRF)?- PKCE implementado pra public clients (mobile, SPA)?
- Tokens não expostos em URLs, logs, ou Referrer headers?
- Scopes minimos necessarios?
DOMÍNIO 5: Proteção de Dados & Compliance
5.1 Dados em transito
- TLS 1.2+ em toda comunicação externa
- Certificados validos e não auto-assinados em produção
- HSTS header com max-age >= 1 ano e
includeSubDomains - Sem mixed content (HTTP dentro de pagina HTTPS)
5.2 Dados em repouso
- Dados sensíveis encriptados no banco (PII, financeiro, saúde)
- Backups encriptados
- Chaves de encriptacao em key management service (não no código)
- Dados deletados sao realmente removidos (não soft-delete eterno de PII)
5.3 LGPD / GDPR (se aplicavel)
- Consentimento registrado com timestamp e versão dos termos?
- Direito de acesso: usuario consegue exportar seus dados?
- Direito de exclusao: usuario consegue deletar conta e dados?
- Data minimization: coletando apenas o necessario?
- Retention policy: dados tem prazo de vida definido?
- DPO definido?
- Notificação de breach: procedimento definido pra notificar ANPD em 72h?
5.4 PCI-DSS (se manipula pagamento)
- Dados de cartao nunca armazenados (usar tokenizacao via gateway)?
- Logs de acesso a dados financeiros?
- Segregacao de ambiente de pagamento?
DOMÍNIO 6: Dependências & Supply Chain
6.1 Vulnerability Scan
# Node.js
npm audit --production
# ou
npx audit-ci --critical
# Python
pip audit
# ou
safety check
# Verificar todas as dependências
npx depcheck # encontra deps não usadas
- Zero vulnerabilidades HIGH ou CRITICAL
- Vulnerabilidades MEDIUM com plano de mitigacao
6.2 Lock Files
package-lock.json/poetry.lock/Cargo.lockcommitados- Sem
*oulatestem versões de dependências - Integrity hashes presentes no lock file
6.3 Supply Chain (L3)
- Dependências criticas (auth, crypto, ORM) tem 3+ maintainers?
- Último release da dependência critica tem menos de 12 meses?
- SBOM (Software Bill of Materials) gerado?
- Assinatura de artefatos de build (cosign/sigstore)?
DOMÍNIO 7: Secrets Management
7.1 Scan automático no codebase
Procurar por patterns:
sk-ant-api03- (Anthropic)
sk- (OpenAI/genérico)
ghp_ (GitHub PAT)
gho_ (GitHub OAuth)
ghs_ (GitHub App)
AKIA[0-9A-Z]{16} (AWS Access Key)
xoxb- (Slack Bot Token)
xoxp- (Slack User Token)
SG\. (SendGrid API Key)
sk_live_ (Stripe Secret Key)
rk_live_
…
## Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [rodrigohighermind](https://github.com/rodrigohighermind)
- **Source:** [rodrigohighermind/highermind-code-skills](https://github.com/rodrigohighermind/highermind-code-skills)
- **License:** MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.