Unidad 5 - Seguridad

5.1 - Respaldo y recuperación

El respaldo es uno de los pasos más importantes que puedes dar para proteger tu información. Cuando algo sale mal, como fallas en disco duro, borrado accidental de archivos o infecciones por malware, son tu último recurso.

*Qué respaldar y cuándo.
Lo más común es hacer respaldo de información personal (fotos, música, etc) cada hora, diariamente, etc. Para usuarios caseros, los programas tipo Time Machine de Apple o Copias de seguridad y restauración de WIndows. permiten fijar un horario automático de respaldo "prográmalo y olvídate".

*Cómo respaldar
Actualmente, existen dos medios para respaldar tu información: medios físicos o almacenamiento por la nube.
Físicos: USBs, DVDs. Evita respaldar en el mismo dispositivo que contiene los archivos originales. Cuando uses medios físicos asegúrate de etiquetarlos, tanto interna como externa, para poder identificar, fácilmente, la fecha de su creación.
En la nube: Google Drive, Dropbox. Muy útiles si se desea accesar a la información de manera inmediata en cualquier lugar, siempre y cuando se tenga un ordenador o dispositivo móvil a la mano.

*Recuperación
Este es el siguiente paso tras respaldar--se debe tener en mente cómo recuperar la información de la mejor manera. Practica regularmente tu proceso de recuperación, tal y como harías en un simulacro de sismo. Esto te ayudará a asegurar que todo funcione correctamente en caso de necesitarlo. COmprueba por lo menos una vez al mes que el programa de respaldos esté funcionando adecuadamente. Por lo menos trata de recuperar un archivo.

5.1.1  Espejeo (Mirrowing)

Es una configuración donde dos o tres servidores de base de datos se ejecutan en equipos independientes, cooperan param antener copias de la base de datos y archivo de registro de transacciones (log).

5.1.1.1 - Beneficios del espejeo de datos para un DBMS

*Incrementa la disponibilidad de una base de datos. Si se produce un desastre en el modo de alta seguridad con conmutación automática por error, la conmutación por error pone en línea rápidamente la copia en espera de la base de datos, sin perder datos.
*Aumenta la protección de datos.
*Mejora la disponibilidad de la base de datos de producción durante las actualizaciones.

5.1.1.2 - Activación de espejeo en un DBMS

5.1.1.3 - Creación de espacios de disco con espejo

Espejeado de disco significa que se conectna dos unidades de disco al mismo controlador de disco. Se mantienen idénticas cuando el servidor escribe en la unidad primaria, posteriormente en la secundaria. Si la primaria falla, se utilizará la secundaria, y vice-versa.

*Caches de disco: Resulta rentable usar un caché para mantener en memoria física parte de la información que hay en el disco, por si en un futuro se requiera un bloque que ya está en memoria, se ahorre el acceso al disco.
*Planificación del disco: El tiempo requerido para que un disco duro lea todos su sectores depende de lo siguiente:
1. El tiempo de búsqueda (seek time), quien dicta los movimientos de los brazos al cilindro apropiado.
2. El retardo rotacional, quien dicta el tiempo que se debe esperar hasta que el sector requirido pase por debajo del cabezal.
3. El tiempo de transferencia de los datos.

*Algoritmos de planificación de disco:
 1. FIFO: Es simple, pero no estamos haciendo nada por la eficiencia. Es malo si las solicitudes se alternan entre cilindros exteriores e interiores.
2. SSTF: Se trata de atender primero las solicitudes más cercanas a la posición actual del brazo.

*Algoritmo del ascensor: Para evitar inanición, se mantiene la dirección de movimiento del brazo hasta que no queden solicitudes pendientes en esa dirección.

*Discos RAM: Gracias a la estructuración en capas, pdoemos usar el mismo sistema de archivos en cualquier dispositivo de bloques con un driver adecuado.

5.1.2 - Replicación

Es el proceso de copiar y mantener actualizados los datos en varios nodos de bases de datos, ya sean estos persistentes o no.

5.1.2.1 -Beneficios de la réplica de datos en un DBMS.
*Rendimiento.
*Prueba de fallas.
*Fiabilidad.
*Generación de bloqueos.

5.1.3 - Métodos de respaldo de un DBMS

En MySQL existen varios métodos para realizar backups: InnoDB, por ejemplo. Es una tecnología de almacenamiento de código abierto que soporta transacciones tipo ACID, tiene bloque de registros o integridad referencial. También ofrece una alta fiabilidad y consistencia.

5.1.3.1 - Elementos y frecuencia de respaldo.

Normalmente los datos o información que es respaldada por las empresas es:
*Archivos creados por aplicaciones: .doc. xls, .mdb, .pdf.
*Archivos de correo electrónico.
*Directorios telefónicos y de contactos.
*Favoritos de los navegadores como Firefox o Google Chrome.
*Base de datos.

Clasificación de respaldos: 
*Backups
*Respaldo completo
*Respaldo de incremento
*Respaldo diferencial

Frecuencia de actualización de información
*Qué tan frecuente se actualiza la información.
*Si queremos guardar un histórico de la información o no.

