Los requisitos de seguridad de los datos siguientes corresponden a la evaluación de protección de datos de 2023.
Para versiones de la evaluación recibidas a partir de febrero de 2024, consulta esta página.
Las aplicaciones con acceso a ciertos tipos de datos de la plataforma de Meta requieren la cumplimentación de la evaluación de la protección de datos (DPA). La DPA se ha diseñado para determinar si los desarrolladores cumplen los requisitos de las condiciones de la plataforma de Meta en lo que respecta al uso, la divulgación y la protección de los datos de la plataforma. Uno de los subconjuntos del cuestionario DPA se centra en la condición 6 de la plataforma, que describe los requisitos de seguridad de los datos. Te recomendamos que utilices este documento para entender las expectativas, requisitos y pruebas relacionados con el uso y el tratamiento de la seguridad de los datos tal y como se definen en las condiciones de las plataforma de Meta.
Ten en cuenta que se incluye un glosario al final de este documento con los términos clave y sus definiciones.
Encuentra más recursos de vídeo en Data Protocol.
En el documento se usa la frase lado del servidor para referirnos al entorno backend que las organizaciones usan para tratar datos de la plataforma, ya sea en servicios de alojamiento en la nube como Amazon Web Services (AWS), alojado por parte del desarrollador en un centro de datos compartido o exclusivo, o bien una combinación de ambos.
Con lado del cliente nos referimos al tratamiento de los datos de la plataforma en navegadores, dispositivos móviles, aplicaciones en ordenadores y portátiles, y otros tipos de dispositivos que la gente suele usar.
Crea (o actualiza, si fuera necesario) un esquema del proceso de datos o una descripción que indique cómo la aplicación o el sistema realiza el tratamiento de los datos de la plataforma.
Esto es lo que, en última instancia, debe incluir el esquema del proceso de datos o la descripción:
Es posible que debas enviar documentación de prueba para respaldar las respuestas relativas a las medidas de protección de seguridad de los datos que implementes. Te recomendamos leer la Guía de documentación de prueba incluida en este documento, donde hay ejemplos de documentos aceptados y cómo prepararlos. Aceptamos los tipos de archivos habituales junto con capturas y grabaciones de pantalla. Asegúrate de que los archivos no estén protegidos con contraseña. Puedes subir varios archivos, con un límite de 2 GB por archivo. Aceptamos archivos con extensión .xls, .xlsx, .csv, .doc, .docx, .pdf, .txt, .jpeg, .jpg, .png, .ppt, .pptx, .mov, .mp4, .zip y .zipx.
Antes de enviar la documentación de prueba, asegúrate de ocultar (eliminar) los datos confidenciales que pueda tener.
Para las apps que requieren subir documentación de prueba relacionada con prácticas de protección de seguridad de datos, Meta exige dos tipos de documento:
Documento de prueba de política o procedimiento, también denominado documento de control administrativo, hace referencia a un documento escrito que describe el enfoque de una determinada práctica de protección de seguridad de datos. El formato de esta clase de documento puede variar: puede ser un extracto de un conjunto de políticas internas, un fragmento o la totalidad de una página de la wiki interna, o bien un documento nuevo creado con este propósito en el caso de que no cuentes con ningún documento preexistente. En cualquier caso, el documento de prueba de política o procedimiento que subas debe explicar con claridad cómo se relaciona el enfoque de una política determinada con los requisitos de Meta. Debes proporcionar únicamente la política o el documento que resulte relevante y necesario para las revisiones de seguridad de Meta, o utilizar el cuadro de texto vacío asociado a la pregunta en cuestión para dirigir a nuestros revisores a las secciones relevantes.
Un documento de prueba de implementación muestra directamente la manera en que implementaste la política o el procedimiento en la práctica mediante una captura o grabación de pantalla. Como los desarrolladores no utilizan siempre las mismas configuraciones, no podemos proporcionar ejemplos para cada situación. El documento de prueba de implementación debe, en la medida de lo posible, demostrar el mismo nivel de detalle que el de los ejemplos que proporcionamos.
Entendemos que puede resultar complejo preparar documentos de prueba de implementación que demuestren de forma exhaustiva la implementación de una determinada práctica de protección de la seguridad de los datos. En este sentido, debes enviar documentación de prueba según las pautas indicadas a continuación, procurando ocultar la información confidencial del documento antes de enviarlo:
No envíes documentación de prueba que contenga alguno de estos valores de manera legible (sin ocultar). Si utilizas un editor de imágenes para hacer una captura de pantalla, oculta el valor en cuestión con un cuadro de texto negro. Si utilizas un editor de PDF, asegúrate de ocultar el texto utilizando una herramienta que realmente elimine el valor en lugar de limitarse a añadir una capa y conservar el texto (p. ej., la herramienta de eliminación en la aplicación de previsualización de Apple).
Pregunta: ¿aplicas cifrado en reposo a todos los datos de la plataforma almacenados en la nube o un entorno de centro de datos o de servidor?
El cifrado en reposo protege los Datos de la plataforma solicitando una clave de descifrado independiente para desencriptarlos. Se trata de una medida adicional de seguridad contra accesos de lectura no autorizados.
En caso de almacenar datos de la plataforma del lado del servidor:
En caso de que el desarrollador NO almacene datos de la plataforma del lado del servidor, no se aplicará este requisito.
Esta pregunta es pertinente si almacenas datos de la plataforma a través de alojamiento de IaaS (como AWS EC2, Microsoft Azure IaaS o Google Compute Engine), autoalojamiento o una estrategia híbrida.
No obstante, hay otros modelos de alojamiento de backend que se consideran casos especiales.
Esta pregunta no es pertinente si almacenas datos de la plataforma mediante alguna de las opciones siguientes (y no usas IaaS, autoalojamiento ni alojamiento híbrido). En su lugar, debes describir esta relación en la sección “Proveedor de servicios” de la Evaluación de la protección de datos.
Esta pregunta no es pertinente si almacenas datos de la plataforma únicamente a través de una API de Meta (por ejemplo, con player.setDataAsync()
) en el SDK de juegos instantáneos.
Si se te solicita la presentación de pruebas que demuestren esta protección, es necesario que sigas las instrucciones indicadas en Preparación de pruebas para preparar la política o el procedimiento y las pruebas para demostrar la implementación.
AWS RDS: el cifrado en reposo es una opción configurable en AWS RDS, por lo que es necesario que los desarrolladores la seleccionen para que se aplique la protección.
Para obtener una instancia de RDS representativa que contenga datos de la plataforma, recupera su configuración StorageEncrypted con la herramienta AWS CLI.
# List RDS instances in default region $ aws rds describe-db-instances \ --query 'DBInstances[*].DBInstanceIdentifier' [ "database-1", "database-2" ] # For each instance returned, retrieve the storage encrypted config $ aws rds describe-db-instances \ --db-instance-identifier database-1 \ --query 'DBInstances[*].StorageEncrypted' [ true ] $ aws rds describe-db-instances \ --db-instance-identifier database-2 \ --query 'DBInstances[*].StorageEncrypted' [ true ]
De forma predeterminada, AWS DynamoDB está cifrado en reposo. La configuración del cifrado en reposo para una tabla puede recuperarse mediante los siguientes comandos.
$ aws dynamodb list-tables --output table -------------- | ListTables | +------------+ ||TableNames|| |+----------+| || Users || |+----------+| $ aws dynamodb describe-table \ --table-name Users \ --query "Table.SSEDescription.Status" "ENABLED"
Es necesario configurar AWS DocumentDB para aplicar cifrado en reposo. Para obtener un grupo representativo que contenga datos de la plataforma, usa los siguientes comandos para recuperar la configuración StorageEncrypted.
$ aws docdb describe-db-clusters --query 'DBClusters[*].DBClusterIdentifier' [ "docdb-users" ] $ aws docdb describe-db-clusters \ --db-cluster-identifier 'docdb-users' \ --query 'DBClusters[*].StorageEncrypted' [ true ]
Los contenedores de AWS S3 pueden configurarse para aplicar cifrado en reposo a todos los objetos creados dentro de ellos. Usa estos comandos para ver una lista de los contenedores y recuperar la configuración del cifrado predeterminado del contenedor.
$ aws s3api list-buckets --output table --query "Buckets[*].Name" --------------------------------------------- | ListBuckets | +-------------------------------------------+ | platform.storage | +-------------------------------------------+ $ aws s3api get-bucket-encryption \ --bucket platform.storage \ --query "ServerSideEncryptionConfiguration.Rules[*].ApplyServerSideEncryptionByDefault" \ --output table --------------------- |GetBucketEncryption| +-------------------+ | SSEAlgorithm | +-------------------+ | AES256 | +-------------------+
Consulta la documentación de Microsoft sobre el cifrado en reposo en Azure que sea pertinente para el uso que hace la organización de sus servicios.
Consulta la documentación de Google sobre el cifrado en reposo en Google Cloud Platform.
Si no implementas cifrado en reposo en el entorno del lado del servidor, puedes proteger los datos de la plataforma de un modo alternativo que también esté permitido. En tal caso, tienes que describir los elementos siguientes:
Pregunta: en referencia a datos almacenados en dispositivos personales y de la organización, ¿se aplica cifrado en reposo a todos los datos de la plataforma almacenados en estos dispositivos, o cuentas con reglas y políticas para reducir el riesgo de pérdida de datos?
En caso de que un desarrollador permita almacenar datos de la plataforma en dispositivos como portátiles de empleados o unidades de almacenamiento extraíbles (p. ej., unidades USB), existe un riesgo elevado de que se acceda a ellos sin autorización en caso de robo o pérdida del dispositivo. Por esta razón, es necesario que los desarrolladores adopten medidas para minimizar este riesgo.
A fin de reducir el riesgo de acceso no autorizado a los datos de la plataforma, los desarrolladores deben disponer de controles técnicos (opción recomendada) o controles administrativos (opción no recomendada, pero sí permitida). Dichos controles deben ser pertinentes para los datos de la plataforma almacenados en los dispositivos de la organización (p. ej., portátiles) y medios extraíbles.
Este requisito se aplica tanto si se tratan datos de la plataforma del lado del servidor como si no.
Si se te solicita la presentación de pruebas que demuestren esta protección, es necesario que sigas las instrucciones indicadas en Preparación de pruebas para preparar la política o el procedimiento y las pruebas para demostrar la implementación.
Puedes utilizar una de las opciones siguientes o ambas: a) controles técnicos (p. ej., cifrado de disco) o b) reglas o políticas para reducir el riesgo de pérdida de datos de la plataforma almacenados en dispositivos de la organización, como portátiles y teléfonos móviles.
Ejemplos de controles técnicos:
Ejemplos de reglas o políticas:
Una organización clasifica los datos de la plataforma de Meta como “datos privados” según su norma de clasificación de datos. La organización ha creado normas sobre el uso de los datos y obliga a todo el personal a conocer y cumplir estas políticas.
Pregunta: ¿Activas el protocolo de seguridad TLS 1.2 o una versión posterior para todas las conexiones de red que atraviesan, conectan o cruzan las redes públicas en las que se transmiten los datos de la plataforma? Además, ¿te aseguras de que los datos de la plataforma no se transmitan en ningún caso por redes públicas de forma no encriptada (p. ej., mediante HTTP o FTP) y de que nunca se usen los protocolos de seguridad SSL v2 y SSL v3?
Los datos de la plataforma que se transmiten a través de internet son accesibles para todas las personas que pueden consultar el tráfico de la red. Por lo tanto, debes protegerlos mediante cifrado o impedir su lectura por parte de terceros no autorizados.
Tanto si se tratan datos de la plataforma del lado del servidor como si no:
En la tabla siguiente se ofrece un resumen de la política del cifrado en tránsito para los diferentes tipos de transmisión.
Tipo de transmisión | Política del cifrado en tránsito |
---|---|
Desde los dispositivos de los usuarios finales (teléfonos móviles, PC, tabletas, etc.) hasta el servidor o infraestructura en la nube, y viceversa. |
|
Desde el servidor o infraestructura en la nube hasta servidores remotos, infraestructuras en la nube o servicios 4PL, y viceversa. | Debe aplicarse TLS 1.2 (o superior). |
Desde componentes que pertenezcan íntegramente a la infraestructura en la nube, servidor o centro de datos privado, y viceversa. | Se recomienda el cifrado TLS, pero no es obligatorio, para las transferencias de datos de la plataforma que tengan lugar íntegramente dentro de redes de nube privadas. |
Desde Meta hasta cualquier dispositivo, servidor o infraestructura en la nube, y viceversa. | Quedan excluidas las transferencias necesarias para la realización de la evaluación de la protección de datos (Meta controla la política de TLS en estos casos). |
Si se te solicita la presentación de pruebas que demuestren esta protección, es necesario que sigas las instrucciones indicadas en Preparación de pruebas para preparar la política o el procedimiento y las pruebas para demostrar la implementación. Usar la herramienta de prueba del servidor SSL de Qualys es una manera directa de producir pruebas de implementación que demuestren la configuración de uno de los agentes de escucha web.
Este es un ejemplo generado a partir de la herramienta de prueba del servidor SSL de Qualys. Ten en cuenta las anotaciones en rojo en la sección Configuración, que resumen qué versiones de SSL/TLS son compatibles. Nota: Este ejemplo solo incluye las primeras dos páginas, pero debes incluir el resultado completo de la prueba.
Es posible que protejas los datos en tránsito de la plataforma mediante un tipo diferente de cifrado distinto a TLS. Esto puede ser aceptable si proporciona un nivel de protección equivalente. En este caso, deberás enviar los detalles sobre el tipo de cifrado usado para que Meta lo revise:
Pregunta: ¿Realizas tests en a la aplicación y los sistemas para detectar vulnerabilidades y problemas de seguridad al menos cada 12 meses? (Por ejemplo, ¿realizas tests de penetración manuales?).
Los desarrolladores deben realizar tests que permitan detectar de manera proactiva posibles vulnerabilidades y problemas de seguridad para, en un escenario óptimo, evitar incidentes en este ámbito incluso antes de que se produzcan.
Aplicables a todos los desarrolladores:
Requisitos adicionales para desarrolladores que tratan datos de la plataforma del lado del servidor:
Si la organización se está planteando incorporar una herramienta de análisis estático de software al proceso de desarrollo, el NIST mantiene una lista de herramientas comerciales de código abierto que pueden resultar útiles como punto de partida a la hora de elegir una.
Si se te solicita la presentación de pruebas que demuestren esta protección, es necesario que sigas las instrucciones indicadas en Preparación de pruebas para preparar la política o el procedimiento y las pruebas para demostrar la implementación.
Si la organización trata datos de la plataforma en un entorno de servidor o nube, debes hacer lo siguiente:
El software del servidor o la nube con acceso desde internet (por ejemplo, la API REST que usan los clientes web o de telefonía móvil) que empleas para tratar los datos de la plataforma debe formar parte del ámbito de este test para que se considere aceptable.
Si la organización NO trata los datos de la plataforma en un entorno de servidor o nube, debes hacer lo siguiente:
Test de penetración: una organización encarga un test de penetración del software que ejecuta del lado del servidor, que se integra con las API de Meta y trata los datos de la plataforma. La empresa que realiza el test la completa y elabora un informe resumido como que el figura a continuación: Observa las anotaciones en color rojo, que indican la fecha en que se realizó el test (debe haberse hecho en los últimos 12 meses). También se ofrece un resumen de las vulnerabilidades críticas o graves no resueltas en el momento en que concluye la prueba (o la repetición de la prueba, si corresponde). Elimina u oculta la información confidencial del informe (especialmente los pasos detallados de reproducción de la vulnerabilidad) antes de enviarlo.
Análisis estático: si se adopta un enfoque diferente, por ejemplo, la incorporación de una herramienta de análisis estático de software, exporta los resultados a un documento que incluya la fecha en que se ha ejecutado la herramienta y una lista que indique el tipo de problema detectado y si es grave o crítico.
Revisión de la configuración de la nube
Un desarrollador usa NCC Scout Suite con el conjunto de reglas predeterminado de su proveedor de servicios en la nube (en este caso, AWS) para revisar la configuración de la nube y detectar vulnerabilidades y problemas de seguridad. La herramienta genera un archivo JSON que incluye los resultados detallados de la ejecución. En este ejemplo, hay diversos problemas marcados con el nivel de gravedad “Peligro”, que el desarrollador debe revisar y resolver.
El archivo JSON sin procesar de NCC Scout Suite incluye los detalles sobre el entorno en la nube que no debes subir. En cambio, filtra las respuestas para mostrar el número de hallazgos según el nivel de gravedad.
$ python3 scout.py aws –-no-browser 2022-08-22 11:39:38 localhost scout[76981] INFO Saving data to scoutsuite-report/scoutsuite-results/scoutsuite_results_aws-043954759379.js $ cd scoutsuite-report/scoutsuite-results $ tail -n +2 scoutsuite_results_aws-043954750000.js| jq '. | {last_run}' | pbcopy { "last_run": { "ruleset_about": "This ruleset consists of numerous rules that are considered standard by NCC Group. The rules enabled range from violations of well-known security best practices to gaps resulting from less-known security implications of provider-specific mechanisms. Additional rules exist, some of them requiring extra-parameters to be configured, and some of them being applicable to a limited number of users.", "ruleset_name": "default", "run_parameters": { "excluded_regions": [], "regions": [], "services": [], "skipped_services": [] }, "summary": { "acm": { "checked_items": 4, "flagged_items": 2, "max_level": "warning", "resources_count": 2, "rules_count": 2 }, "awslambda": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 0 }, "cloudformation": { "checked_items": 11, "flagged_items": 0, "max_level": "warning", "resources_count": 11, "rules_count": 1 }, "cloudfront": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 3 }, "cloudtrail": { "checked_items": 153, "flagged_items": 4, "max_level": "danger", "resources_count": 17, "rules_count": 9 }, "cloudwatch": { "checked_items": 2, "flagged_items": 0, "max_level": "warning", "resources_count": 2, "rules_count": 1 }, "codebuild": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 0 }, "config": { "checked_items": 17, "flagged_items": 0, "max_level": "warning", "resources_count": 1227, "rules_count": 1 }, "directconnect": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 0 }, "dynamodb": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 1, "rules_count": 0 }, "ec2": { "checked_items": 760, "flagged_items": 108, "max_level": "danger", "resources_count": 44, "rules_count": 28 }, "efs": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 0 }, "elasticache": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 0 }, "elb": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 3 }, "elbv2": { "checked_items": 42, "flagged_items": 4, "max_level": "danger", "resources_count": 0, "rules_count": 5 }, "emr": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 0 }, "iam": { "checked_items": 801, "flagged_items": 27, "max_level": "danger", "resources_count": 87, "rules_count": 37 }, "kms": { "checked_items": 15, "flagged_items": 0, "max_level": "warning", "resources_count": 15, "rules_count": 1 }, "rds": { "checked_items": 1, "flagged_items": 0, "max_level": "warning", "resources_count": 27, "rules_count": 9 }, "redshift": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 6 }, "route53": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 1, "rules_count": 3 }, "s3": { "checked_items": 121, "flagged_items": 34, "max_level": "warning", "resources_count": 7, "rules_count": 18 }, "secretsmanager": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 1, "rules_count": 0 }, "ses": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 4 }, "sns": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 7 }, "sqs": { "checked_items": 0, "flagged_items": 0, "max_level": "warning", "resources_count": 0, "rules_count": 8 }, "vpc": { "checked_items": 271, "flagged_items": 211, "max_level": "warning", "resources_count": 0, "rules_count": 9 } }, "time": "2022-08-22 11:42:25-0400", "version": "5.11.0" } }
Otro enfoque para revisar la configuración de la nube para desarrolladores que usan el conjunto de reglas de Amazon Web Services.
# Show that AWS Foundational Security Best Practices are enabled $ aws securityhub get-enabled-standards { "StandardsSubscriptions": [ { "StandardsSubscriptionArn": "arn:aws:securityhub:us-west-1:043954759379:subscription/aws-foundational-security-best-practices/v/1.0.0", "StandardsArn": "arn:aws:securityhub:us-west-1::standards/aws-foundational-security-best-practices/v/1.0.0", "StandardsStatus": "READY" } ] } # Show that aggregator is configured for a representative region used to process Platform Data $ aws securityhub list-finding-aggregators $ aws securityhub get-finding-aggregator --finding-aggregator-arn '{REPLACE-WITH-FINDING-AGGREGATOR-ARN}' # Demonstrate that the ruleset is running by fetching active findings and counting the number of lines of output $ aws securityhub get-findings --query 'Findings[?RecordState==`ACTIVE`]' --filters '{"GeneratorId":[{"Value": "aws-foundational-security","Comparison":"PREFIX"}]}' --output text | wc -l 4876 # Demonstrate that there are no active critical severity findings $ aws securityhub get-findings --query 'Findings[?Severity.Label==`CRITICAL`] | [?RecordState==`ACTIVE`] | [*][Title, GeneratorId]' --filters '{"GeneratorId":[{"Value": "aws-foundational-security","Comparison":"PREFIX"}]}' []
Si, por ejemplo, estás implementando un Programa de divulgación de vulnerabilidad activo (VDP) mediante las plataformas BugCrowd o HackerOne, puedes presentarlo como medida de protección alternativa en lugar de un test de penetración o un análisis de vulnerabilidades. Para demostrarlo, debes presentar pruebas que demuestren lo siguiente:
En este caso, las pruebas deben incluir lo siguiente:
Pregunta: ¿las claves secretas de la aplicación y los identificadores de acceso de la API de Meta se protegen de las dos formas indicadas a continuación?
Las claves secretas de la aplicación y los identificadores de acceso son fundamentales para la seguridad cuando las API de Meta toman decisiones sobre qué acciones permiten. Si un agente no autorizado accede a estas credenciales, podría llamar a las API de Meta suplantando la identidad del auténtico desarrollador y realizar cualquiera de las acciones que hemos autorizado en la aplicación (p. ej., leer los datos de las API de Meta sobre los usuarios de la aplicación).
Identificadores de acceso
Clave secreta de la aplicación. Debe darse uno de estos dos supuestos:
Si se te solicita la presentación de pruebas que demuestren esta protección, es necesario que sigas las instrucciones indicadas en Preparación de pruebas para preparar la política o el procedimiento y las pruebas para demostrar la implementación.
Incluye documentación sobre la política de protección de la clave secreta de la aplicación y los identificadores de acceso de la API de Meta. Si la aplicación procesa identificadores de acceso de Meta en el lado del servidor, incluye pruebas que demuestren las protecciones que adoptas (p. ej., uso de un almacén, demostración de que los valores se almacenan en un formato cifrado o configuración de la aplicación para requerir pruebas de la clave secreta de la aplicación).
En las pruebas presentadas, asegúrate de no incluir (es decir, elimina) los valores de texto sin formato de cualquier clave secreta o identificador de acceso.
Una organización usa AWS Secrets Manager para almacenar datos confidenciales de forma segura, incluida la clave secreta de la aplicación de Meta.
Una organización ha configurado su aplicación de Meta para requerir una prueba de la clave secreta de la aplicación para llamadas a la API.
Pregunta: ¿Pruebas los sistemas y procesos que usarías como respuesta ante un incidente de seguridad (por ejemplo, una filtración de datos o un ciberataque) al menos cada 12 meses?
Tarde o temprano, todas las empresas se enfrentan a incidentes de seguridad. Por eso es crucial que las organizaciones planifiquen con antelación quién debe aplicar cada medida para contener el incidente, comunicarlo a las partes interesadas, recuperarse y aprender de lo ocurrido.
Qué necesita el desarrollador:
Este requisito se aplica tanto si se tratan datos de la plataforma del lado del servidor como si no.
Sigue las instrucciones indicadas en Preparación de pruebas para preparar la política o el procedimiento y las pruebas para demostrar la implementación.
Un desarrollador ha creado un completo plan de respuesta ante incidentes basado en esta plantilla. En las imágenes solo puede verse el índice, pero hay un enlace a continuación que dirige a la plantilla completa.
Consulta la plantilla completa del plan de respuesta ante incidentes de Counteractive (formato docx).
Un desarrollador ha llevado a cabo una prueba de su plan de respuesta ante incidentes en el contexto de un ejercicio práctico y ha documentado el resultado en función de esta plantilla.
Aquí solo se incluyen las dos primeras páginas, pero deberás enviar el documento completo.
Pregunta: ¿requieres autenticación multifactor para acceder remotamente a las cuentas que pueden conectarse al entorno del servidor o la nube o acceder a los servicios que usas para implementar, mantener, supervisar y operar los sistemas en los que almacenas Datos de la plataforma de Meta?
Una técnica que los agentes malintencionados suelen emplear para acceder a datos confidenciales es obtener acceso en primer lugar a las herramientas con las que un desarrollador crea u opera su aplicación o sistema. Existen herramientas muy sofisticadas diseñadas para hackear las cuentas que solo están protegidas con contraseñas. La autenticación multifactor constituye una medida adicional de seguridad que nos ayuda a protegernos frente a este riesgo.
En lo que respecta al tratamiento de los Datos de la plataforma por parte de las organizaciones, este tipo de autenticación (que no se limita a solicitar una contraseña) puede proteger la integridad del acceso remoto a las siguientes herramientas:
En concreto, se requiere autenticación multifactor o una protección alternativa permitida en los siguientes casos:
Respecto a la implementación de la autenticación multifactor:
Si se te solicita la presentación de pruebas que demuestren esta protección, es necesario que sigas las instrucciones indicadas en Preparación de pruebas para preparar la política o el procedimiento y las pruebas para demostrar la implementación.
Una organización usa AzureAD como solución de inicio de sesión único. Esta política requiere autenticación multifactor.
A continuación, se determinan las aplicaciones de la nube para las que es pertinente esta política. Con esta estrategia, las pruebas deben mostrar la totalidad de la sección Elementos seleccionados para aclarar qué aplicaciones de la nube requieren autenticación multifactor.
Esta regla requiere autenticación multifactor en todos los inicios de sesión.
Este es un ejemplo de una política de AWS IAM que permite configurar la autenticación multifactor, pero prohíbe otras acciones si dicha autenticación no está presente.
Una organización ha configurado la autenticación de GitHub para requerir la autenticación multifactor a todos los miembros de la organización.
Pregunta: ¿dispones de un sistema de mantenimiento de cuentas (asignación, revocación y revisión del acceso y los privilegios)?
Mantener un buen estado de administración de las cuentas es muy importante para evitar que estas se utilicen de forma no autorizada con el objetivo de acceder a los datos de la plataforma. Concretamente, los desarrolladores deben asegurarse de revocar el acceso a los recursos o sistemas cuando ya no se precise.
Este requisito se aplica tanto si se tratan datos de la plataforma del lado del servidor como si no.
Sigue las instrucciones indicadas en Preparación de pruebas para preparar la política o el procedimiento y las pruebas para demostrar la implementación.
Política o procedimiento: un desarrollador ha creado una norma de administración del ciclo de vida de acceso que incluye procedimientos para el otorgamiento, la revisión y la revocación del acceso.
Un desarrollador usa Workday como fuente fiable de datos de Recursos Humanos (RR. HH.), incluida la situación laboral actual. Este desarrollador usa Google Cloud Identity como proveedor de identidad para administrar cuentas de usuarios y otorgar acceso a herramientas y sistemas de información.
Un desarrollador presenta un informe con pruebas de que se ha revocado el acceso de antiguos empleados. En él, se muestra que en un informe de reconciliación reciente (es decir, realizado en los 12 meses anteriores) se ha constatado que no existen cuentas de usuario activas en Google Cloud Identity de empleados que ya no están en activo, conforme a un informe de Workday sobre los empleados actuales.
Un desarrollador usa Google Cloud Identity como su proveedor de identidad para administrar cuentas de usuarios y otorgar acceso a herramientas y sistemas de información.
Un desarrollador presenta pruebas de que se ha revocado el acceso cuando ya no se utiliza (es decir, no se ha realizado ningún inicio de sesión en los seis meses anteriores) a través del directorio de usuarios ordenado por último inicio de sesión, con el objetivo de demostrar que no existen cuentas de usuario activas en las que el último inicio de sesión fuera anterior a este.
Un desarrollador usa una herramienta de inicio de sesión único para la administración de identidades y otorgar acceso a herramientas y sistemas de información. El desarrollador ha configurado GitHub para que requiera autenticación mediante inicio de sesión único.
Pregunta: ¿Dispones de un sistema para mantener actualizados los entornos y el código del sistema, incluidos servidores, máquinas virtuales, sistemas de distribución, bibliotecas, paquetes y software antivirus?
Los componentes de software se actualizan o corrigen constantemente para corregir vulnerabilidades de seguridad y, finalmente, agotan su vida útil cuando dejan de ser compatibles. Los desarrolladores que utilizan o necesitan estos componentes deben disponer de información actualizada para no ejecutar software en el que se hayan detectado vulnerabilidades.
En el caso de los componentes de software siguientes (según corresponda), debes contar con un medio definido y reproducible que permita identificar los parches disponibles para corregir las vulnerabilidades de seguridad, priorizar según el riesgo y aplicar dichos parches de forma continua:
Meta no requiere el uso de una herramienta específica para estas actividades. Es habitual que una organización use varias estrategias para mantener distintos tipos de software actualizados (p. ej., bibliotecas que vienen empaquetadas en la aplicación frente a actualizaciones del sistema operativo de los portátiles de los empleados).
Este requisito se aplica con independencia de la estrategia de alojamiento (p. ej., backend como servicio, plataforma como servicio, infraestructuras como servicio, alojamiento propio o un modelo híbrido), aunque el conjunto de componentes que es necesario mantener actualizados variará.
El diagrama siguiente muestra los casos en los que puede ser necesario aplicar parches en distintos tipos de arquitecturas.
Si se te solicita la presentación de pruebas que demuestren esta protección, es necesario que sigas las instrucciones indicadas en Preparación de pruebas para preparar la política o el procedimiento y las pruebas para demostrar la implementación.
Dentro del ámbito de aplicación, comienza identificando los tipos de software en el entorno, como bibliotecas, SDK, paquetes, imágenes de máquina virtual, contenedores de aplicaciones, navegadores, sistemas operativos y otras aplicaciones que los empleados o colaboradores utilicen.
Es posible que cuentes con una o más herramientas para las actividades siguientes:
Snyk para una aplicación de NodeJS: un desarrollador usa la interfaz de línea de comandos (CLI) de Synk para identificar dependencias empaquetadas de terceros con vulnerabilidades de seguridad conocidas y prioriza estas últimas en función de su gravedad.
Un desarrollador usa NPM Audit para encontrar vulnerabilidades en las dependencias usadas en una aplicación de nodo. La siguiente imagen de ejemplo muestra diversas vulnerabilidades muy graves que requieren un parche.
Un desarrollador usa Trivy para encontrar vulnerabilidades en una imagen de máquina. La siguiente imagen de ejemplo muestra bibliotecas con vulnerabilidades muy graves que requieren un parche.
Un desarrollador usa Windows Server Update Services (WSUS) para administrar su flota de servidores y equipos de sobremesa o portátiles. La siguiente imagen de ejemplo muestra una vista de administrador de la herramienta WSUS, que permite revisar, aprobar e implementar actualizaciones de Windows.
Detectar accesos no autorizados a datos de la plataforma sin disponer de archivos de registro fiables puede ser muy difícil o incluso imposible para los desarrolladores.
Si tratas datos de la plataforma del lado del servidor, esto es lo que necesitas en dicho entorno:
Si se te pide que aportes pruebas, deberás poder demostrar lo siguiente:
Saber cómo se espera que se realice el tratamiento de los datos de la plataforma y supervisar dicho proceso es una forma importante de que las organizaciones se aseguren de que ese tipo de datos se utilicen únicamente para los fines previstos.
Si tratas datos de la plataforma del lado del servidor, esto es lo que debes hacer en dicho entorno:
Si se te pide que presentes pruebas que demuestren esta protección, sigue las instrucciones que se indican en Preparación de pruebas para preparar la política o el procedimiento y las pruebas para demostrar la implementación.
Debes enviarnos pruebas que demuestren lo siguiente:
Depender de las personas a la hora de revisar e identificar comportamientos inesperados en un sistema moderno con acceso a internet es poco realista. Para ello existen herramientas que analizan archivos de registro y otras señales y que emiten avisos que un equipo humano se encarga de investigar.
Si tratas datos de la plataforma del lado del servidor, esto es lo que necesitas en el entorno del servidor:
A tal fin, los desarrolladores suelen adoptar una herramienta de gestión de eventos e información de seguridad como las siguientes:
Debes aportar pruebas que justifiquen que los orígenes de señales pertinentes se conectan con la herramienta que hayas elegido, que has configurado avisos y que estos se harán llegar al personal encargado de investigarlos, y que has diseñado un proceso para optimizar dichos avisos regularmente (por ejemplo, mediante ciclos mensuales de revisión y actualización).
Tercero (“3rd party”): en la terminología de gestión de riesgos, “tercero” hace referencia a los desarrolladores de la plataforma de Meta (Meta constituye la entidad primaria y las personas que usan los productos de Meta, la secundaria).
Entidad cuaternaria (“4th party”): en la terminología de gestión de riesgos, “entidad cuaternaria” hace referencia a las empresas de las que los desarrolladores dependen para recibir los servicios que les permiten llevar adelante sus negocios (la entidad primaria es Meta; la secundaria, las personas que usan los productos de Meta, y la terciaria, los desarrolladores de la plataforma de Meta) Identificador de acceso (“Access token”): una credencial, como una contraseña, que permite al software llamar a una API para que realice una determinada acción (p. ej., leer datos del perfil de un usuario).
Amazon Web Services (AWS): paquete de servicios de computación en la nube de Amazon.
ASID (“Identificador de usuario específico de la aplicación”, por sus siglas en inglés): identificador único que genera Meta cuando una persona elige usar una aplicación. Los ASID ayudan a mejorar la privacidad de los usuarios al dificultar que los conjuntos de datos correlacionen los usuarios entre las aplicaciones, ya que un único usuario que use dos aplicaciones tendrá diferentes ASID en cada una.
Clave secreta de la aplicación (“App secret”): una clave secreta que Meta pone a disposición de los desarrolladores a través del panel de aplicaciones. Contar con la clave secreta de la aplicación autoriza al software a realizar algunas acciones a través de la API Graph; por lo tanto, los desarrolladores deben asegurarse de que las personas no autorizadas no puedan obtener acceso a la clave secreta de la aplicación.
Aplicación comprometida (“App compromise”): si un agente malintencionado obtiene acceso no autorizado a la red interna de una organización debido a un error de configuración o una vulnerabilidad en su aplicación (p. ej., una vulnerabilidad del software en una aplicación web), se dice que la aplicación está comprometida. Un mecanismo de defensa contra una aplicación comprometida es ejecutar un test de penetración en ella. Consulta también “Red comprometida”.
Contenedor de la aplicación (“Application container”): un contenedor empaqueta el código del software y las dependencias relacionadas para que la aplicación se ejecute en diferentes tipos de servidores (p. ej., servidores que ejecutan diferentes sistemas operativos como Linux o Windows Server). Un desarrollador creará una imagen de un contenedor que empaquete su aplicación. El motor o software de tiempo de ejecución del contenedor de la aplicación aloja (ejecuta) la imagen del contenedor.
Cifrado de la aplicación (“Application encryption”): método para proteger los datos en el que el software de la aplicación realiza las operaciones de cifrado y descifrado. Por el contrario, la seguridad de la capa de transporte cifra fácilmente los datos en tránsito cuando una aplicación establece una conexión segura con un servidor remoto (p. ej., utilizando HTTPS) y los proveedores de la nube ofrecen servicios para cifrar datos en reposo de manera transparente.
API (“Interfaz de programación de aplicaciones”, por sus siglas en inglés): permite que dos ordenadores se comuniquen a través de una red, por ejemplo, una aplicación para móviles que carga el clima del día para una determinada ubicación desde un sistema de previsión meteorológica centralizado.
Prueba de la clave secreta de la aplicación (“Appsecret proof”): una medida adicional de seguridad para las llamadas de la API a Meta mediante la cual el desarrollador genera un parámetro (la prueba de la clave secreta de la aplicación) que demuestra que posee dicha clave secreta. La prueba de la clave secreta de la aplicación es el producto de una función hash (también llamada función unidireccional) que se basa en la clave secreta de la aplicación y el identificador de acceso. Configurar una aplicación para exigir pruebas de la clave secreta de la aplicación durante las invocaciones de la API Graph reduce el daño potencial de una vulneración de identificadores de acceso del usuario, ya que dichos identificadores no se pueden usar sin el parámetro adicional de la prueba de la clave secreta de la aplicación.
BaaS (“Backend como servicio”, por sus siglas en inglés): modelo de computación en la nube que ofrece a los desarrolladores de aplicaciones un conjunto de funciones del lado del servidor para que puedan centrarse en el desarrollo del frontend (es decir, la parte de la aplicación con la que interactúan los usuarios). Las soluciones BaaS son similares a las PaaS y, además, incorporan servicios como la autenticación de usuarios y notificaciones push para dispositivos móviles. Algunos productos de BaaS populares son AWS Amplify, Azure Mobile Apps, Firebase y MongoDB Switch.
Texto cifrado (“Cipher text”): sinónimo de datos cifrados. Texto cifrado es el nombre con el que se conoce a los datos que se transforman a un formato ilegible a través de un algoritmo de cifrado. El contrario de “texto cifrado” es “texto sencillo”.
Lado del cliente (“Client side”): las personas normalmente interactúan con servicios accesibles desde internet al abrir un sitio web en un navegador o al ejecutar una aplicación para móviles en un teléfono o una tableta. Se hace referencia al navegador o la aplicación para móviles como “lado del cliente” o “cliente local”. Los clientes formulan solicitudes desde ordenadores remotos (servidores) a través de internet.
Computación en la nube (“Cloud computing”): hace referencia a un estilo de administración de servidores, redes y almacenamiento de modo que una organización no tenga que preocuparse del entorno físico (es decir, un centro de datos lleno de bastidores de servidores y cables de red). En su lugar, la organización puede adquirir estos activos cuando lo necesite y pagar por los servicios que consumen.
Configuración de la nube (“Cloud configuration”): conjunto de opciones de computación en la nube que una organización establece según el uso que hace de un proveedor en la nube que ejecuta un determinado software. Algunos ejemplos de configuración de la nube incluyen qué tipos de conexiones en la red se permiten o bloquean, dónde se escriben los archivos de registro y durante cuánto tiempo se conservan, y el conjunto de usuarios que tienen autorización para hacer cambios en la configuración de la nube.
Controles compensatorios (“Compensating controls”): control de seguridad que difiere de un conjunto de requisitos estándar, pero cuyo objetivo es ofrecer una protección equivalente en caso de riesgo.
Base de datos (“Database”): software que permite almacenar, leer, actualizar y eliminar datos arbitrarios. Las bases de datos se pueden ejecutar en clientes y en servidores. Las organizaciones que se integran con la plataforma de Meta almacenarán comúnmente los datos que obtienen de la API Graph en una base de datos que se ejecuta del lado del servidor.
Descifrado (“Decryption”): proceso mediante el cual los datos cifrados se restituyen a su formato original. Dicho de otro modo, el descifrado transforma el texto cifrado en texto sencillo.
Cifrado (“Encryption”): proceso mediante el cual los datos adoptan un formato que no puede ser utilizado por quien no puede descifrarlo. Dicho de otro modo, el cifrado transforma el texto sencillo en texto cifrado.
Cifrado en reposo (“Encryption at rest”): datos que se han protegido mediante cifrado cuando se escriben en un almacenamiento persistente (como una unidad de disco). El cifrado en reposo ofrece un nivel adicional de protección contra los accesos no autorizados, ya que un agente que pueda leer los archivos sin procesar en un dispositivo de almacenamiento verá el texto cifrado, pero no podrá descifrarlo mientras no consiga acceso a la clave de descifrado.
Cifrado en tránsito (“Encryption in transit”): datos protegidos mediante cifrado que se transmiten por una red. El cifrado en tránsito ofrece protección contra la interceptación en la ruta de red, ya que un agente que pueda leer los paquetes de red verá el texto cifrado, pero no podrá descifrarlo mientras no consiga acceso a la clave de descifrado.
Fin de la vida útil del software (“End of Life [EOL] software”): momento en que una organización deja de ofrecer soporte (p. ej., crear parches para resolver vulnerabilidades de seguridad) para un producto de software. Dado que ya no se llevan a cabo tareas de mantenimiento del software, es muy arriesgado ejecutarlo.
Plataforma Google Cloud (“Google Cloud Platform, [GCP]”): conjunto de servicios de computación en la nube de la API Graph de Google. Forma principal en que las aplicaciones leen y escriben en el grafo social de Meta. Todos los SDK y productos de Meta interactúan con la API Graph de alguna manera.
Función hash (“Hashing function”): función criptográfica que toma cualquier dato como valor de entrada y lo convierte en un código corto que no se puede revertir a la entrada original. En criptografía, las funciones hash se usan para proteger datos como las contraseñas. En lugar de almacenar la contraseña de un usuario como texto sencillo que podría robarse, las contraseñas se transforman primero con una función hash y luego se almacenan. Posteriormente, para confirmar que el usuario ha introducido la contraseña correcta, el sistema utilizará la misma función hash para transformar la entrada y comparar el hash resultante con el valor almacenado. También llamada función unidireccional, ya que el hash de salida no se puede revertir a la entrada original.
Entorno alojado (“Hosted environment”): hace referencia a un conjunto de servidores, redes y dispositivos de almacenamiento remotos que una organización ejecuta en su propio centro de datos o dentro de un centro de housing con otros clientes. Esta opción es relativamente poco común actualmente debido a la popularidad que está cobrando la computación en la nube.
IdP (“Proveedor de identidad”, por sus siglas en inglés): servicio en la nube que se usa para centralizar la administración de identidades digitales y autenticar usuarios. Las organizaciones que utilizan este servicio suelen configurar aplicaciones en la nube y recurren a él para la autenticación de usuarios. Posteriormente, la organización puede administrar usuarios concediendo acceso a determinadas aplicaciones, creando e inhabilitando cuentas de usuario de manera centralizada dentro del IdP, en lugar de tener que hacerlo reiteradamente en cada aplicación en la nube.
IAM (“Administración de identidades y de acceso”, por sus siglas en inglés): hace referencia a la categoría de herramientas y procesos que se utilizan para administrar cuentas y conceder acceso a los sistemas.
IaaS (“Infraestructura como servicio”, por sus siglas en inglés): modelo de computación en la nube que permite a los clientes configurar servicios de computación, almacenamiento y redes sin ser responsables de los activos físicos (p. ej., administrar un centro de datos repleto de servidores, dispositivos de red y matrices de almacenamiento). En comparación con PaaS, IaaS otorga a las organizaciones un mayor control sobre la configuración de sus activos en la nube, pero a costa de una mayor complejidad a la hora de administrar dichos activos. Algunos productos de IaaS populares son AWS EC2, Microsoft Azure IaaS y Google Compute Engine.
Biblioteca (“Library”): componente fundamental de software preexistente. Suele ser de una empresa o un desarrollador externo y se utiliza para gestionar determinadas tareas dentro de la aplicación o el sistema de otro desarrollador. Las bibliotecas simplifican el desarrollo de las aplicaciones, ya que el desarrollador no tiene que empezar de cero cuando ya existe una biblioteca para una determinada función. Sin embargo, las bibliotecas pueden contener vulnerabilidades de seguridad, o pueden incluir bibliotecas adicionales que sí las contengan. Por lo tanto, los desarrolladores que utilizan bibliotecas como parte de su aplicación deben saber qué bibliotecas están en uso y mantenerlas siempre actualizadas.
Aplicación de un cliente de telefonía móvil o para móviles (“Mobile client or mobile app”): aplicación que alguien instala en un teléfono o tableta desde una tienda de aplicaciones para móviles (p. ej., App Store de iOS o Google Play Store). Es habitual que los clientes de telefonía móvil se comuniquen a través de internet con la API REST de una organización y también lo hagan con otras partes (p. ej., con la API Graph a través del SDK de Facebook para Android).
MFA (“Autenticación multifactor”, por sus siglas en inglés): método de autenticación en el que se requiere de más de un factor para obtener acceso a una aplicación o un sistema. En comparación con la autenticación de un solo factor (que solo se basa en una contraseña para autenticar a un usuario), la MFA suele solicitar una contraseña y uno o más de estos elementos: un código enviado por correo electrónico o SMS, un código de una aplicación de autenticación, la verificación de datos biométricos o una llave de seguridad. La MFA protege frente a las apropiaciones de cuentas al hacer más difícil que personas no autorizadas entren a la fuerza en una cuenta, por ejemplo, iniciando sesión después de varios intentos con una dirección de correo electrónico conocida y contraseñas comunes hasta lograrlo.
Software nativo (“Native software”): las aplicaciones que se descargan e instalan en ordenadores portátiles o dispositivos móviles se conocen como software nativo (p. ej., la aplicación de Facebook para iOS). En cambio, una aplicación que se ejecuta dentro de un navegador se conoce como aplicación web (p. ej., abrir Facebook con el navegador Chrome).
Red comprometida (“Network compromise”): el hecho de que un agente malicioso consiga acceso no autorizado a la red interna de una organización debido a un error de configuración o una vulnerabilidad de la red. Un mecanismo de defensa contra una red comprometida es ejecutar un análisis para detectar errores de configuración y vulnerabilidades de la red con acceso a internet. Consulta también “Aplicación comprometida”.
Escaneo de red (“Network scan”): proceso de gestión de riesgos que utiliza software a fin de (1) identificar servidores activos en una red que responderán a comunicaciones remotas y, posteriormente, (2) comprobar si alguno de esos servidores está ejecutando versiones antiguas de software que se sabe que son susceptibles a ataques de seguridad. Una organización puede usar el escaneo de red periódicamente, por ejemplo, para asegurarse de que no haya puertos abiertos inesperados en el perímetro de su red.
Node Package Manager (NPM): herramienta que utilizan los desarrolladores de JavaScript para acelerar el proceso desarrollo al permitir que se incluyan paquetes ya creados en su aplicación o sistema. NPM incluye funciones para auditar el conjunto de paquetes que la aplicación utiliza e identificar paquetes que tienen vulnerabilidades de seguridad conocidas.
Contenedores de almacenamiento de objetos (“Object storage buckets”): tipo de almacenamiento en la nube que facilita que las organizaciones guarden archivos en almacenamiento persistente, incluidos archivos de gran tamaño, sin tener que preocuparse de ampliar la capacidad de activos físicos (como matrices de almacenamiento) ni de realizar copias de seguridad de los archivos para evitar perderlos en situaciones fortuitas, como incendios o inundaciones.
Sistema operativo (“Operating system”): software que se ejecuta en un ordenador o dispositivo móvil y que permite que las aplicaciones se ejecuten y utilicen el procesador, la memoria, el almacenamiento y los recursos de red de ese ordenador. Por ejemplo, Windows de Microsoft, macOS de Apple o iOS y Linux.
Miembro de la organización (“Organization member”): persona con una función determinada y responsabilidades dentro de una organización, como un empleado, un contratista, un trabajador eventual, un becario o un voluntario.
Dispositivo de la organización (“Organizational device”): ordenador o dispositivo móvil utilizado por el miembro de una organización a la hora de desempeñar una tarea para ella.
Condición de la plataforma 6.a.i (“Platform Term 6.a.i”): hace referencia a la sección (6), encabezado (a), párrafo (i) de las Condiciones de la plataforma de Meta, que describe las obligaciones de los desarrolladores de la plataforma en materia de seguridad de datos.
Paquete: sinónimo de biblioteca.
Parche: actualizaciones de software que resuelven vulnerabilidades de seguridad, corrigen errores o añaden funcionalidades nuevas. Todos los tipos de software reciben parches, incluidos los sistemas operativos, los contenedores, las bibliotecas y los SDK.
Test de penetración (“Penetration test”): ataque simulado contra una aplicación o un sistema en el que se intenta detectar vulnerabilidades en el código o la configuración que un agente no autorizado podría tratar de aprovechar. Quienes llevan a cabo este tipo de tests usan herramientas similares a los cibercriminales para realizar tareas de reconocimiento, detectar posibles puntos débiles y probar las vulnerabilidades que se podrían aprovecharse para conseguir acceso no autorizado. Al finalizar este test se creará un informe con los resultados y la gravedad de cada problema. La organización que mantiene el software tiene la responsabilidad de diseñar las correcciones pertinentes para resolver las vulnerabilidades.
Texto sencillo (“Plain text”): sinónimo de “datos sin cifrar”. Es el nombre que se le da a los datos que no están protegidos con cifrado. PaaS (“Plataforma como servicio”, por sus siglas en inglés): modelo de computación en la nube en el que el cliente implementa una aplicación en una plataforma administrada por el proveedor de servicios en la nube. En comparación con IaaS, PaaS es más fácil de administrar para los clientes, ya que el anfitrión de la nube no solo administra los activos físicos (es decir, los servidores, dispositivos de almacenamiento y dispositivos de red), sino también el sistema operativo y el contenedor de la aplicación donde se ejecuta la aplicación del cliente. Algunos productos de PaaS populares son AWS Elastic Beanstalk, Google App Engine y Force.com.
Puerto: cuando un cliente establece una conexión con un servidor a través de internet, la dirección de destino tiene dos partes, (1) una dirección de protocolo de internet (IP) para el servidor y (2) un número de puerto en ese servidor al que responderá una aplicación en particular. Los protocolos comunes usan puertos reservados (p. ej., HTTPS usa 443), pero un desarrollador puede usar puertos personalizados para las comunicaciones de red si lo desea.
API REST (“REST API”): estilo ampliamente adoptado de desarrollo de servicios accesibles por web en el que el cliente y el servidor se comunican utilizando el protocolo HTTP. Un desarrollador de la plataforma de Meta puede alojar una API REST en un subdominio como api.ejemplo.com, desde el que su aplicación para móviles envía y recibe datos de la plataforma.
Secure Shell (SSH): protocolo de comunicación seguro que permite que los administradores inicien sesión en los servidores de forma remota y ejecuten programas en ellos. Se considera seguro porque las comunicaciones entre el cliente y el servidor están protegidas frente a interceptaciones, a diferencia de los protocolos anteriores como Telnet. También se lo denomina Secure Socket Shell.
Secure Sockets Layer (SSL) (“Capa de puertos seguros”): versión obsoleta y no segura de cifrado en tránsito. La versión segura moderna se denomina “seguridad de la capa de transporte” (“TLS”, por sus siglas en inglés).
Servidor: ordenador que proporciona servicios en modo remoto a través de una red. Los navegadores y aplicaciones para móviles se conectan a los servidores a través de internet.
Computación sin servidor (“Serverless computing”): modelo de computación en la nube en el que el anfitrión de la nube administra la infraestructura física, el sistema operativo del servidor y el contenedor. El desarrollador solo es responsable del código personalizado y las bibliotecas asociadas, además de la configuración de la nube.
Lado del servidor (“Server side”): a los datos o la computación en el otro lado de una conexión de red (es decir, en un servidor) se los considera “del lado del servidor”. En cambio, a los datos o la computación en un dispositivo local, como un ordenador portátil o un dispositivo móvil, se los considera “del lado del cliente”.
SSO (“Inicio de sesión único”, por sus siglas en inglés): procedimiento en el que las aplicaciones dependen de un directorio de usuarios centralizado (es decir, un IdP) para autenticar a los usuarios. Además de centralizar la administración de las cuentas de los usuarios y el acceso a la aplicación de la organización, los usuarios se benefician de tener un único conjunto de credenciales, en lugar de tener varias (p. ej., un nombre de usuario y una contraseña) para cada aplicación.
SDK (“Kit de desarrollo de software”, por sus siglas en inglés): componente básico de código que un desarrollador puede utilizar para simplificar el proceso de desarrollo para una determinada necesidad. Por ejemplo, Meta crea y mantiene SDK que simplifican el trabajo con la API Graph para los desarrolladores de iOS y Android. Tal como ocurre con las bibliotecas, los desarrolladores que usan SDK en sus aplicaciones deben mantenerlos siempre actualizados.
SaaS (“Software como servicio”, por sus siglas en inglés): permite que los clientes usen aplicaciones basadas en la nube a través de internet. A diferencia de PaaS o IaaS, un cliente de una aplicación SaaS no implementa código personalizado ni tiene la responsabilidad de configurarla, actualizarla o crear parches para ella, ya que de todo esto se encarga el proveedor de dicha aplicación. Algunos productos de SaaS populares son Dopbox, MailChip, Salesforce y Slack.
Análisis estático (“Static analysis”): consulta “SAST, Tests de seguridad de aplicaciones estáticas”.
SAST (“Tests de seguridad de aplicaciones estáticas”, por sus siglas en inglés): enfoque para detectar vulnerabilidades en software mediante la ejecución de una herramienta especializada en el código fuente. Una herramienta de SAST identificará vulnerabilidades potenciales, como las que se mencionan en el proyecto OWASP Top 10. Posteriormente, el desarrollador es el encargado de revisar los resultados, distinguir entre verdaderos positivos y falsos positivos, y corregir las vulnerabilidades en el software. Una herramienta de SAST puede ser útil porque permite a los desarrolladores detectar vulnerabilidades antes de llegar a la fase de producción. Sin embargo, a diferencia de un test de penetración, una herramienta de SAST no podrá detectar vulnerabilidades en la configuración de producción de la aplicación.
Cifrado de datos transparente (“Transparent data encryption”): tipo de cifrado en reposo que suele aplicarse al almacenamiento de las bases de datos (es decir, el contenido de la base de datos en sí y sus archivos de registro). Con este método, el software de la base de datos administra las claves de cifrado y gestiona de modo transparente las operaciones de cifrado (al escribirse) y las operaciones de descifrado (al leerse).
TLS (“Seguridad de la capa de transporte”, por sus siglas en inglés): modelo de cifrado en tránsito que utiliza el cifrado para proteger los datos transmitidos por redes frente a interceptaciones en la ruta de red. TLS es la versión segura moderna de la tecnología obsoleta anterior llamada SSL.
2Fac (“Autenticación en dos pasos”, por sus siglas en inglés): sinónimo de autenticación multifactor. Almacén (“Vault”): sistema de administración secreto para datos confidenciales como claves de cifrado, identificadores de acceso y otras credenciales. Un almacén permite llevar un control estricto sobre quién puede acceder a los secretos que contiene y ofrece servicios adicionales, como el almacenamiento de registros de auditoría.
VM (“Máquina virtual”, por sus siglas en inglés): una máquina virtual es muy similar a un contenedor “hipervisor”, mientras que un contenedor de aplicaciones se ejecuta en un motor de contenedor. La diferencia principal es que una imagen de la máquina virtual contiene un sistema operativo, mientras que un contenedor de aplicaciones no. Tanto las máquinas virtuales como los contenedores de aplicaciones contienen aplicaciones y dependencias como bibliotecas.
VPC (“Nube privada virtual”, por sus siglas en inglés): término utilizado por AWS para referirse a un conjunto de recursos en la nube que se asemejan a una red tradicional en un centro de datos en los tiempos previos a la nube.
Vulnerabilidad: defecto en un sistema o aplicación del que alguien podría aprovecharse, por ejemplo, para leer datos que no tendría derecho a leer de otro modo.
VDP (“Programa de recompensas por detección de vulnerabilidades”, por sus siglas en inglés): enfoque en el que las organizaciones encargan informes de vulnerabilidades de seguridad a investigadores (a veces llamados “hackers éticos”) a fin de detectar y corregir riesgos de seguridad antes de que agentes maliciosos saquen provecho de ellos. Para que un VDP sea eficaz, necesita una serie de investigadores que busquen vulnerabilidades de manera activa, analistas de la organización que revisen la divulgación de datos entrantes y evalúen su prioridad, e ingenieros expertos en ciberseguridad que puedan crear e implementar las correcciones pertinentes.
Escaneo de vulnerabilidad (“Vulnerability scan”): enfoque que utiliza software para buscar vulnerabilidades en servidores, redes y aplicaciones. En comparación con los test de penetración, ejecutar un escaneo de vulnerabilidad es más económico y, por lo tanto, se puede ejecutar reiteradamente (p. ej., de manera mensual o trimestral). Sin embargo, los tests de penetración suelen detectar las vulnerabilidades que no encuentra un escaneo de vulnerabilidad debido a que los expertos evaluadores de penetración cuentan con aptitudes analíticas e instintos difíciles de encontrar en los métodos estrictamente automáticos. Consulta también “Escaneo de red”.
Aplicación web (“Webapp”): programa que se ejecuta en los navegadores y está compuesto por recursos como documentos HTML, código JavaScript, vídeos y otros archivos multimedia y CSS para la aplicación de estilos. A diferencia de las aplicaciones para móviles, que se instalan en un teléfono móvil desde una tienda de aplicaciones, una persona solo tiene que seleccionar una aplicación web en un servidor remoto desde su navegador (p. ej., www.facebook.com) sin tener que seguir los pasos de instalación.