domingo, 30 de agosto de 2020

SEGURIDAD DE BASES DE DATOS

 

La seguridad de la información se ocupa de proteger la confidencialidad, disponibilidad e integridad en base de datos de todos los activos de conocimiento de la organización.

Se refiriere a la completitud, la exactitud y la coherencia del conjunto de datos de una base de datos. Podemos tener una percepción de esta integridad en base de datos cuando vemos que entre dos instancias o entre dos actualizaciones de un registro de datos, no hay ninguna alteración, lo que significa que los datos están intactos y sin cambios.

Una amenaza se define como cualquier situación o suceso,  intencionado o accidental, que pueda afectar adversamente  a un sistema y, consecuentemente, a la organización. Las áreas en las que puede presentarse una potencial amenaza son: hardware, SGBD y software de aplicación, redes de comunicaciones, base de datos, usuarios, programadores/operadores, administrador de la base de datos


 La forma de lograrlo tiene que ver con:

  • Confiabilidadtrata del aspecto más importante de la seguridad de base de datos. Este objetio se alcanza a través del La encriptación ha de aplicarse a datos en reposo, pero también a los datos que, por un motivo u otro, se encuentren en tránsito.
  • Integridad en base de datos: busca garantizar que sólo las personas autorizadas a ello podrán acceder a información privilegiada de la empresa. La integridad de una base de datos se aplica a través de protocolos de autenticación, políticas internas (como las que impulsan la seguridad de las contraseñas) y un sistema de control de acceso de usuario que define los permisos que determinan quién puede acceder a qué datos. Tampoco puede olvidarse el tomar medidas que ayuden a conseguir que las cuentas no utilizadas queden bloqueadas o sean eliminadas.
  • Disponibilidad: hace referencia a la necesidad de que las bases de datos y toda la información que contienen estén listas para su uso. Por una parte, se debe garantizar su funcionalidad y confiabilidad mientras que, por otra, es recomendable planificar los tiempos de inactividad fuera del horario laboral.

Garantizar la integridad en base de datos, así como su disponibilidad y confiabilidad es determinante para el buen funcionamiento del negocio. Sin embargo, la amenaza no da tregua y, a día de hoy, los ataques se multiplican, tanto en frecuencia, como en objetivo. Los piratas informáticos ya no codician sólo los activos informacionales de las grandes corporaciones multinacionales, sino que tienen en su punto de mira a todo tipo de empresas, independientemente de su tamaño, propósito o industria.

 

 

Tipos de ataques a la integridad en base de datos

Está claro que el riesgo implícito en este tipo de acciones maliciosas varía de una organización a otra, aunque entre los ataques más comunes se encuentran los que tienen como objetivo:

  • Datos personales de clientes, números de tarjetas de crédito y seguridad social.
  • Detalles estratégicos del negocio.
  • Información financiera de la propia compañía y de sus socios.
  • Datos sensibles acerca de los empleados.

Podría decirse que se trata de la mayoría de las bases de datos activas en los directorios de la empresa, al menos, todas las que, de alguna forma, resultan relevantes para el negocio. Precisamente por ello, es necesario mantener sólidas prácticas de seguridad y estrategias de defensa que permitan combatir este tipo de ataques, también en sus versiones más recientes y sofisticadas, como el phisinig, el spear phising, la inyección SQL, el DDos, la amenaza persistente avanzada o el ransomware.

Según la Encuesta de Amenazas de Inyección SQL de Ponemon, “el 65% de las organizaciones encuestadas habían experimentado un exitoso ataque de estas características en el último año”. Entre las causas que podrían haber motivado la vulneración de la integridad en base de datos se encuentran la falta de escaneo de database o su escaneo irregular, un error común en el 47% de los casos.

Se trata de un dato sorprendente, sobre todo si se tiene en cuenta que, el 49% de los encuestados calificaron el nivel de amenaza de una inyección de SQL en su organización con una puntuación de 9 o 10.

Sin embargo, no hace falta ir tan lejos, la autenticación débil es la amenaza más común a la seguridad y la integridad en base de datos. Una misma contraseña usada con fines distintos, compartida entre usuarios, que nunca se actualiza o que resulta obvia facilita el trabajo de un atacante malintencionado en su misión encaminada a robar la identidad de un usuario legítimo. Una vez que conoce esos 8, 10 o 12 dígitos, ya tiene acceso a datos confidenciales, ya tiene a la organización en sus manos.

 

