Anda di halaman 1dari 48

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

5S6L 789E:;7<8=
;&!ico A!arte" >over a S6L%

Quin puede e plicar la ra!n por la "ue esta tira cmica es tan #pero tan$ graciosa? #al menos para mi$
#%ortes&a de 'cd$ 9

SELECT * FROM user WHERE name='%NAME%' AND pass='%PASS%' Si retorna al menos un registro" de4amos entrar al usuario% %NAME% = foo %PASS% = whatever' OR '1'='1 %u(l ser( el SQ) generado?
10

SELECT * FROM user WHERE name='foo' AND pass='whatever' OR '1'='1'

%u(ntos registros genera la consulta anterior?

)es resulta a*ora gracioso?


11

$$$volviendo al t&!ico Seguridad%

12

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

;i!os de seguridad en los SGBD


Seguridad Discrecional Seguridad <#ligatoria Seguridad en Sistemas Estad(sticos #Qu creen "ue sea esto?$
13

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 ? a realizar consultas en filas de la ta#la A Autorizar al usuario ? a utilizar un !rocedimiento almacenado B
14

Seguridad Discrecional
;a#la @ Gru!o @ Usuario @ Gru!o @% ;a#la 2

Secuencia 2 Gru!o 2 Vista +

Bndice @ Usuario 2 Gru!o @% Gru!o 2% Gru!o A $$$ Las vistas son una !oderosa )erramienta !ara controlar la seguridad

15

Seguridad Discrecional

Usuario @ Gru!o @%

Gru!o

Vista +: :olumna A :olumna B :olumna ? :olumna C CREATE VIEW vista1 AS ( SELECT ColumnaA Columna! Columna" Columna# $RO% ta&la1 ta&la' W(ERE )))* ,a-la +: :olumna ? :olumna C :olumna D

53uede Usuario @ ver los valores de las columnas : ' D= 53uede modificar alguna fila de las ta#las 2 ' A=

,a-la .: :olumna A :olumna B :olumna :

%mo evitan "ue /suario + vea ciertas 0ilas espec&0icas?

16

Seguridad Obligatoria

:onsiste en im!oner seguridad de mElti!les niveles" clasificando los datos ' los usuarios en varias clases o niveles% de seguridad" de manera que los usuarios !uedan acceder a los datos segEn tengan o no el nivel necesario !ara el dato que desean acceder

Las filas o los o#4etos% tienen un nivel Fi de seguridad" que solo se !ueden leer si el usuario tiene un nivel Ui GH Fi de seguridad$$$
@ 2 A I
17

Seguridad Obligatoria (Reglas)

El usuario ? !uede recu!erar leer% el o#4eto C s&lo si el nivel de acreditaci&n seguridad% de ? Ui% es ma'or o igual que el nivel de clasificaci&n de C Fi% J!ro!iedad de seguridad sim!le% El usuario ? !uede actualizar el o#4eto C s&lo si el nivel de acreditaci&n de ? Ui% es igual al nivel de clasificaci&n de C Fi% J!ro!iedad estrellaK%$ 1deas de por "u esto es as&?
18

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%
2mpleado %dula

3om-re 3edro 3erez 9uan Garc(a Diego 1o4as Luis Silva >arcos 6uintero

Sueldo A000 2L00 I000 @0000 @000

%lasi0icacin A A A I 2
19

Usuario 2 Seguridad A% >s Seguridad% Usuario @ Seguridad 2% >enos Seguridad%

@2$AAI$LIA @I$2A2$ML0 @L$LLM$AIL @M$AIA$222 @N$909$@2A

Seguridad Obligatoria (Reglas)


S2)2%, 4 5R67 empleado S2)2%, 4 5R67 empleado 892R2 clasi0icacion :; . Usuario @ Seguridad 2%
2mpleado %dula @N$909$@2A 3om-re >arcos 6uintero Sueldo @000 %lasi0icacin 2

S2)2%, 4 5R67 empleado S2)2%, 4 5R67 empleado 892R2 clasi0icacion :; <


