The hypervisor guarantees that only parameters
explicitly specified in the system call of trusted pro-
cess address ranges may be modified. To accom-
plished it the stub driver allocates memory area of the
required size and modifies the system call parameters,
OS writes results in this memory area. The hypervisor
copies the data into the corresponding memory area
of the trusted process upon the return from the system
call.
6 IMPLEMENTATION
Currently, the protection system is implemented as
extension of KVM hypervisor. KVM runs in a host
operating systems and uses x86 emulator QEMU for
device emulation. In our work, we use KVM 88 ver-
sion, QEMU 0.15 version and Linux kernel of 2.6.32
version.
6.1 Performance
In order to measure overhead of memory protection
and system call servicing, we have performed several
tests. In each measurement there was only one trusted
process. The list below presents results of the tests for
a few popular applications. Percent value is the ex-
tra time spent by the trusted application compared to
the time spent by the same application with protection
system disabled.
Table 1: Measurements.
Software Description Overhead
Apache Flood test. 2%
Ttcp Ordinary execution. 2%
SSH&SCP SCP 4Gb file copy. 22%
7 CONCLUSIONS
This article presents an approach to protect applica-
tion confidentiality from untrusted (potentially com-
promised) OS. The approach is implemented by se-
lectively granting a network resource access to the
specific trusted user applications. Confidentiality is
achieved by preventing untrusted, malware or com-
promised OS components from communication chan-
nels to the outside world.
The implementation of the approach is based on
the execution of the untrusted OS within a virtual ma-
chine and placement of the trusted part of the secu-
rity system in the hypervisor body. It allows achiev-
ing full control of access of the processes executed
under VM to the hardware resources. The security
system therewith remains inaccessible for attacks by
malicious software.
Facilities of system call intercepting, reading their
parameters, and writing syscall results provided by
virtualization makes it possible to protect access to
any peripheral hardware resources.
The possibility to grant to certain processes a con-
trolled access to the resources not accessible by the
OS itself, provides a way to effectively solve particu-
lar issues of the user data confidentiality preservation
problem and confines untrusted applications, includ-
ing the OS kernel, within the network node, making
malicious networking impossible.
At the moment the implementation of the hyper-
visor is based on KVM for Linux on AMD platform
and it supports network confinement for Linux only.
Future research goals are extension of the approach to
Intel VT-x platform, support MS Windows family of
operating systems, and “bare-metal” execution of the
hypervisor.
REFERENCES
(2008). AMD-V
TM
Nested Paging. Advanced Micro Devices
Inc.
(2011). AMD64 Architecture Programmer's Manual Vol-
ume 2: System Programming. Advanced Micro De-
vices Inc.
Chen, X., Garfinkel, T., Lewis, E. C., Subrahmanyam, P.,
Waldspurger, C. A., Boneh, D., Dwoskin, J., and
Ports, D. R. (2008). Overshadow: a virtualization-
based approach to retrofitting protection in commod-
ity operating systems. In ASPLOS XIII: Proceedings
of the 13th international conference on Architectural
support for programming languages and operating
systems, pages 2–13, New York, NY, USA. ACM.
LeVasseur, J., Uhlig, V., Stoess, J., and G¨otz, S. (2004).
Unmodified device driver reuse and improved sys-
tem dependability via virtual machines. In OSDI'04:
Proceedings of the 6th conference on Symposium on
Opearting Systems Design & Implementation, pages
2–2, Berkeley, CA, USA. USENIX Association.
Ta-Min, R., Litty, L., and Lie, D. (2006). Splitting inter-
faces: making trust between applications and operat-
ing systems configurable. In OSDI '06: Proceedings
of the 7th symposium on Operating systems design
and implementation, pages 279–292, Berkeley, CA,
USA. USENIX Association.
Yang, J. and Shin, K. G. (2008). Using hypervisor to
provide data secrecy for user applications on a per-
page basis. In Proceedings of the fourth ACM SIG-
PLAN/SIGOPS international conference on Virtual
execution environments, VEE ’08, pages 71–80, New
York, NY, USA. ACM.
SECRYPT2012-InternationalConferenceonSecurityandCryptography
398