Mostrando entradas con la etiqueta sistemas operativos. Mostrar todas las entradas
Mostrando entradas con la etiqueta sistemas operativos. Mostrar todas las entradas

miércoles, 18 de mayo de 2016

Toolkits para hacking (I): Sistemas operativos seguros

Muy buenas a todos,

Hoy me estreno en el blog con un completo listado de todas las opciones que existen para ser un poco más seguro en cuanto a sistemas operativos se refiere.

Introducción


La seguridad se ha transformado en un tema de actualidad, sobre todo en los últimos años. Por ello, los usuarios deberían de tenerla en un lugar privilegiado junto a otras características buscadas como el rendimiento, la usabilidad, etc. La falta de seguridad implica que estemos expuestos a ataques de ciberdelincuentes (que no hackers) y espionaje gubernamental.

Aunque no existe un sistema seguro 100%, mejor tener un sistema cuyo porcentaje de seguridad sea más elevado. Y aunque haya más sistemas de los que aquí presentamos, me gustaría resaltar los que son de código abierto y más accesibles para cualquier de nosotros. Por tanto vamos a obviar Solaris y sus Trusted Extensions, que por cierto alcanzó certificaciones myy altas en seguridad debido a las mejoras introducidas como el manejo de permisos de procesos y usuarios, contenedores, protección para sistemas de archivos y redes, etc.

Tampoco me gustaría listar otros sistemas poco conocidos o no tan extendidos como como: EROS (Extremely Reliable Operating System) con continuó su desarrollo desde 1991 hasta 2005; su evolución de código abierto CapROS (Capability-based Reliable Operating System) que continuó su trabajo; o incluso los microkernels L4 (los desarrolladores del proyecto GNU Hurd lo consideraron como sustituto del núcleo Mach, aunque no fue implantado), creados por le alemán Jochen Liedtke y centrados en aportar seguridad, aislamiento y robustez. Aunque si está bien que se sepa al menos que existen o incluso como objeto de estudio teórico por lo que puedan aportar...

Distribuciones Linux seguras

Existen multitud de distros orientadas a obtener mayor seguridad y/o privacidad. Las más conocidas y recomendables son:

Alpine Linux: 


Una distro ligera (basada en la biblioteca musl libc y la “navaja suiza” busybox) y que usa parches PaX/grsecurity en su kernel Linux de manera predeterminada. Además compila todos los paquetes que usa con protección “stack-smashing”, es decir, protegidos contra desbordamiento de buffer para que este tipo de problemas no puedan ser aprovechados por un atacante. Si te interesa, puedes descargarla desde la web oficial.

Hardened Gentoo: 

Como su propio nombre indica es un Gentoo Linux enfocado a mejorar su seguridad. Para ello hace uso de SELinux, RSBAC (basado en GFAC), PaX/grsecurity, Hardened Toolchain, kernel parcheado para mejorar la seguridad y la app Bastille Linux. Para más información puedes visitar la wiki del proyecto.

Mempo-Debian: 

Es una distro Debian con extensiones de Mempo, un proyecto que actualmente está pausado mientras se prepara una nueva versión de grsecurity. Para el que no lo conozca aun, grsecurity es un set de parches para el kernel Linux que garantizan mayor seguridad. Además se hace uso por defecto de proyectos como Freenet o Tor. Puedes ver más sobre el proyecto aquí.

Openwall Project: 

Un proyecto orientado a la seguridad que incluye una distro GNU/Linux denominada Owl (OpenWall gnu Linux). Está especialmente diseñada para servidores, con parches de seguridad y otras extensiones. Para mejorar la seguridad, además se ha inspirado en otros proyectos como OpenBSD, así como la integración de criptografía con algoritmo blowfish modificado para el password hashing, etc. La última versión estable es la 3.1 de 2015.

Qubes OS: 


