Está en la página 1de 48

Inseguridad de los sistemas

JJ. de Jess Vzquez G.


G
Seguridad Informtica
Banco de Mxico

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

Antes de iniciar
Todas las ideas, ejemplos, propuestas son
responsabilidad exclusiva de Jess Vzquez.
En ningn momento debe considerarse que stos
corresponden
d a la
l opinin
i i de
d sus empleadores,
l d
tanto
t t
en la Banca como en la Academia mexicana.

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

Agenda

Juniode2008

Objetivo
Introduccin
Inseguridades
deas
Ideas
Conclusin

Dr.J.deJessVzquezGmezBanco
deMxico

Objetivo
Presentar algunas de las inseguridades comunes de
los sistemas en nuestros das, as como algunas de las
ideas que se han venido proponiendo para
solucionarlas.
Que el pblico interesado, quien an no se ha
formado barreras o limitaciones tericas, sea un
posible implementador de las referidas soluciones.
soluciones

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

Introduccin

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

Introduccin
Los sistemas se han desarrollado durante dcadas, en
el mejor de los casos la seguridad se ha considerado
en las etapas finales del diseo; sin embargo, en la
mayora de estos casos la seguridad es considerada
como una correccin
i a los
l desarrollos
d
ll en operacin,
i
despus de detectarse algn problema.

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

Introduccin
Algunos de estos problemas los hemos venido
acarreando desde los inicios de la informtica y no
hemos encontrado an una solucin adecuada. Entre
estos problemas figuran desde el viejo stack
overflow,
fl ell manejo
j dde iinformacin
f
i confidencial
fid i l en
sistemas no confidenciales, uso de protocolos de
comunicacin inseguros,
inseguros hasta la ausencia total de
consideraciones de seguridad en el ciclo de vida de
desarrollo de software.
Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

Introduccin
Hemos llegado a acostumbrarnos a la inseguridad
considerndola algo normal. Escuchamos expresiones
en los
l pasillos
ill de
d las
l reas

de
d sistemas
it
como las
l que
siguen:
ser mejor
j esperar
p
al service pack
p
1 antes de iniciar la
migracin de sistemas
cuntos clientes usan sus nuevos sistemas de
proteccin?
proteccin?
con estos cambios tecnolgicos tan frecuentes, nunca se
logra concluir la curva de aprendizaje
Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

Introduccin
Por otra parte
Siempre ha existido la dualidad entre la seguridad y la
inseguridad.
Es ms fcil atacar que proteger:
El atacante sabe cundo,
cundo cmo y dnde.
dnde
El defensor hace suposiciones de los 3 parmetros anteriores.

Un anlisis de riesgos permite al defensor tratar de definir


los parmetros del ataque; sin embargo, todo aquello que
escape a su anlisis cae en el mbito de la inseguridad.

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

Introduccin
La inseguridad se ha vuelto parte de la prctica diaria,
se ha institucionalizado en algunas reas, se
promueve en algunos estndares bajo nombres como:

Planes de contingencia
Recuperacin
i de
d desastres
d
Continuidad operativa o de negocio
Respuesta a incidentes
Especialidades en forensia informtica

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

10

Inseguridades

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

11

Algunos ejemplos de inseguridad

Desbordamiento de Stack
DoS
Sistemas operativos discrecionarios
esa o o de po
polticas
t cas
Desarrollo
Hash de cdigo fuente
SDLC inseguro

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

12

Desbordamiento de Stack
Una de las tcnicas ms comunes empleadas para
obtener privilegios de forma ilegal es desbordando el
stack.
Ventaja del atacante, cada versin de un sistema
operativo utiliza direcciones fijas para ciertas
aplicaciones, por lo que basta conocer dnde alterar el
stack modificando la direccin
direccin de regreso
regreso,
empleando esas aplicaciones, logrndose as alterar la
ejecucin normal.
Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

13

Regiones de memoria de un proceso

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

14

void function(int a, int b, int c)


{
char buffer1[5];
char buffer2[10];
}
void main() {
function(1,2,3);
}

bottom of
memory
<------

top of
memory
buffer2
[

buffer1
sfp
ret
a
][
][
][
][

b
][

c
][

top of
f
stack

]
bottom
b
of
f
stack

Ref Aleph One


Ref.

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

15

Denial of Service
Hacker
slo observa

Mquina
infectada

Usuario
Vctima

Mquina
infectada
La mquina vctima
no puede dar servicio

Juniode2008

Usuario

Dr.J.deJessVzquezGmezBanco
deMxico

Mquina
infectada
16

Sistemas operativos discrecionarios


Informacin confidencial y estratgica almacenada en
sistemas discrecionarios.
El usuario o el administrador pueden dar privilegios
sobre su informacin, a su discrecin, para que otros
usuarios tengan acceso a ella.
Es demasiado simple perder la confidencialidad, pues
esos otros usuarios
i pueden
d a su vez difundir
dif di la
l
informacin.
Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

17

Desarrollo de polticas
Es frecuente que las polticas de seguridad definidas
en las diferentes reas sean inconsistentes entre s, lo
que provoca ambigedades en su aplicacin en la
organizacin.

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

