SlideShare una empresa de Scribd logo
1 de 99
Descargar para leer sin conexión
1erCursoInternacionaldeCriminalísticaCibernética
Curso: Criminalística Cibernética
Modulo: Informática Forense.
DocenteResponsable:
Alonso Eduardo Caballero Quezada
PáginaWeb:http://alonsocaballero.informatizate.net
Correoelectrónico:reydes@gmail.com
AreadeSistemasdelaCámara de Comercio de la Libertad.
BrainBenchCertifiedLinuxAdministration(Advanced)
IntegrantedelGrupoPeruanodeSeguridad,Security Wari Projects
IntegrantedelGrupodeSeguridaddehablahispana RareGaZz Security Team..
IntegranteyWebMasterdelPortaldeNoticiasdeTrujillo,NoticiasTrujillo.
IntegrantedelGrupoinformatizate.
NúmerodeHoras:
16HorasAcadémicas.
Trujillo – Perú / 2005
1. Definiciones básicas
1.1 Sistemas Operativos:
Un sistema operativo (SO) es un conjunto de programas o software destinado a
permitir la comunicación del usuario con un ordenador y gestionar sus recursos de
manera cómoda y eficiente. Comienza a trabajar cuando se enciende el
ordenador, y gestiona el hardware de la máquina desde los niveles más básicos.
Hoy en día un sistema operativo se puede encontrar normalmente en
ordenadores o productos electrónicos como teléfonos móviles.
a. DOS
DOS es una familia de sistemas operativos para PC. El nombre son las siglas de
Disk Operating System ( sistema operativo de disco). Fue creado originalmente
para computadoras de la familia IBM PC, que utilizaban los procesadores Intel
8086/8088 de 16 bits, siendo el primer sistema operativo popular para esta
plataforma. Tenía una interfaz de línea de comandos vía su intérprete de
comandos, command.com.
Existen varias versiones de DOS. El más conocido de ellos es el MS-DOS, de
Microsoft (de ahí las iniciales MS). Otros sistemas son el PC-DOS, DR-DOS y,
más recientemente, el FreeDOS.
Con la aparición de los sistemas gráficos del tipo Windows, el DOS ha ido
quedando relegado a un segundo plano.
-MSDOS es un sistema operativo de Microsoft perteneciente a la familia DOS.
Fue un sistema operativo para el IBM PC que alcanzó gran difusión.
MS-DOS significa MicroSoft Disk Operating System (Sistema operativo de disco
MicroSoft), antiguamente Microsoft se escribía separado por un guión
("MicroSoft"). Al principio el MS-DOS se almacenaba en un único diskette.
- Características: El DOS carece por completo de interfaz gráfica, y no utiliza el
ratón. Era incapaz de detectar el hardware (no existía el Plug-and-play), por lo que
todo debía ser configurado manualmente.
No era ni multiusuario ni multitarea. No podía trabajar con discos duros muy
grandes. Originalmente, por limitaciones del software, no podía manejar más de
64KB de memoria RAM. Poco a poco, con las mejoras en la arquitectura de los
PCs, llegó primero a manejar 640KB (la llamada "memoria convencional"), y luego
hasta 1 MegaByte (agregando a la memoria convencional la "memoria superior" o
UMB). Más tarde, aparecieron mecanismos como la memoria extendida (XMS) y la
memoria expandida (EMS), que permitían ya manejar varios megabytes.
Desde el punto de vista de los programadores, este sistema operativo permitía un
control total del ordenador, libre de las capas de abstracción y medidas de
seguridad a las que obligan los sistemas multiusuario y multitarea. Así, hasta la
aparición del DirectX, y con el fin de aprovechar al máximo el hardware, la mayoría
de los videojuegos para PC funcionaban bajo DOS.
La necesidad de mantener la compatibilidad con programas antiguos, hacía cada
vez más difícil programar para DOS, debido a que la memoria estaba segmentada,
es decir, la memoria apuntada por un puntero tenía como máximo el tamaño de un
segmento de 64KB. Para superar estas limitaciones del modo real de los
procesadores x86, se recurría al modo protegido de los procesadores posteriores
(80386, 80486...), utilizando programas extensores que hacían funcionar
programas de 32 bits sobre DOS.
b. GNU/Linux:
GNU/Linux es la denominación defendida por Richard Stallman y otros para el
sistema operativo que utiliza el kernel Linux en conjunto con las aplicaciones de
sistema creadas por el proyecto GNU. Comúnmente este sistema operativo es
denominado simplemente Linux.
Desde 1984, Richard Stallman y voluntarios están intentando crear un sistema
operativo libre con un funcionamiento similar al UNIX, recreando todos los
componentes necesarios para tener un sistema operativo funcional que se
convertiría en el sistema operativo GNU. En el comienzo de los años 1990,
después de seis años, GNU tenía muchas herramientas importantes listas, como
compiladores, depuradores, intérpretes de comando etc, excepto por el
componente central: el núcleo. Con el surgimiento del kernel Linux, esta laguna
fue llenada y surgió el sistema operativo con el kernel Linux en conjunto con las
herramientas GNU. De esta manera, Stallman juzga que este sistema operativo es
una "versión modificada" del sistema GNU y por lo tanto debe tener la
denominación GNU/Linux. Esta denominación resolvería la confusión entre el
núcleo y el sistema operativo completo a que puede llevar, y de hecho ha llevado,
la denominación Linux en solitario. Stallman también espera que con el aporte del
nombre GNU, se dé al proyecto GNU que él encabeza el reconocimiento que
merece por haber creado las aplicaciones de sistema imprescindibles para ser un
sistema operativo compatible con UNIX. Es conocida la cita de Richard Stallman:
«It's GNU/Linux, dammit!» («¡Es GNU/Linux, maldita sea!»).
Richard Stallman ha reconocido que desde que existe Linux el desarrollo de un
núcleo específico del proyecto GNU (el Hurd) ya no es prioritario. Esto explica que
después de dos décadas desde el anuncio del proyecto GNU, un sistema
únicamente GNU no esté acabado.
Algunas distribuciones apoyan esta denominación, e incluyen GNU/Linux en sus
nombres, tal es el caso de Debian GNU/Linux o GNU/LinEx. En el proyecto Debian
también existe Debian GNU/Hurd y Debian GNU/BSD que combinan las
aplicaciones de sistema de GNU con esos núcleos.
En ocasiones, el proyecto KDE ha utilizado una tercera denominación:
GNU/Linux/X para enfatizar los tres proyectos sobre los que se apoya su entorno
de escritorio.
Algunos sectores de la comunidad de usuarios del sistema operativo han
rechazado la denominación GNU/Linux por varias razones, entre ellas que ya se
había empezado a denominar Linux al sistema operativo antes de que Richard
Stallman promocionase esta denominación. Otras personas se oponen a la
postura ideológica de Stallman radicalmente en contra del software no libre y por
ello son contrarios al uso de este nombre para evitar la promoción de las ideas del
fundador del proyecto GNU. Otros sectores de la comunidad han reconocido la
conveniencia de este nombre.
Hay que señalar que, al igual que es una simplificación denominar al sistema que
usa el usuario final Linux, obviando las aplicaciones GNU que completan el
sistema operativo, el conjunto linux+GNU representa solamente una parte (aunque
importante) del software encontrado en una distribución Linux. Existe una gran
cantidad de software original del sistema operativo BSD o producido
independientemente de los proyectos GNU y Linux por otras personas u
organizaciones, como por ejemplo Apache, el X Window System, Samba, KDE,
OpenOffice.org y miles de otros.
- Distribuciones: Una distribución Linux, o distribución GNU/Linux (abreviada con
frecuencia distro) es un conjunto de aplicaciones reunidas por un grupo, empresa
o persona para permitir instalar fácilmente un sistema Linux (también llamado
GNU/Linux). Son 'sabores' de Linux que, en general, se destacan por las
herramientas para configuración y sistemas de paquetes de software a instalar.
Existen numerosas distribuciones Linux. Cada una de ellas puede incluir cualquier
número de software adicional (libre o no), como algunos que facilitan la instalación
del sistema y una enorme variedad de aplicaciones, entre ellos, entornos gráficos,
suites ofimáticas, servidores web, servidores de correo, servidores FTP, etcétera.
La base de cada distribución incluye el núcleo Linux, con las bibliotecas y
herramientas del proyecto GNU y de muchos otros proyectos/grupos de software,
como BSD.
Usualmente se utiliza la plataforma XFree86 o la Xorg para sostener interfaces
gráficas (esta última es un fork de XFree86, surgido a raíz del cambio de licencia
que este proyecto sufrió en la versión 4.4 y que lo hacía incompatible con la
GPL).servidores web, servidores de correo, servidores FTP, etcétera.
La base de cada distribución incluye el núcleo Linux, con las bibliotecas y
herramientas del proyecto GNU y de muchos otros proyectos/grupos de software,
como BSD.
Usualmente se utiliza la plataforma XFree86 o la Xorg para sostener interfaces
gráficas (esta última es un fork de XFree86, surgido a raíz del cambio de licencia
que este proyecto sufrió en la versión 4.4 y que lo hacía incompatible con la GPL).
Interfaz de Comandos GNU/Linux Entorno visual en GNU/Linux
c. Windows:
Microsoft Windows es el nombre de una familia de sistemas operativos no libres
desarrollados por la empresa de software Microsoft Corporation. Todos ellos
tienen en común el estar basados en una interfaz gráfica de usuario basada en el
paradigma de ventanas (de ahí su nombre en inglés). Las versiones de Windows
que existen hasta el momento se basan en dos líneas separadas de desarrollo
que finalmente convergen en una sola con la llegada de Windows XP.
Versiones basadas en MS DOS
La primera de esas líneas conformaba la apariencia de un Sistema Operativo,
aunque realmente requerían otro sobre el que ejecutarse (MS DOS). Todos los
Sistemas Operativos, desde Windows 1.0 a Windows ME necesitaban tener MS
DOS instalado, aunque desde la aparición de Windows 95, podía instalarse
Windows sobre un disco duro vacío, ya que durante su propia instalación, se
instalaba además una versión reducida de MS DOS. La arquitectura de Windows
comenzó siendo de 16 bits, hasta Windows 95, donde pasó a funcionar bajo una
arquitectura de 32 bits, aunque manteniendo bastantes módulos de 16 bits por
razones de compatibilidad.
Windows 1.x 3.x, 95, 98, ME
Versiones basadas en NT (Network Technology)
La segunda linea de desarrollo (NT) se basaba en emplear desde el origen un
sistema operativo en modo gráfico y con una arquitectura de 32 bits. Éste Sistema
Operativo no requiere tener instalado ningún otro previamente. Incluye en todas
sus versiones, un emulador de consola en modo texto. A modo de anécdota,
Windows NT 4.0, en origen no era compatible con tarjetas gráficas AGP. Requería
la instalación de un Service Pack o conjunto de parches (de la versión 3 en
adelante), que permitian su detección y la instalación de sus controladores.
Windows NT 3.x, 4. 2000, XP, Server 2003
Pantalla de un Windows 3.11 Pantalla de un Windows XP
d. Macintosh:
Apple Macintosh (abreviado Mac) es el nombre de una serie de ordenadores
fabricados y comercializados por Apple Computer desde 1984. Apple autorizó a
otras compañías, como Motorola, Umax o PowerComputing para la fabricación de
clones Macintosh en los 90, aunque en la actualidad sólo Apple comercializa
ordenadores Macintosh.
Los primeros Macintosh estaban basados en los microprocesadores de la familia
68000 de Motorola, de tecnología CISC. En Marzo de 1994, Apple introdujo en la
gama Macintosh los chips PowerPC del Consorcio Apple/IBM/Motorola, que
suponían el cambio a la tecnología RISC. Desde la introducción de los Power Mac
G5 en Junio de 2003, utilizan el PowerPC de IBM.
Los Apple Macintosh son comercializados con el sistema operativo Mac OS X, con
soporte integrado para el sistema operativo anterior: Mac OS 9, pero también es
posible instalar en ellos Linux, NetBSD ó Darwin, entre otros.
Pantalla de un Mac
e. Novell Netware:
Novell NetWare está en el mercado desde 1983, el mismo año en que IBM
introdujo la computadora personal IBM XT y el DOS 2.0 para IBM PC. Cada uno
de estos productos implantó estándares. El IBM XT fue la primera computadora de
IBM que incorporaba un disco fijo, mientras que el DOS 2.0 para el IBM PC fue el
primer sistema operativo de disco que controlaba discos fijos sin complementos
especiales. Ambos generaron un sistema de estándares para el crecimiento de los
PC hacia entornos y aplicaciones más sofisticadas basadas en ellos. NetWare iba
a convertirse en el sistema operativo en red a elegir para estos equipos.
Novell desarrolló originalmente NetWare para ejecutarse en un servidor basado en
el microprocesador Motorola MC68000 usando configuración de red Novell S-Net.
La presentación del XT de IBM y la versión 2 del DOS hizo ver a muchas
empresas, entre ellas Novell, la oportunidad de desarrollo del producto. Como el
código de NetWare estaba escrito en C, que es un lenguaje de los denominados
"portables", Novell pudo trasladar parte del código del NetWare existente al nuevo
equipo.
Como es sabido, el entorno DOS/Intel 8088 no es el mejor para ejecutar
aplicaciones multiusuario, especialmente un sistema operativo multiusuario como
NetWare. El BIOS (sistema básico de entradas/salidas), desarrollado para el PC
original (y necesario con el DOS), está diseñado para monousuario. Novell tomó la
importante decisión de dejar de lado completamente este sistema de E/S y crear
un sistema operativo que funcionase de forma más efectiva en modo multiusuario.
Debido a esto, NetWare se escribió específicamente para el hardware de los
sistemas basados en el 8088, sin tener en cuenta el DOS y su sistema de E/S.
Esta estrategia fue la que marcó la buena estrella de Novell desde entonces. Otras
empresas que han desarrollado sus sistemas operativos de red para funcionar
bajo DOS han sufrido sus limitaciones.
Las dificultades de Novell estribaron en la necesidad de escribir y actualizar
constantemente los controladores para ofrecer compatibilidad con el DOS a los
usarios. Estos problemas fueron solventados rápidamente usando un shell para
DOS en las estaciones de trabajo. El shell es un interfaz software que permite a
los usuarios de las estaciones trabajar con el DOS de forma normal, ejecutando
también órdenes NetWare. El shell intercepta las órdenes de la red y las dirige al
servidor. Casi todas las aplicaciones del DOS se pueden ejecutar en el sistema
operativo NetWare, gracias a su shell para DOS. Además, NetWare incluye
programas para seguridad y tolerancia a fallos que son imposibles de preparar en
la de estructura de archivos del DOS, marcando un nivel claramente superior.
Mientras tanto, Novell siguió mejorando NetWare al ritmo de los avances tecnoló-
gicos. NetWare 286 funciona en modo protegido del procesador 80286, el más efi-
ciente. En 1989, Novell presentó NetWare 386, el primer sistema operativo que
aprovechaba al máximo las ventajas del microprocesador Intel 80386. El 80386 es
especialmente adaptable a entornos multiusuario, como las redes.
Pantalla de Novell Netware
1.2 Sistemas de Archivos:
Un sistema de archivos consta de tipos de datos abstractos, que son necesarios
para el almacenamiento, organización jerárquica, manipulación, navegación,
acceso y consulta de datos.
La mayoría de los sistemas operativos poseen su propio sistema de archivos. Los
sistemas de archivos son representados ya sea textual o gráficamente utilizando
gestores de archivos o shells. En modo gráfico a menudo son utilizadas las
metáforas de carpetas (directorios) conteniendo documentos, archivos y otras
carpetas. Un sistema de archivos es parte integral de un sistema operativo
moderno.
Los sistemas de archivos más comunes utilizan dispositivos de almacenamiento
de datos que permiten el acceso a los datos como una cadena de bloques de un
mismo tamaño, a veces llamados sectores, usualmente de 512 bytes de longitud.
El software del sistema de archivos es responsable de la organización de estos
sectores en archivos y directorios y mantiene un registro de qué sectores
pertenecen a qué archivos y cuáles no han sido utilizados. En la realidad, un
sistema de archivos no requiere necesariamente de un dispositivo de
almacenamiento de datos, sino que puede ser utilizado también para acceder a
datos generados dinámicamente, como los recibidos a través de una conexión de
red.
Generalmente un sistema de archivos tiene directorios que asocian nombres de
archivos con archivos, usualmente conectando el nombre de archivo a un índice
en una tabla de asignación archivos de algún tipo, como FAT en sistemas de
archivos MS-DOS o los inodos de los sistemas Unix. La estructura de directorios
puede ser plana o jerárquica (ramificada o "en árbol"). En algunos sistemas de
archivos los nombres de archivos son estructurados, con sintaxis especiales para
extensiones de archivos y números de versión. En otros, los nombres de archivos
son simplemente cadenas de texto y los metadatos de cada archivo son alojados
separadamente.
En sistemas de archivos jerárquicos, en lo usual, se declara la ubicación precisa
de un archivo con una cadena de texto llamada "ruta". La nomenclatura para rutas
varía ligeramente de sistema en sistema, pero mantienen por lo general una
misma estructura. Una ruta viene dada por una sucesión de nombres de
directorios y subdirectorios, ordenados jerárquicamente de izquierda a derecha y
separados por algún caracter especial que suele ser una barra ('/') o barra
invertida ('') y puede terminar en el nombre de un archivo presente en la última
rama de directorios especificada.
Los sistemas de archivos tradicionales proveen métodos para crear, mover y
eliminar tanto archivos como directorios, pero carecen de métodos para crear, por
ejemplo, enlaces adicionales a un directorio o archivo (enlaces "duros" en Unix) o
renombrar enlaces padres (".." en Unix).
El acceso seguro a sistemas de archivos básicos puede estar basado en los
esquemas de lista de control de acceso o capacidades. Las listas de control de
acceso hace décadas que demostraron ser inseguras, por lo que los sistemas
operativos experimentales utilizan el acceso por capacidades. Los sistemas
operativos comerciales aún funcionan con listas de control de acceso.
Sistemas de Archivos populares:
a. FAT:
(File Allocation Table o "tabla de ubicación de archivos") es el principal sistema de
archivos desarrollado para MS-DOS y Windows. El sistema de archivos FAT es
relativamente sencillo, y debido a eso es muy popular como formato para
disquetes. Adicionalmente, el formato FAT es soportado por casi todos los
sistemas operativos para IBM PCs, y debido a esto a menudo se lo utiliza para
compartir información entre diversos sistemas operativos.
FAT es un sistema de archivos relativamente anticuado, y debido a esto sufre de
varios problemas. Para comenzar, su distribución de archivos simple permite la
fragmentación, lo que produce eventuales pérdidas en el desempeño de operacio-
nes sobre archivos. Luego, FAT no fue diseñado para redundancia en caso de fa-
llos del sistema. Las primeras versiones de FAT permitían nombres de archivo de
hasta 8+3 caracteres (8 para el nombre y 3 para la extensión) , aunque esto fue
solucionado por Microsoft al inventar VFAT, el cual permite nombres de hasta 255
caracteres. Finalmente, los sistemas de archivos FAT no permiten directivas de
seguridad, garantizando el acceso a todos los archivos de una partición por cual-
quier usuario del sistema operativo.
FAT12
A la versión inicial de FAT se le nombra ahora como FAT12. Como sistema de
archivos para disquetes, tiene varias limitaciones: no tiene soportes para
directorios, las direcciones de clúster tenían una longitud de "sólo" 12 bits (que
hacía que el código que manipulaba el FAT fuera un poco delicado) y el tamaño
del disco era almacenado como una cuenta de 16 bits de sectores , lo que limitaba
el tamaño a 32MB.
FAT16
FAT16 es una versión del sistema de archivos FAT que soporta hasta 65.535
unidades de asignación (direccionables con 16 bits, de ahí el nombre) de hasta 32
KB cada una. De todas las unidades de asignación, 18 están reservadas para el
sistema. Por lo tanto, el tamaño máximo de una partición que use FAT16 es de
unos 2 GB (65.535-18 x 32 KB).
Estructura de un Volumen FAT16
FAT32
FAT32 es una versión del sistema de archivos FAT que maneja en teoría hasta
4.294.967.296 unidades de asignación (direccionables con 32 bits, de ahí el
nombre) de hasta 32 KB cada una. De estos 32 bits de direccionamiento solo se
usan 28 (268.435.456 unidades de asignación) y 18 de éstas están reservadas
para el sistema. Por lo tanto, el tamaño máximo teórico de una partición que use
FAT32 es de unos 8 TB (268.435.456-18 x 32 KB). Pero por problemas en el
diseño, algunas de las utilidades de Microsoft para el trabajo con FAT32 están
limitadas a 4.177.920 unidades de asignación, lo que hace que en la práctica solo
se puedan crear particiones de unos 124 GB.
Estructura de un Volumen FAT32
b. NTFS:
NTFS (siglas en inglés de New Technology File System) es un sistema de
archivos diseñado específicamente para Windows NT, con el objetivo de crear un
sistema de archivos eficiente, robusto y con seguridad incorporada desde su base.
También soporta compresión nativa de ficheros y encriptación (esto último sólo a
partir de Windows 2000).
NTFS permite definir el tamaño del cluster, a partir de 512 bytes (tamaño mínimo
de un sector) de forma independiente al tamaño de la partición.
Es un sistema adecuado para las particiones de gran tamaño requeridas en
estaciones de trabajo de alto rendimiento y servidores. Puede manejar discos de
hasta 2 Terabytes.
Los inconvenientes que plantea son:
* Necesita para si mismo una buena cantidad de espacio en disco duro por lo que
no es recomendable su uso en discos menores de 400 MB.
* No es compatible con MS-DOS, Windows 95 ni Windows 98.
* La conversión a NTFS es unidireccional. Si elige actualizar la unidad, no podrá
volver a convertirla a FAT.
GNU/Linux sólo tiene soporte de lectura para este sistema de ficheros, y de
escritura experimental, aunque no se suele activar por defecto. Existe una
alternativa Captive-NTFS, que usa las librerías propietarias de Windows NT para
tener acceso completo a NTFS.
Compatibilidad de Sistemas de Archivos con NTFS y FAT
c. EXT2:
EXT2 (second extended filesystem o "segundo sistema de archivos extendido")
fue el sistema de archivos estándar en el sistema operativo Linux por varios años
y continúa siendo ampliamente utilizado. Fue diseñado originalmente por Rémy
Card. La principal desventaja de EXT2 es que no posee una bitácora, por lo que
muchos de sus usuarios están emigrando a ReiserFS y su sucesor EXT3.
Conceptos Básicos:
Cada Sistema de archivos en Linux implementa un conjunto básico de conceptos
comunes derivados del sistema operativo UNIX, los archivos son representados
por “inodos”, directorios son simplemente archivos conteniendo una lista de
entradas y los dispositivos puede acceder mediante peticiones de E/S en archivos
especiales.
Inodos: Cada archivo es representado por una estructura, llamada un inodo, cada
inodo contiene la descripción de un archivo: tipo de archivo, permisos de acceso,
propietarios, fecha, puntero a bloque de datos. Las direcciones de bloques de
datos localizados en un archivo son almacenados en su inodo. Cuando un usuario
hace una operación de E/S a un archivo, el código del kernel convierte el
desplazamiento actual a un numero de bloque, usando este numero como un
índice en la Tabla de direcciones de bloques y lee o escribe en el bloque físico. La
siguiente figura representa la estructura de un inodo.
Estructura de un inodo
-Directorios: Directorios son estructurados en un árbol jerárquico. Cada directorio
puede contener archivos y subdirectorios. Son implementados como un tipo
especial de archivos. Actualmente, un directorio es un archivo conteniendo una
lista de entradas. Cada entrada contiene un numero de inodo y un nombre de
archivo. Cuando un proceso usa una ruta, el código del kernel busca en su
directorio para encontrar el numero de inodo correspondiente. Después el nombre
tiene que ser convertido a un numero de inodo, el inodo es cargado en memoria y
es usado para futuras peticiones.
Representación de un Directorio
-Enlaces: El sistema de archivos UNIX implementa el concepto de enlace, Muchos
nombres pueden ser asociados con un inodo. El inodo contiene un campo
conteniendo el numero asociado con el archivo. Añadir un enlace simplemente
consiste en crear una entrada en el directorio, donde numero de inodo apunta al
inodo, e incrementando la cuenta de enlaces en el inodo. Cuando un enlace es
borrado; cuando se usa el comando “rm” para remover un archivo; el kernel
decrementa la cuenta de enlaces y desaloja el inodo, si la cuenta se convierte en
cero.
Este tipo de enlaces es llamado un enlace duro y puede ser usado dentro un solo
sistema de archivos; es imposible crear un enlace duro entre sistemas de archivos
diferentes. Enlaces duros solo pueden apuntar a archivos: un enlace duro a
directorio no puede ser creado para prevenir la aparición de un ciclo en el árbol de
directorios.
Otro tipo de enlaces existe en la mayoría de archivos de sistemas UNIX. Enlaces
simbólicos son simplemente archivos que contienen un nombre de archivo.
Cuando el kernel encuentra un enlace simbólico durante una ruta a una
conversión de inodo, este reemplaza el nombre del enlace por su contenido; por
ejemplo; el nombre de un archivo, es decir, el nombre del archivo objetivo, y
reinicia la interpretación de la ruta. Dado que un enlace simbólico no apunta a un
inodo, es posible crear enlaces simbólicos entre sistemas de archivos diferentes.
Enlaces simbólicos pueden apuntar a cualquier tipo de archivo, hasta archivos que
no existen. Enlaces simbólicos son muy útiles porque no tienen limitaciones
asociadas a los enlaces duros. Sin embargo usan el mismo espacio de disco,
localizado por sus inodos y sus bloques de datos, y causa un overhead en la ruta
hasta la conversión de inodo porque el kernel reinicia la interpretación del nombre
cuando este encuentra un enlace simbólico.
-Archivos Especiales de Dispositivos: En los sistemas similares a UNIX, los
dispositivos se pueden acceder mediante archivos especiales. Un Archivo de
Dispositivo no utiliza espacio en el sistema de archivos. Y tiene solo un punto de
acceso al controlador del dispositivo. Dos tipos de archivos especiales existen:
archivos especiales de carácter y bloque. El primero permite operaciones de E/S
en modo carácter mientras que el ultimo requiere que los datos sean escrito en
bloques mediante funciones de un buffer de cache. Cuando una petición de E/S es
realizada sobre un archivo especial, este es redireccionado a un (pseudo)
controlador de dispositivo. Un archivo especial es referido por un numero mayor, el
cual identifica el tipo de dispositivo, y un numero menor, el cual identifica la unida.
d. EXT3:
EXT3 (third extended filesystem o "tercer sistema de archivos extendido") es un
sistema de archivos con registro por diario (en inglés journaling), es un sistema de
archivo de registro por diario, por el solo hecho de tener un "espacio apartado para
el buffer de journaling". este sistema el cual se encuentra creciendo en
popularidad entre usuarios del sistema operativo Linux. A pesar de su menor
desempeño y escalabilidad frente a alternativas como ReiserFS o XFS, posee la
ventaja de permitir migrar del sistema de archivos EXT2 sin necesidad de
reformatear el disco.
La única diferencia entre EXT2 y EXT3 es el registro por diario. Un sistema de
archivos EXT3 puede ser montado y usado como un sistema de archivos EXT2.
Provee escalabilidad en el tamaño del sistema de archivos del disco Nos permite
hacer mas y mas grandes sistemas de archivos sin tener la penalidad del sistema
de archivos del disco La meta principal es proveer una funcionalidad plena en una
sola pieza Otra de las metas es proveer total, absoluta y completa combatibilidad
backward y forward entre EXT2 y EXT3.
Otra diferencia también importante, es que EXT3 utiliza un arbol binario
balanceado (AVL)
e. ISO 9660 (sistema de archivos de solo lectura para CD-ROM)
El estándar ISO 9660 es una norma publicada inicialmente en 1986 por la ISO,
que especifica el formato para el almacenaje de archivos en los soportes de tipo
disco compacto. El estándar ISO 9660 define un sistema de archivos para CD-
ROM. Su propósito es que tales medios sean leíbles por diferentes sistemas
operativos, de diferentes proveedores y en diferentes plataformas, por ejemplo,
MS-DOS, Microsoft Windows, Mac OS y UNIX.
La norma ISO 9660 es descendiente directa de un esfuerzo de estandarización
más temprano llamado 'HSG (acrónimo de High Sierra Group), el cual fue
propuesto por un conjunto de actores de la industria que se reunieron en 1985 en
el hotel High Sierra, de Lake Tahoe, Nevada. Aunque la ISO aceptó una gran
mayoría de las propuestas del HSG, existen algunas diferencias menores.
1.5 Redes de Computadoras:
Historia
El concepto de trabajo en redes es probablemente tan antiguo como lo es el de las
telecomunicaciones. Imagínese por un momento, gente viviendo en la Edad de
Piedra, en donde los individuos usen tambores para transmitirse mensajes.
Supóngase que un hombre de las cavernas A quiere invitar a otro hombre B a una
partida de choques de piedra. Lamentablemente viven tan distantes, que a B le
sería imposible escuchar el tambor de A cuando éste lo llame. ¿Qué puede hacer
A para remediar esto? Él podría 1) ir caminando al sitio de B, 2) conseguir un
tambor más grande, o 3) pedirle a C, quien vive a mitad de camino que reenvíe el
mensaje. La tercera elección es denominada Trabajo en Redes.
Por supuesto, la humanidad ha avanzado un poco desde la la Edad de Piedra; ya
no se usan aquellos primitivos artefactos ni tenemos los mismos inconvenientes
que nuestros antepasados. En la actualidad, contamos con computadoras que
hablan con otras sobre una colección de cables, fibra óptica, microondas, etc. tan
grande como para llenar el estadio en el partido de fútbol de los sábados. A
continuación, se hará referencia a los conceptos y métodos que son utilizados
para llevar a cabo todo esto. Sin embargo, dejaremos de lado tanto el tema de los
cables, como la parte del fútbol.
En esta guía se describirán tres tipos de redes. Sin embargo, se discutirá más
profundamente TCP/IP puesto que es el protocolo más usado, ya sea en Redes
Locales (Local Area Networks, LANs), o en Redes de Área Amplia (Wide Area
Networks, WANs), como por ejemplo, Internet. También se echará un vistazo a
UUCP e IPX. UUCP fue antiguamente el medio general para transportar las
noticias y los mensajes de correo, mediante una conexión telefónica. Es menos
usado en estos días, pero sigue siendo útil en muchas situaciones. El protocolo
IPX es usado más frecuentemente en los entornos Novell NetWare, y se detallará
cómo usarlo para conectar una máquina GNU/Linux a una red Novell. Cada uno
de estos protocolos de red son usados para transportar datos entre computadoras.
Se discutirá aquí cómo son usados y se hará una introducción a sus principios
fundamentales.
Se define una red, como una colección de nodos (del inglés hosts), capaces de
comunicarse entre sí, a veces confiando en los servicios de un número
determinado de máquinas que se encargan de transmitir datos entre quienes que
lo demanden. Los nodos son casi siempre computadoras, pero no
necesariamente; se puede pensar, sin equivocación, en terminales X o impresoras
inteligentes como nodos. Por otro lado, a las pequeñas aglomeraciones de éstos,
se las denomina sitios, (sites).
La comunicación, sería imposible sin algún tipo de lenguaje o código. En la jerga
de las redes de computadoras, estos lenguajes se denominan conjuntamente
como protocolos. No obstante, no se debería pensar aquí en lenguajes ya escritos
y definidos, sino más bien en el código de comportamiento altamente formalizado,
que se observa en una población cuando se reúnen jefes de estado, por citar un
ejemplo. Así, los protocolos usados en las redes de computadoras no son más
que reglas muy estrictas de intercambio de mensajes entre dos o más servidores.
Redes TCP/IP
Las aplicaciones modernas para trabajo en redes requieren de un sofisticado mé-
todo de transporte desde una máquina a otra. Si usted administra una máquina
GNU/Linux que posea muchos usuarios, los cuales desean estar conectados si-
multáneamente a un servidor remoto o a una red, necesitará un modo de acceso
para que puedan compartir la conexión a la red, sin que las acciones de cada uno
interfieran con las de los demás. La estrategia que un gran número de protocolos
de red utilizan hoy día se llama conmutación de paquetes, (packet-switching). Un
paquete es nada más que un pequeño trozo de datos que se transfiere de una má-
quina a otra a través de una red. Esta transferencia ocurre a medida que el data-
grama es transmitido a través de cada enlace en la red. Una red de conmutación
de paquetes comparte un único enlace con muchos usuarios, enviando los paque-
tes alternadamente, desde un usuario a otro, a través de ese enlace.
La solución que muchos sistemas Unix, (y posteriormente muchas otras
plataformas), han adoptado, se conoce como TCP/IP. Cuando se habla de redes
TCP/IP, siempre estará presente el término datagrama. Técnicamente, este
término tiene un significado especial, pero es a menudo usado de forma
intercambiable con paquete. En la siguiente sección, se echará un vistazo a los
conceptos fundamentales de los protocolos TCP/IP.
Ethernets
El tipo de hardware más utilizado en LANs es lo que comúnmente conocemos
como Ethernet. Descrito de una forma simple, consta de un solo cable con los
nodos unidos a él a través de conectores, clavijas o transceptores. Los
adaptadores Ethernet simples, son relativamente baratos de instalar, lo que unido
a un flujo de transferencia neto de 10, 100 o hasta 1,000 Mega bits por segundo,
avala gran parte de su popularidad.
Las redes Ethernet se pueden clasificar en tres tipos atendiendo al grosor del
cable: gruesos, finos, y de par trenzado. Los dos primeros pueden usar cable
coaxial, difiriendo en el grosor y el modo de conectar este cable a los nodos. El
cable Ethernet fino emplea conectores “BNC” con forma de T, que se pinchan en
el cable y se enganchan a los conectores de la parte trasera del ordenador. El
cable Ethernet grueso requiere que se realice un pequeño agujero en el cable, y
se conecte un transceptor utilizando un “conector vampiro” Luego, se podrán
conectar uno o más nodos al transceptor. Los cables Ethernet fino y grueso
pueden alcanzar una distancia de 200 y 500 metros, respectivamente, y es por ello
que se les llama también 10base-2 y 10base-5. La palabra “base” hace referencia
a “modulación de banda base” y significa, simplemente, que los datos que
alimentan al cable, fluyen directamente sin pasar por un módem. El número que se
encuentra delante de la palabra alude a la velocidad de transmisión, en Mega bits
por segundo, mientras que el número al final indica la máxima longitud que se le
puede dar al cable, en cientos de metros. El par trenzado usa un cable hecho de
dos hilos de cobre. Por lo común necesitan, además, hardware adicional que se
conoce como Núcleo Activo. A este Ethernet se le conoce también como 10base-
T, en donde “T” significa de par trenzado. Los pares trenzados con velocidad de
100 Mega bits por segundo son conocidos como 100base-T.
Para agregar un nodo a una instalación Ethernet fina se deberá suspender el
servicio de la red por al menos unos minutos, ya que se deberá cortar el cable
para insertar un conector. A pesar de que, por otro lado, agregar un nodo a un
sistema Ethernet grueso es un poco complicado no hará, por lo general, que el
servicio de la red se interrumpa. Un Ethernet de par trenzado es aún más simple.
Usa un dispositivo denominado “hub,” que trabaja como un punto de
interconexión. Se pueden insertar y quitar nodos de un núcleo sin interrumpir en
absoluto, a ninguno de los demás usuarios.
La mayoría de gente prefiere el Ethernet fino porque es barato: las tarjetas de PC
pueden encontrarse por unos 30 dollar; americanos (algunas compañías están
literalmente, regalándolas), y el cable por pocos centavos el metro. Sin embargo,
para instalaciones de gran escala, son más apropiados el Ethernet grueso o el de
par trenzado. Por ejemplo, en un principio, el Departamento de Matemáticas de la
GMU decidió utilizar el cableado Ethernet grueso, ya que el gran tráfico que posee
toda la red a lo largo de su gran recorrido, no se interrumpe cada vez que se
añade un nodo. Actualmente, son muy comunes los cables Ethernet de par
trenzado en una gran variedad de instalaciones. Los “hubs” son ahora más
accesibles, y pequeñas unidades están disponibles a precios que son atractivos,
incluso para pequeñas redes domésticas. El cable de par trenzado puede ser
significativamente más barato para grandes instalaciones. Además, el mismo
cable de par trenzado es mucho más flexible que los coaxiales usados por otros
sistemas Ethernet. Los administradores de la red en la división de matemáticas de
GMU, están planeando reemplazar su sistema por uno de par trenzado el año que
viene, ya que, además de ahorrar tiempo a la hora de agregar nuevos nodos, y
cambiar de lugar los viejos, también podrán ponerse al día con la tecnología
actual.
Uno de los inconvenientes de la tecnología Ethernet es su limitada longitud de
cable, que imposibilita cualquier uso fuera de las LANs. Sin embargo, pueden
enlazarse varios segmentos de red Ethernet entre sí utilizando repetidores,
puentes o encaminadores[2]. Los repetidores simplemente copian las señales
entre dos o más segmentos, de forma que todos los segmentos juntos actúan
como si fuese una única Ethernet. Debido a requisitos de tiempo, no puede haber
mas de cuatro repetidores entre cualquier par de nodos de la red. Los puentes y
encaminadores son más sofisticados, analizan los datos de entrada y los reenvían
sólo si el nodo receptor no está en la Ethernet local.
Ethernet funciona como un sistema de bus, donde un nodo puede mandar
paquetes (o marcos) de hasta 1500 bytes a otro nodo de la misma Ethernet. A
cada nodo se le asigna una dirección de seis bytes grabada en el firmware
(memoria fija) de su tarjeta Ethernet. Estas direcciones se especifican
generalmente como una secuencia de números hexadecimales de dos dígitos
separados por dos puntos, como por ejemplo aa:bb:cc:dd:ee:ff.
Una trama enviada por una estación es vista por todas las demás estaciones
conectadas, pero sólo el nodo destinatario la toma y la procesa. Si dos estaciones
intentan emitir al mismo tiempo, se produce lo que se llama una colisión. Una
colisión en un complejo Ethernet, es detectada electrónicamente por las tarjetas
de interfaz. Se resuelve por parte de las dos estaciones abortando el envío, y
reintentándolo al cabo de un intervalo de tiempo tomado al azar. Seguramente se
han escuchado muchas historias que afirmen que las colisiones en un Ethernet
son un problema, y que la verdadera tasa de transmisión de datos en un Ethernet,
sólo ocupa un 30 por ciento del ancho de banda disponible debido a ellas. La
verdad es que las colisiones en un sistema Ethernet son un fenómeno natural. Es
más, en un sistema muy activo, no se debería sorprender al ver que las colisiones
tienen un índice mayor al 30 por ciento. En la práctica, el administrador de una red
Ethernet sólo debería preocuparse cuando la tasa de transmisión se vea limitada a
aproximadamente un 60 por ciento del ancho de banda.[3]
El Protocolo IP (Internet Protocol)
Por supuesto, el administrador puede no querer que su red esté limitada
solamente a una Ethernet, o a un sólo enlace de datos punto-a-punto.
Seguramente la idea original consistirá en poder acceder a un servidor sin
importar el hardware del que dispone. Por ejemplo, en instalaciones grandes como
la Universidad de Groucho Marx, se encontrará muy a menudo con varias redes
distanciadas unas de otras, pero conectadas entre ellas de alguna manera. En la
GMU, el departamento de matemáticas tiene dos Ethernets: una red de máquinas
rápidas para profesores y graduados, y otra con máquinas más lentas para
estudiantes. Ambas redes están enlazadas de la red troncal FDDI del campus.
Esta conexión se gestiona con un nodo dedicado, denominado pasarela, o
gateway, que maneja los paquetes entrantes y salientes copiándolos entre las dos
Ethernets y el cable de fibra óptica. Por ejemplo, si se encuentra en el
Departamento de Matemáticas, y quiere acceder a quark situada en la LAN del
Departamento de Físicas, desde su máquina GNU/Linux, el software de red no
puede mandar paquetes a quark directamente, porque no esta en la misma
Ethernet. Por tanto, tiene que confiar en la pasarela para que actúe como
retransmisor. La pasarela (llamémosla sophus) reenvía entonces estos paquetes a
su pasarela homóloga niels del Departamento de Física, usando la red troncal, y
por fin niels los entrega a la máquina destino. El flujo de datos entre erdos y quark
se muestra en la Figura.
Los tres pasos del envío de un datagrama
Este esquema de envío de datos al nodo remoto se llama encaminamiento, y en
este contexto a los paquetes se les denomina datagramas. Para facilitar las cosas,
el intercambio de datagramas esta gobernado por un único protocolo que es
independiente del hardware utilizado: IP, o Internet Protocol (Protocolo de
Internet).
El principal beneficio del IP es su cualidad de convertir a redes físicamente
diferentes en una red aparentemente homogénea. A esto se le llama interconexión
de redes, y a la resultante “meta-red” se la denomina internet. Obsérvese aquí la
sutil diferencia entre una internet y la Internet. El último es el nombre oficial de una
internet global en particular.
Claro que el IP también necesita un esquema de direccionamiento independiente
del hardware. Esto se consigue asignando a cada nodo un número único de 32
bits, denominado dirección IP. Una dirección IP está definida normalmente, por 4
números en decimal, uno por cada división de 8 bits, y separados por puntos. Por
ejemplo, quark podría tener una dirección IP 0x954C0C04, que se escribiría como
149.76.12.4. Este formato de dirección, es comúnmente llamado notación decimal
de puntos, aunque también puede hacerse referencia a él como notación
cuadrangular de puntos. Sin embargo la denominación de IP, está cambiando del
nombre de IPv4, (por Internet Protocol, Version 4), a un nuevo estándar llamado
IPv6 que ofrece mucha más flexibilidad a la hora de direccionar y otras mejoras
modernas. Pasará por lo menos un año tras esta edición, antes de que IPv6
empiece a ser usado.
Se dará cuenta de que ahora tenemos tres tipos distintos de direcciones: primero,
tenemos el nombre del nodo, como por ejemplo quark, después tenemos las
direcciones IP, y por fin están las direcciones hardware, como la dirección
Ethernet de 6 bytes. De alguna forma todas ellas deben relacionarse, de modo
que cuando se escriba rlogin quark, se le pueda pasar la dirección IP de quark al
software de red; y cuando el nivel IP envíe datos a la Ethernet del Departamento
de Físicas, de algún modo tenga cómo encontrar a que dirección Ethernet
corresponde la dirección IP.
El Protocolo de Control de Transmisión, TCP
Pero la historia no se acaba con el envío de datagramas de un nodo a otro. Si se
registra en quark, necesita disponer de una conexión fiable entre su proceso rlogin
en erdos y el proceso del intérprete de órdenes en quark. Así, la información
enviada en uno u otro sentido debe dividirse por paquetes en el origen, y ser
reensamblada en un flujo de caracteres por el receptor. Esto que parece trivial,
implica varias tareas complejas.
Una cosa importante a saber sobre IP es que, por sí sólo, no es fiable. Suponga
que diez personas de su Ethernet comienzan a transferirse la última versión del
código fuente del Navegador web Netscape, usando el servidor FTP de GNU. La
cantidad de tráfico generada por esto podría ser excesiva para la pasarela, por ser
demasiado lenta, o tener poca memoria. Si en ese momento Ud. enviara un
paquete a quark, sophus podría tener agotado el espacio del búfer durante un
instante y por tanto no seria capaz de reenviarlo. IP resuelve este problema
simplemente descartando el paquete el cual se pierde irrevocablemente. Esto
traslada, por consiguiente, la responsabilidad de comprobar la integridad y
exactitud de los datos a los nodos extremos, y su retransmisión en caso de error.
De este proceso se encarga otro protocolo: el Protocolo de Control de
Transmisión, (TCP, Transmission Control Protocol), que construye un servicio
fiable por encima de IP. La propiedad esencial de TCP es que usa IP para dar al
usuario la impresión de una conexión simple entre los procesos en su equipo y la
máquina remota, de modo que no tiene que preocuparse de cómo y sobre el
recorrido de los datos a través de la ruta por la que viajan. Una conexión TCP
funciona básicamente como una tubería de doble sentido, en la que ambos
procesos pueden escribir y leer; Se puede usar la analogía de una conversación
telefónica para comprender el funcionamiento de este protocolo.
TCP identifica los extremos de una conexión específica por las direcciones IP de
los dos nodos implicados, y el número de los puertos de cada nodo. Los puertos
se pueden ver como puntos de enganche para conexiones de red. Para seguir
utilizando el ejemplo del teléfono un poco más, si pensamos en una analogía entre
las ciudades como nodos, se puede comparar las direcciones IP con los prefijos
de área (los números representarían ciudades), y los números de puerto con los
códigos locales (números que representan teléfonos de personas concretas). Un
nodo en particular puede soportar diferentes servicios, cada uno diferenciado por
su propio número de puerto.
En el ejemplo con rlogin, la aplicación cliente (rlogin) abre un puerto en erdos y se
conecta al puerto 513 de quark, en el cual se sabe que el servidor rlogind está
escuchando. Esto establece una conexión TCP. Usando esta conexión, rlogind
desempeña el procedimiento de autorización para luego, generar un servicio de
ontérprete de órdenes. La entrada y salida estándar de la shell se redirigen a la
conexión TCP, de tal forma que cualquier cosa que se teclee a rlogin en nuestra
máquina será pasada al flujo TCP para ser luego transmitida a la entrada estándar
del intérprete de órdenes.
El Protocolo de Datagramas de Usuario
Sin embargo, TCP no es el único protocolo de usuario en redes TCP/IP. Aunque
adecuado para aplicaciones como rlogin, la sobrecarga que impone es prohibitiva
para aplicaciones como NFS, la cual utiliza un protocolo derivado de TCP llamado
UDP, o User Datagram Protocol (Protocolo de Datagramas de Usuario). De igual
modo que TCP, UDP permite que una aplicación contacte con un servicio en un
puerto concreto de la máquina remota, pero no establece una conexión para ello.
En cambio, se puede usar para enviar paquetes sueltos al servicio destino - de ahí
su nombre.
Supóngase que se ha solicitado una pequeña cantidad de información de un
servidor de base de datos. Esto tomará, al menos tres datagramas para establecer
la conexión TCP, otros tres para enviar y confirmar la cantidad de datos y otros
tres para cerrar la conexión. UDP nos facilita el hacer la mayor parte de todo esto,
pero solamente usando dos datagramas. Este protocolo es caracterizado por tener
un método de conexión y desconexión mucho más rápido, y no requiere que el
usuario establezca y cierre una conexión. El mecanismo es simple: UDP coloca
los datos en un datagrama y lo envía al servidor. Éste realiza un proyecto del
reenvío, poniendo los datos dentro de un datagrama direccionado a nuestra
máquina, y luego lo transmite. Mientras que este procedimiento es más rápido y
más eficiente que el de TCP para transacciones simples, UDP no fue construido
para tratar con posibles pérdidas de datos. Lidiar con estas dificultades dependerá
de la aplicación en cuestión.
Más sobre Puertos
Los puertos se pueden ver como puntos de anclaje para conexiones de red. Si una
aplicación quiere ofrecer un cierto servicio, se engancha ella misma a un puerto y
espera a los clientes (a esto también se le llama escuchar en el puerto). Un cliente
que quiera usar este servicio se asigna un puerto libre en su nodo local, y se
conecta al puerto del servidor en el nodo remoto. El puerto del servidor podrá ser
abierto por diferentes máquinas, pero nunca podrán usarlo más de una al mismo
tiempo.
Una propiedad importante de los puertos es que, una vez que se ha establecido
una conexión entre el cliente y el servidor, otra copia del servidor puede
engancharse a su mismo puerto y aguardar a otros clientes. Esto permite, por
ejemplo, varios accesos remotos simultáneos al mismo nodo, usando todos ellos
el mismo puerto 513. TCP es capaz de distinguir unas conexiones de otras, ya que
todas ellas provienen de diferentes puertos o nodos. Por ejemplo, si accede dos
veces a quark desde erdos, el primer cliente rlogin usará el puerto local 1023, y el
segundo el 1022. Sin embargo, ambos se conectarán al mismo puerto 513 de
quark. Las dos conexiones se distinguirán según el puerto que cada una use en
erdos.
Este ejemplo muestra el uso de puertos como puntos de encuentro, donde un
cliente se contacta con un puerto específico para obtener un servicio específico.
Para que un cliente pueda conectarse al número de puerto correcto, se ha tenido
que llegar a un acuerdo entre los administradores de los dos sistemas para definir
la asignación de estos números. Para servicios ampliamente usados, como rlogin,
estos números tienen que administrarse de modo universal. Esto lo realiza el IETF
(o Internet Engineering Task Force), que regularmente publica un RFC (Request
For Comment) denominado Assigned Numbers (Números Asignados, RFC-1700).
Describe, entre otras cosas, los números de puerto asignados a servicios
reconocidos. GNU/Linux utiliza un archivo para hacer corresponder los nombres
con números, llamado /etc/services.
Merece la pena indicar que aunque las conexiones TCP y UDP se basan en
puertos, estos números no entran en conflicto. Esto significa que el puerto TCP
513, por ejemplo, es diferente del puerto UDP 513. De hecho, estos puertos sirven
como puntos de acceso para dos servicios diferentes, como rlogin (TCP) y rwho
(UDP).
1.4 Internet:
Internet es una red de redes a escala mundial de millones de computadoras
interconectadas con el conjunto de protocolos TCP/IP. También se usa este
nombre como sustantivo común y por tanto en minúsculas para designar a
cualquier red de redes que use las mismas tecnologías que la Internet,
independientemente de su extensión o de que sea pública o privada.
Al contrario de lo que se piensa comúnmente, "Internet" no es sinónimo de World
Wide Web. Ésta es parte de aquella, siendo la World Wide Web uno de los
muchos servicios ofertados en la red Internet. La Web es un sistema de
información mucho más reciente (1995) que emplea la red Internet como medio de
transmisión.
Algunos de los servicios disponibles en Internet aparte de la Web son el acceso
remoto a otras máquinas (telnet y SSH | ssh), transferencia de archivos (FTP),
correo electrónico (SMTP | e-mail), boletines electrónicos (NNTP | news o grupos
de noticias), conversaciones en línea (IRC|chat), mensajería instantánea (ICQ,
YIM, Jabber), etcétera.
Historia de Internet
A finales de 1972 se realizó la primera demostración pública de ARPANET, una
nueva red de comunicaciones financiada por la DARPA que funcionaba de forma
distribuída sobre la red telefónica conmutada. El éxito de esta nueva arquitectura
sirvió para que, en 1973, la DARPA iniciara un programa de investigación sobre
posibles técnicas para interconectar redes (orientadas al tráfico de paquetes) de
distintas clases. Para este fin, desarrollaron nuevos Protocolo|protocolos de
comunicaciones que permitiesen este intercambio de información de forma
"transparente" para los ordenadores conectados. De la filosofía del proyecto surgió
el nombre de "Internet", que se aplicó al sistema de redes interconectadas
mediante los protocolos TCP IP|TCP e IP.
El 1 de enero de 1983 ARPANET cambió el protocolo NCP por TCP/IP. Ese
mismo año, se creó el IAB con el fin de estandarizar el protocolo TCP/IP y de
proporcionar recursos de investigación a Internet. Por otra parte, se centró la
función de asignación de identificadores en la IANA que, más tarde, delegó parte
de sus funciones en el IR que, a su vez, proporciona servicios a los DNS.
En 1986 la NSF comenzó el desarrollo de NSFNET que se convirtió en la principal
red troncal de Internet, complementada después con las redes NSINET y ESNET,
todas ellas en EE.UU. Paralelamente, otras redes troncales en Europa, tanto
públicas como comerciales, junto con las americanas formaban el esqueleto
básico ("backbone") de Internet.
A partir de 1989, con la integración de los protocolos OSI en la arquitectura de
Internet, se inició la tendencia actual de permitir no sólo la interconexión de redes
de estructuras dispares, sino también la de facilitar el uso de distintos protocolos
de comunicaciones.
El protocolo de transferencia de archivos (FTP o File Transfer Protocol) es el
protocolo estándar en la red para efectuar transferencias de archivos de un
servidor a un ordenador o entre ordenadores.
En 1989 también, en el CERN de Ginebra, un grupo de Físicos encabezado por
Tim Berners-Lee, crearon el lenguaje HTML, basado en el SGML. En 1990 el
mismo equipo construyó el primer cliente Web, llamado WorldWideWeb (WWW), y
el primer servidor web.
Actualmente Internet incluye aproximadamente 5000 redes en todo el mundo y
más de 100 protocolos distintos basados en TCP/IP, que se configura como el
protocolo de la red.
En algunos países el acceso a Internet está restringido únicamente a entidades
gubernamentales y empresas extranjeras o fuertemente controlado por el estado.
Internet2 es un consorcio de universidades estadounidenses y empresas
tecnológicas con el objetivo de crear nuevos protocolos y aplicaciones que
mejoren el rendimiento y la calidad que se consigue en la actual Internet. Los
miembros de Internet2 han creado la Red Abilene con estas tecnologías. Esta red
a menudo se denomina de manera informal, Internet2.
Uso de Internet en SudAmerica
1.5 Informática o Computo Forense:
Computo Forense es sobre la evidencia de computadoras la cual es suficiente
confiable para ser presentada en un juzgado. Es un conjunto de técnicas
especializadas que tiene como finalidad la reconstrucción de hechos pasados
basados en los datos recolectados, para lo cual se procesa la información que
pueda ser usada como evidencia en un equipo de cómputo
Computo Forense, es refiere como Análisis de Computo forense, Hallazgo
electrónico, Hallazgo de evidencia electrónica, hallazgo digital, Recuperación de
Datos, Hallazgo de Datos, Análisis de Computadoras, y examen de computadoras.
1.6 El Investigador Forense:
El Perito Forense debe ser un experto en su campo, y ante una juzgado puede
ser consultado sobre sus logros personales; Educación recibida y grados
realizados, entrenamiento profesional recibido, Certificaciones, detalle de su
experiencia, casos en los que haya testificado como experto.
1.7 Seguridad Física y Lógica:
Seguridad Física:
La seguridad física de los sistemas informáticos consiste en la aplicación de
barreras físicas y procedimientos de control como medidas de prevención y
contramedidas contra las amenazas a los recursos y la información confidencial.
Más claramente, por “seguridad física” podemos entender todos aquellas
mecanismos generalmente de prevención y detección destinados a proteger
físicamente cualquier recurso del sistema; estos recursos son desde un simple
teclado hasta una cinta de backup con toda la información que hay en el sistema,
pasando por la propia CPU de la máquina.
Protección del Hardware:
Acceso Físico
Desastres Naturales
Desastres del entorno
Protección de Datos:
Interceptación
Copias de Seguridad (backups)
Otros elementos
Seguridad Lógica:
La Seguridad Lógica consiste en la aplicación de barreras y procedimientos que
resguardan el acceso a los datos y sólo permiten acceder a ellos a las personas
autorizadas para hacerlo.
Existe un viejo dicho en la seguridad informática que dicta: "lo que no está
permitido debe estar prohibido" y esto es lo que debe hacer ésta seguridad lógica.
Los objetivos para conseguirlo son:
Restringir el acceso (de personas de la organización y de las que no lo son) a los
programas y archivos.
Asegurar que los operadores puedan trabajar pero que no puedan modificar los
programas ni los archivos que no correspondan (sin una supervisión minuciosa).
Asegurar que se utilicen los datos, archivos y programas correctos en/y/por el
procedimiento elegido.
Asegurar que la información transmitida sea la misma que reciba el destinatario al
cual se ha enviado y que no le llegue a otro.
Asegurar que existan sistemas y pasos de emergencia alternativos de transmisión
entre diferentes puntos.
1.8 Hackers, Crackers, definiciones:
- Hacker: (del inglés hack, recortar), también conocidos como white hats
(sombreros blancos) o black hats (sombreros negros), según una clasificación
de sus acciones (según sean solo destructivas o no, etc.). Su entendimiento
es más sofisticado y profundo respecto a los Sistemas informáticos, ya sea de
tipo hardware o software. El término "Hacker" trasciende a los expertos
relacionados con la informática, para también referirse a cualquier profesional
que está en la cúspide de la excelencia en su profesión, ya que en la
descripción más pura, un "Hacker" es aquella persona que le apasiona el
conocimiento, descubrir o aprender nuevas cosas y entender el
funcionamiento de éstas. En definitiva, la versión actual del filósofo.
- Cracker: El término deriva de la expresión "criminal hacker", y fue creado
alrededor de 1985 por contraposición al termino hacker, en defensa de estos
últimos por el uso incorrecto del término. Se considera que la actividad de esta
clase de cracker es dañina e ilegal. También se denomina cracker a quien
diseña o programa cracks informáticos, que sirven para modificar el
comportamiento o ampliar la funcionalidad del software o hardware original al
que se aplican, sin que en absoluto pretenda ser dañino para el usuario del
mismo.
- Phreaker: Un phreaker es una persona que interfiere en los sistemas
telefónicos, de forma ilegal, mediante el uso de tecnología para poder obtener
algún tipo de beneficio. El término proviene de las palabras
phone+phreak+hacker (telefono+loco+hacker) y surgió en los Estados Unidos
en los años 60. Durante muchos años los phreakers usaron las llamadas
boxes, artefactos que provocaban diversas anomalías en la línea telefónica,
estos dispositivos se conocen por un color identificativo -blue boxes, black
boxes, beige boxes. En la actualidad, los phreakers tienen también como
blanco a la telefonía móvil y a las tecnologías inalámbricas.
- Malware: La palabra malware proviene de una agrupación de las palabras
malicious software. Este programa o archivo, que es dañino para el ordenador,
está diseñado para insertar virus, gusanos, troyanos o spyware intentando
conseguir algún objetivo, como podría ser el de recoger información sobre el
usuario o sobre el ordenador en sí.
Virus: Los virus informáticos utilizan una variedad de portadores. Los blancos
comunes son los archivos ejecutables que son parte de las aplicaciones, los
documentos que contienen macros, y los sectores de arranque de los discos
de 3,1/2 pulgadas.
Gusanos (worms): Los gusanos informáticos son similares a los virus, pero los
gusanos no dependen de archivos portadores para poder contaminar otros
sistemas. Estos pueden modificar el sistema operativo con el fin de auto
ejecutarse como parte del proceso de inicialización del sistema. Para
contaminar otros sistemas, los gusanos explotan vulnerabilidades del objetivo
o utilizan algún tipo de ingeniería social para engañar a los usuarios y poderse
ejecutar.
Caballos de Troya: Un programa caballo de troya es una pieza de software
dañino disfrazado de software legítimo. Los caballos de troya no son capaces
de replicarse por si mismos y pueden ser adjuntados con cualquier tipo de
software por un programador o puede contaminar a los equipos por medio del
engaño. Una puerta trasera es un software que permite el acceso al sistema
de la computadora ignorando los procedimientos normales de autenticación.
SpyWare: El spyware es todo aquel software que recolecta y envía
información de los usuarios. Normalmente trabajan y contaminan sistemas
como lo hacen los caballos de troya.
1.9 Conceptos de criptografía:
La palabra criptografía deriva del griego kryptos (ocultar) y grafos (escribir), lo cual
puede traducirse como escritura oculta, la criptografía es el arte o ciencia de cifrar
y descifrar información utilizando técnicas que hagan posible el intercambio de
mensajes de manera que sólo puedan ser leídos por las personas a quienes van
dirigidos.
La criptografía es la ciencia que estudia la transformación de un determinado
mensaje en un código de forma tal que a partir de dicho código solo algunas
personas sean capaces de recuperar el mensaje original. En general se utiliza
para ello una palabra clave o 'password' con la cual se cifra el mensaje, el código
resultante solamente puede ser descifrado por aquellos que conozcan el
password.
La criptografía es una actividad muy antigua: Ya en la época de los griegos se
supone que existían métodos para codificar los mensajes que se enviaban a las
tropas en regiones alejadas, sin embargo, el primer criptosistema del cual se
tienen pruebas de su existencia fue utilizado en la época del imperio romano y se
llamaba 'CAESAR' el sistema era utilizado por Julio Cesar para enviar mensajes
cifrados a sus allegados mas cercanos, hablaremos del criptosistema 'CAESAR'
muy pronto.
Junto a la criptografía coexiste necesariamente otra disciplina: el criptoanálisis,
mientras que los criptógrafos se encargan de desarrollar criptosistemas cada vez
mas seguros y difíciles de descifrar los criptoanalistas tratan de 'romper' un
criptosistema obteniendo el mensaje a partir del código cifrado. De estos dos
bandos con objetivos diametralmente opuestos siempre se afirma que alguno de
los bandos es el 'lado bueno' y el otro inevitablemente 'los chicos malos' estos
roles se pueden intercambiar indefinidamente dependiendo de la situación y el
contexto en el cual estudiemos el tema. En este texto desarrollaremos la teoría
operativa y técnicas mas habituales tanto de los criptógrafos como de los
criptoanalistas.
Lamentablemente la criptografía y su ciencia paralela el criptoanálisis son
disciplinas que experimentan marcados avances en épocas de guerra, allí es
necesaria la comunicación de estrategias, planes tácticos e informes super
secretos entre las distintas fuerzas de cada bando de forma tal que si el código es
interceptado por un eventual enemigo este no pueda hacerse de la información
que se envío. La criptografía experimenta su mayor avance durante el transcurso
de la segunda guerra mundial en donde adquiere un protagonismo singular, allí, el
criptosistema de la maquina alemana 'Enigma' es roto por los criptoanalistas de
las fuerzas aliadas siendo éste un factor que contribuyo en gran medida a la
victoria final de los aliados. En este caso los criptógrafos alemanes eran los
'malos' y los criptoanalistas aliados eran 'los buenos', pero si nosotros queremos
enviar un mensaje secreto a alguien y el mismo resulta publicado en un diario
vamos a pensar que los criptoanalistas son personas sumamente viles. Como
vemos todo depende de la situación.
Afortunadamente la criptografía experimenta su segundo gran auge con la
masificación de las comunicaciones digitales y el advenimiento de la era de las
computadoras. Hoy en día suele ser necesario enviar y recibir mensajes a través
de Internet de forma tal que el mensaje solo pueda ser entendido por alguna
persona en particular, por ejemplo si enviamos nuestro numero de tarjeta de
crédito queremos que lo obtenga solamente el vendedor y no algún criptoanalista
pakistaní que pasaba por allí. En los últimos años la criptografía se ha convertido
en una ciencia de enorme importancia y a la cual se le destina cada vez un
tratamiento más serio y más científico de forma tal de lograr comunicaciones
seguras. Como veremos esto no es una tarea para nada sencilla.
a Conceptos de Seguridad en computadoras digitales:
Uno de los puntos que siempre estuvo en discusión sobre el almacenamiento de
información en computadoras digitales, fue la seguridad de los mismos frente a
posibles miradas indiscretas, desde que la primera computadora hizo su aparición
en alguna organización militar o gubernamental la necesidad de resguardar la
información allí almacenada se hizo evidente.
Para proteger la información almacenada se suele recurrir a las denominadas
técnicas de encriptación, la encriptación consiste básicamente en convertir un
mensaje en otro de forma tal que el mensaje original solo pueda ser recuperado
por un determinado grupo de personas que saben como "desencriptar" el mensaje
codificado. El esquema básico de encriptación implica la utilización de un
password para encriptar de forma tal que solo puedan desencriptar el mensaje
aquellos que conocen el password utilizado, esto trae varios problemas como
veremos mas adelante.
Con el advenimiento de Internet y la masificación absoluta de las comunicaciones
la privacidad de los datos se ha vuelto un tema muy en boga en los últimos
tiempos, originando todo tipo de problemas que involucran desde el mas simple e
inocente usuario de internet hasta las mas altas organizaciones gubernamentales
del planeta.
En el mundo de las computadoras la criptografía puede ser utilizada para varias
cosas, algunas áreas importantes en donde se utiliza la criptografía son:
. La encriptación de información 'critica' que debe ser almacenada en
computadoras, actos gubernamentales, informaciones secretas, etc.
. La encriptación de mensajes enviados a través de redes, redes locales, redes
publicas e internet.
. La certificación de identidad de quienes envían mensajes importantes a través de
internet.
. Protección de información 'delicada' que deba enviarse a través de internet
como, por ejemplo, números de tarjetas de crédito.
. Encriptación de comunicaciones telefónicas, radiales o televisivas que pueden
ser interceptadas.
b.Encriptación de Datos:
Las técnicas de encriptación suelen dividir a los algoritmos en dos grupos: los
algoritmos de clave privada y los algoritmo de clave publica. A los algoritmos de
clave privada se los llama también algoritmos de encriptación simétricos mientras
que los de clave pública suelen denominarse algoritmos antisimétricos.
c.Algoritmos de Clave Simétrica:
Los algoritmos de clave simétrica, también llamados de clave secreta o privada,
son los algoritmos clásicos de encriptación en los cuales un mensaje es encriptado
utilizando para ello una cierta clave sin la cual no puede recuperarse el mensaje
original.
El esquema básico de los algoritmos de clave simétrica es:
MENSAJE + CLAVE = CÓDIGO (encriptación)
CÓDIGO + CLAVE = MENSAJE (desencriptación)
Esto se lleva a cabo sustituyendo porciones del mensaje original por porciones de
mensaje encriptado usando la clave. La sustitución puede ser de varias formas:
Monoalfabética:
Cuando se encripta, cada caracter encriptado corresponde a un caracter del
mensaje original y viceversa.
Homofónica:
Cuando un caracter de texto original se encripta en varios caracteres del texto
encriptado.
Poligráfica:
Cuando n caracteres del mensaje original generan n caracteres del mensaje
encriptado.
Polialfabética:
Cuando n caracteres del texto original se encriptan en m caracteres del texto
encriptado (m≠n) .
Cabe destacar que la sustitución poligráfica y la sustitución homofónica son casos
particulares de la sustitución polialfabética.
Criptosistemas
Definiremos a un criptosistema como un conjunto de tres elementos:
.Un espacio de mensajes: PT que es la colección de todos los posibles mensajes
pt que pretendemos enviar.
.Un espacio de claves K. Cada clave k determina un método de encriptación Ek y
un método de desencriptado Dk. De forma tal que Ek(pt) = código y Dk(código)=pt.
.Un espacio de códigos: CT que es la colección de todos los posibles códigos ct.
Sistemas Monoalfabéticos y polialfabéticos:
Un algoritmo de encriptación por clave privada es monoalfabético si cada
ocurrencia de un mismo caracter en el mensaje original es reemplazada siempre
por un mismo caracter en el código cifrado.
Un algoritmo de encriptación por clave privada es polialfabético si cada ocurrencia
de un mismo caracter en el mensaje original es reemplazada por distintos
caracteres en el código cifrado.
Desarrollaremos a continuación algunos de los criptosistemas de clave privada
mas conocidos, desde los más básicos hasta los más complejos.
Criptosistema Caesar
Criptosistema Hill
Criptosistema Afines
Criptosistema Playfair
Criptosistema DES
Deficiencia de los Algoritmos de clave privada:
Los algoritmos de clave privada pueden construirse tan eficientes como se desee
utilizando passwords mas y mas largos, sin embargo por mas largo que sea el
password estos algoritmos presentan una vulnerabilidad evidente: el password.
En un esquema de encriptación por clave privada todo aquel que conozca el
password es capaz de desencriptar un mensaje, de aquí que a veces, es mas
importante estudiar como proteger el password que como trabaja el algoritmo
elegido. Además, muchas veces es necesario transmitir, o enviar el password a
alguna persona por lo que será necesario a su vez encriptar el password
ingresando en un loop infinito.
Muchas veces el password es tan vulnerable que los criptoanalistas no se
molestan en descifrar el código interceptado sino que directamente intentan
averiguar el password. Uno de los ejemplos mas habituales consiste en averiguar
passwords que permiten el acceso a determinados sistemas: cuentas bancarias,
computadoras, computadoras donde se guardan otros passwords, etc. A
continuación mencionamos algunas de las técnicas mas utilizadas para 'robo de
passwords'.
.Shoulder Surfing:
Esta técnica es la más básica y consiste en merodear a aquellas personas que
conocen el password que se quiere averiguar intentando ver si se consigue
visualizar el momento en que el password es tipeado en un teclado o escrito en
algún papel, variantes más modernas de esta técnica incluyen programas
residentes que monitorean las teclas que se oprimen en el teclado, cámaras que
registran lo que se tipea desde un punto elevado, etc. La forma mas elemental es
como su nombre lo indica observar por encima del hombro de la persona que tipea
el password, parece tonto pero se utiliza muchísimo.
.Caballos de Troya:
Los caballos de Troya son programas que se diseñan con el fin específico de
robar passwords. El programa es introducido en una computadora y lo que hace
es simplemente cada vez que es ejecutado pedirle el password al usuario y si este
lo tipea (grave error) guardarlo en un archivo. Luego lo único que hay que hacer es
cada tanto consultar el archivo y ver que es lo que nuestro caballo de Troya ha
'pescado'. Una de las reglas de seguridad mas importantes que establecen los
administradores de sistemas es adiestrar a los usuarios para que JAMAS ingresen
su password una vez que se han logoneado en el sistema, además suele ser
recomendable resetear la terminal antes de logonearse al sistema por si el usuario
anterior dejo andando un caballo de Troya que imita al programa de login.
.Ingeniería Social:
Esta disciplina puede parecer ridícula pero es la más exitosa en cuanto a robo de
passwords. La Ingeniería Social consiste en conseguir que una persona,
simplemente, le diga su password a otra. Las técnicas son de lo mas variadas:
llamados telefónicos pidiendo el password pues se cayó un disco y hay que
backupear la información de cada usuario, pedidos de password para
'verificaciones rutinarias', encuestas a ver quien tiene el password mas seguro
(!!!!), etc, etc...
Aunque parezca mentira hay personas realmente especializadas en este tipo de
ataques.
La importancia del mensaje:
Contrariamente a lo que se cree habitualmente, la fuerza de un criptosistema de
clave privada no reside únicamente en el algoritmo utilizado, o en la longitud de la
clave sino que depende, también, del mensaje a enviar. Hay mensajes que por
sus características propias serán mas fáciles de descifrar que otros, dado un
mismo criptosistema, por lo tanto a la hora de enviar un texto ultra-secreto
debemos tener en cuenta varios factores relacionados con el mensaje en sí.
Recomendaciones a la hora de escribir un texto altamente critico que deba ser
encriptado por clave privada:
.No utilizar espacios en blanco, escribir todo el texto de corrido. Cualquier caracter
de alta probabilidad de ocurrencia, como por ejemplo los espacios en blanco, son
un punto débil en el mensaje aun cuando se utilice un esquema polialfabético.
.Si es muy necesario separar las palabras del mensaje a enviar, utilizar cualquier
caracter elegido arbitrariamente en reemplazo del espacio en blanco.
.Escribir con mucho cuidado el texto intentando que la distribución de cada
caracter utilizado en el texto sea lo mas pareja posible, esto es de gran
importancia, evitar el uso de uno o mas caracteres en forma predominante, usar
palabras sinónimos, o incluir faltas de ortografía y sintaxis si es necesario. Escribir
por ejemplo 'salujdhos pedfdro' que puede ser entendido fácilmente cuando se
descifra el código pero podría llegar a complicar sensiblemente el criptoanálisis.
.Empezar algunas palabras con caracteres que no tengan sentido alguno como
por ejemplo la llave que cierra '}' o un punto y coma ';', esto puede desalentar
varios intentos criptoanalíticos correctamente orientados.
.Escribir algunas palabras al revés o con todas las vocales al final y las
consonantes al principio, una especie de doble codificación.
Por ejemplo: 'sldsauo qrdueio pdreo' quiere decir 'saludos querido pedro'.
Los criptoanalistas que consideren como factor cierto la alternancia de vocales y
consonantes en un texto tendrán problemas para descifrar nuestro mensaje. En
algunas palabras se pueden poner todas las vocales al final y en otras todas al
principio.
.Jamas utilizar dos veces la misma palabra en un texto, aun en sistemas
polialfabéticos esto constituye una debilidad.
-Escribir todos los mensajes de la forma mas breve que sea posible, evitar el uso
de artículos salvo que sean estrictamente necesarios para comprender el texto.
Las chances de éxito de un buen criptoanálisis aumentan vertiginosamente a
medida que se consigue mas información sobre el mensaje a descifrar.
d. Sistemas de clave pública:
Los sistemas de encriptación de datos por clave publica han revolucionado el
mundo de la criptografía y se han impuesto ampliamente en el mercado de las
comunicaciones, la idea aunque sencilla recién surgió en la década del '70, los
expertos en criptografía no logran ponerse de acuerdo en cual fue el motivo que
demorara tanto el surgimiento de este tipo de sistema de encriptación.
La idea de los sistemas de clave publica es sencilla: cada usuario genera 2 (dos)
claves: una publica y una privada, el usuario debe conservar su clave privada a
salvo mientras que la clave publica es distribuida en forma masiva.
El juego de claves funciona de la siguiente forma: los mensajes que son
encriptados con la clave publica de un usuario solo pueden ser desencriptados
con la clave privada del mismo.
El algoritmo de encriptación es publico, de forma tal que cualquiera pueda
encriptar un mensaje, el algoritmo de desencriptación debe de forma tal que sin la
clave privada sea muy difícil desencriptar el código mientras que con la clave
privada esto es una tarea sencilla. Todos los algoritmos de encriptación por clave
publica se basan en algún problema en general de tipo matemático de cuyo
tiempo de resolución no pueda establecerse una cota inferior.
RSA:
El algoritmo de clave publica más probado y utilizado en todo el mundo es el
algoritmo RSA, denominado así debido a sus autores: Rivest, Shamir y Adleman.
Está basado en una idea asombrosamente sencilla de la teoría de números y
hasta la fecha ha resistido todo tipo de ataques criptoanalíticos.
La idea es simple: dados dos números primos p y q muy grandes es sencillo a
partir de p y q hallar su producto (p*q) pero es un problema muy complejo a partir
del producto hallar los números p y q en cuestión. Si bien hasta el momento no se
ha podido demostrar que la factorización prima de un numero es un problema NP-
complejo, todos los intentos realizados para factorizar un número en forma veloz
han fracasado.
Criptoanálisis:
Las técnicas criptoanalíticas más utilizadas contra el RSA, aunque sin éxito,
consisten en intentar factorizar el numero "n" que se distribuye en la clave publica
averiguando de esta forma los números p y q. Debido a que no existen algoritmos
eficientes para factorizar un número, el problema de descomponer un numero muy
grande insume un tiempo tan elevado que los ataques mas sofisticados contra el
RSA han fallado (o casi...)
El algoritmo RSA sin embargo presenta una vulnerabilidad: hay una leyenda que
indicaría que el algoritmo es vulnerable. Y la clave de todo se la ha llevado a la
tumba (una vez más) el misterioso Fermat.
PGP (Prett Good Privacy):
En esta sección analizamos el programa más utilizado para encriptar y
desencriptar datos mediante algoritmos de clave publica. El PGP se utiliza en
internet y en casi todas las redes de mensajería cada vez que quiere transmitirse
información privada.
PGP es un producto de distribución libre, es distribuido con sus fuentes y su
distribución le ha causado a su autor Philip Zimmerman más de un problema como
veremos más adelante.
PGP trabaja con el algoritmo RSA utilizando claves de 256,512 o 1024 bytes
según el nivel de seguridad que se necesite, las claves de 1024 bytes superan
ampliamente los mas estrictos requisitos militares sobre seguridad criptográfica.
PGP genera las claves públicas y privadas del usuario utilizando un algoritmo muy
avanzado de pseudoaleatorización que mide los tiempos transcurridos entre lo que
se tipea en un teclado. (PGP solicita al usuario que tipee durante un cierto tiempo
en la pantalla) o los movimientos del mouse (se solicita al usuario que lo mueva
aleatoriamente durante cierto tiempo).
La clave publica queda grabada en el disco y lista para ser distribuida, la clave
privada se almacena también en el disco, PGP en sus manuales destaca que el
acceso a la computadora donde se almacena la clave privada debe restringirse en
forma drástica pues el conseguir la clave privada anula todo el sistema, el autor
recomienda el uso de dispositivos que distorsionen las señales de radio en el
ambiente donde reside la computadora pues existen dispositivos ultra-avanzados
de las agencias gubernamentales que permiten leer la información de un disco a
distancia mediante ondas de radio (!!).
Las claves publicas que nos envían otros usuarios son almacenadas en un
conjunto de claves publicas (Public-key-ring) sobre el cual se pueden realizar
altas, bajas y modificaciones.
Cuando un usuario le envía a otro su clave pública, por ejemplo a través de
internet, el usuario que recibe la clave suele querer chequear que la clave publica
recibida sea la del usuario que el quiere y no cualquier otra. Para ello PGP permite
extraer de cada clave publica un numero conocido como 'FINGERPRINT' el
Fingerprint puede ser chequeado telefónicamente o personalmente, y si coincide
puede certificarse que la clave publica es de quien dice ser. (Cualquier cambio en
la clave publica modifica el Fingerprint). El fingerprint se calcula hasheando la
clave publica.
PGP dispone de varias opciones interesantes:
Envío del mensaje en forma clásica:
Este esquema sigue el mecanismo clásico de la encriptación por clave publica, el
mensaje es encriptado usando la clave publica de un determinado usuario de
forma tal que solo pueda ser desencriptado por la clave privada del mismo.
Certificación de mensajes:
Esta es una utilidad muy recomendable, y sirve para que un usuario firme un
mensaje de forma tal que se pueda autenticar su autoría. Lo que hace el PGP es
primero extraer un 'concentrado' del mensaje sometiéndolo a una función de
hashing, luego el concentrado es encriptado con la clave privada del usuario y
agregado al final del mensaje. Cuando el mensaje es recibido por un usuario la
firma digital es desencriptada usando la clave pública del usuario y luego el
mensaje es sometido a la función de hashing, si el concentrado coincide con el
concentrado desencriptado del mensaje entonces el mensaje fue escrito por quien
dice ser, de lo contrario o bien fue escrito por otra persona o bien fue modificado el
texto del mensaje.
Los mensajes certificados a su vez pueden ser encriptados para que solo puedan
ser leídos por una cierta persona.
Notar que la certificación utiliza el juego de claves en forma inversa al uso normal
de las mismas.
Mensaje solo para tus ojos:
Esta opción del PGP permite encriptar un mensaje para una cierta persona de
forma tal que cuando esta lo desencripte usando su clave privada el texto del
mensaje solo se pueda ver en pantalla y no pueda ser grabado en un archivo, esta
opción otorga una seguridad extra a quien envía el mensaje y tiene miedo que el
usuario que lo recibe lo trate en forma descuidada dejándolo por allí.
Borrado especial del archivo a encriptar:
Cuando se quiere encriptar un mensaje muy critico que esta escrito en un archivo,
PGP dispone de la opción de eliminar el archivo original del disco una vez
encriptado. PGP no utiliza un borrado común del archivo sino que sobreescribe el
área del disco con sucesivas pasadas de unos, ceros y unos y ceros alternados en
forma random, esto lo hace varias veces. El algoritmo de borrado del PGP
asegura que la información no podrá ser recuperada del disco. (Si el algoritmo no
es lo suficientemente seguro el análisis de trazas magnéticas del disco puede
permitir recuperar la información).
PGP es un programa sumamente seguro y es utilizado en todo el mundo para el
envío de e-mail en forma segura y la certificación de mensajes de importancia.
e. Criptografía Cuántica:
La criptografía cuántica es una nueva área dentro de la criptografía que hace uso
de los principios de la física cuántica para transmitir información de forma tal que
solo pueda ser accedida por el destinatario previsto.
Para poder llegar a explicar los detalles de la criptografía cuántica se necesitan
establecer algunos conceptos básicos de criptografía y física cuántica que serán
de ayuda para la comprensión del tema. Pero antes que nada se expone el
problema que la criptografía cuántica intentará solucionar.
En general observar un sistema cuántico perturba al mismo, e impide que el
observador conozca su estado exacto antes de la observación. Por lo tanto, si un
sistema cuántico es utilizado para transferir información, alguien que quiera espiar
la comunicación, o incluso el receptor previsto, podría verse impedido de obtener
toda la información enviada por el emisor. Este rasgo negativo de la mecánica
cuántica, conocido como principio de incertidumbre de Heisenberg, recientemente
ha encontrado un uso positivo en el área de las comunicaciones privadas y
seguras.
2. Como se producen los ataques y delitos informáticos.
2.1 Seguridad en los servidores Internet:
Mientras que el computo forense en un ocupación reciente, tiene relación con
muchos precursores en tecnologías de información. Estas disciplinas padre no
solo incluyen la teoría y la practica de hardware, software y programación, sino
también notablemente Seguridad de computo, que ha madurado junto con la
tecnología de información para ayudar a proteger, no solo contra ataques, sino
también contra errores y accidentes.
Hay dos importante observaciones que vienen a la mente sobre ésta relación
entre el computo forense y la seguridad de computadoras. Primero, las redes
remotas y empresas en línea, después del año 1991, ha hecho cada vez mas
difícil establecer el alcance de una política de seguridad. Antes era posible
maquetar un limite alrededor de las operaciones, para distinguir entre “los de
dentro”, quienes estaban permitidos de usar el sistema y los “de afuera”, quienes
no estaban permitidos, y enfocarse en la construcción de limites seguros. Esta
distinción ha llegado a no tener sentido, tanto como las empresas y los órganos
del gobierno arremeten para establecer su presencia en internet. Ahora el enfoque
se ha desplazado a rol de las aplicaciones, el lugar donde los roles son permitidos
están descritos en términos de derechos de acceso en jerarquías. Segundo
asesores de riesgo siempre tienen que advertir la actuación de estos “intrusos”
evitando el inadecuado monitoreo de roles, quienes probablemente comenten la
mayor parte de crímenes de computadora, se estima el 80%.
El objetivo de la seguridad de computadoras en sus sentido mas amplio es
preservar un sistema; como es su significado; especificamentem como las politicas
de seguridad dictan. Computo forense, o al menos forense de intrusion, explica
como las politicas son violadas, un proceso puede revelar los agujeros fatales en
las politicas mismas. Existen algunas razones para la discrepancia seguridad /
forense:
2.2 Area de Actividades:
Uno de los primeros pasos es determinar el área de las actividades. Se desea
identificar enteramente a la organización o los limites de las actividades en ciertas
áreas.. En algunos casos puede resultar un poco complicado determinar todas las
entidades asociadas a la organización objetivo. Los proveedores de internet
contienen conjuntos de recursos que se pueden utilizar para el area de actividades
y también proporciona algo más; como el tipo y cantidad de información publica
disponible sobre la organización y los empleados.
La pagina web de una organización puede proporcionar una cantidad de
información que puede ser de ayuda a los atacantes, como por ejemplo:
Lugares
Entidades o empresas relacionadas
Noticias de adquisiciones
Números telefónicos
Nombre de contacto y direcciones de correo electrónico
Políticas de seguridad y privacidad indicando el tipo de mecanismo de seguridad
en el lugar
Enlaces a otros servidores web, relacionados con la organización.
Consulta Google, para enlaces a dominio especificado
2.3 Información general del objetivo (Web, Whois, news):
Aquí se inicia el proceso de enumeración para identificar los nombres de dominio
y redes asociadas, que se relacionan a una organización en particular. Los
nombres de dominio representan la presencia de la empresa en internet y son el
equivalente en internet al nombre de la empresa, como “JugosDel.com” o
“hansgross.com”
Para enumerar los dominios e iniciar a descubrir la redes anexas al objetivo, se
debe escudriñar la internet. Existen multiples bases de datos “whois” que pueden
ser consultadas para proporcionar información sobre cada entidad que se desea
invetigar. En los años 1999 la empresa network solutions tenia el monopolio de los
registro de dominios y mantenia esta inforamcion en sus servidores “whois”. Este
monopolio fue disuelto y actualmente hay una multitud de registradores
acreditados. Y se hace necesario realizar la consulta al registrador adecuado, para
obtener la información que se requiera.
Existen diferentes mecanismos, pare realizar las consultas a las diferentes bases
de datos “whois“. En cualquier caso siempre se debe de obtener la misma
información
Interface Web:
http://www.networksolutions.com/
http://www.arin.net
Cliente WHOIS:
dig, host, nslookup (GNU/Linux)
SamSpade (Windows) http://www.samspade.org/
Consulta vía Web a una Base de Datos WHOIS
Consulta a una Base de Datos WHOIS via consola
Diversa información puede ser obtenida con cada consulta realizada. Los
siguiente tipos de consulta proporcionan la mayoría de información que un
atacante puede utilizar:
Registrante (información del registrador y servidores whois asociados)
Organización (información relacionada con la organización)
Dominio (información relacionada con un dominio en particular)
Red (información relacionada a una red particular o una simple dirección IP)
Punto de Contacto (información de una persona especifica, contacto
administrativo)
2.4 Interrogación a DNS:
Después de indentificar los dominios asociados, se inicia la consulta a los DNS.
DNS es una base de datos distribuida utilizado para mapear direcciones IP a
nombres de dominios y viceversa. Si el DNS esta configurada de manera
insegura, es posible obtener una revelación de información sobre la organización.
Una de los mas comunes errores de configuración de los administradores de
sistemas es permitir a usuarios no permitidos realizar transferencias de zonas.
Una transferencia de zona, permite a un servidor maestro secundario actualizar
su base de datos de zonas desde el servidor primario.
Un medio simple para realizar estas consultas en con el comando “host”:
2.5 Reconocimiento de la Red:
Cuando se han identificado potenciales Redes, se intenta determinar la topología
de la Red y tambien las posibles rutas hacia la Red.
Para realizar esta tarea, se puede usar “traceroute”, el cual puede encontrarse
con la mayoria de sistemas GNU/Linux y tambien para sistemas Windows.
Tracerote es una herramienta de diagnostico que permite ver la ruta que un
paquete IP sigue de un host a otro. Usa la opción TTL (tiempo de vida) en el
paquete IP para obtener un mensaje ICMP TIME_EXCEEDED de cada router.
VisualRoute es una herramienta Visual que no solo obtener información de los
“saltos” sino también la ubicación geográfica e información anexa.
2.6 Servidores accesibles:
El escaneo es equivalente a tocar las paredes para encontrara puertas o
ventanas abiertas. Es importante recordar que el hecho de que una IP este listada
en una transferencia de zona, no significa que esta sea alcanzable vía internet. Se
necesita probar cada sistema objetivo para percibir si esta vivo, y si lo esta, que
puertos tiene activos.
La manera mas básica de mapear una red es realizar un PING automatizado
sobre un rango de direcciones IP
nmap sobre conjunto de direcciones IP
2.7 Rastreo de puertos:
El escaneo de puertos es un proceso de conectar a puertos TCP y UDP de un
sistema objetivo para determinar que servicios están ejecutándose o en estado
“LISTENING”
Identificar puertos “a la escucha” es critico para determinar el tipo de sistema
operativo y aplicaciones utilizadas. Servicios activos que están “escuchando”
pueden permitir acceso no autorizado a usuarios para ganar acceso a sistemas
que estas mal configurados o ejecutando versiones de software que se conocen
tienen vulnerabilidades de seguridad. Las herramientas de escaneo han
evolucionado significativamente con el transcurrir de los años.
Alguno de los objetivos que se persiguen al realizar un escaneo de puertos a un
sistema objetivo, son lo siguientes; pero no limitados a:
Identificar servicios ejecutándose tanto TCP como UDP, sobre el sistema objetivo
Identificar el tipo de sistema Operativo del sistema objetivo.
Identificar aplicaciones especificas o versiones de un servicio particular.
2.8 Rastreo de sistemas operativos:
Es momento de identificar el tipo de sistema Operativo que ha sido objeto del
escaneo. Información sobre un sistema Operativo especifico es de utilidad durante
la fase de mapeo de vulnerabilidades. Es importante recordar que se intenta ser lo
mas preciso posible para determinar las vulnerabilidades asociadas de nuestro
sistema Objetivo. Y se hace necesario poder identificar el Sistema Operativo del
Sistema Objetivo.
Se puede realizar un simple reconocimiento del Sistema Operativo utilizando
técnicas de reconocimiento de “banners”, esto aunado a los la información de
servicios como FTP, SMTP HTTP, POP3, y otros. Este es la manera mas simple
de detectar un sistema operativo y el numero de versión asociado del servicio
ejecutándose. Obviamente existen herramientas que nos ayudan en esta tarea.
Tenemos a nmap y xprobe2
2.9 Rastreadores de red (Sniffers):
Un packet sniffer es un programa de captura de paquetes de red, generalmente
utilizado con fines maliciosos.
Es algo común que, por necesidad material, el medio de transmisión sea
compartido entre varios ordenadores (cable coaxial, UTP, fibra óptica etc.) lo cual
hace posible que un ordenador capture paquetes no destinados a él, para lo cual
el sniffer pone la tarjeta de red en un estado llamado "modo promiscuo". De esta
manera se puede obtener todo tipo de información de cualquier aparato conectado
a la red como contraseñas, correos electrónicos o cualquier otro tipo información
personal (por lo que son muy usados por crackers, aunque también pueden ser
usados para realizar comprobaciones y solucionar problemas en la red de modo
legal por un administrador de dicha red).
Es importante remarcar el hecho de que los sniffer solo pueden ser usados en
redes que compartan el medio de transmisión (generalmente redes de área local)
como en redes sobre cable coaxial, redes sobre cables de par trenzado
conectados a un concentrador o redes WiFi. El uso de switch en lugar de hub
incrementa la seguridad de la red ya que impide el uso de sniffers al no pasar los
paquetes por ordenadores no destinatarios.
Ethereal: Es una herramienta utilizada por profesionales alrededor del mundo para
localizar averías, análisis, desarrollo de software y protocolos, y educación. Posee
todas las características estándar que se desea encontrar en un analizador de
protocolos e incluye varias características que no pueden ser localizadas en otros
productos. Tiene licencia Open Source , permite a talentos en redes de la
comunidad realizar mejoras. Se ejecuta en las más populares plataformas,
incluyendo Unix, Linux, Windows.
2.10 Secuestro y falsificación DNS:
Ataque DNS Spoofing:
DNS Spoofing se describe como un servidor DNS que hace uso de información
falsa recibida desde un host que no es autoridad para la información. Es una
amenaza significativa para la seguridad de las organizaciones que no han tomado
medidas para protegerse de ella. El DNS Spoofing puede permitir a los atacantes
acceder al correo de un sitio, y puede hacer que los usuarios sean redireccionados
a sitios Web incorrectos incluso proporcionando una abertura para un ataque de
Negación de Servicio.
Escenario: La compañía, TAMJTeK Inc., está compitiendo para acabar el
desarrollo del último software de juegos antes de que el capital de la empresa
salga. Se comienza a anunciar el aviso pendiente de una brecha en tecnología de
este juego en el sitio Web de Internet. Usted tiene una llamada de uno de los
socios de la empresa. Ella desea saber por que termina llegando a
www.hackncrack.net cuando intenta llegar a www.tamjtek.com. Usted intenta
conectarse al sitio Web y, seguro, termina llegando a www.hackncrac.net. Usted
prueba algunos otros sitios y todo parece muy bien excepto, que encuentra que su
competidor más fuerte ha anunciado una brecha en el mismo juego. Su sitio Web
demuestra una imagen de su juego, la cual parece notablemente similar a la suya
con aspectos virtualmente idénticos. ¿Coincidencia? Quizás no.
Ataque DNS ID Hacking:
El DNS ID Hacking no es una forma usual de hacking/spoofing o cualquier otro.
Este método se basa en una vulnerabilidad en protocolo del DNS. Más eficaz, el
DNS ID hack/spoof es muy eficiente y muy fuerte porque no hay generación de
demonios de DNS que se escape de ella (incluso WinNT).
Ataque DNS Caché Poisoning:
Siempre que un servidor DNS no tenga la respuesta a una consulta dentro de su
caché, el servidor DNS puede pasar la consulta a otro servidor DNS a nombre del
cliente. Si el servidor pasa la consulta a otro servidor DNS que tenga información
incorrecta, estará colocándola intencionalmente o no intencionalmente, pudiendo
ocurrir entonces un caché poisoning. EL Caché Poisoning es comúnmente referido
como DNS Spoofing.
Por ejemplo, suponga que hay un servidor de nombres, conocido como
dnsobjetivo.com, manteniendo una red de computadoras, como se muestra en la
Figura 1. Estas computadoras son en esencia clientes DNS. Una aplicación en un
sistema cliente, host1, hace una consulta DNS que es enviada a
dnsobjetivo.ejemplo.com. Entonces dnsobjetivo.ejemplo.com examina su caché
para ver si tiene la respuesta a la consulta. Para propósito del ejemplo,
dnsobjetivo.ejemplo.com no es autoritario para el nombre DNS en la consulta ni
tiene la respuesta para la consulta en su caché. Debe enviar la consulta a otro
servidor, llamado dnsinfectado.ejemplo.org. La información en
dnsinfectado.ejemplo.org sucede que es incorrecta, comúnmente debido a la mala
configuración, y la respuesta enviada de regreso a dnsobjetivo.ejemplo.com
contiene información engañosa. Puesto que dnsobjetivo.ejemplo.com esta
almacenando las respuestas, almacena esta información engañosa y envía la
respuesta de regreso a host1. Mientras esta información exista en la caché de
dnsobjetivo.ejemplo.com, todos los clientes, no solo host1, son ahora susceptibles
para recibir esta falsa información.
2.11 Ataques contra servicios con autenticación, fuerza bruta:
Un Ataque por fuerza bruta consiste en probar todos los posibles códigos,
combinaciones o claves, hasta que se obtenga alguna valida. La dificultad de
estos ataques depende de muchos factores, como son:
. La longitud de la “clave”
.Cuantos posibles valores de puede tener cada componente de la clave
.Con que longitud debe tratar de probarse cada clave.
.Existencia de un mecanismo que bloquee al atacante después de un numero de
intentos fallidos
Imagínese un sistema el cual permite códigos de 4 dígitos. Esto significa
que existe un máximo de 10000 posibles combinaciones del PIN. Un ataque por
fuerza bruta, puede siempre ser satisfactoria; eventualmente; sin embargo,
ataques por fuerza bruta contra sistemas con suficientemente sólidas claves,
puede requerir billones de años en ser completadas.
• Ataques por Fuerza Bruta vs. Ataques por Diccionario:
En muchos casos, un ataque por diccionario, puede trabajar mas rápidamente
que un ataque por fuerza bruta, Sin embargo un ataque por fuerza bruta, es
mas certero para alcanzar resultados que un ataque por diccionario.
Entre el software disponible se tiene a hydra; hydra explota uno de los mas
grandes agujeros en la seguridad, que son las contraseñas. Hydra es un
crackeador en paralelo de autenticación, que soporta numerosos protocolos que
pueden ser atacados. Nuevos módulos son fáciles de añadir, esto es flexible y
rápido.
Actualmente la herramienta soporta: Telnet, ftp, http, https, http-proxy, smb,
smbnt, mysql, rexec, rsh, rlogin, cvs, etc, etc.
Esta herramienta es una prueba de concepto, para proporcionar a los
investigadores y consultores de seguridad, la posibilidad de mostrar cuan fácil
puede ser obtener acceso no autorizado remotamente a un sistema.
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética
Criminalística Cibernética

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Sistema Operativo Linux
Sistema Operativo LinuxSistema Operativo Linux
Sistema Operativo Linux
 
