Está en la página 1de 12

UNIVERSIDAD NACIONAL

SANTIAGO ANTUNEZ DE MAYOLO




FACULTAD : CIENCIAS

ESCUELA PROFESIONAL : INGENIERA DE SISTEMAS E
INFORMTICA

TEMA : SEGURIDAD EN LAS BASES DE DATOS


ASIGNATURA : ADMINISTRACIN DE BASE DE DATOS.

DOCENTE : ING. MIGUEL ANGEL SILVA ZAPATA


ALUMNOS : CASTILLEJO PEA Horacio.

CORREA PEARANDA Jaime.
VARGAS TAMARA Mariela.
QUISPE BARRETO Jos.


SEMESTRE : 2014





INGENIERA DE SISTEMAS E INFORMTICA ADMINISTRACION DE BASE DE DATOS
FC ISI 2014 II
Pgina 2


Huaraz, 25 de agosto del 2014

SEGURIDAD EN LAS BASES DE DATOS

La informacin es uno de los activos ms importantes de las entidades, y de modo
especial en algunos sectores de actividad. Es indudable que cada da las
entidades dependen de mayor medida de la informacin y de la tecnologa, y que
los sistemas de informacin estn ms soportadas por la tecnologa, frente a la
realidad de hace pocas dcadas. Por otra parte, hace unos aos la proteccin era
ms fcil, con arquitecturas centralizadas y terminales no inteligentes, pero hoy en
da los entornos son realmente complejos, con diversidad de plataformas y
proliferacin de redes, no slo internos sino tambin externos, incluso con enlaces
internacionales.
Entre las plataformas fsicas (hardware) pueden estar: ordenadores grandes y
medios ordenadores departamentales y personales, solos o formando parte de
red, e incluso ordenadores porttiles. Esta diversidad acerca la informacin a los
usuarios, si bien hace mucho ms difcil proteger los datos, especialmente porque
los equipos tienen filosofas y sistemas operativos diferentes, incluso a veces
siendo del mismo fabricante. Al hablar de seguridad hemos preferido centrarnos
en la informacin misma, aunque a menudo se hable de seguridad informtica, de
seguridad de los sistemas de informacin o de seguridad de las tecnologas de la
informacin.
La gran mayora de los datos sensibles del mundo estn almacenados en
sistemas gestores de bases de datos comerciales tales como Oracle, Microsoft
SQL Server entre otros, y atacar una bases de datos es uno de los objetivos
favoritos para los criminales.
Esto puede explicar por qu los ataques externos, tales como inyeccin de SQL,
subieron 345% en 2009, Esta tendencia es prueba adicional de que los agresores
tienen xito en hospedar pginas Web maliciosas, y de que las vulnerabilidades y
explotacin en relacin a los navegadores Web estn conformando un beneficio
importante para ellos
Para empeorar las cosas, segn un estudio publicado en febrero de 2009 The
Independent Oracle Users Group (IOUG), casi la mitad de todos los usuarios de
Oracle tienen al menos dos parches sin aplicar en sus manejadores de bases de
datos.
El objetivo fundamental es proteger la Base de Datos contra accesos no
autorizados.

INGENIERA DE SISTEMAS E INFORMTICA ADMINISTRACION DE BASE DE DATOS
FC ISI 2014 II
Pgina 3


MEDIDAS DE SEGURIDAD
Fsicas: Controlar el acceso al equipo. Tarjetas de acceso, etc.
Personal: Acceso slo del personal autorizado. Evitar sobornos, etc.
SO: Seguridad a nivel de SO
SGBD: Uso herramientas de seguridad que proporcione el SGBD. Perfiles de
usuario, vistas, restricciones de uso de vistas, etc.
Un SGBD cuenta con un subsistema de seguridad y autorizacin que se
encarga de garantizar la seguridad de porciones de la BD contra el acceso no
autorizado.

TIPOS DE SEGURIDAD:

