Crea tu propio laboratorio de redes sociales


red social, tus reglas

Software Libre

¡Prueba nuestros servidores de demo!

Fácilmente personalizable

Download (Github)

¿Qué es Social Lab?

Una herramienta de investigación

Social Lab es un software de redes sociales diseñado para investigar. Es abierto, libre (Affero General Publice License version 3), flexible y no propietario: cualquier parte puede adaptarse a necesidades específicas, y todos los datos de navegación y comunicaciones están disponibles para la investigación.

Existen otros paquetes de software para desplegar redes sociales. Sin embargo, Social Lab integra la funcionalidad de social bots para estimular y simular interacciones sociales dentro de la red.

La revista Behavior Research Methods ha aceptado nuestro artículo sobre Social Lab: (PDF). La referencia es:

Garaizar, P, & Reips, U.-D. (2014). Build your own social network laboratory with Social Lab: A tool for research in social media. Behavior Research Methods, Volume 46, Issue 2, pp 430-438.

Tu propia red social

Social Lab proporciona un "cajón de arena social", un lugar acotado y seguro en el que socializar, jugar y experimentar.


Funcionalidades

Red social

  • Perfiles de usuario.
  • Peticiones de amistad.
  • Mensajes públicos y privados.
  • Fotos y etiquetas.
  • Páginas de interés, etc.

Social bots

  • Personalizables: crea tu propio bot en segundos empleando el interfaz gráfico para ello.
  • Trazables: todas las tareas programadas son registradas para su posterior análisis.
  • Con estado: capaces de desplegar comportamientos complejos basados en estados previos.

Manejo de datos

  • Aplicación CRUD de backend.
  • Filtros, consultas, ordenaciones.
  • Modelo de datos sencillo.
  • URLs amigables.

Demo: Social Lab como un wargame en privacidad

Wargame

Un wargame es un reto relacionado con la seguridad informática en el que es necesario explotar una vulnerabilidad de un sistema o aplicación para lograr acceder al sistema. Las personas que participan en el reto han de emplear técnicas hacker para lograr superarlo.

Sin embargo, Social Lab es un wargame un tanto especial puesto que está orientado hacia la ingeniería social.

Ingeniería social

La Ingeniería social, en el contexto de la seguridad informática, es el arte de manipular a gente para que realicen determinadas acciones o divulguen información confidencial.

La ingeniería social como un acto de manipulación psicológica ha sido asociada previamente con las ciencias sociales, pero actualmente es habitual su presencia en ámbitos propios de las nuevas tecnologías.

Licencia

El código de Social Lab está publicado bajo una licencia libre (Affero General Publice License version 3).

Las imágenes empleadas para crear los falsos perfiles del wargame en privacidad con Social Lab son propiedad de David Niblack y han sido publicada bajo una licencia Creative Commons Attribution 3.0.

¡A jugar!

Simplemente crea una cuenta de usuario, entra, y ¡empieza a resolver retos de ingeniería social!

Multilingüe

Actualmente hay 4 servidores de demo de Social Lab como wargame en privacidad en diferentes idiomas:

Inglés.
Español.
Alemán.
Euskera.

Documentación

Requisitos

  1. Un servidor web compatible con PHP 5 (por ejemplo, Apache, Lighttpd, IIS, etc.).
  2. El framework Symfony 1.4.
  3. Un servidor de bases de datos compatible con Symfony 1.4 (por ejemplo, MySQL, PostgreSQL, etc.).
  4. Opcional (pero muy recomendable): una conexión de red para el juego multijugador.

