How to secure a Coral Dev Board in a public place?

Viewed 182

I want to deploy a small object detection app in a lobby, but I would like to prevent unauthorized physical access. The device logs in automatically on boot, so anyone can access it with a keyboard. How could I prevent that? Thank you!

4 Answers

In the end, I opted to disable the login for the mendel user and to also lock it. Instead of using /bin/false, I opted to place my own script in /usr/bin/guard.sh that creates an .UNAUTHORISED_LOGIN file in mendel's home directory in case that someone tries to open a terminal on the device. Basically I ran the following commands:

chmod +x guard.sh
sudo cp guard.sh /usr/bin
sudo chsh -s /usr/bin/guard.sh mendel
sudo usermod -L mendel

guard.sh contents:

#!/bin/bash

touch /home/mendel/.UNAUTHORISED_LOGIN

Maybe you can try blacklisting the usb-storage driver?

Create this file:

sudo vim /etc/modprobe.d/blacklist.conf

Write this line into the file:

usb-storage

Save, close, and reboot.

Nam's suggestion is good. It locks out usb-storage, but still allows the usb camera to work. You could lock out a USB keyboard that way too. With effort, you can plug lots of potential attack points, including login passwords for MDT and serial access. Perhaps you will superglue the USB camera in place, or secure the whole assembly in a locked box.

Coral development is primarily focused on embedded ML inference on the edge TPU, and not the security tradeoffs of deployment. What follows are some untested suggestions, not documented recommendations.

Electronic tampering is important to address on any internet-connected device. We do not recommend deploying Mendel for end applications. It is for development only. Use a yocto build to include only what is necessary for your application, and be sure to include all the latest security patches.

Protecting against physical tampering could be an infinite challenge. First, determine the level of attack to be expected, and go no further. Some businesses have armed security. Most businesses have unarmed security. My home has no security guards.

Do you need a locked box with tamper switches? ATM machines and point-of-sale terminals have published standards to keep them secure enough. Perhaps a locked box is sufficient. An attacker could cut the cables, and take the box if its not bolted down, but could not quickly compromise the device.

Once you have a security plan, its important to get an outside review. They can help you decide: Does this plan protect against the expected attack vectors? Are there any other attack vectors that must be addressed for this level of security? Are there elements of the plan that are too much for this level of security? Depending upon the application, it might be reasonable to hire penetration testers to get a realistic evaluation when it is ready.

To disable the automatic login using HDMI, I found that sudo systemctl set-default multi-user will do the trick

Related