Protection of Web applications with behavioral biometrics.
Custom Bot module
Visit Site
·
Report Bug
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.
- 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
To get a local copy up and running follow these simple steps.
Things you need to install before running:
Python 3.8
Pip3
- 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/
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 inbatch_runner.py
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
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
Distributed under the MIT License. See LICENSE
for more information.
Mail - mouse.bb.team@gmail.com
Project Link: https://github.com/Mouse-BB-Team
Our thesis supervisor:
- Kamil Kaliś – kamkali
- Piotr Kuglin – lothar1998