About A3Guard • Key Features • Installation • Usage • Security • Contributing • License
A3Guard is a comprehensive C++/Qt5-based desktop application for advanced assessment and monitoring for academic environments. It provides robust security features, real-time monitoring, and minimal resource usage.
- Application Tracking: Monitor launched/closed applications
- Window Focus Tracking: Track active window changes
- Clipboard Monitoring: Detect copy/paste activities
- USB Monitoring: Detect device insertions/removals
- Network Control: Granular network interface management
- AES-256 Encryption: All logs and screenshots encrypted
- File Integrity Checking: Detect tampering with SHA-256 hashes
- Secure Deletion: Multi-pass file overwriting
- Administrator Privileges: Root-level system access required
- Real-time Alerts: Visual and audio violation notifications
- Minimal Resource Usage: <10% CPU, <100MB RAM
- Optimized Monitoring: Efficient polling intervals
- Resource Monitoring: Self-monitoring with limits
- Custom File Extensions: .a3log, .a3img, .a3bak, .a3int
- Ubuntu 20.04 or newer
- Qt5 development libraries
- OpenSSL
- X11 with XFixes
- Root/sudo access
sudo apt-get install -y \
build-essential \
cmake \
qtbase5-dev \
qtbase5-dev-tools \
libssl-dev \
libudev-dev \
libx11-dev \
libxfixes-dev \
pkg-configsudo apt-get install -y \
qt5-default \
libqt5widgets5 \
libqt5core5a \
libqt5gui5 \
libqt5network5 \
libssl1.1 \
libudev1 \
libx11-6 \
libxfixes3 \
gksu# Clone or extract source
mkdir -p build
cd build
cmake ..
make -j$(nproc)# Install build dependencies
sudo apt-get update
sudo apt-get install -y build-essential cmake qtbase5-dev qtbase5-dev-tools \
libssl-dev libudev-dev libx11-dev libxfixes-dev pkg-config
# Create build directory
mkdir -p build && cd build
# Configure with CMake
cmake -DCMAKE_BUILD_TYPE=Release ..
# Build (use all CPU cores)
make -j$(nproc)
# Optional: Build Debian package
cpack -G DEB-DCMAKE_BUILD_TYPE=Release: Optimized release build (default)-DCMAKE_BUILD_TYPE=Debug: Debug build with symbols
# Build first
mkdir -p build && cd build
cmake .. && make
# Install (requires root)
cd ..
sudo ./scripts/install.sh# After building
sudo mkdir -p /opt/a3guard/bin
sudo cp build/A3Guard /opt/a3guard/bin/
sudo cp config/a3guard.conf /etc/a3guard/
sudo cp scripts/install.sh /opt/a3guard/scripts/
# Run installation script
sudo ./scripts/install.sh# Build package
cd build
cpack -G DEB
# Install package
sudo dpkg -i a3guard-*.deb
sudo apt-get install -f # Fix dependencies if needed# Launch with GUI (requires root)
sudo a3guard
# Or use desktop launcher (requires authentication)
a3guard# Start service
sudo systemctl start a3guard
# Enable auto-start
sudo systemctl enable a3guard
# Check status
sudo systemctl status a3guard
# View logs
sudo journalctl -u a3guard -fA3Guard [options]
Options:
--daemon Run as daemon (no GUI)
--generate-key Generate new encryption key
--verify-integrity Verify file integrity
--config <file> Use custom config file
--help Show help
--version Show versionConfiguration file: /etc/a3guard/a3guard.conf
[monitoring]
network_check_interval=30 # Check network every 30 seconds
app_monitor_interval=5 # Check apps every 5 seconds
[security]
enable_integrity_check=true # Enable file integrity checking
encryption_key_file=/etc/a3guard/a3guard.key
[resources]
max_cpu_usage=10 # Maximum 10% CPU usage
max_memory_usage=100 # Maximum 100MB RAM
[network]
disable_interfaces=wifi,bluetooth,ethernet
block_all_traffic=true- Algorithm: AES-256-CBC
- Key Storage: Secure file with 600 permissions
- Data Protection: All logs and screenshots encrypted
- Hash Algorithm: SHA-256
- Real-time Monitoring: File system watcher
- Periodic Verification: Configurable intervals
- Violation Detection: Automatic alerts
- Root Privileges: Required for system-level monitoring
- AppArmor Profile: Optional additional security layer
- Secure Permissions: Restricted file access
- Process Protection: Systemd service hardening
/opt/a3guard/ # Application directory
├── bin/
│ └── A3Guard # Main executable
└── scripts/
├── install.sh # Installation script
├── uninstall.sh # Removal script
└── build.sh # Build script
/etc/a3guard/ # Configuration directory
├── a3guard.conf # Main configuration
└── a3guard.key # Encryption key (auto-generated)
/var/log/a3guard/ # Log directory
└── *.a3log # Encrypted log files
/var/lib/a3guard/ # Data directory
├── backup/
│ └── *.a3bak # Backup files
└── integrity/
└── *.a3int # Integrity check files
.a3log- Encrypted log files.a3bak- Encrypted backup files.a3int- Encrypted integrity check files
- Process launch/termination detection
- Window title and class tracking
- Active window focus changes
- Resource usage per application
- USB device insertion/removal
- Network interface state changes
- Clipboard content changes (hashed)
- System resource usage
- Wi-Fi interface control
- Bluetooth interface control
- Ethernet interface control
- Traffic blocking with iptables
- NetworkManager integration
Permission denied errors:
# Ensure proper permissions
sudo chown -R root:a3guard /var/log/a3guard /var/lib/a3guard
sudo chmod 700 /var/log/a3guard /var/lib/a3guardBuild failures:
# Install all dependencies
sudo apt-get build-dep qt5-default
sudo apt-get install qtbase5-private-devService won't start:
# Check systemd logs
sudo journalctl -u a3guard -n 50
# Verify binary permissions
sudo chmod +x /opt/a3guard/bin/A3GuardGUI won't launch:
# Check X11 permissions
sudo xhost +SI:localuser:root
# Use pkexec instead of gksu
pkexec /opt/a3guard/bin/A3Guard# Build debug version
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
# Run with debug output
sudo ./A3Guard --verbose# View decrypted logs (requires root)
sudo a3guard --decrypt-logs
# Check integrity
sudo a3guard --verify-integrity
# Resource usage
sudo a3guard --resource-report# Using uninstall script
sudo /opt/a3guard/scripts/uninstall.sh
# Manual removal
sudo systemctl stop a3guard
sudo systemctl disable a3guard
sudo rm -rf /opt/a3guard
sudo rm -rf /etc/a3guard
sudo rm -rf /var/log/a3guard
sudo rm -rf /var/lib/a3guard
sudo rm -f /etc/systemd/system/a3guard.service
sudo rm -f /usr/share/applications/a3guard.desktop
sudo rm -f /usr/local/bin/a3guard
sudo userdel a3guardsrc/: Source files (.cpp)include/: Header files (.h)config/: Configuration filesscripts/: Installation/build scriptsresources/: Qt resources (icons, etc.)
SecurityManager: Encryption and integrityMonitoringEngine: Core monitoring logicNetworkManager: Network controlConfigManager: Configuration handlingMainWindow: GUI interface
# Development build with debug symbols
mkdir debug-build && cd debug-build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
# Profile-guided optimization build
mkdir pgo-build && cd pgo-build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-fprofile-generate" ..
make && ./A3Guard --benchmark
cmake -DCMAKE_CXX_FLAGS="-fprofile-use" ..
makeThis project is licensed under a proprietary license for educational use. See LICENSE file for details.
For support and bug reports:
- Check logs:
/var/log/a3guard/ - Verify integrity:
sudo a3guard --verify-integrity - Review configuration:
/etc/a3guard/a3guard.conf
- Always run integrity checks after system updates
- Regularly backup encryption keys securely
- Monitor log files for unauthorized access attempts
- Use AppArmor/SELinux for additional security layers
- Keep the system updated with latest security patches
For optimal performance on exam systems:
- Adjust monitoring intervals based on exam duration
- Configure resource limits appropriately
- Use SSD storage for better I/O performance
- Disable unnecessary system services during exams