Está en la página 1de 41

Seguridad en BD

Universidad de los Andes


Demin Gutierrez Enero 2009 1

Seguridad?

La seguridad informtica consiste en asegurar que los recursos de sistemas y de informacin material informtico o !rogramas" #ases de datos" etc$% de una organizaci&n sean utilizados de la manera en que se decidi ' que el acceso a la informaci&n all( contenida" as( como su modificaci&n" slo sea posible a las personas que se encuentren acreditadas y dentro de los lmites de su autorizacin
Fuente: )tt!*++es$,i-i!edia$org+,i-i+Seguridad.informtica
2

Seguridad Fsico: Los servidores o nodos de c&m!uto% donde est el SGBD de#en estar !rotegidos frente al acceso de e/tra0os Humano: El !ersonal encargado de los servidores de#e ser calificado ' de confianza so#ornos + ingenier(a social% Red: La red en la que o!era el SGBD de#e tener las !rotecciones corres!ondientes" !rotecci&n en el env(o de datos" fire,alls" cifrado" entre otras
3

Seguridad Sistema Operati o: El sistema o!erativo de#e estar actualizado ' se de#en realizar todos los esfuerzos necesarios !ara que no sea vulnera#le Soft!are " #plicacin: Las a!licaciones cliente de los SGBD de#en ser dise$adas y desarrolladas con los niveles de seguridad adecuados SGBD: La #ase de datos de#e ser configurada con roles" !rivilegios ' !ermisos adecuados !ara evitar los accesos malintencionados
4

Seguridad Obligatoria (SGBD que lo soporten?)

Dnde implementar la seguridad? Seguridad a nivel del SGBD o seguridad a nivel de la Aplicacin? Recuerden el dilema: Validar a nivel del SGBD, a nivel de la aplicacin, a nivel del cliente?
5

Seguridad Obligatoria (SGBD que lo soporten?)

Seguridad a nivel de la a!licaci&n* ?

Aplicacin

Seguridad a nivel de la BD* Usuarios" 1oles" 2istas" 3ermisos" etc$

SGBD

Seguridad Obligatoria (SGBD que lo soporten?)


Seguridad a nivel de la a!licaci&n* Usuarios" 1oles" 3ermisos ' 3rivilegios incrustados en la l&gica de negocio" restricciones de acceso a los recursos" !ro!ietarios de registros+o#4etos" visi#ilidades" etc$

Aplicacin
7

$$$volviendo al t&!ico Seguridad%

Seguridad (A nivel del SGBD)

En los SGBD" el conce!to de seguridad se refiere a la proteccin de los datos ante usuarios no autorizados" es decir" definir estrategias que !ermitan esta#lecer que usuarios !ueden acceder a que datos 5i!os de seguridad en los SGBD
Seguridad Discrecional Seguridad 6#ligatoria Seguridad en Sistemas Estad(sticos (Qu creen !ue sea esto?"
9

Seguridad Discrecional

Se #asa en otorgar !rivilegios a usuarios o gru!os de usuarios%" en los que se inclu'e la ca!acidad de tener acceso ta#las" registros o cam!os es!ec(ficos con un determinado modo !ara leer" insertar o actualizar% Autorizar al usuario 7 a realizar consultas en filas de la ta#la A Autorizar al usuario 7 a utilizar un !rocedimiento almacenado B
10

Seguridad Discrecional
5a#la 8 Gru!o 8 Usuario 8 Gru!o 8% 5a#la 2

Secuencia 2 Gru!o 2 Vista #

:ndice 8 Usuario 2 Gru!o 8% Gru!o 2% Gru!o 9 $$$ Las vistas son una !oderosa )erramienta !ara controlar la seguridad

11

Seguridad Discrecional

Usuario 8 Gru!o 8%

Gru!o

Vista #: ;olumna A ;olumna B ;olumna 7 ;olumna < CREATE VIEW vista1 AS ( SELECT ColumnaA, ColumnaB, ColumnaX, ColumnaY FROM tabla1, tabla W!ERE """# $a%la #: ;olumna 7 ;olumna < ;olumna =

>3uede Usuario 8 ver los valores de las columnas ; ' =? >3uede modificar alguna fila de las ta#las 2 ' 9?

$a%la &: ;olumna A ;olumna B ;olumna ;

'mo evitan !ue (suario # vea ciertas )ilas espec*)icas?

12

Seguridad Obligatoria

;onsiste en im!oner seguridad de m@lti!les niveles" clasificando los datos ' los usuarios en varias clases o niveles% de seguridad" de manera que los usuarios !uedan acceder a los datos seg@n tengan o no el nivel necesario !ara el dato que desean acceder
Las filas o los o#4etos% tienen un nivel Ai de seguridad" que solo se !ueden leer si el usuario tiene un nivel Ui BC Ai de seguridad$$$
8 2 9 D
13

