Download De tabla
Document related concepts
Transcript
Seguridad Unidad 6 Esquemas de autorización • Existen múltiples riesgos para la seguridad de la información durante: – la operación, implantación y tiempos muertos en el sistema. • RIESGOS EN LA IMPLANTACIÓN – Cuando se esta instalando o actualizando un sistema • ajuste de formatos, dominios • parámetros que pueden verse afectados por la conversión del sistema: – manual-automatizado o – automatizado-automatizado RIESGOS EN LA OPERACIÓN • Mientras el sistema se encuentra en uso -> las operaciones se realizan en línea • La protección más común para reducir estos riesgos consiste: – Establecimientos de claves de operación – para acceder a la aplicación como a las diversas operaciones que esta desempeña. • Claves: – Genérico. --Por niveles de seguridad. --Por tipos de acceso a los datos. • Criterios: – – – – – No información que pueda asociarse al usuario. Fácil de recordar, difícil de adivinar. Debe utilizar un parámetro variable o algoritmo Incluir controles sobre el usuario que lo obliguen a modificar su clave de acceso con cierta regularidad. RIESGOS EN TIEMPOS MUERTOS • Cuando el sistema no se encuentra en operación la información esta expuesta a ser alterada fuera de línea; – sin utilizar los programas de aplicación diseñados para este fin. • Algunas de las técnicas más utilizadas para evitar y en algunos casos solo para ejecutar modificaciones fuera de línea son: – ENCRIPTAMIENTO: Consiste en convertir la información de la BD a un formato que resulte ilegible sino se dispone del algoritmo de conversión. – APLICACIÓN DE TOTALES DE CONTROL.- Consiste en generar registros ficticios que son agregados a la BD y que permitirán detectar la inserción, eliminación o modificación de datos en la gran mayoría de los casos. • DIGITOS DE CONTROL.- son caracteres que se anexan a las claves o a los datos que serán manejados con el objeto de autentificar su validez. Recomendaciones • ¡No dar acceso a la tabla user en la base de datos mysql! – Esto es crítico. – La clave cifrada es la verdadera clave en MySQL. – Cualquiera que sepa cual es la clave que hay en la tabla user • acceda a la máquina host de la cuenta registrada puede acceder fácilmente como ese usuario. • Estudie el sistema de privilegios de acceso de MySQL. – Las sentencias GRANT y REVOKE se utilizan para controlar el acceso a MySQL. • No otorgue más privilegios de los necesarios. – tener en cuenta el equipo desde el que se conecta. Recomendaciones (cont.) • No elija claves que puedan aparecer en un diccionario. –E • Invierta en un firewall. – Le protegerá de al menos el 50% de todos los tipos de vulnerabilidades de cualquier software. Recomendaciones (cont.) • Permiten a los administradores de sistemas crear cuentas de usuario MySQL y darles permisos y quitarlos de las cuentas. • Crear cuentas de usuarios: – Usando comandos GRANT • Es más conciso y menos propenso a errores. – Manipulando las tablas de permisos MySQL directamente. Niveles de privilegios • En MySQL existen cinco niveles distintos de privilegios: – Globales: se aplican al conjunto de todas las bases de datos en un servidor. Es el nivel más alto de privilegio, en el sentido de que su ámbito es el más general. – De base de datos: se refieren a bases de datos individuales, y por extensión, a todos los objetos que contiene cada base de datos. – De tabla: se aplican a tablas individuales, y por lo tanto, a todas las columnas de esas tabla. – De columna: se aplican a una columna en una tabla concreta. – De rutina: se aplican a los procedimientos almacenados. Aún no hemos visto nada sobre este tema, pero en MySQL se pueden almacenar procedimietos consistentes en varias consultas SQL. Usuarios • El usuario 'root‘ – es el administrador, y dispone de todos los privilegios disponibles en MySQL. • Instrucción GRANT: – Se puede crear un usuario y al mismo tiempo concederle también los privilegios que tendrá. – Sintaxis simplificada: – GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ... ON TO user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']] . – La primera parte priv_type [(column_list)] • permite definir el tipo de privilegio concedido para determinadas columnas. – La segunda ON {tbl_name | * | *.* | db_name.*} • permite conceder privilegios en niveles globales, de base de datos o de tablas... Ejemplo • GRANT SELECT ON prueba.gente TO anonimo; – Usuario anonimo – prueba Base de datos – gente Tabla – Privilegios uso de instrucción SELECT Privilegios • • • • • • • SELECT: ejecutar consultas ALL: para conceder todos los privilegios. CREATE: permite crear nuevas tablas. DELETE: permite usar la sentencia DELETE. DROP: permite borrar tablas. INSERT: permite insertar datos en tablas. UPDATE: permite usar la sentencia UPDATE. Ejemplo • GRANT SELECT, UPDATE ON biblio.libros TO anonimo identified by ‘anonimus’; Quitar privilegios • Para revocar privilegios se usa la sentencia REVOKE. • REVOKE INSERT ON biblio.libros FROM anonimo; Borrar usuarios • Para eliminar usuarios se usa la sentencia DROP USER. • IMPORTANTE: No se puede eliminar un usuario que tenga privilegios • Primero debe revocar todos los privilegios • Ejemplo: – REVOKE select ON biblio.libros FROM anonimo; – DROP USER anonimo;