first
  
last
 
 
start
stop

En construcción

Sobre la (in)seguridad esencial de las aplicaciones web

La tecnología web (HTTP, HTML y URL) se utiliza hoy en día prácticamente para todo. Asimismo, el número de incidentes de seguridad que nutren los titulares de la prensa TIC especializada y generalista parece no tener límite. Quizás el origen de esta situación esté en que las tecnologías web que se están utilizando no sean adecuadas para proporcionar seguridad alguna, y haya que mejorarlas o, incluso, abandonarlas para luego buscar y encontrar algo mejor.

Jorge Dávila
Consultor independiente. Director. Laboratorio de Criptografía. LSIIS. Facultad de Informática. UPM. Esta dirección electrónica esta protegida contra spambots. Es necesario activar Javascript para visualizarla

 

Quién le hubiese dicho a Vannevar Bush 1, organizador del Proyecto Manhattan y fundador de la empresa armamentística Raytheon, que su "memex" 2 de 1945 iba a terminar siendo la esencia de la Word Wide Web, y que sobre esa misma idea se terminaría construyendo la "realidad virtual" que hoy cautiva a navegantes y mercaderes digitales. Es curioso que el origen de lo que hoy llena de titulares las publicaciones TIC esté en el disgusto posterior de algunos gestores científicos por el esfuerzo norteamericano de guerra que llevó a las bombas de Hiroshima y Nagasaki 3.


Si buscamos en la prensa, y sin salirnos del primer semestre de este año, podemos encontrar noticias que indican cómo "un fallo deja al descubierto en Internet secretos sobre los submarinos nucleares británicos" en el caso de una catástrofe nuclear al estilo de la del submarino soviético 4 K-19 de 1961. Si seguimos buscando, nos encontraremos nombres muy familiares, ya que "un error en Facebook permite a anunciantes acceder a datos personales" y, además, nos enteraremos de lo fácil que es "comprar y no pagar en Internet" 5.


Si continuamos buscando en la hemeroteca, nos enteraremos de que Sony, finalmente, terminó por admitir que su Red de PlayStation había sufrido un robo masivo de datos, y que el intruso podía haber obtenido datos de millones de tarjetas de crédito y contraseñas 6. El estudio de este ataque nos recordará cuál es el valor táctico de las distracciones en el campo de batalla, y de cómo siempre es bueno poder echarle la culpa a Anonymous para no quedar demasiado mal frente al gran público; según parece, para algunos, ser víctima de los "grandes"puede actuar de atenuante.


A mediados de abril de este año, uno o más cibercriminales consiguieron infiltrarse en la red de servidores de PlayStation, al mismo tiempo o inmediatamente después de que estos hubiesen sufrido un Ataque por Denegación de Servicio 7. La intrusión no fue detectada inmediatamente y Sony lo justifica recordando lo sofisticado del método de infiltración utilizado, y a que su equipo de seguridad estaba conteniendo con todas sus fuerzas el ataque distribuido. Si ambos hechos están relacionados o no, si la infiltración fue realizada aprovechando de forma oportunista que las defensas estaban entretenidas conteniendo otro ataque mucho mayor, es algo que probablemente nunca sepamos. De ser este último el caso, el incidente PlayStation 3 sería un ejemplo cibernético del "pillaje" que se sufre en el mundo real cuando la autoridad está, temporalmente, no disponible 8.

 

Según el CISO de Sony, como parte de la respuesta de la compañía a la situación creada, han optado por aumentar su seguridad añadiendo sistemas de monitorización automática, mejorar el nivel de protección de los datos mediante cifrado, y ampliar sus capacidades para detectar intrusiones e identificar actividades fuera de lo común. Lo extraño de estas declaraciones es que no lo hubiesen hecho mucho antes, después de todo, el riesgo de este tipo de ataques coordinados está identificado desde hace mucho tiempo, es un clásico 9.

 

 