Mejores prácticas en seguridad que ayudan a garantizar la integridad en base de datos

Una de las formas más efectivas de garantizar la integridad en base de datos es implementando algunas de las mejores prácticas de seguridad. Entre ellas se encuentran las siguientes:

  • Recurrir al enmascaramiento de datos o permitir a los usuarios acceder a cierta información sin poder verla ayuda a mantener la confidencialidad incluso en entornos de pruebas.
  • Minimizar los extras y limitarse a los servicios, aplicaciones y funcionalidades que realmente son necesarios para asegurar el normal funcionamiento de las operaciones del negocio, de esta forma se reduce el riesgo.
  • Asegurarse de que los administradores de la base de datos entiendan la importancia de garantizar su protección.
  • Mantener actualizadas las bases de datos y eliminar los componentes desconocidos.
  • Recurrir a herramientas como el análisis de código estático, que ayudan a reducir los problemas de inyección de SQL, desbordamiento de búfer y problemas de configuración.
  • Hacer copias de seguridad frecuentes y emplear una fuente de alimentación ininterrumpida o SAI que garantice que un corte de energía no causa la pérdida de datos.

 




sábado, 29 de agosto de 2020

RESTRICCIONES DE BASES DE DATOS

 


Las restricciones son reglas que usted crea en el momento del diseño y que protegen sus datos para que no se corrompan. Es esencial para la supervivencia a largo plazo de su hijo corazón de una solución de base de datos. Sin restricciones, su solución definitivamente decaerá con el tiempo y el uso intensivo.

Debe reconocer que diseñar el diseño de su base de datos es solo el nacimiento de su solución. Aquí, después de eso, debe vivir (con suerte) mucho tiempo y soportar todo tipo de comportamiento (extraño) por parte de sus usuarios finales (es decir, aplicaciones de cliente). ¡Pero esta fase de diseño en desarrollo es crucial para el éxito a largo plazo de su solución! Respétenlo, y paguen el tiempo y la atención que requiera. 


Hay básicamente 4 tipos de restricciones principales en SQL:

  • Restricción de dominio: si uno de los valores de atributo proporcionados para un nuevo Tuple no es del dominio de atributo especificado
  • Restricción de clave: si el valor de un atributo de clave en una nueva tupla ya existe en otra tupla en la relación
  • Integridad referencial: si un valor de clave externa en una nueva tupla hace referencia a un valor de clave principal que no existe en la relación referenciada
  • Integridad de la entidad: si el valor de la clave principal es nulo en una nueva tupla


 Las restricciones se van a definir acompañadas por un nombre, lo que permitirá activarlas o desactivarlas según sea el caso; o también mezcladas en la definiciones de las columnas de la tabla. A continuación vamos a describir cada una de las restricciones mencionada

La cláusula NOT NULL indica que la columna no podrá contener un valor nulo, es decir que se deberá rellenar obligatoriamente y con un valor válido (equivale a la propiedad requerido Sí de las propiedades del campo).

La cláusula CONSTRAINT sirve para definir una restricción que se podrá eliminar cuando queramos sin tener que borrar la columna. A cada restricción se le asigna un nombre que se utiliza para identificarla y para poder eliminarla cuando se quiera.

Como restricciones tenemos la de clave primaria (clave principal), la de índice único (sin duplicados), la de valor no nulo, y la de clave foránea.

La cláusula PRIMARY KEY se utiliza para definir la columna como clave principal de la tabla. Esto supone que la columna no puede contener valores nulos ni pueden haber valores duplicados en esa columna, es decir que dos filas no pueden tener el mismo valor en esa columna.

En una tabla no pueden haber varias claves principales, por lo que no podemos incluir la cláusula PRIMARY KEY más de una vez, en caso contrario la sentencia da un error. No hay que confundir la definición de varias claves principales con la definición de una clave principal compuesta por varias columnas, esto último sí está permitido y se define con una restricción de tipo 2.