Es una distro pensada para ser inhackeable, al menos teóricamente. Basada en el hypervisor Xen, puede aislar los programas gracias a máquinas virtuales que evitan que los problemas de estos transciendan al sistema. La arquitectura básicamente tiene un dominio administrativo (Dom0), que tiene acceso directo al hardware, un dominio de red aislado en una VM separada sin privilegios, el dominio de almacenamiento donde varias VMs ponen a salvo el espacio de disco, y finalmente el AppVM para hosting de aplicaciones de usuario (sigue el mecanismo de las sandboxes, destruyéndose la VM tras haber ejecutado una aplicación). Su seguridad le sirvió para estar nominada en 2014 como finalista de un premio a la seguridad (Endpoint Security Solution). Más info en qubes-os.org

Subgraph OS: 


Aunque aun sea un Alpha, se está distribuyendo como la distribución Linux segura para usuarios sin conocimientos informáticos. Los desarrolladores se han encargado de todo lo necesario para velar por la seguridad del usuario final, facilitando el trabajo de éste. Usa PaX/grsecurity como otras distros vistas anteriormente, así como otras protecciones contra ataques y el uso de la red Tor.

Tails (The Amnesic Incognito Live System): 


Otra de las grandes o más conocidas en esto. La distro Tails tiene como filosofía principal ofrecer anonimato a la hora de navegar y no dejar rastro, en principio, en la red. Además, al poder arrancarlo en modo Live no tienes necesidad ni de instalarlo y nada quedará almacenado una vez apagues el sistema. Se basa en Debian y usa Tor y I2P para el anonimato. Como curiosidad decir que poco se sabe de sus desarrolladores y dicen algunas fuentes que es el sistema usado por Edward Snowden... 

JonDo Live

JonDo/Tor-Secure-Live-DVD es una distro basada en Debian GNU/Linux y que contiene clientes proxy para JonDonym, Tor Onion Router, y Mixmaster remailer. El navegador web de esta distro está preconfigurado para mantener el anonimato durante la navegación, además al ser un LiveDVD y no necesitar instalación, no guarda datos en el disco duro. Además posee TorBRowser intalado por defecto, Thunderbird para los emails, Pidgin para la mensajería instantánea anónima, Parole media player, MAT para limpiar documentos y otras muchas aplicaciones orientadas al anonimato y la privacidad, así como TorChat, LibreOffice.org como suite ofimática, GIMP para retoque fotográfico y Calibre para eBooks. Quizás te recuerde a TAILS.

Whonix: 


Otra de mis favoritas y que la podéis descargar de aquí. Se basa en Debian y usa VirtualBox para crear una serie de máquinas virtuales sobre las que se ejecutan las aplicaciones, y sobre las que funciona la red. De este modo aísla al sistema de malware o vulnerabilidades de software, así como de los peligros de la red. Una máquina virtual usa Tor (opcionalmente I2P) y actúa como gateway para la conexión (de ahí el nombre Whonix-Gateway). La otra MV es conocida como Whonix-Workstation y es donde se ejecutan las aplicaciones, totalmente aisladas de la red.

IprediaOS: 


Otra distro focalizada en la seguridad y basada en Fedora. Puedes descargarla tanto con entorno de escritorio GNOME (Desktop Edition) como con LXDE (LXDE Edition), esta última si quieres un sistema más ligero para máquinas con menos recursos. La filosofía es dotar al usuario de un sistema rápido, potente y estable, con mejoras para el anonimato. El trafico de red es automáticamente encriptado de forma transparente para el anonimato.

Security Onion: 

Seguro que también has oído hablar de ella, en este caso por el nombre puedes hacerte una idea de lo que te encontrarás. Tomando como base Ubuntu, tiene una serie de herramientas de detección de intrusos agregadas de forma predeterminada, además de otras para monitorizar la seguridad del sistema. Por ejemplo, puedes encontrar Snort, Suricata, Sguil, Bro y Xplico, OSSEC, Squert, ELSA, NetworkMiner, etc. Aunque por todo este pack de herramientas también puede ser una buena suite para auditar redes...

Sección de objetos perdidos: Proyectos Linux abandonados

Annvix: 

Fue, puesto que ahora es un proyecto descontinuado, otra distro basada en Mandriva cuya filosofía de desarrollo es disponer de un sistema seguro. Para ello hace uso de ProPolice (activado en el compilador gcc para evitar ataques de desbordamiento de pila) y otras configuraciones seguras que trae por defecto.

