Coder Social home page Coder Social logo

dbuono / dynamic-syscall-filtering-for-qemu Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ashishdas009/dynamic-syscall-filtering-for-qemu

0.0 0.0 0.0 872 KB

Shell 0.60% Dockerfile 0.46% Makefile 0.76% Go 0.88% HTML 6.22% CSS 0.25% Lua 20.55% CMake 0.54% JavaScript 0.23% Python 1.59% C++ 7.45% C 58.96% Thrift 0.15% Roff 0.06% Assembly 1.06% Batchfile 0.23% Objective-C 0.01%

dynamic-syscall-filtering-for-qemu's Introduction

dynamic-syscall-filtering-for-qemu

Quick Emulator (QEMU) is a generic and open source machine emulator and virtualizer. It has become a de facto tool in industry for virtualization in cloud. Therefore, security for QEMU becomes one of the topmost priorities for organizations running cloud environments around the world. Secure Computing mode (Seccomp) is one such library which protects the host from a rogue VM running inside the QEMU. Seccomp is a configurable system call (syscall) filter which can be extended to allow or deny certain syscalls that are being called the VMs through QEMU and KVM. These syscalls can be particularly dangerous if they can be manipulated to place an attack on the host through QEMU. One such attack can be placed using syscall mprotect() (using CVE-2015-5165 and CVE-2015-7504) from a compromised VM to QEMU host, rendering the entire infrastructure vulnerable. Since seccomp is a static filter, the critical syscalls like mprotect() cannot be excluded once their usage is over. To overcome this limitation of seccomp, we propose a new mechanism for syscall filtering in QEMU. This mechanism is based on the syscalls that are called by QEMU in different phases of VM operation, for e.g. booting, running. From our experiments, we have found out that there are phases in which some syscalls are never called. To prevent these redundant syscalls to become a point of attack on the host, we have designed a dynamic syscall filter which can be configured according to the phase of VM. The policies can be configured according to the requirement of the syscalls in that particular phase. This can substantially reduce the QEMU attack surface based on syscalls. The transition of phases in QEMU can be tracked using a custom tracer. The tracer will continuously listen for the pre-identified transition point on the VM. Once the transition point occurs, the tracer will send the signal to the QEMU to switch to different policy according to the current phase in which VM is in presently.

dynamic-syscall-filtering-for-qemu's People

Contributors

ashishdas009 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.