18

Consistencia
Consistency
the degree of uniformity, standardization, and freedom
from contradiction among the documents or parts of a
system or component [IEEE 90].

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

19

Necesidad de consistencia
Los diferentes tipos de polticas de la organizacin
pueden ser contradictorias entre s.
Una misma poltica de seguridad puede ser
interpretada de manera diferente por dos
implementadores conduciendo a situaciones en
implementadores,
conflicto.
Las diferentes polticas que pudiesen surgir en las
diferentes reas de una organizacin pueden ser
inconsistentes entre s.
Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

20

Necesidad de consistencia
action
ti
block
allow
ll
allow
block

Juniode2008

ourhost
h t
*
GW
*
*

portt
*
25
*
80

Dr.J.deJessVzquezGmezBanco
deMxico

theirhost
th
ih t
Atacante
*
*
*

portt
*
*
25
*

21

Hash de cdigo fuente


En marzo de 2005, Xiaoyun Wang and Hongbo Yu de
la Shandong University, China, publicaron la
descripcin del algoritmo que permite encontrar
secuencias diferentes de bytes que generan el mismo
h h con MD5
hash
MD5.
Aunado a esto, empieza a haber pruebas de posible
mal uso de esta inseguridad en el referido algoritmo.
algoritmo

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

22

Integridad del cdigo.

Clculo de hash

Artculo de Peter Selinger en


http://www.mathstat.dal.ca/~selinger/md5collision/
Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

23

SDLC inseguro
Aunque empieza a haber una conciencia en el
desarrollo de software seguro, la generalidad de los
desarrollos an no incluyen principios de seguridad.
Existe la falsa creencia de que los Firewalls, IDS y
VPNs protegen las aplicaciones.
Los fabricantes de software estn ms preocupados
por liberar
lib
nuevos sistemas
i
que por garantizar
i la
l
seguridad de los mismos.
Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

24

En el cdigo fuente:
if (ioctl (rec
(rec, SIOCGIFHWADDR
SIOCGIFHWADDR, &if
&if_data)
data) < 0) {
perr ("can't get HW addres of my interface!\n");
exit(1);
}
memcpy (myMAC, if_data.ifr_hwaddr.sa_data, 6);
printf (("> My
p
y HW Addr: %s\n",, hwaddr (myMAC));
( y
));
if (ioctl (rec, SIOCGIFADDR, &if_data) < 0) {
perr ("can't get IP addres of my interface!\n");
exit(1);
}
memcpy ((void
(( id *) &i
&ip, ((void
id *) &if
&if_data.ifr_addr.sa_data
d t if dd
d t +2
2, 4)
4);
myIP = ntohl (ip);
printf ("> My IP Addr: %s\n", inetaddr(ip));

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

25

The Department of Defense once created its own


software, but today only the most highly classified code is
written
i
in-house,
i h
at places
l
suchh as the
h secretive
i National
N i l
Security Agency. But a good deal of code for some of the
military'ss most sophisticated weapons
military
weapons--fighter
fighter aircraft and
missile defense systems, for example--is written in other
countries.
http://www.sciam.com/article.cfm?id=software-insecurity
Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

26

Ideas

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

27

Algunas ideas
Desbordamiento de Stack
DoS
Sistemas operativos
discrecionarios
Desarrollo de polticas
Hash de cdigo fuente
SDLC inseguro
g

Juniode2008

Stack dinmico
Anti-DOS
Sistemas multinivel (SE
Linux)
Consistencia de Polticas
Hash de cdigo en ejecucin
SDLC seguro
g
NIST SP 80064

Dr.J.deJessVzquezGmezBanco
deMxico

28

Desbordamiento de Stack
Como existe el manejador de memoria, por qu no
contar con un manejador de stack dinmico. Por
ejemplo que las direcciones fijas no sean nicas para
una versin particular de un sistema operativo, sino a
cada
d instalacin
i t l i de
d esa versin
i del
d l sistema
it
operativo.
ti
Desde luego que una mejor validacin de las entradas
a sistemas operativos y aplicaciones puede reducir
considerablemente este problema.

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

29

Denial of Service

El principio 3) de las Guidelines for the Security of Information Systems and


Networks de la OCDE, denominado RESPONSE, indica que:

Participants should act in a timely and co-operative manner to prevent, detect


and respond to security incidents.
Recognising the interconnectivity of information systems and networks and
the
h potential
i l for
f rapid
id andd widespread
id
d damage,
d
participants
i i
should
h ld act in
i a
timely and co-operative manner to address security incidents. They should
share information about threats and vulnerabilities, as appropriate, and
p
pprocedures for rapid
p and effective co-operation
p
to prevent,
p
, detect
implement
and respond to security incidents. Where permissible, this may involve crossborder information sharing and co-operation.

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

30

Sistemas operativos discrecionarios


Emplear sistemas mandatorios.

Source: The Flask Security Architecture: System Support for Diverse Security Policies by Ray Spencer (Secure
Computing Corporation), Stephen Smalley, Peter Loscocco (National Security Agency), Mike Hibler, David Andersen, and
Jay Lepreau (University of Utah).

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

31

Plataformas y aplicaciones evaluadas conforme al CC

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

32

Desarrollo de polticas
Una solucin posible a la inconsistencia al definir
polticas, es expresar los objetivos de seguridad de
una organizacin en trminos de especificacin
formal, que permita el anlisis automatizado de
contradicciones
t di i
o incoherencias.
i h
i

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

33

Ejemplo
% Lista de Axiomas.
%
formula_list(usable).
% Propiedad A %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% "Todo empleado puede accesar la informacion de la empresa"
%
(all a ( Empleado(a) ->
(all b (Informacion(b) & Accesa(a,b) ) ) ) ).

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

34

% Propiedad B %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% "Todo acceso a la informacion de la empresa, por parte
% de un empleado, requiere un password"
%
(all a all b ((Empleado(a) & Informacion(b) & Accesa(a,b)) ->
(exists c (Password(c) & Posee(a,c) )))).

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

35

% Propiedad C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% "Todo Barrendero es un empleado de la empresa"
%
(all a ( Barrendero(a) -> Empleado(a))).

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

36

% Propiedad D %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% "Todos los barrenderos no poseen passwords"
%
(all a ( Barrendero(a) ->
-(exists
(exists b (Password(b) & Posee(a
Posee(a,b))))).
b)))))