2mpleado %dula @2$AAI$LIA 3om-re 3edro 3erez 9uan Garc(a Diego 1o4as >arcos 6uintero Sueldo A000 2L00 I000 @000 %lasi0icacin A A A 2
20

Usuario 2 Seguridad A%

@I$2A2$ML0 @L$LLM$AIL @N$909$@2A

Seguridad Obligatoria (Reglas)

13S2R, 13,6 empleado VA)/2S#+=><?<>..., @)uis Silva@, .AAA$ 13S2R, 13,6 empleado VA)/2S#+=><?<>..., @)uis Silva@, .AAA, .$
2mpleado %dula

3om-re 3edro 3erez 9uan Garc(a Diego 1o4as )uis Silva Luis Silva >arcos 6uintero

Sueldo A000 2L00 I000 .AAA @0000 @000

%lasi0icacin A A A . I 2

Usuario @ Seguridad 2%

@2$AAI$LIA @I$2A2$ML0 @L$LLM$AIL +=><?<>... @M$AIA$222 @N$909$@2A

21

Seguridad Obligatoria (Reglas)


S2)2%, 4 5R67 empleado S2)2%, 4 5R67 empleado 892R2 clasi0icacion :; .
2mpleado %dula 3om-re >arcos 6uintero )uis Silva Sueldo @000 .AAA %lasi0icacin 2 .

Usuario @ Seguridad 2%

@N$909$@2A +=><?<>...

S2)2%, 4 5R67 empleado S2)2%, 4 5R67 empleado 892R2 clasi0icacion :; ?


2mpleado %dula @2$AAI$LIA @I$2A2$ML0 @L$LLM$AIL +=><?<>... @M$AIA$222 @N$909$@2A 3om-re 3edro 3erez 9uan Garc(a Diego 1o4as )uis Silva Luis Silva >arcos 6uintero Sueldo A000 2L00 I000 .AAA @0000 @000 %lasi0icacin A A A . I 2
22

Usuario A Seguridad I%

Seguridad Obligatoria (SGBD que lo soporten?)

6racle )a-el SecuritB


)tt!*++,,,$oracle$com+tec)nolog'+de!lo'+securit'+data#aseOsecurit'+la#elOsecurit'+inde/$)tml

S2CostgreSQ) #SecuritB 2n*aced$


)tt!*++,i-i$!ostgresql$org+,i-i+SE3ostgreS6L.7ntroduction

23

Seguridad Discrecional (PostgreSQ ) 3ostgreS6L manages data#ase access !ermissions using t)e conce!t of roles$ A role can #e t)oug)t of as eit%er a database user& or a 'roup of database users" de!ending on )o, t)e role is set u!$ Roles can o!n database ob(ects for e/am!le" ta#les% and can assign !rivileges on t)ose o#4ects to ot)er roles to control ,)o )as access to ,)ic) o#4ects$ Furt)ermore" it is !ossi#le to grant mem#ers)i! in a role to anot)er role" t)us allo,ing t)e mem#er role use of !rivileges assigned to t)e role it is a mem#er of$
Fuente: )tt!*++,,,$!ostgresql$org+docs+N$I+interactive+userOmanag$)tml
24

Seguridad Discrecional (PostgreSQ )


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

tiene

1ol

tiene

es de ti!o

Grupo 8o !uede )acer Login%

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

*suario 3uede )acer Login%


25

Seguridad Discrecional (PostgreSQ )

Advertencia: )a *erencia entre Grupo, /suario B Rol B la relacin entre Grupo B /suario tiende a crear muc*a con0usin en lo "ue respecta a la terminolog&a>>>
26

Seguridad Discrecional (PostgreSQ )

Los roles de la BD son JusuariosK" son glo#ales" es decir" no e/isten !or cada #ase de datos %R2A,2 R6)2 nom-reDrolE DR6C R6)2 nom-reDrolE S2)2%, 4 5R67 pgDrolesE
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 3ostgreS6L

27