Configuración

  1. Descarga un ZIP y descomprímelo o clona el repositorio git de Social Lab para obtener el código fuente.
  2. Configura tu servidor web para proporcionar acceso al directorio /web de Social Lab.
    • En Apache:
      <VirtualHost *:80>
        ServerName yoursociallab.org
        DocumentRoot "/var/www/yoursociallab/web"
        DirectoryIndex index.php
      
        Alias /sf /var/www/yoursociallab/lib/vendor/symfony/data/web/sf 
        <Directory "/var/www/yoursociallab/lib/vendor/symfony/data/web/sf">
          AllowOverride All
          Allow from All
        </Directory>
      
        <Directory "/var/www/yoursociallab/web">
          AllowOverride All
          Allow from All
        </Directory>
      </VirtualHost>
      
      
    • En Lighttpd:
      $HTTP["host"] =~ "^(yoursociallab.org)$" {
          server.document-root = "/var/www/yoursociallab/web"
          server.errorlog-use-syslog = "enable"
          accesslog.filename = "/var/log/lighttpd/yoursociallab.access.log"
          
          server.max-keep-alive-requests = 0
          server.max-keep-alive-idle = 0
      
          fastcgi.server = ( ".php" => ((
              "bin-path" => "/usr/bin/php5-cgi",
              "socket" => "/tmp/php.socket"
          )))
      
          server.indexfiles = ( "index.php", "index.html")
      
          alias.url = (
              "/sf" => "/var/www/yoursociallab/lib/vendor/symfony/data/web/sf"
          )
      
          url.rewrite-once = (
          "^/(js|images|uploads|css|sf)/(.*)" => "$0",
          "^/[a-zA-Z_-]+\.(html|txt|ico)$" => "$0",
          "^/sf[A-Z][a-z]+Plugin.*" => "$0",
          "^/([a-z_]+)\.php([^.]*)$" => "/$1.php$2",
          "^/(.*)\.(.*)$"    => "/index.php/$1.$2",
          "^/([^.]+)$"      => "/index.php/$1",
          "^/$"             => "/index.php"
          )
      
          server.error-handler-404 = "/index.php"
      }
  3. Configura la base de datos:
    1. Crea la base de datos:
      CREATE DATABASE social;
    2. Crea un usuario con privilegios:
      GRANT ALL ON social.* TO 'social'@'localhost' IDENTIFIED BY 'YOURpassword';
  4. Carga los datos de Social Lab en la base de datos empleando los ficheros de fixtures:
    php symfony propel:data-load

  5. Configura una tarea programada (vía cron) para llamar al Gestor de Tareas de Social Lab:
    crontab -e
    */5 * * * * /usr/bin/lynx --dump http://domain.org/default/scheduler

Define nuevos social bots

Cada vez que se envía una petición de amistad, Social Lab comprueba si involucra a un perfil automatizado (también conocidos como bots). Si ese es el caso, Social Lab crea una nueva tarea programada. Las tareas programadas son procesadas periódicamente por el Gestor de Tareas. Por lo tanto, las interacciones con perfiles automatizados no son inmediatas.

Cada tarea programada se define por los siguientes parámetros:

  • From: el perfil de usuario del bot involucrado.
  • To: el perfil del usuario involucrado.
  • Step: el número de paso actual en el procedimiento automatizado del bot (0, 1, 2, etc.).
  • Status: el estado de la tarea programada (pendiente o aceptada).

Para programar un perfil automatizado es necesario realizar los siguientes pasos:

  1. Añadir una nueva fila a la tabla Bot, definiendo el ID de un perfil existente y una breve descripción.
  2. Definir el comportamiento del perfil automatizado empleando los comandos disponibles en la tabla Command (Send Message, Check Request, Accept Friendship, etc.).
  3. Si alguno de los comandos necesarios para definir el comportamiento del bot emplea mensajes, es necesario definirlos como filas en la tabla Automsg.
  4. Añadir nuevas filas a la tabla Step, definiendo el bot al que se refieren, el comando que ha de procesarse, el órden de ejecución y un mensaje opcional (una referencia a una fila en la tabla Automsg)
Ejemplos

El ejemplo más simple, un bot "aceptar siempre":

  1. Añade una nueva fila a la tabla Bot: id = B, user = 30, description = 'Always accept bot'.
  2. Define su comportamiento: Accept Friendship.
  3. Añade una nueva fila a la tabla Step: bot = B, command = Accept Friendship, step order = 0, automsg = null.

Un ejemplo algo más complejo:

  1. Añade una nueva fila a la tabla Bot: id = B, user = 23, description = 'Check location bot'.
  2. Define su comportamiento: Send Message ('Are you from my home town?') > Check location > Accept Friendship.
  3. Dado que uno de los comandos del comportamiento del bot emplea un mensaje, es necesario añadir una nueva fila en la tabla Automsg: text = 'Are you from my home town?', id = M, user = null (este mensaje no hace referencia a ningún perfil de usuario).
  4. Añade nuevas filas a la tabla Step:
    • bot = B, command = Send Message, step order = 0, automsg = M.
    • bot = B, command = Check Location, step order = 1, automsg = null.
    • bot = B, command = Accept Friendship, step order = 2, automsg = null.

¡Haz tu propio fork de Social Lab!

El repositorio de código de Social Lab está disponible de forma pública en GitHub.