Discrecional: Se usa para otorgar y revocar privilegios a los
usuarios a nivel de archivos, registros o campos en un modo determinado
(consulta o modificacin).
El ABD asigna el propietario de un esquema, quien puede otorgar o revocar
privilegios a otros usuarios en la forma de consulta (select), modificacin o
referencias. A travs del uso de la instruccin grant option se pueden
propagar los privilegios en forma horizontal o vertical.
Ejemplo: grant select on Empleado to cdigoUsuario
revoke select on Empleado from cdigoUsuario

Obligatoria: sirve para imponer seguridad de varios niveles tanto para los
usuarios como para los datos.
El problema de la seguridad consiste en lograr que los recursos de un
sistema sean, bajo toda circunstancia, utilizados para los fines previstos.
Para eso se utilizan mecanismos de proteccin.
Los sistemas operativos proveen algunos mecanismos de proteccin para
poder implementar polticas de seguridad. Las polticas definen qu hay que
hacer (qu datos y recursos deben protegerse de quin; es un problema de
administracin), y los mecanismos determinan cmo hay que hacerlo. Esta
separacin es importante en trminos de flexibilidad, puesto que las
polticas pueden variar en el tiempo y de una organizacin a otra. Los
mismos mecanismos, si son flexibles, pueden usarse para implementar
distintas polticas.


INGENIERA DE SISTEMAS E INFORMTICA ADMINISTRACION DE BASE DE DATOS
FC ISI 2014 II
Pgina 4


Un aspecto importante de la seguridad es el de impedir la prdida de informacin,
la cual puede producirse por diversas causas: fenmenos naturales, guerras,
errores de hardware o de software, o errores humanos. La solucin es una sola:
mantener la informacin respaldada, de preferencia en un lugar lejano.

REQUISITOS PARA LA SEGURIDAD DE LAS BD

La base de datos debe ser protegida contra el fuego, el robo y otras formas
de destruccin.
Los datos deben ser reconstruibles, ya que siempre pueden ocurrir
accidentes.
Los datos deben poder ser sometidos a procesos de auditoria.
El sistema debe disearse a prueba de intromisiones, no deben poder
pasar por alto los controles.
Ningn sistema puede evitar las intromisiones malintencionadas, pero es
posible hacer que resulte muy difcil eludir los controles.
El sistema debe tener capacidad para verificar que sus acciones han sido
autorizadas.
Las acciones de los usuarios deben ser supervisadas, de modo tal que
pueda descubrirse cualquier accin indebida o errnea.

CARACTERSTICAS PRINCIPALES
El objetivo es proteger la Base de Datos contra accesos no autorizados.

LAS 3 PRINCIPALES CARCTERSTICAS DE LA SEGURIDAD EN UNA BASE
DE DATOS SON:
La Confidencialidad de la informacin
La Integridad de la informacin
La Disponibilidad de la informacin
Los datos contenidos en una Base de Datos pueden ser individuales o de una
Organizacin. Sean de un tipo o de otro, a no ser que su propietario lo autorice, no
deben ser desvelados. Si esta revelacin es autorizada por dicho propietario la
confidencialidad se mantiene. Es decir, asegurar la confidencialidad significa
prevenir/ detectar/ impedir la revelacin impropia de la informacin.

INGENIERA DE SISTEMAS E INFORMTICA ADMINISTRACION DE BASE DE DATOS
FC ISI 2014 II
Pgina 5


PRINCIPIOS BSICOS DE SEGURIDAD DE BASES DE DATOS
En esta seccin veremos siete recomendaciones sobre seguridad en bases de
datos, instaladas en servidores propios de la organizacin.

1.- Identifique su sensibilidad
No se puede asegurar lo que no se conoce.
Confeccione un buen catlogo de tablas o datos sensibles de sus instancias de
base de datos. Adems, automatice el proceso de identificacin, ya que estos
datos y su correspondiente ubicacin pueden estar en constante cambio debido a
nuevas aplicaciones o cambios producto de fusiones y adquisiciones.
Desarrolle o adquiera herramientas de identificacin, asegurando stas contra el
malware, colocado en su base de datos el resultado de los ataques de inyeccin
SQL; pues aparte de exponer informacin confidencial debido a vulnerabilidades,
como la inyeccin SQL, tambin facilita a los atacantes incorporar otros ataques
en el interior de la base de datos.

