Mortuux

Diario de un estudiante geek. Informática, tecnología, programación, redes, sistemas operativos, bases de datos…

Archivos por Etiqueta: seguridad

Bases de datos relacionales.



  1. Bases de datos relacionales

    Objetivos y ventajas del modelo relacional

El principal objetivo del modelo relacional es traducir el modelo de negocio (realidad) para que el modelo de base de datos sea lo más parecido posible.

Abstracción del almacenamiento físico

Separación entre el nivel de almacenamiento físico y el nivel conceptual

Utilizando bases de datos relacionales, el depósito de información es compacto, está gestionado de forma transparente. Todas las entidades residen en mismo depósito de información.

Relaciones reflexivas y recursividad

Permite relaciones reflexivas.

Una entidad puede relacionarse consigo misma, lo cual nos lleva pensar en esquemas recursivos.

Abstracción de tablas y vistas

Podemos tener entidades almacenadas en tablas (filas y columnas) y también podemos componer vistas empleando los contenidos de diferentes tablas.

Relaciones y reglas de integridad referencial

Son las líneas que vinculan unas entidades con otras.

Las reglas de integridad referencial se generan a partir de relaciones entre tablas.

Dependiendo de si el campo es clave en origen o en destino podemos tener relaciones fuertes o débiles. Las relaciones fuertes implican reglas de integridad referencial.

Las reglas de integridad referencial sirven para exigir coherencia entre los datos.

Relaciones fuertes y relaciones débiles. Cardinalidad.

Hay varios tipos de relaciones, pueden ser 1 a N o N a M.

Si la relación es NM, se debe crear una tabla de cruce con los campos clave de ambas tablas

Relación fuerte: Porque se trata de una relación de uno a muchos. El hecho de que exista un sello implica que debe estar guardado en un álbum.

Procedimientos almacenados y disparadores (triggers)

Los procedimientos almacenados son funciones y métodos que amplían las posibilidades de manejo de la base de datos.

Estos procedimientos constituyen una capa de programación intermedia muy cercana a la base de datos.

Ejemplos de tareas:

Dar de alta entidades. Una empresa tiene como norma que un cliente nunca pueda darse de alta si no se le ha realizado un análisis de riesgo de cobro. El procedimiento de alta de un cliente verificará que el valor de la columna Riesgo no sea nulo.

Distribuir datos lógicos a lo largo de diferentes tablas físicas sin que externamente se modifique nada.

Obtener datos de hardware o controlar dispositivos externos.

 

Los disparadores o triggers son procedimientos almacenados que se ponen en marcha automáticamente cuando sucede un acontecimiento previsto. Por ejemplo, la inserción de un nuevo registro sobre una tabla.

Más ejemplos:

Llamar a los técnicos de control cuando se ha insertado un registro en la tabla de incidencias de maquinaria

Para enviar un mensaje de correo electrónico a un cliente cuando su mercancía está lista para salir de almacén

Transacciones

Una transacción es un bloque diferenciado de operaciones de escritura sobre una o más tablas, cuyo resultado puede ser confirmado o revocado en su totalidad.

La inserción de una factura implica a su vez la inserción de una cabecera de factura y de unas líneas de factura.

Imaginemos que intentan entrar una línea de factura con una cantidad 0 de unidades o que estamos trabajando con albaranes/factura y las unidades facturadas superan las unidades que tenemos en stock para entregar.

Lo que sucede en este caso es que se revoca la escritura de la cabecera, de las líneas anteriormente grabadas de esa factura y se retorna al estado anterior.

Debe respetar las condiciones ACID.

  • A de atomización: la palabra átomo quiere decir indivisible. Una factura es una entidad lógica indivisible, por ejemplo.
  • C de consistencia: se garantiza que sólo se realizará el bloque si no se rompe ninguna regla de integridad referencial ni ninguna regla de negocio explícitamente guardada en la base de datos.
  • I de Isolation: una operación no puede afectar a otras. Dos transacciones sobre la misma información son independientes y no generan errores.
  • D de durabilidad: una vez que la transacción se ha confirmado, se mantiene en disco completamente grabada aunque haya un fallo de sistema

    Seguridad