Immunix: 

Otro sistema operativo, en este caso comercial creado por Immunix Inc., orientado a ofrecer un entorno seguro. Desde 2007 no se ha continuado el proyecto, pero sus soluciones de seguridad han contribuido a lo que hoy es AppArmor, ya que fueron los artífices de ésta y en 2005 Immunix fueron absorbidos por Novell para reforzar la seguridad de SUSE (adquirida por Novell dos años antes). Decir que AppArmor es una gran alternativa para SELinux, que fue creada por la NSA y Red Hat, no solo teniendo independencia de la NSA, sino también porque es más sencilla de configurar.

Ubuntu Privacy Remix (UPR): 

Como su nombre indica es un LiveCD de Ubuntu que provee de un entorno más seguro. Además contiene un set de herramientas para protegerte tus datos contra ciberdelincuentes, troyanos, keyloggers, etc. Hace uso de TrueCrypt y GPG, pero su mayor inconveniente es que la base está bastante desactualizada y la última versión liberada fue la 12.04r1...

Para dispositivos móviles (Android-forks)

Silent OS: 


Formalmente llamado PrivateOS, se trata de un sistema operativo que surge como un derivado de Android para ser usado en los terminales Blackphone. Silent OS o PrivatOS, está desarrollado por Silent Circle con modificaciones adicionales para mejorar la seguridad frente a la base Android. La compañía asegura haber cerrado todas las puertas traseras o backdoors, garantizar una búsqueda anónima, privacidad en las apps, implementado un sistema inteligente para desactivar Wi-Fi en caso de no ser un hotspot seguro, más control en los permisos de las apps, comunicaciones privadas, actualizaciones frecuentes, etc.

CopperheadOS: 

Usa como base Android, con PaX, OpenBSD malloc y muchas otras funcionalidades de seguridad. Desde la web oficial del proyecto alegan que ha sido protegido contra vulnerabilidades zero-day, las bibliotecas de C estándar han sido endurecidas, agregado parches de seguridad, mejorado el firewall y endurecido la red, mejorado el kernel con una rama unofficial con PaX, añadido aislamiento por sandboxing para apps y servicios, etc.

Replicant: 


Es un clon de Android en el que se han eliminado ciertos componentes y APIs privadas del SDK de Google para dejar solo el código abierto, así como los controladores privativos han sido reemplazados por otros libres. Lo que se consigue con ello es que el código sea 100% abierto, pudiendo ser revisado en busca de agujeros. Algo muy similar al proyecto CyanogenMod, el cual usan como base, pero en Replicant se hace algo más de hincapié en la seguridad y privacidad, como por ejemplo el “cerrado” algunas backdoors presentes en el código...

Otros security-focused OS:

OpenBSD: 


OpenBSD, también de código abierto y seguro que los amantes de BSD les interesa este OS. Se trata de un sistema cuyo pilar central de desarrollo es la seguridad, creado como fork de NetBSD por las diferencias con Theo de Raadt. Su código fuente ha sido compilado de forma rigurosa y revisado para mayor seguridad. Además integra una serie de herramientas de seguridad útiles, como la protección de las ejecuciones con ProPolice, soporte ASLR, soporte PIE (Prosition-Independent Executable) para binarios, uso de cifrado de contraseñas por Blowfish, StackGhost, etc. Hasta 2002 alardeaba de no haber tenido “ningún fallo de seguridad remoto en la instalación por defecto en los últimos 6 años, aunque luego ha tenido que cambiar la oración por “Un solo agujero de seguridad en la instalación por defecto, en más de 8 años” y tras el agujero de OpenSSH por “Sólo dos agujeros de seguridad en la instalación por defecto, en más de 10 años”. Sin duda un gran OS que puedes usar como sistema para tu servidor o como firewall para tu red... Como curiosidad o dato anecdótico, decir que Linus Torvalds piensa sobre sus desarrolladores, por su obsesión por la seguridad, que: “Creo que la gente de OpenBSD son una pandilla de monos pajilleros, ya que hacen un gran esfuerzo para concentrarse en la seguridad hasta el punto que prácticamente es lo único que importa.”.

