SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
SOLIDQ SUMMIT MADRID 2017
#SQSummit17
Jose Antonio Pineda Montes
Data Platform Arquitect
JPINEDA@SOLIDQ.COM
SOLIDQ SUMMIT MADRID 2017
SOLIDQ SUMMIT MADRID 2017
Kerberos
NTLM (Windows NT Lan Manager)
Cuentas de Windows
Cuentas especificas de SQL Server
Autentificación
Buena Practica: Usar siempre Autentificación Windows a menos que la aplicación sea de terceros y te
obligue a utilizar una cuenta de seguridad de SQL.
Buena Practica: cambiar el nombre de la cuenta después de la
instalación SSMS>Object Explorer>Logins>Rename (right click) / T-SQL
Best Practice: Asegurar que password complejas son utilizadas para SA y otros SQL logins.
Intenta siempre utilizar las opciones ENFORCE EXPIRATION & MUST_CHANGE para SQL login
Buena práctica:
Usar cuentas especificas para cada servicio especifico de SQL
Component Windows Server 2008
Windows 7 and Windows
Server 2008 R2 and higher
Recommended accounts
Database Engine NETWORK SERVICE Virtual Account
*
SQL_Engine
SQL Server Agent NETWORK SERVICE Virtual Account
*
SQL_Agent
SSAS NETWORK SERVICE Virtual Account
*
SQL_srvAS
SSIS NETWORK SERVICE Virtual Account
*
SQL_srvIS
SSRS NETWORK SERVICE Virtual Account
*
SQL_srvRS
SQL Server Distributed Replay Controller NETWORK SERVICE Virtual Account
*
SQL_DRContro
SQL Server Distributed Replay Client NETWORK SERVICE Virtual Account
*
SQL_DRReplay
FD Launcher (Full-text Search) LOCAL SERVICE Virtual Account
SQL Server Browser LOCAL SERVICE LOCAL SERVICE
SQL Server VSS Writer LOCAL SYSTEM LOCAL SYSTEM
Buena Practica:
Escoger cuidadosamente los miembros del role sysadmin
Buena práctica: Usar los roles de servidor y base de datos que vienen por defecto o crear roles
personalizados, y entonces aplicárselos a los logins de SQL.
Buena Practica: Deshabilitar la cuenta invitado de todas las bbdds de
usuario y sistemas ( menos en el msdb)
Buena Practica:
Cambiar el puerto por defecto siempre que sea posible
https://support.microsoft.com/en-
us/help/3135244/tls-1.2-support-for-microsoft-sql-server
Buena Practica:
Actualizar a TSL 1.2
Seguridad a nivel de fila
Se previene a
usuarios que
vean datos sin
autorización
Configuración
con lógica en
BBDD y
esquemas
Administrado
con SSMS
15 © 2016 SolidQ
Seguridad a nivel de fila
RLS (Row Level Security) restringe qué usuario puede
ver qué fila
16 © 2016 SolidQ
Seguridad a nivel de fila
• Definida por Usuario
• Inline Table Valued Function
• Puede ser complicada conteniendo joins a otras tablas
Funcion de predicado
• Funcion vinculada a una tabla
• Dos tipos: de filtro o bloqueantes
Predicado de seguridad
• Colección de predicados de seguridad para administrar la seguridad sobre
multiples tablas
Política de seguridad
17 © 2016 SolidQ
Seguridad a nivel de fila
18
Uno
Administrador de la seguridad crea un filtro de predicado y una política de seguridad vinculada a
la tabla
Dos
Usuario de aplicación hace una select
Tres
La política de seguridad de forma transparente añade los filtros pertinentes
Database
CREATE FUNCTION dbo.fn_securitypredicate(@wing int)
RETURNS TABLE WITH SCHEMABINDING AS
return SELECT 1 as [fn_securitypredicate_result] FROM
StaffDuties d INNER JOIN Employees e
ON (d.EmpId = e.EmpId)
WHERE e.UserSID = SUSER_SID() AND @wing = d.Wing;
CREATE SECURITY POLICY dbo.SecPol
ADD FILTER PREDICATE dbo.fn_securitypredicate(Wing) ON
Patients
WITH (STATE = ON)
Filter
predicate:
INNER
JOIN…
Security
policy
Application
Patients
SELECT * FROM Patients
SELECT * FROM Patients
SEMIJOIN APPLY dbo.fn_securitypredicate(patients.Wing);
SELECT Patients.* FROM Patients,
StaffDuties d INNER JOIN Employees e ON (d.EmpId =
e.EmpId)
WHERE e.UserSID = SUSER_SID() AND Patients.wing = d.Wing;
Nurse
Policy manager
Seguridad a nivel de fila con contexto de
usuario
19
----Se crea una función predicado que utliza la variable CONTEXT_INFO de la
aplcición para filtrar que registros puede ver.
CREATE FUNCTION rls.fn_securitypredicate (@AppUserId int)
RETURNS TABLE
WITH SCHEMABINDING
AS
RETURN (
SELECT 1 AS fn_securitypredicate_result
WHERE DATABASE_PRINCIPAL_ID() = DATABASE_PRINCIPAL_ID('dbo')-- application context
AND CONTEXT_INFO() = CONVERT(VARBINARY(128), @AppUserId);
GO
-- Con el siguiente código creamos la politica de seguridad con filtro de
predicado para la table customers, y lo dejamos deshabilitado
CREATE SECURITY POLICY [FederatedSecurityPolicy]
ADD FILTER PREDICATE [rls].[fn_securitypredicate]([CustomerId])
ON [dbo].[Customer];
Seguridad a nivel de fila: casos de uso
Aplicaciones
tradicionales
Finanzas, Seguros,
sanidad, gobiernos
BBDD
multitenant
Cada inquilino solo
accede a sus datos
Reporting,
analytics,
DW
Diferentes usuarios ven
datos según su nivel de
acceso (PowerBI ya da
soporte nativo)
20
SOLIDQ SUMMIT MADRID 2017
21
Funcionalidad de RLS
• Centralizo la seguridad en la BBDD, solo tengo que tocar en un sitio.
• Puedo bloquear o filtrar las operaciones de modificación de datos.
• Si creo el predicado con la opción schemabinding, evito que alguien
pueda modificar el esquema de las tablas con las que trabaja el
predicado y se comprueban los permisos sobre esas tablas para que
funcione.
• Puedo generar un role tipo “Gestor de Politicas” con los permisos
necesarios para generar predicados de seguridad ALTER ANY
SECURITY POLICY y un esquema especifico para generar estas, de tal
manera que separo funcionalidades. Pudiendo auditar los cambios
que se realicen.
Mejores Practicas con RSL
• Rendimiento dependerá de la complejidad de los joins en el
predicado.
• Es recomendable que las columnas que utiliza el predicado para filtrar
tengan un índice.
• Crear un esquema diferente para centralizar en él, todas las políticas
de seguridad.
• Utilizar CONTEXT_INFO para aplicaciones de capa intermedia y
cuando trabajemos en SQL AZURE siempre inicializar esta variable
después de conectarnos porque por defecto la inicializa.
Always Encrypted
Prevención de
revelación de datos
• Encriptación a
nivel cliente de
datos sensibles
• No se puede
descrifrar desde
servidor
Consultas sobre
datos cifrados
• Soporte para
operadores “=“,
“join”, “Group by”
y “distinct”
Transparente para
aplicaciones
• Cambios mínimos
a nivel de
aplicación
• Usar la libreria
correcta
25
Permite a las aplicaciones almacenar de forma
segura datos, incluso lejos del alcance de DBA
sysadmin
Always Encrypted
26
Always Encrypted
28
Always Encrypted: LimitacionesNo soportado con estos tipos
de datos
•Xml
•Rowversion
•Image/Text/ntext
•Sql_variant
•Hiearchyid
•Geography/geometry
•Alias
•UDT´s
Claúsulas que no funcionan
•FOR XML
•FOR JSON PATH
Características incompatibles
•Transactional replication
•Merge replication
•Linked server y consultas
distribuidas
29 © 2016 SolidQ
Cuidado con la corrupción de datos
• Usando ALLOW_ENCRYPTED_VALUE_MODIFICATIONS puedes corromper
tus propios datos
Herramientas soportadas parcialmente (por ahora)
• SSDT (por ahora)
• Solo se permite crear DACPAC desde SSMS
SOLIDQ SUMMIT MADRID 2017
30
Comparativa entre AE y TDE
Always Encrypted TDE
Nivel de columna Nivel de BBDD
Encriptación en cliente Encriptación en servidor
El servidor no conoce en ningún momento las claves
para encriptar
El servidor conoce las claves para encriptar
EL dato viaje por la red encriptado EL dato tal cual viaja por la red.
Tempdb hereda la encriptación- incluso después de
deshabilitar TDE
EL dato puede ser protegido de administradores de
sistema y bbdd
El dato es accesible para administradores de sistema y
bbdd
Comportamiento consultas con Always
Encripted
Características de la
consulta
Always Encrypted esta
habilitado y la
aplicación puede
acceder a las claves y
al metadata de las
claves.
Always Encrypted esta
habilitado y la
aplicación no puede
accede a las claves o a
los metadatos de las
claves
Always Encrypted esta
deshabilitado
Consultas con parametros que
hacen referencia a columnas
encriptadas.
Los valores de los parametros se
encriptan transparentemente.
Error Error
Consultas que recuperan datos de
columnas encriptadas, sin
parametros que referencien
columnas encriptadas.
EL resultado de las columnas
encriptadas se desencripta
transparentamente. La aplicacion
recive los valores en texto plano
de los tipos de datos .NET
correspondientes a los tipos de
SQL configurados para las
columnas encriptadas.
Error EL resultado de las columnas
encriptadas no se desencripta. La
aplicación recive los valores
encriptados como arrays de byte
(byte[]).
Controlando el impacto de AE en el
rendimiento
• Debido a que Always Encrypted es una tecnología de cifrado en el
cliente, la mayoría de los overheads de rendimiento se observan en el
lado del cliente, no en la base de datos. Aparte del costo de las
operaciones de cifrado y descifrado, hay otros factores que afectan:
Viajes de ida y vuelta adicionales a la base de datos para recuperar
metadatos para los parámetros de la consulta.
Llamadas al almacén de claves maestras de columna para acceder a una clave
maestra de columna.
Optimizaciones en .NET Framework Provider
para SQL Server para AE
• Query metadata caching
Puedes configurar Always Encrypted a nivel de consulta y de no de toda la
sesión(esto ya no tiene sentido con .Net 4.6.2 debido al cache de parametros).
• Column encryption key caching
En .NET Framework 4.6 y 4.6.1, las entradas de clave de cifrado de columna en el
caché nunca se desalojan. Esto significa que para una clave cifrada de cifrado de
columna dada, el controlador contacta con el almacén de claves sólo una vez durante
el tiempo de vida de la aplicación.
En .NET Framework 4.6.2 y posteriores, las entradas de la memoria caché son
desalojadas después de un intervalo configurable de tiempo de vida por razones de
seguridad. El valor por defecto del tiempo de vida es de 2 horas.
Dynamic Data Masking
Enmascaramiento
• Datos sensibles
enmascarados a nivel
Usuario
Basado en políticas
• A nivel de tabla o columna
para grupos de usuarios
Tiempo real
• Se aplica sobre las filas a
devolver
36
Dynamic data masking
37© 2016 SolidQ
3 ) DDM ofusca los datos sensibles durante la devolución de datos2 ) El Usuario lanza una select1 ) El administrador de seguridad define la mascara en T-SQL sobre datos sensibles
SELECT [Name],
[SocialSecurityNumber],
[Email],
[Salary]
FROM [Employee]
admin1 loginother login
BUSINES
S APP
BUSINES
S APP
ALTER TABLE [Employee]
ALTER COLUMN [SocialSecurityNumber]
ADD MASKED WITH (FUNCTION = ‘SSN()’)
ALTER TABLE [Employee]
ALTER COLUMN [Email]
ADD MASKED WITH (FUNCTION = ‘EMAIL()’)
ALTER TABLE [Employee]
ALTER COLUMN [Salary]
ADD MASKED WITH (FUNCTION =
‘RANDOM(1,20000)’)
GRANT UNMASK to admin1
Security
Officer
Dynamic data masking
• No puede usarse sobre los siguientes tipos de datos
• Always Encrypted columns
• FILESTREAM
• COLUMN_SET
• Text y ntext si soportados
• Pero no funcionarán READTEXT, UPDATETEXT ni WRITETEXT
38
SOLIDQ SUMMIT MADRID 2017
39
SOLIDQ SUMMIT MADRID 2017
• +500h de trabajo
• Clases 100% ONLINE en directo
• Proyecto fin de máster real para tu empresa
• Tutorías bajo demanda
• Laboratorios virtuales guiados paso a paso
• Invitación 1 día al SolidQ Summit Madrid
• Te ayudamos en tus proyectos de BI & Analytics
CONTENIDOS
• BI & Analytics Overview
• Data Warehousing y Modelo Dimensional
• Obtención de datos. ETL e Integración
• Soluciones Analíticas
• Análisis y Visualización de la información
• Proyecto Fin de Máster
“Con la evolución de los tiempos, es imprescindible estudiar todo lo que tiene que ver con real-time,
analytics y el mundo de los datos. Por lo que, consideré que tener formación en BI me podría ser muy
útil y me venía muy bien personalmente, porque nuestro sistema trata con muchísimas transacciones y
muchísima carga y ‘el relacional’ ya se nos estaba quedando pequeño.
El máster nos dio una visión bastante general de cómo implementar un proyecto y gestionarlo tú mismo
y cómo ver las soluciones de distintas maneras. Aunque tenía mis dudas de hacer una formación online,
la valoración es bastante positiva, las clases son muy interactivas y al final salió todo muy bien.”
Adolfo Gabriel
VP Software
Development, Payvision
Máster en BI & Analytics
Alumni
¡Plazas Limitadas!
Más información:
http://www.solidq.com/es/masterbi
CONTENIDOS
• BI & Analytics Overview
• Data Warehousing y Modelo Dimensional
• Obtención de datos. ETL e Integración
• Soluciones Analíticas
• Análisis y Visualización de la información
• Proyecto Fin de Máster
SOLIDQ SUMMIT MADRID 2017