Si seguimos ojeando la 'prensa' veremos también que redes sociales como Facebook pasan a utilizar a regañadientesel protocolo HTTPS para impedir la sencilla captura de sus tokens de sesión en redes WiFi públicas (o no). A su vez, la Electronic Frontier Foundation lanza una campaña 10 para que todos los usuarios de Internet opten por utilizar conexiones seguras para navegar en ella. Ese protocolo HTTP con conexiones SSL/TLS lo utiliza desde hace algún tiempo Gmail y, desde enero, Facebook lo incluye como opción en la configuración de la cuenta. Por su parte, Twitter se apuntó a esta corriente en marzo de este año.


En otra faceta de esa misma realidad TIC, hace pocas semanas se produjeron ataques con un "malware coactivo" (scareware) conocido como Liza Moon11, que aprovechaba fallos de seguridad en páginas web legítimas para insertarles un enlace que lleva al navegante, sin saberlo, a otras ubicaciones en la red. En ese caso, la introducción de ese código se hizo por inyección SQL y llegando a afectar a tres millones de sitios.


Muchos de nuestros lectores no se sorprenderán con lo que ha dicho Assange 12 sobre que "Facebook es la más fantástica máquina de espionaje que jamás se ha inventado". El portavoz de WikiLeaks, al decirlo, quizás estaba pensando en las secretas agencias de espionaje pero, en realidad, son muchos más los que se pueden aprovechar de esa "Matrix" 13 tan de moda. Recientemente, la arquitectura de Facebook ha permitido a sus anunciantes tener acceso a perfiles, conversaciones, fotos y otros datos privados de los miembros de la red social 14. El verdadero error que es causa de esta situación no es tanto un error de programación como el hecho de que, en 2007, Facebook abriese la veda para la instalación de aplicaciones de terceros en su red, para que esto fuese uno de los grandes atractivos comerciales de su "comunidad". Por ello, no es de extrañar que, periódicamente, salten polémicas más que justificadas sobre el grado de seguridad real y de respeto a la privacidad que tienen las redes sociales y demás constructos de la Web 2.0 15.


Otro incidente a tener en cuenta para entender dónde estamos en la realidad web actual, es la posibilidad de ir de compras por Internet y no pagar por ello. El origen del problema está en la naturaleza tripartita de los actuales sistemas de pago que implican a un cliente, un comerciante y un intermediario de pago como Amazon Payments o PayPal. La falta de confidencialidad e integridad de los mensajes intercambiados de los sistemas actuales pueden ser aprovechados por los atacantes para interceptarlos y sustituirlos por otros falsos. Un mal diseño de las tiendas virtuales al uso hace que los códigos de autorización sean reutilizables, lo que abre la puerta a comprar varias cosas con un mismo y único pago.


Todo lo anterior se debe a que hoy en día estamos utilizando un protocolo, el HTTP, y un modo de codificación, el HTML, que se inventaron hace veinte 16 y treinta y un años 17, respectivamente. En la idea inicial de 1989, lo que se perseguía solo era transferir, mediante el uso de un agente que se denominó "navegador" 18, documentos digitales dentro de lo que podría considerarse como un sistema de ficheros universal y planetario. Cinco años más tarde, en 1995, apareció lo que conocemos como JavaScript 19 y se dotó de vida y alma a los navegadores 20 a modo de nuevos Golems cibernéticos del siglo XX.


Desde los orígenes de la Web hasta nuestros días, realmente no se ha tenido en cuenta la dimensión de seguridad a la hora de llevar a la nueva realidad de Internet el mayor número posible de actividades sociales y comerciales. Los programas y librerías que se iban utilizando en la consulta y actualización de bases de datos, en la transferencia de fondos, en la compra y pago de mercancías y servicios, en la identificación en Internet, etc., se iban escribiendo a la vez que se ponían en producción. En estos años, los ensayos TIC realmente se han hecho siempre con datos reales, con pólvora de la que explota, por lo que es absolutamente lógico que se produzcan incidentes como los mencionados al principio de este artículo.

Con la llegada de los applets Java y el AJAX 21 se abrieron de par en par los ordenadores de los usuarios a insondables potencialidades, que casi todos aplauden, pero también a riesgos que aún no son del todo conocidos. Dejar que el navegador ejecute applets Java, ActiveX o que instale "complementos" que se descarga de Internet, y que todo esto lo haga dentro del sistema operativo que se encarga de ejecutar todo lo demás en nuestro PC es la esencia del éxito de los "caballos de Troya" que hoy en día campan por Internet con toda libertad. Como botón de muestra de que esto es así, no olvidemos que también hay caballos de Troya al servicio de "los buenos" como es el caso (entre otros…) del programa espía CIPAV 22 del FBI norteamericano 23.