TrustedBSD: 


Básicamente es un sistema FreeBSD con seguridad reforzada. Aunque sea linuxero, hay que reconocer que la pila de red de FreeBSD es impecable, además de tener un gran rendimiento. Si a esto le agregas que se ha puesto énfasis en la seguridad usando los parámetros del conocido Orange Book, puede ser un OS interesante.

HardenedBSD: 

Más forks de FreeBSD con mejoras de seguridad. El kernel está revisado para reforzarlo con parches de seguridad, además de incluir herramientas y funcionalidades interesantes como ASLR, PIE, Ptrace hardening, y un largo etc. Quizás junto a TrustedBSD, HardenedBSD tiene semejanzas con el proyecto Solaris Trusted Extensions. Más info en su web.

OpenSolaris con Trusted Extensions: 


Y hablando de Solaris, su hermano de código abierto OpenSolaris también puede hacer uso de Trusted Extensions para ser fortalecido. Aunque recuerda que tras la compra de Sun Microsystem por parte de Oracle, el nuevo proyecto que sustenta el código base es la bifurcación OpenIndiana, y también ha nacido otro fork llamado Illumos (ambos de código abierto).

¿Te has quedado con ganas de más? Pues ahí va otra de otros sistemas que pueden reforzarte

ClearOS: 



Es una distro mantenida por Clear Foundation y basada en Fedora/Red Hat. Orientado a pymes, es una buena solución para tu servidor o montar un firewall con una sencilla interfaz web y facil de configurar. En poco más de 15 min podrás tener levantado su sistema de protección basado en iptables y con unos paquetes adicionales para mejorar la seguridad.

IPCop: 


Seguro que os sonará, es una distro Linux capaz de transformar tu equipo en un VPM o Firewall. Surge como fork de SmoothWall y tiene una interfaz web para realizar las oportunas configuraciones. Además ofrece gráficos en tiempo real y otras opciones interesantes como “proxy cache”. Por sus escasos requisitos, puede estar más orientada a pequeñas empresas o usuarios domésticos.

Zentyal: 

Aunque no sea una distribución para usar como servidor de seguridad tal cual, me ha parecido bien integrarla aquí por varios motivos. Para todo aquel que quiera una solución de correo electrónico y groupware de código abierto y segura, es una buena opción. Además de ser compatible con Microsoft Outlook, protocolos Microsoft Exchange Server y soporte para ActiveSync. Se basa en Ubuntu y ha sido dotada de servicios fásicos y un buen cortafuegos, antivirus y antispam para tener un sistema fiable. Más en Zentyal.com

PFSense: 


Basada en FreeBSD, se puede usar como Firewall. Se puede instalar en cualquier ordenador que cuente con al menos dos tarjetas de red. Al igual que muchos de este tipo, este sistema tiene una interfaz web para su configuración. Además de un Firewall, Pfsense incluye funcionalidades State Table, NAT, balance de carga, VPN (Ipsec, OpenVPN y PPTP), servidor PPPoE, DNS, portal cautivo, DHCP, además de un sistema modular para añadir nuevas funcionalidades como Proxy Squid, IMSpector, Snort, ClamAV, etc.

m0n0wall: 

Se basa en FreeBSD y se presenta como una distribución embebida para montar tu firewall. Su reducido tamaño permite incluso ponerla en una tarjeta de memoria, o dispositivos de almacenamiento pequeños. Tampoco necesita muchos recursos de hardware, por lo que puedes transformar tu equipo antiguo en un buen Firewall, con funcionalidades como Ipsec, PPTP VPN, NAT (inbound & outbound), portal cautivo, IPS, etc. En 2015 se anunció que el proyecto cesaba, así que no es muy recomendable por estar descontinuada. Igual que la anterior, también puede ser ampliada con el sudo de los conocidos como m0n0wall mods.

Smallwall: 

Se trata de un derivado que continúa el trabajo de m0n0wall tras su cierre. Se basa por tanto en éste y ofrece unas características similares, aunque en este caso sí que está actualizada.

t1n1wall: 


Más de lo mismo, otro fork que surge tras el abandono del proyecto m0n0wall y que sigue su trabajo para ofrecer un entorno actualizado.

