{"id":40198219,"url":"https://github.com/dbarzin/pandora-box","last_synced_at":"2026-01-19T20:06:50.214Z","repository":{"id":41081949,"uuid":"502353322","full_name":"dbarzin/pandora-box","owner":"dbarzin","description":"USB Scanning device","archived":false,"fork":false,"pushed_at":"2025-09-16T08:53:10.000Z","size":23460,"stargazers_count":29,"open_issues_count":7,"forks_count":7,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-09-16T10:27:38.180Z","etag":null,"topics":["blanche","cleaning","malware","sanitizer","station","usb","white"],"latest_commit_sha":null,"homepage":"","language":"G-code","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dbarzin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-06-11T13:16:36.000Z","updated_at":"2025-09-16T08:53:14.000Z","dependencies_parsed_at":"2025-01-07T19:25:36.993Z","dependency_job_id":"fdd42db1-8613-4b5f-a184-8157d0df6e59","html_url":"https://github.com/dbarzin/pandora-box","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dbarzin/pandora-box","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbarzin%2Fpandora-box","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbarzin%2Fpandora-box/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbarzin%2Fpandora-box/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbarzin%2Fpandora-box/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dbarzin","download_url":"https://codeload.github.com/dbarzin/pandora-box/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbarzin%2Fpandora-box/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28583649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T19:46:29.903Z","status":"ssl_error","status_checked_at":"2026-01-19T19:45:54.560Z","response_time":67,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blanche","cleaning","malware","sanitizer","station","usb","white"],"created_at":"2026-01-19T20:06:49.477Z","updated_at":"2026-01-19T20:06:50.207Z","avatar_url":"https://github.com/dbarzin.png","language":"G-code","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PandoraBox\n\nPandoraBox is a USB scanning station designed to detect and remove malware from USB disks. It is based on [Pandora](https://github.com/pandora-analysis) by [CIRCL](https://www.circl.lu) and is distributed under the [GPLv3 license](https://www.gnu.org/licenses/licenses.html).\n\n## Key Features\n\n- Detects USB insertion/removal in real time\n- Automatically or manually mounts USB devices\n- Multithreaded scanning using [pypandora](https://github.com/pandora-analysis/pypandora)\n- Automatic quarantine of infected files\n- Manual file removal after user confirmation\n- Interactive terminal interface (curses) or graphical feedback using images\n- Uses well-known malware detection tools:\n  - [ClamAV](http://www.clamav.net/)\n  - [Comodo Antivirus](https://antivirus.comodo.com/)\n  - [Hashlookup](https://circl.lu/services/hashlookup/)\n  - [Yara Rules](https://github.com/Neo23x0/signature-base)\n\nOther malware detection tools can be configured using [Pandora antivirus-workers](https://github.com/pandora-analysis/pandora#antivirus-workers).\n\n## Interface\n\nPandoraBox supports:\n\n### Graphical Feedback\n\n[\u003cimg src=\"images/key1.png\" width=\"400\"\u003e](images/key1.png)\n[\u003cimg src=\"images/wait1.png\" width=\"400\"\u003e](images/wait1.png)\n[\u003cimg src=\"images/ok.png\" width=\"400\"\u003e](images/ok.png)\n[\u003cimg src=\"images/bad.png\" width=\"400\"\u003e](images/bad.png)\n\n### Text Interface (Advanced Users)\n\n[\u003cimg src=\"images/pandora-curses.png\" width=\"400\"\u003e](images/pandora-curses.png)\n\n## Installation\n\nPandoraBox runs on [Ubuntu 24.04 server LTS](https://ubuntu.com/download/server).\n\n### Dependencies\n\n- Python 3.8+\n- Python modules: `psutil`, `pyudev`, `pypandora`, `curses`, `logging`, `subprocess`\n\nInstall dependencies:\n\n```bash\npip install psutil pyudev pypandora\n```\n\n### Configuration\n\nEdit `pandora-box.ini` at the root of the project:\n\n```ini\n[DEFAULT]\n; Curses mode (full text)\nCURSES = False\n\n; Set USB_AUTO_MOUNT to True is if the OS automaticaly mount USB keys\nUSB_AUTO_MOUNT = False\n\n; Set PANDORA_ROOT_URL to the URL of the Pandora server\n; the default value is \"http://127.0.0.1:6100\"\nPANDORA_ROOT_URL = http://127.0.0.1:6100\n\n; Set FAKE_SCAN to true to fake the scan process (used during developement only)\nFAKE_SCAN = False\n\n; Set to true to copy infected files to the quarantine folder\n; in the USB scanning station\nQUARANTINE = True\n\n; Set quarantine folder\nQUARANTINE_FOLDER = /var/quarantine\n\n; Number of threads used by Pandora\nTHREADS = 8\n\n; Max File Size (1G)\nMAX_FILE_SIZE = 1080000000\n```\n\n### Setup \u0026 Usage\n\nMore details in the [installation guide](INSTALL.md).\n\n## Application States\n\n- `START`: Initialization and config loading\n- `WAIT`: Wait for USB insertion\n- `SCAN`: Scan device contents\n- `CLEAN`: Prompt for infected file removal\n- `STOP`: Application ends or error\n\n## Roadmap\n\nIf you'd like to contribute, check the [roadmap](ROADMAP.md).\n\n## Architecture\n\nPandoraBox is implemented as a Python class (`PandoraBox`) which handles:\n\n- Configuration parsing\n- Device detection with `pyudev`\n- File scanning using `pypandora`\n- Logging and progress tracking\n- Interactive interface handling\n\n## Security and Customization\n\n- Uses a system lock to prevent multiple instances\n- Can be integrated with additional tools or security measures\n- Easily extendable to new malware detection engines or logging systems\n\n## Author\n\n- Didier Barzin — [@dbarzin](https://github.com/dbarzin)\n\n## License\n\nPandoraBox is open source software released under the [GPLv3 license](https://www.gnu.org/licenses/licenses.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbarzin%2Fpandora-box","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbarzin%2Fpandora-box","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbarzin%2Fpandora-box/lists"}