2.- Evaluacin de la vulnerabilidad y la configuracin
Evale su configuracin de bases de datos, para asegurarse que no tiene huecos
de seguridad.
Esto incluye la verificacin de la forma en que se instal la base de datos y su
sistema operativo (por ejemplo, la comprobacin privilegios de grupos de archivo -
lectura, escritura y ejecucin- de base de datos y bitcoras de transacciones).
Asimismo con archivos con parmetros de configuracin y programas ejecutables.
Adems, es necesario verificar que no se est ejecutando la base de datos con
versiones que incluyen vulnerabilidades conocidas; as como impedir consultas
SQL desde las aplicaciones o capa de usuarios. Para ello se pueden considerar
(como administrador):

Limitar el acceso a los procedimientos a ciertos usuarios.
Delimitar el acceso a los datos para ciertos usuarios, procedimientos y/o
datos.
Declinar la coincidencia de horarios entre usuarios que coincidan.





INGENIERA DE SISTEMAS E INFORMTICA ADMINISTRACION DE BASE DE DATOS
FC ISI 2014 II
Pgina 6


3.- Endurecimiento
Como resultado de una evaluacin de la vulnerabilidad a menudo se dan una serie
de recomendaciones especficas. Este es el primer paso en el endurecimiento de
la base de datos. Otros elementos de endurecimiento implican la eliminacin de
todas las funciones y opciones que se no utilicen. Aplique una poltica estricta
sobre que se puede y que no se puede hacer, pero asegrese de desactivar lo
que no necesita.
4.- Audite
Una vez que haya creado una configuracin y controles de endurecimiento, realice
auto evaluaciones y seguimiento a las recomendaciones de auditora para
asegurar que no se desve de su objetivo (la seguridad).
Automatice el control de la configuracin de tal forma que se registre cualquier
cambio en la misma. Implemente alertas sobre cambios en la configuracin. Cada
vez que un cambio se realice, este podra afectar a la seguridad de la base de
datos.

5.- Monitoreo
Monitoreo en tiempo real de la actividad de base de datos es clave para limitar su
exposicin, aplique o adquiera agentes inteligentes de monitoreo, deteccin de
intrusiones y uso indebido.
Por ejemplo, alertas sobre patrones inusuales de acceso, que podran indicar la
presencia de un ataque de inyeccin SQL, cambios no autorizados a los datos,
cambios en privilegios de las cuentas, y los cambios de configuracin que se
ejecutan a mediante de comandos de SQL.
Recuerde que el monitoreo usuarios privilegiados, es requisito para la
gobernabilidad de datos y cumplimiento de regulaciones como SOX y regulaciones
de privacidad. Tambin, ayuda a detectar intrusiones, ya que muchos de los
ataques ms comunes se hacen con privilegios de usuario de alto nivel.
El monitoreo dinmico es tambin un elemento esencial de la evaluacin de
vulnerabilidad, le permite ir ms all de evaluaciones estticas o forenses. Un
ejemplo clsico lo vemos cuando mltiples usuarios comparten credenciales con
privilegios o un nmero excesivo de inicios de sesin de base de datos.







INGENIERA DE SISTEMAS E INFORMTICA ADMINISTRACION DE BASE DE DATOS
FC ISI 2014 II
Pgina 7


6.- Pistas de Auditora
Aplique pistas de auditora y genere trazabilidad de las actividades que afectan la
integridad de los datos, o la visualizacin los datos sensibles.
Recuerde que es un requisito de auditora, y tambin es importante para las
investigaciones forenses.
La mayora de las organizaciones en la actualidad emplean alguna forma de
manual de auditora de transacciones o aplicaciones nativas de los sistemas
gestores de bases de datos. Sin embargo, estas aplicaciones son a menudo
desactivadas, debido a:
Su complejidad
Altos costos operativos
Problemas de rendimiento
La falta de segregacin de funciones
La necesidad mayor capacidad de almacenamiento.
Afortunadamente, se han desarrollado soluciones con un mnimo de impacto en el
rendimiento y poco costo operativo, basado en tecnologas de agente inteligentes.