Con el ánimo de frenar un poco la sangría que todavía hoy supone montar sistemas de información sensibles sobre servicios e instalaciones web, en septiembre de 2001 se puso en marcha el Open Web Application Security Project con la intención de crear metodologías, documentos, herramientas y tecnologías libremente disponibles para mejorar la tecnología web. Como parte de sus actividades, OWASP identifica e intenta combatir los 10 riesgos 24 más frecuentes de las instalaciones web actuales (XSS, inyección, de código, cadenas de autenticación frustradas, CSRF, errores de configuración, etc.) y también pone en pie un estándar para la verificación, a distintos niveles,de la seguridad de las aplicaciones web que estén en marcha (ASVS 25).


Además de lo anterior, también hay que resaltar la Enterprise Security API de OWASP, que es una librería abierta, a libre disposición de cualquiera, para el control de la seguridad en aplicaciones web. El objetivo de esta plataforma es hacer más sencilla la tarea de desarrollar aplicaciones web con un menor riesgo a equivocarse en lo que a su seguridad se refiere.

A pesar de todos estos esfuerzos, el paradigma actual del diseño web tiene poca solución en lo que a su seguridad se refiere. Con el tiempo y en los casos más serios, veremos cómo las exigencias y peculiaridades de la seguridad del proceso serán tratadas en fases previas al diseño del mismo. Cuando se tenga en cuenta que soluciones tan elegantes y sencillas, como son las de la Internet primigenia, solo sirven para montar un sistema de ficheros universal y planetario, y no necesariamente pueden proteger la integridad y autenticación que precisa una transacción dineraria, solo en ese caso, estaremos en disposición para encontrar los nuevos paradigmas y tecnologías que nos permitan realmente hacerlo.


Entre las primeras cosas que habría que hacer en el universo web si quiere proporcionar sistemas y procesos seguros sería, entre otras, las siguientes:


(1) Proteger las aplicaciones de usuario aislando completamente al navegador del sistema operativo donde se ejecutan otras aplicaciones de ámbito privado. Los navegadores deben ser considerados como un territorio prácticamente público; en pocas palabras, "territorio comanche". Dada la experiencia actual, se ve que las soluciones de "sand-boxing" 26 o virtualización no siempre funcionan, por lo que sería necesario tomar medidas de aislamiento más drásticas como es la separación del hardware que ejecuta los diferentes procesos y que constituye los diferentes sistemas. En casos de cierta importancia habría que poner en pie una especie de "placenta digital" entre dos o más sistemas hardware independientes, cada uno de ellos con su sistema operativo y procesos, a través de la cual se intercambiasen "datos muertos"; es decir, sin ninguna componente ejecutable (esterilizados).


(2) Proteger los Servicios Web impidiendo que el cliente sea el que decida libremente con qué argumentos consultar prácticalas
bases de datos. La confección de los argumentos de consulta siempre deben ser redactados por el servidor y no por el cliente. Si esto resta flexibilidad y universalidad, quizás sea hora de aceptar esa pérdida como algo muy conveniente.


(3) Proteger los datos en sí haciendo que solo sean útiles para su legítimo destinatario; es decir, cifrado de resultados. Las aplicaciones seguras requieren usuarios autenticados, pero no necesariamente identificados, que dispongan de identidad digital a la que mandar cifrados los resultados de las consultas.


(4) Aunque las comunicaciones no tengan que ser necesariamente secretas, siempre deben ser íntegras, y su autenticidad verificable por los que se comunican. Los fallos de integridad son herramientas muy útiles para los atacantes ya que les da la posibilidad de falsificarlo todo.
En realidad, son algunas cosas más las que habría que hacer, pero lo que queda claro es que el paradigma actual de máquinas de propósito general para hacer cualquier cosa no pueden aportar algo tan excluyente como es la seguridad.


