Академический Документы
Профессиональный Документы
Культура Документы
SGBD.
Octubre 2019
Sena
Sena Virtual
En esta actividad se realizará una investigación con el tema de seguridad en los SGBD que
lenguajes que permiten a los distintos usuarios realizar sus tareas habituales con los datos,
garantizando además una estructura óptima para la seguridad de los mismos, muy necesaria para
la administración de una base de datos y así logra una competencia integral para afrontar
Generales
Conocer las características de un sistema manejador de bases de datos SGBD que nos
Específicos
Manejo de integridad.
informáticos
Contenido
Introducción ............................................................................................................................... 2
Objetivos .................................................................................................................................... 3
Conclusiones ............................................................................................................................ 29
1
SGBD.
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
¿Qué es SQL-Injection?
de seguridad que está casi separado el uno del otro. La seguridad de Database Engine incluye la
mecanismo para proteger sus datos o aplicaciones. La seguridad en el entorno de SQL Server no
está limitada a la encriptación: SQL Server debe tener seguridad física para proteger todo el rack
del servidor contra cualquier problema vulnerable y también la seguridad raíz de la instancia
de SQL Server. La seguridad en SQL Server puede ser Autenticación y Autorización de usuarios
contra datos e instancia de SQL Server. Recuerde siempre crear un entorno seguro para su SQL
Server, debe tener seguridad en las fases de Diseño, Desarrollo e Implementación de su software
Desarrollo.
Microsoft SQL Server es una aplicación de modo de usuario, aunque se ejecuta en el servicio
proporciona privilegios de seguridad para que el servicio SQL Server acceda a los recursos de la
3
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
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
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
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
4
clave del servicio regenerará todas las claves secundarias, como las claves maestra y de
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
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.
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,
5
como un proceso de modo de usuario, luego necesita una cuenta de Windows para iniciarlo y
proporciona privilegios de seguridad. La cuenta de servicio puede ser una cuenta de usuario o
una cuenta de sistema, la plataforma Windows Server 2008 R2 y, más adelante, la “Cuenta de
servicio virtual” que comienza con “NT Service \”. Tenga en cuenta que SQL Server no necesita
privilegios de seguridad del administrador, solo necesita tener privilegios para enumerar
registro. Hay tres cuentas integradas de Windows tales como “Sistema local”, “Servicio de red”
administración de contraseñas. Se crea una vez que el servicio SQL Server se instala
servicio virtual. El nombre de la cuenta del servicio virtual se inicia con “NT Service \”.
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
6
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
certificados. Los administradores pueden habilitar el protocolo SSL en SQL Server habilitando la
aplicación.
Para proteger el entorno SQL Server, los administradores usan Firewall para controlar la
conexión entrante y saliente, en el entorno SQL Server algunos números de puerto deben
configurarse correctamente para las conexiones entrantes y salientes; de lo contrario, SQL Server
no podrá acceder a las aplicaciones cliente. Debajo de los puertos de SQL Server no se deben
El siguiente código devuelve todos los puertos que SQL Server usa actualmente en su
entorno.
número de puerto de la instancia con nombre de SQL Server y administrar los números de puerto
dinámico. Deshabilitar el Navegador del Servidor SQL puede causar una falla en la conexión del
usuario.
característica TDE encripta toda la base de datos con la clave proporcionada y puede encriptar
los datos y el archivo de registro al mismo tiempo. TDE es totalmente transparente desde la
perspectiva del usuario y la aplicación. TDE puede admitir claves de cifrado como
SQL Server como “Integration Services”, “Analysis Services” o “Reporting Services”. Y los
Cliente DHCP
Cliente DNS
Cola de impresión
Linked-Server es otra característica de SQL Server que puede conectar la instancia de SQL
Server a otra instancia de SQL Server u Oracle Database para transferir datos. Linked-Server
Opción Descripción
Hacerse usando este contexto de seguridad mapeados se conecten usando el inicio de sesión de
Las primeras medidas que suelen tomar los administradores es desactivar las características
“OpenDataSource” en SQL Server para reducir el riesgo de seguridad de los ataques de SQL
Server. Endpoint es una especie de puerta para que SQL Server se comunique con usuarios y
aplicaciones. Endpoint puede ser creado y utilizado por el usuario o el sistema. El protocolo del
punto final puede ser HTTP o TCP en SQL Server 2005 y SQL Server 2008 – R2 y solo TCP en
SQL Server 2012. El extremo definido por el usuario puede ser para TSQL, Service Broker o
Database Mirroring.
Las cuentas de inicio usadas para iniciar y ejecutar SQL Server pueden ser cuentas de usuario
virtualeso cuentas del sistema integradas. Para poder iniciarse y ejecutarse, cada servicio de SQL
Server debe tener una cuenta de inicio que se configura durante la instalación.
Ahora se describen las cuentas que se pueden configurar para iniciar los servicios de SQL
Server, los valores predeterminados que usa el programa de instalación de SQL Server, el
concepto de SID por servicio, las opciones de inicio y la configuración del firewall.
Inicio automático
Puerto de firewall
10
programa de instalación para instalar todos los componentes. Las cuentas predeterminadas
datos
Server Distributed
Replay Controller
11
Server Distributed
Replay Client
(búsqueda de texto
completo)
Server Browser
Writer
análisis avanzado
PolyBase
12
movimiento de
datos de PolyBase
uso de una cuenta de servicio administrada (MSA), configurada con los privilegios mínimos
necesarios.
cuentas de servicio.
Windows Server
Motor de base de datos Ninguno. Proporcione una cuenta Proporcione una cuenta
Windows Server
(búsqueda de texto
completo)
Importante
Server para cambiar la cuenta utilizada por Motor de base de datos de SQL Server o los servicios
del Agente SQL Server , o para cambiar la contraseña de la cuenta. Además de cambiar el
adicional como actualizar la seguridad local de Windows almacenada que protege la clave
maestra de servicio para el Motor de base de datos. Otras herramientas, como el Administrador
configuración requerida.
14
Para las instancias de Analysis Services que se implementen en una granja de SharePoint,
utilice siempre Administración central de SharePoint para cambiar las cuentas de servidor para
configuración y los permisos asociados para usar la nueva información de cuenta cuando utilice
Administración central.
Reporting Services.
virtuales
Las cuentas de servicio administradas, las cuentas de servicio administradas de grupo y las
cuentas virtuales están diseñadas para proporcionar a aplicaciones vitales como SQL Server el
credenciales de estas cuentas. Estas cuentas facilitan en gran medida la administración a largo
administrada por el controlador de dominio. Se asigna a un solo equipo de miembro para usarla
puede utilizar MSA para iniciar sesión en un equipo, pero un equipo puede utilizar MSA para
iniciar un servicio de Windows. Una MSA tiene la posibilidad de registrar un nombre de entidad
15
contraseña. Debido a que una MSA se asigna a un único equipo, no se puede utilizar en nodos
Nota
El administrador de dominio debe crear la MSA en Active Directory para que la instalación
Una cuenta de servicio administrada de grupo es una MSA para varios servidores. Windows
administra una cuenta de servicio para los servicios que se ejecutan en un grupo de
administrada de grupo sin necesidad de reiniciar los servicios. Puede configurar servicios de
SQL Server para usar una entidad de seguridad de cuenta de servicio administrada de grupo. A
partir de SQL Server 2014, SQL Server admite cuentas de servicio administradas de grupo para
instancias independientes, y SQL Server 2016 y versiones posteriores para instancias de clúster
Para usar una cuenta de servicio administrada de grupo para SQL Server 2014 o posterior, el
sistema operativo debe ser Windows Server 2012 R2 o posterior. Los servidores con Windows
Server 2012 R2 necesitan que KB 2998082 esté aplicado para que los servicios puedan iniciar
Nota
16
Directory para que la instalación de SQL Server pueda usarla para los servicios de SQL Server .
Virtual Accounts
Las cuentas virtuales (a partir de Windows Server 2008 R2 y Windows 7) son cuentas locales
del servicio. La cuenta virtual se administra automáticamente y la cuenta virtual puede tener
servicio durante la instalación de SQL Server, se usará una cuenta virtual con el nombre de
instancia como nombre del servicio, con el formato NT SERVICE\ <NOMBRE DEL
SERVICIO> . Los servicios que se ejecutan como cuentas virtuales acceden a los recursos de red
iniciar SQL Server, deje en blanco la contraseña. Si la cuenta virtual no puede registrar el
nombre principal de servicio (SPN), registre el SPN manualmente. Para más información sobre
Nota
No se pueden usar cuentas virtuales para la instancia de clúster de conmutación por error
de SQL Server , ya que la cuenta virtual no tendría el mismo SID en cada nodo del clúster.
de base de datos .
Para obtener más información sobre las cuentas de servicio administradas y las cuentas
virtuales, vea la sección Managed service account and virtual account concepts (Conceptos
Guide (Guía paso a paso de cuentas de servicio) y Managed Service Accounts Frequently Asked
Nota de seguridad: Ejecute siempre los servicios SQL Server con los derechos de usuario
mínimos posibles. Use una MSA o una cuenta virtual siempre que sea posible. Cuando no se
puedan usar MSA ni cuentas virtuales, emplee una cuenta de usuario específica con privilegios
bajos o la cuenta de dominio en lugar de una cuenta compartida para los servicios de SQL
Server . Utilice cuentas independientes para los diferentes servicios de SQL Server . No otorgue
permisos adicionales a la cuenta de servicio ni a los grupos de servicios de SQL Server . Los
18
Inicio automático
Además de las cuentas de usuario, cada servicio tiene tres posibles estados de inicio que los
Manual : el servicio se ha instalado, pero solo se iniciará cuando otro servicio o aplicación
necesite su funcionalidad.
El estado de inicio se selecciona durante la instalación. Al instalar una instancia con nombre,
Puerto de firewall
En la mayoría de los casos, cuando se instala inicialmente, el Motor de base de datos puede
conectarse con herramientas como SQL Server Management Studio instaladas en el mismo
equipo que SQL Server. El programa de instalación deSQL Server no abre los puertos en el
firewall de Windows. Las conexiones desde otros equipos pueden no ser posibles hasta que el
Motor de base de datos se configura para escuchar en un puerto TCP y el puerto adecuado se
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
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
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
La integridad de datos se puede definir como parte de la declaración de una tabla, ó también
mediante programación.
20
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
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
Las restricciones se definen al momento de definir la tabla con las sentencias CREATE
Define cuál es el valor por defecto de una columna cuando al ejecutar INSERT no se
Ejemplo
USE biblioteca
Define la regla que debe cumplir el valor a ingresar a una columna. Se verifica
Ejemplo
Define cuál es la llave primaria de una tabla. La columna o combinación de columnas no debe
Ejemplo
Define que mas de una fila no pueden tener el mismo valor en una columna. Permite nulo.
Ejemplo:
Establece que la columna tem_des de la tabla tema no puede tener descripciones iguales.
llave foránea de la tabla secundaria. La tabla primaria debe tener definida su restricción
Ejemplo
tomen todas las medidas necesarias que posibilite prevenir una catástrofe cibernética, como el
robo de información.
RESPECTO?
Los Hacking son realizadas por personas con conocimientos avanzados sobre las debilidades
de las computadoras, de las redes informáticas y de seguridad que utilizan todo ese conocimiento
para beneficio propio afectando otras personas, estos delitos son hechos en gran porcentaje en la
falta de conocimiento de los temas de seguridad (en cuanto a claves de tarjetas débito, crédito,
de la República de Colombia promulgó la Ley 1273 “Por medio del cual se modifica el Código
Penal, se crea un nuevo bien jurídico tutelado – denominado “De la Protección de la información
y de los datos”- y se preservan integralmente los sistemas que utilicen las tecnologías de la
25
información y las comunicaciones, entre otras disposiciones”, pero para mi concepto esto no
debe ser todo, hay que brindar pedagogías sobre el tema, en las mismas entidades, colegios,
universidades, por los medios de tv, radio, aún más intensos de lo que se viene haciendo, porque
la idea no es castigar por algo que ocurrió, sino, evitar que el hecho ocurra y esto se hace en gran
¿QUÉ ES SQL-INJECTION?
Sql Injection ó Inyección SQL es una vulnerabilidad que permite al atacante enviar o
“inyectar” instrucciones SQL de forma maliciosa y malintencionada dentro del código SQL
programado para la manipulación de bases de datos, de esta forma todos los datos almacenados
entre otros), borrar la base de datos, cambiar el nombre a las tablas, anular transacciones, el
Esto ocurre normalmente a la mala filtración de las variables en un programa que tiene o crea
validadas, como por ejemplo su nombre y contraseña, pero a cambio de esta información el
atacante envía una sentencia SQL invasora que se ejecutará en la base de datos.
26
DE SQL?
A la hora de desarrollar una aplicación, es muy complicado crear una herramienta totalmente
para su desarrollo, son factores que juegan en contra de la seguridad. A pesar de estos
inconvenientes, siempre se pueden tomar medidas de seguridad que nos ayuden a desarrollar
Algunos consejos para evitar sufrir el ataque por inyección de código SQL en nuestros
desarrollos:
Al hablar de “escapar caracteres” estamos haciendo referencia a añadir la barra invertida “\”
delante de las cadenas utilizadas en las consultas SQL para evitar que estas corrompan la
consulta. Algunos de estos caracteres especiales que es aconsejable escapar son las comillas
dobles (“), las comillas simples (‘) o los caracteres \x00 o \x1a ya que son considerados como
Los distintos lenguajes de programación ofrecen mecanismos para lograr escapar estos
caracteres. En el caso de PHP podemos optar por la función mysql_real_scape_string(), que toma
como parámetro una cadena y la modifica evitando todos los caracteres especiales,
Si en una consulta estamos a la espera de recibir un entero, no confiemos en que sea así, sino
trata del tipo de dato que estamos esperando. Para realizar esto, los lenguajes de programación
ofrecen funciones que realizan esta acción, como pueden ser ctype_digit() para saber si es un
número o ctype_alpha () para saber si se trata de una cadena de texto en el caso del lenguaje
PHP.
También es aconsejable comprobar la longitud de los datos para descartar posibles técnicas de
inyección SQL, ya que si por ejemplo estamos esperando un nombre, una cadena
extremadamente larga puede suponer que estén intentando atacarnos por este método. En el caso
El usuario que utilicemos para conectarnos a la base de datos desde nuestro código debe tener
los privilegios justos para realizar las acciones que necesitemos. No utilizar nunca un usuario
root con acceso a todas las bases de datos ya que de esta forma estaremos dando facilidades a los
e) Programar bien
Aunque pueda parecer una tontería, no hay mejor medida para evitar este tipo de ataques que
realizar una buena programación, poniendo en práctica las necesidades básicas y el interés para
Además de las medidas que podemos tomar a la hora de implementar el código, siempre
podemos acudir a auditorías de código para asegurarnos de que no hemos dejado ningún tipo de
puertas abiertas, aunque suelen ser procesos caros realizados por terceras empresas.
29
CONCLUSIONES
que deben tener los SMBD y conocer para mantener la integridad, seguridad con las
Bibliografía
http://drsoftworld.blogspot.com/2018/04/la-integridad-de-datos-sql-server.html
Micrososft. (s.f.). Configurar los permisos y las cuentas de servicio de Windows. Obtenido de
https://docs.microsoft.com/es-es/sql/database-engine/configure-windows/configure-windows-
service-accounts-and-permissions?view=sql-server-ver15
https://openwebinars.net/blog/que-es-sql-injection/
https://www.sothis.tech/seguridad-en-microsoft-sql-server/