Seguridad Obligatoria (Reglas)

El usuario 7 !uede recu!erar leer% el o#4eto < s&lo si el nivel de acreditaci&n seguridad% de 7 Ui% es ma'or o igual que el nivel de clasificaci&n de < Ai% E!ro!iedad de seguridad sim!le% El usuario 7 !uede actualizar el o#4eto < s&lo si el nivel de acreditaci&n de 7 Ui% es igual al nivel de clasificaci&n de < Ai% E!ro!iedad estrellaF%$ +deas de por !u esto es as*?
14

Seguridad Obligatoria (Reglas)

La segunda regla anterior evita que e/istan filtraciones de seguridad )acia a#a4o" o que un usuario escri#a datos que luego no !ueda leer$$$ )acia arri#a%
,mpleado ' dula

-om%re 3edro 3erez Iuan Garc(a Diego 1o4as Luis Silva Karcos Luintero

Sueldo 9000 2G00 D000 80000 8000

'lasi)icacin 9 9 9 D 2
15

Usuario 2 Seguridad 9% Ks Seguridad% Usuario 8 Seguridad 2% Kenos Seguridad%

82$99D$GD9 8D$292$HG0 8G$GGH$9DG 8H$9D9$222 8J$909$829

Seguridad Obligatoria (Reglas)


S,.,'$ / 0R12 empleado S,.,'$ / 0R12 empleado 34,R, clasi)icacion 56 & Usuario 8 Seguridad 2%
,mpleado ' dula 8J$909$829 -om%re Karcos Luintero Sueldo 8000 'lasi)icacin 2

S,.,'$ / 0R12 empleado S,.,'$ / 0R12 empleado 34,R, clasi)icacion 56 7


,mpleado ' dula 82$99D$GD9 -om%re 3edro 3erez Iuan Garc(a Diego 1o4as Karcos Luintero Sueldo 9000 2G00 D000 8000 'lasi)icacin 9 9 9 2
16

Usuario 2 Seguridad 9%

8D$292$HG0 8G$GGH$9DG 8J$909$829

Seguridad Obligatoria (Reglas)

+-S,R$ +-$1 empleado VA.(,S(#897:79&&&, ;.uis Silva;, &<<<" +-S,R$ +-$1 empleado VA.(,S(#897:79&&&, ;.uis Silva;, &<<<, &"
,mpleado ' dula

-om%re 3edro 3erez Iuan Garc(a Diego 1o4as .uis Silva Luis Silva Karcos Luintero

Sueldo 9000 2G00 D000 &<<< 80000 8000

'lasi)icacin 9 9 9 & D 2

Usuario 8 Seguridad 2%

82$99D$GD9 8D$292$HG0 8G$GGH$9DG #897:79&&& 8H$9D9$222 8J$909$829

17

Seguridad Obligatoria (Reglas)


S,.,'$ / 0R12 empleado S,.,'$ / 0R12 empleado 34,R, clasi)icacion 56 &
,mpleado ' dula -om%re Karcos Luintero .uis Silva Sueldo 8000 &<<< 'lasi)icacin 2 &

Usuario 8 Seguridad 2%

8J$909$829 #897:79&&&

S,.,'$ / 0R12 empleado S,.,'$ / 0R12 empleado 34,R, clasi)icacion 56 :


,mpleado ' dula 82$99D$GD9 8D$292$HG0 8G$GGH$9DG #897:79&&& 8H$9D9$222 8J$909$829 -om%re 3edro 3erez Iuan Garc(a Diego 1o4as .uis Silva Luis Silva Karcos Luintero Sueldo 9000 2G00 D000 &<<< 80000 8000 'lasi)icacin 9 9 9 & D 2
18

Usuario 9 Seguridad D%

Seguridad Discrecional (PostgreSQ )


#tributos Seguridad glo#al ' a nivel de BD% %ri ile&ios Seguridad a nivel de 6#4etos%

tiene

1ol

tiene

es de ti!o

Grupo Mo !uede )acer Login%

!ertenece ' )ereda !rivilegios ' atri#utos de

'suario 3uede )acer Login%


19

Seguridad Discrecional (PostgreSQ )

