Remediando la seguridad nacional

Indice:

A fin de hacer un uso indicado del tiempo, se estableció que en la reunión se haría foco en 4 temas principales.

  1. ¿Quien soy, y porque me interesa ayudar?
  2. Fallas de seguridad que logré localizar
  3. Un plan de acción a fin de remediar las condiciones analizadas en (2).
    1. A fin de localizar, e informar fallas de seguridad con mayor fluidez
    2. Llevar la seguridad online de la web nacional a niveles de excelencia.
  4. Posibles formas de crear un equipo.

Recuerdo que Diego Gonzalez mencionó que por ahora no era necesario un CV, el cual, en cualquier caso no dispongo de ninguno, y que pidio hacer referencia especial a las fallas localizadas. La mayoría de la información se basa en las fallas, sin embargo, le pido disculpas, ya que consideré apropiado hacer una breve referencia sobre mi, dado que en cualquier caso, no poseo un curriculum.

1. Breve referencia sobre mi.

Christian Carlos Russo, Nací en Nuñez, Ciudad de Buenos Aires, Argentina. Probablemente tenga alguna deuda con alguna empresa y en algún momento fui un monotributista. Vivo en Palermo, se pueden comunicar conmigo al +5491122739153, cuando no me encuentro en el país: por medio de skype: chrusso99 o via email: chris.russo99

Julio del 2010: Gano acceso a la rede de bittorrent más grande del mundo (TPB), y decido informarle a la prensa, lo cual generó mucha polémica. Enero del 2011: descubro fallas de seguridad en decenas de redes sociales, las cual decido informar, 2 de ellas cobraron muchísima relevancia y aún al día de hoy muchas personas consideran que mis acciones no fueron las adecuadas. Diversos diarios comenzando por Clarin a nivel nacional, cubrieron la información.

Referencias:

Algunas personas mencionaron el episodio de TPB como una de las maniobras de hacking (aunque solo he informado!) más increíbles del año.

Informé varias fallas de seguridad en el proceso de la creación del LHC y aún conservo la relación con algunos de los ingenieros del CERN. Fui empleado de una firma de seguridad nacional por dos meses, renuncie por diferencias con el empleador, quien en mi opinión no sabía referirse de manera adecuada las personas.

Firmas, conferencias y cursos:

Los próximos 6 años, desde mis 22 años a el día de hoy me dediqué a realizar aplicaciones y revisiones de seguridad para diversas firmas, bancos y gobiernos. Incluyendo un proceso de casi 2 años desarrollando mecanismos de seguridad en Riyadh, Saudi Arabia. Las especificaciones sobre lo que hice, en su gran mayoría son confidenciales, por medio de acuerdos firmados.

Realicé algunos acuerdos con empresas nacionales, las cuales espero que hayan quedado conformes, y creo poder darles referencia en caso de que así lo deseen o requieran.

En caso de querer saber más de mi, por favor, háganmelo saber.

2. Fallas de seguridad que logré localizar

El análisis y la creación del resumen (aquí) fue realizado el día Sabado 25, y Domingo 26,  dos días previos a la reunión. No me fue posible asignar más días. Espero que las fallas localizadas alcancen para probar la idea. Voy a sacar algunas conclusiones al finalizar.

http://fsockopen.com/sec_pocs/fallas_nacionales/anses_01_csrf_and_disclosure.html

El parámetro “needle” falla en validar el valor “0” y devuelve toda la información disponible sobre localizaciones. Además es posible hacer un CRSF (También conocido como XSRF) en diversas secciones del servicio web. Se prueban ambas fallas de seguridad. La aplicación carece de varias validaciones necesarias. Recordemos que son localidades, pero si fuera información sensible, sería un riesgo mucho mayor.

http://fsockopen.com/sec_pocs/fallas_nacionales/buenos_aires_ciudad_01_poco_serio_sarasa.html

Una página deprecada, que quedó abandonada, en los servidores del gobierno de la Ciudad de Buenos Aires. Se puede leer “sarasa” en la web… no considero que sea una falla de seguridad, pero no creo que quede serio para inversores o personas que evalúen la seguridad, del mismo modo que lo puedo hacer yo. Queda, muy poco serio.

http://fsockopen.com/sec_pocs/fallas_nacionales/buenos_aires_ciudad_02_server_error.html

Un error interno en el servidor, consecuencia de fallas de validación en el parámetro de búsqueda keys. Es posible que haya una inyección SQL, ya que he observado diversas respuestas similares. No puedo confirmar la inyección SQL porque no quiero romper ninguna ley, ni avanzar más de lo debido.

http://fsockopen.com/sec_pocs/fallas_nacionales/buenos_aires_ciudad_03_xss_1.html

Se presenta de nuevo la misma falla, ahora probando la presencia de un XSS en la misma variable. Indica que no hay casi ningún mecanismo de validación. Cuando es posible hacer un XSS, muchas veces, es posible realizar una inyección hacia la db.