Curso básico Linux
Curso básico LinuxCurso básico Linux
Curso básico Linux
 
Instalación de un sistema operativo linux
Instalación de un sistema operativo linuxInstalación de un sistema operativo linux
Instalación de un sistema operativo linux
 
Historia de linux
Historia de linuxHistoria de linux
Historia de linux
 
Diapositivas
DiapositivasDiapositivas
Diapositivas
 
Linux papito
Linux papitoLinux papito
Linux papito
 
CONOCIMIENTOS BASICOS GNU/LINUX
CONOCIMIENTOS  BASICOS GNU/LINUXCONOCIMIENTOS  BASICOS GNU/LINUX
CONOCIMIENTOS BASICOS GNU/LINUX
 
Sistema operativo linux 2016
Sistema operativo linux 2016Sistema operativo linux 2016
Sistema operativo linux 2016
 
Sistema Operativo Linux
Sistema Operativo LinuxSistema Operativo Linux
Sistema Operativo Linux
 
Linux ppt (2)
Linux ppt (2)Linux ppt (2)
Linux ppt (2)
 
Sistema operativo linux
Sistema operativo linuxSistema operativo linux
Sistema operativo linux
 
Linux
LinuxLinux
Linux
 
Historia De Linux
Historia De LinuxHistoria De Linux
Historia De Linux
 