Más contenido relacionado

Similar a STOP a la fuga de información: la barrera indispensable de seguridad en SQL Server - SolidQ Summit 2017

SQL Server 2014 Mejoras del DB Engine
SQL Server 2014 Mejoras del DB EngineSQL Server 2014 Mejoras del DB Engine
SQL Server 2014 Mejoras del DB EngineEduardo Castro
 
Procedimientos almacenados..mañana
Procedimientos almacenados..mañanaProcedimientos almacenados..mañana
Procedimientos almacenados..mañanaANilez Solrak
 
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...José Antonio Sandoval Acosta
 
24HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 2014
24HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 201424HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 2014
24HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 2014Guillermo Caicedo
 
Windows Azure SQL Databases
Windows Azure SQL DatabasesWindows Azure SQL Databases
Windows Azure SQL DatabasesSolidQ
 
24 HOP edición Español - Escenarios de seguridad para modeloscubos tabulares ...
24 HOP edición Español - Escenarios de seguridad para modeloscubos tabulares ...24 HOP edición Español - Escenarios de seguridad para modeloscubos tabulares ...
24 HOP edición Español - Escenarios de seguridad para modeloscubos tabulares ...SpanishPASSVC
 
Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017dbLearner
 
24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...
24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...
24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...SpanishPASSVC
 