Smoothwall: 



Tiene muy buena reputación y es ampliamente usada para implementar un sistema firewall, no obstante no es demasiado completa en cuanto a funciones avanzadas. Es rápida, aunque puede resultar algo confusa en ciertos aspectos, aunque la venden como una distro GNU/Linux de fácil administración e instalación con una sencilla interfaz web. Debes saber que existe una versión de pago de la misma.

Espero que os haya servido de ayuda, cualquier duda o sugerencia, deja un comentario...

lunes, 29 de febrero de 2016

Creación de un Hidden Service de Tor


Antes de comenzar esta PoC, queremos recalcar que está realizada con fines educativos y, sobre todo éticos. Y no nos hacemos responsables del mal uso que puedan darle.


Vamos a montar un Hidden Service, es decir, un servidor con dominio .onion, aumentando así la privacidad y anonimato del servicio dado. Este tipo de dominio conforman lo que se conoce como red Tor, perteneciente a la Deep Web.


Para realizar esta PoC, montaremos un servidor web en un entorno virtualizado (no por ello falso, ya que aún virtualizado estará en la red y será accesible) sobre GNU/Linux Debian.


¿Qué es Tor?
Tor (The Onion Routing) es una red de nodos distribuidos por el mundo, en el que los paquetes viajan por los mismos antes de llegar a su destino, ofreciendo privacidad y sobre todo anonimato. Cada nodo por el que pasa un paquete es cifrado por capas (e ahí el nombre de Onion).


La red de Tor forma parte además de la conocida Deep Web, en la que el anonimato, como arma de doble filo, es tanto usada con fines éticos (librerías, tutoriales de todo tipo, prensa sin censura) como con fines delictivos (pedofilia, mercado negro, servicios ilegales).


Tras esta breve introducción a Tor, si deseas más información, te dejamos algunos enlaces que pueden serte de utilidad: Wikipedia, Tor Project, Cómo empezar a usar Tor, Cómo funiona Tor.


Instalación del servidor web (LAMP)
Comenzamos con la instalación del servidor LAMP en nuestro Debian. LAMP es el acrónimo dado a la infraestructura del servidor web conformado por las siguientes herramientas: Linux + Apache + MySQL + PHP (A veces, MySQL puede ser sustituido por MariaDB, y PHP por Perl o Python). No vamos a entrar en detalles sobre la instalación, ya que realizaremos una instalación básica sin configuraciones extra. Anteriormente en este blog explicamos algo parecido.
Como Instalar Apache Mysql PHP en Debian


El proceso es sencillo y no ahondaremos en configuraciones, por lo que únicamente instalaremos los paquetes necesarios y editaremos el contenido de la página.



# apt-get install apache2 php5 libapache2-mod-php5 php5-mcrypt mysql-server php5-mysql




Comprobamos  el correcto funcionamiento de nuestro servidor web (conectándonos a la IP del servidor desde un navegador):




Editamos el contenido de la página. Éste se encuentra en la ruta /var/www/html.






Ya tenemos nuestro servidor LAMP corriendo, es el momento de instalar Tor y anonimizarlo, así como obtener el dominio .onion. Cabe destacar que en esta prueba de concepto no contemplamos todos los aspectos de seguridad, por lo que no se debe asumir que siguiendo estos pasos tendremos un servidor completamente seguro y anónimo, para lograr esto, debemos contemplar otras medidas de seguridad en el servidor, tales como detectores de intrusos, VPN, proxys, hardening del servidor, etc.


Instalación de Tor en nuestro servidor Debian
Antes de instalar Tor es necesario instalar algunos paquetes que permiten el correcto funcionamiento e instalación de Tor, los cuales son:


# apt-get install screen build-essential libevent-dev openssl zlib1g-dev libssl-dev




Una vez instalados, instalamos Tor con el gestor de paquetes apt-get.




El archivo de configuración, donde definimos los hidden service, se encuentra en /etc/tor/torrc. Accedemos y añadimos las siguientes líneas al final:




El parámetro “HiddenServiceDir” indica la ruta donde se almacena el contenido de la página. Nosotros hemos creado una carpeta dentro de /root denominada tor, donde alojaremos el index.html y el resto de contenido dela página.


