A sophisticated auditing framework for Linux and KVM hypervisors.
Project details
ABYSS is an enterprise-grade security framework crafted in C, enabling in-depth inspection and stress-testing of operating system and hardware components. With modular architecture and capabilities for fuzzing and kernel monitoring, it serves as an essential tool for security researchers and systems engineers focusing on advanced auditing solutions.
ABYSS: An Advanced Security Engineering Framework for Kernel and Hardware Auditing
ABYSS is a modular, low-level auditing framework developed in pure C, specifically designed for security researchers and systems engineers aiming to enhance the security posture of their systems. By targeting deep operating system and hardware components—including Bare-Metal Firmware, Kernel Drivers, ACPI Tables, and KVM Hypervisors—ABYSS provides powerful tools for inspection, analysis, and stress-testing.
ABYSS features a high-performance modular architecture that comprises multiple essential components:
main.c: Acts as the advanced command-line interface (CLI) manager, handling global configuration and supporting daemon mode.fuzz.c: A driver IOCTL fuzzing engine equipped with process sandboxing capabilities and crash detection mechanisms.hyper.c: A lightweight Type-2 KVM-based hypervisor that facilitates VM-Exit interception, MSR, and PCI monitoring.acpi.c: A robust ACPI table parser along with an AML bytecode mutation engine aimed at uncovering firmware vulnerabilities.ipc.c / shm_ipc_log.c: Implements an atomic ring-buffer inter-process communication (IPC) and logging system utilizing shared memory.report.c: Generates comprehensive telemetry reports, accessible in both JSON and HTML formats.To leverage the capabilities of ABYSS, a modern Linux environment with the appropriate privileges is necessary. Key requirements include:
/dev/kvm should be available)ABYSS can be executed as a whole or with specific modules activated. Basic usage is conducted as follows:
./abyss [options]
-h, --help : Display help information and exit.-v, --verbose : Activate verbose debugging logs.-c, --config FILE : Load an external configuration file.-o, --output DIR : Designate an output directory for reports (defaults to ./abyss_report).-f, --format FMT : Specify report formats such as json or html.-d, --daemon : Execute the suite as a background daemon.--hyper : Limit execution to the hypervisor module only.--acpi : Target the ACPI engine module exclusively.--fuzz : Execute the driver fuzzer module only.--all : Sequentially activate all system modules.--iter N : Set the number of fuzzing iterations per IOCTL (default: 1000).--timeout MS : Specify the timeout for child processes in milliseconds (default: 2000).--shm NAME : Indicate the shared memory segment name (default: abyss_shm)../abyss --all --verbose
./abyss --fuzz --iter 5000 -o /tmp/fuzz_results
To ensure output integrity, users can run smoke tests using the following command:
make test
Furthermore, memory leaks can be examined with Valgrind:
make valgrind
ABYSS serves as a robust solution for scientific research, advanced penetration testing, and comprehensive operating system auditing.
Comments
0Start the conversation
Share the first comment.