Social Lab is a social network software designed for research. It is non-proprietary, flexible, free (Affero General Publice License version 3), and open: any portion of it can be adapted to specific needs, and all navigation and communication data are available to the researcher.
There are other social software packages available to deploy social networks. However, Social Lab integrates social bot functionality to stimulate and simulate social interactions.
The journal Behavior Research Methods has accepted for publication our article about Social Lab: (PDF). The reference is:
Social Lab is a "social sandbox", a bounded and safe place to socialize, play, and experiment.
A wargame in hacking is a security challenge in which one must exploit a vulnerability in a system or application or gain access to a system. Players need to use their hacker skills to achieve each challenge.
However, Social Lab is an special wargame because is focused on social engineering.
While it is similar to a confidence trick or simple fraud, social engineering is typically trickery or deception for the purpose of information gathering, fraud, or computer system access; in most cases the attacker never comes face-to-face with the victims.
Social engineering as an act of psychological manipulation had previously been associated with the social sciences, but its usage has caught on among computer professionals.
Social Lab code is released under a free software license (Affero General Publice License version 3).
Images of fake profiles provided by Social Lab wargame on privacy are property of David Niblack and released under a Creative Commons Attribution 3.0 license.
<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>
$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" }
CREATE DATABASE social;
GRANT ALL ON social.* TO 'social'@'localhost' IDENTIFIED BY 'YOURpassword';
php symfony propel:data-load
crontab -e */5 * * * * /usr/bin/lynx --dump http://domain.org/default/scheduler
Each time a friend request is sent, Social Lab checks if there is a social bot involved. If that is the case, Social Lab creates a new scheduled task. Scheduled tasks are processed periodically by the Task Scheduler. Therefore, the interactions of social bots are not immediate.
Each scheduled task is defined by the following parameters:
To program a social bot the following steps must be done:
The simplest example, an "always accept" bot:
A more complex example:
Social Lab's public repository is publicly available at GitHub.