La cláusula UNIQUE sirve para definir un índice único sobre la columna. Un índice único es un índice que no permite valores duplicados, es decir que si una columna tiene definida un restricción de UNIQUE no podrán haber dos filas con el mismo valor en esa columna. Se suele emplear para que el sistema compruebe el mismo que no se añaden valores que ya existen, por ejemplo si en una tabla de clientes queremos asegurarnos que dos clientes no puedan tener el mismo D.N.I. y la tabla tiene como clave principal un código de cliente, definiremos la columna dni con la restricción de UNIQUE.

La cláusula NOT NULL indica que la columna no puede contener valores nulos, cuando queremos indicar que una columna no puede contener el valor nulo lo podemos hacer sin poner la cláusula CONSTRAINT, o utilizando una cláusula CONSTRAINT.

 


 

sábado, 22 de agosto de 2020

INTEGRIDAD REFERENCIAL

                


 La integridad referencial es un sistema de reglas que utilizan la mayoría de las bases de datos relacionales para asegurarse que los registros de tablas relacionadas son válidos y que no se borren o cambien datos relacionados de forma accidental produciendo errores de integridad. 

TIPOS DE INTEGRIDAD REFERENCIAL

  1. Integridad referencial débil
  2. Integridad referencial parcial
  3. Integridad completa
Integridad referencial débil

Si en una dupla de R todos los valores de los atributos de K tiene un valor que no es nulo, entonces debe existir una tupla en S que tome en los atributos de J los mismos valores en los atributos J.

Integridad referencial parcial

Si en una tupla R algún atributo de K toma el valor nulo, entonces debe existir una tupla en S que tome en los atributos de  los mismos valores que los atributos de K con el valor no nulo.

Integridad completa:

En una tupla de R todos los atributos de K deben de tener el valor nulo o bien todos tienen un valor que no es nulo y entonces debe existir una tupla en S que tome en los atributos de J los mismos valores que toman los de K.


CUALES SON LAS REGLAS DE INTEGRIDAD REFERENCIAL

 La regla de integridad referencial se enmarca en términos de estados de la base de datos: indica lo que es un estado ilegal, pero no dice cómo puede evitarse. La cuestión es ¿qué hacer si estando en un estado legal, llega una petición para realizar una operación que conduce a un estado ilegal? Existen dos opciones: rechazar la operación, o bien aceptar la operación y realizar operaciones adicionales compensatorias que conduzcan a un estado legal.

Por lo tanto, para cada clave ajena de la base de datos habrá que contestar a tres preguntas:Regla de los nulos: ¿Tiene sentido que la clave ajena acepte nulos?Regla de borrado: ¿Qué ocurre si se intenta borrar la tupla referenciada por la clave ajena? ¿Qué ocurre si se intenta modificar el valor de la clave primaria de la tupla referenciada por la clave ajena?

TIPOS DE RELACIONES  

 Existen relaciones de diferentes tipos. El tipo de relación que utiliza Access al unir dos tablas dependerá de cómo estén definidos los campos relacionados.

Relación de uno a varios (1,n).  
 
 


Se crea una relación de uno a varios si uno de los campos relacionados es una clave principal. Esta relación es la más común. Cada registro de una tabla puede estar enlazado con varios registros de una segunda tabla, pero cada registro de la segunda sólo puede estar enlazado con un único registro de la primera.

 
Relación de uno a uno (1,1).  

 

Se creará una relación de este tipo si ambos campos relacionados son claves principales. En este tipo de relación, un registro de la tabla uno sólo puede estar relacionado con un único registro de la tabla dos y viceversa. No es muy usada.
 

Relación de varios a varios (n,m).  

 

En este caso, ninguno de los campos relacionados son claves principales. Cada registro de la primera tabla puede estar enlazado con varios registros de la segunda y viceversa. Este tipo de relación implica la repetición de los campos de cada tabla; esto es lo que Access pretende evitar. Para establecer relaciones de este tipo, es necesario crear una tabla intermedia que esté relacionada con las dos de uno a varios.





APLICACIONES PARA LA GESTIÓN DE PROYECTOS

   Las empresas trabajan en múltiples proyectos al mismo tiempo. Forman equipos de personal y los asignan a líderes experimentados que as...