Seguridad Discrecional (PostgreSQ ! Atributos)

)6G13* La !osi#ilidad de )acer login S/C2R/S2R* 3ermisos de su!erusuario usar con cuidado% %R2A,2DB* La !osi#ilidad de crear #ases de datos %R2A,2R6)2* La !osi#ilidad de crear otros roles CASS86RD @string@* 3ara asignar una contrase0a String es el !ass,ord%
%R2A,2 R6)2 0oo )6G13 %R2A,2DB CASS86RD @0oo+.<@E A),2R R6)2 0oo %R2A,2DB CASS86RD @ BBB@E
28

Seguridad Discrecional (PostgreSQ ! Sobre el pass"ord)


Arc*ivo de %on0iguracin de CostgreSQ) FusrFlocalFpgs"lFdataFpgD*-a>con0
+T#,E -ATA!ASE .SER CI-R/A--RESS %ET(O-

+ 0lo1al0 is for .ni2 3omain so14et 1onne1tions onl5 +lo1al all all trust lo1al all all 6asswor3 + I,v7 lo1al 1onne1tions8 +host all all host all all + I,v= lo1al 1onne1tions8 +host all all host all all 1'9):):)1;<' 1'9):):)1;<' 881;1'> 881;1'> trust 6asswor3 trust 6asswor3

2s decir, la estrategia de autenti0icacin puede variar B aGustarse segHn las necesidades #3o solo en CostgreSQ), sino en la maBor&a de los SGBD$

29

ES6UE>AS S:PE>AS
;&!ico A!arte" >over a S6L%

30

Seguridad Discrecional (PostgreSQ ! Privilegios)

BD@

Sc)ema @

ta#la+o#4eto @

Sc)ema 2 BD2 Sc)ema A SGBD BDA

ta#la+o#4eto 2

>>>
ta#la+o#4eto 8 ta#la+o#4eto @

>>>
Sc)ema 8

>>>
BDn

8o todos los SGBD usan esta esta estrategia" !ero es comEn que la ma'or(a definan estructuras de este ti!o
31

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


test=# \ n L!st "# s$%emas Name & O'ner (((((((((((((((((((()(((((((((( !n#"rmat!"n*s$%ema & p"st+res p+*$ata,"+ & p"st+res p+*t"ast & p"st+res p+*t"ast*temp*& p"st+res pu.,!$ & p"st+res /0 r"'s1 test=# CREATE SC(E%A some?s1hema?name@ CREATE SCHEMA test=# A3n L!st "# s$%emas Name & O'ner (((((((((((((((((((()(((((((((( !n#"rmat!"n*s$%ema & p"st+res p+*$ata,"+ & p"st+res p+*t"ast & p"st+res p+*t"ast*temp*& p"st+res pu.,!$ & p"st+res some?s1hema?name B 6ostCres /2 r"'s1 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(E%A some?s1hema?name@ DROP SCHEMA test=# A3n L!st "# s$%emas Name & O'ner (((((((((((((((((((()(((((((((( !n#"rmat!"n*s$%ema & p"st+res p+*$ata,"+ & p"st+res p+*t"ast & p"st+res p+*t"ast*temp*& p"st+res pu.,!$ & p"st+res /0 r"'s1 test=#

32

Seguridad Discrecional (PostgreSQ ! Privilegios)


test=# CREATE test=# CREATE test=# CREATE test=# CREATE test=# 4NSERT test=# CREATE SC(E%A some?name?a@ SCHEMA CREATE SC(E%A some?name?&@ SCHEMA CREATE TA!LE some?name?a)ta&le" (i3 IDT*@ TA3LE CREATE TA!LE some?name?&)ta&le" (i3 IDT*@ TA3LE IDSERT IDTO some?name?a)ta&le" VAL.ES (1*@ 5 IDSERT IDTO some?name?&)ta&le" VAL.ES (E*@ 5 SELECT F $RO% some?name?a)ta&le"@

Los sc)emas a'udan en la seguridad en el sentido de que son 6BI2,6S a los que les !odemos asignar !rivilegios ' que agru!an a 6,R6S 6BI2,6S

;ES;