Advertencia: .a =erencia entre Grupo, (suario > Rol > la relacin entre Grupo > (suario tiende a crear muc=a con)usin en lo !ue respecta a la terminolog*a999
20

Seguridad Discrecional (PostgreSQ )

Los roles de la BD son EusuariosF" son glo#ales" es decir" no e/isten !or cada #ase de datos 'R,A$, R1., nom%re?rol@ DR1A R1., nom%re?rol@ S,.,'$ / 0R12 pg?roles@
rolname |super|inherit|createrole|createdb|catupdate|canlogin|connlimit|pass|... --------+-----+-------+----------+--------+---------+--------+---------+----+--postgres|t |t |t |t |t |t | -1|****|... foo |f |t |f |t |f |t | -1|****|...

3ara ms informaci&n so#re el resultado del select consultar el manual de 3ostgreSLL

21

Seguridad Discrecional (PostgreSQ ! Atributos)


.1G+-* La !osi#ilidad de )acer login S(A,R(S,R* 3ermisos de su!erusuario usar con cuidado% 'R,A$,DB* La !osi#ilidad de crear #ases de datos 'R,A$,R1.,* La !osi#ilidad de crear otros roles AASS31RD ;string;* 3ara asignar una contrase0a String es el !ass,ord%
'R,A$, R1., )oo .1G+- 'R,A$,DB AASS31RD ;)oo#&7;@ A.$,R R1., )oo 'R,A$,DB AASS31RD ;BBB>>>;@
22

Seguridad Discrecional (PostgreSQ ! Sobre el pass"ord)


Arc=ivo de 'on)iguracin de AostgreSQ. CusrClocalCpgs!lCdataCpg?=%a9con)
$TY%E &ATABASE 'SER CI&R(A&&RESS MET!O&

$ )lo*al) is +o, 'ni- .omain so*/0t *onn0*tions onl1 $lo*al all all t,ust lo*al all all 2ass3o,. $ I%v4 lo*al *onn0*tions5 $6ost all all 6ost all all $ I%v; lo*al *onn0*tions5 $6ost all all 6ost all all 1 7"8"8"19: 1 7"8"8"19: 55191 < 55191 < t,ust 2ass3o,. t,ust 2ass3o,.

,s decir, la estrategia de autenti)icacin puede variar > aDustarse segEn las necesidades (-o solo en AostgreSQ., sino en la ma>or*a de los SGBD"

23

ESLUEKAS S;NEKAS
5&!ico A!arte" Kover a SLL%

24

Seguridad Discrecional (PostgreSQ ! Privilegios)

BD8

Sc)ema 8

ta#la+o#4eto 8

Sc)ema 2 BD2 Sc)ema 9 SGBD BD9

ta#la+o#4eto 2

999
ta#la+o#4eto M ta#la+o#4eto 8

999
Sc)ema M

999
BDn

Mo todos los SGBD usan esta esta estrategia" !ero es com@n que la ma'or(a definan estructuras de este ti!o
25

#rear o $li%inar una Sc&e%a (Qu' es un Sc&e%a?)


test=# \dn List of schemas Name | Owner --------------------+---------information_schema | postgres pg_catalog | postgres pg_toast | postgres pg_toast_temp_1 | postgres public | postgres ! rows" test=# CREATE SC!EMA som0=s*60ma=nam0> #$%&'% (#)%*& test=# ?.n List of schemas Name | Owner --------------------+---------information_schema | postgres pg_catalog | postgres pg_toast | postgres pg_toast_temp_1 | postgres public | postgres som0=s*60ma=nam0 @ 2ostA,0s + rows" test=#

El sc)ema es #sicamente un es!acio de nom#re" es !osi#le tener ta#las con el mismo nom#re en diferentes sc)emas

test=# &RO% SC!EMA som0=s*60ma=nam0> ,$O- (#)%*& test=# ?.n List of schemas Name | Owner --------------------+---------information_schema | postgres pg_catalog | postgres pg_toast | postgres pg_toast_temp_1 | postgres public | postgres ! rows" test=#

26

Seguridad Discrecional (PostgreSQ ! Privilegios)


test=# #$%&'% test=# #$%&'% test=# #$%&'% test=# #$%&'% test=# /N(%$' test=# CREATE SC!EMA som0=nam0=a> (#)%*& CREATE SC!EMA som0=nam0=b> (#)%*& CREATE TABLE som0=nam0=a"tabl0X (i. IBT#> '&.L% CREATE TABLE som0=nam0=b"tabl0X (i. IBT#> '&.L% IBSERT IBTO som0=nam0=a"tabl0X VAL'ES (1#> 0 1 IBSERT IBTO som0=nam0=b"tabl0X VAL'ES (C#> 0 1 SELECT D FROM som0=nam0=a"tabl0X>

Los sc)emas a'udan en la seguridad en el sentido de que son 1BF,$1S a los que les !odemos asignar !rivilegios ' que agru!an a 1$R1S 1BF,$1S

5ES5