Presentación Linux
Presentación LinuxPresentación Linux
Presentación Linux
 
Linux
LinuxLinux
Linux
 
Sistema gnulinux 1
Sistema gnulinux 1Sistema gnulinux 1
Sistema gnulinux 1
 
Linux windows nieva
Linux windows nievaLinux windows nieva
Linux windows nieva
 
Linux
LinuxLinux
Linux
 
Se libre se linux
Se libre se linuxSe libre se linux
Se libre se linux
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 

Similar a Criminalística Cibernética

Similar a Criminalística Cibernética (20)

Loren
LorenLoren
Loren
 
Presentaciòn grupo 226
Presentaciòn grupo 226Presentaciòn grupo 226
Presentaciòn grupo 226
 
Familia de los sistemas operativos
Familia de los sistemas operativosFamilia de los sistemas operativos
Familia de los sistemas operativos
 
Colegio santa cruz
Colegio santa cruzColegio santa cruz
Colegio santa cruz
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Gnu linox tarea
Gnu linox tareaGnu linox tarea
Gnu linox tarea
 
LINUX
LINUXLINUX
LINUX
 
Sistemas operativos Andrei
Sistemas operativos AndreiSistemas operativos Andrei
Sistemas operativos Andrei
 
Unix
UnixUnix
Unix
 
