Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ACTIVIDAD 2
TRABAJO COLABORATIVO
INTRODUCCION
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
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.
OBJETIVOS
Generales
Especficos
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
Funcionamiento
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.
Componentes
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
reas disco
acceden
Protocolo
utilizado
Puertos que
usan
Pantalla de
trabajo
Requerimiento
de servidor
central
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.
tamao en disco
clientes usados
Kazaa;
iMesh;
Mammoth;
KCeasy; Morpheus; MLDonkey.
uso de encriptamiento
reas del
acceden
disco
protocolo utilizado
Situacin 2:
Disee y describa un protocolo del nivel de aplicacin para ser usado entre un cajero automtico
y el computador central del banco.
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
cajero automtico o el computador central del banco ante la transmisin o recepcin de mensajes.
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.
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.
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
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.
Componentes de Software:
Se distinguen tres componentes bsicos de software:
objetos visuales y llevar a cabo el procesamiento de los datos producidos por el mismo y
los devueltos por el servidor.
Base de datos: Est compuesta de los archivos que contienen los datos de la
aplicacin.
1.1.
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 cajero automtico acepta la tarjeta, lee el nmero de tarjeta y el cdigo del banco
El cajero automtico pide al cliente que elija el tipo de transaccin: retiro de fondos,
transferencia, informacin, cambio de clave.
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.
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.
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
RETIRO DE EFECTIVO
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
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.
siguientes formas:
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).
datos
WHERE
<?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);
?>
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
$query = $sql->prepare
usuarios
$sql->quote($nombre_usuario)
);
$statement = $pdo->prepare("SELECT *
FROM usuarios WHERE nombre =
:nombre");
$statement->bindParam(':nombre',
$nombre_usuario);
$statement->execute();
// Con funciones
$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.
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
CONCLUSIONES
Bibliografa