viernes, 13 de mayo de 2016

Medicinas para levantarle el ánimo a tu aplicación de código abierto (1)

Con frecuencia, quienes vulneran la seguridad de un sitio web introducen en él modificaciones sutiles, no visibles para los usuarios normales. Cambios que suelen pasar inadvertidos incluso a los administradores de sistemas con objeto de evitar ser eliminados. Un ejemplo sería la inclusión de enlaces invisibles con objeto de promocionar ciertas páginas web, técnica ampliamente utilizada por los amigos del lado oscuro del SEO. Vamos, lo que siempre se ha llamado "defacement" pero en plan discreto.

Tarde o temprano, estos individuos tenían que encontrarse con los repositorios de software libre, esos sitios web que tratan de convertirse en paraísos para los desarrolladores ofreciéndoles todo tipo de servicios y funcionalidades: trabajo colaborativo, gestión de versiones, repositorios de conocimiento, páginas web personalizadas para los usuarios y los proyectos, sistemas de gestión de bugs,... Cuanto pueda pensarse y un poco más.

Algunos son, además gratuitos. Tal es el caso de Github, SourceForge, o Bitbucket. Y "gratuito" es una palabra que, en lo que respecta a Internet, debe dar siempre que pensar.

Un servicio gratuito bajo un dominio que disfruta de buena reputación ante los buscadores y que permite crear sitios web personalizados, alojar ficheros de texto o con código y todo ello sin cometer delitos castigados por el código penal...

Muchas veces, cuando los ciberdelincuentes consiguen vulnerar un sistema, en lugar de modificar directamente su código según deseen, le añaden código que descarga desde un tercer sitio los cambios que hay que realizar. De ese modo tienen un "centro de mando" único desde el que actualizar sus redes de sitios web zombies. ¿Utilizará alguien algún repositorio de software libre para estos fines?

 Se puede comenzar tratando de buscar en Sourceforge documentos de texto que contengan código HTML con referencias a algún medicamento (por ejemplo, la Levitra) y enlaces:
site:sourceforge.net "levitra" "a href"

Lo que se encuentra, al menos cuando estoy escribiendo esto, no es exactamente lo que se pretendía:

ATENCIÓN: Pruebas como ésta hay que hacerlas con cuidado, que nunca se sabe quién anda detrás de todo esto. ¡NIÑOS: NO INTENTÉIS HACER ESTO EN CASA! Y si alguien lo hace, que tome sus precauciones y que no se extrañe si alguna vez le salta el antivirus. 

El caso es que si se hace clic en el enlace del resultado, que incluso tiene una buena valoración en SourceForge (4,6 sobre 5 y 705 reseñas) se descargará una página que ejecuta código JavaScript que descarga de un tercer sitio y que fuerza una redirección que al final te lleva a una página ajena a SourceForge:

La URL proporcionada por Google corresponde a la web de un  projecto de SourceForge llamado bombusmd. Como ya sabréis, para ver y/o descargarse el código de un proyecto de este repositorio se usa una URL que comienza por "https://sourceforge.net/projects/" y a continuación se pone el nombre del proyecto. No voy a ponerle un enlace aquí por razones obvias. Eché un vistazo y...

El proyecto está vacío: ni descargas, ni ficheros con código, ni wiki, ni tickets. Nada de nada. El autor tiene un segundo proyecto y ... lo mismo. Eso sí, el sitio web de este otro proyecto si lleva lo suyo

Es un argumento que se repite: creación automatizada de cuentas, creación de proyectos vacíos, población de los sitios web de los proyectos con contenidos para promocionar páginas web... y a volver a empezar. Y, mientras tanto, unas cuentas van votando a otras para ganar estrellas. Todo ello de forma automática.

¿Y por qué no? Al fin y al cabo, les sale gratis.

Otros, en lugar de aprovecharse del sitio web del proyecto, utilizan el de su cuenta de usuario:

Y hay más variantes. Ya las iremos viendo. Por hoy acabaremos con unas notas sobre una cosa que posiblemente sepáis, pero que creo que siempre está bien dejar por ahí. SourceForge tiene una API y un sitio donde leer su documentación y jugar con ella. Esto permite obtener, por ejemplo, datos sobre un desarrollador a partir de su nombre de usuario con URLs como:

https://sourceforge.net/rest/u/_nombre de usuario_

O
https://sourceforge.net/rest/u/_nombre de usuario_/profile

Claro está... los datos que él haya puesto.

No hay comentarios:

Publicar un comentario