end_of_list.

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

37

% Lista de Soporte
%
formula_list(sos).
(exists a Informacion(a)).
( i t a E
(exists
Empleado(a)).
l d ( ))
(exists a Barrendero(a)).
(exists a Password(a)).
(
( ))
end_of_list.

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

38

---------------- PROOF ---------------1 [] -Empleado(x1)|Informacion(x2).


2 [] -Empleado(x1)|Accesa(x1,x2).
3 [] -Empleado(x3)| -Informacion(x4)|
-Accesa(x3,x4)|Password($f1(x3,x4)).
4 [] -Empleado(x3)|
Empleado(x3)| -Informacion(x4)|
Informacion(x4)|
-Accesa(x3,x4)|Posee(x3,$f
1(x3,x4)).
5 [] -Barrendero(x5)|Empleado(x5).
6 [] -Barrendero(x6)| -Password(x7)| -Posee(x6,x7).
8 [] Empleado($c2).
9 [] Barrendero($c3)
Barrendero($c3).
12 [ur,8,1] Informacion(x).
13 [ur,9,5] Empleado($c3).
15 [ur,13,2] Accesa($c3,x).
18 [ur,15,4,13,12] Posee($c3,$f1($c3,x)).
19 [ur,15,3,13,12]
[
15 3 13 12] Password($f1($c3,x)).
P
d($f1($ 3 ))
24 [ur,18,6,19] -Barrendero($c3).
25 [binary,24.1,9.1] $F.
------------ end of proof -------------

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

39

Hash de cdigo fuente


El ejemplo presentado por Peter Selinger, sumado al
problema de la inseguridad en los desarrollos, el
hecho de que un desarrollador puede incrustar cdigo
malicioso cmo reducir la inseguridad de los
d
desarrollos
ll de
d software?
ft
?
Verificacin de cdigo en ejecucin...
Revisiones
R ii
de
d caja
j blanca
bl
sobre
b ell cdigo
di

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

40

SDLC inseguro
La seguridad debera ser parte integral del Ciclo de
Vida de Desarrollo de Software.
Deberan existir responsabilidades aplicables
legalmente a los desarrolladores de software, de
modo que se obliguen a cumplir con ciertas
evaluaciones o certificaciones de seguridad antes de
liberar nuevos productos.
productos

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

41

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

42

NIST SP800-64

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

43

Conclusin

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

44

Conclusin
La inseguridad de los sistemas no se puede eliminar
del todo; sin embargo, es necesario que la academia y
l industria
la
i d t i reconsideren
id
sus causas, que se han
h
presupuesto como irremediables en los ltimos aos,
ppues algunas
g
de ellas ppudieran ser ahora tratables.
Los responsables de la seguridad informtica
debemos considerar en la estrategia que proponemos
a las
l organizaciones
i i
que apoyamos, la
l existencia
i
i de
d
las inseguridades, as como el anlisis de sus causas
para complementar y hacer mejor nuestra propuesta.
Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

45

Referencias
Smashing The Stack For Fun And Profit By Aleph
One
Building Secure Applications, Joseph feiman,
Gartner, 2007
MD5 Collision Demo,
Demo Peter Selinger,
Selinger 2007,
2007
http://www.mathstat.dal.ca/~selinger/md5collision/

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

46

Referencias
Institute of Electrical and Electronics Engineers.
IEEE Standard Computer Dictionary: A Compilation
off IEEE Standard
St d d Computer
C
t Glossaries.
Gl
i New
N Y
York,
k
NY: 1990.
Security Considerations in the Information System
Development Life Cycle, NIST SP 800-64 Rev 1
OECD Guidelines for the Security of Information
Systems and Networks, 2002.

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

47

Gracias

jjesusvg@banxico.org.mx

Juniode2008

Dr.J.deJessVzquezGmezBanco
deMxico

48