Skip to content

Protection of Web applications with behavioral biometrics – custom bot module

License

Notifications You must be signed in to change notification settings

Mouse-BB-Team/Custom-Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

release-date code-size tag Website Contributors Last-commit Languages MIT License


Logo

Mouse Behavioral Biometrics

Protection of Web applications with behavioral biometrics.
Custom Bot module
Visit Site · Report Bug

Table of Contents

About The Project

This project was created in the manner of preparing the bachelor's degree thesis on AGH University of Science and Technology, Department of Computer Science, Electronics and Telecommunications. This module is a custom bot implementation, which imitates traffic on a Web site. The data generated by the bot will be used by the Machine Learning model to distinguish a real human user from a bot that impersonates an human behavior.

Built With

  • Python – programming language used
  • pyclick – library for generating human-like mouse movements
  • PyAutoGUI – library used to programmatically control the mouse & keyboard
  • pynput – library to control and monitor input devices
  • PyYAML – librart to parse YAML files

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

Things you need to install before running:

Python 3.8
Pip3

Installation

  1. Clone the repo and install required packages:
git clone https://github.com/Mouse-BB-Team/Custom-Bot.git
cd Custom-Bot/
pip3 install -r requirements.txt
cd human-clicker-bot/

Collector:

The collector module is responsible for capturing the sequences of mouse events. It is capable of recording click, move and scroll mouse actions:

  • Press left mouse button to record 'click' at an cursor position
  • Press Caps-lock to record 'move' to the current cursor position
  • Scroll Up/Down to record 'scroll' action

This command will initiate the collector to capture mouse events and saves it to the .yaml file:

python3 sequence_collector.py -f <path_and_filename>.yaml -n <name_of_sequence> -i <sequence_identifier>
  • <path_and_filename> – path to the location to save an output of the collector as a yaml file
  • <name_of_sequence> – descriptive name of the recorded sequence
  • <sequence_identifier> – identifies the order of sequence execution in batch_runner.py

Executor:

The executor module is responsible for executing previously recorded sequences. The module performs movement basing on Beziér curves.

This command will initiate the executor to run previously recorded sequence from .yaml file:

python3 sequence_executor.py -f <path_and_filename>.yaml
  • <path_and_filename> – path to the yaml file with recorded sequence

Batch Runner:

The batch runner module is responsible for executing a set of previously recorded sequences with given delay between each one.

This command will initiate the batch runner:

python3 batch_runner.py -d <path_to_direcotry> -t <delay>
  • <path_to_direcotry> – path to the directory with set of yaml files
  • <delay> – time delay in seconds between each sequence

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Mail - mouse.bb.team@gmail.com

Project Link: https://github.com/Mouse-BB-Team

Acknowledgements

Our thesis supervisor:

Authors