7.- Autenticacin, control de acceso, y Gestin de derechos
No todos los datos y no todos los usuarios son creados iguales. Usted debe
autenticar a los usuarios, garantizar la rendicin de cuentas por usuario, y
administrar los privilegios para de limitar el acceso a los datos.
Implemente y revise peridicamente los informes sobre de derechos de usuarios,
como parte de un proceso de formal de auditora.
Utilice el cifrado para hacer ilegibles los datos confidenciales, complique el trabajo
a los atacantes, esto incluye el cifrado de los datos en trnsito, de modo que un
atacante no puede escuchar en la capa de red y tener acceso a los datos cuando
se enva al cliente de base de datos.

INGENIERA DE SISTEMAS E INFORMTICA ADMINISTRACION DE BASE DE DATOS
FC ISI 2014 II
Pgina 8



INYECCION SQL

Inyeccin SQL es un mtodo de infiltracin de cdigo intruso que se vale de
una vulnerabilidad informtica presente en una aplicacin en el nivel de validacin
de las entradas para realizar consultas a una base de datos.
El origen de la vulnerabilidad radica en el incorrecto chequeo y/o filtrado de las
variables utilizadas en un programa que contiene, o bien genera, cdigo SQL. Es,
de hecho, un error de una clase ms general de vulnerabilidades que puede
ocurrir en cualquier lenguaje de programacin o script que est embebido dentro
de otro.
Se conoce como Inyeccin SQL, indistintamente, al tipo de vulnerabilidad, al
mtodo de infiltracin, al hecho de incrustar cdigo SQL intruso y a la porcin de
cdigo incrustado.
Se dice que existe o se produjo una inyeccin SQL cuando, de alguna manera, se
inserta o "inyecta" cdigo SQL invasor dentro del cdigo SQL programado, a fin de
alterar el funcionamiento normal del programa y lograr as que se ejecute la
porcin de cdigo "invasor" incrustado, en la base de datos.
Este tipo de intrusin normalmente es de carcter malicioso, daino o espa, por
tanto es un problema de seguridad informtica, y debe ser tomado en cuenta por
el programador de la aplicacin para poder prevenirlo. Un programa elaborado con
descuido, displicencia o con ignorancia del problema, podr resultar ser
vulnerable, y la seguridad del sistema (base de datos) podr quedar
eventualmente comprometida.
La intrusin ocurre durante la ejecucin del programa vulnerable, ya sea,
en computadores de escritorio o bien en sitios Web, en ste ltimo caso
obviamente ejecutndose en el servidor que los aloja.
La vulnerabilidad se puede producir automticamente cuando un programa "arma
descuidadamente" una sentencia SQL en tiempo de ejecucin, o bien durante la
fase de desarrollo, cuando el programador explicita la sentencia SQL a ejecutar en
forma desprotegida. En cualquier caso, siempre que el programador necesite y
haga uso de parmetros a ingresar por parte del usuario, a efectos de consultar
una base de datos; ya que, justamente, dentro de los parmetros es donde se
puede incorporar el cdigo SQL intruso.

INGENIERA DE SISTEMAS E INFORMTICA ADMINISTRACION DE BASE DE DATOS
FC ISI 2014 II
Pgina 9




Al ejecutarse la consulta en la base de datos, el cdigo SQL inyectado tambin se
ejecutar y podra hacer un sinnmero de cosas, como insertar registros, modificar
o eliminar datos, autorizar accesos e, incluso, ejecutar otro tipo de cdigo
malicioso en el computador.


