ATALAIA
  1. Inicio
  2. Recursos
  3. Blog
  4. De un equipo de una persona a un programa que funciona: un plan de 90 días
Programa · Guía

De un equipo de una persona a un programa que funciona: un plan de 90 días

Un plan estación por estación para el ingeniero de seguridad en solitario, más cuatro medidas que te dicen si el programa funciona de verdad.

4 min de lecturaEquipo Atalaia

Programa de AppSecKPIsPlanificación

Un equipo de una persona no puede hacerlo todo, así que la pregunta útil es qué hacer primero y cómo saber si funciona. Este plan asume un ingeniero de seguridad, unas pocas decenas de repositorios, un sistema de CI y al menos una cuenta cloud. Recorre la línea más o menos en el orden en que el código viaja por ella.

Cada bloque dura dos semanas. La regla de cada bloque es la misma: terminar con un control que se ejecute en todas partes, aunque sea básico, antes que un control perfecto en un único repositorio piloto.

Semanas 1-2: inventariar la línea

No puedes proteger lo que no has listado. Construye un inventario sencillo de repositorios, responsables, lenguajes, pipelines, destinos de deploy y quién tiene derechos de admin. Vale una hoja de cálculo. Casi todo se puede sacar de la API del control de versiones.

# list repositories with their default branch and archive status
gh repo list your-org --limit 500 \
  --json name,defaultBranchRef,isArchived,visibility \
  --jq '.[] | [.name, .defaultBranchRef.name, .isArchived, .visibility] | @tsv'

Marca cada repositorio con un equipo responsable. Los repositorios sin responsable son el primer hallazgo del programa.

Semanas 3-6: estaciones de build y release

Dos bloques en la parte de la línea donde se escribe y se empaqueta el código.

  • Protección de ramas y revisión. Exige pull requests y al menos una revisión en las ramas por defecto. Activa el secret scanning y la push protection donde tu plataforma lo permita.
  • Secretos en CI. Añade Gitleaks como job no bloqueante en todas partes y hazlo bloqueante cuando el backlog esté limpio.
  • Dependencias. Genera un SBOM con Syft y analízalo con Grype o Trivy. Empieza solo informando, para que los equipos vean la forma del problema antes de que falle nada.
  • Higiene del pipeline. Fija las actions de terceros a SHAs de commit y pon los permisos por defecto del token de workflow en solo lectura. Ejecuta actionlint y zizmor para cazar los errores obvios.
# a minimal shared job, called from each repository
name: security-baseline
on: [pull_request]
permissions:
  contents: read
jobs:
  secrets:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@<pinned-sha>
        with:
          fetch-depth: 0
      - run: gitleaks git --redact --exit-code 1 .

Semanas 7-10: estaciones de run y diseño

Pasa a los dos extremos de la línea que un ingeniero en solitario suele saltarse.

  • Ejecuta. Confirma que los logs de producción de autenticación, acciones de administración y el plano de control cloud acaban en un sitio donde se pueda buscar y se conservan el tiempo suficiente para investigar. Anota a quién se avisa ante un posible incidente.
  • Diseño. Elige los dos o tres servicios que manejan dinero, credenciales o datos personales y haz una sesión corta de STRIDE con cada equipo. Una hora por servicio basta para sacar una lista de riesgos y responsables.
  • Accesos. Revisa quién tiene admin en el control de código, el CI y la nube. Quita lo que no haga falta y documenta el resto.

Semanas 11-13: el programa alrededor

El último bloque convierte la actividad en un programa en el que la gente puede confiar.

  1. Rota de triageLos hallazgos llegan a una sola cola, con una persona designada cada semana y reglas de severidad por escrito.
  2. Objetivos de correcciónAcuerda con la dirección de ingeniería en cuánto tiempo debe corregirse cada severidad y cómo es una excepción.
  3. ChampionsUn ingeniero interesado por equipo que recibe avisos tempranos de los cambios y una línea directa con seguridad.
  4. Hoja de rutaUn plan de una página para los dos trimestres siguientes, basado en lo que mostraron las primeras 10 semanas.

Qué medir

Los recuentos de hallazgos por sí solos son ruido: suben al añadir un scanner y bajan al apagar uno. Mide un conjunto pequeño de cosas que puedas definir con precisión y que se muevan cuando el programa mejora.

MideDefiniciónPor qué importa
Cobertura de controlesPorcentaje de repositorios activos con protección de ramas, escaneo de secretos y escaneo de dependencias habilitados a la vezTe dice si la línea base está de verdad en todas partes
Tiempo de triageMediana de tiempo desde que se registra un hallazgo hasta que una persona lo acepta, rechaza o asignaMuestra si la cola está viva o es un cementerio
Tiempo de correcciónMediana de tiempo desde el triage hasta el cierre, por severidadEl número que le importa a dirección, y el que refleja la capacidad de ingeniería
RecurrenciaPorcentaje de hallazgos cerrados cuya regla vuelve a saltar en el mismo repositorio en menos de 90 díasDistingue las correcciones reales de las supresiones y los parches puntuales

Informa de estas medidas cada mes en una página, como tendencias, junto con una nota breve sobre lo que ha cambiado. Si necesitas una quinta medida, que sea el número de servicios con un threat model vigente.

Qué hacer el lunes

  • Exporta la lista de repositorios y añade una columna de responsable.
  • Elige un control de las semanas 3-6 y despliégalo en modo solo informe en todos los repositorios esta semana.
  • Reserva tres sesiones de diseño de una hora para los servicios que más importan.
  • Escribe las cuatro definiciones de medidas de arriba en el wiki de tu equipo, para que el primer informe use las mismas palabras que el último.

Dónde encaja en la línea

En la torre (en desarrollo):

Habladlo

Una llamada de 30 minutos. Sin diapositivas, sin lista de precios y con un siguiente paso en cualquier caso.