Para conseguir todo esto, quizás haya que empezar a pensar en sistemas donde la capacidad de operación multitarea se consiga mediante sistemas hardware concurrentes y cooperativos, y no repartiendo los ciclos de reloj de uno o más núcleos rotulados sobre el mismo chip de silicio. De hecho, los ordenadores actuales y algunos teléfonos móviles empiezan a tener varios procesadores/controladores dentro de ellos.


Todos los ejemplos que hemos mencionado en este artículo son el producto de un uso inadecuado de un protocolo vetusto para cosas que ni siquiera se imaginaban cuando fue diseñado. La navegación web basada en HTTP, HTML y URLs ya ha dado demasiado de sí, y no se le puede exigir que sea segura. La misma característica de ser un protocolo sin estado entra en contradicción con las relaciones causales e implicaciones lógicas que requieren procesos como las sesiones de navegación, el pago en Internet o el mismo ejercicio de la identidad en Internet.


Las iniciativas OWASP son algo absolutamente necesario si queremos que los desastres y las brechas de seguridad no nos amarguen todas y cada una de las mañanas en las que no sentemos a leer la prensa TIC especializada. Aún así, las herramientas utilizadas, los servicios y tecnologías web, no son las más adecuadas para guardar secretos o para transportar valores. Será mejor que no pidamos milagros al mundo web porque, de donde no hay, no se puede sacar y además… es imposible.

 

1 Ver http://en.wikipedia.org/wiki/Vannevar_Bush
2 Ver http://en.wikipedia.org/wiki/Memex
3 Vannevar Bush: “As We May Think”, Atlantic Magazine, Julio 1945. Disponible en http://www.theatlantic.com/magazine/archive/1945/07/as-we-may-think/3881/
4 Ver http://en.wikipedia.org/wiki/Soviet_submarine_K-19#Nuclear_accident
5 R. Wang, S. Chen, X. Wang, S. Qadeer: “How to Shop for Free Online – Security Analysis of Cashier-as-a-Service Based Web Stores” en Proceedings of the IEEE Symposium on Security and Privacy (Oakland) May 2011 http://research.microsoft.com/pubs/145858/caas-oakland-final.pdf
6 Ver http://blog.us.playstation.com/2011/04/26/update-on-playstation-network-and-qriocity/
7 El ataque de Anonymous a Sony lo fue en protesta por la denuncia de esa compañía había presentado contra George Hotz (Geohot) por haber liberado la Sony PlayStation 3.
8 “A río revuelto, beneficio de pescadores”.
9 Ver http://en.wikipedia.org/wiki/Normandy_landings
10 Ver https://www.eff.org/https-everywhere 11 Ver http://en.wikipedia.org/wiki/LizaMoon
12 Ver http://www.neowin.net/news/assange-calls-facebook-an-appalling-spy-machine
13 Ver http://en.wikipedia.org/wiki/The_Matrix
14 Ver http://www.symantec.com/connect/blogs/facebook-applications-accidentally-leaking-access-third-parties 15 Ver http://en.wikipedia.org/wiki/Web_2.0
16 Ver http://www.w3.org/Protocols/HTTP/AsImplemented.html
17 Ver http://en.wikipedia.org/wiki/ENQUIRE
18 Ver http://en.wikipedia.org/wiki/Mosaic_browser
19 Ver http://en.wikipedia.org/wiki/JavaScript
20 Ver http://en.wikipedia.org/wiki/Client-side_JavaScript
21 Ver http://en.wikipedia.org/wiki/Ajax_(programming)
22 Computer and Internet ProtocolAddressVerifier (CIPAV) es una herramienta de extracción de información del FBI que se utiliza para obtener información de geolocalización de sospechosos (targets) sometidos a vigilancia electrónica a través del seguimiento de sus PCs y equipos móviles.
23 Ver http://www.wired.com/politics/law/news/2007/07/fbi_spyware
24 Ver https://www.owasp.org/index.php/OWASP_Top_Ten_Project
25 Ver https://www.owasp.org/index.php/ASVS
26 Ver http://en.wikipedia.org/wiki/Sandbox_(computer_security)

 

Documento en PDF

Este sitio utiliza cookies propias y de terceros para facilitar la navegación.
Si continúa navegando consideramos que acepta su uso. Política de cookies