Skip to content

spiritualhost/RedactOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RedactOS Launcher

Simple stateless VM image for redacting credit card images

v0.1 splash

Description

Old production redaction often uses an insecure method of pulling images, often PCI-DSS sensitive ones, off onto employee production computers for redaction, either using the default paint application or Adobe Acrobat. With the telemetry often included in modern Adobe products and the lack of security of pulling sesitive data onto employee computers (with extra oversight required to ensure it doesn't stay there), there needs to be a better solution.

Virtualizing an environment for redaction seems like the golden ticket, with Linux offering a robust control over even low-level system settings -- the environment isn't locked down in the way Microsoft or Apple machines are, thus is capable of being customized radically. Debian was chosen for the distro of the project because of their Live Build capability, which automates the creation of a stateless, customizable disk image.

By running entirely in memory, the system is able to prevent users from inadvertently saving images to their local storage. Firewall settings can be granularly managed with ufw and the build hook located in the config/hooks directory. The VM doesn't share a clipboard with its host and utilizes the barebones Openbox window manager to ensure that OOB activities don't occur.

The image, which can be run on bare-metal (e.g., VMware ESXi) and hosted hypervisors (e.g., VMware Workstation), is able to be run from any modern hypervisor. It is recommeneded to use a local hypervisor (VirtualBox works well here) because RDP won't need to be implemented, increasing attack surface.

For the autostart script located at build/image/config/includes.chroot/etc/skel/.config/openbox/autostart, the actual hostname being used has been replaced with asterisks for security reasons. Change those share names to your Samba shares to get dolphin to open them at startup.

Getting Started

Dependencies

Performing a live build requires an installation of Debian and an internet connection. This can easily be virtualized if it isn't desirable to install on bare-metal -- I recommend VMware ESXi for a type 1 hypervisor or Oracle Virtualbox.

The main system resources stressed in the process will be the disk (both for space and i/o) and the CPU (mostly for compression). For best possible performance here, I would recommend:

  • x86_64 CPU with at least 2 cores
  • Minimum of 2GB of RAM, though more would be helpful
  • Have at least 25GB of disk space available in the build directory
  • Have a strong network connection with port 80 (and probably port 443) open

Download a Debian ISO from a mirror here. It is best practice to select a mirror in the same country you live in (I also typically select a school, anything .edu), as the download will be faster, as well as to verify the checksums and signature. Instructions on verifying your Debian image authenticity can be found here. Once the image is downloaded and authenticity has been verified, the build process can begin.

Additional information about the requirements for the Live Build process can be found in the documentation.

Live Building from Config

Live building an organization's ISO can be a lengthy process if multiple customizations are desired. For this reason, it makes the most sense to perform this process once and keep the disk image in a centralized secure location, either a file server or an FTP site. A new image doesn't need to be created for each user. To build the image:

  1. Install live-build within the VM
sudo apt update
sudo apt install live-build
  1. Create a Working Directory
mkdir ~/mylive
  1. Configure the image
lb config \
  --architecture amd64 \
  --distribution bookworm \
  --debian-installer none \
  --archive-areas "main contrib non-free non-free-firmware" \
  --bootappend-live "boot=live components splash quiet" \
  --chroot-squashfs-compression-type lz4

The live-build is being told that we should target 64-bit, use Debian 13 (Bookworm), skip the installer (we want a pure live system).

System compression will default to xz. Different schemes should be able to be specified with --compression.

  1. Choose Packages

With one package per line:

nano config/package-lists/my.list.chroot
openbox
xorg
lightdm
xterm
kolourpaint
smbclient
cifs-utils
dolphin
feh
qt6-image-formats-plugins
qt5-image-formats-plugins
plymouth
plymouth-themes
plymouth-x11
plymouth-label
ufw
  1. Build the Image and Clean Up After Yourself
sudo lb build
sudo lb clean

This may take a while. When this finishes, there will be a file called live-image-amd64.hybrid.iso in ~/mylive.

NB - If you already built once and need to again, use the same directory. Do the lb config command, then the sudo lb clean, then the sudo lb build. That'll ensure any updates to config/ are applied to the live build.

When this process is complete, all that's left to do is copy the ISO image located in the ~/mybuild directory out of the VM and test it. This can be done in the same previously selected hypervisor. If the RedactOS splash shown above shows, the smb shares mount, and KolourPaint opens, the build was successful. For troubleshooting of any specific errors in the live-build process, see either the Live Build manual or the Help section below.

Executing program

Launch the image in the hypervisor of choice. If given the option to select unattended install, don't -- there is not an installation happening here in the traditional sense. VirtualBox is recommended in most cases, both for MacOS and Windows (Linux as well, if you choose to use it). UTM is also available on the Mac.

Help

General resources on the Debian Live Build process can be found in the manual

Known Issues and Planned Features

  • Hardening of UFW hook
  • Auto login made smoother
  • Inactivity timer (xautolock)
  • QOL features (e.g., refresh button in dolphin shares)
  • Disable unnecessary boot services
  • Sudo access hardening
  • Handle unreachable at boot SMB shares (i.e., should a message be shown or possibly immediate silent crash?)

Authors

Contributors names and contact info

Ryan Piazza
Github

Version History

  • V0.1 - Bonsai

License

This project is licensed under the GNU General Public License - see the LICENSE.md file for details

Acknowledgments

Thanks is due to the Debian Live project and their development team, as well as to the Debian User Forums, which was invaluable in assisting with several esoteric errors in the build process.

About

Stateless Debian Redaction Live Image Configuration

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages