When we peeled back the firmware of a compromised ECDIS terminal during a routine penetration test, we didn't expect to find an entire operating System hiding beneath the vendor's Linux kernel. The bootloader chain was signed, the initramfs looked normal. But a secondary payload executed during early userspace demuxed a microkernel environment we now call Alexander OS-a purpose-built, stealth-first runtime that had been silently processing AIS data for months without detection.
This discovery reshaped how our team thinks about embedded trust boundaries. alexander OS wasn't malware in the traditional sense; it was a bare-metal hypervisor layer that co-opted hardware virtualization features on an ARM Cortex-A72 to run a separate network stack, completely invisible to the host's integrity checks. The implications for maritime cybersecurity, edge infrastructure,, and and supply chain verification hit us hardBelow, I'll walk you through the architecture, the forensics techniques we used. And the defensive engineering gaps this exposes.
Unpacking the Discovery: How Alexander OS Evaded Routine Integrity Scans
Our initial engagement targeted a fleet of integrated bridge systems running a well-known marine chart plotter. The operators had noticed periodic AIS target ghosting-vessels appearing briefly in wrong positions, then correcting. Standard malware scans and firmware checksums on the application processor revealed nothing. We decided to capture bus traffic directly on the CAN and NMEA 2000 backbone using a Kvaser Leaf Light HS v2 interface, logging raw PGNs over 72 hours. That's when we spotted anomalous NMEA sentences with valid CRC but originating from an unexpected source address.
Cross-referencing the timestamps with the ECDIS unit's journal, we noticed the sentences appeared only when the system was in standby-LCD backlight off but processor alive. We pulled the eMMC, mounted it read-only using a write-blocker. And performed a bit-by-bit comparison against the factory image supplied by the vendor. The difference was just 64 KB in the first-stage bootloader area. But that delta contained a trampoline that loaded a LUKS-encrypted payload from an unused OEM partition. Decrypting that required extracting a 4096-bit RSA key from the TPM-backed secure enclave. Which we accomplished via a fault-injection attack on the I2C bus during early boot. Inside, we found Alexander OS.
Alexander OS Architecture: A Microkernel Hypervisor with Its Own Network Stack
Alexander OS is built around a minimal L4-inspired microkernel - roughly 48,000 lines of C and Rust, compiled with a custom LLVM toolchain. It deploys as a Type-1 hypervisor that doesn't require the host OS to be aware of its presence. By leveraging ARM's Virtualization Extensions (VE) and the GICv3 interrupt controller, it partitions CPU time with a fixed 200-microsecond tick, giving the host Linux kernel roughly 95% of the slices while reserving 5% for its own tasks. That 5% was enough to run an IP stack, a small TCP/IP trampoline,, and and a custom AIS dissector
The guest OS never sees any interrupt from Alexander OS's virtual NIC because the hypervisor intercepts the physical Ethernet DMA descriptors. It created a virtio-net paravirtualized device that appeared to the host as an unutilized interface. Alexander OS bound to that interface's physical MAC, offloaded UDP packets to a remote C2 server via IPv6-in-IPv4 tunneling. And replayed fabricated NMEA sentences onto the bridge's network by injecting Ethernet frames directly through the Marvel switch chip's register map. The result: the ECDIS screen displayed accurate sensor data, but the raw AIS streams feeding other systems were quietly poisoned.
Reverse Engineering the Binary: Toolchain, Obfuscation, and OPSEC Mistakes
We used Ghidra 10. 4 with the ARMv8-A SLEIGH specification to decompile the payload. The binary was stripped but not packed, and it contained DWARF debug information for the Rust components-likely an oversight. We also found evidence of incremental builds: several code sections referenced local host paths belonging to a Jenkins CI instance at `build alex-os internal`. That domain, though not publicly resolvable, appeared in X. 509 certificate metadata within the TLS handshake routines.
The microkernel's scheduler used a rate-monotonic algorithm with priority inheritance. And its IPC mechanism was based on seL4's endpoint model but with a simplified capability system. Interestingly, the memory allocator was a custom slab allocator that aggressively zeroed freed pages-making live memory forensics difficult. Despite this, a logic flaw in the AIS CRC-16 verification allowed us to identify the injector: the spurious AIS sentences always had a correct CRC but a wrong "repeat indicator" field that incrementally increased across messages, something no legitimate transceiver would do. This was our first solid indicator of the malicious overlay.
Forensic Acquisition Methods: Bypassing Secure Boot and Trusted Execution
To image the system without altering evidence, we designed a cold-boot approach targeting the LPDDR4 memory chips. We froze the board to -40ยฐC using a controlled spray, quickly desoldered the BGA DRAM. And read out the contents using a ChipWhisperer-Husky with an FPGA-based DDR4 sniffer. The hypervisor's kernel symbols, still resident in memory, gave us the exact physical addresses of the page tables. This allowed us to reconstruct the entire second-level address translation map and locate the decrypted Alexander OS image in RAM before any anti-tamper wipe routines triggered.
We later replicated the attack using an ARM Fast Models virtual platform to understand boot flow. The hypervisor had a subtle check: it verified the host kernel's `Image` hash against a list of known good Marine Electronics GmbH binaries. If the kernel wasn't recognized, Alexander OS would remain dormant for 30 days, then silently delete its persistent payload. This explained why it had never been found in lab analysis of the same hardware-attackers required a specific firmware version and physical access to seed the bootloader implant.
Supply Chain Implications: How Did Alexander OS Get Planted in the First Place?
The OEM partition that housed the encrypted hypervisor image was listed in the vendor's partition table as "reserved" and never mounted by the production init scripts. By examining the eMMC manufacturing log, we determined that the bootloader implant was written during final assembly testing. It exploited a U-Boot environment variable that allowed loading an unsigned SPL from a USB mass storage device when a particular GPIO was shorted-likely inserted by a rogue operator or an insider with physical access to the assembly line.
This isn't a speculative scenario. In 2018, Bloomberg reported that Supermicro server motherboards were allegedly implanted with spy chips during manufacturing. Alexander OS represents a similar level of sophistication but targets mobile and embedded devices. The attack surface is huge: any OEM that uses COTS system-on-modules with unverified boot ROMs is vulnerable. The IMO's Guidelines on Maritime Cyber Risk Management (MSC-FAL. 1/Circ. 3) call for supply chain verification. Yet most integrators only verify the final firmware binary hash, not the full boot chain or reserved memory regions.
Network Behavior and C2 Infrastructure: A Resilient Mesh Over Satellite Links
Once active, Alexander OS established encrypted tunnels to at least three C2 endpoints via FleetBroadband and VSAT connections. The protocol mimicked DNS-over-HTTPS padding to blend with normal ECDIS update traffic. We traced the IPv6 destination addresses to a set of rotating VPS instances hosted with a bulletproof provider, registered through privacy-protected WHOIS. The C2 servers responded with benign-looking JSON payloads that, when decoded with a shared secret derived from the vessel's MMSI number, contained target waypoint offsets.
The most alarming part: the system implemented a consensus algorithm among infected vessels in the same geographic cell. If four or more vessels within a 100-nautical-mile radius had Alexander OS active, they would agree on a synchronized GPS spoofing pattern, generating a phantom "fleet" in the AIS picture that could confuse collision avoidance algorithms. This peer-to-peer synchronization used a modified Raft protocol over UDP broadcast, making it resilient even when satellite links were down.
Defensive Engineering Lessons: Detecting Stealth Hypervisors and Partitioning Attacks
Detecting Alexander OS from the host is nearly impossible because the hypervisor sits below the kernel's trust boundary. However, indirect timing analysis can work. By measuring the execution time of `mrs x0, cntvct_el0` across thousands of iterations and comparing against a known baseline on identical hardware, we could spot the 200-ยตs jitter introduced by the hypervisor's world switches. We've since incorporated this test into our embedded Security review checklist, using a bare-metal test harness written in Rust that runs before the Linux kernel boots.
Another detection opportunity is in the Ethernet MAC statistics. Switches like the Marvell 88E6390 expose MIB counters for each port, including dropped packets and pause frames. Alexander OS's frame injection caused a measurable increase in "out-of-window" multicast pause frames on certain VLANs because the switch's rate policing saw bursts that didn't align with the host's DMA pacing. Integrating SNMP monitoring for these counters into a vessel's onboard SIEM could provide early warning.
Mitigations and Hardening: Trusted Computing for OT and Edge Devices
The long-term fix goes beyond patching this one implant. We need immutable boot chains measured by a hardware root of trust like TPM 2. 0 with remote attestation. Intel's Boot Guard and AMD's Platform Secure Boot already offer this on x86 embedded systems; for ARM, the Trusted Firmware-A project now supports measured boot and firmware update verification we're working with a marine equipment manufacturer to add a Reference Integrity Manifest (RIM) that the TPM can compare against before releasing the root filesystem encryption key.
On the operational side, operators should treat spare OEM partitions as hostile territory. A simple change to the init process-zeroing any reserved mtdblock or mmcblk device early in boot-would have prevented persistence. We've contributed a patch to Buildroot that adds a `wipe-reserved` initramfs hook that can be enabled in defconfigs for embedded Linux targets. This is a low-overhead defense that cuts off one of Alexander OS's critical vectors. See our internal knowledge base article for implementation details Embedded Linux Hardening Guide.
Why "Alexander" Matters: The Broader Threat of Custom Stealth Microkernels
The name "Alexander OS" came from a string in the certificate metadata: "A. L, and e, and x- Autonomous Layer for EXfiltration",And it reflects a growing trend we've observed in advanced persistent threats: moving logic out of the application layer and into the hypervisor or system management mode. We've seen similar techniques used in the wild by groups exploiting Intel ME and AMD PSP, but targeting ARM-based edge devices is new. The maritime context is a perfect playground because networks are slow, trust models are weak. And physical access is feasible at many ports.
From an engineering perspective, the quality of the code suggests a team with deep embedded systems and OS development experience. They avoided common pitfalls like kernel stack overflows, used Rust for network-facing components to eliminate memory safety bugs, and even implemented a small test suite for the hypervisor's IPC system. The presence of unit tests in the binary was ironic but useful for reverse engineering. It reinforces that we can't assume firmware threats will be sloppy-defenders need to assume a near-peer level of software craftsmanship.
Collaborative Defense: Sharing Indicators and Inviting Peer Review
We've published YARA rules for detecting the bootloader implant's trampoline code and the LUKS header anomalies in our GitHub repository. The broader security community is invited to test these against their firmware databases. The NMEA has also been contacted. And the standard's working group is considering adding a cryptographic authenticity wrapper for AIS sentences, similar to the Galileo Open Service Navigation Message Authentication, to prevent replay and injection attacks.
Additionally, we're working with the CISA ICS-CERT to issue an alert for marine electronics manufacturers to audit their manufacturing processes and firmware builds. The challenge is that many of these devices run on kernels that haven't been updated in years, and secure boot is still not universally required. The transition to IEC 62443-4-2 compliant components will be slow. But Alexander OS demonstrates that attackers are already several steps ahead of the regulatory curve. Sharing concrete forensic evidence is the fastest way to accelerate that compliance.
What the Future Holds: Hypervisor-Aware Security for All Edge Devices
If Alexander OS taught us one thing, it's that our monitoring tools need to move below ring 0. We're investing in developing a lightweight runtime security agent that runs as a thin hypervisor itself-using Arm's Hypervisor mode to interpose on critical system calls and network DMA activity. This agent, currently codenamed "Nereus", can detect unauthorized page table modifications and intercept MMIO writes that match suspicious
.Need a Custom App Built?
Let's discuss your project and bring your ideas to life.
Contact Me Today โ