Pueden establecer normas de seguridad para proporcionar acceso de lectura, escritura, inserción y borrado de sus usuarios, así como establecer seguridad también sobre los derechos de administración, como por ejemplo creación y destrucción de tablas.

En programación orientada a objetos, una tabla equivale a una entidad o un tipo de objeto: una clase. La seguridad es a nivel de tipos, y no de registro.

Existe una segunda forma de seguridad que no está implementada en las bases de datos relacionales que es la seguridad a nivel de instancias; la seguridad a nivel de filas individuales de las tablas.

Lenguajes propias para la gestión de datos y recursos

Lenguaje unificado. Se trata del lenguaje SQL del cual han surgido variaciones y dialectos propias de cada fabricante:

  • DDL (Data Definition Language): Lenguaje de definición de estructuras de datos. Permite crear tablas, modificarlas y eliminarlas
  • DML (Data Management Language): Lenguaje de manipulación de datos. Permite dar de alta filas, modificar contenido de columnas y borrar filas y columnas
  • DCL (Data Control Language): Lenguaje de control de datos. Permite administrar la seguridad de quién puede leer, escribir o borrar datos en una tabla; quién puede crear o eliminar tablas, etc.

 

Anuncios

Seguridad en la empresa.

Responsabilidad. Hay dos practicas comunes que suscitan preocupación en este campo. Por un lado, el uso de las llamadas cuentas basadas en privilegios, es decir, compartidas por múltiples usuarios y, por otro la práctica de compartir información de cuentas o contraseñas para permitir el acceso cuando un empleado no está en la oficina o no está disponible.Ambas prácticas crean un entorno en el que es perfectamente posible negar la responsabilidad ante un problema serio.Sencillamente, no se debe fomentar que se comparta la información de cuentas de usuario o, mejor todavía, debe prohibirse por completo. Esta medida incluye el no permitir a un trabajador que utilice el ordenador de otro cuando para ello sea necesario iniciar una sesión.

Entornos abundante en objetivos para ataques. En la mayoría de negocios, un atacante que pueda encontrar la forma de entrar en las áreas de trabajo del centro puede fácilmente encontrar la forma de acceder a los sistemas. Pocos trabajadores cierran los ordenadores cuando salen del área de trabajo o utilizan contraseñas para el salvapantallas o para el inicio. Una persona malintencionada sólo necesita unos segundos para instalar furtivamente software de vigilancia en un ordenador no protegido. En un banco, el personal de caja siempre cierra el cajón del dinero antes de salir. Es una pena que sea tan poco frecuente encontrar este hábito en otros tipos de organizaciones.Se debería implementar una norma que obligo al uso de éstas contraseñas.

Administración de las contraseñas. Si usted utiliza algún script generador de contraseñas, intente que no sea demasiado predecible, pues cualquier usuario podría escribir algún script para averiguar contraseñas.

Acceso físico. Un empleado que entienda del tema y esté familiarizado con la red de la compañía puede fácilmente utilizar su acceso físico para comprometer los sistemas cuando no tenga a nadie alrededor. Si los empleados protegieran correctamente sus escritorios, ordenadores, portátiles, pda y demás, utilizan contraseñas de la BIOS seguras y cerrando sesiones, el empleado malicioso necesitaría más tiempo para conseguir sus objetivos.

Cubículos “muertos” y otros puntos de acceso. Si se deja un cubículo vacío cuando un empleado deja la compañía o se traslada a un lugar diferente, alguien de la propia empresa podría conectarse a través de los enchufes activos de la red de ese cubículo para sondear la red al tiempo que protege su identidad. O peor, con frecuencia se deja el ordenador en el cubículo conectado a la red, preparado para que cualquiera lo pueda utilizar, incluido un empleado malicioso. Otros puntos de acceso de lugares como salas de conferencia también pueden ofrecer fácilmente acceso a quien esté dispuesto a causar daños.Piense en deshabilitar todos los enchufes de red que no se utilicen para evitar accesos anónimos o no autorizados.

