Skip to main content
Mar 25, 2015

Linux Containers for App Security

A major focus in security is preventing system intrusion resulting from vulnerabilities in the software running on it. However an equally important consideration is mitigation and isolation - if an attacker is successfully able to compromise a single node in a system, how do you prevent the attack from spreading? Isolating a complex system into components that are fire-walled from each other (either via software or hardware) ensures that the attack surface of any given component is limited, and that a weakness in one component does not compromise the rest. In the age of ‘the cloud’, the traditional approach for servers has been to use virtual machines as a means of partitioning one physical machine into smaller logical units. While this is a tried and tested solution, it is far from ideal. Each virtual machine requires a complete filesystem, virtualized RAM and an entire operating system. In addition there is the overhead of the virtualization environment/hypervisor as well as the instruction translation layer between the virtualized kernel and the host kernel.

LXC Security Approach

Linux containers (LXC) takes a different approach. Dubbed an ‘operating-system level virtualization’ technology, containers actually share the same kernel as the host. Features such as kernel namespaces to restrict any given container’s view of the operating system it runs on, and cgroups allow resource allocations to be dynamically managed to ensure QoS. As with virtualization, containers cannot see processes running on the same kernel outside of its own namespace and have no direct access to real hardware. In mobile things are very different - devices have very limited physical resources (memory, CPU, battery) so no real virtualization solutions have ever come into prominence on these platforms. As these devices have a different usage model to servers, the security concept has been largely focused on ‘app’ sandboxing. In a way, the approach taken by LXC is more similar to sandboxing on mobile devices than virtualization. The ‘app’ can be thought of as a container, while the sandbox stays light by marshaling access to shared resources rather than creating virtualized ones. Another consideration with mobile is that it is much easier for an attacker to gain physical access to the device. In this situation containerization may not be enough - if you have physical access to the container, you can break in. One solution to mitigating this sort of attack is by reducing reliance on the operating system for protection, and additionally protecting what’s inside the container. At Apperian we offer Data At Rest (DAR) encryption as part of our app wrapping technology. Data At Rest ensures that all data persisted to disk by an application is transparently encrypted, ensuring the security of the contents of the container.


More from the Blog
Aug 08, 2019

Mind the Gap: Applications Are Your Biggest Weakness

Something Has To Change There has been a lot of talk this year about the need to better protect applications, particularly m ...
Read more
Aug 07, 2019

Here Comes CCPA

Ready Or Not, Here It Comes! As of publication, there are 147 days left until CCPA and SB-327 come into effect.
Read more
Aug 01, 2019

A Wake-up Call to the Financial Services Industry and Legislators: It’s Time to Regulate Mobile Apps

The time for resting on laurels is over.
Read more