Seguridad SO y SQL Server
Seguridad SO y SQL Server
Seguridad SO y SQL Server
Naturales e Ingeniería
Trabajo Final
Tema
Título
1 Resumen .................................................................................................. 4
2 Introducción.............................................................................................. 5
4.5 AccessEnum..................................................................................... 22
1
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
5.4.6 Arquitectura................................................................................ 36
2
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
8 Conclusión ............................................................................................. 47
9 Bibliografía ............................................................................................. 49
3
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
1 Resumen
4
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
2 Introducción
5
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
6
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
3 Recomendaciones generales
7
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
Determinar que tanto hay que proteger el servidor es algo que se debe definir
desde un primer momento, ya que el nivel de seguridad seleccionado será el que
condicione hasta donde se va a llegar en cuanto a las medidas de seguridad a
implementar. El tipo de información que será protegida será, por lo general, el
factor determinante en la selección del nivel de seguridad, así como también lo
serán los servidores que se encuentren dentro de la misma red.
La Federal Information Processing Standards (FIPS) en su publicación
“Standards for sercurity categorization of federal information and information
systems” [2], establece una serie de criterios para determinar una categoría de
seguridad y asignársela a un servidor.
La categorización que realiza FIPS se basa en el impacto a cada uno de los tres
pilares de seguridad de la información: Confidencialidad, Integridad y
Disponibilidad.
8
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
9
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
10
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
11
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
12
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
13
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
14
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
15
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
16
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
17
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
18
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
19
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
“El Asistente para configuración de seguridad (SCW) le guía a través del proceso
de creación, edición, aplicación o reversión de una directiva de seguridad. Una
directiva de seguridad que se crea con SCW es un archivo .xml que, cuando se
aplica, configura servicios, seguridad de red, valores de registro específicos y
directiva de auditoría. SCW es una herramienta basada en roles: puede usarla
para crear una directiva que habilite servicios, reglas de firewall y la configuración
necesaria para que un servidor seleccionado realice roles específicos, como un
servidor de archivos, un servidor de impresión o un controlador de dominio.”
El Asistente para Configuración de Seguridad [7] (SCW por sus siglas en inglés)
es una herramienta que reduce la superficie de ataque y ayuda a crear políticas
de seguridad que se basen en la funcionalidad mínima requerida por las
funciones del servidor.
Esta herramienta es utilizada como ayuda en la creación de políticas de
seguridad las cuales podrán ser aplicadas en diferentes roles de servidor, estas
políticas pueden ser utilizadas para configurar servicios (habilitar o deshabilitar),
auditoría y entradas de registro (registry).
20
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
21
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
4.4 Dumpsec
4.5 AccessEnum
22
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
5 SQL Server
23
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
Fig1
Fig2
Según las buenas prácticas es conveniente definir las cuentas que serán
utilizadas por los servicios de SQL Server con los menores niveles de derechos
posibles.
Como recomienda Microsoft en su artículo “Configurar los permisos y las cuentas
de servicio de Windows“[13] “Utilice cuentas de tipo MSA o cuentas virtuales
cuando sea posible. Cuando MSA y cuentas virtuales no son posibles, utilice una
cuenta de usuario o de dominio con privilegios bajos en lugar de una cuenta
compartida de servicios de SQL Server. Utilice cuentas separadas para los
diferentes servicios de SQL Server. No conceder permisos adicionales a la
cuenta de servicio de SQL Server o los grupos de servicio. Los permisos se
otorgan a través de la pertenencia a grupos u otorgados directamente a un
servicio SID, donde un servicio SID se encuentre soportado.”
24
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
25
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
26
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
usuario Guest se asegurará que dicho inicio de sesión no sea capaz de acceder
a la información de la base de datos sin darle un acceso explícito.
Ejecutando el siguiente código se podrá verificar si la cuenta Guest tiene permiso
de connect sobre la base de datos:
USE [database_name];
GO
SELECT DB_NAME() AS DBName, dpr.name, dpe.permission_name FROM
sys.database_permissions dpe JOIN sys.database_principals dpr ON
dpe.grantee_principal_id=dpr.principal_id WHERE dpr.name='guest' AND
dpe.permission_name='CONNECT';
El permiso puede ser revocado ejecuntado la siguiente sentencia:
USE database_name
REVOKE CONNECT FROM GUEST
27
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
28
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
El parámetro especifica que el login de SQL Server debe cumplir con la política
de contraseñas de Windows, la cual a su vez incluye las políticas de bloqueo de
cuenta.
Se puede verificar a través de la siguiente consulta:
select name, is_policy_checked from sys.sql_logins, el valor “0” en el login indica
que no está activada.
Para activarla se debe ejecutar la siguiente sentencia de acuerdo con [18]:
Para proteger una base de datos se pueden tomar varias precauciones, como
asegurar el sistema operativo del servidor, la red donde se encuentra alojado y
el perímetro de esa red a través de un firewall, todas estas opciones son algo que
debemos llevar a cabo, pero además no hay que olvidar que una tarea común y
obligatoria sobre las bases de datos es la de realizar bakcups, dichos backups
pueden ser alojados en cintas o discos dentro o fuera del mismo servidor. Pero
¿Qué pasaría si las cintas donde se alojan esos backups son robadas?, o si son
depositadas en repositorios sobre los cuales tienen acceso diferentes usuarios.
Restaurar una base de datos es una tarea simple, y una vez completada nos da
acceso a toda la información que dicha base contiene por lo cual la protección de
todos los backups que se realizan tiene que estar contemplada en el plan de
seguridad. También es muy común que los desarrolladores y testers requieran
de datos lo más semejantes a lo que se utilizará en un ambiente productivo, por
lo que muchas veces la información de las bases de datos productivas termina
en ambientes menos seguros como son los de testing y desarrollo sin que
previamente se le realice una sanitización a dichos datos.
29
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
Según una clasificación hecha por John Magnabosco en “Protecting SQL Server
Data” [19] los datos dentro de nuestra base de datos pueden clasificarse dentro
de dos grupos: datos en tránsito y datos almacenados. “Los datos en reposo se
refieren a datos que se almacenan, archivan o residen en medios de copia de
seguridad. Datos en tránsito se refiere a datos que están atravesando una red, o
que residen en la memoria. Ambos estados de datos tienen sus preocupaciones
de seguridad y métodos de mitigación de amenazas.”
El estándar PCI-DSS [6] hace una clara diferencia en esta clasificación en lo que
refiere a datos en reposo y a datos en tránsito en su requisito 3: “Proteja los datos
del titular de la tarjeta que fueron almacenados. Los métodos de protección como
el cifrado, el truncamiento, el ocultamiento y la refundición son importantes
componentes de la protección de datos del titular de la tarjeta. Si un intruso viola
otros controles de seguridad de red y obtiene acceso a los datos cifrados, sin las
claves criptográficas adecuadas no podrá leer ni utilizar esos datos. Los otros
métodos eficaces para proteger los datos almacenados deberían considerarse
oportunidades para mitigar el riesgo posible.” y requisito 4: “Codifique la
transmisión de los datos de los titulares de tarjetas a través de redes públicas
abiertas. La información confidencial se debe codificar durante su transmisión a
través de redes a las que delincuentes puedan acceder fácilmente. Las redes
inalámbricas mal configuradas y las vulnerabilidades en cifrados y protocolos de
autenticación pueden ser los objetivos de delincuentes que explotan estas
vulnerabilidades a los efectos de acceder a los entornos de datos de los titulares
de las tarjetas.”
En esta sección se desarrollaran las técnicas que pueden ser utilizadas para
mitigar el riesgo de fuga de información a través de la modificación de los datos
antes de su pasaje a un ambiente de testing o desarrollo, estas técnicas son
aplicadas exclusivamente a datos en reposo.
5.4.1 TDE
Una de las características disponibles en SQL Server 2014 es la denominada
TDE (Transparent Data Encryption) de acuerdo a al artículo de Microsoft “Cifrado
30
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
de datos transparente” [20]: “El Cifrado de datos transparente (TDE) cifra los
archivos de datos de SQL Server, base de datos, lo que se conoce como cifrado
de datos en reposo.”
“TDE realiza el cifrado y descifrado de E/S en tiempo real de los datos y los
archivos de registro. El cifrado utiliza una clave de cifrado de la base de datos
(DEK – Data Encryption Key), que está almacenada en el registro de arranque
de la base de datos para que esté disponible durante la recuperación. La DEK es
una clave simétrica protegida utilizando un certificado almacenado en la base de
datos maestra del servidor o una clave asimétrica protegida por un módulo EKM.
TDE protege los datos "en reposo", es decir, los archivos de datos y de registro.
Ofrece la posibilidad de cumplimiento con leyes, normativas y directrices
establecidas en diversos sectores.”
31
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
SQL Server tiene la capacidad de cifrar los datos mientras crea una copia de
seguridad. Al especificar el algoritmo y el sistema de cifrado (un certificado o una
clave asimétrica) al crear una copia de seguridad, puede crear un archivo de
copia de seguridad cifrado”
Los tipos de cifrado y los sistemas soportados son según [21] son: “Para cifrar
durante la copia de seguridad, debe especificar un algoritmo y un sistema cifrado
para proteger la clave de cifrado. A continuación se exponen las opciones
admitidas de cifrado:
Algoritmo de cifrado: los algoritmos de cifrado admitidos son AES 128,
AES 192, AES 256 y Triple DES.
Sistema de cifrado: un certificado o una clave asimétrica.
32
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
33
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
34
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
También hay que tener en cuenta que en muchos países existen regulaciones
relacionadas con la protección de los datos personales, lo que implica además
un cumplimiento legal por parte de la organización.
Si bien es importante para los testers y los desarrolladores que la estructura de
la base de datos con la cual van a trabajar sea correcta, no pasa lo mismo con
los datos que contiene, aunque los datos no sean reales es suficiente con que
parezcan reales, por eso la modificación de los datos antes del pasaje de
ambiente se considera una buena práctica para la protección de dichos datos.
Para realizar la modificación de la información que se va trasladar al ambiente de
pruebas existen varias técnicas que son conocidas como técnicas de sanitización
de datos.
Estas son algunas de las técnicas utilizadas para realizar la sanitización de los
datos según “Data Sanitization Techniques” [24]:
5.4.5.1 Valores nulos
Esta técnica consiste simplemente en borrar los datos de una o varias columnas,
aunque es eficaz a la hora de evitar que se filtre información confidencial en
ambientes de prueba, esta técnica no es muy utilizada ya que para realizar
pruebas muchas veces se necesitan datos realistas.
5.4.5.2 Enmascaramiento de datos
Enmascarar datos significa sustituir un campo o parte del mismo con una
máscara, esto permite mantener el formato del dato para ser mostrado por
pantalla o en informes.
Un típico caso es el de enmascarar los números de tarjetas de crédito. La norma
PCI-DSS [6] en su requisito 3.3 exige que los números de tarjeta se encuentren
enmascarados, tanto a la hora de exhibirlos como durante su almacenamiento
(requisito 3.4).
5.4.5.3 Sustitución
Esta técnica consiste en reemplazar el contenido de una columna de datos con
información que es similar a los datos reales. Por ejemplo, los apellidos en una
base de datos de clientes podrían ser modificados mediante la sustitución del
valor real con apellidos extraídos de una lista previamente confeccionada.
35
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
5.4.5.4 Mezclado
El mezclado de datos es similar a la sustitución, excepto que la sustitución de
datos se realiza con datos de la propia columna. Básicamente los datos se
mueven al azar o con algún algoritmo definido entre las filas hasta que ya no hay
ninguna correlación razonable con la información restante en la fila. Esta técnica
es útil para casos en los cuales los datos tienen algún tipo de validación y no
pueden ser inventados por características inherentes a los mismos, por ejemplo
los números de cuil.
5.4.5.5 Varianza numérica
Esta técnica implica la modificación de cada valor numérico en una columna por
un porcentaje aleatorio de su valor real, este tipo de cambio es bastante bueno
para mantener una distribución dentro de rangos aceptables para la información
que se está manejando. Por ejemplo incrementar un porcentaje variable sobre
una determinada columna.
5.4.6 Arquitectura
Otro enfoque posible en la protección de los datos es aquel que se basa en la
estructura física donde se encuentran alojados los datos. Según [19] es
recomendable aplicar una estrategia a nivel de arquitectura para proteger los
datos: “El almacenamiento estratégico de datos y la abstracción de la
organización subyacente de la base de datos proporcionan una manera de
reducir el riesgo de divulgación completa de datos sensibles. Aumentar la
cantidad de conocimientos necesarios requeridos para revelar datos sensibles
fuera de los métodos establecidos reduce los jugadores involucrados en el campo
de batalla.”
A continuación se nombran algunas técnicas de protección propuestas por John
Magnabosco en [19]:
“La normalización ofrece una manera eficiente de almacenar datos dentro de una
base de datos relacional. Para asegurar la normalización ofrece la separación de
los datos sensibles de los datos que se considera menos sensible. Esta
separación aumenta el nivel de revelación que tiene que ocurrir para hacer que
los datos sensibles sean útiles para el ladrón de datos.
36
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
SQL Server ofrece una función de servidor vinculado (Linked Servers) que
presenta la oportunidad de ampliar los beneficios de la normalización a través de
múltiples servidores físicos; aumentando así los requisitos para obtener acceso
a los datos sensibles que se almacenan en el servidor de base de datos diferente.
Vistas y esquemas de base de datos son características a nivel de base de datos
que ofrecen capas de abstracción del esquema subyacente de la base de datos
que proporcionan una forma de proteger datos confidenciales y gestionar de
forma más eficaz el acceso a ella.”
37
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
38
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
Dentro de SQL Server existen cuatro opciones de configuración para registrar los
intentos de login, como se menciona en el artículo de Technet “Server Properties
(Security Page)” [26], las mismas son:
intentos fallidos de login,
intentos exitosos de login,
intentos exitosos y fallidos de login y
ninguno
Aquí la recomendación es establecer la opción de intentos de login fallidos
(opción por defecto en SQL Server 2014), dado que este tipo de información
podría ayudar a detectar algún tipo de ataque de adivinación de contraseña. Si
bien es útil contar con la información de los logins exitosos, los mismos pueden
registrarse por otros medios y evitar de este modo llenar los archivos de registros
de errores.
La habilitación de esta opción se hace a nivel de instancia y desde la sección
“Seguridad” en el SQL Server Management Studio.
También se puede consultar el valor establecido con la ejecución de la siguiente
sentencia:
SQL Server incluye SQL Server Audit, la cual es una funcionalidad que permite
registrar eventos que suceden tanto a nivel de servidor como a nivel de base de
datos. Dicha funcionalidad permite mayor granularidad al momento de definir que
eventos deben ser registrados.
39
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
Como define Microsoft en su artículo “SQL Server Audit” [27] “Puede utilizar SQL
Server Management Studio o Transact-SQL para definir una auditoría. Una vez
creada y habilitada la auditoría, el destino comenzará a recibir entradas.
Puede leer los registros de eventos de Windows mediante la utilidad Visor de
eventos en Windows. Para los destinos de archivo, puede utilizar tanto el Visor
del archivo de registros en SQL Server Management Studio como la
función fn_get_audit_file para leer el archivo de destino.
El proceso general de creación y uso de una auditoría es el siguiente:
Cree una auditoría y defina el destino.
Cree una especificación de auditoría de servidor o una especificación de
auditoría de base de datos que se asigne a la auditoría. Habilite la
especificación de auditoría.
Habilite la auditoría.
Lea los eventos de auditoría mediante el Visor de eventos o el Visor de
archivos de registro de Windows, o la función fn_get_audit_file.”
Microsoft define como buenas prácticas para SQL Audit escribir los eventos de
en el registro de seguridad de Windows (Escribir eventos de auditoría de SQL
Server en el registro de seguridad) [28]: “En un entorno de alta seguridad, el
registro de seguridad de Windows es la ubicación adecuada para escribir los
eventos que registran el acceso a los objetos. Se admiten otras ubicaciones de
auditoría pero están más expuestas a alteraciones.
La directiva de auditoría de Windows puede afectar a la auditoría de SQL Server
si se configura para escribir en el registro de seguridad de Windows, con la
posibilidad de perder eventos si la directiva de auditoría se configura
incorrectamente. Por lo general, el registro de seguridad de Windows se
establece para sobrescribir los eventos más antiguos. De esta forma se
conservan los eventos más recientes. Sin embargo, si el registro de seguridad de
Windows no se establece para sobrescribir los eventos más antiguos, entonces,
si el registro de seguridad se llena, el sistema emitirá el evento 1104 de Windows
(el registro está lleno). En ese punto:
No se registrará ningún evento de seguridad más
40
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
“SQL Trace es una tecnología ligera, pero potente, que puede ejecutarse en SQL
Server; recopila datos de rendimiento seleccionados de cientos de puntos de
datos de rendimiento posibles que van desde bloqueos, conexiones,
instrucciones SQL DML y recompilación” según lo define Adam Jorgensen en
Microsoft SQL Server 2012 Bilble [29].
“Microsoft SQL Server ofrece procedimientos almacenados del sistema Transact-
SQL para crear seguimientos en una instancia del Motor de base de datos de
SQL Server. Puede utilizar estos procedimientos almacenados del sistema desde
sus propias aplicaciones para crear seguimientos manualmente, en lugar de
utilizar el SQL Server Profiler. Esto permite escribir aplicaciones personalizadas
específicas para las necesidades de la organización”, según se menciona en el
artículo de Microsoft Docs “SQL Trace” [30].
41
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
42
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
Una adecuada configuración del firewall de Windows deberá ser uno de los
primeros pasos al instalar el SQL Server para que los puertos necesarios para
realizar la conexión a dicho motor no se encuentren accesibles desde fuera del
servidor. De acuerdo con el artículo de Micorosoft “Configurar el Firewall de
Windows para permitir el acceso a SQL Server” [32]: “Para tener acceso a una
instancia de SQL Server a través de un firewall, debe configurar el servidor de
seguridad en el equipo que ejecuta SQL Server para permitir el acceso. El firewall
es un componente de Microsoft Windows. También puede instalar un firewall de
otra empresa. Este tópico describe cómo configurar el servidor de seguridad de
Windows, pero los principios básicos se aplican a otros programas de
cortafuegos.”
La siguiente tabla [32] tiene listados los puertos en los cuales se encuentran los
servicios de SQL Server:
43
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
Dedicated Admin TCP port 1434 for the By default, remote connections to the
Connection default instance. Other Dedicated Administrator Connection (DAC)
ports are used for named are not enabled. To enable remote DAC, use
instances. Check the error the Surface Area Configuration facet. For
log for the port number. more information, see Surface Area
Configuration.
SQL Server Browser UDP port 1434 The SQL Server Browser service listens for
service incoming connections to a named instance
and provides the client the TCP port number
that corresponds to that named instance.
Normally the SQL Server Browser service is
started whenever named instances of the
Database Engine are used. The SQL Server
Browser service does not have to be started if
the client is configured to connect to the
specific port of the named instance.
SQL Server instance Can be specified when an Used for an HTTP connection through a URL.
running over an HTTP endpoint is created.
HTTP endpoint. The default is TCP port 80
for CLEAR_PORT traffic and
443 for SSL_PORT traffic.
SQL Server default TCP port 443 Used for an HTTPS connection through a URL.
instance running HTTPS is an HTTP connection that uses secure
over an HTTPS sockets layer (SSL).
endpoint.
Service Broker TCP port 4022. To verify the There is no default port for SQL ServerService
port used, execute the Broker, but this is the conventional
following query: configuration used in Books Online examples.
SELECT name,
protocol_desc, port,
state_desc
FROM sys.tcp_endpoints
WHERE type_desc =
'SERVICE_BROKER'
44
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
Database Mirroring Administrator chosen port. There is no default port for database
To determine the port, mirroring however Books Online examples
execute the following query: use TCP port 7022. It is very important to
avoid interrupting an in-use mirroring
endpoint, especially in high-safety mode
with automatic failover. Your firewall
configuration must avoid breaking quorum.
SELECT name, For more information, see Specify a Server
Network Address (Database Mirroring).
protocol_desc, port,
state_desc FROM
sys.tcp_endpoints
WHERE type_desc =
'DATABASE_MIRRORING'
Replication Replication connections to For sync over HTTP, replication uses the IIS
SQL Server use the typical endpoint (ports for which are configurable but
regular Database Engine is port 80 by default), but the IIS process
ports (TCP port 1433 for the connects to the backend SQL Server through
default instance, etc.) the standard ports (1433 for the default
instance.
45
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
Transact-SQL TCP port 135 If using Visual Studio, on the Visual Studio
debugger host computer, you must also
add Devenv.exe to the Exceptions list and
open TCP port 135.
46
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
8 Conclusión
47
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
48
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
9 Bibliografía
[1] Jerome H. Saltzer and M. Schroeder, “The Protection of Information in Computer Systems”,
Massachusetts Institute of Technology, Cambridge, Octubre 1974.
[2] Federal Information Processing Standards, “Standards for Security Categorization of Federal
Information and Information Systems”, NIST, 2004.
[3] Julia Allen et al, “Securing Network Servers”, Carnegie Mellon Software Engineering Institute,
Pittsburgh, Abril 2000.
[4] Karen Scarfone et al, “Guide to General Server Security”, NIST, Gaithersburg, Julio 2008.
[5] Richard Kissel et al, “Guidelines for Media Sanitization”, NIST, Gaithersburg, Diciembre 2014.
[6] PCI Security Standards Council, PCI-DSS 3.2, PCI Security Standards Council, Abril 2016
[7] Microsoft, “Asistente para configuración de seguridad”, https://technet.microsoft.com/es-
us/library/cc754997(v=ws.11).aspx , 2017
[8] Microsoft, “Microsoft Baseline Security Analyzer”, https://technet.microsoft.com/es-
ar/security/cc184924.aspx , 2017
[9] Microsoft, “Microsoft Security Compliance Manager”, https://technet.microsoft.com/es-
us/library/cc677002.aspx, 2017
[10] SomarSoft, “SomarSoft Utilities”, http://www.systemtools.com/somarsoft/index.html, 2017
[11] Technet Microsoft, “AccessEnum v1.32”, https://technet.microsoft.com/en-
us/sysinternals/bb897332, 2017
[12] Microsoft, “Autenticación en SQL Server”, https://msdn.microsoft.com/es-
es/library/bb669066(v=vs.110).aspx, 2017
[13] Microsoft, “Configurar los permisos y las cuentas de servicio de Windows”,
https://msdn.microsoft.com/es-es/library/ms143504.aspx#VA_Desc, Octubre 2016
[14] TechNet Microsoft, “Introducing Managed Service Accounts”,
https://technet.microsoft.com/en-us/library/dd560633(v=ws.10).aspx, 2011
[15] John Savill, “What’s a virtual account?”, http://windowsitpro.com/systems-management/q-
whats-virtual-account, 2009
[16] Microsoft, “ALTER LOGIN (TRANSACT-SQL)”, https://msdn.microsoft.com/es-
es/library/ms189828(v=sql.110).aspx, 2016
[17] Microsoft, “Politicas de seguridad de Windows”, Extraído del comando secpol.msc en
Windows Server 2012R2, 2016
[18] Microsoft, “Directiva de contraseñas”, https://msdn.microsoft.com/es-
es/library/ms161959(v=sql.120).aspx, 2016
[19] John Magnabosco, “Protecting SQL Server Data”, ISBN: 978-1-906434-26-7, 2009
[20] Microsoft, “Cifrado de datos transparente (TDE)”, https://msdn.microsoft.com/es-
es/library/bb934049.aspx, Octubre 2016
49
Javier Tiebas
Desarrollo de un esquema de seguridad en SQL Server
50
Javier Tiebas