5.1.3.2  Comandos para respaldo de datos.
1. Creamos un usuario MySQL en el servidor maestro con privilegios de replicación.
2. El servidor esclavo se autentificará frente al servidor maestro como usuario normal.
3. Para crear el usuario debemos ejecutar desde la consola de ocmandos de mysql las siguientes sentencias:
CREATE USER '<replication_user>'@'<slave_address>' IDENTIFIED BY '<replication_user_password>'
GRANT REPLICATION SLAVE ON *.* TO '<replication_user>'@'<slave_address>'  
4. Con la sentencia anterior, el usuario solo tendría permiso de acceso desde la máquina slave address, en caso de no requerir esta medida se sustituye el comodín % por el parámetro.

5.1.3.3 - Métodos de recuperación de un DBMS
*Actualización diferida.
*Actualización inmediata.
*Tipos de almacenaimento: volátil, no volátil, estable frente al no estable, en caché.

5.1.4 - Comandos para recuperación

mysqldump -u [user] -p [dbname] > [backup.sql]

Puesto que se pretente obtener un "foto fija" de la base de datos, es conveniente evitar que un acceso inoportuno pueda dejar el fichero volcado es un estado inconsistente. Esto puede conseguirse con varias opciones aunque la recomendada es --single-transaction.

5.1.4.1 - Ventajas y desventajas de cada método.

Ventajas: 
*Facilidad de manejo de grandes volúmenes de información.
*Gran velocidad en muy poco tiempo.
*Independencia del tratamiento de información.
*Seguridad de la información.
*No duplicidad de información.

Desventajas:
*Costo de actualización del hardware y software es muy elevado.
*Costo (salario) del administrador de la base de datos es costoso.
*El mal diseño de esta puede originar problemas en el futuro.
*Un mal adiestramiento a los usuarios puede original problemas a futuro.
*Si no se encuentra un manual del sistema no se podrán hacer relaciones con facilidad.
*Generar campos vacíos en exceso.
*El mal diseño de seguridad genera problemas.

5.1.4.2 - Aplicación de cada método

*Copia simple: Puede ser aplicado en situaciones en las que no requiera de varias instancias o datos duplicados.
*Copia doble: Cuando se requiera de un soporte estable y práctico al a hora de fallos en el sistema.
*Copia generacional: Cuando este contenga mayores instancias y requiera de un gran rendimiento de datos, como los bancos.

5.2 - Migración de base de datos.

La migración de base de datos es, generalmente, una tarea compleja que no solo supone transferir datos entre tipos de almacenaje y formatos de un servidor de base de datos a otro; sino que también supone reescribir sentencias de comandos SQL o incluso SPL de lógica de negocio.

Herramientas de migración: 
*Herramienta de copia miltu-bases de datos con conversión automática desde los itpos de datos.
*Comprobación de esquema multi-base de datos.
*Gramática SQL XML, DDL XML, DML XML, SPL XML, Triggers XML.
*Soporte para la conversión de tipos de datos geométricos.

5.3 - Monitoreos y auditoría de base de datos.

Mediante la auditoría se intenta monitorizar y registrar acciones en la base de datos con el fin de:
*Investigar actividades maliciosas.
*Detectar privilegios incorrectamente otorgados a usuarios.
*Recoger datos sobre actividades concretas.
*Detectar problemas con la implementación de políticas de seguridad.

5.3.1 - Monitoreo

5.3.1.1 - Monitoreo general de un sistema manejador de base de datos.

Ventajas:
*Incrementa la disponibilidad de una base de datos.
*Aumenta la protección de los datos.
*Mejora la disponibilidad de la base de datos de producción durante las actualizaciones.

5.3.2 - Monitoreo de espacio libre en discos

Algunas tareas de DBA donde la información de espacio libre pueden ser útiles:
*La primera que se alerte al DBA cuando el espacio libre cae por debajo de un umbral especifico en cualquier unidad de SQL Server.
*La segunda sería la de realizar un seguimiento de la historia del espacio libre para la gestión de la capacidad de espacio en disco.

5.3.1.3 - Monitoreo de Logs

Log: Registro oficial de eventos durante un período de tiempo en particular. Su propósito es la de evtiar que los sistemas se vean comprometidos por un intruso, ya sea de manera local o remota; ayudar a resolver problemas, proveer de avisos tempranos de abusos del sistema, etc.
Monitoreo de bitácoras: Normalmente la mayoría de los archivos de bitácoras serán poseídos por el usuario y grupo root, y no tendrán permisos asignados para otros, así que, en la mayoría de los casos, el único usuario capaz de modificar los archivos sería el usuario root.

5.3.1.4 - Monitoreo de memoria compartida

*PGA de Oracle (Área Global del Programa): Un PGA es una región en memoria que contiene los datos e información de control para un proceso de servidor. Es la memoria no compartida creada por la base de datos de Oracle cuando un proceso de servidor se ha iniciado.

*SGA de Oracle (Sistema de Área Global): Es un conjunto de áreas de memoria compartida que se dedican a un oráculo "instancia", como los programas de bases de datos y la memoria RAM. SIrven para facilitar la transferencia de información entre usuarios.
Se divide en las siguientes partes: Buffers de base de datos, redo log y área de SQL compartido.