4NSERT test=# ! (((( test=# SELECT F $RO% some?name?&)ta&le"@ ! (((( 6

some name A

some name B

ta#le?

ta#le?
33

$$$volviendo al t&!ico Seguridad%

34

Seguridad Discrecional (PostgreSQ ! Privilegios)

:uando un Jo#4etoK 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'uiente35

Seguridad Discrecional (PostgreSQ ! Privilegios) S.,./0& 12S.R0& *)D#0.& D.,.0.& R.F.R.2/.S& 0R1GG.R& /R.#0.& /O22./0& 0.3)OR#R4& .5./*0.& *S#G.

Los !rivilegios se asignan con el comando G1A8;* GRA3, /CDA,2 63 ta-la ,6 rolE ' se eliminan con 1E2<QE* R2V6J2 A)) 63 ta-la 5R67 rolE
36

Seguridad Discrecional (PostgreSQ ! Privilegios)

E4em!lo en S6L con SELE:; e 78SE1;$$$

37

Seguridad Discrecional (PostgreSQ ! Privilegios)

S2)2%, 3ermite )acer SELE:; de cualquier columna en la ta#la" vista o secuencia es!ecificada$ ;am#iRn !ermite usar :<3C F1<>$ 3ara secuencias este !rivilegio !ermite usar la funci&n currval$ 13S2R, 3ermite insertar nuevas filas en la ta#la es!ecificada" tam#iRn !ermite la o!eraci&n :<3C ;< so#re la ta#la en cuesti&n$
38

Seguridad Discrecional (PostgreSQ ! Privilegios)

/CDA,2 3ermite actualizar cualquier columna de la ta#la es!ecificada$ SELE:; $$$ F<1 U3DA;E ' SELE:; $$$ F<1 SPA1E tam#iRn requieren este !rivilegio Adems del !rivilegio SELE:;%$ 3ara secuencias" este !rivilegio !ermite el uso de la funci&n ne/tval ' setval$ D2)2,2 3ermite eliminar filas de la ta#la en cuesti&n$
39

Seguridad Discrecional (PostgreSQ ! Privilegios)

R252R23%2S 3ara crear claves forneas es necesario tener este !rivilegio tanto en la ta#la que )ace la referencia como en la ta#la referenciada$ ,R1GG2R 3ermite crear gatillos en la ta#la es!ecificada
40

Seguridad Discrecional (PostgreSQ ! Privilegios)

%R2A,2 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-Getos ta#las" vistas" etc% dentro del esquema$ 3ara cam#iar el nom#re de un o#4eto es necesario tener este !rivilegio$
41

Seguridad Discrecional (PostgreSQ ! Privilegios)

%6332%, 3ermite a los usuarios conectarse a la #ase de datos es!ecificada$ ,27C6RARK ,27C 3ermite la creaci&n de ta#las tem!orales en la #ase de datos es!ecificada$
42

Seguridad Discrecional (PostgreSQ ! Privilegios)

2L2%/,2 3ermite el uso de la funci&n es!ecificada S&lo a!lica a funciones%

43

Seguridad Discrecional (PostgreSQ ! Privilegios)

/SAG2 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$
44

Seguridad Discrecional (PostgreSQ ! Privilegios)

A)) CR1V1)2G2S Da todos los !rivilegios dis!oni#les$ La !ala#ra 31727LEGES es o!cional en 3ostgreS6L !ero su uso es o#ligatorio en el estndar S6L$

45

Seguridad

/n eGemplo de la clase de pro-lemas "ue se pueden encontrar>>>


Native PostgreSQL restricts DB users with ACLs on views. This means that access paths to a certain table cannot be described clearl ! because multiple views to a table ma be de"ined. #oreover! an ACL on a table is not evaluated when accessed "rom a view. Thus! a DB user who has the authorit to de"ine a view can access an in"ormation in the database.
46

Gracias

6Gracias7

47

Seguridad

A0adir

Seguridad en sistemas estad(sticos < de4arlo como tarea%

48

Anda mungkin juga menyukai