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
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
Aplicacin
SGBD
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
12
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
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
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=
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
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
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
%lasi0icacin A A A I 2
19
Usuario 2 Seguridad A%
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
%lasi0icacin A A A . I 2
Usuario @ Seguridad 2%
21
Usuario @ Seguridad 2%
@N$909$@2A +=><?<>...
Usuario A Seguridad I%
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
tiene
1ol
tiene
es de ti!o
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
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|****|...
27
)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
+ 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
BD@
Sc)ema @
ta#la+o#4eto @
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
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
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;
some name A
some name B
ta#le?
ta#le?
33
34
: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
37
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
/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
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
%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
%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
43
/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
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
Gracias
6Gracias7
47
Seguridad
A0adir
48