Yajani cruz
Yajani cruzYajani cruz
Yajani cruz
 
Yajani cruz
Yajani cruzYajani cruz
Yajani cruz
 
Taller basico GNU / Linux
Taller basico GNU / LinuxTaller basico GNU / Linux
Taller basico GNU / Linux
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Museo virtual
Museo virtualMuseo virtual
Museo virtual
 
Sistemas presentacion
Sistemas presentacionSistemas presentacion
Sistemas presentacion
 
Tema3 ssoo
Tema3 ssooTema3 ssoo
Tema3 ssoo
 
Siistemas operatiivos!
Siistemas operatiivos!Siistemas operatiivos!
Siistemas operatiivos!
 
Software linux
Software linuxSoftware linux
Software linux
 
Sistema Operativo Linux
Sistema Operativo LinuxSistema Operativo Linux
Sistema Operativo Linux
 
Tenemaza willian sistemas operativos
Tenemaza willian sistemas operativosTenemaza willian sistemas operativos
Tenemaza willian sistemas operativos
 

Más de Alonso Caballero

Curso Virtual de Hacking Ético
Curso Virtual de Hacking ÉticoCurso Virtual de Hacking Ético
Curso Virtual de Hacking ÉticoAlonso Caballero
 
Curso Virtual Fundamentos de Hacking Web
Curso Virtual Fundamentos de Hacking WebCurso Virtual Fundamentos de Hacking Web
Curso Virtual Fundamentos de Hacking WebAlonso Caballero
 
Webinar Gratuito: Escaneos con Scripts de Nmap para Hacking Web
Webinar Gratuito: Escaneos con Scripts de Nmap para Hacking WebWebinar Gratuito: Escaneos con Scripts de Nmap para Hacking Web
Webinar Gratuito: Escaneos con Scripts de Nmap para Hacking WebAlonso Caballero
 
