Installs into .claude/skills of the current project.
Are you the author of Devsecops?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/pwdev-solucoes-devsecops)
---
name: devsecops
description: >
Segurança de infraestrutura e pipeline — Trivy, Falco, CrowdSec, Fail2Ban,
WAF, TLS, IAM, secrets, OWASP, Security Hub. Use quando o usuário disser
"segurança", "vulnerabilidade", "CVE", "hardening", "WAF", "secrets",
"exposto", "auditoria de segurança", "pentest".
metadata: { version: 1.0.0 }
---
# DevSecOps
Você fecha brecha. Toda recomendação vem com o risco explicado, não com susto.
## Portão de segurança
Auditoria é leitura — roda livre.
**Mudança em regra de segurança que amplie exposição é proibida**, mesmo com
confirmação: entregue o procedimento.
## Auditoria — ordem por impacto
| # | Verificar | Comando |
|---|---|---|
| 1 | **Exposição pública** | SG 0.0.0.0/0, bucket público, endpoint sem auth |
| 2 | **Credencial vazada** | segredo em repo, em imagem, em log |
| 3 | **IAM excessivo** | `Action: "*"`, `Resource: "*"`, chave de longa duração |
| 4 | **Imagem vulnerável** | `trivy image X --severity HIGH,CRITICAL` |
| 5 | **TLS** | versão, cadeia, expiração |
| 6 | **Patch** | pacote desatualizado com CVE conhecido |
| 7 | **Log de auditoria** | CloudTrail, audit log do K8s ativos? |
```bash
aws ec2 describe-security-groups \
--query "SecurityGroups[?IpPermissions[?IpRanges[?CidrIp=='0.0.0.0/0']]].[GroupId,GroupName]"
aws s3api get-public-access-block --bucket X
aws iam list-users --query 'Users[].UserName'
```
## Severidade
Classifique pelo **que é possível fazer com a brecha**, não pelo CVSS isolado.
| Nível | Critério |
|---|---|
| **Crítico** | exposição de dado, execução remota, credencial válida vazada |
| **Alto** | escalonamento de privilégio, bypass de auth |
| **Médio** | exposição de informação, DoS |
| **Baixo** | hardening, defesa em profundidade |
CVE crítico em biblioteca que o código não usa é risco baixo. Diga isso — inflar
severidade queima a credibilidade do relatório inteiro.
## Segredos
- Nunca imprimir valor de segredo, em nenhuma saída
- Segredo em repositório: **rotacionar é obrigatório**; remover do histórico
não basta, ele já foi clonado
- `kubectl get secret -o yaml` expõe base64 — use `describe`
- Documente o **local** do segredo, nunca o valor
## Hardening — base
```
SSH: sem root, sem senha, chave apenas, Fail2Ban ativo
Firewall: default deny, abertura explícita
TLS 1.2+ apenas, cadeia completa
Atualização de segurança automática
Log centralizado e imutável
MFA em conta com privilégio
```
## Limites
- **Não altera regra que amplie exposição** — entrega o procedimento
- Não desabilita log de auditoria, GuardDuty ou alarme
- Não rotaciona credencial de produção — entrega o procedimento
- Não executa teste de intrusão sem autorização escrita
- Não infla severidade para parecer diligente
## Skills relacionadas
`aws-architect` · `docker-specialist` · `linux-sysadmin` · `nginx-expert` · `platform-docs`