How To Write Security Enhanced Linux On Embedded Systems (Es) On A Microsoft Linux 2.2.2 (Amd64) (Amd32) (A Microsoft Microsoft 2.3.2) (For Microsoft) (Or



Similar documents
Networking Virtualization Using FPGAs

The Flask Security Architecture A Flexible Mandatory Access Control Mechanism For Use in Multiple Secure Systems

Linux Distributed Security Module 1

Security Enhanced Linux and the Path Forward

Accelerate Cloud Computing with the Xilinx Zynq SoC

Next Generation Operating Systems

NSA Security-Enhanced Linux (SELinux)

Next Generation Now: Red Hat Enterprise Linux 6 Virtualization A Unique Cloud Approach. Jeff Ruby Channel Manager jruby@redhat.com

The Benefits of Verio Virtual Private Servers (VPS) Verio Virtual Private Server (VPS) CONTENTS

Full and Para Virtualization

Performance Tuning and Optimizing SQL Databases 2016

Host Hardening. Presented by. Douglas Couch & Nathan Heck Security Analysts for ITaP 1

Oracle Linux Overview. Presented by: Anuj Verma Title: Senior Pre-Sales Consultant

Industry First X86-based Single Board Computer JaguarBoard Released

Hypervisors. Introduction. Introduction. Introduction. Introduction. Introduction. Credits:

I Control Your Code Attack Vectors Through the Eyes of Software-based Fault Isolation. Mathias Payer, ETH Zurich

Panoramica su Cloud Computing targata Red Hat AIPSI Meeting 2010

Red Hat Network Satellite Management and automation of your Red Hat Enterprise Linux environment

Red Hat Satellite Management and automation of your Red Hat Enterprise Linux environment

SECURE IMPLEMENTATIONS OF CONTENT PROTECTION (DRM) SCHEMES ON CONSUMER ELECTRONIC DEVICES

Hybrid Virtualization The Next Generation of XenLinux

SELinux. Security Enhanced Linux

CLOUDSPECS PERFORMANCE REPORT LUNACLOUD, AMAZON EC2, RACKSPACE CLOUD AUTHOR: KENNY LI NOVEMBER 2012

Mobile Operating Systems. Week I

Performance Evaluation of VMXNET3 Virtual Network Device VMware vsphere 4 build

Hitachi Virtage Embedded Virtualization Hitachi BladeSymphony 10U

Getting Started with Embedded System Development using MicroBlaze processor & Spartan-3A FPGAs. MicroBlaze

A hypervisor approach with real-time support to the MIPS M5150 processor

HANIC 100G: Hardware accelerator for 100 Gbps network traffic monitoring

Linux Security on HP Servers: Security Enhanced Linux. Abstract. Intended Audience. Technical introduction

Laboratory Report. An Appendix to SELinux & grsecurity: A Side-by-Side Comparison of Mandatory Access Control & Access Control List Implementations

OVA KVM THE SOLUTION. Virtually Unmatched. Get to know KVM. Low cost, super secure and infinitely scalable. JOIN WHAT IS GET SECURITY LOW COST

EECatalog SPECIAL FEATURE

Compromise-as-a-Service

Stateful Inspection Technology

Implementing Large-Scale Autonomic Server Monitoring Using Process Query Systems. Christopher Roblee Vincent Berk George Cybenko

APPLICATION NOTE. RTD Linux Support Overview. SWM Rev C

Common Criteria Evaluation Challenges for SELinux. Doc Shankar IBM Linux Technology Center

7a. System-on-chip design and prototyping platforms

Fine-Grained User-Space Security Through Virtualization. Mathias Payer and Thomas R. Gross ETH Zurich

How To Build A Cloud Computer

Where IT perceptions are reality. Test Report. OCe14000 Performance. Featuring Emulex OCe14102 Network Adapters Emulex XE100 Offload Engine

Kirchhoff Institute for Physics Heidelberg

Satish Mohan. Head Engineering. AMD Developer Conference, Bangalore

Getting the most TCP/IP from your Embedded Processor

LSM-based Secure System Monitoring Using Kernel Protection Schemes

Beyond Virtualization: A Novel Software Architecture for Multi-Core SoCs. Jim Ready September 18, 2012

Using the Flask Security Architecture to Facilitate Risk Adaptable Access Controls

Virtualization and Other Tricks.

Data Center and Cloud Computing Market Landscape and Challenges

The virtualization of SAP environments to accommodate standardization and easier management is gaining momentum in data centers.

Secured Embedded Many-Core Accelerator for Big Data Processing

Endpoint protection for physical and virtual desktops

Cisco Prime Home 5.0 Minimum System Requirements (Standalone and High Availability)

Agenda. Capacity Planning practical view CPU Capacity Planning LPAR2RRD LPAR2RRD. Discussion. Premium features Future

An Analysis of Container-based Platforms for NFV

VMWARE Introduction ESX Server Architecture and the design of Virtual Machines

SDN AND SECURITY: Why Take Over the Hosts When You Can Take Over the Network

Virtual Machine Security

Geospatial Server Performance Colin Bertram UK User Group Meeting 23-Sep-2014

Android Operating System

Secure Cloud Storage and Computing Using Reconfigurable Hardware

Evading Android Emulator

CentOS Linux 5.2 and Apache 2.2 vs. Microsoft Windows Web Server 2008 and IIS 7.0 when Serving Static and PHP Content

COMPUTING. SharpStreamer Platform. 1U Video Transcode Acceleration Appliance

PARALLELS SERVER 4 BARE METAL README

Audit & Tune Deliverables

INFOBrief. Red Hat Enterprise Linux 4. Key Points

OpenFlow with Intel Voravit Tanyingyong, Markus Hidell, Peter Sjödin

ODP Application proof point: OpenFastPath. ODP mini-summit

Dynamic Load Balancing of Virtual Machines using QEMU-KVM

TRACE PERFORMANCE TESTING APPROACH. Overview. Approach. Flow. Attributes

FPGA area allocation for parallel C applications

COMMONWEALTH OF PENNSYLVANIA DEPARTMENT S OF PUBLIC WELFARE, INSURANCE AND AGING

Chapter 14 Virtual Machines

Hybrid Platform Application in Software Debug

PERFORMANCE ANALYSIS OF KERNEL-BASED VIRTUAL MACHINE

Chapter 2 Addendum (More on Virtualization)

Mobile Cloud Computing for Data-Intensive Applications

Virtualization Performance on SGI UV 2000 using Red Hat Enterprise Linux 6.3 KVM

Endpoint protection for physical and virtual desktops

Mobile Platform Security Architectures A perspective on their evolution

Security and Integrity of a Distributed File Storage in a Virtual Environment

Confining the Apache Web Server with Security-Enhanced Linux

The Xen of Virtualization

AppScope: Application Energy Metering Framework for Android Smartphones using Kernel Activity Monitoring

Performance Evaluation of Shared Hosting Security Methods

Chapter 13 Embedded Operating Systems

Virtualization. Jukka K. Nurminen

01. Introduction of Android

Quantifying the Performance Degradation of IPv6 for TCP in Windows and Linux Networking

Transcription:

Security Enhanced Linux on Embedded Systems: a Hardware-accelerated Implementation Leandro Fiorin, Alberto Ferrante Konstantinos Padarnitsas, Francesco Regazzoni University of Lugano Lugano, Switzerland 1/30

Outline Motivations Overview of SELinux SELinux on Embedded Systems Hardware-assisted SELinux Implementation Experimental results 2/30

Motivations (1/3) Security has gained importance in the embedded systems world Computing and communication increasingly pervade our lives: security and protection of sensitive data are extremely important Embedded Systems present several unique security challenges: Resource constrained Often very portable 3/30

Motivations (2/3) Vulnerability to attacks increases with the functionalities Possible attacks from: Cellular networks Bluetooth Network connection USB... Threats to: data confidentiality data integrity availability of data and services 4/30

Motivations (3/3) Security solutions available for computers are: often not scalable to ES partially effective rarely employed by final users 5/30

Process Isolation Restrict access of processes to system resources: It greatly limits the effects of security holes in the software. It can be implemented in different ways: Virtualization Fine-grain access control on resources 6/30

Virtualization Should be configured properly to provide secure isolation Resource demanding: Not suitable for most embedded systems [http://www.supportsd.com/services/virtualization] 7/30

Fine-grain access control on resources Allows controlling the access by processes to system resources Files Devices Memory locations Network sockets... Allows implementing sandboxing: Each group of applications are confined in a different environment No access to resources of other processes 8/30

Overview of SELinux (1/2) Designed by National Security Agency Introduced in 2001 Included from 2003 as a standard kernel module in Linux e.g., in Red Hat and Fedora Linux it is enabled by default Flexible mandatory method for controlling accesses to all the resources by processes: Supplements Linux with a Mandatory Access Control (MAC) Linux implements Discretionary access Control: Users may give or revoke access privileges to their own objects 9/30

Overview of SELinux (2/2) It defines the access and transition rights of: Users Applications Processes Files It governs the interactions of these entities: Based on a well-defined security policy Set of rules Written in accordance with the principle of least privilege: allowed actions must be explicitly defined 10/30

SELinux: elements (1/2) Subject: The system element requesting access to a resource: Typically a process Object: The resource to be accessed: a file, a network socket, a device, Objects are divided in classes: Specify the kind of object 11/30

SELinux: elements (2/2) Security server: Takes decisions (allowed/not allowed) on the requested actions Contains the SELinux Policy: Each rule contains the triple subject, object, object class, and the associated access vector The policy database is managed as a common single linked list hash table; the key is a concatenation of the subject identifier, the target identifier, and the object class Object Manager: Queries the Security Server Caches the decisions of the Security Server: Access Vector Cache (AVC), managed in the same way as the policy database Enforces the access decisions 12/30

SELinux Architecture Clean separation between policy enforcement code and decisionmaking core 13/30

SELinux Query Example taken from: Lars Strand, RHEL5 SELinux: A benchmark http://blog.larsstrand.org/article.php?story=rhel5-selinux-benchmark 14/30

SELinux in Embedded Systems Overhead not negligible in terms of CPU usage and memory [1][2][3]: Overhead on single operations might be high Overhead on full applications depends on the application: up to 10% for Apache an average of 7% on the server activities up to 66% for I/O intensive applications on embedded systems Up to 8% for non-i/o intensive applications Operation Lmbench Null read 130 Lmbench Null write 147 Lmbench Create 168 Lmbench TCP 22 Unixbench 256B read 67 Unixbench 1024B read 44 Unixbench 4096B read 16 Overhead (%) [1] Y. Nakamura et al, SELinux for Consumer Electronic Devices, Linux Symposium 2008 [2] A. Shabtai et al, Securing Android-Powered Mobile Devices Using SELinux, IEEE Secury and Privacy, 2010 [3] L. Strand, RHEL5 SELinux: A benchmark 15/30

SELinux in ES previous work Previous work focused on: reducing the size of policies by removing unnecessary configurations tuning kernel and userland by removing unneeded functions reducing memory usage by removing non-required data structures from kernel Selinux was ported to Android devices and to Nokia 770 internet tablet Security Enhanced Android released by NSA In our work we decrease the performances overhead: Lower energy overhead Lower computational cost No modifications on memory consumption No modifications to the architecture of SELinux 16/30

Hardware-assisted SELinux Possible architectures 17/30

Hardware-assisted SELinux Main source of overhead is in the policy lookup operations: Done at each access! Most of the lookups are normally executed in the AVC Misses % 2.40% 2.00% 1.60% 1.20% 0.80% 0.40% Tests on mplayer playing a mp3 file over internet 0.00% 4 8 16 32 64 128 256 512 Number of entries The AVC can be implemented in hardware to reduce the time/energy overhead 18/30

Hardware AVC (HAVC) Mainly composed of a LUT The CAM stores keys to be looked up when performing access control The RAM stores the encoded access rights for the key: Different encoding used to reduce memory occupation 19/30

Implementation (1/2) Prototype system implemented on a Xilinx ML510: Linux (kernel 2.6.34) running on the onboard PowerPC 440 HAVC implemented on the Xilinx Virtex V FPGA 20/30

Implementation (2/2) AVC query and insert added as new instructions Use of Auxiliary Processor Unit (APU) for implementing the HW API The Control Unit: Implements a FSM Controls the execution of queries/insertions 21/30

Integration with the OS SELinux code modified for using the HAVC Added a hardware API for SELinux Proper interfaces for the hardware accelerator added by modifying the related function calls: In avc_has_perm() the avc_lookup() function substituted with a call to the HW API In avc_has_perm() the avc_insert() function substituted with a call to the HW API 22/30

Results Single lookup cost 23/30

Results Overhead on benchmarks 24/30

Results Area and Energy Measurements CACTI was used for estimating the area of: RAM CAM Synopsys Design Compiler was used for estimating the area of the other components of the HAVC Wattch used to estimate energy consumption of software-only SELinux hardware-accelerated SELinux: HAVC instructions were added to the instruction set Energy consumption of a single HAVC instruction evaluated through CACTI and Synopsys 25/30

Results Area # Entries in HAVC Area (mm2) A HAVC with 64 entries uses an area that is 2.5% the one of a PowerPC 405-F6 implemented on a 90nm technology. 32 0.0342 64 0.0537 128 0.0957 256 0.1256 26/30

Results - Energy Function Average Energy (nj) Energy consumption for single queries/inserts is orders of magnitude lower when the hardware accelerator is used. SW-only lookup 826 SW-only insert 2,923 HW-SW lookup 0.0106 HW-SW insert 0.0107 27/30

Conclusions We proposed a solution for reducing the performance overhead due to SELinux We tested the solution with good performances by implementing it on a FPGA-based platform We evaluated area and energy of an ASIC implementation 28/30

Future Work Write a policy targeted for embedded systems: Generic policy Policy for sandboxing of non-trusted applications Improve the management of the HAVC Optimize the architecture of the accelerator for multicore/multiprocessors Investigate the adoption of the accelerator for PCs and servers. 29/30

Thanks for your attention! alberto.ferrante@usi.ch 30/30