Field Kit / Security
Free field guide · Guía práctica gratuita

A vulnerability disclosure policy that fits a small SaaS team

Give researchers a clear, safe way to report a problem—and give your team a process it can actually monitor.

Write the boundary before inviting reports

A vulnerability disclosure policy (VDP) explains what a team authorizes, where a researcher can send a report, and what happens next. A mailbox by itself does not define permission. Before publishing, make sure every listed asset and response step has an owner.

Start small. A policy your team can monitor is more useful than a broad promise no one can keep. NIST’s SP 800-216 describes a structured approach to receiving, assessing, coordinating, and communicating vulnerability reports; a small SaaS team can adapt those ideas to its own size and authority.

1. Name a monitored owner and reporting channel

Choose a team mailbox or form that someone checks on business days, then name a backup. Say which languages you can support and whether an anonymous report is accepted. Avoid publishing an address that forwards to an unattended inbox.

Ask for only what helps reproduce and assess a finding: affected asset and version, concise steps, observed impact, and a minimal proof of concept. Tell reporters not to send real customer data, passwords, or unnecessary personal information.

2. Make scope understandable at a glance

List production domains, applications, APIs, or repositories the organization controls. State whether a whole domain, selected subdomains, or exact hosts are in scope. Do not leave wildcard behavior to guesswork. If a vendor or cloud service owns an asset, name it as excluded unless you have written authority to include it.

Separate staging from production and describe any limits for accounts, test data, or features. A researcher should be able to decide “in scope” or “out of scope” before sending a request.

3. Say what testing is allowed—and what is not

Set a low-impact baseline: test only the assets listed, use accounts you own or were given, keep request rates modest, and stop if an action could affect another user or service availability. Explicitly prohibit denial-of-service testing, social engineering, spam, persistence, destructive changes, and accessing, changing, or downloading another person’s data unless a specific test is authorized.

Explain what to do if a researcher encounters sensitive data or an out-of-scope system: stop testing, preserve only the minimum evidence needed, and report the exposure privately. Have counsel review any safe-harbor or legal language; a template is not a substitute for advice about your systems and jurisdiction.

4. Set response expectations you can meet

Publish a realistic acknowledgment window and a cadence for updates. Define who validates a report, who owns the fix, and how the reporter learns that the issue was resolved. If your team cannot promise a fixed remediation deadline, promise a status update instead.

For triage, record reproducibility, affected versions, exposure, likely impact, and any compensating control. Keep the report private while investigating, and coordinate a disclosure date with the reporter when appropriate.

5. Publish, test, and revisit the policy

Put the policy at a stable public URL and link it from your security or contact page. Consider a security.txt file to help people find the reporting channel; RFC 9116 defines that format. Then test the process with a harmless internal report: does it reach the right person, get acknowledged, and create a trackable issue?

Review the scope whenever products, domains, vendors, or monitoring capacity change. Remove promises the team cannot honor. A policy should match the authority you have and the work you can support.

Primary references

Define los límites antes de invitar reportes

Una política de divulgación de vulnerabilidades explica qué autoriza el equipo, dónde enviar un reporte y qué pasará después. Un buzón por sí solo no define el permiso. Antes de publicarla, asigna responsables a cada activo y a cada paso de respuesta.

Empieza con un alcance pequeño. Una política que el equipo puede atender vale más que una promesa amplia que nadie logra cumplir. NIST SP 800-216 describe un proceso para recibir, evaluar, coordinar y comunicar reportes; un equipo SaaS pequeño puede adaptar esas ideas a su tamaño y autoridad.

1. Asigna un responsable y un canal vigilado

Elige un buzón compartido o formulario que alguien revise los días hábiles y nombra a una persona de respaldo. Indica los idiomas que puedes atender y si aceptas reportes anónimos. No publiques una dirección que nadie revisa.

Pide solo lo necesario para reproducir y evaluar el hallazgo: activo y versión afectados, pasos breves, impacto observado y una prueba mínima. Indica que no envíen datos reales de clientes, contraseñas ni información personal innecesaria.

2. Haz que el alcance se entienda de inmediato

Enumera los dominios de producción, aplicaciones, API o repositorios que controla la organización. Aclara si se incluye todo un dominio, subdominios seleccionados o servidores exactos. No dejes que la gente adivine qué significa un comodín. Si un proveedor o servicio en la nube controla un activo, exclúyelo salvo que tengas autorización escrita para incluirlo.

Separa pruebas y producción, y describe los límites de las cuentas, datos de prueba o funciones. Quien investiga debe poder decidir si algo está dentro del alcance antes de enviar una solicitud.

3. Explica qué pruebas se permiten y cuáles no

Define una base de bajo impacto: prueba solo los activos enumerados, usa cuentas propias o asignadas, limita el ritmo de solicitudes y detente si una acción puede afectar a otra persona o la disponibilidad del servicio. Prohíbe explícitamente denegación de servicio, ingeniería social, spam, persistencia, cambios destructivos y acceso, modificación o descarga de datos ajenos, salvo que una prueba específica esté autorizada.

Explica qué hacer si aparece información sensible o un sistema fuera de alcance: detener las pruebas, conservar solo la evidencia mínima y reportar la exposición de forma privada. Pide a un abogado que revise el lenguaje de puerto seguro o autorización; una plantilla no sustituye asesoría sobre tus sistemas y jurisdicción.

4. Promete tiempos de respuesta que sí puedas cumplir

Publica un plazo realista para confirmar la recepción y una frecuencia para dar actualizaciones. Define quién valida el reporte, quién coordina la corrección y cómo sabrá quien reportó que el asunto se resolvió. Si no puedes prometer una fecha fija de corrección, promete una actualización de estado.

Para priorizar, registra si se reproduce, las versiones afectadas, la exposición, el impacto probable y los controles temporales. Mantén el reporte privado mientras investigas y acuerda una fecha de divulgación con quien reportó cuando corresponda.

5. Publica, prueba y revisa la política

Coloca la política en una dirección pública estable y enlázala desde la página de seguridad o contacto. Considera un archivo security.txt para que sea más fácil encontrar el canal de reporte; RFC 9116 define ese formato. Luego prueba el proceso con un reporte interno inocuo: ¿llega a la persona correcta, recibe confirmación y crea un caso rastreable?

Revisa el alcance cuando cambien productos, dominios, proveedores o la capacidad de monitoreo. Elimina promesas que el equipo no pueda cumplir. La política debe coincidir con la autoridad disponible y el trabajo que puedes atender.

Referencias principales

Back to the full kit details / Volver a los detalles del kit