Curso Virtual Fundamentos de Hacking Ético
Curso Virtual Fundamentos de Hacking ÉticoCurso Virtual Fundamentos de Hacking Ético
Curso Virtual Fundamentos de Hacking ÉticoAlonso Caballero
 
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"Alonso Caballero
 
Curso Virtual Hacking con Kali Linux
Curso Virtual Hacking con Kali LinuxCurso Virtual Hacking con Kali Linux
Curso Virtual Hacking con Kali LinuxAlonso Caballero
 
Webinar Gratuito: "Zenmap para Pentesting"
Webinar Gratuito: "Zenmap para Pentesting"Webinar Gratuito: "Zenmap para Pentesting"
Webinar Gratuito: "Zenmap para Pentesting"Alonso Caballero
 
Curso Virtual Informática Forense
Curso Virtual Informática ForenseCurso Virtual Informática Forense
Curso Virtual Informática ForenseAlonso Caballero
 
Webinar Gratuito: Análisis de Memoria con Autopsy
Webinar Gratuito: Análisis de Memoria con AutopsyWebinar Gratuito: Análisis de Memoria con Autopsy
Webinar Gratuito: Análisis de Memoria con AutopsyAlonso Caballero
 
Curso Virtual de Hacking Aplicaciones Web
Curso Virtual de Hacking Aplicaciones WebCurso Virtual de Hacking Aplicaciones Web
Curso Virtual de Hacking Aplicaciones WebAlonso Caballero
 
Webinar Gratuito: Inyección de Comandos
Webinar Gratuito: Inyección de ComandosWebinar Gratuito: Inyección de Comandos
Webinar Gratuito: Inyección de ComandosAlonso Caballero
 
Curso Virtual de Hacking Ético
Curso Virtual de Hacking ÉticoCurso Virtual de Hacking Ético
Curso Virtual de Hacking ÉticoAlonso Caballero
 
Webinar Gratuito: Nessus Essentials
Webinar Gratuito: Nessus EssentialsWebinar Gratuito: Nessus Essentials
Webinar Gratuito: Nessus EssentialsAlonso Caballero
 
Curso Virtual de Hacking Aplicaciones Web
Curso Virtual de Hacking Aplicaciones WebCurso Virtual de Hacking Aplicaciones Web
Curso Virtual de Hacking Aplicaciones WebAlonso Caballero
 
Vulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones WebVulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones WebAlonso Caballero
 
Curso Virtual Bug Bounty 2022
Curso Virtual Bug Bounty 2022Curso Virtual Bug Bounty 2022
Curso Virtual Bug Bounty 2022Alonso Caballero
 
Curso Virtual Análisis de Malware 2022
Curso Virtual Análisis de Malware 2022Curso Virtual Análisis de Malware 2022
Curso Virtual Análisis de Malware 2022Alonso Caballero
 
Curso Virtual Hacking ICS / SCADA 2022
Curso Virtual Hacking ICS / SCADA 2022Curso Virtual Hacking ICS / SCADA 2022
Curso Virtual Hacking ICS / SCADA 2022Alonso Caballero
 
Curso Virtual OWASP TOP 10 2021
Curso Virtual OWASP TOP 10 2021Curso Virtual OWASP TOP 10 2021
Curso Virtual OWASP TOP 10 2021Alonso Caballero
 
Curso Virtual de Hacking Ético
Curso Virtual de Hacking ÉticoCurso Virtual de Hacking Ético
Curso Virtual de Hacking ÉticoAlonso Caballero
 

Más de Alonso Caballero (20)

Curso Virtual de Hacking Ético
Curso Virtual de Hacking ÉticoCurso Virtual de Hacking Ético
Curso Virtual de Hacking Ético
 
Curso Virtual Fundamentos de Hacking Web
Curso Virtual Fundamentos de Hacking WebCurso Virtual Fundamentos de Hacking Web
Curso Virtual Fundamentos de Hacking Web
 
Webinar Gratuito: Escaneos con Scripts de Nmap para Hacking Web
Webinar Gratuito: Escaneos con Scripts de Nmap para Hacking WebWebinar Gratuito: Escaneos con Scripts de Nmap para Hacking Web
Webinar Gratuito: Escaneos con Scripts de Nmap para Hacking Web
 
Curso Virtual Fundamentos de Hacking Ético
Curso Virtual Fundamentos de Hacking ÉticoCurso Virtual Fundamentos de Hacking Ético
Curso Virtual Fundamentos de Hacking Ético
 
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"
 
Curso Virtual Hacking con Kali Linux
Curso Virtual Hacking con Kali LinuxCurso Virtual Hacking con Kali Linux
Curso Virtual Hacking con Kali Linux
 
Webinar Gratuito: "Zenmap para Pentesting"
Webinar Gratuito: "Zenmap para Pentesting"Webinar Gratuito: "Zenmap para Pentesting"
Webinar Gratuito: "Zenmap para Pentesting"
 
Curso Virtual Informática Forense
Curso Virtual Informática ForenseCurso Virtual Informática Forense
Curso Virtual Informática Forense
 
Webinar Gratuito: Análisis de Memoria con Autopsy
Webinar Gratuito: Análisis de Memoria con AutopsyWebinar Gratuito: Análisis de Memoria con Autopsy
Webinar Gratuito: Análisis de Memoria con Autopsy
 
Curso Virtual de Hacking Aplicaciones Web
Curso Virtual de Hacking Aplicaciones WebCurso Virtual de Hacking Aplicaciones Web
Curso Virtual de Hacking Aplicaciones Web
 
Webinar Gratuito: Inyección de Comandos
Webinar Gratuito: Inyección de ComandosWebinar Gratuito: Inyección de Comandos
Webinar Gratuito: Inyección de Comandos
 
Curso Virtual de Hacking Ético
Curso Virtual de Hacking ÉticoCurso Virtual de Hacking Ético
Curso Virtual de Hacking Ético
 
Webinar Gratuito: Nessus Essentials
Webinar Gratuito: Nessus EssentialsWebinar Gratuito: Nessus Essentials
Webinar Gratuito: Nessus Essentials
 
Curso Virtual de Hacking Aplicaciones Web
Curso Virtual de Hacking Aplicaciones WebCurso Virtual de Hacking Aplicaciones Web
Curso Virtual de Hacking Aplicaciones Web
 
Vulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones WebVulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones Web
 
Curso Virtual Bug Bounty 2022
Curso Virtual Bug Bounty 2022Curso Virtual Bug Bounty 2022
Curso Virtual Bug Bounty 2022
 
Curso Virtual Análisis de Malware 2022
Curso Virtual Análisis de Malware 2022Curso Virtual Análisis de Malware 2022
Curso Virtual Análisis de Malware 2022
 
Curso Virtual Hacking ICS / SCADA 2022
Curso Virtual Hacking ICS / SCADA 2022Curso Virtual Hacking ICS / SCADA 2022
Curso Virtual Hacking ICS / SCADA 2022
 
Curso Virtual OWASP TOP 10 2021
Curso Virtual OWASP TOP 10 2021Curso Virtual OWASP TOP 10 2021
Curso Virtual OWASP TOP 10 2021
 
Curso Virtual de Hacking Ético
Curso Virtual de Hacking ÉticoCurso Virtual de Hacking Ético
Curso Virtual de Hacking Ético
 

Último

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 

Último (10)

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

