Download De tabla

Document related concepts

Trigger (base de datos) wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Mecanismos de almacenamiento (MySQL) wikipedia , lookup

Lenguaje de definición de datos wikipedia , lookup

SQL wikipedia , lookup

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;