Seguridad 2° exp_ooo

Preview:

Citation preview

Las bases de datos conectadas a internet o cualquier otra red, son vulnerables a hackers y otros delincuentes que buscan dañar, robar o alterar datos. Entre ellos están los siguientes:

Espías

Hackers

Empleados descontentos

Personas con desequilibrio emocional

Sobornadores

El servidor debe estar en un lugar cerrado

Se puede instalar un sistema de video vigilancia

Emplear dispositivos de seguridad como:

Tarjetas con llavesUsuario y contraseñaDispositivos biométricosPolíticas de la empresa

Aislamiento entre la red empresarial e internet

Configurar el enrutador

Emplear un firewall

Aseguramiento del acceso a una red inalámbrica

Instalar un mínimo de software del S.O

Aplicar los parches de seguridad

Cambiar todas las contraseñas predeterminadas

Autentificación de usuarios

Es la verificación de la identidad

del usuario

Autorizaciónde usuarios

Método que se le asigna a los usuarios

derechos para usar

Objetos de la BD

Esta diseñado

para proteger la

BD

Es el medio por el que se implementan las autorizaciones.

Al planear el acceso . El ABD puede usar la matriz de control de Acceso

Es el conjunto de objetos de una BD que pertenecen a un usuario especifico.

“Cuentas de propietario de esquema”.

Como principal objetivo es que en las bases de datos debe tratarse de no otorgar a los usuarios mas privilegios de los que necesitan para hacer su trabajo.

Se le llama denominacion o DBO al conjunto de privilegios y se analizan en una seccion venidera.

Las personas no cometan errores y se conviertan en desastres de datos.

Refuerza la honestidad de personas.

Crear inicios de sesiones en la BD que tenga privilegios mínimos requeridos.

Si se permite a un usuario conectarse mediante unusuario como Empleados o Productosautomáticamente tendría privilegios completos encada Objeto del esquema como:inserción, eliminación y actualización de cualquiertabla por consiguiente alterar cualquier tabla.

CREATE USER vistante @localhostIDENTIFIED BY ‘PASSWORD’;

GRANT ALL ON BaseDatos.* TO user@localhost;

La sentencia GRANT

La sintaxis simplificada de grant consta de tres secciones. No puede omitirse ninguna, y es importante el orden de las mismas:

• grant lista de privilegios• on base de datos.tabla• to usuario

Ejemplo

Creación de un nuevo usuario al que se otorga algunos privilegios

mysql> grant update, insert, select-> on demo.precios

-> to visitante@localhost;

El comando CREATE USER, este comando crea nuevascuentas.

El comando DROP USER , borra una o mas cuentas queno tienen permisos.

Puede borrar una cuenta y sus permisos como sigue:

DROP USER user;

Es posible asignar una contraseña a la cuenta al mismotiempo que se crea y se le otorgan privilegios:

mysql> grant update, insert, select-> on demo.precios

-> to visitante@localhost identified by ´nuevapasswd´;

El comando SET PASSWORD asigna unacontraseña.

--Set password for root@localhost=password(‘laurosoto’);

--grant all privileges on *.* to usuario1@localhostidentified by 'passwordusuario' with grant option;

Privilegio es una acción como leer, actualizar o eliminar, que permite ejecutar a un usuario sobre la información de una base de datos.

La sintaxis para otorgar privilegios es la siguiente:

GRANT{ALL PRIVILEGES|LISA DE PRIVILEGIOS}

ON {nombre_tabla|nombre_vista

To{public|lista_usuarios|lista_roles}

Ejemplo donde se especifican las columnas sobre lasque se otorgan privilegios con el comando grant:

mysql> grant update(precio,empresa)-> on demo.precios

-> to visitante@localhost;

Podemos especificar privilegios diferentes para cada columna o grupos de columnas:

mysql> grant update(precio), select (precio, empresa)-> on demo.precios

-> to visitante@localhost;

ALL [PRIVILEGES] Da todos los permisos simples excepto GRANTOPTION

ALTER Permite el uso de ALTER TABLE

ALTER ROUTINE Modifica o borra rutinas almacenadas

CREATE Permite el uso de CREATE TABLE

CREATE ROUTINE Crea rutinas almacenadas

CREATE USER Permite el uso de CREATE USER, DROPUSER, RENAME USER, y REVOKE ALL PRIVILEGES.

CREATE VIEW Permite el uso de CREATE

DELETE Permite el uso de DELETE

DROP Permite el uso de DROP TABLEVIEW

UPDATE Permite el uso de UPDATE

USAGE Sinónimo de “no privileges”

GRANT OPTION Permite dar permisos

•EXECUTE Permite al usuario ejecutar rutinas almacenadas

•FILE Permite el uso de SELECT ... INTO OUTFILE y LOAD DATA INFILE

• INDEX Permite el uso de CREATE INDEX y DROP INDEX

•INSERT Permite el uso de INSERT

•LOCK TABLES Permite el uso de LOCK TABLES en tablas para las que tenga el permiso SELECT

•PROCESS Permite el uso de SHOW FULL PROCESSLIST

•REFERENCES No implementado

•RELOAD Permite el uso de FLUSH

•REPLICATION CLIENT Permite al usuario preguntar dónde están los servidores maestro o esclavo

•REPLICATION SLAVE Necesario para los esclavos de replicación (para leer eventos del log binario desde el maestro)

SUPER Permite el uso de comandos CHANGE MASTER, KILL, PURGE MASTER LOGS, and SET GLOBAL , el comando mysqladmin debug le permite conectar (una vez) incluso si se llega a max_connections

El comando revoke permite eliminar privilegiosotorgados con grant a los usuarios. Veamos unejemplo representativo:

revoke allon *.*

from visitante@localhost;

La vista es un método muy utilizado paraimplementar el control del acceso.

•Es una medida de seguridad ya que ocultaestructuras y datos que el usuario no deberíaver .

CREATE VIEW datos AS

SELECT nombre, apellido, créditos

FROM estudiantes

WHERE carrera=‘ISC’;

CREATE VIEW vista estudiante AS

SELECT nombre, apellido, carrera

FROM estudiante;

Están diseñadas para proveer datos de apoyo alanálisis estadístico de poblaciones.

Se garantiza a los usuarios permiso para accedera información estadística como totales, cuentaso promedios, pero no a información sobre unindividuo en particular.

SELECT total(salario)

FROM empleados

WHERE Turno=‘’nocturno’;

SELECT salario

FROM empleado

WHERE empleado=‘E101’;

SELECT suma(salario)

FROM empleado

WHERE departamento=10 ANDpuesto=‘programador’ AND fecha > ‘01-febrero-2004’;