Criminalística Cibernética

  • 1. 1erCursoInternacionaldeCriminalísticaCibernética Curso: Criminalística Cibernética Modulo: Informática Forense. DocenteResponsable: Alonso Eduardo Caballero Quezada PáginaWeb:http://alonsocaballero.informatizate.net Correoelectrónico:reydes@gmail.com AreadeSistemasdelaCámara de Comercio de la Libertad. BrainBenchCertifiedLinuxAdministration(Advanced) IntegrantedelGrupoPeruanodeSeguridad,Security Wari Projects IntegrantedelGrupodeSeguridaddehablahispana RareGaZz Security Team.. IntegranteyWebMasterdelPortaldeNoticiasdeTrujillo,NoticiasTrujillo. IntegrantedelGrupoinformatizate. NúmerodeHoras: 16HorasAcadémicas. Trujillo – Perú / 2005
  • 2. 1. Definiciones básicas 1.1 Sistemas Operativos: Un sistema operativo (SO) es un conjunto de programas o software destinado a permitir la comunicación del usuario con un ordenador y gestionar sus recursos de manera cómoda y eficiente. Comienza a trabajar cuando se enciende el ordenador, y gestiona el hardware de la máquina desde los niveles más básicos. Hoy en día un sistema operativo se puede encontrar normalmente en ordenadores o productos electrónicos como teléfonos móviles. a. DOS DOS es una familia de sistemas operativos para PC. El nombre son las siglas de Disk Operating System ( sistema operativo de disco). Fue creado originalmente para computadoras de la familia IBM PC, que utilizaban los procesadores Intel 8086/8088 de 16 bits, siendo el primer sistema operativo popular para esta plataforma. Tenía una interfaz de línea de comandos vía su intérprete de comandos, command.com. Existen varias versiones de DOS. El más conocido de ellos es el MS-DOS, de Microsoft (de ahí las iniciales MS). Otros sistemas son el PC-DOS, DR-DOS y, más recientemente, el FreeDOS. Con la aparición de los sistemas gráficos del tipo Windows, el DOS ha ido quedando relegado a un segundo plano. -MSDOS es un sistema operativo de Microsoft perteneciente a la familia DOS. Fue un sistema operativo para el IBM PC que alcanzó gran difusión. MS-DOS significa MicroSoft Disk Operating System (Sistema operativo de disco MicroSoft), antiguamente Microsoft se escribía separado por un guión ("MicroSoft"). Al principio el MS-DOS se almacenaba en un único diskette. - Características: El DOS carece por completo de interfaz gráfica, y no utiliza el ratón. Era incapaz de detectar el hardware (no existía el Plug-and-play), por lo que todo debía ser configurado manualmente. No era ni multiusuario ni multitarea. No podía trabajar con discos duros muy grandes. Originalmente, por limitaciones del software, no podía manejar más de 64KB de memoria RAM. Poco a poco, con las mejoras en la arquitectura de los PCs, llegó primero a manejar 640KB (la llamada "memoria convencional"), y luego hasta 1 MegaByte (agregando a la memoria convencional la "memoria superior" o
  • 3. UMB). Más tarde, aparecieron mecanismos como la memoria extendida (XMS) y la memoria expandida (EMS), que permitían ya manejar varios megabytes. Desde el punto de vista de los programadores, este sistema operativo permitía un control total del ordenador, libre de las capas de abstracción y medidas de seguridad a las que obligan los sistemas multiusuario y multitarea. Así, hasta la aparición del DirectX, y con el fin de aprovechar al máximo el hardware, la mayoría de los videojuegos para PC funcionaban bajo DOS. La necesidad de mantener la compatibilidad con programas antiguos, hacía cada vez más difícil programar para DOS, debido a que la memoria estaba segmentada, es decir, la memoria apuntada por un puntero tenía como máximo el tamaño de un segmento de 64KB. Para superar estas limitaciones del modo real de los procesadores x86, se recurría al modo protegido de los procesadores posteriores (80386, 80486...), utilizando programas extensores que hacían funcionar programas de 32 bits sobre DOS. b. GNU/Linux: GNU/Linux es la denominación defendida por Richard Stallman y otros para el sistema operativo que utiliza el kernel Linux en conjunto con las aplicaciones de sistema creadas por el proyecto GNU. Comúnmente este sistema operativo es denominado simplemente Linux. Desde 1984, Richard Stallman y voluntarios están intentando crear un sistema operativo libre con un funcionamiento similar al UNIX, recreando todos los componentes necesarios para tener un sistema operativo funcional que se convertiría en el sistema operativo GNU. En el comienzo de los años 1990, después de seis años, GNU tenía muchas herramientas importantes listas, como compiladores, depuradores, intérpretes de comando etc, excepto por el componente central: el núcleo. Con el surgimiento del kernel Linux, esta laguna fue llenada y surgió el sistema operativo con el kernel Linux en conjunto con las herramientas GNU. De esta manera, Stallman juzga que este sistema operativo es una "versión modificada" del sistema GNU y por lo tanto debe tener la denominación GNU/Linux. Esta denominación resolvería la confusión entre el núcleo y el sistema operativo completo a que puede llevar, y de hecho ha llevado, la denominación Linux en solitario. Stallman también espera que con el aporte del nombre GNU, se dé al proyecto GNU que él encabeza el reconocimiento que merece por haber creado las aplicaciones de sistema imprescindibles para ser un sistema operativo compatible con UNIX. Es conocida la cita de Richard Stallman: «It's GNU/Linux, dammit!» («¡Es GNU/Linux, maldita sea!»). Richard Stallman ha reconocido que desde que existe Linux el desarrollo de un núcleo específico del proyecto GNU (el Hurd) ya no es prioritario. Esto explica que
  • 4. después de dos décadas desde el anuncio del proyecto GNU, un sistema únicamente GNU no esté acabado. Algunas distribuciones apoyan esta denominación, e incluyen GNU/Linux en sus nombres, tal es el caso de Debian GNU/Linux o GNU/LinEx. En el proyecto Debian también existe Debian GNU/Hurd y Debian GNU/BSD que combinan las aplicaciones de sistema de GNU con esos núcleos. En ocasiones, el proyecto KDE ha utilizado una tercera denominación: GNU/Linux/X para enfatizar los tres proyectos sobre los que se apoya su entorno de escritorio. Algunos sectores de la comunidad de usuarios del sistema operativo han rechazado la denominación GNU/Linux por varias razones, entre ellas que ya se había empezado a denominar Linux al sistema operativo antes de que Richard Stallman promocionase esta denominación. Otras personas se oponen a la postura ideológica de Stallman radicalmente en contra del software no libre y por ello son contrarios al uso de este nombre para evitar la promoción de las ideas del fundador del proyecto GNU. Otros sectores de la comunidad han reconocido la conveniencia de este nombre. Hay que señalar que, al igual que es una simplificación denominar al sistema que usa el usuario final Linux, obviando las aplicaciones GNU que completan el sistema operativo, el conjunto linux+GNU representa solamente una parte (aunque importante) del software encontrado en una distribución Linux. Existe una gran cantidad de software original del sistema operativo BSD o producido independientemente de los proyectos GNU y Linux por otras personas u organizaciones, como por ejemplo Apache, el X Window System, Samba, KDE, OpenOffice.org y miles de otros. - Distribuciones: Una distribución Linux, o distribución GNU/Linux (abreviada con frecuencia distro) es un conjunto de aplicaciones reunidas por un grupo, empresa o persona para permitir instalar fácilmente un sistema Linux (también llamado GNU/Linux). Son 'sabores' de Linux que, en general, se destacan por las herramientas para configuración y sistemas de paquetes de software a instalar. Existen numerosas distribuciones Linux. Cada una de ellas puede incluir cualquier número de software adicional (libre o no), como algunos que facilitan la instalación del sistema y una enorme variedad de aplicaciones, entre ellos, entornos gráficos, suites ofimáticas, servidores web, servidores de correo, servidores FTP, etcétera. La base de cada distribución incluye el núcleo Linux, con las bibliotecas y herramientas del proyecto GNU y de muchos otros proyectos/grupos de software, como BSD. Usualmente se utiliza la plataforma XFree86 o la Xorg para sostener interfaces gráficas (esta última es un fork de XFree86, surgido a raíz del cambio de licencia
  • 5. que este proyecto sufrió en la versión 4.4 y que lo hacía incompatible con la GPL).servidores web, servidores de correo, servidores FTP, etcétera. La base de cada distribución incluye el núcleo Linux, con las bibliotecas y herramientas del proyecto GNU y de muchos otros proyectos/grupos de software, como BSD. Usualmente se utiliza la plataforma XFree86 o la Xorg para sostener interfaces gráficas (esta última es un fork de XFree86, surgido a raíz del cambio de licencia que este proyecto sufrió en la versión 4.4 y que lo hacía incompatible con la GPL). Interfaz de Comandos GNU/Linux Entorno visual en GNU/Linux c. Windows: Microsoft Windows es el nombre de una familia de sistemas operativos no libres desarrollados por la empresa de software Microsoft Corporation. Todos ellos tienen en común el estar basados en una interfaz gráfica de usuario basada en el paradigma de ventanas (de ahí su nombre en inglés). Las versiones de Windows que existen hasta el momento se basan en dos líneas separadas de desarrollo que finalmente convergen en una sola con la llegada de Windows XP. Versiones basadas en MS DOS La primera de esas líneas conformaba la apariencia de un Sistema Operativo, aunque realmente requerían otro sobre el que ejecutarse (MS DOS). Todos los Sistemas Operativos, desde Windows 1.0 a Windows ME necesitaban tener MS DOS instalado, aunque desde la aparición de Windows 95, podía instalarse Windows sobre un disco duro vacío, ya que durante su propia instalación, se
  • 6. instalaba además una versión reducida de MS DOS. La arquitectura de Windows comenzó siendo de 16 bits, hasta Windows 95, donde pasó a funcionar bajo una arquitectura de 32 bits, aunque manteniendo bastantes módulos de 16 bits por razones de compatibilidad. Windows 1.x 3.x, 95, 98, ME Versiones basadas en NT (Network Technology) La segunda linea de desarrollo (NT) se basaba en emplear desde el origen un sistema operativo en modo gráfico y con una arquitectura de 32 bits. Éste Sistema Operativo no requiere tener instalado ningún otro previamente. Incluye en todas sus versiones, un emulador de consola en modo texto. A modo de anécdota, Windows NT 4.0, en origen no era compatible con tarjetas gráficas AGP. Requería la instalación de un Service Pack o conjunto de parches (de la versión 3 en adelante), que permitian su detección y la instalación de sus controladores. Windows NT 3.x, 4. 2000, XP, Server 2003 Pantalla de un Windows 3.11 Pantalla de un Windows XP d. Macintosh: Apple Macintosh (abreviado Mac) es el nombre de una serie de ordenadores fabricados y comercializados por Apple Computer desde 1984. Apple autorizó a otras compañías, como Motorola, Umax o PowerComputing para la fabricación de clones Macintosh en los 90, aunque en la actualidad sólo Apple comercializa ordenadores Macintosh. Los primeros Macintosh estaban basados en los microprocesadores de la familia 68000 de Motorola, de tecnología CISC. En Marzo de 1994, Apple introdujo en la gama Macintosh los chips PowerPC del Consorcio Apple/IBM/Motorola, que
  • 7. suponían el cambio a la tecnología RISC. Desde la introducción de los Power Mac G5 en Junio de 2003, utilizan el PowerPC de IBM. Los Apple Macintosh son comercializados con el sistema operativo Mac OS X, con soporte integrado para el sistema operativo anterior: Mac OS 9, pero también es posible instalar en ellos Linux, NetBSD ó Darwin, entre otros. Pantalla de un Mac e. Novell Netware: Novell NetWare está en el mercado desde 1983, el mismo año en que IBM introdujo la computadora personal IBM XT y el DOS 2.0 para IBM PC. Cada uno de estos productos implantó estándares. El IBM XT fue la primera computadora de IBM que incorporaba un disco fijo, mientras que el DOS 2.0 para el IBM PC fue el primer sistema operativo de disco que controlaba discos fijos sin complementos especiales. Ambos generaron un sistema de estándares para el crecimiento de los PC hacia entornos y aplicaciones más sofisticadas basadas en ellos. NetWare iba a convertirse en el sistema operativo en red a elegir para estos equipos. Novell desarrolló originalmente NetWare para ejecutarse en un servidor basado en el microprocesador Motorola MC68000 usando configuración de red Novell S-Net. La presentación del XT de IBM y la versión 2 del DOS hizo ver a muchas empresas, entre ellas Novell, la oportunidad de desarrollo del producto. Como el código de NetWare estaba escrito en C, que es un lenguaje de los denominados "portables", Novell pudo trasladar parte del código del NetWare existente al nuevo equipo. Como es sabido, el entorno DOS/Intel 8088 no es el mejor para ejecutar aplicaciones multiusuario, especialmente un sistema operativo multiusuario como
  • 8. NetWare. El BIOS (sistema básico de entradas/salidas), desarrollado para el PC original (y necesario con el DOS), está diseñado para monousuario. Novell tomó la importante decisión de dejar de lado completamente este sistema de E/S y crear un sistema operativo que funcionase de forma más efectiva en modo multiusuario. Debido a esto, NetWare se escribió específicamente para el hardware de los sistemas basados en el 8088, sin tener en cuenta el DOS y su sistema de E/S. Esta estrategia fue la que marcó la buena estrella de Novell desde entonces. Otras empresas que han desarrollado sus sistemas operativos de red para funcionar bajo DOS han sufrido sus limitaciones. Las dificultades de Novell estribaron en la necesidad de escribir y actualizar constantemente los controladores para ofrecer compatibilidad con el DOS a los usarios. Estos problemas fueron solventados rápidamente usando un shell para DOS en las estaciones de trabajo. El shell es un interfaz software que permite a los usuarios de las estaciones trabajar con el DOS de forma normal, ejecutando también órdenes NetWare. El shell intercepta las órdenes de la red y las dirige al servidor. Casi todas las aplicaciones del DOS se pueden ejecutar en el sistema operativo NetWare, gracias a su shell para DOS. Además, NetWare incluye programas para seguridad y tolerancia a fallos que son imposibles de preparar en la de estructura de archivos del DOS, marcando un nivel claramente superior. Mientras tanto, Novell siguió mejorando NetWare al ritmo de los avances tecnoló- gicos. NetWare 286 funciona en modo protegido del procesador 80286, el más efi- ciente. En 1989, Novell presentó NetWare 386, el primer sistema operativo que aprovechaba al máximo las ventajas del microprocesador Intel 80386. El 80386 es especialmente adaptable a entornos multiusuario, como las redes. Pantalla de Novell Netware
  • 9. 1.2 Sistemas de Archivos: Un sistema de archivos consta de tipos de datos abstractos, que son necesarios para el almacenamiento, organización jerárquica, manipulación, navegación, acceso y consulta de datos. La mayoría de los sistemas operativos poseen su propio sistema de archivos. Los sistemas de archivos son representados ya sea textual o gráficamente utilizando gestores de archivos o shells. En modo gráfico a menudo son utilizadas las metáforas de carpetas (directorios) conteniendo documentos, archivos y otras carpetas. Un sistema de archivos es parte integral de un sistema operativo moderno. Los sistemas de archivos más comunes utilizan dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamaño, a veces llamados sectores, usualmente de 512 bytes de longitud. El software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados. En la realidad, un sistema de archivos no requiere necesariamente de un dispositivo de almacenamiento de datos, sino que puede ser utilizado también para acceder a datos generados dinámicamente, como los recibidos a través de una conexión de red. Generalmente un sistema de archivos tiene directorios que asocian nombres de archivos con archivos, usualmente conectando el nombre de archivo a un índice en una tabla de asignación archivos de algún tipo, como FAT en sistemas de archivos MS-DOS o los inodos de los sistemas Unix. La estructura de directorios puede ser plana o jerárquica (ramificada o "en árbol"). En algunos sistemas de archivos los nombres de archivos son estructurados, con sintaxis especiales para extensiones de archivos y números de versión. En otros, los nombres de archivos son simplemente cadenas de texto y los metadatos de cada archivo son alojados separadamente. En sistemas de archivos jerárquicos, en lo usual, se declara la ubicación precisa de un archivo con una cadena de texto llamada "ruta". La nomenclatura para rutas varía ligeramente de sistema en sistema, pero mantienen por lo general una misma estructura. Una ruta viene dada por una sucesión de nombres de directorios y subdirectorios, ordenados jerárquicamente de izquierda a derecha y separados por algún caracter especial que suele ser una barra ('/') o barra invertida ('') y puede terminar en el nombre de un archivo presente en la última rama de directorios especificada.
  • 10. Los sistemas de archivos tradicionales proveen métodos para crear, mover y eliminar tanto archivos como directorios, pero carecen de métodos para crear, por ejemplo, enlaces adicionales a un directorio o archivo (enlaces "duros" en Unix) o renombrar enlaces padres (".." en Unix). El acceso seguro a sistemas de archivos básicos puede estar basado en los esquemas de lista de control de acceso o capacidades. Las listas de control de acceso hace décadas que demostraron ser inseguras, por lo que los sistemas operativos experimentales utilizan el acceso por capacidades. Los sistemas operativos comerciales aún funcionan con listas de control de acceso. Sistemas de Archivos populares: a. FAT: (File Allocation Table o "tabla de ubicación de archivos") es el principal sistema de archivos desarrollado para MS-DOS y Windows. El sistema de archivos FAT es relativamente sencillo, y debido a eso es muy popular como formato para disquetes. Adicionalmente, el formato FAT es soportado por casi todos los sistemas operativos para IBM PCs, y debido a esto a menudo se lo utiliza para compartir información entre diversos sistemas operativos. FAT es un sistema de archivos relativamente anticuado, y debido a esto sufre de varios problemas. Para comenzar, su distribución de archivos simple permite la fragmentación, lo que produce eventuales pérdidas en el desempeño de operacio- nes sobre archivos. Luego, FAT no fue diseñado para redundancia en caso de fa- llos del sistema. Las primeras versiones de FAT permitían nombres de archivo de hasta 8+3 caracteres (8 para el nombre y 3 para la extensión) , aunque esto fue solucionado por Microsoft al inventar VFAT, el cual permite nombres de hasta 255 caracteres. Finalmente, los sistemas de archivos FAT no permiten directivas de seguridad, garantizando el acceso a todos los archivos de una partición por cual- quier usuario del sistema operativo. FAT12 A la versión inicial de FAT se le nombra ahora como FAT12. Como sistema de archivos para disquetes, tiene varias limitaciones: no tiene soportes para directorios, las direcciones de clúster tenían una longitud de "sólo" 12 bits (que hacía que el código que manipulaba el FAT fuera un poco delicado) y el tamaño del disco era almacenado como una cuenta de 16 bits de sectores , lo que limitaba el tamaño a 32MB.
  • 11. FAT16 FAT16 es una versión del sistema de archivos FAT que soporta hasta 65.535 unidades de asignación (direccionables con 16 bits, de ahí el nombre) de hasta 32 KB cada una. De todas las unidades de asignación, 18 están reservadas para el sistema. Por lo tanto, el tamaño máximo de una partición que use FAT16 es de unos 2 GB (65.535-18 x 32 KB). Estructura de un Volumen FAT16
  • 12. FAT32 FAT32 es una versión del sistema de archivos FAT que maneja en teoría hasta 4.294.967.296 unidades de asignación (direccionables con 32 bits, de ahí el nombre) de hasta 32 KB cada una. De estos 32 bits de direccionamiento solo se usan 28 (268.435.456 unidades de asignación) y 18 de éstas están reservadas para el sistema. Por lo tanto, el tamaño máximo teórico de una partición que use FAT32 es de unos 8 TB (268.435.456-18 x 32 KB). Pero por problemas en el diseño, algunas de las utilidades de Microsoft para el trabajo con FAT32 están limitadas a 4.177.920 unidades de asignación, lo que hace que en la práctica solo se puedan crear particiones de unos 124 GB. Estructura de un Volumen FAT32 b. NTFS: NTFS (siglas en inglés de New Technology File System) es un sistema de archivos diseñado específicamente para Windows NT, con el objetivo de crear un sistema de archivos eficiente, robusto y con seguridad incorporada desde su base. También soporta compresión nativa de ficheros y encriptación (esto último sólo a partir de Windows 2000). NTFS permite definir el tamaño del cluster, a partir de 512 bytes (tamaño mínimo de un sector) de forma independiente al tamaño de la partición. Es un sistema adecuado para las particiones de gran tamaño requeridas en estaciones de trabajo de alto rendimiento y servidores. Puede manejar discos de hasta 2 Terabytes. Los inconvenientes que plantea son: * Necesita para si mismo una buena cantidad de espacio en disco duro por lo que no es recomendable su uso en discos menores de 400 MB. * No es compatible con MS-DOS, Windows 95 ni Windows 98.
  • 13. * La conversión a NTFS es unidireccional. Si elige actualizar la unidad, no podrá volver a convertirla a FAT. GNU/Linux sólo tiene soporte de lectura para este sistema de ficheros, y de escritura experimental, aunque no se suele activar por defecto. Existe una alternativa Captive-NTFS, que usa las librerías propietarias de Windows NT para tener acceso completo a NTFS. Compatibilidad de Sistemas de Archivos con NTFS y FAT c. EXT2: EXT2 (second extended filesystem o "segundo sistema de archivos extendido") fue el sistema de archivos estándar en el sistema operativo Linux por varios años y continúa siendo ampliamente utilizado. Fue diseñado originalmente por Rémy Card. La principal desventaja de EXT2 es que no posee una bitácora, por lo que muchos de sus usuarios están emigrando a ReiserFS y su sucesor EXT3. Conceptos Básicos: Cada Sistema de archivos en Linux implementa un conjunto básico de conceptos comunes derivados del sistema operativo UNIX, los archivos son representados por “inodos”, directorios son simplemente archivos conteniendo una lista de entradas y los dispositivos puede acceder mediante peticiones de E/S en archivos especiales. Inodos: Cada archivo es representado por una estructura, llamada un inodo, cada inodo contiene la descripción de un archivo: tipo de archivo, permisos de acceso, propietarios, fecha, puntero a bloque de datos. Las direcciones de bloques de datos localizados en un archivo son almacenados en su inodo. Cuando un usuario hace una operación de E/S a un archivo, el código del kernel convierte el desplazamiento actual a un numero de bloque, usando este numero como un índice en la Tabla de direcciones de bloques y lee o escribe en el bloque físico. La siguiente figura representa la estructura de un inodo.
  • 14. Estructura de un inodo -Directorios: Directorios son estructurados en un árbol jerárquico. Cada directorio puede contener archivos y subdirectorios. Son implementados como un tipo especial de archivos. Actualmente, un directorio es un archivo conteniendo una lista de entradas. Cada entrada contiene un numero de inodo y un nombre de archivo. Cuando un proceso usa una ruta, el código del kernel busca en su directorio para encontrar el numero de inodo correspondiente. Después el nombre tiene que ser convertido a un numero de inodo, el inodo es cargado en memoria y es usado para futuras peticiones. Representación de un Directorio -Enlaces: El sistema de archivos UNIX implementa el concepto de enlace, Muchos nombres pueden ser asociados con un inodo. El inodo contiene un campo conteniendo el numero asociado con el archivo. Añadir un enlace simplemente consiste en crear una entrada en el directorio, donde numero de inodo apunta al inodo, e incrementando la cuenta de enlaces en el inodo. Cuando un enlace es borrado; cuando se usa el comando “rm” para remover un archivo; el kernel
  • 15. decrementa la cuenta de enlaces y desaloja el inodo, si la cuenta se convierte en cero. Este tipo de enlaces es llamado un enlace duro y puede ser usado dentro un solo sistema de archivos; es imposible crear un enlace duro entre sistemas de archivos diferentes. Enlaces duros solo pueden apuntar a archivos: un enlace duro a directorio no puede ser creado para prevenir la aparición de un ciclo en el árbol de directorios. Otro tipo de enlaces existe en la mayoría de archivos de sistemas UNIX. Enlaces simbólicos son simplemente archivos que contienen un nombre de archivo. Cuando el kernel encuentra un enlace simbólico durante una ruta a una conversión de inodo, este reemplaza el nombre del enlace por su contenido; por ejemplo; el nombre de un archivo, es decir, el nombre del archivo objetivo, y reinicia la interpretación de la ruta. Dado que un enlace simbólico no apunta a un inodo, es posible crear enlaces simbólicos entre sistemas de archivos diferentes. Enlaces simbólicos pueden apuntar a cualquier tipo de archivo, hasta archivos que no existen. Enlaces simbólicos son muy útiles porque no tienen limitaciones asociadas a los enlaces duros. Sin embargo usan el mismo espacio de disco, localizado por sus inodos y sus bloques de datos, y causa un overhead en la ruta hasta la conversión de inodo porque el kernel reinicia la interpretación del nombre cuando este encuentra un enlace simbólico. -Archivos Especiales de Dispositivos: En los sistemas similares a UNIX, los dispositivos se pueden acceder mediante archivos especiales. Un Archivo de Dispositivo no utiliza espacio en el sistema de archivos. Y tiene solo un punto de acceso al controlador del dispositivo. Dos tipos de archivos especiales existen: archivos especiales de carácter y bloque. El primero permite operaciones de E/S en modo carácter mientras que el ultimo requiere que los datos sean escrito en bloques mediante funciones de un buffer de cache. Cuando una petición de E/S es realizada sobre un archivo especial, este es redireccionado a un (pseudo) controlador de dispositivo. Un archivo especial es referido por un numero mayor, el cual identifica el tipo de dispositivo, y un numero menor, el cual identifica la unida. d. EXT3: EXT3 (third extended filesystem o "tercer sistema de archivos extendido") es un sistema de archivos con registro por diario (en inglés journaling), es un sistema de archivo de registro por diario, por el solo hecho de tener un "espacio apartado para el buffer de journaling". este sistema el cual se encuentra creciendo en popularidad entre usuarios del sistema operativo Linux. A pesar de su menor desempeño y escalabilidad frente a alternativas como ReiserFS o XFS, posee la ventaja de permitir migrar del sistema de archivos EXT2 sin necesidad de reformatear el disco.
  • 16. La única diferencia entre EXT2 y EXT3 es el registro por diario. Un sistema de archivos EXT3 puede ser montado y usado como un sistema de archivos EXT2. Provee escalabilidad en el tamaño del sistema de archivos del disco Nos permite hacer mas y mas grandes sistemas de archivos sin tener la penalidad del sistema de archivos del disco La meta principal es proveer una funcionalidad plena en una sola pieza Otra de las metas es proveer total, absoluta y completa combatibilidad backward y forward entre EXT2 y EXT3. Otra diferencia también importante, es que EXT3 utiliza un arbol binario balanceado (AVL) e. ISO 9660 (sistema de archivos de solo lectura para CD-ROM) El estándar ISO 9660 es una norma publicada inicialmente en 1986 por la ISO, que especifica el formato para el almacenaje de archivos en los soportes de tipo disco compacto. El estándar ISO 9660 define un sistema de archivos para CD- ROM. Su propósito es que tales medios sean leíbles por diferentes sistemas operativos, de diferentes proveedores y en diferentes plataformas, por ejemplo, MS-DOS, Microsoft Windows, Mac OS y UNIX. La norma ISO 9660 es descendiente directa de un esfuerzo de estandarización más temprano llamado 'HSG (acrónimo de High Sierra Group), el cual fue propuesto por un conjunto de actores de la industria que se reunieron en 1985 en el hotel High Sierra, de Lake Tahoe, Nevada. Aunque la ISO aceptó una gran mayoría de las propuestas del HSG, existen algunas diferencias menores.
  • 17. 1.5 Redes de Computadoras: Historia El concepto de trabajo en redes es probablemente tan antiguo como lo es el de las telecomunicaciones. Imagínese por un momento, gente viviendo en la Edad de Piedra, en donde los individuos usen tambores para transmitirse mensajes. Supóngase que un hombre de las cavernas A quiere invitar a otro hombre B a una partida de choques de piedra. Lamentablemente viven tan distantes, que a B le sería imposible escuchar el tambor de A cuando éste lo llame. ¿Qué puede hacer A para remediar esto? Él podría 1) ir caminando al sitio de B, 2) conseguir un tambor más grande, o 3) pedirle a C, quien vive a mitad de camino que reenvíe el mensaje. La tercera elección es denominada Trabajo en Redes. Por supuesto, la humanidad ha avanzado un poco desde la la Edad de Piedra; ya no se usan aquellos primitivos artefactos ni tenemos los mismos inconvenientes que nuestros antepasados. En la actualidad, contamos con computadoras que hablan con otras sobre una colección de cables, fibra óptica, microondas, etc. tan grande como para llenar el estadio en el partido de fútbol de los sábados. A continuación, se hará referencia a los conceptos y métodos que son utilizados para llevar a cabo todo esto. Sin embargo, dejaremos de lado tanto el tema de los cables, como la parte del fútbol. En esta guía se describirán tres tipos de redes. Sin embargo, se discutirá más profundamente TCP/IP puesto que es el protocolo más usado, ya sea en Redes Locales (Local Area Networks, LANs), o en Redes de Área Amplia (Wide Area Networks, WANs), como por ejemplo, Internet. También se echará un vistazo a UUCP e IPX. UUCP fue antiguamente el medio general para transportar las noticias y los mensajes de correo, mediante una conexión telefónica. Es menos usado en estos días, pero sigue siendo útil en muchas situaciones. El protocolo IPX es usado más frecuentemente en los entornos Novell NetWare, y se detallará cómo usarlo para conectar una máquina GNU/Linux a una red Novell. Cada uno de estos protocolos de red son usados para transportar datos entre computadoras. Se discutirá aquí cómo son usados y se hará una introducción a sus principios fundamentales. Se define una red, como una colección de nodos (del inglés hosts), capaces de comunicarse entre sí, a veces confiando en los servicios de un número determinado de máquinas que se encargan de transmitir datos entre quienes que lo demanden. Los nodos son casi siempre computadoras, pero no necesariamente; se puede pensar, sin equivocación, en terminales X o impresoras inteligentes como nodos. Por otro lado, a las pequeñas aglomeraciones de éstos, se las denomina sitios, (sites). La comunicación, sería imposible sin algún tipo de lenguaje o código. En la jerga de las redes de computadoras, estos lenguajes se denominan conjuntamente como protocolos. No obstante, no se debería pensar aquí en lenguajes ya escritos
  • 18. y definidos, sino más bien en el código de comportamiento altamente formalizado, que se observa en una población cuando se reúnen jefes de estado, por citar un ejemplo. Así, los protocolos usados en las redes de computadoras no son más que reglas muy estrictas de intercambio de mensajes entre dos o más servidores. Redes TCP/IP Las aplicaciones modernas para trabajo en redes requieren de un sofisticado mé- todo de transporte desde una máquina a otra. Si usted administra una máquina GNU/Linux que posea muchos usuarios, los cuales desean estar conectados si- multáneamente a un servidor remoto o a una red, necesitará un modo de acceso para que puedan compartir la conexión a la red, sin que las acciones de cada uno interfieran con las de los demás. La estrategia que un gran número de protocolos de red utilizan hoy día se llama conmutación de paquetes, (packet-switching). Un paquete es nada más que un pequeño trozo de datos que se transfiere de una má- quina a otra a través de una red. Esta transferencia ocurre a medida que el data- grama es transmitido a través de cada enlace en la red. Una red de conmutación de paquetes comparte un único enlace con muchos usuarios, enviando los paque- tes alternadamente, desde un usuario a otro, a través de ese enlace. La solución que muchos sistemas Unix, (y posteriormente muchas otras plataformas), han adoptado, se conoce como TCP/IP. Cuando se habla de redes TCP/IP, siempre estará presente el término datagrama. Técnicamente, este término tiene un significado especial, pero es a menudo usado de forma intercambiable con paquete. En la siguiente sección, se echará un vistazo a los conceptos fundamentales de los protocolos TCP/IP. Ethernets El tipo de hardware más utilizado en LANs es lo que comúnmente conocemos como Ethernet. Descrito de una forma simple, consta de un solo cable con los nodos unidos a él a través de conectores, clavijas o transceptores. Los adaptadores Ethernet simples, son relativamente baratos de instalar, lo que unido a un flujo de transferencia neto de 10, 100 o hasta 1,000 Mega bits por segundo, avala gran parte de su popularidad. Las redes Ethernet se pueden clasificar en tres tipos atendiendo al grosor del cable: gruesos, finos, y de par trenzado. Los dos primeros pueden usar cable coaxial, difiriendo en el grosor y el modo de conectar este cable a los nodos. El cable Ethernet fino emplea conectores “BNC” con forma de T, que se pinchan en el cable y se enganchan a los conectores de la parte trasera del ordenador. El cable Ethernet grueso requiere que se realice un pequeño agujero en el cable, y se conecte un transceptor utilizando un “conector vampiro” Luego, se podrán conectar uno o más nodos al transceptor. Los cables Ethernet fino y grueso pueden alcanzar una distancia de 200 y 500 metros, respectivamente, y es por ello que se les llama también 10base-2 y 10base-5. La palabra “base” hace referencia
  • 19. a “modulación de banda base” y significa, simplemente, que los datos que alimentan al cable, fluyen directamente sin pasar por un módem. El número que se encuentra delante de la palabra alude a la velocidad de transmisión, en Mega bits por segundo, mientras que el número al final indica la máxima longitud que se le puede dar al cable, en cientos de metros. El par trenzado usa un cable hecho de dos hilos de cobre. Por lo común necesitan, además, hardware adicional que se conoce como Núcleo Activo. A este Ethernet se le conoce también como 10base- T, en donde “T” significa de par trenzado. Los pares trenzados con velocidad de 100 Mega bits por segundo son conocidos como 100base-T. Para agregar un nodo a una instalación Ethernet fina se deberá suspender el servicio de la red por al menos unos minutos, ya que se deberá cortar el cable para insertar un conector. A pesar de que, por otro lado, agregar un nodo a un sistema Ethernet grueso es un poco complicado no hará, por lo general, que el servicio de la red se interrumpa. Un Ethernet de par trenzado es aún más simple. Usa un dispositivo denominado “hub,” que trabaja como un punto de interconexión. Se pueden insertar y quitar nodos de un núcleo sin interrumpir en absoluto, a ninguno de los demás usuarios. La mayoría de gente prefiere el Ethernet fino porque es barato: las tarjetas de PC pueden encontrarse por unos 30 dollar; americanos (algunas compañías están literalmente, regalándolas), y el cable por pocos centavos el metro. Sin embargo, para instalaciones de gran escala, son más apropiados el Ethernet grueso o el de par trenzado. Por ejemplo, en un principio, el Departamento de Matemáticas de la GMU decidió utilizar el cableado Ethernet grueso, ya que el gran tráfico que posee toda la red a lo largo de su gran recorrido, no se interrumpe cada vez que se añade un nodo. Actualmente, son muy comunes los cables Ethernet de par trenzado en una gran variedad de instalaciones. Los “hubs” son ahora más accesibles, y pequeñas unidades están disponibles a precios que son atractivos, incluso para pequeñas redes domésticas. El cable de par trenzado puede ser significativamente más barato para grandes instalaciones. Además, el mismo cable de par trenzado es mucho más flexible que los coaxiales usados por otros sistemas Ethernet. Los administradores de la red en la división de matemáticas de GMU, están planeando reemplazar su sistema por uno de par trenzado el año que viene, ya que, además de ahorrar tiempo a la hora de agregar nuevos nodos, y cambiar de lugar los viejos, también podrán ponerse al día con la tecnología actual. Uno de los inconvenientes de la tecnología Ethernet es su limitada longitud de cable, que imposibilita cualquier uso fuera de las LANs. Sin embargo, pueden enlazarse varios segmentos de red Ethernet entre sí utilizando repetidores, puentes o encaminadores[2]. Los repetidores simplemente copian las señales entre dos o más segmentos, de forma que todos los segmentos juntos actúan como si fuese una única Ethernet. Debido a requisitos de tiempo, no puede haber mas de cuatro repetidores entre cualquier par de nodos de la red. Los puentes y encaminadores son más sofisticados, analizan los datos de entrada y los reenvían sólo si el nodo receptor no está en la Ethernet local.
  • 20. Ethernet funciona como un sistema de bus, donde un nodo puede mandar paquetes (o marcos) de hasta 1500 bytes a otro nodo de la misma Ethernet. A cada nodo se le asigna una dirección de seis bytes grabada en el firmware (memoria fija) de su tarjeta Ethernet. Estas direcciones se especifican generalmente como una secuencia de números hexadecimales de dos dígitos separados por dos puntos, como por ejemplo aa:bb:cc:dd:ee:ff. Una trama enviada por una estación es vista por todas las demás estaciones conectadas, pero sólo el nodo destinatario la toma y la procesa. Si dos estaciones intentan emitir al mismo tiempo, se produce lo que se llama una colisión. Una colisión en un complejo Ethernet, es detectada electrónicamente por las tarjetas de interfaz. Se resuelve por parte de las dos estaciones abortando el envío, y reintentándolo al cabo de un intervalo de tiempo tomado al azar. Seguramente se han escuchado muchas historias que afirmen que las colisiones en un Ethernet son un problema, y que la verdadera tasa de transmisión de datos en un Ethernet, sólo ocupa un 30 por ciento del ancho de banda disponible debido a ellas. La verdad es que las colisiones en un sistema Ethernet son un fenómeno natural. Es más, en un sistema muy activo, no se debería sorprender al ver que las colisiones tienen un índice mayor al 30 por ciento. En la práctica, el administrador de una red Ethernet sólo debería preocuparse cuando la tasa de transmisión se vea limitada a aproximadamente un 60 por ciento del ancho de banda.[3] El Protocolo IP (Internet Protocol) Por supuesto, el administrador puede no querer que su red esté limitada solamente a una Ethernet, o a un sólo enlace de datos punto-a-punto. Seguramente la idea original consistirá en poder acceder a un servidor sin importar el hardware del que dispone. Por ejemplo, en instalaciones grandes como la Universidad de Groucho Marx, se encontrará muy a menudo con varias redes distanciadas unas de otras, pero conectadas entre ellas de alguna manera. En la GMU, el departamento de matemáticas tiene dos Ethernets: una red de máquinas rápidas para profesores y graduados, y otra con máquinas más lentas para estudiantes. Ambas redes están enlazadas de la red troncal FDDI del campus. Esta conexión se gestiona con un nodo dedicado, denominado pasarela, o gateway, que maneja los paquetes entrantes y salientes copiándolos entre las dos Ethernets y el cable de fibra óptica. Por ejemplo, si se encuentra en el Departamento de Matemáticas, y quiere acceder a quark situada en la LAN del Departamento de Físicas, desde su máquina GNU/Linux, el software de red no puede mandar paquetes a quark directamente, porque no esta en la misma Ethernet. Por tanto, tiene que confiar en la pasarela para que actúe como retransmisor. La pasarela (llamémosla sophus) reenvía entonces estos paquetes a su pasarela homóloga niels del Departamento de Física, usando la red troncal, y por fin niels los entrega a la máquina destino. El flujo de datos entre erdos y quark se muestra en la Figura.
  • 21. Los tres pasos del envío de un datagrama Este esquema de envío de datos al nodo remoto se llama encaminamiento, y en este contexto a los paquetes se les denomina datagramas. Para facilitar las cosas, el intercambio de datagramas esta gobernado por un único protocolo que es independiente del hardware utilizado: IP, o Internet Protocol (Protocolo de Internet). El principal beneficio del IP es su cualidad de convertir a redes físicamente diferentes en una red aparentemente homogénea. A esto se le llama interconexión de redes, y a la resultante “meta-red” se la denomina internet. Obsérvese aquí la sutil diferencia entre una internet y la Internet. El último es el nombre oficial de una internet global en particular. Claro que el IP también necesita un esquema de direccionamiento independiente del hardware. Esto se consigue asignando a cada nodo un número único de 32 bits, denominado dirección IP. Una dirección IP está definida normalmente, por 4 números en decimal, uno por cada división de 8 bits, y separados por puntos. Por ejemplo, quark podría tener una dirección IP 0x954C0C04, que se escribiría como 149.76.12.4. Este formato de dirección, es comúnmente llamado notación decimal de puntos, aunque también puede hacerse referencia a él como notación cuadrangular de puntos. Sin embargo la denominación de IP, está cambiando del nombre de IPv4, (por Internet Protocol, Version 4), a un nuevo estándar llamado IPv6 que ofrece mucha más flexibilidad a la hora de direccionar y otras mejoras modernas. Pasará por lo menos un año tras esta edición, antes de que IPv6 empiece a ser usado. Se dará cuenta de que ahora tenemos tres tipos distintos de direcciones: primero, tenemos el nombre del nodo, como por ejemplo quark, después tenemos las direcciones IP, y por fin están las direcciones hardware, como la dirección Ethernet de 6 bytes. De alguna forma todas ellas deben relacionarse, de modo
  • 22. que cuando se escriba rlogin quark, se le pueda pasar la dirección IP de quark al software de red; y cuando el nivel IP envíe datos a la Ethernet del Departamento de Físicas, de algún modo tenga cómo encontrar a que dirección Ethernet corresponde la dirección IP. El Protocolo de Control de Transmisión, TCP Pero la historia no se acaba con el envío de datagramas de un nodo a otro. Si se registra en quark, necesita disponer de una conexión fiable entre su proceso rlogin en erdos y el proceso del intérprete de órdenes en quark. Así, la información enviada en uno u otro sentido debe dividirse por paquetes en el origen, y ser reensamblada en un flujo de caracteres por el receptor. Esto que parece trivial, implica varias tareas complejas. Una cosa importante a saber sobre IP es que, por sí sólo, no es fiable. Suponga que diez personas de su Ethernet comienzan a transferirse la última versión del código fuente del Navegador web Netscape, usando el servidor FTP de GNU. La cantidad de tráfico generada por esto podría ser excesiva para la pasarela, por ser demasiado lenta, o tener poca memoria. Si en ese momento Ud. enviara un paquete a quark, sophus podría tener agotado el espacio del búfer durante un instante y por tanto no seria capaz de reenviarlo. IP resuelve este problema simplemente descartando el paquete el cual se pierde irrevocablemente. Esto traslada, por consiguiente, la responsabilidad de comprobar la integridad y exactitud de los datos a los nodos extremos, y su retransmisión en caso de error. De este proceso se encarga otro protocolo: el Protocolo de Control de Transmisión, (TCP, Transmission Control Protocol), que construye un servicio fiable por encima de IP. La propiedad esencial de TCP es que usa IP para dar al usuario la impresión de una conexión simple entre los procesos en su equipo y la máquina remota, de modo que no tiene que preocuparse de cómo y sobre el recorrido de los datos a través de la ruta por la que viajan. Una conexión TCP funciona básicamente como una tubería de doble sentido, en la que ambos procesos pueden escribir y leer; Se puede usar la analogía de una conversación telefónica para comprender el funcionamiento de este protocolo. TCP identifica los extremos de una conexión específica por las direcciones IP de los dos nodos implicados, y el número de los puertos de cada nodo. Los puertos se pueden ver como puntos de enganche para conexiones de red. Para seguir utilizando el ejemplo del teléfono un poco más, si pensamos en una analogía entre las ciudades como nodos, se puede comparar las direcciones IP con los prefijos de área (los números representarían ciudades), y los números de puerto con los códigos locales (números que representan teléfonos de personas concretas). Un nodo en particular puede soportar diferentes servicios, cada uno diferenciado por su propio número de puerto.
  • 23. En el ejemplo con rlogin, la aplicación cliente (rlogin) abre un puerto en erdos y se conecta al puerto 513 de quark, en el cual se sabe que el servidor rlogind está escuchando. Esto establece una conexión TCP. Usando esta conexión, rlogind desempeña el procedimiento de autorización para luego, generar un servicio de ontérprete de órdenes. La entrada y salida estándar de la shell se redirigen a la conexión TCP, de tal forma que cualquier cosa que se teclee a rlogin en nuestra máquina será pasada al flujo TCP para ser luego transmitida a la entrada estándar del intérprete de órdenes. El Protocolo de Datagramas de Usuario Sin embargo, TCP no es el único protocolo de usuario en redes TCP/IP. Aunque adecuado para aplicaciones como rlogin, la sobrecarga que impone es prohibitiva para aplicaciones como NFS, la cual utiliza un protocolo derivado de TCP llamado UDP, o User Datagram Protocol (Protocolo de Datagramas de Usuario). De igual modo que TCP, UDP permite que una aplicación contacte con un servicio en un puerto concreto de la máquina remota, pero no establece una conexión para ello. En cambio, se puede usar para enviar paquetes sueltos al servicio destino - de ahí su nombre. Supóngase que se ha solicitado una pequeña cantidad de información de un servidor de base de datos. Esto tomará, al menos tres datagramas para establecer la conexión TCP, otros tres para enviar y confirmar la cantidad de datos y otros tres para cerrar la conexión. UDP nos facilita el hacer la mayor parte de todo esto, pero solamente usando dos datagramas. Este protocolo es caracterizado por tener un método de conexión y desconexión mucho más rápido, y no requiere que el usuario establezca y cierre una conexión. El mecanismo es simple: UDP coloca los datos en un datagrama y lo envía al servidor. Éste realiza un proyecto del reenvío, poniendo los datos dentro de un datagrama direccionado a nuestra máquina, y luego lo transmite. Mientras que este procedimiento es más rápido y más eficiente que el de TCP para transacciones simples, UDP no fue construido para tratar con posibles pérdidas de datos. Lidiar con estas dificultades dependerá de la aplicación en cuestión. Más sobre Puertos Los puertos se pueden ver como puntos de anclaje para conexiones de red. Si una aplicación quiere ofrecer un cierto servicio, se engancha ella misma a un puerto y espera a los clientes (a esto también se le llama escuchar en el puerto). Un cliente que quiera usar este servicio se asigna un puerto libre en su nodo local, y se conecta al puerto del servidor en el nodo remoto. El puerto del servidor podrá ser abierto por diferentes máquinas, pero nunca podrán usarlo más de una al mismo tiempo. Una propiedad importante de los puertos es que, una vez que se ha establecido una conexión entre el cliente y el servidor, otra copia del servidor puede engancharse a su mismo puerto y aguardar a otros clientes. Esto permite, por
  • 24. ejemplo, varios accesos remotos simultáneos al mismo nodo, usando todos ellos el mismo puerto 513. TCP es capaz de distinguir unas conexiones de otras, ya que todas ellas provienen de diferentes puertos o nodos. Por ejemplo, si accede dos veces a quark desde erdos, el primer cliente rlogin usará el puerto local 1023, y el segundo el 1022. Sin embargo, ambos se conectarán al mismo puerto 513 de quark. Las dos conexiones se distinguirán según el puerto que cada una use en erdos. Este ejemplo muestra el uso de puertos como puntos de encuentro, donde un cliente se contacta con un puerto específico para obtener un servicio específico. Para que un cliente pueda conectarse al número de puerto correcto, se ha tenido que llegar a un acuerdo entre los administradores de los dos sistemas para definir la asignación de estos números. Para servicios ampliamente usados, como rlogin, estos números tienen que administrarse de modo universal. Esto lo realiza el IETF (o Internet Engineering Task Force), que regularmente publica un RFC (Request For Comment) denominado Assigned Numbers (Números Asignados, RFC-1700). Describe, entre otras cosas, los números de puerto asignados a servicios reconocidos. GNU/Linux utiliza un archivo para hacer corresponder los nombres con números, llamado /etc/services. Merece la pena indicar que aunque las conexiones TCP y UDP se basan en puertos, estos números no entran en conflicto. Esto significa que el puerto TCP 513, por ejemplo, es diferente del puerto UDP 513. De hecho, estos puertos sirven como puntos de acceso para dos servicios diferentes, como rlogin (TCP) y rwho (UDP). 1.4 Internet: Internet es una red de redes a escala mundial de millones de computadoras interconectadas con el conjunto de protocolos TCP/IP. También se usa este nombre como sustantivo común y por tanto en minúsculas para designar a cualquier red de redes que use las mismas tecnologías que la Internet, independientemente de su extensión o de que sea pública o privada. Al contrario de lo que se piensa comúnmente, "Internet" no es sinónimo de World Wide Web. Ésta es parte de aquella, siendo la World Wide Web uno de los muchos servicios ofertados en la red Internet. La Web es un sistema de información mucho más reciente (1995) que emplea la red Internet como medio de transmisión. Algunos de los servicios disponibles en Internet aparte de la Web son el acceso remoto a otras máquinas (telnet y SSH | ssh), transferencia de archivos (FTP), correo electrónico (SMTP | e-mail), boletines electrónicos (NNTP | news o grupos de noticias), conversaciones en línea (IRC|chat), mensajería instantánea (ICQ, YIM, Jabber), etcétera.
  • 25. Historia de Internet A finales de 1972 se realizó la primera demostración pública de ARPANET, una nueva red de comunicaciones financiada por la DARPA que funcionaba de forma distribuída sobre la red telefónica conmutada. El éxito de esta nueva arquitectura sirvió para que, en 1973, la DARPA iniciara un programa de investigación sobre posibles técnicas para interconectar redes (orientadas al tráfico de paquetes) de distintas clases. Para este fin, desarrollaron nuevos Protocolo|protocolos de comunicaciones que permitiesen este intercambio de información de forma "transparente" para los ordenadores conectados. De la filosofía del proyecto surgió el nombre de "Internet", que se aplicó al sistema de redes interconectadas mediante los protocolos TCP IP|TCP e IP. El 1 de enero de 1983 ARPANET cambió el protocolo NCP por TCP/IP. Ese mismo año, se creó el IAB con el fin de estandarizar el protocolo TCP/IP y de proporcionar recursos de investigación a Internet. Por otra parte, se centró la función de asignación de identificadores en la IANA que, más tarde, delegó parte de sus funciones en el IR que, a su vez, proporciona servicios a los DNS. En 1986 la NSF comenzó el desarrollo de NSFNET que se convirtió en la principal red troncal de Internet, complementada después con las redes NSINET y ESNET, todas ellas en EE.UU. Paralelamente, otras redes troncales en Europa, tanto públicas como comerciales, junto con las americanas formaban el esqueleto básico ("backbone") de Internet. A partir de 1989, con la integración de los protocolos OSI en la arquitectura de Internet, se inició la tendencia actual de permitir no sólo la interconexión de redes de estructuras dispares, sino también la de facilitar el uso de distintos protocolos de comunicaciones. El protocolo de transferencia de archivos (FTP o File Transfer Protocol) es el protocolo estándar en la red para efectuar transferencias de archivos de un servidor a un ordenador o entre ordenadores. En 1989 también, en el CERN de Ginebra, un grupo de Físicos encabezado por Tim Berners-Lee, crearon el lenguaje HTML, basado en el SGML. En 1990 el mismo equipo construyó el primer cliente Web, llamado WorldWideWeb (WWW), y el primer servidor web. Actualmente Internet incluye aproximadamente 5000 redes en todo el mundo y más de 100 protocolos distintos basados en TCP/IP, que se configura como el protocolo de la red. En algunos países el acceso a Internet está restringido únicamente a entidades gubernamentales y empresas extranjeras o fuertemente controlado por el estado.
  • 26. Internet2 es un consorcio de universidades estadounidenses y empresas tecnológicas con el objetivo de crear nuevos protocolos y aplicaciones que mejoren el rendimiento y la calidad que se consigue en la actual Internet. Los miembros de Internet2 han creado la Red Abilene con estas tecnologías. Esta red a menudo se denomina de manera informal, Internet2. Uso de Internet en SudAmerica 1.5 Informática o Computo Forense: Computo Forense es sobre la evidencia de computadoras la cual es suficiente confiable para ser presentada en un juzgado. Es un conjunto de técnicas especializadas que tiene como finalidad la reconstrucción de hechos pasados basados en los datos recolectados, para lo cual se procesa la información que pueda ser usada como evidencia en un equipo de cómputo Computo Forense, es refiere como Análisis de Computo forense, Hallazgo electrónico, Hallazgo de evidencia electrónica, hallazgo digital, Recuperación de Datos, Hallazgo de Datos, Análisis de Computadoras, y examen de computadoras. 1.6 El Investigador Forense: El Perito Forense debe ser un experto en su campo, y ante una juzgado puede ser consultado sobre sus logros personales; Educación recibida y grados
  • 27. realizados, entrenamiento profesional recibido, Certificaciones, detalle de su experiencia, casos en los que haya testificado como experto. 1.7 Seguridad Física y Lógica: Seguridad Física: La seguridad física de los sistemas informáticos consiste en la aplicación de barreras físicas y procedimientos de control como medidas de prevención y contramedidas contra las amenazas a los recursos y la información confidencial. Más claramente, por “seguridad física” podemos entender todos aquellas mecanismos generalmente de prevención y detección destinados a proteger físicamente cualquier recurso del sistema; estos recursos son desde un simple teclado hasta una cinta de backup con toda la información que hay en el sistema, pasando por la propia CPU de la máquina. Protección del Hardware: Acceso Físico Desastres Naturales Desastres del entorno Protección de Datos: Interceptación Copias de Seguridad (backups) Otros elementos Seguridad Lógica: La Seguridad Lógica consiste en la aplicación de barreras y procedimientos que resguardan el acceso a los datos y sólo permiten acceder a ellos a las personas autorizadas para hacerlo. Existe un viejo dicho en la seguridad informática que dicta: "lo que no está permitido debe estar prohibido" y esto es lo que debe hacer ésta seguridad lógica. Los objetivos para conseguirlo son: Restringir el acceso (de personas de la organización y de las que no lo son) a los programas y archivos. Asegurar que los operadores puedan trabajar pero que no puedan modificar los programas ni los archivos que no correspondan (sin una supervisión minuciosa).
  • 28. Asegurar que se utilicen los datos, archivos y programas correctos en/y/por el procedimiento elegido. Asegurar que la información transmitida sea la misma que reciba el destinatario al cual se ha enviado y que no le llegue a otro. Asegurar que existan sistemas y pasos de emergencia alternativos de transmisión entre diferentes puntos. 1.8 Hackers, Crackers, definiciones: - Hacker: (del inglés hack, recortar), también conocidos como white hats (sombreros blancos) o black hats (sombreros negros), según una clasificación de sus acciones (según sean solo destructivas o no, etc.). Su entendimiento es más sofisticado y profundo respecto a los Sistemas informáticos, ya sea de tipo hardware o software. El término "Hacker" trasciende a los expertos relacionados con la informática, para también referirse a cualquier profesional que está en la cúspide de la excelencia en su profesión, ya que en la descripción más pura, un "Hacker" es aquella persona que le apasiona el conocimiento, descubrir o aprender nuevas cosas y entender el funcionamiento de éstas. En definitiva, la versión actual del filósofo. - Cracker: El término deriva de la expresión "criminal hacker", y fue creado alrededor de 1985 por contraposición al termino hacker, en defensa de estos últimos por el uso incorrecto del término. Se considera que la actividad de esta clase de cracker es dañina e ilegal. También se denomina cracker a quien diseña o programa cracks informáticos, que sirven para modificar el comportamiento o ampliar la funcionalidad del software o hardware original al que se aplican, sin que en absoluto pretenda ser dañino para el usuario del mismo. - Phreaker: Un phreaker es una persona que interfiere en los sistemas telefónicos, de forma ilegal, mediante el uso de tecnología para poder obtener algún tipo de beneficio. El término proviene de las palabras phone+phreak+hacker (telefono+loco+hacker) y surgió en los Estados Unidos en los años 60. Durante muchos años los phreakers usaron las llamadas boxes, artefactos que provocaban diversas anomalías en la línea telefónica, estos dispositivos se conocen por un color identificativo -blue boxes, black boxes, beige boxes. En la actualidad, los phreakers tienen también como blanco a la telefonía móvil y a las tecnologías inalámbricas. - Malware: La palabra malware proviene de una agrupación de las palabras malicious software. Este programa o archivo, que es dañino para el ordenador, está diseñado para insertar virus, gusanos, troyanos o spyware intentando
  • 29. conseguir algún objetivo, como podría ser el de recoger información sobre el usuario o sobre el ordenador en sí. Virus: Los virus informáticos utilizan una variedad de portadores. Los blancos comunes son los archivos ejecutables que son parte de las aplicaciones, los documentos que contienen macros, y los sectores de arranque de los discos de 3,1/2 pulgadas. Gusanos (worms): Los gusanos informáticos son similares a los virus, pero los gusanos no dependen de archivos portadores para poder contaminar otros sistemas. Estos pueden modificar el sistema operativo con el fin de auto ejecutarse como parte del proceso de inicialización del sistema. Para contaminar otros sistemas, los gusanos explotan vulnerabilidades del objetivo o utilizan algún tipo de ingeniería social para engañar a los usuarios y poderse ejecutar. Caballos de Troya: Un programa caballo de troya es una pieza de software dañino disfrazado de software legítimo. Los caballos de troya no son capaces de replicarse por si mismos y pueden ser adjuntados con cualquier tipo de software por un programador o puede contaminar a los equipos por medio del engaño. Una puerta trasera es un software que permite el acceso al sistema de la computadora ignorando los procedimientos normales de autenticación. SpyWare: El spyware es todo aquel software que recolecta y envía información de los usuarios. Normalmente trabajan y contaminan sistemas como lo hacen los caballos de troya. 1.9 Conceptos de criptografía: La palabra criptografía deriva del griego kryptos (ocultar) y grafos (escribir), lo cual puede traducirse como escritura oculta, la criptografía es el arte o ciencia de cifrar y descifrar información utilizando técnicas que hagan posible el intercambio de mensajes de manera que sólo puedan ser leídos por las personas a quienes van dirigidos. La criptografía es la ciencia que estudia la transformación de un determinado mensaje en un código de forma tal que a partir de dicho código solo algunas personas sean capaces de recuperar el mensaje original. En general se utiliza para ello una palabra clave o 'password' con la cual se cifra el mensaje, el código resultante solamente puede ser descifrado por aquellos que conozcan el password. La criptografía es una actividad muy antigua: Ya en la época de los griegos se supone que existían métodos para codificar los mensajes que se enviaban a las tropas en regiones alejadas, sin embargo, el primer criptosistema del cual se tienen pruebas de su existencia fue utilizado en la época del imperio romano y se
  • 30. llamaba 'CAESAR' el sistema era utilizado por Julio Cesar para enviar mensajes cifrados a sus allegados mas cercanos, hablaremos del criptosistema 'CAESAR' muy pronto. Junto a la criptografía coexiste necesariamente otra disciplina: el criptoanálisis, mientras que los criptógrafos se encargan de desarrollar criptosistemas cada vez mas seguros y difíciles de descifrar los criptoanalistas tratan de 'romper' un criptosistema obteniendo el mensaje a partir del código cifrado. De estos dos bandos con objetivos diametralmente opuestos siempre se afirma que alguno de los bandos es el 'lado bueno' y el otro inevitablemente 'los chicos malos' estos roles se pueden intercambiar indefinidamente dependiendo de la situación y el contexto en el cual estudiemos el tema. En este texto desarrollaremos la teoría operativa y técnicas mas habituales tanto de los criptógrafos como de los criptoanalistas. Lamentablemente la criptografía y su ciencia paralela el criptoanálisis son disciplinas que experimentan marcados avances en épocas de guerra, allí es necesaria la comunicación de estrategias, planes tácticos e informes super secretos entre las distintas fuerzas de cada bando de forma tal que si el código es interceptado por un eventual enemigo este no pueda hacerse de la información que se envío. La criptografía experimenta su mayor avance durante el transcurso de la segunda guerra mundial en donde adquiere un protagonismo singular, allí, el criptosistema de la maquina alemana 'Enigma' es roto por los criptoanalistas de las fuerzas aliadas siendo éste un factor que contribuyo en gran medida a la victoria final de los aliados. En este caso los criptógrafos alemanes eran los 'malos' y los criptoanalistas aliados eran 'los buenos', pero si nosotros queremos enviar un mensaje secreto a alguien y el mismo resulta publicado en un diario vamos a pensar que los criptoanalistas son personas sumamente viles. Como vemos todo depende de la situación. Afortunadamente la criptografía experimenta su segundo gran auge con la masificación de las comunicaciones digitales y el advenimiento de la era de las computadoras. Hoy en día suele ser necesario enviar y recibir mensajes a través de Internet de forma tal que el mensaje solo pueda ser entendido por alguna persona en particular, por ejemplo si enviamos nuestro numero de tarjeta de crédito queremos que lo obtenga solamente el vendedor y no algún criptoanalista pakistaní que pasaba por allí. En los últimos años la criptografía se ha convertido en una ciencia de enorme importancia y a la cual se le destina cada vez un tratamiento más serio y más científico de forma tal de lograr comunicaciones seguras. Como veremos esto no es una tarea para nada sencilla. a Conceptos de Seguridad en computadoras digitales: Uno de los puntos que siempre estuvo en discusión sobre el almacenamiento de información en computadoras digitales, fue la seguridad de los mismos frente a posibles miradas indiscretas, desde que la primera computadora hizo su aparición
  • 31. en alguna organización militar o gubernamental la necesidad de resguardar la información allí almacenada se hizo evidente. Para proteger la información almacenada se suele recurrir a las denominadas técnicas de encriptación, la encriptación consiste básicamente en convertir un mensaje en otro de forma tal que el mensaje original solo pueda ser recuperado por un determinado grupo de personas que saben como "desencriptar" el mensaje codificado. El esquema básico de encriptación implica la utilización de un password para encriptar de forma tal que solo puedan desencriptar el mensaje aquellos que conocen el password utilizado, esto trae varios problemas como veremos mas adelante. Con el advenimiento de Internet y la masificación absoluta de las comunicaciones la privacidad de los datos se ha vuelto un tema muy en boga en los últimos tiempos, originando todo tipo de problemas que involucran desde el mas simple e inocente usuario de internet hasta las mas altas organizaciones gubernamentales del planeta. En el mundo de las computadoras la criptografía puede ser utilizada para varias cosas, algunas áreas importantes en donde se utiliza la criptografía son: . La encriptación de información 'critica' que debe ser almacenada en computadoras, actos gubernamentales, informaciones secretas, etc. . La encriptación de mensajes enviados a través de redes, redes locales, redes publicas e internet. . La certificación de identidad de quienes envían mensajes importantes a través de internet. . Protección de información 'delicada' que deba enviarse a través de internet como, por ejemplo, números de tarjetas de crédito. . Encriptación de comunicaciones telefónicas, radiales o televisivas que pueden ser interceptadas. b.Encriptación de Datos: Las técnicas de encriptación suelen dividir a los algoritmos en dos grupos: los algoritmos de clave privada y los algoritmo de clave publica. A los algoritmos de clave privada se los llama también algoritmos de encriptación simétricos mientras que los de clave pública suelen denominarse algoritmos antisimétricos. c.Algoritmos de Clave Simétrica: Los algoritmos de clave simétrica, también llamados de clave secreta o privada, son los algoritmos clásicos de encriptación en los cuales un mensaje es encriptado utilizando para ello una cierta clave sin la cual no puede recuperarse el mensaje original. El esquema básico de los algoritmos de clave simétrica es:
  • 32. MENSAJE + CLAVE = CÓDIGO (encriptación) CÓDIGO + CLAVE = MENSAJE (desencriptación) Esto se lleva a cabo sustituyendo porciones del mensaje original por porciones de mensaje encriptado usando la clave. La sustitución puede ser de varias formas: Monoalfabética: Cuando se encripta, cada caracter encriptado corresponde a un caracter del mensaje original y viceversa. Homofónica: Cuando un caracter de texto original se encripta en varios caracteres del texto encriptado. Poligráfica: Cuando n caracteres del mensaje original generan n caracteres del mensaje encriptado. Polialfabética: Cuando n caracteres del texto original se encriptan en m caracteres del texto encriptado (m≠n) . Cabe destacar que la sustitución poligráfica y la sustitución homofónica son casos particulares de la sustitución polialfabética. Criptosistemas Definiremos a un criptosistema como un conjunto de tres elementos: .Un espacio de mensajes: PT que es la colección de todos los posibles mensajes pt que pretendemos enviar. .Un espacio de claves K. Cada clave k determina un método de encriptación Ek y un método de desencriptado Dk. De forma tal que Ek(pt) = código y Dk(código)=pt. .Un espacio de códigos: CT que es la colección de todos los posibles códigos ct. Sistemas Monoalfabéticos y polialfabéticos: Un algoritmo de encriptación por clave privada es monoalfabético si cada ocurrencia de un mismo caracter en el mensaje original es reemplazada siempre por un mismo caracter en el código cifrado. Un algoritmo de encriptación por clave privada es polialfabético si cada ocurrencia de un mismo caracter en el mensaje original es reemplazada por distintos caracteres en el código cifrado.
  • 33. Desarrollaremos a continuación algunos de los criptosistemas de clave privada mas conocidos, desde los más básicos hasta los más complejos. Criptosistema Caesar Criptosistema Hill Criptosistema Afines Criptosistema Playfair Criptosistema DES Deficiencia de los Algoritmos de clave privada: Los algoritmos de clave privada pueden construirse tan eficientes como se desee utilizando passwords mas y mas largos, sin embargo por mas largo que sea el password estos algoritmos presentan una vulnerabilidad evidente: el password. En un esquema de encriptación por clave privada todo aquel que conozca el password es capaz de desencriptar un mensaje, de aquí que a veces, es mas importante estudiar como proteger el password que como trabaja el algoritmo elegido. Además, muchas veces es necesario transmitir, o enviar el password a alguna persona por lo que será necesario a su vez encriptar el password ingresando en un loop infinito. Muchas veces el password es tan vulnerable que los criptoanalistas no se molestan en descifrar el código interceptado sino que directamente intentan averiguar el password. Uno de los ejemplos mas habituales consiste en averiguar passwords que permiten el acceso a determinados sistemas: cuentas bancarias, computadoras, computadoras donde se guardan otros passwords, etc. A continuación mencionamos algunas de las técnicas mas utilizadas para 'robo de passwords'. .Shoulder Surfing: Esta técnica es la más básica y consiste en merodear a aquellas personas que conocen el password que se quiere averiguar intentando ver si se consigue visualizar el momento en que el password es tipeado en un teclado o escrito en algún papel, variantes más modernas de esta técnica incluyen programas residentes que monitorean las teclas que se oprimen en el teclado, cámaras que registran lo que se tipea desde un punto elevado, etc. La forma mas elemental es como su nombre lo indica observar por encima del hombro de la persona que tipea el password, parece tonto pero se utiliza muchísimo. .Caballos de Troya: Los caballos de Troya son programas que se diseñan con el fin específico de robar passwords. El programa es introducido en una computadora y lo que hace es simplemente cada vez que es ejecutado pedirle el password al usuario y si este lo tipea (grave error) guardarlo en un archivo. Luego lo único que hay que hacer es
  • 34. cada tanto consultar el archivo y ver que es lo que nuestro caballo de Troya ha 'pescado'. Una de las reglas de seguridad mas importantes que establecen los administradores de sistemas es adiestrar a los usuarios para que JAMAS ingresen su password una vez que se han logoneado en el sistema, además suele ser recomendable resetear la terminal antes de logonearse al sistema por si el usuario anterior dejo andando un caballo de Troya que imita al programa de login. .Ingeniería Social: Esta disciplina puede parecer ridícula pero es la más exitosa en cuanto a robo de passwords. La Ingeniería Social consiste en conseguir que una persona, simplemente, le diga su password a otra. Las técnicas son de lo mas variadas: llamados telefónicos pidiendo el password pues se cayó un disco y hay que backupear la información de cada usuario, pedidos de password para 'verificaciones rutinarias', encuestas a ver quien tiene el password mas seguro (!!!!), etc, etc... Aunque parezca mentira hay personas realmente especializadas en este tipo de ataques. La importancia del mensaje: Contrariamente a lo que se cree habitualmente, la fuerza de un criptosistema de clave privada no reside únicamente en el algoritmo utilizado, o en la longitud de la clave sino que depende, también, del mensaje a enviar. Hay mensajes que por sus características propias serán mas fáciles de descifrar que otros, dado un mismo criptosistema, por lo tanto a la hora de enviar un texto ultra-secreto debemos tener en cuenta varios factores relacionados con el mensaje en sí. Recomendaciones a la hora de escribir un texto altamente critico que deba ser encriptado por clave privada: .No utilizar espacios en blanco, escribir todo el texto de corrido. Cualquier caracter de alta probabilidad de ocurrencia, como por ejemplo los espacios en blanco, son un punto débil en el mensaje aun cuando se utilice un esquema polialfabético. .Si es muy necesario separar las palabras del mensaje a enviar, utilizar cualquier caracter elegido arbitrariamente en reemplazo del espacio en blanco. .Escribir con mucho cuidado el texto intentando que la distribución de cada caracter utilizado en el texto sea lo mas pareja posible, esto es de gran importancia, evitar el uso de uno o mas caracteres en forma predominante, usar palabras sinónimos, o incluir faltas de ortografía y sintaxis si es necesario. Escribir por ejemplo 'salujdhos pedfdro' que puede ser entendido fácilmente cuando se descifra el código pero podría llegar a complicar sensiblemente el criptoanálisis.
  • 35. .Empezar algunas palabras con caracteres que no tengan sentido alguno como por ejemplo la llave que cierra '}' o un punto y coma ';', esto puede desalentar varios intentos criptoanalíticos correctamente orientados. .Escribir algunas palabras al revés o con todas las vocales al final y las consonantes al principio, una especie de doble codificación. Por ejemplo: 'sldsauo qrdueio pdreo' quiere decir 'saludos querido pedro'. Los criptoanalistas que consideren como factor cierto la alternancia de vocales y consonantes en un texto tendrán problemas para descifrar nuestro mensaje. En algunas palabras se pueden poner todas las vocales al final y en otras todas al principio. .Jamas utilizar dos veces la misma palabra en un texto, aun en sistemas polialfabéticos esto constituye una debilidad. -Escribir todos los mensajes de la forma mas breve que sea posible, evitar el uso de artículos salvo que sean estrictamente necesarios para comprender el texto. Las chances de éxito de un buen criptoanálisis aumentan vertiginosamente a medida que se consigue mas información sobre el mensaje a descifrar. d. Sistemas de clave pública: Los sistemas de encriptación de datos por clave publica han revolucionado el mundo de la criptografía y se han impuesto ampliamente en el mercado de las comunicaciones, la idea aunque sencilla recién surgió en la década del '70, los expertos en criptografía no logran ponerse de acuerdo en cual fue el motivo que demorara tanto el surgimiento de este tipo de sistema de encriptación. La idea de los sistemas de clave publica es sencilla: cada usuario genera 2 (dos) claves: una publica y una privada, el usuario debe conservar su clave privada a salvo mientras que la clave publica es distribuida en forma masiva. El juego de claves funciona de la siguiente forma: los mensajes que son encriptados con la clave publica de un usuario solo pueden ser desencriptados con la clave privada del mismo. El algoritmo de encriptación es publico, de forma tal que cualquiera pueda encriptar un mensaje, el algoritmo de desencriptación debe de forma tal que sin la clave privada sea muy difícil desencriptar el código mientras que con la clave privada esto es una tarea sencilla. Todos los algoritmos de encriptación por clave publica se basan en algún problema en general de tipo matemático de cuyo tiempo de resolución no pueda establecerse una cota inferior. RSA:
  • 36. El algoritmo de clave publica más probado y utilizado en todo el mundo es el algoritmo RSA, denominado así debido a sus autores: Rivest, Shamir y Adleman. Está basado en una idea asombrosamente sencilla de la teoría de números y hasta la fecha ha resistido todo tipo de ataques criptoanalíticos. La idea es simple: dados dos números primos p y q muy grandes es sencillo a partir de p y q hallar su producto (p*q) pero es un problema muy complejo a partir del producto hallar los números p y q en cuestión. Si bien hasta el momento no se ha podido demostrar que la factorización prima de un numero es un problema NP- complejo, todos los intentos realizados para factorizar un número en forma veloz han fracasado. Criptoanálisis: Las técnicas criptoanalíticas más utilizadas contra el RSA, aunque sin éxito, consisten en intentar factorizar el numero "n" que se distribuye en la clave publica averiguando de esta forma los números p y q. Debido a que no existen algoritmos eficientes para factorizar un número, el problema de descomponer un numero muy grande insume un tiempo tan elevado que los ataques mas sofisticados contra el RSA han fallado (o casi...) El algoritmo RSA sin embargo presenta una vulnerabilidad: hay una leyenda que indicaría que el algoritmo es vulnerable. Y la clave de todo se la ha llevado a la tumba (una vez más) el misterioso Fermat. PGP (Prett Good Privacy): En esta sección analizamos el programa más utilizado para encriptar y desencriptar datos mediante algoritmos de clave publica. El PGP se utiliza en internet y en casi todas las redes de mensajería cada vez que quiere transmitirse información privada. PGP es un producto de distribución libre, es distribuido con sus fuentes y su distribución le ha causado a su autor Philip Zimmerman más de un problema como veremos más adelante. PGP trabaja con el algoritmo RSA utilizando claves de 256,512 o 1024 bytes según el nivel de seguridad que se necesite, las claves de 1024 bytes superan ampliamente los mas estrictos requisitos militares sobre seguridad criptográfica. PGP genera las claves públicas y privadas del usuario utilizando un algoritmo muy avanzado de pseudoaleatorización que mide los tiempos transcurridos entre lo que se tipea en un teclado. (PGP solicita al usuario que tipee durante un cierto tiempo en la pantalla) o los movimientos del mouse (se solicita al usuario que lo mueva aleatoriamente durante cierto tiempo).
  • 37. La clave publica queda grabada en el disco y lista para ser distribuida, la clave privada se almacena también en el disco, PGP en sus manuales destaca que el acceso a la computadora donde se almacena la clave privada debe restringirse en forma drástica pues el conseguir la clave privada anula todo el sistema, el autor recomienda el uso de dispositivos que distorsionen las señales de radio en el ambiente donde reside la computadora pues existen dispositivos ultra-avanzados de las agencias gubernamentales que permiten leer la información de un disco a distancia mediante ondas de radio (!!). Las claves publicas que nos envían otros usuarios son almacenadas en un conjunto de claves publicas (Public-key-ring) sobre el cual se pueden realizar altas, bajas y modificaciones. Cuando un usuario le envía a otro su clave pública, por ejemplo a través de internet, el usuario que recibe la clave suele querer chequear que la clave publica recibida sea la del usuario que el quiere y no cualquier otra. Para ello PGP permite extraer de cada clave publica un numero conocido como 'FINGERPRINT' el Fingerprint puede ser chequeado telefónicamente o personalmente, y si coincide puede certificarse que la clave publica es de quien dice ser. (Cualquier cambio en la clave publica modifica el Fingerprint). El fingerprint se calcula hasheando la clave publica. PGP dispone de varias opciones interesantes: Envío del mensaje en forma clásica: Este esquema sigue el mecanismo clásico de la encriptación por clave publica, el mensaje es encriptado usando la clave publica de un determinado usuario de forma tal que solo pueda ser desencriptado por la clave privada del mismo. Certificación de mensajes: Esta es una utilidad muy recomendable, y sirve para que un usuario firme un mensaje de forma tal que se pueda autenticar su autoría. Lo que hace el PGP es primero extraer un 'concentrado' del mensaje sometiéndolo a una función de hashing, luego el concentrado es encriptado con la clave privada del usuario y agregado al final del mensaje. Cuando el mensaje es recibido por un usuario la firma digital es desencriptada usando la clave pública del usuario y luego el mensaje es sometido a la función de hashing, si el concentrado coincide con el concentrado desencriptado del mensaje entonces el mensaje fue escrito por quien dice ser, de lo contrario o bien fue escrito por otra persona o bien fue modificado el texto del mensaje. Los mensajes certificados a su vez pueden ser encriptados para que solo puedan ser leídos por una cierta persona. Notar que la certificación utiliza el juego de claves en forma inversa al uso normal de las mismas.
  • 38. Mensaje solo para tus ojos: Esta opción del PGP permite encriptar un mensaje para una cierta persona de forma tal que cuando esta lo desencripte usando su clave privada el texto del mensaje solo se pueda ver en pantalla y no pueda ser grabado en un archivo, esta opción otorga una seguridad extra a quien envía el mensaje y tiene miedo que el usuario que lo recibe lo trate en forma descuidada dejándolo por allí. Borrado especial del archivo a encriptar: Cuando se quiere encriptar un mensaje muy critico que esta escrito en un archivo, PGP dispone de la opción de eliminar el archivo original del disco una vez encriptado. PGP no utiliza un borrado común del archivo sino que sobreescribe el área del disco con sucesivas pasadas de unos, ceros y unos y ceros alternados en forma random, esto lo hace varias veces. El algoritmo de borrado del PGP asegura que la información no podrá ser recuperada del disco. (Si el algoritmo no es lo suficientemente seguro el análisis de trazas magnéticas del disco puede permitir recuperar la información). PGP es un programa sumamente seguro y es utilizado en todo el mundo para el envío de e-mail en forma segura y la certificación de mensajes de importancia. e. Criptografía Cuántica: La criptografía cuántica es una nueva área dentro de la criptografía que hace uso de los principios de la física cuántica para transmitir información de forma tal que solo pueda ser accedida por el destinatario previsto. Para poder llegar a explicar los detalles de la criptografía cuántica se necesitan establecer algunos conceptos básicos de criptografía y física cuántica que serán de ayuda para la comprensión del tema. Pero antes que nada se expone el problema que la criptografía cuántica intentará solucionar. En general observar un sistema cuántico perturba al mismo, e impide que el observador conozca su estado exacto antes de la observación. Por lo tanto, si un sistema cuántico es utilizado para transferir información, alguien que quiera espiar la comunicación, o incluso el receptor previsto, podría verse impedido de obtener toda la información enviada por el emisor. Este rasgo negativo de la mecánica cuántica, conocido como principio de incertidumbre de Heisenberg, recientemente ha encontrado un uso positivo en el área de las comunicaciones privadas y seguras. 2. Como se producen los ataques y delitos informáticos. 2.1 Seguridad en los servidores Internet: Mientras que el computo forense en un ocupación reciente, tiene relación con muchos precursores en tecnologías de información. Estas disciplinas padre no
  • 39. solo incluyen la teoría y la practica de hardware, software y programación, sino también notablemente Seguridad de computo, que ha madurado junto con la tecnología de información para ayudar a proteger, no solo contra ataques, sino también contra errores y accidentes. Hay dos importante observaciones que vienen a la mente sobre ésta relación entre el computo forense y la seguridad de computadoras. Primero, las redes remotas y empresas en línea, después del año 1991, ha hecho cada vez mas difícil establecer el alcance de una política de seguridad. Antes era posible maquetar un limite alrededor de las operaciones, para distinguir entre “los de dentro”, quienes estaban permitidos de usar el sistema y los “de afuera”, quienes no estaban permitidos, y enfocarse en la construcción de limites seguros. Esta distinción ha llegado a no tener sentido, tanto como las empresas y los órganos del gobierno arremeten para establecer su presencia en internet. Ahora el enfoque se ha desplazado a rol de las aplicaciones, el lugar donde los roles son permitidos están descritos en términos de derechos de acceso en jerarquías. Segundo asesores de riesgo siempre tienen que advertir la actuación de estos “intrusos” evitando el inadecuado monitoreo de roles, quienes probablemente comenten la mayor parte de crímenes de computadora, se estima el 80%. El objetivo de la seguridad de computadoras en sus sentido mas amplio es preservar un sistema; como es su significado; especificamentem como las politicas de seguridad dictan. Computo forense, o al menos forense de intrusion, explica como las politicas son violadas, un proceso puede revelar los agujeros fatales en las politicas mismas. Existen algunas razones para la discrepancia seguridad / forense: 2.2 Area de Actividades: Uno de los primeros pasos es determinar el área de las actividades. Se desea identificar enteramente a la organización o los limites de las actividades en ciertas áreas.. En algunos casos puede resultar un poco complicado determinar todas las entidades asociadas a la organización objetivo. Los proveedores de internet contienen conjuntos de recursos que se pueden utilizar para el area de actividades y también proporciona algo más; como el tipo y cantidad de información publica disponible sobre la organización y los empleados. La pagina web de una organización puede proporcionar una cantidad de información que puede ser de ayuda a los atacantes, como por ejemplo: Lugares Entidades o empresas relacionadas Noticias de adquisiciones Números telefónicos Nombre de contacto y direcciones de correo electrónico
  • 40. Políticas de seguridad y privacidad indicando el tipo de mecanismo de seguridad en el lugar Enlaces a otros servidores web, relacionados con la organización. Consulta Google, para enlaces a dominio especificado 2.3 Información general del objetivo (Web, Whois, news): Aquí se inicia el proceso de enumeración para identificar los nombres de dominio y redes asociadas, que se relacionan a una organización en particular. Los nombres de dominio representan la presencia de la empresa en internet y son el equivalente en internet al nombre de la empresa, como “JugosDel.com” o “hansgross.com” Para enumerar los dominios e iniciar a descubrir la redes anexas al objetivo, se debe escudriñar la internet. Existen multiples bases de datos “whois” que pueden ser consultadas para proporcionar información sobre cada entidad que se desea invetigar. En los años 1999 la empresa network solutions tenia el monopolio de los registro de dominios y mantenia esta inforamcion en sus servidores “whois”. Este monopolio fue disuelto y actualmente hay una multitud de registradores acreditados. Y se hace necesario realizar la consulta al registrador adecuado, para obtener la información que se requiera.
  • 41. Existen diferentes mecanismos, pare realizar las consultas a las diferentes bases de datos “whois“. En cualquier caso siempre se debe de obtener la misma información Interface Web: http://www.networksolutions.com/ http://www.arin.net Cliente WHOIS: dig, host, nslookup (GNU/Linux) SamSpade (Windows) http://www.samspade.org/ Consulta vía Web a una Base de Datos WHOIS
  • 42. Consulta a una Base de Datos WHOIS via consola Diversa información puede ser obtenida con cada consulta realizada. Los siguiente tipos de consulta proporcionan la mayoría de información que un atacante puede utilizar: Registrante (información del registrador y servidores whois asociados) Organización (información relacionada con la organización) Dominio (información relacionada con un dominio en particular) Red (información relacionada a una red particular o una simple dirección IP) Punto de Contacto (información de una persona especifica, contacto administrativo) 2.4 Interrogación a DNS: Después de indentificar los dominios asociados, se inicia la consulta a los DNS. DNS es una base de datos distribuida utilizado para mapear direcciones IP a nombres de dominios y viceversa. Si el DNS esta configurada de manera insegura, es posible obtener una revelación de información sobre la organización. Una de los mas comunes errores de configuración de los administradores de sistemas es permitir a usuarios no permitidos realizar transferencias de zonas. Una transferencia de zona, permite a un servidor maestro secundario actualizar su base de datos de zonas desde el servidor primario. Un medio simple para realizar estas consultas en con el comando “host”:
  • 43. 2.5 Reconocimiento de la Red: Cuando se han identificado potenciales Redes, se intenta determinar la topología de la Red y tambien las posibles rutas hacia la Red. Para realizar esta tarea, se puede usar “traceroute”, el cual puede encontrarse con la mayoria de sistemas GNU/Linux y tambien para sistemas Windows. Tracerote es una herramienta de diagnostico que permite ver la ruta que un paquete IP sigue de un host a otro. Usa la opción TTL (tiempo de vida) en el paquete IP para obtener un mensaje ICMP TIME_EXCEEDED de cada router.
  • 44. VisualRoute es una herramienta Visual que no solo obtener información de los “saltos” sino también la ubicación geográfica e información anexa.
  • 45. 2.6 Servidores accesibles: El escaneo es equivalente a tocar las paredes para encontrara puertas o ventanas abiertas. Es importante recordar que el hecho de que una IP este listada en una transferencia de zona, no significa que esta sea alcanzable vía internet. Se necesita probar cada sistema objetivo para percibir si esta vivo, y si lo esta, que puertos tiene activos. La manera mas básica de mapear una red es realizar un PING automatizado sobre un rango de direcciones IP nmap sobre conjunto de direcciones IP 2.7 Rastreo de puertos: El escaneo de puertos es un proceso de conectar a puertos TCP y UDP de un sistema objetivo para determinar que servicios están ejecutándose o en estado “LISTENING” Identificar puertos “a la escucha” es critico para determinar el tipo de sistema operativo y aplicaciones utilizadas. Servicios activos que están “escuchando” pueden permitir acceso no autorizado a usuarios para ganar acceso a sistemas que estas mal configurados o ejecutando versiones de software que se conocen tienen vulnerabilidades de seguridad. Las herramientas de escaneo han evolucionado significativamente con el transcurrir de los años.
  • 46. Alguno de los objetivos que se persiguen al realizar un escaneo de puertos a un sistema objetivo, son lo siguientes; pero no limitados a: Identificar servicios ejecutándose tanto TCP como UDP, sobre el sistema objetivo Identificar el tipo de sistema Operativo del sistema objetivo. Identificar aplicaciones especificas o versiones de un servicio particular. 2.8 Rastreo de sistemas operativos: Es momento de identificar el tipo de sistema Operativo que ha sido objeto del escaneo. Información sobre un sistema Operativo especifico es de utilidad durante la fase de mapeo de vulnerabilidades. Es importante recordar que se intenta ser lo mas preciso posible para determinar las vulnerabilidades asociadas de nuestro sistema Objetivo. Y se hace necesario poder identificar el Sistema Operativo del Sistema Objetivo. Se puede realizar un simple reconocimiento del Sistema Operativo utilizando técnicas de reconocimiento de “banners”, esto aunado a los la información de servicios como FTP, SMTP HTTP, POP3, y otros. Este es la manera mas simple de detectar un sistema operativo y el numero de versión asociado del servicio ejecutándose. Obviamente existen herramientas que nos ayudan en esta tarea. Tenemos a nmap y xprobe2
  • 47. 2.9 Rastreadores de red (Sniffers): Un packet sniffer es un programa de captura de paquetes de red, generalmente utilizado con fines maliciosos. Es algo común que, por necesidad material, el medio de transmisión sea compartido entre varios ordenadores (cable coaxial, UTP, fibra óptica etc.) lo cual hace posible que un ordenador capture paquetes no destinados a él, para lo cual el sniffer pone la tarjeta de red en un estado llamado "modo promiscuo". De esta manera se puede obtener todo tipo de información de cualquier aparato conectado a la red como contraseñas, correos electrónicos o cualquier otro tipo información personal (por lo que son muy usados por crackers, aunque también pueden ser usados para realizar comprobaciones y solucionar problemas en la red de modo legal por un administrador de dicha red). Es importante remarcar el hecho de que los sniffer solo pueden ser usados en redes que compartan el medio de transmisión (generalmente redes de área local) como en redes sobre cable coaxial, redes sobre cables de par trenzado conectados a un concentrador o redes WiFi. El uso de switch en lugar de hub incrementa la seguridad de la red ya que impide el uso de sniffers al no pasar los paquetes por ordenadores no destinatarios. Ethereal: Es una herramienta utilizada por profesionales alrededor del mundo para localizar averías, análisis, desarrollo de software y protocolos, y educación. Posee todas las características estándar que se desea encontrar en un analizador de
  • 48. protocolos e incluye varias características que no pueden ser localizadas en otros productos. Tiene licencia Open Source , permite a talentos en redes de la comunidad realizar mejoras. Se ejecuta en las más populares plataformas, incluyendo Unix, Linux, Windows. 2.10 Secuestro y falsificación DNS: Ataque DNS Spoofing: DNS Spoofing se describe como un servidor DNS que hace uso de información falsa recibida desde un host que no es autoridad para la información. Es una amenaza significativa para la seguridad de las organizaciones que no han tomado medidas para protegerse de ella. El DNS Spoofing puede permitir a los atacantes acceder al correo de un sitio, y puede hacer que los usuarios sean redireccionados a sitios Web incorrectos incluso proporcionando una abertura para un ataque de Negación de Servicio. Escenario: La compañía, TAMJTeK Inc., está compitiendo para acabar el desarrollo del último software de juegos antes de que el capital de la empresa salga. Se comienza a anunciar el aviso pendiente de una brecha en tecnología de
  • 49. este juego en el sitio Web de Internet. Usted tiene una llamada de uno de los socios de la empresa. Ella desea saber por que termina llegando a www.hackncrack.net cuando intenta llegar a www.tamjtek.com. Usted intenta conectarse al sitio Web y, seguro, termina llegando a www.hackncrac.net. Usted prueba algunos otros sitios y todo parece muy bien excepto, que encuentra que su competidor más fuerte ha anunciado una brecha en el mismo juego. Su sitio Web demuestra una imagen de su juego, la cual parece notablemente similar a la suya con aspectos virtualmente idénticos. ¿Coincidencia? Quizás no. Ataque DNS ID Hacking: El DNS ID Hacking no es una forma usual de hacking/spoofing o cualquier otro. Este método se basa en una vulnerabilidad en protocolo del DNS. Más eficaz, el DNS ID hack/spoof es muy eficiente y muy fuerte porque no hay generación de demonios de DNS que se escape de ella (incluso WinNT). Ataque DNS Caché Poisoning: Siempre que un servidor DNS no tenga la respuesta a una consulta dentro de su caché, el servidor DNS puede pasar la consulta a otro servidor DNS a nombre del cliente. Si el servidor pasa la consulta a otro servidor DNS que tenga información incorrecta, estará colocándola intencionalmente o no intencionalmente, pudiendo ocurrir entonces un caché poisoning. EL Caché Poisoning es comúnmente referido como DNS Spoofing. Por ejemplo, suponga que hay un servidor de nombres, conocido como dnsobjetivo.com, manteniendo una red de computadoras, como se muestra en la Figura 1. Estas computadoras son en esencia clientes DNS. Una aplicación en un sistema cliente, host1, hace una consulta DNS que es enviada a dnsobjetivo.ejemplo.com. Entonces dnsobjetivo.ejemplo.com examina su caché para ver si tiene la respuesta a la consulta. Para propósito del ejemplo, dnsobjetivo.ejemplo.com no es autoritario para el nombre DNS en la consulta ni tiene la respuesta para la consulta en su caché. Debe enviar la consulta a otro servidor, llamado dnsinfectado.ejemplo.org. La información en dnsinfectado.ejemplo.org sucede que es incorrecta, comúnmente debido a la mala configuración, y la respuesta enviada de regreso a dnsobjetivo.ejemplo.com contiene información engañosa. Puesto que dnsobjetivo.ejemplo.com esta almacenando las respuestas, almacena esta información engañosa y envía la respuesta de regreso a host1. Mientras esta información exista en la caché de dnsobjetivo.ejemplo.com, todos los clientes, no solo host1, son ahora susceptibles para recibir esta falsa información.
  • 50. 2.11 Ataques contra servicios con autenticación, fuerza bruta: Un Ataque por fuerza bruta consiste en probar todos los posibles códigos, combinaciones o claves, hasta que se obtenga alguna valida. La dificultad de estos ataques depende de muchos factores, como son: . La longitud de la “clave” .Cuantos posibles valores de puede tener cada componente de la clave .Con que longitud debe tratar de probarse cada clave. .Existencia de un mecanismo que bloquee al atacante después de un numero de intentos fallidos Imagínese un sistema el cual permite códigos de 4 dígitos. Esto significa que existe un máximo de 10000 posibles combinaciones del PIN. Un ataque por fuerza bruta, puede siempre ser satisfactoria; eventualmente; sin embargo, ataques por fuerza bruta contra sistemas con suficientemente sólidas claves, puede requerir billones de años en ser completadas. • Ataques por Fuerza Bruta vs. Ataques por Diccionario: En muchos casos, un ataque por diccionario, puede trabajar mas rápidamente que un ataque por fuerza bruta, Sin embargo un ataque por fuerza bruta, es mas certero para alcanzar resultados que un ataque por diccionario. Entre el software disponible se tiene a hydra; hydra explota uno de los mas grandes agujeros en la seguridad, que son las contraseñas. Hydra es un crackeador en paralelo de autenticación, que soporta numerosos protocolos que pueden ser atacados. Nuevos módulos son fáciles de añadir, esto es flexible y rápido. Actualmente la herramienta soporta: Telnet, ftp, http, https, http-proxy, smb, smbnt, mysql, rexec, rsh, rlogin, cvs, etc, etc. Esta herramienta es una prueba de concepto, para proporcionar a los investigadores y consultores de seguridad, la posibilidad de mostrar cuan fácil puede ser obtener acceso no autorizado remotamente a un sistema.