Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Presentado por
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Tutor:
xxxxxxxxxxxxxxxxxxxxxxxx
Para esta actividad se debe realizar una investigación sobre las opciones y herramientas
suministradas por un sistema manejador de base de datos (SMBD) relacionadas con la
seguridad de la información. Dentro de la investigación debe tener presente los
siguientes aspectos:
* Características de seguridad configurables.
* Cuentas de Usuario y privilegios sobre los objetos del Sistema.
* Integridad
* Mecanismos de integridad y privacidad
* Funciones de seguridad
Para Desarrollar este taller tomares como referencia el manejador de base de Datos Microsoft SQL
Server
Microsoft SQL Server es una aplicación de modo de usuario, aunque se ejecuta en el servicio
de Windows. La cuenta de servicio es completamente una cuenta de usuario de Windows y
proporciona privilegios de seguridad para que el servicio SQL Server acceda a los recursos
de la plataforma Windows, como el sistema de archivos, la red y el registro. El punto más
importante es que SQL Server Service Account no se debe compartir con otras instancias de
SQL Server y se prefiere estar en un controlador de dominio (DC).
Microsoft SQL Server tiene varias capas de seguridad, la primera capa es la seguridad del canal
de comunicación que es aplicada por TSL o protocolo SSL. La segunda capa está en el nivel de
instancia que está protegido por la API de protección de datos de Windows (DPAPI), DPAPI es en
la función de cifrado en la plataforma de Windows para cifrar y descifrar datos y el algoritmo es
diferente en cada máquina. Los inicios de sesión, los roles de servidor y las credenciales son objetos
de seguridad de nivel de instancia en SQL Server y el usuario, el certificado, las funciones, los
esquemas y las claves de cifrado son objetos de seguridad de nivel de base de datos. La figura
siguiente muestra las capas de seguridad de SQL Server. SQL Server Service Key es la clave de
cifrado básica en la plataforma SQL Server y está protegida por DPAPI, la clave de servicio siempre
se crea mediante el proceso de SQL Server durante el primer inicio y el usuario no puede crearla, el
usuario tiene la capacidad de hacer una copia de seguridad y restaurarla en la misma instancia u
otras instancias. La clave maestra es una clave opcional en cada base de datos y puede protegerse
mediante la clave de servicio o una contraseña segura proporcionada por el usuario. El usuario
puede hacer una copia de seguridad de la clave maestra y restaurarla en la misma base de datos u
otra base de datos. Regenerar la clave del servicio regenerará todas las claves secundarias, como las
claves maestras y de encriptación (simétrica o asimétrica).
El algoritmo de cifrado varía en SQL Server y depende de la clave de cifrado, no todas las claves
de cifrado admiten todos los algoritmos en SQL Server. SQL Server puede admitir algoritmos de
cifrado como AES, AES_128, AES_192, AES_256, DES, Triple_DES, RSA_2048, MD5, SHA1, SHA2_512
(Introducido en SQL Server 2012) y RC4.
SQL Server proporciona una función para encriptar la base de datos para evitar que se lea la base
de datos robada. El cifrado de la base de datos es una opción opcional en cada base de datos. SQL
Server no cifra la base de datos completa al mismo tiempo cuando la característica está habilitada
en una base de datos, SQL Server encriptará cada página cuando el proceso “Lazywriter” necesita
escribir la página en el disco y descifrarla cuando lee la página del disco. La función de cifrado de la
base de datos se denomina “Cifrado transparente de la base de datos” y solo está disponible en las
ediciones “Enterprise” y se presentó en SQL Server 2005.
La seguridad de SQL Server no está completa en la instancia, debe haber un entorno de red seguro
para reducir o evitar ataques al servidor. Para garantizar la seguridad del SQL Server, existen algunos
factores, como la cuenta de servicio, el protocolo de comunicación y la configuración del firewall.
SQL Server transfiere datos a través de la red con el protocolo Tabular Data Stream (TDS), que es el
formato estándar para que SQL Server se comunique con la aplicación cliente. Los piratas
informáticos pueden detectar la red mediante la aplicación “WireShark” y explorar los datos
transferidos a través de la red. Para proteger los datos en la red, SQL Server puede encriptar el
protocolo TDS con protocolo SSL. Para habilitar el protocolo SSL, SQL Server necesita un certificado
auto firmado o un certificado autorizado de los proveedores de certificados. Los administradores
pueden habilitar el protocolo SSL en SQL Server habilitando la opción “Forzar cifrado” o mediante
la opción “Encriptar” en la cadena de conexión de la aplicación.
En algunos casos, se otorgan privilegios de alto nivel a PUBLIC por defecto cuando se crea
la base de datos. Sin embargo, por motivos de seguridad, sólo se deben otorgar privilegios
a PUBLIC cuando sea absolutamente necesario.
Para obtener información sobre otros grupos predefinidos, consulte la documentación de
su sistema de administración de bases de datos.
Cree grupos separados (roles) para los privilegios de sistema y de objeto. Esto
permite al administrador de la base de datos gestionar los privilegios de la base de
datos concediéndolos a los grupos del sistema, y a los propietarios de los datos
conceder privilegios sobre sus datasets otorgándolos a grupos de objetos.
Elija una convención de nomenclatura que refleje cada tipo de grupo (rol) para
lograr una referencia fácil. Por ejemplo, para un grupo que puede editar todos los
datos sobre el suelo, puede nombrar al grupo LANDBASE_EDITORS.
Otorgue privilegios directamente al administrador de la database y otorgue
privilegios mediante grupos (roles) para todos los demás usuarios. El administrador
de la database es una entidad única. En la mayoría de los casos, existe sólo un
usuario de este tipo para cualquier tipo de database y no es parte de un grupo lógico
de usuarios mayor. Los administradores de bases de datos con experiencia
consideran que otorgar privilegios directamente a tales cuentas del administrador
de la aplicación es un buen diseño. Por el contrario, las cuentas para usuarios no
administradores deben recibir privilegios mediante grupos que representen la
descripción del trabajo, las responsabilidades del proyecto u otra clasificación lógica
en la organización.
Evite mezclar los roles con los privilegios otorgados directamente a las cuentas de
usuarios no administradores. Cuando las cuentas de usuarios no administradores
reciben privilegios mediante ambos roles y otorgamientos directos, un modelo de
seguridad bien planificado puede transformarse rápidamente en un desorden
imposible de manejar que requiere un tiempo y un esfuerzo considerable para
volver a un estado organizado. Establezca políticas para que los propietarios de los
datos sigan cuando otorguen acceso a sus datos.
Integridad
Niveles de la integridad de datos
La integridad de datos se define en los siguientes niveles:
Integridad de dominio
Se conoce como el dominio de un atributo al conjunto de valores aceptables para dicho
atributo. La integridad de dominio establece qué condiciones deben cumplir los valores a
insertar en una columna. La integridad de dominio se define mediante reglas de
validación, valores predeterminados, conjunto de valores permitidos en la columna (llave
foránea), tipo y formato de los datos.
Integridad de entidad
Una tabla almacena los datos de cada una de las ocurrencias de una entidad. La entidad (o
tabla) requiere que todas sus filas sean únicas. Esto se garantiza definiendo para cada fila
de la entidad un identificador único (llave primaria).
Integridad referencial
La integridad referencial garantiza que la relación entre la llave primaria (en la tabla
referenciada) y la llave foránea (en la tabla de referencia) siempre se mantiene. Una fila
en una tabla referenciada no puede anularse, ni cambiar su valor de la llave primaria, si
una llave foránea se refiere a la fila.
Integridad procedural
La integridad procedural se establece cuando definimos la integridad de datos a través de
la programación. Consiste en la creación de desencadenantes (triggers), procedimientos
almacenados (stored procedures), y funciones (user defined functions).
Las restricciones (constraints)
Las restricciones son un método declarativo de definición de la integridad de datos ya que
ellas se definen al momento de crear la tabla (con la sentencia CREATE TABLE), o al
momento de modificar la definición de la tabla (con la sentencia ALTER TABLE). En otras
palabras, una restricción forma parte de la definición de la tabla. Las restricciones son el
método preferido para dar fuerza a la integridad de los datos.
Tipos de restricciones
Las restricciones son un método estándar ANSI para forzar la integridad de los datos.
Garantizan que los datos ingresados en las columnas sean valores válidos y que se
mantengan las relaciones entre las tablas.
La tabla siguiente describe los diferentes tipos de restricciones.
las restricciones se definen al momento de definir la tabla con las sentencias CREATE TABLE
o ALTER TABLE.
CREATE TABLE nombre_tabla(
columna1 tipo_dato propiedades
CONSTRAINT nombre_restricción ... ,
columna2 tipo_dato propiedades
CONSTRAINT nombre_restricción ... , ... )
ALTER TABLE nombre_tabla
ADD CONSTRAINT nombre_restricción ...
Define cuál es el valor por defecto de una columna cuando al ejecutar INSERT no se
especifica el valor de dicha columna.
Ejemplo
USE biblioteca
ALTER TABLE prestamo
ADD CONSTRAINT df_fecha_sal
DEFAULT getdate( ) FOR pre_fec_sal
Establece que el valor predeterminado de la columna pre_fec_sal de la tabla prestamo es
la fecha del sistema.
Define la regla que debe cumplir el valor a ingresar a una columna. Se verifica
durante la ejecución de INSERT y UPDATE.
Ejemplo
ALTER TABLE ejemplar
ADD CONSTRAINT chk_disponibilidad
CHECK ( eje_dis LIKE'[ SN]' )
El contenido de la columna eje_dis de la tabla ejemplar debe ser 'S' o 'N'.
Funciones de seguridad
Las siguientes funciones devuelven información útil para la administración de la
seguridad. En Funciones de cifrado (Transact-SQL) se enumeran más funciones.
PERMISSIONS (Transact-SQL)
Referencia de Consulta
https://docs.microsoft.com/es-es/sql/t-sql/functions/security-functions-transact-sql?view=sql-
server-ver15
http://drsoftworld.blogspot.com/2018/04/la-integridad-de-datos-sql-server.html
https://www.sothis.tech/seguridad-en-microsoft-sql-server/
https://docs.microsoft.com/es-es/sql/relational-databases/security/security-center-for-sql-server-
database-engine-and-azure-sql-database?view=sql-server-ver15
https://desktop.arcgis.com/es/arcmap/10.3/manage-data/gdbs-in-sql-server/user-accounts-
groups.htm