Curso sql server_administracion
Curso sql server_administracionCurso sql server_administracion
Curso sql server_administracionSalvador Ramos
 
Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developersEnrique Catala Bañuls
 
cuadro_comparativo_SGBD_top_10.docx (1).docx
cuadro_comparativo_SGBD_top_10.docx (1).docxcuadro_comparativo_SGBD_top_10.docx (1).docx
cuadro_comparativo_SGBD_top_10.docx (1).docxIgor Rodriguez
 
Presentación arquitectura sae 2013
Presentación   arquitectura sae 2013Presentación   arquitectura sae 2013
Presentación arquitectura sae 2013Rafael Arriagada
 
SQL como un servicio en la nube
SQL como un servicio en la nubeSQL como un servicio en la nube
SQL como un servicio en la nubeSpanishPASSVC
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionJosé Antonio Sandoval Acosta
 

Similar a STOP a la fuga de información: la barrera indispensable de seguridad en SQL Server - SolidQ Summit 2017 (20)

(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
 
SQL Server 2014 Mejoras del DB Engine
SQL Server 2014 Mejoras del DB EngineSQL Server 2014 Mejoras del DB Engine
SQL Server 2014 Mejoras del DB Engine
 
Procedimientos almacenados..mañana
Procedimientos almacenados..mañanaProcedimientos almacenados..mañana
Procedimientos almacenados..mañana
 
Semana 01.pdf
Semana 01.pdfSemana 01.pdf
Semana 01.pdf
 
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
 
24HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 2014
24HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 201424HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 2014
24HOP Espanol - Funcionalidades de Nube Hibrida en SQL Server 2014
 
Windows Azure SQL Databases
Windows Azure SQL DatabasesWindows Azure SQL Databases
Windows Azure SQL Databases
 
24 HOP edición Español - Escenarios de seguridad para modeloscubos tabulares ...
24 HOP edición Español - Escenarios de seguridad para modeloscubos tabulares ...24 HOP edición Español - Escenarios de seguridad para modeloscubos tabulares ...
24 HOP edición Español - Escenarios de seguridad para modeloscubos tabulares ...
 
Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017
 
24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...
24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...
24 HOP edición Español - Funcionalidades de nube híbrida en sql server 2014 -...
 
Exposicion Mysql
Exposicion MysqlExposicion Mysql
Exposicion Mysql
 
SQL server 2008
SQL server 2008SQL server 2008
SQL server 2008
 
SQL server 2008
SQL server 2008SQL server 2008
SQL server 2008
 
Curso sql server_administracion
Curso sql server_administracionCurso sql server_administracion
Curso sql server_administracion
 
Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developers
 
cuadro_comparativo_SGBD_top_10.docx (1).docx
cuadro_comparativo_SGBD_top_10.docx (1).docxcuadro_comparativo_SGBD_top_10.docx (1).docx
cuadro_comparativo_SGBD_top_10.docx (1).docx
 
Sql4
Sql4Sql4
Sql4
 
Presentación arquitectura sae 2013
Presentación   arquitectura sae 2013Presentación   arquitectura sae 2013
Presentación arquitectura sae 2013
 
SQL como un servicio en la nube
SQL como un servicio en la nubeSQL como un servicio en la nube
SQL como un servicio en la nube
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccion
 

Más de SolidQ

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ
 
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?SolidQ
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en LinuxSolidQ
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida realSolidQ
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízateSolidQ
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksSolidQ
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BISolidQ
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesSolidQ
 
R en relacional
R en relacionalR en relacional
R en relacionalSolidQ
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!SolidQ
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en AzureSolidQ
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018SolidQ
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018SolidQ
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018SolidQ
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018SolidQ
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...SolidQ
 

Más de SolidQ (20)

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
 
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantes
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en Linux
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida real
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízate
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocks
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BI
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para Dummies
 
R en relacional
R en relacionalR en relacional
R en relacional
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en Azure
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
 

Último

El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 

Último (20)

El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 

STOP a la fuga de información: la barrera indispensable de seguridad en SQL Server - SolidQ Summit 2017

  • 1. SOLIDQ SUMMIT MADRID 2017 #SQSummit17 Jose Antonio Pineda Montes Data Platform Arquitect JPINEDA@SOLIDQ.COM
  • 4.
  • 5. Kerberos NTLM (Windows NT Lan Manager) Cuentas de Windows Cuentas especificas de SQL Server Autentificación Buena Practica: Usar siempre Autentificación Windows a menos que la aplicación sea de terceros y te obligue a utilizar una cuenta de seguridad de SQL.
  • 6. Buena Practica: cambiar el nombre de la cuenta después de la instalación SSMS>Object Explorer>Logins>Rename (right click) / T-SQL
  • 7. Best Practice: Asegurar que password complejas son utilizadas para SA y otros SQL logins. Intenta siempre utilizar las opciones ENFORCE EXPIRATION & MUST_CHANGE para SQL login
  • 8. Buena práctica: Usar cuentas especificas para cada servicio especifico de SQL Component Windows Server 2008 Windows 7 and Windows Server 2008 R2 and higher Recommended accounts Database Engine NETWORK SERVICE Virtual Account * SQL_Engine SQL Server Agent NETWORK SERVICE Virtual Account * SQL_Agent SSAS NETWORK SERVICE Virtual Account * SQL_srvAS SSIS NETWORK SERVICE Virtual Account * SQL_srvIS SSRS NETWORK SERVICE Virtual Account * SQL_srvRS SQL Server Distributed Replay Controller NETWORK SERVICE Virtual Account * SQL_DRContro SQL Server Distributed Replay Client NETWORK SERVICE Virtual Account * SQL_DRReplay FD Launcher (Full-text Search) LOCAL SERVICE Virtual Account SQL Server Browser LOCAL SERVICE LOCAL SERVICE SQL Server VSS Writer LOCAL SYSTEM LOCAL SYSTEM
  • 9. Buena Practica: Escoger cuidadosamente los miembros del role sysadmin
  • 10. Buena práctica: Usar los roles de servidor y base de datos que vienen por defecto o crear roles personalizados, y entonces aplicárselos a los logins de SQL.
  • 11. Buena Practica: Deshabilitar la cuenta invitado de todas las bbdds de usuario y sistemas ( menos en el msdb)
  • 12. Buena Practica: Cambiar el puerto por defecto siempre que sea posible
  • 14.
  • 15. Seguridad a nivel de fila Se previene a usuarios que vean datos sin autorización Configuración con lógica en BBDD y esquemas Administrado con SSMS 15 © 2016 SolidQ
  • 16. Seguridad a nivel de fila RLS (Row Level Security) restringe qué usuario puede ver qué fila 16 © 2016 SolidQ
  • 17. Seguridad a nivel de fila • Definida por Usuario • Inline Table Valued Function • Puede ser complicada conteniendo joins a otras tablas Funcion de predicado • Funcion vinculada a una tabla • Dos tipos: de filtro o bloqueantes Predicado de seguridad • Colección de predicados de seguridad para administrar la seguridad sobre multiples tablas Política de seguridad 17 © 2016 SolidQ
  • 18. Seguridad a nivel de fila 18 Uno Administrador de la seguridad crea un filtro de predicado y una política de seguridad vinculada a la tabla Dos Usuario de aplicación hace una select Tres La política de seguridad de forma transparente añade los filtros pertinentes Database CREATE FUNCTION dbo.fn_securitypredicate(@wing int) RETURNS TABLE WITH SCHEMABINDING AS return SELECT 1 as [fn_securitypredicate_result] FROM StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId) WHERE e.UserSID = SUSER_SID() AND @wing = d.Wing; CREATE SECURITY POLICY dbo.SecPol ADD FILTER PREDICATE dbo.fn_securitypredicate(Wing) ON Patients WITH (STATE = ON) Filter predicate: INNER JOIN… Security policy Application Patients SELECT * FROM Patients SELECT * FROM Patients SEMIJOIN APPLY dbo.fn_securitypredicate(patients.Wing); SELECT Patients.* FROM Patients, StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId) WHERE e.UserSID = SUSER_SID() AND Patients.wing = d.Wing; Nurse Policy manager
  • 19. Seguridad a nivel de fila con contexto de usuario 19 ----Se crea una función predicado que utliza la variable CONTEXT_INFO de la aplcición para filtrar que registros puede ver. CREATE FUNCTION rls.fn_securitypredicate (@AppUserId int) RETURNS TABLE WITH SCHEMABINDING AS RETURN ( SELECT 1 AS fn_securitypredicate_result WHERE DATABASE_PRINCIPAL_ID() = DATABASE_PRINCIPAL_ID('dbo')-- application context AND CONTEXT_INFO() = CONVERT(VARBINARY(128), @AppUserId); GO -- Con el siguiente código creamos la politica de seguridad con filtro de predicado para la table customers, y lo dejamos deshabilitado CREATE SECURITY POLICY [FederatedSecurityPolicy] ADD FILTER PREDICATE [rls].[fn_securitypredicate]([CustomerId]) ON [dbo].[Customer];
  • 20. Seguridad a nivel de fila: casos de uso Aplicaciones tradicionales Finanzas, Seguros, sanidad, gobiernos BBDD multitenant Cada inquilino solo accede a sus datos Reporting, analytics, DW Diferentes usuarios ven datos según su nivel de acceso (PowerBI ya da soporte nativo) 20
  • 22. Funcionalidad de RLS • Centralizo la seguridad en la BBDD, solo tengo que tocar en un sitio. • Puedo bloquear o filtrar las operaciones de modificación de datos. • Si creo el predicado con la opción schemabinding, evito que alguien pueda modificar el esquema de las tablas con las que trabaja el predicado y se comprueban los permisos sobre esas tablas para que funcione. • Puedo generar un role tipo “Gestor de Politicas” con los permisos necesarios para generar predicados de seguridad ALTER ANY SECURITY POLICY y un esquema especifico para generar estas, de tal manera que separo funcionalidades. Pudiendo auditar los cambios que se realicen.
  • 23. Mejores Practicas con RSL • Rendimiento dependerá de la complejidad de los joins en el predicado. • Es recomendable que las columnas que utiliza el predicado para filtrar tengan un índice. • Crear un esquema diferente para centralizar en él, todas las políticas de seguridad. • Utilizar CONTEXT_INFO para aplicaciones de capa intermedia y cuando trabajemos en SQL AZURE siempre inicializar esta variable después de conectarnos porque por defecto la inicializa.
  • 24.
  • 25. Always Encrypted Prevención de revelación de datos • Encriptación a nivel cliente de datos sensibles • No se puede descrifrar desde servidor Consultas sobre datos cifrados • Soporte para operadores “=“, “join”, “Group by” y “distinct” Transparente para aplicaciones • Cambios mínimos a nivel de aplicación • Usar la libreria correcta 25 Permite a las aplicaciones almacenar de forma segura datos, incluso lejos del alcance de DBA sysadmin
  • 27.
  • 29. Always Encrypted: LimitacionesNo soportado con estos tipos de datos •Xml •Rowversion •Image/Text/ntext •Sql_variant •Hiearchyid •Geography/geometry •Alias •UDT´s Claúsulas que no funcionan •FOR XML •FOR JSON PATH Características incompatibles •Transactional replication •Merge replication •Linked server y consultas distribuidas 29 © 2016 SolidQ Cuidado con la corrupción de datos • Usando ALLOW_ENCRYPTED_VALUE_MODIFICATIONS puedes corromper tus propios datos Herramientas soportadas parcialmente (por ahora) • SSDT (por ahora) • Solo se permite crear DACPAC desde SSMS
  • 31. Comparativa entre AE y TDE Always Encrypted TDE Nivel de columna Nivel de BBDD Encriptación en cliente Encriptación en servidor El servidor no conoce en ningún momento las claves para encriptar El servidor conoce las claves para encriptar EL dato viaje por la red encriptado EL dato tal cual viaja por la red. Tempdb hereda la encriptación- incluso después de deshabilitar TDE EL dato puede ser protegido de administradores de sistema y bbdd El dato es accesible para administradores de sistema y bbdd
  • 32. Comportamiento consultas con Always Encripted Características de la consulta Always Encrypted esta habilitado y la aplicación puede acceder a las claves y al metadata de las claves. Always Encrypted esta habilitado y la aplicación no puede accede a las claves o a los metadatos de las claves Always Encrypted esta deshabilitado Consultas con parametros que hacen referencia a columnas encriptadas. Los valores de los parametros se encriptan transparentemente. Error Error Consultas que recuperan datos de columnas encriptadas, sin parametros que referencien columnas encriptadas. EL resultado de las columnas encriptadas se desencripta transparentamente. La aplicacion recive los valores en texto plano de los tipos de datos .NET correspondientes a los tipos de SQL configurados para las columnas encriptadas. Error EL resultado de las columnas encriptadas no se desencripta. La aplicación recive los valores encriptados como arrays de byte (byte[]).
  • 33. Controlando el impacto de AE en el rendimiento • Debido a que Always Encrypted es una tecnología de cifrado en el cliente, la mayoría de los overheads de rendimiento se observan en el lado del cliente, no en la base de datos. Aparte del costo de las operaciones de cifrado y descifrado, hay otros factores que afectan: Viajes de ida y vuelta adicionales a la base de datos para recuperar metadatos para los parámetros de la consulta. Llamadas al almacén de claves maestras de columna para acceder a una clave maestra de columna.
  • 34. Optimizaciones en .NET Framework Provider para SQL Server para AE • Query metadata caching Puedes configurar Always Encrypted a nivel de consulta y de no de toda la sesión(esto ya no tiene sentido con .Net 4.6.2 debido al cache de parametros). • Column encryption key caching En .NET Framework 4.6 y 4.6.1, las entradas de clave de cifrado de columna en el caché nunca se desalojan. Esto significa que para una clave cifrada de cifrado de columna dada, el controlador contacta con el almacén de claves sólo una vez durante el tiempo de vida de la aplicación. En .NET Framework 4.6.2 y posteriores, las entradas de la memoria caché son desalojadas después de un intervalo configurable de tiempo de vida por razones de seguridad. El valor por defecto del tiempo de vida es de 2 horas.
  • 35.
  • 36. Dynamic Data Masking Enmascaramiento • Datos sensibles enmascarados a nivel Usuario Basado en políticas • A nivel de tabla o columna para grupos de usuarios Tiempo real • Se aplica sobre las filas a devolver 36
  • 37. Dynamic data masking 37© 2016 SolidQ 3 ) DDM ofusca los datos sensibles durante la devolución de datos2 ) El Usuario lanza una select1 ) El administrador de seguridad define la mascara en T-SQL sobre datos sensibles SELECT [Name], [SocialSecurityNumber], [Email], [Salary] FROM [Employee] admin1 loginother login BUSINES S APP BUSINES S APP ALTER TABLE [Employee] ALTER COLUMN [SocialSecurityNumber] ADD MASKED WITH (FUNCTION = ‘SSN()’) ALTER TABLE [Employee] ALTER COLUMN [Email] ADD MASKED WITH (FUNCTION = ‘EMAIL()’) ALTER TABLE [Employee] ALTER COLUMN [Salary] ADD MASKED WITH (FUNCTION = ‘RANDOM(1,20000)’) GRANT UNMASK to admin1 Security Officer
  • 38. Dynamic data masking • No puede usarse sobre los siguientes tipos de datos • Always Encrypted columns • FILESTREAM • COLUMN_SET • Text y ntext si soportados • Pero no funcionarán READTEXT, UPDATETEXT ni WRITETEXT 38
  • 40. SOLIDQ SUMMIT MADRID 2017 • +500h de trabajo • Clases 100% ONLINE en directo • Proyecto fin de máster real para tu empresa • Tutorías bajo demanda • Laboratorios virtuales guiados paso a paso • Invitación 1 día al SolidQ Summit Madrid • Te ayudamos en tus proyectos de BI & Analytics CONTENIDOS • BI & Analytics Overview • Data Warehousing y Modelo Dimensional • Obtención de datos. ETL e Integración • Soluciones Analíticas • Análisis y Visualización de la información • Proyecto Fin de Máster “Con la evolución de los tiempos, es imprescindible estudiar todo lo que tiene que ver con real-time, analytics y el mundo de los datos. Por lo que, consideré que tener formación en BI me podría ser muy útil y me venía muy bien personalmente, porque nuestro sistema trata con muchísimas transacciones y muchísima carga y ‘el relacional’ ya se nos estaba quedando pequeño. El máster nos dio una visión bastante general de cómo implementar un proyecto y gestionarlo tú mismo y cómo ver las soluciones de distintas maneras. Aunque tenía mis dudas de hacer una formación online, la valoración es bastante positiva, las clases son muy interactivas y al final salió todo muy bien.” Adolfo Gabriel VP Software Development, Payvision Máster en BI & Analytics Alumni ¡Plazas Limitadas! Más información: http://www.solidq.com/es/masterbi CONTENIDOS • BI & Analytics Overview • Data Warehousing y Modelo Dimensional • Obtención de datos. ETL e Integración • Soluciones Analíticas • Análisis y Visualización de la información • Proyecto Fin de Máster