bci
Framework for P300 wave detection and noise-based cyberattacks in Brain-Computer Interfaces - Enrique Tomás Martínez Beltrán
Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 10 DOI reference(s) in README -
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.9%) to scientific vocabulary
Keywords
Repository
Framework for P300 wave detection and noise-based cyberattacks in Brain-Computer Interfaces - Enrique Tomás Martínez Beltrán
Basic Info
Statistics
- Stars: 6
- Watchers: 3
- Forks: 2
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md
Brain-Computer Interface Project
Framework for P300 wave detection and noise-based cyberattacks in Brain-Computer Interfaces
Noise-based Cyberattacks Generating Fake P300 Waves in Brain-Computer Interfaces
About the project
Implementation of a framework for EEG signal acquisition from a BCI, signal processing, and P300 detection using trained classifiers. Besides, it deploys a scenario where P300 evoked potentials are generated through the Oddball paradigm and visual stimuli.
This project is part of the End of Degree Project in Computer Engineering at the University of Murcia.
This repository contains a related code for the paper Noise-based cyberattacks generating fake P300 waves in brain–computer interfaces and the chapter SecBrain: A Framework to Detect Cyberattacks Revealing Sensitive Data in Brain-Computer Interfaces
Prerequisites
- Python version 3.7 or more, pyenv recommended
- pip3
Installation
- Clone the repo
sh git clone https://github.com/enriquetomasmb/bci-tfg.gitWith--branch developyou will get the developing branch.sh git clone --branch develop https://github.com/enriquetomasmb/bci-tfg.git - Change to project directory
- (Optional) Create your virtual environment, and activate it (you can also use
condato create the virtual environment) ```sh python -m venv env
source env/bin/activate # Linux/Mac
env/Scripts/activate # Windows
3. Install required packages
sh
pip3 install -r requirements.txt
4. Enter your API in `main.py`
python
API = ''
``` API used in Mode 2 (automatic mode) to obtain random images in experiments
See the API documentation for more information on how to get your own API.
Usage
main.py
This file is the core of the implementation performed. The user who created the experiment will only have to run this script with the appropriate parameters for optimum performance. The possibility to vary the parameters allows to have a more dynamic and adjusted experiment.
Run main.py
sh
python main.py
Optional arguments:
| Parameter | Default | Description |
| :------------------------ |:-------------:| :-------------|
| -n --name | exp_{datetime} |Name of the experiment
| -dim --dim | [1920,1080] |Size Monitor
| -dm --distmon | 67 |Distance to the monitor (cm)
| -m --mode | 2 |Program execution mode
| -i --images | 30 |Number of different images used in the experiment
| -p --prob | 0.1 |Probability of appearance of the target in the experiment (per unit)
| -tt | 5 | Target display time (seconds)
| -in | 0.250 |Elapsed time between images (seconds)
| -io | 0.150 |Offset time of each image (seconds)
| -j | 0.2 |Variable jitter time when displaying image (seconds)
| -v --version | |Version of the program
| -a --about | |Program developer information
| -h --help | |Help on using the program
signal_analysis.ipynb
In this Jupyter Notebook you will find all the analysis and processing of the EEG signal.
This EEG signal is obtained by running the main.py alongside the OpenBCI brain-machine interface.
It also includes the detection of the P300 evoked potential, as well as classification processes to determine its presence. Finally, adversarial attack techniques using signal noise are applied. This demonstrates the possibility of the P300 wave disappearing or being attenuated.
All explanations can be found in the file signal_analysis.ipynb
For more information, see the research in the TFG document.
Tools
- OpenBCI Cyton - EEG Recording
- Python - Python and the libraries for the creation of the experiment and EEG signal synchronization
Roadmap
See the open issues for a list of proposed features (as well as known issues).
Author
Citation
If you use this repository, please cite our paper
@article{MartinezBeltran:2021,
author={Mart{\'i}nez Beltr{\'a}n, Enrique Tom{\'a}s
and Quiles P{\'e}rez, Mario
and L{\'o}pez Bernal, Sergio
and Huertas Celdr{\'a}n, Alberto
and Mart{\'i}nez P{\'e}rez, Gregorio},
title={Noise-based cyberattacks generating fake P300 waves in brain--computer interfaces},
journal={Cluster Computing},
year={2021},
month={Jul},
day={10},
abstract={Most of the current Brain--Computer Interfaces (BCIs) application scenarios use electroencephalographic signals (EEG) containing the subject's information. It means that if EEG were maliciously manipulated, the proper functioning of BCI frameworks could be at risk. Unfortunately, it happens in frameworks sensitive to noise-based cyberattacks, and more efforts are needed to measure the impact of these attacks. This work presents and analyzes the impact of four noise-based cyberattacks attempting to generate fake P300 waves in two different phases of a BCI framework. A set of experiments show that the greater the attacker's knowledge regarding the P300 waves, processes, and data of the BCI framework, the higher the attack impact. In this sense, the attacker with less knowledge impacts 1{\%} in the acquisition phase and 4{\%} in the processing phase, while the attacker with the most knowledge impacts 22{\%} and 74{\%}, respectively.},
issn={1573-7543},
doi={10.1007/s10586-021-03326-z},
}
or our chapter
``` @incollection{, author = {Enrique Tomás Martínez Beltrán and Mario Quiles Pérez and Sergio López Bernal and Alberto Huertas Celdrán and Gregorio Martínez Pérez}, doi = {10.4018/978-1-7998-7789-9.ch010}, pages = {176-198}, booktitle= {Advances in Malware and Data-Driven Network Security}, title = {SecBrain: A Framework to Detect Cyberattacks Revealing Sensitive Data in Brain-Computer Interfaces}, year = {2022}, }
```
License
This project is licensed under the MIT License - see the LICENSE file for details
Owner
- Name: Enrique Tomás
- Login: enriquetomasmb
- Kind: user
- Location: Murcia (Spain)
- Website: https://enriquetomasmb.com
- Repositories: 1
- Profile: https://github.com/enriquetomasmb
PhD student in Computer Science, University of Murcia. Introduced to the world of cybersecurity and new technologies.
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: >-
Noise-based cyberattacks generating fake P300 waves
in brain–computer interfaces
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Enrique Tomás
family-names: Martínez Beltrán
email: enriquetomas@um.es
affiliation: University of Murcia
orcid: 'https://orcid.org/0000-0002-5169-2815'
version: 1.0
date-released: 2021-08-11
GitHub Events
Total
Last Year
Committers
Last synced: 6 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Enrique | e****b@u****s | 25 |
| Enrique Tomás | 6****b | 18 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 0
- Total pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: 4 minutes
- Total issue authors: 0
- Total pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- enriquetomasmb (1)