Personal cesado. Todo empleado que haya sido despedido debe considerase como un riesgo potencial. Se debe vigilar por si accediera a información comercial privada, especialmente por si copiara o descarga grandes cantidades de datos. Con cualquier pendrive, en cuestión de minutos se pueden guardar grandes cantidades de información confidencial y salir por la puerta.Debería ser práctica habitual restringir el acceso de un empleado antes de notificarle el cese, el descenso o un traslado no deseado, Además, piense en vigilar su en su ordenador se producen actividades no autorizadas.

Impedir que se sorteen los procesos de seguridad. Cuando los empleados conocen procesos empresariales críticos dentro de la organización, están en buena posición para identificar las debilidades de las comprobaciones y los balances utilizados para detectar el fraude o el robo. Un trabajador deshonesto se encuentra en posición de robar o causar otros daños considerables basándose en ese conocimiento de cómo funciona el negocio. La gente de dentro suele tener acceso ilimitado a las oficinas, archivadores, sistemas de correo interno y conoce los procedimientos diarios de la empresa.Estudie la posibilidad de analizar los procesos confidenciales y críticos para identificar las debilidades que pueda haber y, de este modo, tomar medidas para contrarrestarlas.

Políticas para los visitantes. Establecer prácticas de seguridad para los visitantes externos, incluidos los trabajadores de otros edificios de la misma empresa. Un control de seguridad eficaz pasa por pedir a los visitantes que faciliten identificación oficial antes de permitirles el paso al centro e introducir la información en un registro de seguridad.

Inventario de software y auditoría. Mantener un inventario de todo el software autorizado instalado o permitido para cada sistema y auditar periódicamente estos sistemas para comprobar la conformidad.Este proceso de inventario no sólo garantiza el cumplimiento legal de las normativas de licencias de software, sino que puede utilizarse, también para identificar cualquier instalación de software no autorizado que pueda afectar negativamente a la seguridad, como algún keylogger.

Sistemas de auditoría para la integridad del software. Empleados o personal interno podrían sustituir aplicaciones o archivos del sistema operativo de vital importancia y utilizarlos para burlar los controles de seguridad. Por ejemplo podrían cambiar la forma de trabajo de un programa espía, para que no muestre icono en el tray. En algunas circunstancias, podría resultar conveniente realizar una auditoría de integridad y utilizar una aplicación de terceros que notifique al personal correspondiente los cambios que se puedan introducir en los archivos del sistema.

Exceso de privilegios. En entornos basados en Windows, muchos usuarios finales acceden a sus cuentas con derechos de administrador local en sus propias máquinas. Esta práctica, aunque sea más cómoda, hace enormemente fácil que un empleado disgustado instale un keylogger o un sniffer para monitorear la red. Los atacantes remotos también pueden enviar por correo programas maliciosos ocultos en archivos adjuntos, que después abra un usuario confiado.Se debe proporcionar siempre los mínimos privilegios posibles para que el usuario pueda realizar sus funciones.

Backups: Duplicati y USB Image Tool

 

Hace poco descubrí este interesante programa, llamado USB Image Tool.

Es un sencillo programa de creación de backups y restauración para dispositivos extraíbles.

 

USB Image Tool

USB Image Tool

 

La interfaz es bien sencilla… consta principalmente de tres botones

  • Restore: Para restaurar copias previamente creadas.
  • Rescan: Volver a escanear en busca de otros dispositivos extraíbles
  • Backup: Crear la copia de seguridad que creará un archivo *.img

 

Duplicati es otro programa de creación de backups.

 

Duplicati

Ventana principal

Esta es la ventana principal. Para crear un nuevo backup, deberemos marcar la opción Schedule a new backup.

Elegir nombre

 

 

 

Aquí elegiremos un nombre para nuestra copia de seguridad.

Carpetas a respaldar

Elegimos las carpetas que deseamos respaldar.

 

Elegir lugar de almacenamiento.

Aquí podremos elegir donde se alojará nuestra copia de seguridad, como vemos, cuanta con una gran variedad.

 

Finalizando el asistente

 

 

 

 

 

 

Aquí nos hace un resumen de nuestras opciones, yo he marcado que haga copia cada semana, y cada mes una copia completa.

Si queremos que realice el backup inmediatamente deberemos marcar la opción Run backup now.