El parámetro “HiddenServicePort” indicamos el puerto por el que accederemos al servidor. Podéis poner el que queráis, en mi caso he usado el puerto 80 (por defecto). Si elegimos un puerto extraño, deberemos configurar el archivo de configuración de Apache para que responda al mismo puerto además del archivo /etc/apache2/ports.conf.


Una vez guardado los cambios, reiniciamos el servidor y reiniciamos tor.




Arrancamos el servidor Tor con el siguiente comando:




Una vez terminado, listamos el contenido de la carpeta que hemos seleccionado para almacenar el Hidden Service, y veremos dos nuevos archivos junto al index.html.




¿Qué son? “private_key” almacena la clave privada del servidor.




El fichero “hostname”, almacena el dominio asignado .onion:




Para finalizar, únicamente debemos descargar el navegador de Tor (o acceder con un navegador con soporte para Tor) y veremos nuestra página. Editando el contenido podéis crear una página dinámica para objetivo que queráis, aunque eso es otro tema. (repetimos que no nos hacemos responsable del mal uso que puedan darle, puesto que es sólo para fines educativos y éticos).

sábado, 20 de febrero de 2016

Aplicaciones Web (I)

Buenos días hackers!
Esta es una entrada distinta y no menos importante. En informática una aplicación es un software que permite al usuario realizar una determinada tarea o servicio.
Una aplicación web es simplemente un software creado para ejecutarse mediante un navegador (el cliente). La diferencia clara con las aplicaciones de escritorio, es que estas pueden acceder a todo el hardware del ordenador. En una aplicación web el hardware queda oculto al programador.
Otra diferencia existente esta, en que los navegadores no tienen la capacidad para compilar código de lenguajes como C o Java, pero si tienen interpretes muy potentes para lenguajes como Javascript, como por ejemplo el motor V8 del navegador Chrome.
Existen unas ventajas y desventajas de las aplicaciones web frente a las aplicaciones de escritorio.

Ventajas:


  • Gran compatibilidad: No requieren un sistema operativo en concreto, tanto en entornos de escritorio como en móviles. El único requisito es disponer de un navegador instalado en el sistema.
  • Mantenimiento: Las aplicaciones web se actualizan, pero solo en el servidor donde se alojan, eso quiere decir que el usuario no tiene que actualizar nada y menos instalar nada en su ordenador. Como se dijo anteriormente únicamente del navegador (cliente).
  • Uso sencillo por los usuarios: El navegador es el software usado, y es bien conocido por todo el mundo con una interfaz gráfica sencilla e intuitiva. 
  • Datos almacenados en base de datos.
  • Bajo coste: No existe formato físico de la aplicación web, es digital donde el software se encuentra en Internet. 
  • Sencilla accesibilidad: Las aplicaciones web son accesibles desde cualquier máquina y desde cualquier parte del mundo. Existe una interrelación entre usuario y aplicación.


Desventajas:


  • Hardware desaprovechado: No es necesario tener un ordenador más o menos potente que otro, ya que las aplicaciones web depende únicamente del navegador.
  • Conectividad: Sin conexión a Internet, las aplicaciones web carecen de sentido. Aunque actualmente esto no es un problema ya que estamos interconectados. 
  • Dificultad para el desarrollador: Existe una dificultad clara para el programador frente a desarrollar una aplicación de escritorio. El proceso es diferente debido a la conexión a Internet, la depuración de código en diferentes lenguajes y la espera de peticiones a los servidores. 
  • Control excesivo de nuestra información: Una aplicación de escritorio, al poder estar offline nuestros datos e información se queda almacenada en nuestra máquina sin que exista peligro alguno, a no ser que exista conexión a internet y mediante un troyano nos puedan estar espiando de una forma u otra. En una aplicación web los datos se almacenan en servidores de bases de datos, dependemos de terceras personas y de la ética de la empresa que almacenan nuestros datos de que no se corra el peligro de fugas de información. Si una persona mal intencionada accede al servidor de base de datos, puede obtener información confidencial de miles o millones de usuarios, poniendo en peligro dicha integridad.  

