{{Header}}
{{title|title=
VirusForget - Design
}}
{{#seo:
|description=Stop malware persistence. Deactivate malware after reboot from non-root compromise. Make malware non-persistent after reboot.
}}
{{intro|
Stop malware persistence. Deactivate malware after reboot from non-root compromise. Make malware non-persistent after reboot.
}}
== Description ==
Deactivate malware after reboot from non-root compromise.
Similar to [https://github.com/tasket/Qubes-VM-hardening Qubes-VM-hardening], but designed for any (Debian) Linux system booted without root access.
== Issue ==
Most Linux desktop distributions are vulnerable to persistent malware even if only the user account was compromised. It would be expected and desirable that, after a reboot, non-root malware would get deactivated (i.e., be non-persistent).
This is currently not the case because malware can gain persistence (survive reboot) by using hooks such as the file ~/.bashrc
, the folder ~/.config/autostart
, and many others to autostart itself after reboot.
An effort to start enumerating these files and folders has been made in [https://github.com/{{project_name_short}}/security-misc/blob/master/usr/libexec/security-misc/virusforget Security-Misc VirusForget Source Code].
== Notes & Scratch Pad ==
=== Features ===
* Run at boot before mounting /home
.
* Allow root to modify file and commit changes.
* File same as /etc/skel
(root location) is acceptable.
* Carantaine.
* Delete.
* Diff.
* Init.
* Commit.
* Show.
* Extra file.
* Changed file.
* Whitelisting of files, such as for netvm
.
* File by tag.
* Qubes root compromise with protected root image /usr/local
, /rw
.
* Move anything not part of skel
.
* After PAM?
* Log a note if a dotfile does not exist.
* No root protections in Qubes Template.
* Ignore when running as root.
* Deploy.
* Duplicate files for later diff.
=== Considerations for Tor Browser in the Home Folder ===
* Snapshot binaries with:
** find . -executable -type f
* Upgrade mode to allow changing executables.
=== Command-Line Interface ===
* --path
** Home folder can be in any location, such as:
** --path /home/user
** --path /rw/home/user
** --path /path/to/chroot/folder/home/user
* --simulate
- Perform a dry run, outputting what would be done.
* --protect
- Remove important files after reboot.
* --unprotect
- Disable protection.
* --immutable
- Make important files immutable (cannot be written to).
* --mutable
- Make files writable again.
* --reset-to-skel
- Reset important files as if created from /etc/skel
.
* --skel /path/to/skel
- Specify an alternative skel location (default is /etc/skel
).
=== Additional Considerations ===
* First boot.
* Subsequent boots.
* Handling newly added configuration files.
== Status ==
* Rewrite started but stalled for now.
** [https://github.com/tasket/Qubes-VM-hardening/issues/33#issuecomment-522476132 Related Issue]
** [https://github.com/{{project_name_short}}/security-misc/blob/master/usr/libexec/security-misc/virusforget Security-Misc VirusForget Source Code]
{{Footer}}
[[Category:Design]]
[[Category:Development]]