Por ejemplo, asumiendo que el siguiente cdigo reside en una aplicacin
web y que existe un parmetro "nombreUsuario" que contiene el nombre de
usuario a consultar, una inyeccin SQL se podra provocar de la siguiente
forma:


consulta := "SELECT * FROM usuarios WHERE nombre = '" + nombreUsuario
+ "';"

Si el operador escribe un nombre, por ejemplo "Alicia", nada anormal
suceder, la aplicacin generara una sentencia SQL similar a la siguiente,
que es perfectamente correcta, en donde se seleccionaran todos los
registros con el nombre "Alicia" en la base de datos:

SELECT * FROM usuarios WHERE nombre = 'Alicia';

Pero si un operador malintencionado escribe como nombre de usuario a
consultar:

" Alicia'; DROP TABLE usuarios; SELECT * FROM datos WHERE nombre
LIKE '%"


INGENIERA DE SISTEMAS E INFORMTICA ADMINISTRACION DE BASE DE DATOS
FC ISI 2014 II
Pgina 10




(sin las comillas externas), se generara la siguiente consulta SQL, (el color
verde es lo que pretende el programador, el azul es el dato, y el rojo, el
cdigo SQL inyectado):

SELECT * FROM usuarios WHERE nombre = 'Alicia';
DROP TABLE usuarios;
SELECT * FROM datos WHERE nombre LIKE '%';
En la base de datos se ejecutara la consulta en el orden dado, se
seleccionaran todos los registros con el nombre 'Alicia', se borrara la tabla
'usuarios' y finalmente se seleccionara toda la tabla "datos", que no
debera estar disponible para los usuarios web comunes.


En resumen, cualquier dato de la base de datos puede quedar disponible para ser
ledo o modificado por un usuario malintencionado.
Ntese por qu se llama "Inyeccin" SQL. Si se observa el cdigo malicioso, de
color rojo, se notar que est insertado en el medio del cdigo bueno, el verde.
As, el cdigo rojo ha sido "inyectado" dentro del verde.
La inyeccin SQL es fcil de evitar, por parte del programador, en la mayora de
los lenguajes de programacin que permiten desarrollar aplicaciones web. En la
siguiente seccin se trata brevemente ese tema.
EN PHP
Para MySQL, la funcin a usar es mysql_real_escape_string:
Ejemplo:
$query_result= mysql_query("SELECT * FROM usuariosWHERE nombre= \"" .
mysql_real_escape_string($nombre_usuario) . "\"");

INGENIERA DE SISTEMAS E INFORMTICA ADMINISTRACION DE BASE DE DATOS
FC ISI 2014 II
Pgina 11



EN JAVA
En Java, tenemos que usar la clase PreparedStatement
En vez de:
Connectioncon = (acquireConnection) Statementstmt= con.createStatement(); ResultSetrset=
stmt.executeQuery("SELECT * FROM usuarios WHERE nombre = '" + nombreUsuario+ "';");
Habra que poner:
Connectioncon = (acquireConnection) PreparedStatement pstmt=
con.prepareStatement("SELECT * FROM usuarios WHERE nombre = ?"); pstmt.setString(1,
nombreUsuario); ResultSetrset= pstmt.executeQuery();



















INGENIERA DE SISTEMAS E INFORMTICA ADMINISTRACION DE BASE DE DATOS
FC ISI 2014 II
Pgina 12




BIBLIOGRAFIA


Seguridad y Confidencialidad en la Bases de Datos Fabian Portantier
http://gplsi.dlsi.ua.es/bbdd/bd1/lib/exe/fetch.php?media=bd1:0910:trabajos:segurid
adbd.pdf
http://html.rincondelvago.com/seguridad-en-bases-de-datos.html
http://es.slideshare.net/megacyberman/seguridad-en-bases-de-datos
http://www.monografias.com/trabajos26/seguridad-base-datos/seguridad-base-
datos3.shtml
https://www.owasp.org/index.php/Inyecci%C3%B3n_SQL
http://es.kioskea.net/contents/26-ataques-de-inyeccion-sql

También podría gustarte