/N(%$' test=# id ---1 test=# SELECT D FROM som0=nam0=b"tabl0X> id ---1

some name A

some name B

ta#le7

ta#le7
27

$$$volviendo al t&!ico Seguridad%

28

Seguridad Discrecional (PostgreSQ ! Privilegios)

;uando un Eo#4etoF ta#la" secuencia" (ndice" etc% es creado usualmente se le asigna un due0o$ 3or defecto" el due0o es el rol usuario% que crea el o#4eto$ Es decir" !ara la ma'or !arte de los o#4etos" inicialmente" s&lo el due0o ' el su!erusuario !ueden )acer algo con el o#4eto 3ara !ermitir a otros usuarios )acer algo con esos o#4etos es necesario asignar !rivilegios" de los cuales )a' de distintos ti!os* ()amina si&uiente*
29

Seguridad Discrecional (PostgreSQ ! Privilegios) S+)+,-. /0S+R-. '%D#-+. D+)+-+. R+F+R+0,+S. -R/GG+R. ,R+#-+. ,O00+,-. -+1%OR#R2. +3+,'-+. 'S#G+

Los !rivilegios se asignan con el comando G1AM5* GRA-$ (ADA$, 1- ta%la $1 rol@ ' se eliminan con 1E26OE* R,V1G, A.. 1- ta%la 0R12 rol@
30

Seguridad Discrecional (PostgreSQ ! Privilegios)

E4em!lo en SLL con SELE;5 e PMSE15$$$

31

Seguridad Discrecional (PostgreSQ ! Privilegios)

S,.,'$ 3ermite )acer SELE;5 de cualquier columna en la ta#la" vista o secuencia es!ecificada$ 5am#iQn !ermite usar ;63< A16K$ 3ara secuencias este !rivilegio !ermite usar la funci&n currval$ +-S,R$ 3ermite insertar nuevas filas en la ta#la es!ecificada" tam#iQn !ermite la o!eraci&n ;63< 56 so#re la ta#la en cuesti&n$
32

Seguridad Discrecional (PostgreSQ ! Privilegios)

(ADA$, 3ermite actualizar cualquier columna de la ta#la es!ecificada$ SELE;5 $$$ A61 U3DA5E ' SELE;5 $$$ A61 SNA1E tam#iQn requieren este !rivilegio Adems del !rivilegio SELE;5%$ 3ara secuencias" este !rivilegio !ermite el uso de la funci&n ne/tval ' setval$ D,.,$, 3ermite eliminar filas de la ta#la en cuesti&n$
33

Seguridad Discrecional (PostgreSQ ! Privilegios)

R,0,R,-',S 3ara crear claves forneas es necesario tener este !rivilegio tanto en la ta#la que )ace la referencia como en la ta#la referenciada$ $R+GG,R 3ermite crear gatillos en la ta#la es!ecificada
34

Seguridad Discrecional (PostgreSQ ! Privilegios)

'R,A$, Si se asocia a %ases de datos" !ermite crear es!uemas dentro de la #ase de datos$ Si se asocia a es!uemas !ermite crear o%Detos ta#las" vistas" etc% dentro del esquema$ 3ara cam#iar el nom#re de un o#4eto es necesario tener este !rivilegio$
35

Seguridad Discrecional (PostgreSQ ! Privilegios)

'1--,'$ 3ermite a los usuarios conectarse a la #ase de datos es!ecificada$ $,2A1RARH $,2A 3ermite la creaci&n de ta#las tem!orales en la #ase de datos es!ecificada$
36

Seguridad Discrecional (PostgreSQ ! Privilegios)

,I,'($, 3ermite el uso de la funci&n es!ecificada S&lo a!lica a funciones%

37

Seguridad Discrecional (PostgreSQ ! Privilegios)

(SAG, 3ara lengua4es de !rocedimientos !ermite el uso del lengua4e es!ecificado !ara crear funciones en el lengua4e es!ecificado% 3ara es!uemas !ermite el acceso a los o#4etos contenidos en el esquema asumiendo que los !rivilegios de los o#4etos !articulares se cum!len% 3ara secuencias" !ermite el uso de la funci&n currval ' ne/tval so#re la secuencia es!ecificada$
38

Seguridad Discrecional (PostgreSQ ! Privilegios)

A.. AR+V+.,G,S Da todos los !rivilegios dis!oni#les$ La !ala#ra 31P2PLEGES es o!cional en 3ostgreSLL !ero su uso es o#ligatorio en el estndar SLL$

39

Seguridad

(n eDemplo de la clase de pro%lemas !ue se pueden encontrar999


Native PostgreSQL restricts ! users "ith #$Ls on vie"s. %his means that access paths to a certain table cannot be described clearl&' because multiple vie"s to a table ma& be defined. (oreover' an #$L on a table is not evaluated "hen accessed from a vie". %hus' a ! user "ho has the authorit& to define a vie" can access an& information in the database.
40

Gracias

4Gracias5

41

También podría gustarte