Vsterilizer

VSterilizer is a USB scanning service that scans any USB device plugged into the computer that is running the scanner utility and reports the results through API endpoints.
Alternatives To Vsterilizer
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Umap2210
2 years ago7agpl-3.0Python
Umap2 is the second revision of NCC Group's python based USB host security assessment tool.
Pi Scan193
6 years ago10bsd-2-clausePython
Pi Scan is a simple, robust capture appliance for book scanners. It runs on a Raspberry Pi 2.
Jsprintmanager1921a month ago26January 24, 202310JavaScript
Advanced Client-side Printing & Scanning Solution for Javascript
Node Usb Barcode Scanner52325 years ago2September 21, 2015apache-2.0JavaScript
Package to help work with USB HID based barcode scanners in nodejs
Was46
7 years ago3gpl-3.0Python
Automatic USB drive malware scanning tool for the security-minded person
Handy3dscanner43
2 years ago40apache-2.0C++
Repository for Handy 3D Scanner
Rp 3d Scanner41
10 years agoC
A low cost 3D laser scanner created by RoboPeak
Vfs30126
11 years ago3Python
A linux driver for (Validity) vfs301 (and others compatible) fingerprint scanner
Usb Barcode Scanner18
5 years ago7mitTypeScript
A typed library for using USB barcode scanners in Node.js with support for Typescript
Usb_barcode_scanner16
a year ago2January 06, 2020mitPython
package supporting usb handheld barcode scanner. Using python 3.
Alternatives To Vsterilizer
Select To Compare


Alternative Project Comparisons
Readme

VSterilizer

node.js (https://github.com/denizariyan/VSterilizer/actions/workflows/codeql-analysis.yml)

VSterilizer is a USB scanning service that scans any USB device plugged into the computer that is running the scanner utility and reports the results through API endpoints.

Intro

flowchart use_case

Installation and Usage

This installation steps assume that you are running Fedora 35. There could be slight changes to the shell commands if you are running another distro but the steps in general will be the same.

1. Use the package manager dnf to install NodeJS

sudo dnf install nodejs

2. Clone the repo

git clone https://github.com/denizariyan/VSterilizer.git

3. Install the dependencies

npm install

4. Install ClamAV

sudo dnf install clamav clamd clamav-update

Usage

1. Run the main script using

sudo node main.js

2. After running the script you will get a response similar to the one below mentioning that both the the scanner utility and the API listener utility is running

Started to monitor for USB inserts!
Listening on port 8080!

3. Plug a USB device to the computer

4. The script will detect the newly plugged in USB device and start scanning it immediately and send a status message to the API endpoint that it is accessing a new USB device. Example API call below

{
  args: {},
  data: '{"status":"Accessing the USB Device..."}',
  files: {},
  form: {},
  headers: {
    Accept: 'application/json, text/plain, */*',
    'Content-Length': '40',
    'Content-Type': 'application/json',
    Host: 'httpbin.org',
    'User-Agent': 'axios/0.26.1',
    'X-Amzn-Trace-Id': 'Root=1-626fcfec-21c50ae55f9e79a838a867aa'
  },
  json: { status: 'Accessing the USB Device...' },
  origin: '<SENDER_IP_ADDRESS>',
  url: 'http://httpbin.org/post'
}

5. After the scanning is complete a result message will be sent to the API endpoint

For clean USB devices

{
  args: {},
  data: '{"status":"Scan completed, no infected files has been detected."}',
  files: {},
  form: {},
  headers: {
    Accept: 'application/json, text/plain, */*',
    'Content-Length': '65',
    'Content-Type': 'application/json',
    Host: 'httpbin.org',
    'User-Agent': 'axios/0.26.1',
    'X-Amzn-Trace-Id': 'Root=1-626fcff2-39b0b20222be8fd42873f046'
  },
  json: { status: 'Scan completed, no infected files has been detected.' },
  origin: '<SENDER_IP_ADDRESS>',
  url: 'http://httpbin.org/post'
}

For USB devices with infected files

First a status message that mentions that the USB device is infected will be sent.

{
  args: {},
  data: '{"status":"Scan completed, check infected file list!"}',
  files: {},
  form: {},
  headers: {
    Accept: 'application/json, text/plain, */*',
    'Content-Length': '54',
    'Content-Type': 'application/json',
    Host: 'httpbin.org',
    'User-Agent': 'axios/0.26.1',
    'X-Amzn-Trace-Id': 'Root=1-626fd172-2951bf061e93fc434ad08ce5'
  },
  json: { status: 'Scan completed, check infected file list!' },
  origin: '<SENDER_IP_ADDRESS>',
  url: 'http://httpbin.org/post'
}

After that a result message that includes the details of the infected file(s) will be sent.

{
  args: {},
  data: '{"badFile":"eicar.com","virus":"Win.Test.EICAR_HDB-1"}',
  files: {},
  form: {},
  headers: {
    Accept: 'application/json, text/plain, */*',
    'Content-Length': '54',
    'Content-Type': 'application/json',
    Host: 'httpbin.org',
    'User-Agent': 'axios/0.26.1',
    'X-Amzn-Trace-Id': 'Root=1-626fd172-2de80c305bd1bb492dd73e42'
  },
  json: { badFile: 'eicar.com', virus: 'Win.Test.EICAR_HDB-1' },
  origin: '<SENDER_IP_ADDRESS>',
  url: 'http://httpbin.org/post'
}

Testing

This will run all automated tests and report back the results.

npm test

Example test result

$ npm test

> [email protected] test /home/deari/projects/VSterilizer
> jest --silent=true

 PASS  tests/config.test.js
 PASS  tests/scan.test.js

Test Suites: 2 passed, 2 total
Tests:       5 passed, 5 total
Snapshots:   0 total
Time:        0.928 s, estimated 1 s

Flowchart

flowchart

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

Popular Scanner Projects
Popular Usb Projects
Popular Security Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Javascript
Usb
Cybersecurity
Virus