Boffins get routers spilling secrets through their LEDs

Death by blinkenlight thanks to dodgy firmware

Semaphore hello

Back in February, it was hard drive lights that leaked data. Now, the side-channel experts at Israel's Ben-Gurion University have applied a similar principle to routers.

The attraction of signalling from a router is clear: is you can get the router to leak admin credentials, you don't just p0wn one machine, but probably the whole network too.

It's correspondingly more challenging than taking over one unit, though: as well as needing a sensor with line-of-sight to the router, you have to compromise the router.

If you've go control of the router, Mordechai Guri's team developed firmware, dubbed “xLED”, to adds LED control to the router's operation. Alternatively, the group writes in this paper, an attacker with sufficient privilege can skip the firmware and instead get the router to execute a malicious script.

The code snippet below is described as the “simplest case” modulation approach on a Linux-based router operating system.

Algorithm 1 ModulateOOK
1: procedure ModulateOOK(nLED, data, T)
2: openLED(nLED); //opens the LED file for writing
3: while(data[i] !=0)
4: if(data[i] == ‘0’) //modulate 0 by turning the LED off
5: setLEDOff(nLED);
6: if(data[i] == ‘1’) //modulate 1 by turning the LED on
7: setLEDOn(nLED);
8: i++;
9: sleep(T); // sleep for time period of T
10: closeLED(nLED); // closes the LED file descriptor

If you're not touching the OS, the shellscript is also pretty simple:

// Method #1
// turn the LED on
1: echo 0 > /sys/class/leds/led_name/brightness
// turn the LED off
2: echo 255 > /sys/class/leds/led_name/brightness
// Method #2
3: echo 1 > /proc/gpio/X_out // turn the LED on
4: echo 0 > /proc/gpio/X_out // turn LED off

If you've got some time to spare, Guri told The Register the proof-of-concept video below has a code so you can try and work out what's being exfiltrated:

Youtube Video

If you're stuck with a camera to snoop on the LEDs, the exfiltration rate is limited to less than 1 Kbps: a GoPro Hero5 could manage to sense LED blinks at 960 bits/second, but most cameras could only hit 120 bits/second.

If you've got physical access to the target's facility, things work much better: an optical sensor (Guri's group used a Thorlabs PDA100A) could operate at more than 1 Kbps and as high as 3.5 Kbps.

Probably the best countermeasure is tape over the LEDs, even if it's inconvenient; and to pay attention to the firmware on your routers. ®

Sponsored: The Joy and Pain of Buying IT - Have Your Say

Biting the hand that feeds IT © 1998–2017