InfoSec OfficerOficial de SegurançaOficial de Seguridad
Vuln triage and compliance.Triagem de vulns e compliance.Triaje de vulns y cumplimiento.
The InfoSec Officer is the persona that keeps software and AI systems defensible under change. In an AI-native SDLC, the InfoSec Officer operates a Threat Triager agent, four slash prompts, and a validated MCP catalog anchored on GitHub Advanced Security and Microsoft Defender for Cloud — not a backlog of PDF checklists.
Executive summary
The InfoSec Officer owns the security posture of the delivery pipeline and the products it ships. In an AI-native SDLC, they operate a Threat Triager agent with four slash prompts (/vuln-triage, /sbom-scan, /threat-model, /incident-security), scoped instructions for security-sensitive paths, and a validated MCP catalog that reaches into GitHub Advanced Security, Dependabot, CodeQL, Secret Scanning, Push Protection, Microsoft Defender for Cloud, Microsoft Sentinel, Microsoft Purview, Entra ID, and Azure Key Vault.
Primary deliverables are triaged vulnerability queues with SLAs, signed software bills of materials, threat models attached to each architecture decision, and incident responses coordinated through Sentinel. The InfoSec Officer turns security from a release-blocker into a continuous, mostly automatic, evidence-producing layer.
Security is a property of the pipeline, not an audit event. The InfoSec Officer wires policies, detections, and remediations into everyday tools so that by the time a PR reaches merge, most questions are already answered.
Role and responsibilities
Think of the InfoSec Officer like the fire marshal for a city. They do not fight every fire, but they write the building code, certify inspections, run drills, and coordinate the response when a real fire happens. In an AI-native SDLC, the InfoSec Officer enforces the code and orchestrates the response across GitHub, Azure, and Microsoft 365 surfaces.
Primary responsibilities:
- Triage vulnerability alerts from GitHub Advanced Security, Dependabot, and Defender for Cloud
- Maintain the SBOM (software bill of materials) per service with signed provenance
- Author threat models for every new architecture; update when the architecture changes
- Coordinate security incident response through Microsoft Sentinel and GitHub issues
- Enforce Push Protection, Secret Scanning, CodeQL, and Dependabot policies on every repository
- Integrate AI safety (content filters, PII redaction) with the ML AI Engineer’s pipelines
- Operate the Threat Triager agent and
/vuln-triage,/sbom-scan,/threat-model,/incident-securityprompts - Manage identity and secret hygiene via Microsoft Entra ID and Azure Key Vault
Jobs to be done
- As an InfoSec Officer, I want every Dependabot or CodeQL alert triaged within SLA, so that exposed windows are minimized.
- As an InfoSec Officer, I want a signed SBOM published with every release, so that supply-chain questions have immediate answers.
- As an InfoSec Officer, I want threat models attached to architecture PRs, so that mitigations are in place before code lands.
- As an InfoSec Officer, I want Push Protection and Secret Scanning on by default, so that credentials never reach a remote branch.
- As an InfoSec Officer, I want Defender for Cloud findings converted into GitHub issues automatically, so that remediation work is visible in the same backlog as features.
- As an InfoSec Officer, I want Sentinel alerts enriched with repo context, so that triage is fast and accurate.
- As an InfoSec Officer, I want incident timelines produced automatically from chat, commits, and alerts, so that post-incident reviews are fact-based.
- As an InfoSec Officer, I want all secrets stored in Azure Key Vault with managed identity, so that no long-lived credentials sit in CI.
Pain points before AI-native
- Alert fatigue. Thousands of Dependabot and CodeQL alerts with no triage, so real issues hide in noise.
- SBOMs as PDFs. Bills of materials produced once, never signed, never consumed in CI.
- Threat models in a vault. Threat models written at project kickoff, never revisited; they describe a system that no longer exists.
- Incident chaos. Incidents managed across five tools; the timeline is recovered later by interviewing people.
- Credentials in CI. API keys in GitHub Actions secrets, rotated on holidays, stored in plain YAML by accident.
- Policies as slides. Security policies exist in SharePoint, not as enforced configuration.
- Siloed AI safety. AI safety controls owned by a different team, not integrated into the same review.
AI-native daily workflow
The InfoSec Officer works from Visual Studio Code and the terminal with Claude Code, orchestrating the Threat Triager and enforcing hooks across every repository.
Morning setup
- Open Microsoft Defender for Cloud, Microsoft Sentinel, and GitHub Advanced Security dashboards.
- Run
/vuln-triage --since=yesterdayto cluster new alerts by service and severity. - Review Push Protection bypasses and Secret Scanning notifications from overnight.
- Check Azure Key Vault access logs for anomalies; confirm Entra ID Conditional Access is healthy.
- Post the security standup digest in Microsoft Teams with open incidents and SLA clocks.
Midday execution
- For each architecture PR, invoke
/threat-model; the Threat Triager drafts STRIDE findings and mitigations, then opens tracking issues. - For every vulnerability cluster, triage with
/vuln-triage: assign owner, severity, fix window, compensating controls. - Run
/sbom-scanas part of CI; block release on unsigned or policy-violating components. - Coordinate the active incident channel in Microsoft Teams;
/incident-securitykeeps the timeline current.
Afternoon review
- Verify Defender for Cloud recommendations and file Azure Policy exceptions where warranted.
- Review CodeQL query additions and merge approved custom queries into the shared pack.
- Update the quarterly risk register in the repo; publish the updated posture score to Microsoft Loop.
Recommended primitives
Agent
| Agent | File | Purpose |
|---|---|---|
threat-triager | .github/agents/threat-triager.agent.md | Triages vulnerabilities, runs SBOM scans, drafts threat models, coordinates incidents |
Slash prompts
| Command | File | Purpose |
|---|---|---|
/vuln-triage | .github/prompts/vuln-triage.prompt.md | Cluster alerts, assign owners, set SLA, propose remediations |
/sbom-scan | .github/prompts/sbom-scan.prompt.md | Generate, sign, and verify the SBOM for a release |
/threat-model | .github/prompts/threat-model.prompt.md | Draft STRIDE analysis and mitigation tasks on an architecture PR |
/incident-security | .github/prompts/incident-security.prompt.md | Maintain live incident timeline from Sentinel, Teams, and GitHub |
Instructions scoped
Scope (applyTo) | File | Purpose |
|---|---|---|
.github/workflows/**/*.yml | .github/instructions/actions-security.instructions.md | OIDC to Azure, no long-lived secrets, pinned SHA actions |
infra/**/*.bicep | .github/instructions/infra-security.instructions.md | Key Vault references, managed identity, network isolation |
src/**/auth/** | .github/instructions/auth.instructions.md | Entra ID patterns, token handling, least privilege |
prompts/**/*.prompt.md | .github/instructions/ai-safety.instructions.md | Content-safety guardrails and PII redaction |
Hooks
pre-commit: Secret Scanning, push protection, dependency policy checkpre-push: CodeQL fast queries on changed filespost-merge: Dependabot triage, SBOM refresh, Defender for Cloud syncpre-release: SBOM signature and threat-model presence gateon-incident: create a Sentinel incident record and pin the Microsoft Teams channel
Validated MCPs
| MCP | Purpose | Owner |
|---|---|---|
| GitHub MCP Server | Read Advanced Security alerts, Dependabot, CodeQL, manage issues and PRs | GitHub |
| Azure MCP Server | Drive Defender for Cloud, Sentinel, Key Vault, Entra ID, Azure Policy operations | Microsoft |
| Microsoft Learn Docs MCP | Resolve current security guidance across Microsoft stacks | Microsoft |
| Azure DevOps MCP Server | Track remediation work items when the team uses Azure DevOps | Microsoft |
| Playwright MCP | Validate security UX flows (SSO, MFA, consent) end-to-end | Microsoft |
Real examples
Example 1: zero-day triage inside an hour
A CVE lands in a widely used dependency. /vuln-triage identifies 23 repos exposed and maps each to its service owner. The Threat Triager opens issues with linked fix PRs already drafted by Copilot. Within an hour, 19 PRs are merged; the remaining 4 get documented compensating controls. Defender for Cloud confirms the exposure has closed.
Example 2: threat model drives a design change
An architecture PR proposes a new endpoint that accepts signed URLs. /threat-model flags a replay risk and suggests a nonce plus short expiry. The Software Architect updates the design before the PR merges; the mitigation tasks are linked and closed automatically when the implementation lands.
Example 3: signed SBOM blocks a release
The release workflow invokes /sbom-scan. The pipeline detects an unsigned transitive dependency and blocks release. The InfoSec Officer confirms the component is not under active exploitation, files a temporary exception in Azure Policy, and the release proceeds with full audit trail.
Anti-patterns
- Spreadsheet triage. Triage outside GitHub loses context and SLA tracking; stay in issues.
- Long-lived secrets. Any secret older than 90 days is a liability; use managed identity and Key Vault references.
- One-time threat models. Models must evolve with the system; tie them to architecture PRs.
- Ignoring Push Protection bypasses. Every bypass is reviewed the same day, not at quarter end.
- Safety silos. AI safety belongs in the same pipeline as app security, with the same reviewers.
- Policy as PDF. Policies that are not Azure Policy or GitHub Advanced Security configurations do not exist.
- Incidents without timelines. Every incident yields a reproducible timeline generated from tools, not memory.
KPIs and impact metrics
| Metric | Baseline (manual) | Target (agentic) | Source |
|---|---|---|---|
| Mean time to triage CVE | 4 days | < 4 hours | /vuln-triage history |
| SBOM coverage | 40 percent | 100 percent of releases | GitHub Actions |
| Threat model coverage on arch PRs | 20 percent | 100 percent | /threat-model runs |
| Secrets detected at push time | 12 per month | 0 | Push Protection logs |
| Defender for Cloud high findings > 7 days | 30 | < 5 | Defender for Cloud |
| Sentinel incidents with automated timeline | 10 percent | 100 percent | Sentinel workbooks |
| Key Vault credential rotation on time | 60 percent | 100 percent | Entra ID audit |
Maturity in four levels
- L1 Manual: Advisories tracked in a spreadsheet, no SBOM, threat models at kickoff only.
- L2 Assisted: Dependabot and Secret Scanning enabled but untriaged; Defender for Cloud dashboards watched ad hoc.
- L3 Augmented: Threat Triager agent, four slash prompts, scoped instructions, CodeQL custom pack, Sentinel integration.
- L4 Autonomous: Automated triage with SLA enforcement, signed SBOMs blocking release, threat models attached to every architecture PR, incidents with auto-generated timelines.
Integration with other personas
- From Software Architect: design diagrams and ADRs feeding
/threat-model. - To Developer: remediation issues with linked fix drafts.
- With ML AI Engineer: AI safety configuration, content-safety filters, PII redaction.
- With SRE: shared Sentinel runbooks and incident response.
- With Compliance Auditor: SBOMs, threat models, and audit-grade evidence packs.
- From Data Engineer: Purview classifications driving data-handling controls.
- With DBA: database access reviews and least-privilege checks.
Glossary
- SBOM: software bill of materials — signed list of every component in a release.
- STRIDE: threat modeling taxonomy (Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, Elevation of privilege).
- Push Protection: GitHub Advanced Security feature blocking secrets from reaching remote branches.
- Managed identity: Microsoft Entra ID identity used by workloads, eliminating stored credentials.
- Dependabot: GitHub service that opens PRs for vulnerable dependencies.
- Sentinel incident: a Microsoft Sentinel case object collecting alerts, entities, and timeline.
- Compensating control: an alternative mitigation when the preferred fix is not yet feasible.
References
- GitHub Advanced Security — CodeQL, Dependabot, Secret Scanning, Push Protection
- Microsoft Defender for Cloud — posture and workload protection
- Microsoft Sentinel — SIEM and SOAR
- Azure Key Vault — secret, key, and certificate management
- Microsoft Entra ID — identity and access management
- Azure Policy — policy as code enforcement
- Microsoft Purview — data governance and sensitivity
- GitHub Actions — CI and deployment orchestration across the stack
- Microsoft Learn Docs MCP — first-party documentation retrieval at implementation time
- GitHub Advanced Security — CodeQL, Dependabot, Secret Scanning, Push Protection
O InfoSec Officer é a persona que mantém software e sistemas de IA defensáveis sob mudança. Em um SDLC AI-nativo, o InfoSec Officer opera um agente Threat Triager, quatro slash prompts e um catálogo validado de MCPs ancorado no GitHub Advanced Security e Microsoft Defender for Cloud — não um backlog de checklists em PDF.
Resumo executivo
O InfoSec Officer é dono da postura de segurança do pipeline de entrega e dos produtos que ele entrega. Em um SDLC AI-nativo, ele opera um agente Threat Triager com quatro slash prompts (/vuln-triage, /sbom-scan, /threat-model, /incident-security), instruções com escopo para caminhos sensíveis à segurança e um catálogo validado de MCPs que alcança GitHub Advanced Security, Dependabot, CodeQL, Secret Scanning, Push Protection, Microsoft Defender for Cloud, Microsoft Sentinel, Microsoft Purview, Entra ID e Azure Key Vault.
As entregas primárias são filas de vulnerabilidades triadas com SLAs, bills of materials de software assinados, modelos de ameaça anexados a cada decisão de arquitetura e respostas a incidentes coordenadas através do Sentinel. O InfoSec Officer transforma segurança de um bloqueador de release em uma camada contínua, quase toda automática, produtora de evidências.
Segurança é uma propriedade do pipeline, não um evento de auditoria. O InfoSec Officer conecta políticas, detecções e remediações às ferramentas do dia a dia para que, quando um PR chega ao merge, a maioria das perguntas já esteja respondida.
Papel e responsabilidades
Pense no InfoSec Officer como o marechal de incêndio de uma cidade. Ele não combate cada incêndio, mas escreve o código de construção, certifica inspeções, conduz simulações e coordena a resposta quando um incêndio real acontece. Em um SDLC AI-nativo, o InfoSec Officer enforça o código e orquestra a resposta através de superfícies do GitHub, Azure e Microsoft 365.
Responsabilidades primárias:
- Triar alertas de vulnerabilidade do GitHub Advanced Security, Dependabot e Defender for Cloud
- Manter o SBOM (software bill of materials) por serviço com proveniência assinada
- Criar modelos de ameaça para cada nova arquitetura; atualizar quando a arquitetura mudar
- Coordenar resposta a incidentes de segurança através do Microsoft Sentinel e issues do GitHub
- Enforçar Push Protection, Secret Scanning, CodeQL e políticas do Dependabot em cada repositório
- Integrar segurança de IA (filtros de conteúdo, redação de PII) com os pipelines do ML AI Engineer
- Operar o agente Threat Triager e os prompts
/vuln-triage,/sbom-scan,/threat-model,/incident-security - Gerenciar higiene de identidade e segredos via Microsoft Entra ID e Azure Key Vault
Jobs to be done
- Como InfoSec Officer, eu quero cada alerta do Dependabot ou CodeQL triado dentro do SLA, para que janelas de exposição sejam minimizadas.
- Como InfoSec Officer, eu quero um SBOM assinado publicado a cada release, para que perguntas sobre supply chain tenham respostas imediatas.
- Como InfoSec Officer, eu quero modelos de ameaça anexados a PRs de arquitetura, para que mitigações estejam em vigor antes do código aterrissar.
- Como InfoSec Officer, eu quero Push Protection e Secret Scanning habilitados por padrão, para que credenciais nunca alcancem uma branch remota.
- Como InfoSec Officer, eu quero achados do Defender for Cloud convertidos em issues do GitHub automaticamente, para que o trabalho de remediação seja visível no mesmo backlog que features.
- Como InfoSec Officer, eu quero alertas do Sentinel enriquecidos com contexto de repositório, para que a triagem seja rápida e precisa.
- Como InfoSec Officer, eu quero timelines de incidente produzidas automaticamente a partir de chat, commits e alertas, para que revisões pós-incidente sejam baseadas em fatos.
- Como InfoSec Officer, eu quero todos os segredos armazenados no Azure Key Vault com managed identity, para que nenhuma credencial de longa duração fique no CI.
Dores antes do AI-nativo
- Fadiga de alertas. Milhares de alertas do Dependabot e CodeQL sem triagem, então problemas reais se escondem no ruído.
- SBOMs como PDFs. Bills of materials produzidos uma vez, nunca assinados, nunca consumidos no CI.
- Modelos de ameaça em um cofre. Modelos de ameaça escritos no kickoff do projeto, nunca revisitados; descrevem um sistema que não existe mais.
- Caos de incidentes. Incidentes gerenciados em cinco ferramentas; a timeline é recuperada depois entrevistando pessoas.
- Credenciais no CI. Chaves de API em secrets do GitHub Actions, rotacionadas em feriados, armazenadas em YAML plano por acidente.
- Políticas como slides. Políticas de segurança existem no SharePoint, não como configuração enforçada.
- Segurança de IA em silo. Controles de segurança de IA pertencendo a outro time, não integrados na mesma revisão.
Fluxo diário AI-nativo
O InfoSec Officer trabalha a partir do Visual Studio Code e do terminal com Claude Code, orquestrando o Threat Triager e enforçando hooks em cada repositório.
Setup da manhã
- Abra os dashboards do Microsoft Defender for Cloud, Microsoft Sentinel e GitHub Advanced Security.
- Rode
/vuln-triage --since=yesterdaypara agrupar novos alertas por serviço e severidade. - Revise bypasses de Push Protection e notificações de Secret Scanning da noite anterior.
- Verifique logs de acesso do Azure Key Vault para anomalias; confirme que o Conditional Access do Entra ID está saudável.
- Poste o resumo de standup de segurança no Microsoft Teams com incidentes abertos e relógios de SLA.
Execução no meio do dia
- Para cada PR de arquitetura, invoque
/threat-model; o Threat Triager redige achados e mitigações STRIDE, depois abre issues de rastreamento. - Para cada cluster de vulnerabilidade, triar com
/vuln-triage: atribuir dono, severidade, janela de correção, controles compensatórios. - Rode
/sbom-scancomo parte do CI; bloquear release em componentes não assinados ou violando políticas. - Coordene o canal ativo de incidente no Microsoft Teams;
/incident-securitymantém a timeline atualizada.
Revisão no fim da tarde
- Verifique recomendações do Defender for Cloud e registre exceções de Azure Policy quando justificadas.
- Revise adições de queries CodeQL e faça merge de queries customizadas aprovadas no pack compartilhado.
- Atualize o registro de riscos trimestral no repo; publique o score de postura atualizado no Microsoft Loop.
Primitivas recomendadas
Agente
| Agente | Arquivo | Propósito |
|---|---|---|
threat-triager | .github/agents/threat-triager.agent.md | Tria vulnerabilidades, roda scans de SBOM, redige modelos de ameaça, coordena incidentes |
Slash prompts
| Comando | Arquivo | Propósito |
|---|---|---|
/vuln-triage | .github/prompts/vuln-triage.prompt.md | Agrupar alertas, atribuir donos, definir SLA, propor remediações |
/sbom-scan | .github/prompts/sbom-scan.prompt.md | Gerar, assinar e verificar o SBOM para um release |
/threat-model | .github/prompts/threat-model.prompt.md | Redigir análise STRIDE e tarefas de mitigação em um PR de arquitetura |
/incident-security | .github/prompts/incident-security.prompt.md | Manter timeline de incidente em tempo real a partir do Sentinel, Teams e GitHub |
Instruções com escopo
Escopo (applyTo) | Arquivo | Propósito |
|---|---|---|
.github/workflows/**/*.yml | .github/instructions/actions-security.instructions.md | OIDC para Azure, sem segredos de longa duração, actions com SHA fixo |
infra/**/*.bicep | .github/instructions/infra-security.instructions.md | Referências ao Key Vault, managed identity, isolamento de rede |
src/**/auth/** | .github/instructions/auth.instructions.md | Padrões do Entra ID, tratamento de tokens, mínimo privilégio |
prompts/**/*.prompt.md | .github/instructions/ai-safety.instructions.md | Guardrails de segurança de conteúdo e redação de PII |
Hooks
pre-commit: Secret Scanning, push protection, verificação de política de dependênciaspre-push: queries rápidas do CodeQL em arquivos alteradospost-merge: triagem do Dependabot, atualização de SBOM, sincronização com Defender for Cloudpre-release: gate de assinatura de SBOM e presença de modelo de ameaçaon-incident: criar um registro de incidente no Sentinel e fixar o canal do Microsoft Teams
MCPs validados
| MCP | Propósito | Dono |
|---|---|---|
| GitHub MCP Server | Ler alertas do Advanced Security, Dependabot, CodeQL, gerenciar issues e PRs | GitHub |
| Azure MCP Server | Operar Defender for Cloud, Sentinel, Key Vault, Entra ID, Azure Policy | Microsoft |
| Microsoft Learn Docs MCP | Resolver orientação de segurança atualizada em stacks Microsoft | Microsoft |
| Azure DevOps MCP Server | Rastrear work items de remediação quando o time usa Azure DevOps | Microsoft |
| Playwright MCP | Validar fluxos de UX de segurança (SSO, MFA, consentimento) ponta a ponta | Microsoft |
Exemplos reais
Exemplo 1: triagem de zero-day em menos de uma hora
Um CVE atinge uma dependência amplamente usada. /vuln-triage identifica 23 repos expostos e mapeia cada um ao seu dono de serviço. O Threat Triager abre issues com PRs de correção já rascunhados pelo Copilot. Em menos de uma hora, 19 PRs estão merged; os 4 restantes recebem controles compensatórios documentados. Defender for Cloud confirma que a exposição foi fechada.
Exemplo 2: modelo de ameaça direciona mudança de design
Um PR de arquitetura propõe um novo endpoint que aceita URLs assinadas. /threat-model sinaliza um risco de replay e sugere um nonce mais expiração curta. O Software Architect atualiza o design antes do merge do PR; as tarefas de mitigação são linkadas e fechadas automaticamente quando a implementação aterrissa.
Exemplo 3: SBOM assinado bloqueia um release
O workflow de release invoca /sbom-scan. O pipeline detecta uma dependência transitiva não assinada e bloqueia o release. O InfoSec Officer confirma que o componente não está sob exploração ativa, registra uma exceção temporária no Azure Policy, e o release prossegue com trilha de auditoria completa.
Anti-padrões
- Triagem em planilha. Triagem fora do GitHub perde contexto e rastreamento de SLA; fique em issues.
- Segredos de longa duração. Qualquer segredo com mais de 90 dias é uma responsabilidade; use managed identity e referências ao Key Vault.
- Modelos de ameaça únicos. Modelos devem evoluir com o sistema; vincule-os a PRs de arquitetura.
- Ignorar bypasses de Push Protection. Cada bypass é revisado no mesmo dia, não no final do trimestre.
- Silos de segurança. Segurança de IA pertence ao mesmo pipeline que segurança de aplicação, com os mesmos revisores.
- Política como PDF. Políticas que não são configurações do Azure Policy ou GitHub Advanced Security não existem.
- Incidentes sem timelines. Todo incidente produz uma timeline reproduzível gerada a partir de ferramentas, não de memória.
KPIs e métricas de impacto
| Métrica | Linha base (manual) | Meta (agêntico) | Fonte |
|---|---|---|---|
| Tempo médio para triar CVE | 4 dias | < 4 horas | Histórico de /vuln-triage |
| Cobertura de SBOM | 40 por cento | 100 por cento dos releases | GitHub Actions |
| Cobertura de modelo de ameaça em PRs de arquitetura | 20 por cento | 100 por cento | Execuções de /threat-model |
| Segredos detectados no push | 12 por mês | 0 | Logs de Push Protection |
| Achados altos do Defender for Cloud > 7 dias | 30 | < 5 | Defender for Cloud |
| Incidentes do Sentinel com timeline automatizada | 10 por cento | 100 por cento | Workbooks do Sentinel |
| Rotação de credenciais do Key Vault em dia | 60 por cento | 100 por cento | Auditoria do Entra ID |
Maturidade em quatro níveis
- L1 Manual: Advisories rastreados em planilha, sem SBOM, modelos de ameaça apenas no kickoff.
- L2 Assistido: Dependabot e Secret Scanning habilitados mas sem triagem; dashboards do Defender for Cloud acompanhados ad hoc.
- L3 Aumentado: Agente Threat Triager, quatro slash prompts, instruções com escopo, pack customizado do CodeQL, integração com Sentinel.
- L4 Autônomo: Triagem automatizada com enforcement de SLA, SBOMs assinados bloqueando release, modelos de ameaça anexados a cada PR de arquitetura, incidentes com timelines auto-geradas.
Integração com outras personas
- Do Software Architect: diagramas de design e ADRs alimentando
/threat-model. - Para o Developer: issues de remediação com rascunhos de correção linkados.
- Com o ML AI Engineer: configuração de segurança de IA, filtros de segurança de conteúdo, redação de PII.
- Com o SRE: runbooks compartilhados do Sentinel e resposta a incidentes.
- Com o Compliance Auditor: SBOMs, modelos de ameaça e pacotes de evidência de grau auditável.
- Do Data Engineer: classificações do Purview direcionando controles de tratamento de dados.
- Com o DBA: revisões de acesso a banco de dados e verificações de mínimo privilégio.
Glossário
- SBOM: software bill of materials — lista assinada de cada componente em um release.
- STRIDE: taxonomia de modelagem de ameaças (Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, Elevation of privilege).
- Push Protection: feature do GitHub Advanced Security que bloqueia segredos de alcançar branches remotas.
- Managed identity: identidade do Microsoft Entra ID usada por workloads, eliminando credenciais armazenadas.
- Dependabot: serviço do GitHub que abre PRs para dependências vulneráveis.
- Incidente do Sentinel: um objeto de caso do Microsoft Sentinel que coleta alertas, entidades e timeline.
- Controle compensatório: uma mitigação alternativa quando a correção preferida ainda não é viável.
Referências
- GitHub Advanced Security — CodeQL, Dependabot, Secret Scanning, Push Protection
- Microsoft Defender for Cloud — proteção de postura e workloads
- Microsoft Sentinel — SIEM e SOAR
- Azure Key Vault — gerenciamento de segredos, chaves e certificados
- Microsoft Entra ID — gerenciamento de identidade e acesso
- Azure Policy — enforcement de política como código
- Microsoft Purview — governança e sensibilidade de dados
- GitHub Actions — orquestração de CI e deploy em todo o stack
- Microsoft Learn Docs MCP — recuperação de documentação first-party no momento da implementação
- GitHub Advanced Security — CodeQL, Dependabot, Secret Scanning, Push Protection
El InfoSec Officer es la persona que mantiene defensibles el software y los sistemas de IA en el cambio continuo. En un SDLC AI-nativo, el InfoSec Officer opera un agente Threat Triager, cuatro slash prompts, y un catálogo validado de MCPs anclado en GitHub Advanced Security y Microsoft Defender for Cloud — no una lista de verificación PDF.
Resumen ejecutivo
El InfoSec Officer posee la postura de seguridad del pipeline de entrega y los productos que lanza. En un SDLC AI-nativo, opera un agente Threat Triager con cuatro slash prompts (/vuln-triage, /sbom-scan, /threat-model, /incident-security), instrucciones con alcance para rutas sensibles a seguridad, y un catálogo validado de MCPs que alcanza GitHub Advanced Security, Dependabot, CodeQL, Secret Scanning, Push Protection, Microsoft Defender for Cloud, Microsoft Sentinel, Microsoft Purview, Entra ID, y Azure Key Vault.
Los entregables principales son colas de vulnerabilidades triadas con SLAs, facturas de materiales de software firmadas, modelos de amenaza adjuntos a cada decisión de arquitectura, e incidentes respondidos coordinados a través de Sentinel. El InfoSec Officer convierte la seguridad de un bloqueador de lanzamiento en una capa continua, mayormente automática y productora de evidencia.
La seguridad es una propiedad del pipeline, no un evento de auditoría. El InfoSec Officer integra políticas, detecciones y remediaciones en herramientas cotidianas para que en el momento en que una PR llega a merge, la mayoría de preguntas ya tengan respuesta.
Rol y responsabilidades
Piensa en el InfoSec Officer como el inspector de seguridad de una ciudad. No apaga cada fuego, pero redacta el código de construcción, certifica inspecciones, realiza simulacros, y coordina la respuesta cuando ocurre un incendio real. En un SDLC AI-nativo, el InfoSec Officer refuerza el código y orquesta la respuesta a través de superficies GitHub, Azure, y Microsoft 365.
Responsabilidades principales:
- Triage de alertas de vulnerabilidad desde GitHub Advanced Security, Dependabot, y Defender for Cloud
- Mantener el SBOM (software bill of materials) por servicio con procedencia firmada
- Redactar modelos de amenaza para cada nueva arquitectura; actualizar cuando la arquitectura cambia
- Coordinar la respuesta a incidentes de seguridad a través de Microsoft Sentinel y issues de GitHub
- Reforzar Push Protection, Secret Scanning, CodeQL, y políticas de Dependabot en cada repositorio
- Integrar seguridad de IA (filtros de contenido, redacción de PII) con los pipelines del ML AI Engineer
- Operar el agente Threat Triager y los prompts
/vuln-triage,/sbom-scan,/threat-model,/incident-security - Gestionar higiene de identidad y secretos a través de Microsoft Entra ID y Azure Key Vault
Jobs to be done
- Como InfoSec Officer, quiero que cada alerta de Dependabot o CodeQL sea triada dentro del SLA, para que las ventanas de exposición se minimicen.
- Como InfoSec Officer, quiero un SBOM firmado publicado con cada lanzamiento, para que las preguntas sobre supply chain tengan respuestas inmediatas.
- Como InfoSec Officer, quiero modelos de amenaza adjuntos a PRs de arquitectura, para que las mitigaciones estén en lugar antes de que el código llegue.
- Como InfoSec Officer, quiero Push Protection y Secret Scanning habilitados por defecto, para que las credenciales nunca alcancen una rama remota.
- Como InfoSec Officer, quiero que los hallazgos de Defender for Cloud se conviertan automáticamente en issues de GitHub, para que el trabajo de remediación sea visible en el mismo backlog que las features.
- Como InfoSec Officer, quiero alertas de Sentinel enriquecidas con contexto de repo, para que el triaje sea rápido y preciso.
- Como InfoSec Officer, quiero que las cronologías de incidentes se produzcan automáticamente desde chat, commits, y alertas, para que las revisiones posteriores al incidente se basen en hechos.
- Como InfoSec Officer, quiero todos los secretos almacenados en Azure Key Vault con identidad administrada, para que no haya credenciales de larga vida en CI.
Puntos de dolor antes de la era AI-nativa
- Fatiga de alertas. Miles de alertas de Dependabot y CodeQL sin triaje, por lo que los problemas reales se pierden en el ruido.
- SBOMs como PDFs. Facturas de materiales producidas una vez, nunca firmadas, nunca consumidas en CI.
- Modelos de amenaza en una bóveda. Modelos de amenaza redactados en el lanzamiento del proyecto, nunca revisados; describen un sistema que ya no existe.
- Caos en incidentes. Incidentes gestionados en cinco herramientas; la cronología se recupera luego entrevistando personas.
- Credenciales en CI. Claves API en secretos de GitHub Actions, rotadas en vacaciones, almacenadas en YAML plano por accidente.
- Políticas como diapositivas. Las políticas de seguridad existen en SharePoint, no como configuración reforzada.
- Seguridad de IA aislada. Los controles de seguridad de IA propiedad de un equipo diferente, no integrados en la misma revisión.
Flujo diario AI-nativo
El InfoSec Officer trabaja desde Visual Studio Code y la terminal con Claude Code, orquestando el Threat Triager e imponiendo hooks en cada repositorio.
Setup de la mañana
- Abrir dashboards de Microsoft Defender for Cloud, Microsoft Sentinel, y GitHub Advanced Security.
- Ejecutar
/vuln-triage --since=yesterdaypara agrupar nuevas alertas por servicio y severidad. - Revisar bypasses de Push Protection y notificaciones de Secret Scanning durante la noche.
- Verificar los logs de acceso a Azure Key Vault para anomalías; confirmar que Conditional Access de Entra ID esté saludable.
- Publicar el resumen de standup de seguridad en Microsoft Teams con incidentes abiertos y relojes de SLA.
Ejecución al mediodía
- Para cada PR de arquitectura, invocar
/threat-model; el Threat Triager redacta hallazgos y mitigaciones STRIDE, luego abre issues de seguimiento. - Para cada grupo de vulnerabilidades, triage con
/vuln-triage: asignar propietario, severidad, ventana de corrección, controles compensatorios. - Ejecutar
/sbom-scancomo parte de CI; bloquear lanzamiento en componentes sin firmar o que violen política. - Coordinar el canal de incidente activo en Microsoft Teams;
/incident-securitymantiene actualizada la cronología.
Revisión al final de la tarde
- Verificar recomendaciones de Defender for Cloud y archivar excepciones de Azure Policy donde sea justificado.
- Revisar adiciones de consultas CodeQL y fusionar consultas personalizadas aprobadas en el pack compartido.
- Actualizar el registro de riesgo trimestral en el repo; publicar la puntuación de postura actualizada a Microsoft Loop.
Primitivas recomendadas
Agente
| Agente | Archivo | Propósito |
|---|---|---|
threat-triager | .github/agents/threat-triager.agent.md | Triages vulnerabilities, runs SBOM scans, drafts threat models, coordinates incidents |
Slash prompts
| Comando | Archivo | Propósito |
|---|---|---|
/vuln-triage | .github/prompts/vuln-triage.prompt.md | Cluster alerts, assign owners, set SLA, propose remediations |
/sbom-scan | .github/prompts/sbom-scan.prompt.md | Generate, sign, and verify the SBOM for a release |
/threat-model | .github/prompts/threat-model.prompt.md | Draft STRIDE analysis and mitigation tasks on an architecture PR |
/incident-security | .github/prompts/incident-security.prompt.md | Maintain live incident timeline from Sentinel, Teams, and GitHub |
Instrucciones con alcance
Alcance (applyTo) | Archivo | Propósito |
|---|---|---|
.github/workflows/**/*.yml | .github/instructions/actions-security.instructions.md | OIDC to Azure, no long-lived secrets, pinned SHA actions |
infra/**/*.bicep | .github/instructions/infra-security.instructions.md | Key Vault references, managed identity, network isolation |
src/**/auth/** | .github/instructions/auth.instructions.md | Entra ID patterns, token handling, least privilege |
prompts/**/*.prompt.md | .github/instructions/ai-safety.instructions.md | Content-safety guardrails and PII redaction |
Hooks
pre-commit: Secret Scanning, push protection, dependency policy checkpre-push: CodeQL fast queries on changed filespost-merge: Dependabot triage, SBOM refresh, Defender for Cloud syncpre-release: SBOM signature and threat-model presence gateon-incident: create a Sentinel incident record and pin the Microsoft Teams channel
MCPs validados
| MCP | Propósito | Dueño |
|---|---|---|
| GitHub MCP Server | Read Advanced Security alerts, Dependabot, CodeQL, manage issues and PRs | GitHub |
| Azure MCP Server | Drive Defender for Cloud, Sentinel, Key Vault, Entra ID, Azure Policy operations | Microsoft |
| Microsoft Learn Docs MCP | Resolve current security guidance across Microsoft stacks | Microsoft |
| Azure DevOps MCP Server | Track remediation work items when the team uses Azure DevOps | Microsoft |
| Playwright MCP | Validate security UX flows (SSO, MFA, consent) end-to-end | Microsoft |
Ejemplos reales
Ejemplo 1: triaje de día cero en una hora
Llega un CVE en una dependencia ampliamente utilizada. /vuln-triage identifica 23 repos expuestos y mapea cada uno a su propietario de servicio. El Threat Triager abre issues con PRs de corrección ya redactados por Copilot. Dentro de una hora, 19 PRs están fusionadas; los 4 restantes reciben controles compensatorios documentados. Defender for Cloud confirma que la exposición se cerró.
Ejemplo 2: modelo de amenaza impulsa un cambio de diseño
Una PR de arquitectura propone un nuevo endpoint que acepta URLs firmadas. /threat-model marca un riesgo de replay y sugiere un nonce más expiración corta. El Software Architect actualiza el diseño antes de que la PR se fusione; las tareas de mitigación se vinculan y cierran automáticamente cuando la implementación llega.
Ejemplo 3: SBOM firmado bloquea un lanzamiento
El flujo de lanzamiento invoca /sbom-scan. El pipeline detecta una dependencia transitiva sin firmar y bloquea el lanzamiento. El InfoSec Officer confirma que el componente no está bajo explotación activa, archiva una excepción temporal en Azure Policy, y el lanzamiento procede con pista de auditoría completa.
Anti-patrones
- Triaje en spreadsheet. El triaje fuera de GitHub pierde contexto y seguimiento de SLA; mantenerse en issues.
- Secretos de larga vida. Cualquier secreto mayor a 90 días es una responsabilidad; usar identidad administrada y referencias de Key Vault.
- Modelos de amenaza una sola vez. Los modelos deben evolucionar con el sistema; vincularlos a PRs de arquitectura.
- Ignorar bypasses de Push Protection. Cada bypass es revisado el mismo día, no al cierre de trimestre.
- Silos de seguridad. La seguridad de IA pertenece en el mismo pipeline que la seguridad de app, con los mismos revisores.
- Política como PDF. Las políticas que no son Azure Policy o configuraciones de GitHub Advanced Security no existen.
- Incidentes sin cronología. Cada incidente produce una cronología reproducible generada desde herramientas, no memoria.
KPIs y métricas de impacto
| Métrica | Baseline (manual) | Objetivo (agéntico) | Fuente |
|---|---|---|---|
| Tiempo medio para triage de CVE | 4 días | < 4 horas | /vuln-triage history |
| Cobertura SBOM | 40 por ciento | 100 por ciento de lanzamientos | GitHub Actions |
| Cobertura de modelo de amenaza en PRs de arq | 20 por ciento | 100 por ciento | /threat-model runs |
| Secretos detectados al momento de push | 12 por mes | 0 | Push Protection logs |
| Hallazgos altos de Defender for Cloud > 7 días | 30 | < 5 | Defender for Cloud |
| Incidentes de Sentinel con cronología automática | 10 por ciento | 100 por ciento | Sentinel workbooks |
| Rotación de credencial de Key Vault a tiempo | 60 por ciento | 100 por ciento | Entra ID audit |
Madurez en cuatro niveles
- L1 Manual: Avisos rastreados en spreadsheet, no SBOM, modelos de amenaza solo en lanzamiento.
- L2 Asistido: Dependabot y Secret Scanning habilitados pero sin triage; dashboards de Defender for Cloud observados ad hoc.
- L3 Aumentado: Agente Threat Triager, cuatro slash prompts, instrucciones con alcance, pack personalizado de CodeQL, integración de Sentinel.
- L4 Autónomo: Triaje automatizado con refuerzo de SLA, SBOMs firmados bloqueando lanzamiento, modelos de amenaza adjuntos a cada PR de arquitectura, incidentes con cronologías auto-generadas.
Integración con otras personas
- Del Software Architect: diagramas de diseño y ADRs alimentando
/threat-model. - Para el Developer: issues de remediación con drafts de corrección vinculados.
- Con ML AI Engineer: configuración de seguridad de IA, filtros de content-safety, redacción de PII.
- Con SRE: runbooks de Sentinel compartidos y respuesta a incidentes.
- Con Compliance Auditor: SBOMs, modelos de amenaza, y paquetes de evidencia de grado de auditoría.
- Del Data Engineer: clasificaciones de Purview impulsando controles de manejo de datos.
- Con DBA: revisiones de acceso a base de datos y verificaciones de least privilege.
Glosario
- SBOM: software bill of materials — lista firmada de cada componente en un lanzamiento.
- STRIDE: taxonomía de modelado de amenaza (Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, Elevation of privilege).
- Push Protection: Feature de GitHub Advanced Security que bloquea secretos de llegar a ramas remotas.
- Managed identity: Identidad de Microsoft Entra ID usada por cargas de trabajo, eliminando credenciales almacenadas.
- Dependabot: Servicio de GitHub que abre PRs para dependencias vulnerables.
- Sentinel incident: un objeto de caso de Microsoft Sentinel recopilando alertas, entidades, y cronología.
- Compensating control: una mitigación alternativa cuando la corrección preferida aún no es viable.
Referencias
- GitHub Advanced Security — CodeQL, Dependabot, Secret Scanning, Push Protection
- Microsoft Defender for Cloud — posture and workload protection
- Microsoft Sentinel — SIEM and SOAR
- Azure Key Vault — secret, key, and certificate management
- Microsoft Entra ID — identity and access management
- Azure Policy — policy as code enforcement
- Microsoft Purview — data governance and sensitivity
- GitHub Actions — CI and deployment orchestration across the stack
- Microsoft Learn Docs MCP — first-party documentation retrieval at implementation time
- GitHub Advanced Security — CodeQL, Dependabot, Secret Scanning, Push Protection