heygrc
ISO 27001 A.8.31 en código

Mantener las pruebas fuera de producción.

ISO 27001:2022 A.8.31 (separación de entornos de desarrollo, prueba y producción) exige que dichos entornos se mantengan separados, de modo que el trabajo en desarrollo o prueba no pueda acceder, modificar o exponer el entorno de producción. Gran parte de ese límite reside en la configuración: cadenas de conexión, variables de entorno, scripts de semilla y datos de prueba, y pipelines de CI. Lo que significa que un único cambio en un archivo de configuración puede derribarlo silenciosamente.

How it shows up in a diff

The shapes the same control failure takes.

A.8.31 se debilita cuando una ruta no productiva obtiene acceso a producción, o cuando datos y credenciales de producción se filtran a un entorno inferior. Las formas recurrentes:

  • Una configuración de prueba apunta a producción

    Una URL de base de datos, endpoint o configuración de prueba o CI se establece en un recurso de producción, por lo que una ejecución de prueba lee o escribe datos reales.

  • Secretos de producción llegan a un entorno inferior

    Una configuración de staging o desarrollo recibe credenciales, claves o endpoints de producción, colapsando el límite en el momento en que ese entorno está menos protegido.

  • Se elimina una protección contra el acceso entre entornos

    Una verificación de entorno que impedía que una operación destructiva, de semilla o reinicio se ejecutara en cualquier lugar excepto en un entorno dedicado se elimina, por lo que ahora puede ejecutarse contra producción.

  • Datos de semilla o fixtures obtienen acceso a producción

    Un script de semilla, datos de prueba o migración que recrea o elimina datos obtiene una ruta a la base de datos de producción en lugar de una aislada.

  • Los entornos comparten un almacenamiento subyacente

    Una caché, bucket o cola está configurada de modo que desarrollo o prueba y producción leen y escriben en el mismo almacenamiento, por lo que la actividad no productiva puede afectar datos en vivo.

Worked example

Una suite de pruebas de extremo a extremo apuntando a la base de datos de producción.

Una suite de pruebas de extremo a extremo necesita una base de datos para ejecutarse. La base de datos de prueba dedicada está vacía y las pruebas siguen fallando por falta de datos, por lo que la configuración se apunta a la cadena de conexión de producción para probar con datos reales. La suite trunca y resiembra tablas en cada ejecución, y ahora lo hace con producción.

e2e/setup.ts+1 -1
- const TEST_DB = process.env.TEST_DATABASE_URL+ const TEST_DB = process.env.DATABASE_URL // prod, para probar con datos realesawait db.connect(TEST_DB)await resetAndSeed(db) // trunca tablas antes de cada ejecución
heygrcISO 27001:2022 A.8.31

Esto apunta una suite de pruebas de extremo a extremo que trunca y resiembra tablas en la base de datos de producción, por lo que una ejecución de prueba puede eliminar y sobrescribir datos en vivo. A.8.31 exige que desarrollo, prueba y producción estén separados para que la actividad no productiva no pueda acceder a producción. Restaura la base de datos de prueba dedicada y carga los datos de prueba faltantes allí, en lugar de usar producción, y mantén el límite para que una ejecución de prueba nunca pueda escribir en datos en vivo.

What an auditor does with this

La separación se verifica en el límite, no solo se afirma.

Un auditor busca evidencia de que los entornos realmente están separados: que prueba y desarrollo no pueden acceder a datos o credenciales de producción, y que producción solo se modifica a través de la ruta controlada. Una configuración de prueba conectada a un recurso de producción, o un entorno inferior que contiene secretos de producción, es el tipo de brecha que contradice la separación que describe tu política, y suele llegar en un único cambio a un archivo de configuración o configuración. El diff es donde se cruza el límite, y el lugar más económico para detectarlo.

What this is, and is not

Una revisión, no la topología de tu entorno.

heygrc marca los cambios que afectan a A.8.31 y cita el control para que la corrección ocurra en la solicitud de extracción. No aprovisiona tus entornos ni gestiona tus secretos. Detecta el momento en que una ruta de prueba o desarrollo accede a producción, en el diff.