5.3.1.5 - Monitoreo de base de datos

Es el proceso que permite medir, asegurar, demostrar, monitorear y registrar los accesos a la información almacenada en las bases de datos, incluyendo la capacidad de determinar:
*Quién accede a los datos.
*Cuándo se accedió a los datos
*Desde qué tipo de dispositivo.
*Desde qué ubicación de red.
*Cuál fue la sentencia SQL ejecutada.
*Cuál fue el efecto del acceso a la base de datos.

Objetivo e importancia de una auditoría de base de datos:
*Mitigar los riesgos asociados con el manejo inadecuado de los datos.
*Apoyar el cumplimiento regulatorio.
*Satisfacer los requerimientos de los auditores.
*Evitar acciones criminales.
*Evitar multas por incumplimiento.
*Toda la información financiera de la organización reside en bases de datos.
*Se debe poder demostrar la integridad de información.
*Las organizaciones deben mitigar los riegos asociados a la pérdida de datos.
*La información confidencial de los clientes son responsabilidades de las organizaciones.
*Los datos convertidos en información, a través de bases de datos y procesos de negocios, representan al negocio.
*Las organizaciones deben tomar medidas mucho más allá de asegurar sus datos.

Apectos claves:
*No se debe comprometer el desempeño de las bases de datos.
*El sistema de auditoría de base de datos no puede ser administrado por los DBA fuera del área de IT.
*Se debe proveer valor a las operaciones de negocio, tales como la información de auditoría y toma de decisiones.
*Se deben realizar auditorías completas y extensivas, para cubrir gran cantidad de manejadores y estandarizar reportes.

5.3.1.6 - Monitoreo de modos de operación

1. Administración de recursos.
2. Normas de procedimientos.
3. Monitoreo de los procesos de operación.
4. Operaciones de plataforma de hardware.
5. Soporte técnico.
6. Cronogramas de ejecución de trabajos.
7. Control de entrada y salida de datos.
8. Aseguramiento de calidad
9. Control de cambios.
10. Administración de la configuración.
11. Función de bibliotecario.
12. Procedimientos de administración de problemas, monitoreo de uso eficaz y eficiente de recursos.
13. Administración de la seguridad física, del ambiente y de la información.

5.3.1.7 - Monitoreo de espacios espejeados

La administración de espejeado protege la integridad de los datos mediante el almacenamiento de copias de los datos en varios discos. Cuando se crea un grupo de discos, se especifica un tipo de grupo de discos ASM, basado en los siguientes 3 niveles de redundancia: 
*Normal de 2 vías de reflejo.
*Alta de 3 vías de reflejo.
*Externa a no utilizar la creación de reflejos ASM.

5.3.2 - Auditoría 

La auditoría se ha convertido en una herramienta importante en los últimos 10 años para el análisis de las violaciones de datos. La auditoría es el control y registro de las acciones de la base de datos de usuarios selectos, tanto conocedores de bases de datos como los no conocedores.
Entre sus actividades destacan:
*Activar la rendición de cuentas de las acciones.
*Disuadir a los usuarios de acciones inapropiadas basadas en la rendición de cuentas.
*Investigar actividades sospechosas.

5.3.2.1 - Habilitación y deshabilitación del modo de auditoría

La activación de la auditoría en Oracle Database viene definida por el valor del parámetro "audit_trail".
La desactivación de la auditoría viene definida por el siguiente comando:
ALTER SYSTEM SET audit_trail = "NONE" SCOPE=SPFILE;

Funcionamiento del comando audit: Permite iniciar los tipos de auditoría, como lo son:
*AUDIT
*NOAUDIT


5.3.2.2 - Consultas de las tablas vistas con información de auditoría

El diccionario de la BD contiene una tabla llamada SYS.AUD$, que puede contener información sobre las operaciones realizadas por los usuarios.
Dependiendo de los objetos auditados, se recoge distinto tipo de información. En cualquier caso, siempre se recoge sobre el usuario sesión, terminal, objecto accedido, operación realizada y finalización de reporte.

5.4 - Herramientas de software y hardware para monitoreo y administración automática

Monitorizar es una tarea imprescindible del administrador. Obviamente no podemos monitorizar en todo momento, y debemos hacerlo con cierta regularidad y de la manera más automática posible. Existen multitud de programas que nos pueden ayudar en esta tarea:
*Consultas administrativas limitadas.
*Consultas personalizadas para agregar, dentro de la interfaz, en forma limitada.
*Base de datos abierta para integraciones personalizadas de otros dispositivos: control de activos tangibles y no tangibles, capacidad de cruzar información automática, creación y personalización por consultas editables.
*Bitácora de uso de software por día y mes de los aplicativos, brindando los minutos y horas de su utilización por PC.

Comentarios

Entradas populares de este blog

1.4 - Nuevas tecnologías y aplicaciones de los sistemas de bases de datos

Unidad 4 - Operación y mantenibilidad

1.1. Administrador de Base de Datos (DBA).