Foro Unidad 3
Computación (ENC'03)
Seguridad en Internet-2 (Tutorial)
M. en C. Mario Farias-Elinos
Laboratorio de Investigación y Desarrollo de Tecnología Avanzada (LIDETEA)
http://www.ci.ulsa.mx
Dirección de Posgrado e Investigación / Escuela de Ingeniería
Universidad La Salle
Grupo de Seguridad de RedCUDI http://seguridad.internet2.ulsa.mx
e-mail:elinos@ci.ulsa.mx
Seguridad en Internet-2
M. Farias-Elinos
Lab. de Investigación y Desarrollo de Tecnología Avanzada
(LIDETEA), Universidad La Salle
Grupo de Seguridad de RedCUDI (Internet-2 México)
e-mail: elinos@ci.ulsa.mx
web: http://seguridad.internet2.ulsa.mx
Contenido
Antecedentes
Configuración
aplicaciones de
segura
Problemática
Programación segura en:
de
formaSSH
C
Apache
PHP
Sendmail
Perl
IPTables
Uso de
seguridad
librerías
Sockets con SSL
de
Configuración de VPN
IPSec
Antecedentes
En cualquier sociedad, un
pequeño porcentaje de la
sociedad es maliciosa. Se
estima que Internet tiene 40
millones de usuarios. Aún si
el porcentaje de usuarios
maliciosos es menor al 1% de
esta sociedad, el número deusuarios maliciosos es tan
grande que debería ser
preocupante.
Problemática
En la curricula escolar no hay materias enfocadas
al desarrollo de aplicaciones seguras
Libros no hablan sobre programación segura
Nadie utiliza métodos formales de verificación
El lenguaje C no es seguro, principalmente en el
manejo de cadenas de caracteres
Los programadores no piensan en el ambiente
multiusuarioProblemática
Los programadores son humano, y el humano no
es perfecto, por lo que desarrolla no es perfecto
La mayoría de los programadores son simples
programadores, no buenos programadores
La mayoría de los programadores no tiene la
cultura de la seguridad
La mayoria de los profesionistas en seguridad no
son programadores
Problemática
La mayoría de los sistemas de cómputo notienen
un esquema de seguridad
La seguridad implíca un costo extra en cuanto al
tiempo de desarrollo
La seguridad tiene un costo en términos de
pruebas adicionales
Los usuarios no tienen cuidado con lo referente a
seguridad
There is lots of “broken” legacy software
Problemática
Errores de administración
Permisos, no instalan parches
No hay comunicación entre aplicaciones en formasegura
Reporte de incidentes (CERT)
90000
82094
76404
80000
70000
60000
52658
50000
40000
30000
21756
20000
9859
10000
0
6
1
9
8
8
2412 2573 2134
132 252 406 773 1334 2340
1
9
8
9
1
9
9
0
1
9
9
1
1
9
9
2
1
9
9
3
1
9
9
4
1
9
9
5
1
9
9
6
1
9
9
7
3734
1
9
9
8
1
9
9
9
2
0
0
0
2
0
01
2
0
0
2
2
0
0
3
*
Reporte de vulnerabilidades (CERT)
4500
4129
4000
3500
3000
2437
2500
1993
2000
1500
1090
1000
500
171
345
311
262
1
9
9
6
1
9
9
7
1
9
9
8
417
0
1
9
9
5
1
9
9
9
2
0
0
0
2
0
0
1
2
0
0
2
Vulnerabilidad de tipo Overflow
void funcion (char *str)
{
char buf[16];strcpy(buf,str);
}
void main (void)
{
int i;
char cadena_larga[256];
for (i = 0; i < 256; i++)
cadena_larga[i] = '@';
funcion(cadena_larga);
}
2
0
0
3
*
Programación segura en C
No hay seguridad en el diseño
Debilidades de las aplicaciones
Intrucciones en las que se puede generar un overflow
Instrucciones donde no hay control del tamaño del
bloque
Programación segura en CInstrucciones como:
Instrucciones de manejo de cadenas
strcpy, strcat
Intrucciones de solicitud de datos
scanf, gets
Intrucciones de manipulación de memoria
memcpy
Intrucciones directas al sistema
system
Programación segura en C
Copiar una cadena de caracteres
void ejemplo1 (char *str)
{
char buf[30];
strcpy(buf,str);
return;
}
void ejemplo1 (char *str)
{
char buf[30];...
Regístrate para leer el documento completo.