Introducing SHEL - Smart Home environment Lab for IoT companies - Gem inside!
As our journey in the home IoT cybersecurity world evolved, we realized that it is mandatory for us to create a simulation environment for a typical smart home, as most of our clients’ devices reside in such environments.
Our idea was to place our Agent in a simulation environment and to test it through facing the variety of cybersecurity attacks that Firedome is built to prevent, detect and respond to.
For that, we needed to create an environment with the following characteristics:
- Easily manageable by a web UI
- An environment where we can run images of devices with different types of chipsets and OS (as when using embedded devices in real life ).
We set out to look for an ‘off the shelf’ industry solution that would meet what we thought were our humble demands, but our need for running images with many types of architecture and OS proved to be very challenging, and the only service that we found to support this feature was built by Ravello, an Israeli startup that was acquired by Oracle in 2016 .
While using Ravello, developers can basically create almost any image of a Linux device with QEMU, export it to a qcow file and upload it to their cloud.
As we analyzed the service, we realized that by creating a simple web app that utilizes Ravello REST API we can not only provide our developers and testers access to a cloud-based environment where they can see our Endpoint Protection Agent installed on their devices and the protection it provides them from cybersecurity threats; but we could treat our B2B customers as well.
And this was the birth of what we call SHEL – Smart Home Environment Lab
The design concept leans on creating applications in Ravello, either by using an existing devices library that we constantly upload and maintain, or by using devices that the client uploads herself, save it as a blueprint and start it whenever there’s a need to test or view an attack simulation.
Here’s is how the flow works:
We were so excited about this, that we decided to create a video demonstrating it:
Last but not least, in Firedome we love open source projects, and we try to give back to the community whenever we can. As the SHEL backend was written in Java and Ravello didn’t have a Java implementation to their API, we decided to create a Java client and to open source it. Yay!
Using the SDK is pretty straightforward:
RavelloClient client = new RavelloClient(new RavelloConfig("username","password"));
For example, this is how you would start an application:
The code is available on Github: https://github.com/firedome/ravello-java-sdk .
As always, we would be happy to hear feedback and comments!