http://fsockopen.com/sec_pocs/fallas_nacionales/buenos_aires_ciudad_04_xss_2.html

Una prueba un poco más clara de la capacidad de la inyección de HTML. Como pueden ver la validación es nula, y la información es usada en diversas posiciones de la aplicación. Veo muy viable que la falla de seguridad que vemos, sea posible codificarla, para ser usada como un arma (lo que diríamos “weaponized” en inglés), hacer uso de la falla para sacar alguna clase de información.

http://fsockopen.com/sec_pocs/fallas_nacionales/buenos_aires_ciudad_05_drupal_expose.html

Menú de instalación de Drupal (un sistema de gestión de contenido) con el cual parece haber sida realizada la página web. Ahora podemos confirmar que es Drupal, y buscando en el código, podríamos ver el enlace hacia: http://www.buenosaires.gob.ar/misc/drupal.js?0, y ver a que versión de drupal corresponde el JS. La información que es posible recopilar nos daría lugar a buscar errores (vulnerabilidades especificas) ya clasificadas para ese sistema y la versión especifica del mismo. En adición los archivos de instalación siempre deberían de ser eliminados, no es una buena idea. 

http://fsockopen.com/sec_pocs/fallas_nacionales/infoleg_01_explica_mecanismos_de_seguridad.html

www.infoleg.gob.ar usa iframes en diversos lugares. XSRF de nuevo, y lo he usado para referirme a una sección, donde dadas algunas variables de manera equivoca, la aplicación decide revelarnos información sobre como funcionan las medidas de seguridad. Inapropiado, porque nos da la chance de saber como evadirlas…

http://fsockopen.com/sec_pocs/fallas_nacionales/infoleg_02_xsrf_01_armamos_cookies.html

El primer link debe ser accedido primero para generar las cookies, las vamos a usar para acceder al segundo link… se usa solo a modo de referencia.

http://fsockopen.com/sec_pocs/fallas_nacionales/infoleg_03_xsrf_cookies_p_server_error.html

Podemos ver más información enviada por medio de XSRF, generando errores en el servidor, los cuales no son administrados por la aplicación.

http://fsockopen.com/sec_pocs/fallas_nacionales/infoleg_04_xsrf_inyeccion_sql_oscura_falso.html

XSRF + Posible inyección SQL, decidí no hacer demasiada presión acá, dada la posibilidad de que alarmara a alguien sin ninguna razón en el fin de semana. Lo que se puede ver es el envío de la variable “texto” con el valor “if(9945=123,foo,bar);”, la cual es, casi sin duda alguna, procesada por código de la aplicación o bien, una base de información. El envio es realizado por medio de un XSRF (se podria hacer sin el XSRF, pero aprobecho para presentar al menos dos fallas a la vez).

http://fsockopen.com/sec_pocs/fallas_nacionales/infoleg_05_xsrf_inyeccion_sql_oscura_verdadero.html

A fin de comprender la lógica de la inyección, es necesario enviar una ecuación inversa: enviando if(983=983,foo,bar); el servidor genera un error (500), dado que el número es igual. En caso de que el número no sea igual if(9945=123,foo,bar), las funciones no son requeridas, por lo cual, pre-asumo, no genera el error. Lo cual podría ser clasificado como un XSRF combinado con el principio de una inyección SQL, que se ve muy posible.

http://fsockopen.com/sec_pocs/fallas_nacionales/inversiones_01_defensa_expresiones_regulares_bienvenido.html

Parece no haber ningún problema cuando se le pide @@ersion, pero se puede ver el uso de algun waf, al pedirle @@version,

http://fsockopen.com/sec_pocs/fallas_nacionales/inversiones_02_defensa_expresiones_regulares_rechazado.html

Acá podemos ver como responde cuando agregamos la v inicial a la variable. (Recordemos que aún enviamos información por medio de XSRF)

http://fsockopen.com/sec_pocs/fallas_nacionales/produccion_01_dos_menosdos.html

El servidor responde con una conversión donde el valor -2 pasa a ser 22, he probado con diversos valores numéricos pero no pude clasificar la anomalía, sin embargo, se que si se realizan operaciones de esa clase sobre una cadena de información recibida por el usuario, puede ser indicio de una falla de seguridad mayor, ya que es claro que hay operaciones matematicas, siendo realizadas sobre la información enviada.

http://fsockopen.com/sec_pocs/fallas_nacionales/produccion_02_full_disclosure.html

De nuevo un error 403 siendo administrado directamente por el servidor. Revelando información sobre el servidor y la versión siendo usadas, lo cual, le permite a un atacante, seleccionar, en caso de haber disponible, exactamente el exploit indicado para el servicio. IIS 8.5, luego podríamos buscar vulnerabilidades para IIS 8.5 y localizar: https://www.cvedetails.com/vulnerability-list/vendor_id-26/product_id-3427/version_id-174653/Microsoft-Internet-Information-Services-8.5.html, y https://www.cvedetails.com/cve/CVE-2014-4078/ informe que indica la presencia de fallas de seguridad en el servicio. De acuerdo al informe:

The IP Security feature in Microsoft Internet Information Services (IIS) 8.0 and 8.5 does not properly process wildcard allow and deny rules for domains within the “IP Address and Domain Restrictions” list, which makes it easier for remote attackers to bypass an intended rule set via an HTTP request, aka “IIS Security Feature Bypass Vulnerability.”

La vulnerabilidad fue publicada el 11/11 del 2014, hace ya dos años.

http://fsockopen.com/sec_pocs/fallas_nacionales/dni_secuencia_cors

Para finalizar, veamos 3 modelos de fallas “afiladas” o su expresión original en inglés “weaponizadas”. Lo que podemos ver abriendo el link, es una mecanismo de exploración haciendo uso combinado de diversas fallas de seguridad. Hice foco en el servicio de generación del nuevo DNI.

Lo que podemos observar es una falla de los headers vinculados al same-origin policy, eso hace posible poner la web en un iframe. Es posible crear las cookies desde el iframe, luego, se realizan cargas secuenciales en el mismo iframe, simulando una navegación del usuario, por medio del uso de AngularJS. Al finalizar el proceso de creación de las cookies, se llena un formulario y se envía, usando XSRF en combinación con las cookies generadas y la falla en CORS (https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS) se siguen llenando formularios y se frena habiendo generado un nuevo record en la base de datos.

http://fsockopen.com/sec_pocs/fallas_nacionales/dni_secuencia_cors_mayor_velocidad/

Decidí hacer una versión a mayor velocidad a fin de demostrar que es posible hacer diversos usos de las fallas localizadas. Como podemos observar, todas los mecanismos de seguridad son evadidos sin ninguna complicación, ya que los mecanismos de validación se basan en JS.

http://fsockopen.com/sec_pocs/fallas_nacionales/dni_secuencia_cors_mas_valocidad_xss

Se combinan las fallas de seguridad previas y se suma un XSS, además de eso, se eleva la velocidad a la que la información es enviada. Es necesario aclarar que el vinculo a comenzar puede ser removido, lanzando la función desde JS, sin hacer uso del botón.

Resumen general sobre la condición.

Las páginas web oficiales de la república poseen miles de fallas de seguridad, y solo he usado algunas que logré localizar en el fin de semana para probar una idea. Casi cualquier página finalizada en .gob.ar o .gov.ar posee una colección de fallas que haría posible a miles de personas bypasear los mecanismos de seguridad de las aplicaciones y servidores. A modo de referencia, hay una presencia amplia de:

  • Inyecciones SQL o posibles inyecciones SQL (no lo he comprobado)
  • XSS
  • Carencia de mecanismos de validación.
  • Mecanismos de validación basados en JS que pueden ser evadidos.
  • Revelación de información por medio de errores
  • Revelación de información por medio de headers de la aplicación.
  • XSRF/CSRF
  • Recursos web deprecados y/o abandonados, algunos con funcionalidad
  • Quedan debidamente informados de la situación actual.
  • Carencia de cualquier mecanismo para frenar una denegación de servicio.
  • Carencia de mecanismos básicos de seguridad que se usan como medidas básicas desde hace más de 10 años.
  • Carencia de headers que impidan el uso de las aplicaciones web por medio de iframes o bien, como recursos incluidos.
  • Inclusión de diversos recursos que corresponden a firmas americanas.
  • La inclusión de recursos no debería de ser hecha así, sino que deberían ser descargados, analizados, y luego empleados de manera local.
  • En especial cuando es el caso de mecanismos y servicios del gobierno de una nación.

La seguridad de las aplicaciones web nacionales no es buena, y corremos riesgos de que cualquier persona, desde cualquier lugar del mundo, viole los mecanismos de seguridad de las aplicaciones que poseemos en linea. El país posee profesionales capaces y dispuestos a hacerlo mucho mejor.

3. Plan de acción

Mi plan de acción original fue mencionado en el primer archivo .doc que he enviando, donde propongo:

Analizar la seguridad de cada una de las aplicaciones y servicios web de manera individual, para luego informar cada una de las fallas, y corregirlas en equipo con los programadores; a cambio de la remuneración que corresponda. Sin embargo, mi deseo es corregir las fallas de seguridad como sea que sea necesario, por lo cual, me dispongo acá a escuchar y seguir cualquier plan de acción formulado. Quiero llevar la seguridad de la web del país a los niveles que he ayudado a reforzar aplicaciones en diversos lugares.

4. Posibles formas

Me dispongo a hacer equipo con Uds, como empresa o como persona, en horario de oficina, o desde casa, o como sea necesario y consideren y prefieran en caso de que así quieran hacerlo, a fin de solucionar el problema de seguridad nacional.

Quedan debidamente informados y desde ya muchas gracias;
A su disposición, 

Comments

comments

chris

Programo, escribo, leo, cuido animales, colecciono flora, fauna, perfumes y oleos, reviso e informo fallas de seguridad para organizaciones y empresas.