Los lenguajes y tecnologías en el lado del cliente son los elementos, una vez traducidos, para ser interpretado por el navegador normalmente en un documento HTML.
El cliente realiza una petición http al servidor web a la espera de una página que contiene código HTML y otros elementos pertenecientes a otros lenguajes, como por ejemplo:


  • CSS: Es un lenguaje de estilos que permite modificar la apariencia de una web. Es importante debido a que el cliente, a parte de esperar una completa funcionalidad de la aplicación web, exige cierta belleza en la apariencia. 
  • Javascript: Es un lenguaje sencillo y potente interpretado, cuyo código se puede incluir en una página web. Permite cierto dinamismo en la página al igual que interactividad. También es un lenguaje en el lado del servidor, convirtiéndose en un lenguaje full-stack. 
  • Flash: Es un software que se suele incrustar en el código HTML de tipo object haciendo referencia a un archivo de tipo SWF. Los archivos reproducibles de Adobe Flash, que tienen generalmente la extensión de archivo SWF, pueden aparecer en una página web para ser vistos en un navegador web, o pueden ser reproducidos independientemente por un reproductor Flash.
  • Silverlight: Es similar al anterior, pero propietario de Microsoft. 
  • Applets de Java: Se incrusta en el código HTML con el nombre de applet. Estan escritos en el lenguaje de programación Java. Pueden ejecutarse en el navegador requiriendo de Java Virtual Machine (JVM). 

 Esquema de el lado del cliente: 


El cliente introduce una dirección para realizar una petición http al servidor web. Los paquetes http salen por el router domestico hasta nuestro proveedor de servicios (ISP), para realizar la petición al servidor web solicitando un recurso. El servidor web busca dicho recurso y envia al cliente un documento HTML con elementos incrustados (SWF, Javascript, applet de Java...) que será interpretado por el navegador. 
Una vez el navegador lo interpreta, muestra al usuario con un formato entendible.

En la actualidad están en desuso tecnologías avanzadas en el lado del cliente como puede ser Flash, debido al auge de HTML5. Sin embargo Javascript es cada vez más potente, obligando a los navegadores a procesar aplicaciones más avanzadas en este lenguaje. Todo el proceso descrito anteriormente es oculto al usuario, y con un fin favorable al no tener que instalar nada en su máquina, simplemente tener el navegador actualizado.
  

Funcionamiento del lado del servidor: La programación web como se explico antes, dista de una clara diferencia con la programación de aplicaciones de escritorio. Esta diferencia reside en que dependiendo del lado del cliente (navegador) o el lado del servidor (servidor web), se usará un distinto lenguaje de programación. 
Cuando el cliente hace una petición http a un recurso web, el servidor que contiene dicho recurso se encuentra con componentes del lado del servidor (PHP, .NET, Python...) y pide al servidor de aplicaciones la traducción en formato entendible por el cliente (navegador). El resultado lo envía el servidor web o servidor http al cliente. 
La mayoría de veces, las peticiones http son la entrega de un documento HTML.
Los servidores web tienen la capacidad de resolver las peticiones http, pero no traducen el código de los documentos que se entregan al cliente, es decir, se necesita de los servidores de aplicaciones para su traducción. 
Los servidores de aplicaciones traducen el código a través de lenguajes del lado del servidor como pueden ser Python, PHP o Java. Además el código del lado del servidor puede implicar el acceder a otros servidores como por ejemplo un servidor de base de datos.
Actualmente los servidores web actuan también como servidores de aplicaciones ya que estos son simples módulos de software, aunque es importante la diferencia ya que unos se encargan de resolver peticiones http y los otros de traducir lenguajes de servidor.

La ventaja existente de este funcionamiento es que la parte pesada se la lleva la parte del servidor en cuanto a trabajo de procesamiento se refiere.
Al ver la diferencia entre los distintos lados de este funcionamiento, es un proceso complejo el desarrollo web debido a la existencia de los elementos del lado del cliente (front-end) y del servidor (back-end). Por tanto habrá personal dedicada a distintos lenguajes de programación para una misma aplicación web.

Google Analytics