
{"id":1557,"date":"2011-10-07T08:24:40","date_gmt":"2011-10-07T11:24:40","guid":{"rendered":"http:\/\/www.talsoft.com.ar\/?p=1557"},"modified":"2011-10-07T08:24:40","modified_gmt":"2011-10-07T11:24:40","slug":"prevenir-el-cross-site-request-forgery-xsrf","status":"publish","type":"post","link":"https:\/\/www.talsoft-security.com\/site\/prevenir-el-cross-site-request-forgery-xsrf\/","title":{"rendered":"Prevenir el Cross Site Request Forgery (XSRF)"},"content":{"rendered":"<p>Una de las amenazas a las que hace pocos a\u00f1os no se les hizo mucho caso fue el Cross Site Request Forgery conocido por las siglas <a href=\"http:\/\/tecnologiasweb.blogspot.com\/2010\/12\/que-es-el-cross-site-request-forgery.html\">XSRF o CSRF<\/a>.<\/p>\n<p>El\u00a0<a href=\"http:\/\/tecnologiasweb.blogspot.com\/2010\/12\/que-es-el-cross-site-request-forgery.html\"><strong>CSRF o Cross Site Request Forgery<\/strong><\/a> tambi\u00e9n conocido como <strong>XSRF<\/strong>, al contrario del XSS que explota la confianza del usuario en un sitio en\u00a0particular, explota la confianza del sitio en un usuario en particular. Convencionalmente el <strong>CSRF<\/strong> utiliza a un usuario validado para a trav\u00e9s de este introducir solicitudes &#8220;v\u00e1lidas&#8221; que modifiquen el comportamiento de la aplicaci\u00f3n a favor del atacante.<\/p>\n<p>En palabras simples, el atacante usa a la victima para que sea ella misma la que realice la transacci\u00f3n da\u00f1ina cuando la v\u00edctima se encuentra validada en el servidor y en la aplicaci\u00f3n espec\u00edfica. El proceso es simple, muchos usuarios no finalizan\u00a0correctamente\u00a0(o no pueden hacerlo) sus sesiones en las aplicaciones bancarias o de otra \u00edndole que puedan ser afectadas por esta vulnerabilidad y las mantienen activas mientras navegan otros sitios, m\u00e1s a\u00fan en tiempos en que las pesta\u00f1as de los navegadores son muy utilizadas, por tanto desde cualquier otra ventana en el navegador se pudiera inducir al usuario a pulsar un enlace con una orden a sitios en los que el usuario ha ya autenticado, para que el usuario ejecute sin saberlo la acci\u00f3n de ataque.<\/p>\n<p>Todas las medidas de autentificaci\u00f3n de usuarios a este punto ya han validado al usuario por lo que no sirven ya de nada para evitar el ataque. Un ejemplo podr\u00eda darse en un sistema de banca en l\u00ednea en el que el usuario ha accedido y mientras a\u00fan su sesi\u00f3n sigue activa el atacante logra mediante alguna treta que el usuario pulse por ejemplo un enlace como este:<\/p>\n<pre>https:\/\/mibanco.com\/transferir.php?cuenta=NroCuentaDelAtacante&amp;monto=1000<\/pre>\n<p>Algunas personas tienen la creencia de que este tipo de ataques solo puede ser ejecutado mediante el m\u00e9todo GET, y siento decirles que por el m\u00e9todo POST son inclusive mucho m\u00e1s efectivos. El ejemplo fue realizado con un enlace (GET) solo por fines did\u00e1cticos.<\/p>\n<p>Si bien el usuario ha validado su sesi\u00f3n, todos sus datos de verificaci\u00f3n como por ejemplo su &#8220;cookie&#8221; de sesi\u00f3n ser\u00e1n enviados por el navegador a la aplicaci\u00f3n del banco ya que este mantiene una sesi\u00f3n abierta con dicho sitio y esos datos son v\u00e1lidos. Esto sucede aunque el usuario haya pulsado el enlace desde otra p\u00e1gina en el mismo navegador.<\/p>\n<p>Es siempre importante educar al usuario acerca del hecho de que no debe desviar su atenci\u00f3n y mantener la sesi\u00f3n con el sitio de su banco abierta mientras hace otras cosas. Sin embargo sabemos bien que cuando se trata de una cantidad grande de usuarios esto puede llegar a ser un trabajo enorme.<\/p>\n<h3>\u00bfC\u00f3mo evitar entonces este problema a nivel de desarrollo?<\/h3>\n<p><strong>Doble-posted cookie (env\u00edo doble de cookie)<\/strong>:<br \/>\nEsta t\u00e9cnica se basa en que si bien el navegador env\u00eda toda la informaci\u00f3n relacionada a la sesi\u00f3n, si agregamos un campo oculto a cada formulario con el valor del identificador de sesi\u00f3n, podremos evitar el ataque, ya que el atacante debe conocer este valor para incluirlo en el enlace o el formulario oculto en su p\u00e1gina. El navegador no se lo proporcionar\u00e1 por las pol\u00edticas de seguridad de dominios cruzados. Sin embargo aunque de forma m\u00e1s compleja el atacante podr\u00eda robar el cookie de sesi\u00f3n mediante otras t\u00e9cnicas, por lo que este m\u00e9todo no es el m\u00e1s confiable.<\/p>\n<p><strong>Unique form nonce (formulario \u00fanico para cada solicitud):<\/strong><br \/>\nSe trata de generar un formulario con un campo oculto din\u00e1mico que es generado por cada solicitud. El contenido del campo debe ser generado aletoriamente utilizando un buen sistema de PRNG (Pseudo Random Number Generator) para que no pueda ser adivinado\u00a0mediante\u00a0t\u00e9cnicas estad\u00edsticas avanzadas. Este campo se guardar\u00e1 en el servidor y ser\u00e1 eliminado apenas el formulario sea utilizado ya que una nueva solicitud del formulario deber\u00e1 ser acompa\u00f1ada por un nuevo contenido en el campo. Si se recibe un formulario con un contenido no v\u00e1lido, simplemente se rechaza la solicitud.<\/p>\n<p>Hay quienes han perfeccionado la t\u00e9cnica tambi\u00e9n asignando un nombre aleatorio al campo mediante el mismo concepto. Esta t\u00e9cnica es muy interesante ya que no solo elimina el \u00a0XSRF sino evita que un usuario introduzca dos veces la misma transacci\u00f3n (lo que puede suceder facilmente si el usuario presiona el bot\u00f3n de enviar dos veces porque la conexi\u00f3n es lenta y no ha recibido la respuesta esperada). Adem\u00e1s este sistema evita tambi\u00e9n que el formulario sea escaneado en busca de vulnerabilidades, ya que la gran mayor\u00eda de los &#8220;scanners&#8221; de vulnerabilidades, cargar\u00e1n el formulario una sola vez para luego proceder a &#8220;jugar&#8221; con el contenido de los diferentes campos.<\/p>\n<p><strong>Requerir credenciales de autentificaci\u00f3n nuevamente:<\/strong><br \/>\nEs una interesante t\u00e9cnica que se basa en requerir nuevamente los datos de ingreso del usuario al momento de generar una transacci\u00f3n. Algunos sitios han inclusive generado lo que denominan &#8220;clave para transacciones&#8221; que no es m\u00e1s que un factor adicional de validaci\u00f3n solicitado solamente en caso de generar un procedimiento que involucra movimiento de capital. La desventaja de este m\u00e9todo es lo fastidioso que puede llegar a ser si se hacen muchas transacciones, o el problema que puede significar para el usuario recordar una nueva clave.<\/p>\n<p><strong>One time Passwords:<\/strong><br \/>\nUn OTP o dispositivo que genera claves de acceso de un solo uso es una soluci\u00f3n definitiva ante el XSRF y muchos otros problemas, sin embargo su costo es el principal factor a tomar en cuenta en estos casos. Este tipo de soluci\u00f3n podr\u00eda ser sobre-dimensionada dependiendo del tipo de aplicaci\u00f3n y la cantidad de usuarios de la misma. Si necesitas saber algo m\u00e1s acerca de este tipo de componentes <a href=\"http:\/\/tecnologiasweb.blogspot.com\/2010\/11\/que-son-los-otp-one-time-password.html\">puedes visitar el art\u00edculo que trata acerca de este tema.<\/a><\/p>\n<p>Fuente: <a href=\"http:\/\/tecnologiasweb.blogspot.com\/2010\/12\/que-es-el-cross-site-request-forgery.html\">Blog de Mauro Maulini<\/a> y <a href=\"http:\/\/tecnologiasweb.blogspot.com\/2011\/04\/mas-acerca-de-como-prevenir-el-cross.html\">II<\/a><\/p>\n<div>\nLeido en: <a href=\"http:\/\/blog.segu-info.com.ar\/2011\/10\/prevenir-el-cross-site-request-forgery.html#ixzz1a5txsgpA\">Segu-Info<\/a><br \/>\nUnder Creative Commons License: <a href=\"http:\/\/creativecommons.org\/licenses\/by-nc-sa\/3.0\">Attribution Non-Commercial Share Alike<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Una de las amenazas a las que hace pocos a\u00f1os no se les hizo mucho caso fue el Cross Site Request Forgery conocido por las siglas XSRF o CSRF. El\u00a0CSRF o Cross Site Request Forgery tambi\u00e9n conocido como XSRF, al contrario del XSS que explota la confianza del usuario en un sitio en\u00a0particular, explota la [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-1557","post","type-post","status-publish","format-standard","hentry","category-profesional"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>TalSoft - Seguridad Inform\u00e1tica Empresarial - Prevenir el Cross Site Request Forgery (XSRF)<\/title>\n<meta name=\"description\" content=\"Talsoft transforma la visi\u00f3n de las empresas para que puedan proteger su informaci\u00f3n cr\u00edtica y confidencial frente ataques inform\u00e1ticos. Cons\u00faltenos sin cargo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.talsoft-security.com\/site\/prevenir-el-cross-site-request-forgery-xsrf\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Leandro Ferrari\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.talsoft-security.com\/site\/prevenir-el-cross-site-request-forgery-xsrf\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.talsoft-security.com\/site\/prevenir-el-cross-site-request-forgery-xsrf\/\"},\"author\":{\"name\":\"Leandro Ferrari\",\"@id\":\"https:\/\/www.talsoft-security.com\/site\/#\/schema\/person\/83d2ebde035a5a030c14e522351953c8\"},\"headline\":\"Prevenir el Cross Site Request Forgery (XSRF)\",\"datePublished\":\"2011-10-07T11:24:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.talsoft-security.com\/site\/prevenir-el-cross-site-request-forgery-xsrf\/\"},\"wordCount\":1044,\"publisher\":{\"@id\":\"https:\/\/www.talsoft-security.com\/site\/#organization\"},\"articleSection\":[\"Profesional\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.talsoft-security.com\/site\/prevenir-el-cross-site-request-forgery-xsrf\/\",\"url\":\"https:\/\/www.talsoft-security.com\/site\/prevenir-el-cross-site-request-forgery-xsrf\/\",\"name\":\"TalSoft - Seguridad Inform\u00e1tica Empresarial - Prevenir el Cross Site Request Forgery (XSRF)\",\"isPartOf\":{\"@id\":\"https:\/\/www.talsoft-security.com\/site\/#website\"},\"datePublished\":\"2011-10-07T11:24:40+00:00\",\"description\":\"Talsoft transforma la visi\u00f3n de las empresas para que puedan proteger su informaci\u00f3n cr\u00edtica y confidencial frente ataques inform\u00e1ticos. Cons\u00faltenos sin cargo.\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.talsoft-security.com\/site\/prevenir-el-cross-site-request-forgery-xsrf\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.talsoft-security.com\/site\/#website\",\"url\":\"https:\/\/www.talsoft-security.com\/site\/\",\"name\":\"TalSoft TS - Services IT Security\",\"description\":\"Talsoft is transforming awareness, control and decision-making power so that companies can protect their critical and confidential information from computer attacks.\",\"publisher\":{\"@id\":\"https:\/\/www.talsoft-security.com\/site\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.talsoft-security.com\/site\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.talsoft-security.com\/site\/#organization\",\"name\":\"Talsoft TS\",\"url\":\"https:\/\/www.talsoft-security.com\/site\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.talsoft-security.com\/site\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.talsoft-security.com\/site\/wp-content\/uploads\/2014\/02\/talsoft_logo_270x125.png\",\"contentUrl\":\"https:\/\/www.talsoft-security.com\/site\/wp-content\/uploads\/2014\/02\/talsoft_logo_270x125.png\",\"width\":270,\"height\":125,\"caption\":\"Talsoft TS\"},\"image\":{\"@id\":\"https:\/\/www.talsoft-security.com\/site\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"http:\/\/www.facebook.com\/talsoftsrl\",\"https:\/\/x.com\/talsoft\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.talsoft-security.com\/site\/#\/schema\/person\/83d2ebde035a5a030c14e522351953c8\",\"name\":\"Leandro Ferrari\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.talsoft-security.com\/site\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cd259c10675b9fd302b2e6264231febeeeb3de578400cf8c91c6577e50a0d34a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cd259c10675b9fd302b2e6264231febeeeb3de578400cf8c91c6577e50a0d34a?s=96&d=mm&r=g\",\"caption\":\"Leandro Ferrari\"},\"sameAs\":[\"http:\/\/www.talsoft.com.ar\",\"https:\/\/www.facebook.com\/talsoftsrl\/\",\"https:\/\/x.com\/avatar_leandro\"],\"url\":\"https:\/\/www.talsoft-security.com\/site\/author\/leandro\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"TalSoft - Seguridad Inform\u00e1tica Empresarial - Prevenir el Cross Site Request Forgery (XSRF)","description":"Talsoft transforma la visi\u00f3n de las empresas para que puedan proteger su informaci\u00f3n cr\u00edtica y confidencial frente ataques inform\u00e1ticos. Cons\u00faltenos sin cargo.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.talsoft-security.com\/site\/prevenir-el-cross-site-request-forgery-xsrf\/","twitter_misc":{"Written by":"Leandro Ferrari","Estimated reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.talsoft-security.com\/site\/prevenir-el-cross-site-request-forgery-xsrf\/#article","isPartOf":{"@id":"https:\/\/www.talsoft-security.com\/site\/prevenir-el-cross-site-request-forgery-xsrf\/"},"author":{"name":"Leandro Ferrari","@id":"https:\/\/www.talsoft-security.com\/site\/#\/schema\/person\/83d2ebde035a5a030c14e522351953c8"},"headline":"Prevenir el Cross Site Request Forgery (XSRF)","datePublished":"2011-10-07T11:24:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.talsoft-security.com\/site\/prevenir-el-cross-site-request-forgery-xsrf\/"},"wordCount":1044,"publisher":{"@id":"https:\/\/www.talsoft-security.com\/site\/#organization"},"articleSection":["Profesional"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/www.talsoft-security.com\/site\/prevenir-el-cross-site-request-forgery-xsrf\/","url":"https:\/\/www.talsoft-security.com\/site\/prevenir-el-cross-site-request-forgery-xsrf\/","name":"TalSoft - Seguridad Inform\u00e1tica Empresarial - Prevenir el Cross Site Request Forgery (XSRF)","isPartOf":{"@id":"https:\/\/www.talsoft-security.com\/site\/#website"},"datePublished":"2011-10-07T11:24:40+00:00","description":"Talsoft transforma la visi\u00f3n de las empresas para que puedan proteger su informaci\u00f3n cr\u00edtica y confidencial frente ataques inform\u00e1ticos. Cons\u00faltenos sin cargo.","inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.talsoft-security.com\/site\/prevenir-el-cross-site-request-forgery-xsrf\/"]}]},{"@type":"WebSite","@id":"https:\/\/www.talsoft-security.com\/site\/#website","url":"https:\/\/www.talsoft-security.com\/site\/","name":"TalSoft TS - Services IT Security","description":"Talsoft is transforming awareness, control and decision-making power so that companies can protect their critical and confidential information from computer attacks.","publisher":{"@id":"https:\/\/www.talsoft-security.com\/site\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.talsoft-security.com\/site\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.talsoft-security.com\/site\/#organization","name":"Talsoft TS","url":"https:\/\/www.talsoft-security.com\/site\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.talsoft-security.com\/site\/#\/schema\/logo\/image\/","url":"https:\/\/www.talsoft-security.com\/site\/wp-content\/uploads\/2014\/02\/talsoft_logo_270x125.png","contentUrl":"https:\/\/www.talsoft-security.com\/site\/wp-content\/uploads\/2014\/02\/talsoft_logo_270x125.png","width":270,"height":125,"caption":"Talsoft TS"},"image":{"@id":"https:\/\/www.talsoft-security.com\/site\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/www.facebook.com\/talsoftsrl","https:\/\/x.com\/talsoft"]},{"@type":"Person","@id":"https:\/\/www.talsoft-security.com\/site\/#\/schema\/person\/83d2ebde035a5a030c14e522351953c8","name":"Leandro Ferrari","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.talsoft-security.com\/site\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cd259c10675b9fd302b2e6264231febeeeb3de578400cf8c91c6577e50a0d34a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cd259c10675b9fd302b2e6264231febeeeb3de578400cf8c91c6577e50a0d34a?s=96&d=mm&r=g","caption":"Leandro Ferrari"},"sameAs":["http:\/\/www.talsoft.com.ar","https:\/\/www.facebook.com\/talsoftsrl\/","https:\/\/x.com\/avatar_leandro"],"url":"https:\/\/www.talsoft-security.com\/site\/author\/leandro\/"}]}},"_links":{"self":[{"href":"https:\/\/www.talsoft-security.com\/site\/wp-json\/wp\/v2\/posts\/1557","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.talsoft-security.com\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.talsoft-security.com\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.talsoft-security.com\/site\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.talsoft-security.com\/site\/wp-json\/wp\/v2\/comments?post=1557"}],"version-history":[{"count":1,"href":"https:\/\/www.talsoft-security.com\/site\/wp-json\/wp\/v2\/posts\/1557\/revisions"}],"predecessor-version":[{"id":1558,"href":"https:\/\/www.talsoft-security.com\/site\/wp-json\/wp\/v2\/posts\/1557\/revisions\/1558"}],"wp:attachment":[{"href":"https:\/\/www.talsoft-security.com\/site\/wp-json\/wp\/v2\/media?parent=1557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.talsoft-security.com\/site\/wp-json\/wp\/v2\/categories?post=1557"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.talsoft-security.com\/site\/wp-json\/wp\/v2\/tags?post=1557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}