Cuaderno de estrategias para abordar requisitos de seguridad comunes con Azure SQL Database y Azure SQL Managed Instance
Se aplica a: Azure SQL Database Azure SQL Managed Instance
En este documento se proporcionan los procedimientos recomendados para resolver los requisitos de seguridad comunes. No todos los requisitos se pueden aplicar a todos los entornos y debe consultar la base de datos y al equipo de seguridad qué características implementar.
Nota:
Microsoft Entra ID era conocido anteriormente como Azure Active Directory (Azure AD).
Resolución de requisitos de seguridad comunes
En este documento se proporcionan instrucciones sobre cómo resolver los requisitos de seguridad comunes para aplicaciones nuevas o existentes mediante Azure SQL Database e Instancia administrada de Azure SQL. Está organizado por áreas de seguridad de nivel alto. Para abordar amenazas específicas, consulte la sección Amenazas de seguridad comunes y posibles mitigaciones. Aunque algunas de las recomendaciones presentadas se pueden aplicar al migrar aplicaciones desde el entorno local a Azure, los escenarios de migración no son el foco de este documento.
Ofertas de implementación de Azure SQL Database que se describen en esta guía
- Azure SQL Database: bases de datos únicas y grupos elásticos en servidores
- Instancia administrada de Azure SQL
Ofertas de implementación que no se describen en esta guía
- Azure Synapse Analytics
- Máquinas virtuales de Azure SQL (IaaS)
- SQL Server
Público
Esta guía está pensada para clientes que se preguntan cómo proteger Azure SQL Database. Los roles interesados en este artículo de procedimientos recomendados incluyen, entre otros:
- Arquitectos de seguridad
- Administradores de seguridad
- Responsables de cumplimiento normativo
- Responsables de privacidad
- Ingenieros de seguridad
Cómo usar esta guía
Este documento está pensado como complemento de la documentación de seguridad de Azure SQL Database.
A menos que se indique lo contrario, se recomienda seguir todos los procedimientos recomendados que aparecen en cada sección para lograr el objetivo o requisito respectivo. Para cumplir con los procedimientos recomendados o los estándares de cumplimiento de seguridad específicos, los controles de cumplimiento normativo importantes se muestran en la sección Requisitos u Objetivos, siempre que corresponda. Estos son los estándares y reglamentaciones de seguridad a las que se hace referencia en este documento:
- FedRAMP: AC-04, AC-06
- SOC: CM-3, SDL-3
- ISO/IEC 27001: Control de acceso, Criptografía
- Procedimientos de Garantía de seguridad operacional (OSA) de Microsoft: Procedimiento n.° 1 a 6 y n.° 9
- Controles de seguridad NIST Special Publication 800-53: AC-5, AC-6
- PCI DSS: 6.3.2, 6.4.2
Tenemos previsto seguir actualizando las recomendaciones y los procedimientos recomendados que se describen aquí. Para proporcionar entradas o correcciones en este documento, use el vínculo Comentarios que se encuentra en la parte inferior de este artículo.
Authentication
La autenticación es el proceso por el cual se demuestra que el usuario es quien dice ser. Azure SQL Database e Instancia administrada de SQL admiten dos tipos de autenticación:
- Autenticación SQL
- Autenticación de Microsoft Entra
Nota:
Es posible que la autenticación con Microsoft Entra no se admita en todas las herramientas y aplicaciones de terceros.
Administración central de identidades
La administración de identidades central ofrece estas ventajas:
- Administre cuentas de grupo y controle los permisos de usuario sin duplicar los inicios de sesión en servidores, bases de datos e instancias administradas.
- Administración de permisos simplificada y flexible.
- Administración de aplicaciones a gran escala.
Cómo se implementan
- Use la autenticación de Microsoft Entra para la administración centralizada de identidades.
Procedimientos recomendados
Cree un inquilino de Microsoft Entra y cree usuarios para representar a los usuarios humanos y cree entidades de servicio para representar aplicaciones, servicios y herramientas de automatización. Las entidades de servicio son equivalentes a las cuentas de servicio de Windows y Linux.
Asigne derechos de acceso a los recursos a entidades de seguridad de Microsoft Entra mediante la asignación de grupos: cree grupos de Microsoft Entra, conceda acceso a los grupos y agregue miembros individuales a los grupos. En la base de datos, cree usuarios de base de datos independientes que asignen a los grupos de Microsoft Entra. Para asignar permisos dentro de la base de datos, agregue los usuarios de base de datos independientes que representan los grupos a los roles de base de datos, o bien concédales permisos directamente.
- Vea los artículos Configuración y administración de la autenticación de Microsoft Entra con SQL y Uso de la autenticación de Microsoft Entra con SQL.
Nota:
En SQL Managed Instance, también puede crear inicios de sesión que se asignen a entidades de seguridad de Microsoft Entra en la base de datos
master
. Vea CREATE LOGIN (Transact-SQL).El uso de grupos de Microsoft Entra simplifica la administración de permisos y tanto el propietario del grupo como el del recurso puede agregar o quitar miembros del grupo.
Cree un grupo independiente para los administradores de Microsoft Entra para cada servidor o instancia administrada.
Supervise los cambios de pertenencia a grupos de Microsoft Entra mediante informes de actividad de auditoría de Microsoft Entra ID.
En el caso de una instancia administrada, se necesita un paso adicional para crear un administrador de Microsoft Entra.
Nota:
- La autenticación de Microsoft Entra se registra en los registros de auditoría de Azure SQL, pero no en los registros de inicio de sesión de Microsoft Entra.
- Los permisos de Azure RBAC concedidos en Azure no se aplican a los permisos de Azure SQL Database ni de SQL Managed Instance. Estos permisos se deben crear o asignar manualmente con los permisos de SQL existentes.
- En el lado cliente, la autenticación de Microsoft Entra necesita acceso a Internet o, mediante una ruta definida por el usuario (UDR), a una red virtual.
- El token de acceso de Microsoft Entra se almacena en caché en el lado cliente y su vigencia depende de la configuración del token. Vea el artículo Configuración de duraciones de token en Microsoft Entra ID
- Para obtener instrucciones de solución de problemas de autenticación de Microsoft Entra, vea el siguiente blog: Solución de problemas de Microsoft Entra.
Autenticación multifactor de Microsoft Entra
Se menciona en: Procedimiento n.° 2 de OSA, Control de acceso (CA) de ISO
La autenticación multifactor de Microsoft Entra ayuda a proporcionar más seguridad al exigir más de una forma de autenticación.
Cómo se implementan
Habilite la autenticación multifactor en Microsoft Entra mediante el acceso condicional y use la autenticación interactiva.
La alternativa consiste en habilitar la autenticación multifactor para todo el inquilino de Microsoft Entra o el dominio de Active Directory.
procedimientos recomendados
Active el acceso condicional en Microsoft Entra ID (se necesita una suscripción Premium).
- Vea el artículo Acceso condicional en Microsoft Entra ID.
Cree grupos de Microsoft Entra y habilite la directiva de autenticación multifactor para grupos seleccionados mediante el acceso condicional de Microsoft Entra.
- Consulte el artículo Planeamiento de la implementación del Acceso condicional.
La autenticación multifactor se puede habilitar para todo el inquilino de Microsoft Entra o para Active Directory federado con el identificador de Microsoft Entra ID.
Use el modo de autenticación interactiva de Microsoft Entra para Azure SQL Database y Azure SQL Managed Instance, donde se solicita una contraseña de manera interactiva, seguida de la autenticación multifactor:
- Use la autenticación universal en SSMS. Vea el artículo Uso de la autenticación multifactor de Microsoft Entra con Azure SQL Database, SQL Managed Instance y Azure Synapse (compatibilidad de SSMS con la autenticación multifactor).
- Use la autenticación interactiva admitida en SQL Server Data Tools (SSDT). Vea el artículo Compatibilidad con Microsoft Entra ID en SQL Server Data Tools (SSDT).
- Use otras herramientas de SQL que admitan la autenticación multifactor.
- Compatibilidad con el Asistente de SSMS para exportar, extraer e implementar una base de datos
- SqlPackage: opción "/ua"
- Utilidad sqlcmd : opción -G (interactiva)
- Utilidad bcp: opción -G (interactiva)
Implemente las aplicaciones para conectarse a Azure SQL Database o Azure SQL Managed Instance mediante la autenticación interactiva con compatibilidad con la autenticación multifactor.
- Vea el artículo Conexión a Azure SQL Database con la la autenticación multifactor de Microsoft Entra.
Nota:
Este modo de autenticación requiere identidades basadas en el usuario. En los casos en los que se usa un modelo de identidad de confianza que omite la autenticación de usuarios individuales de Microsoft Entra (por ejemplo, mediante la identidad administrada para recursos de Azure), no se aplica la autenticación multifactor.
Minimización del uso de la autenticación de usuarios basada en contraseñas
Se menciona en: Procedimiento n.° 4 de OSA, Control de acceso (CA) de ISO
Los métodos de autenticación basados en contraseña son una forma menos segura de autenticación. Las credenciales pueden verse comprometidas o se pueden entregar por error.
Cómo se implementan
- Use la autenticación integrada de Microsoft Entra que elimina el uso de contraseñas.
procedimientos recomendados
- Use la autenticación de inicio de sesión único con credenciales de Windows. Federe el dominio de Active Directory local con Microsoft Entra ID y use la autenticación integrada de Windows (para máquinas unidas a un dominio con Microsoft Entra ID).
Minimización del uso de la autenticación de aplicaciones basada en contraseñas
Se menciona en: Procedimiento n.° 4 de OSA, Control de acceso (CA) de ISO
Cómo se implementan
- Habilite la identidad administrada de Azure. También puede usar la autenticación integrada o basada en certificados.
procedimientos recomendados
Use la autenticación basada en certificados para una aplicación.
- Consulte este ejemplo de código.
Use la autenticación de Microsoft Entra para una máquina unida a un dominio y un dominio federado integrado (vea la sección anterior).
Protección de contraseñas y secretos
En caso de que no se puedan evitar las contraseñas, asegúrese de que estén protegidas.
Cómo se implementan
- Use Azure Key Vault para almacenar contraseñas y secretos. Siempre que sea aplicable, use la autenticación multifactor para Azure SQL Database con usuarios de Microsoft Entra.
procedimientos recomendados
Si no es posible evitar contraseñas o secretos, almacene las contraseñas de usuario y los secretos de aplicación en Azure Key Vault y administre el acceso a través de las directivas de acceso de Key Vault.
Varios marcos de desarrollo de aplicaciones también pueden ofrecer mecanismos específicos del marco para proteger los secretos de la aplicación. Por ejemplo: Aplicación de ASP.NET Core.
Uso de la autenticación de SQL para las aplicaciones heredadas
La autenticación de SQL hace referencia a la autenticación de un usuario al conectarse a Azure SQL Database o Instancia administrada de SQL con el nombre de usuario y la contraseña. Se debe crear un inicio de sesión en cada servidor o instancia administrada y se debe crear un usuario en cada base de datos.
Cómo se implementan
- Use la autenticación de SQL.
procedimientos recomendados
Como administrador del servidor o la instancia, cree inicios de sesión y usuarios. A menos que use usuarios de bases de datos independientes con contraseñas, todas las contraseñas se almacenan en la
master
base de datos.
Administración de acceso
La administración de acceso (también denominada Autorización) es el proceso de controlar y administrar los privilegios y el acceso de los usuarios autorizados a Azure SQL Database o Instancia administrada de SQL.
Implementación del principio de privilegio mínimo
Se menciona en: FedRamp controla AC-06, NIST: AC-6, Procedimiento n.° 3 de OSA
El principio de privilegio mínimo indica que los usuarios no deben tener más privilegios de los necesarios para completar sus tareas. Para más información, consulte el artículo Just Enough Administration.
Cómo se implementan
Asigne solo los permisos necesarios para completar las tareas necesarias:
En SQL Database:
- Use permisos granulares y roles de bases de datos definidos por el usuario (o roles de servidor en SQL Managed Instance):
- Cree los roles necesarios
- Cree los usuarios necesarios
- Agregue usuarios como miembros a los roles
- Luego, asigne permisos a los roles.
- Asegúrese de no asignar usuarios a roles innecesarios.
- Use permisos granulares y roles de bases de datos definidos por el usuario (o roles de servidor en SQL Managed Instance):
En Azure Resource Manager:
- Use los roles integrados, si están disponibles, o roles personalizados de Azure y asigne los permisos necesarios.
procedimientos recomendados
Los procedimientos recomendados siguientes son opcionales, pero darán lugar a una mejor capacidad de administración y compatibilidad con la estrategia de seguridad:
Si es factible, empiece con el menor conjunto de permisos posible y comience a agregar permisos de uno en uno si es realmente necesario (y se justifica), en lugar del enfoque opuesto: eliminar los permisos paso a paso.
Evite asignar permisos a usuarios individuales. En su lugar, use roles (roles de base de datos o de servidor) de manera coherente. Los roles ayudan en gran medida a los informes y a la solución de problemas. (Azure RBAC solo admite la asignación de permisos a través de roles).
Cree y use roles personalizados con los permisos específicos necesarios. Roles típicos que se usan en la práctica:
- Implementación de seguridad
- Administrador
- Desarrollador
- Personal de soporte técnico
- Auditor
- Procesos automatizados
- Usuario final
Use roles integrados solo cuando los permisos de los roles coincidan exactamente con los que necesite el usuario. Puede asignar usuarios a varios roles.
Recuerde que los permisos del motor de base de datos se pueden aplicar dentro de los siguientes ámbitos (cuanto más pequeño sea el ámbito, menor será el impacto de los permisos concedidos):
- Servidor (roles especiales en la
master
base de datos) en Azure - Base de datos
- Esquema
- El uso de esquemas para conceder permisos en una base de datos es un procedimiento recomendado
- Objeto (tabla, vista, procedimiento, etc.)
Nota:
No se recomienda aplicar permisos en el nivel de objeto porque este nivel agrega complejidad innecesaria a la implementación global. Si decide usar permisos en el nivel de objeto, se deben documentar claramente. Lo mismo se aplica a los permisos en el nivel de columna, que se recomiendan incluso menos por las mismas razones. Tenga también en cuenta también que, de forma predeterminada, una instrucción DENY de nivel de tabla no invalida una instrucción GRANT de nivel de columna. Esto requeriría la activación de la configuración de un servidor que cumpla criterios comunes.
- Servidor (roles especiales en la
Lleve a cabo comprobaciones periódicas con Evaluación de vulnerabilidades (VA) para probar si hay demasiados permisos.
Implementación de la separación de tareas
Se menciona en: FedRamp: AC-04, NIST: AC-5, ISO: A.6.1.2, PCI 6.4.2, SOC: CM-3, SDL-3
La separación de tareas, que también se denomina "separación de obligaciones", describe el requisito de dividir las tareas confidenciales en varias tareas que se asignan a distintos usuarios. La separación de tareas ayuda a evitar infracciones de datos.
Cómo se implementan
Identifique el nivel necesario de separación de tareas. Ejemplos:
- Entre entornos de desarrollo/prueba y entornos de producción
- Tareas confidenciales de seguridad frente a tareas en el nivel de administración del Administrador de base de datos (DBA) frente a tareas del desarrollador.
- Ejemplos: Auditor, creación de la directiva de seguridad para la seguridad de nivel de fila (RLS), implementación de objetos de SQL Database con permisos de DDL.
Identifique una jerarquía completa de los usuarios (y procesos automatizados) que tienen acceso al sistema.
Cree roles según los grupos de usuarios necesarios y asigne permisos a los roles.
- En el caso de las tareas en el nivel de administración en Azure Portal o a través de la automatización de PowerShell, use los roles de Azure. Busque un rol integrado que coincida con el requisito o cree un rol personalizado de Azure con los permisos disponibles.
- Cree roles de servidor para las tareas de servidor (crear inicios de sesión y bases de datos) en una instancia administrada.
- Cree roles de base de datos para las tareas en el nivel de base de datos.
En el caso de ciertas tareas confidenciales, considere la posibilidad de crear procedimientos almacenados especiales firmados por un certificado para ejecutar las tareas en nombre de los usuarios. Una ventaja importante de los procedimientos almacenados firmados digitalmente es que, si se cambia el procedimiento, se quitan inmediatamente los permisos concedidos a la versión anterior del procedimiento.
Implemente el Cifrado de datos transparente (TDE) con claves administradas por el cliente en Azure Key Vault para habilitar la separación de tareas entre el propietario de los datos y el propietario de la seguridad.
Para asegurarse de que un DBA no pueda ver los datos que se consideran muy sensibles y pueda seguir realizando las tareas de DBA, puede usar Always Encrypted con separación de roles.
En los casos en los que no sea factible el uso de Always Encrypted, al menos sin costos importantes y esfuerzos que puedan hacer que el sistema quede casi inutilizable, es posible llegar a consensos y mitigar los riesgos mediante el uso de controles de compensación como:
- Intervención humana en los procesos.
- Pistas de auditoría: para más información sobre la auditoría, consulte Auditoría de eventos de seguridad críticos.
procedimientos recomendados
Asegúrese de que se usan cuentas distintas para los entornos de desarrollo/pruebas y de producción. Las distintas cuentas ayudan a cumplir con la separación de los sistemas de prueba y producción.
Evite asignar permisos a usuarios individuales. En su lugar, use roles (roles de base de datos o de servidor) de manera coherente. Tener roles ayuda en gran medida a los informes y a la solución de problemas.
Use roles integrados cuando los permisos coincidan exactamente con los permisos necesarios: si la unión de todos los permisos de varios roles integrados genera una coincidencia del 100 %, puede asignar también varios roles de manera simultánea.
Cree y use roles definidos por el usuario cuando los roles integrados concedan demasiados permisos o permisos insuficientes.
Las asignaciones de roles también se pueden realizar de manera temporal, algo que también se conoce como "separación dinámica de tareas" (DSD), ya sea dentro de los pasos de trabajo del Agente SQL en T-SQL o mediante Azure PIM para los roles de Azure.
Asegúrese de que los administradores de bases de datos no tengan acceso a las claves de cifrado o los almacenes de claves y que los administradores de seguridad con acceso a las claves no tengan, a su vez, acceso a la base de datos. El uso de la Administración extensible de claves (EKM) puede facilitar esta separación. Azure Key Vault se puede usar para implementar EKM.
Asegúrese siempre de tener una pista de auditoría para las acciones relacionadas con la seguridad.
Puede recuperar la definición de los roles integrados de Azure para ver los permisos usados y crear un rol personalizado basado en extractos y acumulaciones de estos a través de PowerShell.
Puesto que cualquier miembro del rol de base de datos db_owner puede cambiar una configuración de seguridad como Cifrado de datos transparente (TDE) o cambiar el SLO, es necesario tener cuidado al conceder esta pertenencia. No obstante, existen muchas tareas que requieren privilegios db_owner. Tareas como cambiar cualquier valor de base de datos (por ejemplo, opciones de la base de datos). La auditoría desempeña un papel clave en cualquier solución.
No es posible restringir los permisos de db_owner ni, por consiguiente, impedir que una cuenta administrativa vea datos de usuario. Si hay datos altamente confidenciales en una base de datos, Always Encrypted se pueden usar para impedir que db_owners o cualquier otro DBA puedan verlos.
Nota:
Lograr la separación de tareas (SoD) es desafiante para las tareas relacionadas con la seguridad o la solución de problemas. Otras áreas como el desarrollo y los roles de usuario final son más fáciles de separar. La mayoría de los controles relacionados con el cumplimiento permiten el uso de funciones de control alternativas, como la auditoría, cuando otras soluciones no resultan prácticas.
En el caso de los lectores que quieran profundizar en SoD, se recomiendan los recursos siguientes:
Para Azure SQL Database y SQL Managed Instance:
Para la administración de recursos de Azure:
Realización de revisiones de código periódicas
Se menciona en: PCI: 6.3.2, SOC: SDL-3
La separación de tareas no se limita a los datos de una base de datos, sino que incluye el código de la aplicación. El código malintencionado puede eludir los controles de seguridad. Antes de implementar el código personalizado en el entorno de producción, es esencial revisar lo que se está implementando.
Cómo se implementan
Use una herramienta de base de datos como Azure Data Studio que admita el control de código fuente.
Implemente un proceso de implementación de código separado.
Antes de confirmar en la rama principal, una persona (que no sea el creador del código mismo) tiene que inspeccionar el código para detectar posibles riesgos de elevación de privilegios, así como modificaciones de datos malintencionados como protección contra fraudes y accesos no autorizados. Esto se puede hacer mediante el uso de mecanismos de control de código fuente.
procedimientos recomendados
Normalización: ayuda a implementar un procedimiento estándar que se va a seguir para cualquier actualización de código.
La Evaluación de vulnerabilidades contiene reglas que comprueban si hay permisos excesivos, el uso de algoritmos de cifrado antiguos y otros problemas de seguridad dentro de un esquema de base de datos.
Se pueden realizar más comprobaciones en un entorno de control de calidad o de prueba mediante Advanced Threat Protection que examina el código que es vulnerable a la inyección de código SQL.
Ejemplos de lo que se debe observar:
- La creación de un usuario o el cambio de la configuración de seguridad desde una implementación automatizada de actualización de código SQL.
- Un procedimiento almacenado que, en función de los parámetros proporcionados, actualiza un valor monetario de una celda de una manera no conforme.
Asegúrese de que la persona que realiza la revisión es un individuo distinto del autor del código de origen y experto en revisiones de código y codificación segura.
Asegúrese de conocer todos los orígenes de los cambios de código. El código puede estar en scripts T-SQL. Puede tratarse de comandos ad hoc que se ejecutarán o implementarán en forma de vistas, funciones, desencadenadores y procedimientos almacenados. Puede formar parte de las definiciones del trabajo (pasos) del Agente SQL. También se puede ejecutar desde paquetes SSIS, Azure Data Factory y otros servicios.
Protección de los datos
La protección de datos es un conjunto de funcionalidades para proteger la información importante del riesgo mediante cifrado o ofuscación.
Nota:
Microsoft certifica que Azure SQL Database e Instancia administrada de SQL cumplen con el nivel 1 de FIPS 140-2. Esto se hace después de comprobar el uso estricto de los algoritmos aceptables de nivel 1 de FIPS 140-2 y las instancias validadas de nivel 1 de FIPS 140-2 de esos algoritmos, incluida la coherencia con las longitudes de clave, la administración de claves, la generación de claves y el almacenamiento de claves necesarios. Esta atestación está pensada para permitir que nuestros clientes respondan a la necesidad o al requisito de usar las instancias validadas de nivel 1 de FIPS 140-2 en el procesamiento de datos o la entrega de sistemas o aplicaciones. Definimos los términos "Conforme con el nivel 1 de FIPS 140-2" y "Cumplimiento con el nivel 1 de FIPS 140-2" que se usan en la afirmación anterior para demostrar su aplicabilidad prevista según el uso del término "Validado para el nivel 1 de FIPS 140-2" de la administración pública de los Estados Unidos y Canadá.
Cifrado de los datos en tránsito
Se menciona en: Procedimiento n.° 6 de OSA, familia de control de ISO: Cryptography
Protege los datos mientras se mueven entre el cliente y el servidor. Consulte Seguridad de las redes.
Cifrado de datos en reposo
Se menciona en: Procedimiento n.° 6 de OSA, familia de control de ISO: Cryptography
El cifrado en reposo es la protección criptográfica de los datos cuando persisten en archivos de copias de seguridad, registros y bases de datos.
Cómo se implementan
- El Cifrado de datos transparente (TDE) con claves administradas por el servicio están habilitadas de manera predeterminada para todas las bases de datos creadas después de 2017 en Azure SQL Database e Instancia administrada de SQL.
- En una instancia administrada, si la base de datos se crea a partir de una operación de restauración mediante un servidor local, se respetará la configuración de TDE de la base de datos original. Si la base de datos original no tiene habilitado TDE, se recomienda que TDE se active manualmente para la instancia administrada.
procedimientos recomendados
No almacene datos que requieran cifrado en reposo en la
master
base de datos. Lamaster
base de datos no se puede cifrar con TDE.Use claves administradas por el cliente en Azure Key Vault si necesita mayor transparencia y control granular sobre la protección de TDE. Azure Key Vault permite revocar los permisos en cualquier momento para representar la base de datos como inaccesible. Puede administrar de forma centralizada los protectores de TDE junto con otras claves, o bien rotar el protector de TDE según su propia programación mediante Azure Key Vault.
Si usa claves administradas por el cliente en Azure Key Vault, siga los artículos Directrices para configurar TDE con Azure Key Vault y Configuración de la recuperación ante desastres con localización geográfica con Azure Key Vault.
Nota
Algunos elementos considerados contenido del cliente, como nombres de tablas, nombres de objetos y nombres de índices, se pueden transmitir en archivos de registro para soporte técnico y solución de problemas por parte de Microsoft.
Protección de datos confidenciales en uso de usuarios no autorizados con privilegios elevados
Los datos en uso son los datos almacenados en memoria del sistema de la base de datos durante la ejecución de consultas SQL. Si la base de datos almacena información confidencial, es posible que la organización deba asegurarse de que los usuarios con privilegios elevados no puedan ver datos confidenciales en la base de datos. Los usuarios con privilegios elevados, como los operadores de Microsoft o los administradores de bases de datos de su organización, deben ser capaces de administrar la base de datos, pero no de ver ni extraer datos confidenciales de la memoria del proceso de SQL o mediante una consulta a la base de datos.
Las directivas que determinan qué datos son confidenciales y si estos datos se deben cifrar en la memoria y si los administradores no deben tener acceso a ellos en texto sin formato, son específicas tanto de la organización como de las regulaciones de cumplimiento que se deben cumplir. Consulte el requisito relacionado: Identificación y etiquetado de datos confidenciales.
Cómo se implementan
- Use Always Encrypted para asegurarse de que los datos confidenciales no se exponen en texto sin formato en Azure SQL Database o Instancia administrada de SQL, incluso en la memoria o en uso. Always Encrypted protege los datos de los administradores de bases de datos (DBA) y los administradores de la nube (o actores no válidos que pueden suplantar a usuarios con privilegios elevados pero no autorizados) y proporciona más control sobre quién puede acceder a los datos.
procedimientos recomendados
Always Encrypted no es un sustituto para cifrar los datos en reposo (TDE) o en tránsito (SSL/TLS). Always Encrypted no deben usarse para datos no confidenciales con el fin de minimizar el rendimiento y el impacto de la funcionalidad. Se recomienda usar Always Encrypted junto con TDE y Seguridad de la capa de transporte (TLS) para una protección integral de los datos en reposo, en tránsito y en uso.
Evalúe el impacto de cifrar las columnas de datos confidenciales identificadas antes de implementar Always Encrypted en una base de datos de producción. En general, Always Encrypted reduce la funcionalidad de las consultas en columnas cifradas y tiene otras limitaciones, que se enumeran en Always Encrypted: detalles de las características. Por consiguiente, es posible que tenga que rediseñar la aplicación para volver a implementar la funcionalidad (que una consulta no admite) en el lado del cliente o refactorizar el esquema de la base de datos, lo que incluye las definiciones de los procedimientos, funciones, vistas y desencadenadores almacenados. Si no cumplen las restricciones y limitaciones de Always Encrypted, es posible que las aplicaciones existentes no funcionen con columnas cifradas. Aunque el ecosistema de herramientas, productos y servicios de Microsoft que admiten Always Encrypted está creciendo, hay una serie de ellos que no funciona con columnas cifradas. El cifrado de una columna también puede afectar al rendimiento de las consultas, en función de las características de la carga de trabajo.
Administre las claves de Always Encrypted con la separación de roles si usa Always Encrypted para proteger los datos de DBA malintencionados. Con la separación de roles, un administrador de seguridad crea las claves físicas. El DBA crea objetos de metadatos de clave maestra de columna y de cifrado de columna, que describen las claves físicas en la base de datos. Durante este proceso, el administrador de seguridad no necesita tener acceso a la base de datos y el DBA no necesita tener acceso a las claves físicas en texto sin formato.
- Consulte el artículo Administración de claves con separación de roles para detalles.
Almacene las claves maestras de columna en Azure Key Vault para facilitar la administración. Evite usar el Almacén de certificados de Windows (y, en general, las soluciones de almacén de claves distribuidas, a diferencia de las soluciones de administración de claves centrales) que dificultan la administración de claves.
Piense detenidamente en las ventajas y desventajas de usar varias claves (clave maestra de columna o claves de cifrado de columna). Mantenga reducido el número de claves para reducir el costo de administración de claves. Una clave maestra de columna y una clave de cifrado de columna por base de datos suele ser suficiente en entornos de estado estable (no en medio de una rotación de claves). Es posible que necesite claves adicionales si tiene grupos de usuarios diferentes, que usan claves diferentes y acceden a datos diferentes.
Rote las claves maestras de columna según los requisitos de cumplimiento. Si también necesita rotar las claves de cifrado de columna, considere la posibilidad de usar el cifrado en línea para minimizar el tiempo de inactividad de la aplicación.
- Consulte el artículo Consideraciones sobre rendimiento y disponibilidad.
Use el cifrado determinista si es necesario admitir cálculos (igualdad) en los datos. De lo contrario, use el cifrado aleatorio. Evite usar el cifrado determinista para conjuntos de datos de baja entropía o conjuntos de datos con distribución conocida públicamente.
Si le preocupa el acceso de terceros a los datos de manera legal y sin su consentimiento, asegúrese de que todas las aplicaciones y herramientas que tienen acceso a las claves y los datos en texto no cifrado se ejecuten fuera de la nube de Microsoft Azure. Sin acceso a las claves, el tercero no tendrá forma de descifrar los datos a menos que eludan el cifrado.
Always Encrypted no admite fácilmente la concesión de acceso temporal a las claves (y a los datos protegidos). Por ejemplo, si necesita compartir las claves con un DBA para permitir que el DBA realice algunas operaciones de limpieza en datos confidenciales y cifrados. La única forma de revocar de forma confiable el acceso a los datos del DBA será girar las claves de cifrado de columnas y las claves maestras de columna que protegen los datos, lo que es una operación costosa.
Para acceder a los valores de texto no cifrado de las columnas cifradas, un usuario debe tener acceso a la Clave maestra de columna (CMK) que protege las columnas, que están configuradas en el almacén de claves que contiene la CMK. El usuario también debe tener los permisos de base de datos VIEW ANY COLUMN MASTER KEY DEFINITION y VIEW ANY COLUMN ENCRYPTION KEY DEFINITION.
Controle el acceso de los usuarios de la aplicación a los datos confidenciales a través del cifrado
El cifrado se puede usar como una manera de asegurarse de que solo usuarios específicos de la aplicación que tengan acceso a las claves criptográficas puedan ver o actualizar los datos.
Cómo se implementan
- Use Cifrado de nivel de celda (CLE). Para detalles, consulte el artículo Cifrar una columna de datos.
- Use Always Encrypted, pero tenga en cuenta sus limitaciones. Las limitaciones se indican a continuación.
Procedimientos recomendados:
Al usar CLE:
Controle el acceso a las claves a través de permisos y roles de SQL.
Use AES (se recomienda AES 256) para el cifrado de datos. Los algoritmos, como RC4, DES y TripleDES, están en desuso y no se deben utilizar debido a vulnerabilidades conocidas.
Proteja las claves simétricas con certificados o claves asimétricos (no contraseñas) para evitar el uso de 3DES.
Tenga cuidado al migrar una base de datos mediante el Cifrado de nivel de celda a través de Export/Import (archivos bacpac).
- Consulte el artículo de recomendaciones para usar el cifrado de nivel de celda en Azure SQL Database para saber cómo evitar perder claves al migrar datos y otras instrucciones de procedimientos recomendados.
Tenga en cuenta que Always Encrypted está diseñado principalmente para proteger los datos confidenciales en uso de los usuarios con privilegios elevados de Azure SQL Database (operadores de nube, DBA). Consulte Protección de datos confidenciales en uso de usuarios no autorizados con privilegios elevados. Tenga en cuenta los siguientes desafíos al usar Always Encrypted para proteger los datos de los usuarios de la aplicación:
- De manera predeterminada, todos los controladores cliente de Microsoft que admiten Always Encrypted mantienen una caché global (una por aplicación) de claves de cifrado de columnas. Una vez que un controlador cliente adquiere una clave de cifrado de columna de texto no cifrado poniéndose en contacto con un almacén de claves que contiene una clave maestra de columna, la clave de cifrado de columna de texto no cifrado se almacena en caché. Esto dificulta el aislamiento de los datos de los usuarios de una aplicación de varios usuarios. Si la aplicación suplanta a los usuarios finales al interactuar con un almacén de claves (como Azure Key Vault), una vez que la consulta de un usuario rellena la memoria caché con una clave de cifrado de columna, una consulta posterior que requiera la misma clave, pero que la desencadene otro usuario, utilizará el clave almacenada en caché. El controlador no llamará al almacén de claves y no comprobará si el segundo usuario tiene permiso de acceso a la clave de cifrado de columna. Como resultado, el usuario puede ver los datos cifrados aunque no tenga acceso a las claves. Para lograr el aislamiento de usuarios en una aplicación de varios usuarios, puede deshabilitar el almacenamiento en caché de claves de cifrado de columna. Al deshabilitar el almacenamiento en caché, se producirán sobrecargas de rendimiento adicionales, ya que el controlador deberá ponerse en contacto con el almacén de claves para cada operación de cifrado o descifrado de datos.
Protección de datos contra la visualización no autorizada por parte de los usuarios de la aplicación al tiempo que se conserva el formato de los datos
Otra técnica para impedir que usuarios no autorizados vean datos es ofuscar o enmascarar los datos al tiempo que se conservan los tipos de datos y los formatos para asegurarse de que las aplicaciones de usuario puedan seguir controlando y mostrando los datos.
Cómo se implementan
- Use el Enmascaramiento dinámico de datos para ofuscar las columnas de las tablas.
Nota:
Always Encrypted no funciona con el Enmascaramiento dinámico de datos. No es posible cifrar y enmascarar la misma columna, lo que implica que debe dar prioridad a la protección de los datos en uso en comparación con enmascarar los datos de los usuarios de la aplicación a través del Enmascaramiento dinámico de datos.
procedimientos recomendados
Nota:
El Enmascaramiento dinámico de datos no se puede usar para proteger los datos de usuarios con privilegios elevados. Las directivas de enmascaramiento no se aplican a los usuarios con acceso administrativo como db_owner.
No permita a los usuarios de la aplicación ejecutar consultas ad hoc (ya que es posible que encuentren una solución alternativa para el Enmascaramiento dinámico de datos).
- Para detalles, consulte el artículo Omisión del enmascaramiento con técnicas de fuerza bruta o inferencia.
Use una directiva de control de acceso adecuada (a través de RLS, roles y permisos de SQL) para limitar los permisos de usuario para hacer actualizaciones en las columnas enmascaradas. La creación de una máscara en una columna no impide que se efectúen actualizaciones en ella. Los usuarios que reciban datos enmascarados cuando realicen una consulta en una columna enmascarada podrán actualizar los datos si cuentan con permisos de escritura.
La función Enmascaramiento dinámico de datos no conserva las propiedades estadísticas de los valores enmascarados. Esto puede afectar a los resultados de la consulta (por ejemplo, las consultas que contienen predicados de filtrado o combinaciones en los datos enmascarados).
Seguridad de las redes
La seguridad de las redes hace referencia a los controles de acceso y a los procedimientos recomendados para proteger los datos en tránsito a Azure SQL Database.
Configuración de mi cliente para una conexión segura a SQL Database o Instancia administrada de SQL
Procedimientos recomendados para impedir que las máquinas cliente y las aplicaciones con vulnerabilidades conocidas (por ejemplo, que utilizan protocolos y conjuntos de cifrado TLS) se conecten a Azure SQL Database e Instancia administrada de SQL.
Cómo se implementan
- Asegúrese de que las máquinas cliente que se conectan a Azure SQL Database y SQL Managed Instance usan la última versión de Seguridad de la capa de transporte (TLS).
procedimientos recomendados
Aplique una versión mínima de TLS en el nivel de servidor lógico en Azure o SQL Managed Instance con la configuración mínima de la versión TLS. Se recomienda establecer la versión mínima de TLS en 1.2, después de realizar pruebas para confirmar que las aplicaciones la admiten. TLS 1.2 incluye correcciones para vulnerabilidades encontradas en versiones anteriores.
Configure todas las aplicaciones y herramientas para conectarse a SQL Database con cifrado habilitado
- Encrypt = On, TrustServerCertificate = Off (o equivalente con controladores que no son de Microsoft).
Si la aplicación usa un controlador que no admite TLS o que admite una versión anterior de TLS, reemplace el controlador, si es posible. Si no es posible, evalúe detenidamente los riesgos de seguridad.
- Para reducir los vectores de ataque a través de vulnerabilidades en SSL 2.0, SSL 3.0, TLS 1.0 y TLS 1.1, deshabilítelos en las máquinas cliente que se conectan a Azure SQL Database por configuración del Registro de Seguridad de la capa de transporte (TLS).
- Compruebe los conjuntos de cifrado disponibles en el cliente: Conjuntos de cifrado en TLS/SSL (Schannel SSP). En concreto, deshabilite 3DES para configurar el orden de los conjuntos de cifrado TLS.
Minimización de la superficie expuesta a ataques
Minimice el número de características susceptibles de sufrir el ataque de un usuario malintencionado. Implemente controles de acceso a la red para Azure SQL Database.
Se menciona en: Procedimiento n.° 5 de OSA
Cómo se implementan
En SQL Database:
- Establezca Permitir el acceso a servicios de Azure en OFF en el nivel de servidor.
- Utilice puntos de conexión de servicio de red virtual y reglas de firewall de red virtual.
- Usar vínculo privado.
En SQL Managed Instance:
- Siga las instrucciones que aparece en Requisitos de red.
procedimientos recomendados
Restringir el acceso a Azure SQL Database e Instancia administrada de SQL mediante la conexión en un punto de conexión privado (por ejemplo, mediante una ruta de acceso a datos privada):
- Una instancia administrada se puede aislar dentro de una red virtual para evitar el acceso externo. Las aplicaciones y herramientas que se encuentran en la misma red virtual o en una red virtual emparejada en la misma región podrían acceder a ella directamente. Las aplicaciones y herramientas que se encuentran en una región distinta podrían usar la conexión de red virtual a red virtual o el emparejamiento de circuito ExpressRoute para establecer la conexión. El cliente debe usar los grupos de seguridad de red (NSG) para restringir el acceso a través del puerto 1433 solo a los recursos que requieren acceso a una instancia administrada.
- Para una instancia de SQL Database, use la característica Private Link, que proporciona una dirección IP privada dedicada para el servidor dentro de la red virtual. También puede usar puntos de conexión de servicio de red virtual con reglas de firewall de red virtual para restringir el acceso a los servidores.
- Los usuarios móviles deben usar conexiones VPN de punto a sitio para conectarse a través de la ruta de acceso a los datos.
- Los usuarios conectados a su red local deben usar la conexión VPN de sitio a sitio o ExpressRoute para conectarse a través de la ruta de acceso a los datos.
Puede acceder a Azure SQL Database e Instancia administrada de SQL mediante la conexión a un punto de conexión público (por ejemplo, mediante una ruta de acceso a datos pública). Se deben tener en cuenta los procedimientos recomendados siguientes:
- Para un servidor de SQL Database, use las reglas de firewall de IP para restringir el acceso solo a direcciones IP autorizadas.
- En el caso de SQL Managed Instance, use los grupos de seguridad de red (NSG) para restringir el acceso a través del puerto 3342 solo a los recursos necesarios. Para obtener más información, consulte Uso de una instancia administrada de forma segura con puntos de conexión públicos.
Nota:
El punto de conexión público de SQL Managed Instance no está habilitado de forma predeterminada y debe habilitarse explícitamente. Si la directiva de la empresa no permite usar puntos de conexión públicos, use Azure Policy para impedir que se habiliten los puntos de conexión públicos en primer lugar.
Configure los componentes de Redes:
- Siga los Procedimientos recomendados de seguridad de la red de Azure.
- Planee la configuración de las redes virtuales según los procedimientos recomendados que se describen en las Preguntas más frecuentes (P+F) acerca de Azure Virtual Network.
- Segmente una red virtual en varias subredes y asigne recursos para un rol similar a la misma subred (por ejemplo, recursos front-end frente a recursos back-end).
- Use los grupos de seguridad de red (NSG) para controlar el tráfico entre las subredes dentro del límite de la red virtual de Azure.
- Habilite Azure Network Watcher de su suscripción para supervisar el tráfico de red entrante y saliente.
Configuración de Power BI para proteger las conexiones a Azure SQL Database o Instancia administrada de SQL
procedimientos recomendados
Para Power BI Desktop, utilice la ruta de acceso a datos privada siempre que sea posible.
Asegúrese de que Power BI Desktop se está conectando mediante TLS 1.2 estableciendo la clave del Registro en la máquina equipo cliente según la configuración del Registro de Seguridad de la capa de transporte (TLS).
Restrinja el acceso a los datos para usuarios específicos a través de la Seguridad de nivel de fila (RLS) con Power BI.
Para el servicio Power BI, use la puerta de enlace de datos local, teniendo en cuenta las limitaciones y consideraciones.
Configuración de App Service para proteger las conexiones a Azure SQL Database o Instancia administrada de SQL
procedimientos recomendados
En el caso de una aplicación web simple, la conexión a través de un punto de conexión público requiere que la opción Allow Azure Services (Permitir servicios de Azure) esté establecida en ON.
Integre su aplicación con una instancia de Azure Virtual Network para la conectividad de la ruta de acceso a datos privada con una instancia administrada. De manera opcional, también puede implementar una aplicación web con instancias de App Service Environment (ASE).
En el caso de la aplicación web con ASE o la aplicación web integrada de red virtual con conexión a una base de datos en SQL Database, puede usar los puntos de conexión de servicio de red virtual y las reglas de firewall de red virtual para limitar el acceso desde una red virtual y una subred específicas. A continuación, establezca Allow Azure Services (Permitir servicios de Azure) en OFF. También puede conectar ASE a una instancia administrada en Instancia administrada de SQL a través de una ruta de acceso a datos privada.
Asegúrese de que la aplicación web está configurada según el artículo Procedimientos recomendados para proteger aplicaciones web y móviles de plataforma como servicio (PaaS) con Azure App Service.
Instale Firewall de aplicaciones web (WAF) para proteger la aplicación web de vulnerabilidades y aprovechamientos comunes.
Configuración del hospedaje de máquina virtual de Azure para proteger las conexiones a SQL Database o SQL Managed Instance
procedimientos recomendados
Use una combinación de reglas de permiso y denegación en los grupos de seguridad de red de las máquinas virtuales de Azure para controlar a qué regiones se puede acceder desde la máquina virtual.
Asegúrese de que la máquina virtual está configurada según el artículo Procedimientos de seguridad recomendados para cargas de trabajo de IaaS de Azure.
Asegúrese de que todas las máquinas virtuales están asociadas con una red virtual y una subred específicas.
Evalúe si necesita la ruta predeterminada 0.0.0.0/Internet según las instrucciones que se encuentran en Información acerca de la tunelización forzada.
- Si es así (por ejemplo, subred de front-end), mantenga la ruta predeterminada.
- Si no (por ejemplo, subred de back-end o nivel intermedio), habilite la tunelización forzada para que ningún tráfico pase a través de Internet para llegar a un entorno local (que también se conoce como entre locales).
Implemente Rutas predeterminadas opcionales si usa el emparejamiento o la conexión al entorno local.
Implemente rutas definidas por el usuario si necesita enviar todo el tráfico de la red virtual a una aplicación virtual de red para la inspección de paquetes.
Use puntos de conexión de servicio de red virtual para el acceso seguro a los servicios de PaaS, como Azure Storage, a través de la red troncal de Azure.
Protección contra ataques de denegación de servicio distribuido (DDoS)
Los ataques de denegación de servicio distribuido (DDoS) son intentos por parte de un usuario malintencionado de enviar una avalancha de tráfico de red a Azure SQL Database con el objetivo de sobrecargar la infraestructura de Azure y hacer que rechace la carga de trabajo y los inicios de sesión válidos.
Se menciona en: Procedimiento n.° 9 de OSA
Cómo se implementan
La protección contra DDoS está habilitada de manera automática como parte de la plataforma de Azure. Incluye la supervisión del tráfico siempre activa y la mitigación en tiempo real de los ataques en el nivel de red en puntos de conexión públicos.
Use Azure DDoS Protection para supervisar las direcciones IP públicas asociadas a los recursos implementados en redes virtuales.
Utilice Advanced Threat Protection en Azure SQL Database para detectar ataques de denegación de servicio (DoS) contra las bases de datos.
procedimientos recomendados
Siga los procedimientos que se describen en Minimización de la superficie expuesta a ataques para minimizar las amenazas de ataques DDoS.
La alerta Credenciales de SQL por fuerza bruta de Advanced Threat Protection ayuda a detectar los ataques por fuerza bruta. En algunos casos, la alerta puede incluso distinguir las cargas de trabajo de pruebas de penetración.
En el caso de las máquinas virtuales de Azure que hospedan aplicaciones que se conectan a SQL Database:
- Siga las recomendaciones para restringir el acceso a través de puntos de conexión accesibles desde Internet en Microsoft Defender for Cloud.
- Use los conjuntos de escalado de máquinas virtuales para ejecutar varias instancias de la aplicación en máquinas virtuales de Azure.
- Deshabilite RDP y SSH desde Internet para evitar los ataques por fuerza bruta.
Supervisión, registro y auditoría
En esta sección se hace referencia a las funcionalidades que lo ayudan a detectar actividades anómalas que indican intentos inusuales y potencialmente dañinos para acceder o vulnerar las bases de datos. También se describen los procedimientos recomendados para configurar la auditoría de base de datos a fin de realizar un seguimiento de los eventos de base de datos y capturarlos.
Protección de las bases de datos frente a ataques
La protección de amenazas avanzada le permite detectar posibles amenazas y responder a ellas si fuera necesario, gracias a las alertas de seguridad sobre actividades anómalas que se proporcionan.
Cómo se implementan
- Use Advanced Threat Protection para SQL para detectar intentos inusuales y potencialmente dañinos para acceder o vulnerar las bases de datos, entre los que se incluyen los siguientes:
- Ataque por inyección de código SQL.
- Robo o pérdida de credenciales.
- Abuso de privilegios.
- Filtración de datos.
procedimientos recomendados
Configure Microsoft Defender para SQL para un servidor o una instancia administrada concretos. También puede configurar Microsoft Defender para SQL para todos los servidores y las instancias administradas de una suscripción. Para ello, habilite Microsoft Defender for Cloud.
Para obtener una experiencia de investigación completa, se recomienda habilitar SQL Database Auditing. Con la auditoría, puede realizar un seguimiento de los eventos de base de datos y escribirlos en un registro de auditoría en una cuenta de Azure Storage o en el área de trabajo de Azure Log Analytics.
Auditoría de eventos de seguridad críticos
El seguimiento de los eventos de base de datos ayuda a comprender la actividad de las bases de datos. Puede obtener información sobre discrepancias y anomalías que pueden indicar problemas en el negocio o infracciones de seguridad sospechosas. También habilita y facilita el cumplimiento de los estándares de cumplimiento.
Cómo se implementan
Habilite Auditoría de SQL Database o Auditoría de Instancia administrada para realizar un seguimiento de los eventos de base de datos y escribirlos en un registro de auditoría en una cuenta de Azure Storage, en un área de trabajo de Log Analytics (versión preliminar) o en Event Hubs (versión preliminar).
Los registros de auditoría se pueden escribir en una cuenta de Azure Storage, en un área de trabajo de Log Analytics para su consumo en registros de Azure Monitor o en un centro de eventos para consumirlos mediante el centro de eventos. Puede configurar cualquier combinación de estas opciones, y los registros de auditoría se escribirán en cada una.
procedimientos recomendados
- Al configurar Auditoría de SQL Database en el servidor o Auditoría de Instancia administrada para auditar los eventos, se auditarán todas las bases de datos existentes y recién creadas en ese servidor.
- De manera predeterminada, la directiva de auditoría incluye todas las acciones (consultas, procedimientos almacenados e inicios de sesión correctos y erróneos) en las bases de datos, lo que puede dar lugar a un gran volumen de registros de auditoría. Se recomienda a los clientes configurar la auditoría para diferentes tipos de acciones y grupos de acciones mediante PowerShell. Configurarla ayudará a controlar el número de acciones auditadas y a minimizar el riesgo de pérdida de eventos. Las configuraciones de auditoría personalizadas permiten a los clientes capturar solo los datos de auditoría necesarios.
- Los registros de auditoría se pueden consumir directamente en Azure Portal o desde la ubicación de almacenamiento que se configuró.
Nota:
La habilitación de la auditoría en Log Analytics incurrirá en costos en función de las tarifas de ingesta. Tenga en cuenta el costo asociado al uso de esta opción, o considere la posibilidad de almacenar los registros de auditoría en una cuenta de almacenamiento de Azure.
Recursos adicionales
Protección de los registros de auditoría
Restrinja el acceso a la cuenta de almacenamiento para permitir la separación de tareas y separar a los DBA de los auditores.
Cómo se implementan
- Al guardar los registros de auditoría en Azure Storage, asegúrese de que el acceso a la cuenta de almacenamiento está restringido a los principios de seguridad mínimos. Controle quién tiene acceso a la cuenta de almacenamiento.
- Para más información, consulte Autorización de acceso a Azure Storage.
procedimientos recomendados
Controlar el acceso al destino de auditoría es un concepto clave en la separación de los DBA de los auditores.
Al auditar el acceso a datos confidenciales, considere la posibilidad de proteger los datos con el cifrado de datos para evitar la fuga de información al auditor. Para más información, consulte la sección Protección de datos confidenciales en uso de usuarios no autorizados con privilegios elevados.
Administración de seguridad
En esta sección se describen los distintos aspectos y procedimientos recomendados para administrar su posición de seguridad de las bases de datos. Incluye procedimientos recomendados para garantizar que las bases de datos están configuradas para cumplir con los estándares de seguridad, para detectar y para clasificar y realizar el seguimiento del acceso a datos potencialmente confidenciales en las bases de datos.
Comprobación de que las bases de datos están configuradas para cumplir con los procedimientos recomendados de seguridad
Mejore de manera proactiva la seguridad de la base de datos mediante la detección y corrección de posibles vulnerabilidades de la base de datos.
Cómo se implementan
- Habilite la Evaluación de vulnerabilidades de SQL (VA) para examinar la base de datos en busca de problemas de seguridad y para que se ejecute periódicamente en las bases de datos.
procedimientos recomendados
Para empezar, ejecute VA en sus bases de datos y realice una iteración mediante la corrección de las comprobaciones con errores que se oponen a los procedimientos recomendados de seguridad. Configure líneas de base para las configuraciones aceptables hasta obtener un examen limpio o superar todas las comprobaciones.
Configure exámenes periódicos recurrentes para que se ejecuten una vez a la semana y configure al usuario correspondiente para que reciba los correos electrónicos de resumen.
Revise el resumen de VA después de cada examen semanal. En el caso de las vulnerabilidades detectadas, evalúe el desfase del resultado del examen anterior y determine si se debe resolver la comprobación. Revise si hay una razón legítima para el cambio en la configuración.
Resuelva las comprobaciones y actualice las líneas de base cuando proceda. Cree elementos de vale para resolver acciones y realizar un seguimiento de estos hasta que se resuelvan.
Recursos adicionales
- Evaluación de vulnerabilidad de SQL
- El servicio de evaluación de vulnerabilidad de SQL le ayuda a identificar los puntos vulnerables de la base de datos
Identificación y etiquetado de datos confidenciales
Detecte las columnas que posiblemente contengan datos confidenciales. Lo que se considera datos confidenciales depende en gran medida del cliente, del reglamento de cumplimiento, etc. y los deben evaluar los usuarios a cargo de esos datos. Clasifique las columnas para utilizar escenarios avanzados de protección y auditoría basadas en la confidencialidad.
Cómo se implementan
- Use Clasificación y detección de datos de SQL para detectar, clasificar, etiquetar y proteger los datos confidenciales en las bases de datos.
- Vea las recomendaciones de clasificación creadas por la detección automatizada en el panel Clasificación y detección de datos SQL. Acepte las clasificaciones pertinentes, de modo que los datos confidenciales se etiqueten de forma persistente con las etiquetas de clasificación.
- Agregue manualmente las clasificaciones para los campos de datos confidenciales adicionales que no haya descubierto el mecanismo automatizado.
- Para obtener más información, consulte Clasificación y detección de datos de SQL.
procedimientos recomendados
Supervise periódicamente el panel de clasificación para obtener una evaluación precisa del estado de la clasificación de la base de datos. Un informe sobre el estado de la clasificación de la base de datos se puede exportar o imprimir para compartirlo con fines de cumplimiento y auditoría.
Supervise continuamente el estado de los datos confidenciales recomendados en Evaluación de vulnerabilidad de SQL. Realice un seguimiento de la regla de detección de datos confidenciales e identifique cualquier desfase en las columnas recomendadas para la clasificación.
Use la clasificación de una manera que esté adaptada a las necesidades específicas de su organización. Personalice la directiva Information Protection (etiquetas de confidencialidad, tipos de información, lógica de detección) en la directiva SQL Information Protection de Microsoft Defender for Cloud.
Seguimiento del acceso a datos confidenciales
Supervise quién tiene acceso a los datos confidenciales y capture consultas sobre los datos confidenciales en los registros de auditoría.
Cómo se implementan
- Use la auditoría de SQL y la clasificación de datos en combinación.
- En el registro de auditoría de SQL Database, puede realizar un seguimiento del acceso a datos confidenciales específicamente. También puede ver información, como los datos a los que se accedió, así como su etiqueta de confidencialidad. Para obtener más información, consulte Clasificación y detección de datos y Auditoría del acceso a datos confidenciales.
procedimientos recomendados
- Consulte los procedimientos recomendados para las secciones de Auditoría y Clasificación de datos:
Visualización del estado de la seguridad y del cumplimiento
Use un sistema de administración de la seguridad de infraestructura unificada que refuerce la posición de seguridad de los centros de datos (incluidas las bases de datos de SQL Database). Vea una lista de recomendaciones sobre la seguridad de las bases de datos y el estado de cumplimiento.
Cómo se implementan
- Supervise las recomendaciones de seguridad relacionadas con SQL y las amenazas activas en Microsoft Defender for Cloud.
Amenazas de seguridad comunes y posibles mitigaciones
Esta sección lo ayuda a encontrar medidas de seguridad para protegerse contra determinados vectores de ataque. Se espera que la mayoría de las mitigaciones se puedan lograr siguiendo una o varias de las directrices de seguridad mencionadas.
Amenaza de seguridad: Filtración de datos
La filtración de datos es la copia, transferencia o recuperación no autorizada de los datos de un equipo o servidor. Consulte una definición de filtración de datos en Wikipedia.
La conexión al servidor a través de un punto de conexión público presenta un riesgo de filtración de datos, ya que requiere que los clientes abran sus firewalls a direcciones IP públicas.
Escenario 1: una aplicación en una VM de Azure se conecta a una base de datos de una instancia de Azure SQL Database. Un actor no autorizado obtiene acceso a la máquina virtual y la pone en peligro. En este escenario, la filtración de datos significa que una entidad externa que usa la VM no autorizada se conecta a la base de datos, copia la información personal y la almacena en un almacenamiento de blobs o en una base de datos SQL Database diferente en una suscripción distinta.
Escenario 2: un DBA no autorizado. A menudo, este escenario lo generan los clientes confidenciales de sectores regulados. En este escenario, un usuario con privilegios elevados podría copiar datos de Azure SQL Database a otra suscripción no controlada por el propietario de los datos.
Posibles mitigaciones
En la actualidad, Azure SQL Database e Instancia administrada de SQL ofrecen las técnicas siguientes para mitigar las amenazas de filtración de datos:
- Use una combinación de reglas de permiso y denegación en los grupos de seguridad de red de las máquinas virtuales de Azure para controlar a qué regiones se puede tener acceso desde la máquina virtual.
- Si usa un servidor de SQL Database, establezca las opciones siguientes:
- Establezca Allow Azure Services (Permitir servicios de Azure) en OFF.
- Permita solo el tráfico desde la subred que contiene la máquina virtual de Azure mediante la configuración de una regla de firewall de red virtual.
- Use Private Link.
- En el caso de SQL Managed Instance, el uso del acceso IP privado de manera predeterminada aborda la primera preocupación relacionada con la filtración de datos de una máquina virtual no autorizada. Active la característica de delegación de subred en una subred para establecer automáticamente la directiva más restrictiva en una subred de Instancia administrada de SQL.
- El problema de DBA no autorizado se expone más con SQL Managed Instance, ya que tiene un área expuesta mayor y los requisitos de red son visibles para los clientes. La mejor mitigación para esto es aplicar todos los procedimientos de esta guía de seguridad para evitar en primer lugar el escenario de un DBA no autorizado (no solo para la filtración de datos). Always Encrypted es un método para proteger los datos confidenciales mediante su cifrado e impidiendo que el DBA pueda acceder a la clave.
Aspectos de seguridad de la disponibilidad y continuidad empresarial
La mayoría de los estándares de seguridad abordan la disponibilidad de los datos en términos de la continuidad operativa, gracias a la implementación de funcionalidades de redundancia y conmutación por error para evitar únicos puntos de error. En escenarios de desastre, un procedimiento común es mantener copias de seguridad de los archivos de datos y de registro. En la sección siguiente se proporciona información general de alto nivel sobre las funcionalidades integradas en Azure. También se proporcionan opciones adicionales que se pueden configurar para satisfacer necesidades específicas:
Azure ofrece alta disponibilidad integrada: Alta disponibilidad con SQL Database y SQL Managed Instance
El nivel Crítico para la empresa incluye grupos de conmutación por error, copias de seguridad de registros completas y diferenciales y copias de seguridad de restauración a un momento dado habilitadas de manera predeterminada:
Se pueden configurar otras características de continuidad empresarial, como la configuración con redundancia de zona y los grupos de conmutación por error en diferentes zonas geográficas de Azure: