summaryrefslogtreecommitdiffstats
path: root/sec-blueprint/05-platform-security.md
diff options
context:
space:
mode:
Diffstat (limited to 'sec-blueprint/05-platform-security.md')
-rw-r--r--sec-blueprint/05-platform-security.md162
1 files changed, 0 insertions, 162 deletions
diff --git a/sec-blueprint/05-platform-security.md b/sec-blueprint/05-platform-security.md
deleted file mode 100644
index 9bf96d6..0000000
--- a/sec-blueprint/05-platform-security.md
+++ /dev/null
@@ -1,162 +0,0 @@
----
-
-title : Platform Security
-date : 2017-07-07
-categories: architecture, automotive
-tags: architecture, automotive, linux
-layout: techdoc
-
----
-
-**Table of Content**
-
-1. TOC
-{:toc}
-
-This section describes how the Automotive Grade Linux (AGL) platform
-applies some of the previously described security concepts to
-implement platform security
-
-# Platform Definition
-The Automotive Grade Linux(AGL) platform is a Linux distribution
-with AGL compliant applications and services. The platform includes the
-following hardware:
- - SoC (System-on-Chip)
- - Memory (RAM, ROM, storage, etc.)
- - Peripherals
-
-The AGL platform includes the following software:
- - Linux BSP configured for reference boards
- - Proprietary device drivers for common peripherals on reference boards
- - Application framework
- - Windows/layer management (Graphics)
- - Sound resource management
- - An atomic software update system
- - Building and debug tools (based on Yocto project)
-
-For more details, refer to the AGL Architecture/Specification Document.
-
-# Secure Boot
-Currently, AGL does not provide a secure boot solution but highly recommends
-that the manufactured solution make use of a secure boot mechanism. For
-instructions on securing u-boot, please refer to the System Hardening Guide.
-
-# Certificate and Key Management
-Currently, AGL does not provide a secure certificate and key management
-solution but highly recommends that the manufactured solution make use
-of secure key management.
-
-# Mandatory Access Control
-Mandatory Access Control (MAC) is a protection provided
-by the Linux kernel that requires a Linux Security Module (LSM).
-AGL uses an LSM called Simplified Mandatory Access Control Kernel (SMACK).
-This protection involves the creation of SMACK labels as part of the extended
-attributes SMACK *labels* to the extended attributes of the file and then
-creation of a policy to define the behaviour of each label. The kernel controls
-access based on these labels and this policy.
-
-There are two types of SMACK labels.
-* An *Execution* SMACK label of a process defines how files
-are accessed and created by that process.
-
-* The *File Access* SMACK label defines which process can access the file.
-This SMACK label is written to the extended attribute of the file.
-
-
-By default a process executes with its File Access
-SMACK label unless an Execution SMACK label is defined.
-
-AGL's SMACK scheme is based on the Tizen 3 Q2/2015.
-It divides the System into the following domains :
-
-## Floor
-The *floor* domain includes the base system services and any associated data
-and libraries. This data remains unchanged at runtime.
-Writing to floor files or directories is allowed only in development
-mode or by installation and upgrade software.
-
-The following table details the *floor* domain:
-
--------------------------------------------------------------------------------------------------------------------------
-
-|Label| Name | File | Process | Comment |
-|:-:|:-------|:-------------|:------------------------------------|:-----------------------------------------------------|
-| |
-| - | Floor | r-x for all | Only kernel and<br>internal kernel thread <br>| -- |
-| ^ | Hat | --- for all | rx on all domains | Only for privileged system services (currently only systemd-journal). Useful for backup or virus scans. No file with this label should exist except in the debug log. |
-| * | Star | rwx for all | None | used for device files or /tmp Access restriction managed via DAC. Individual files remain protected by their SMACK label. |
-
-
-
-## System
-The *system* domain includes a reduced set of core system services of the OS and
-any associated data. This data may change at runtime.
-
-The following table details the *system* domain:
-
--------------------------------------------------------------------------------------------------------------------------
-
-|Label| Name | File | Process | Comment |
-|:--|:-------|:-------------|:------------------------------------|:-----------------------------------------------------|
-| |
-|System|System|none|Privileged<br>processes|Process should write only to file with transmute attribute.|
-|System::run|Run|rwxatl for User and System label|None|Files are created with the directory label<br>from user and system domain (transmute)<br>Lock is implicit with w.|
-|System::shared|Shared|rwxatl for system domain<br>r-x for User label|None|Files are created with the directory label from system domain (transmute)<br>User domain has locked privilege|
-|System::Log|Log|rwa for System label<br>xa for user label|None|Some limitation may impose to add w to enable append.|
-|System::Sub|SubSystem|Subsystem Config files|SubSystem only|Isolation of risky Subsystem**|
-
-
-## Applications, Services and User
-The *application, services and user* domain includes code that
-provides services to the system and user, as well as
-any associated data. All code running in this domain is under Cynara
-control.
-
-The following table details the *application, services and user* domain:
-
--------------------------------------------------------------------------------------------------------------------------
-
-|Label| Name | File | Process | Comment |
-|:--|:-------|:-------------|:------------------------------------|:-----------------------------------------------------|
-| |
-|App::$AppID|AppID|rwx (for files created by the App).<br>rx for files installed by AppFW|$App runtime<br>executing $App|Only one Label is allowed per App.<br>A data directory is created by the AppFW in rwx mode.<br>Older releases still use User::App::$AppID |
-|User::Home|Home|rwx-t from System label<br>r-x-l from App|None|AppFW needs to create a directory in /home/$USER/App-Shared at first launch if not present with label<br>app-data access is "User::App-Shared"<br>without transmute.|
-|App-Shared|Shared|rwxat from System and User domains label of $User|None|Shared space between all App running for a given user.<br>Older releases may still use User::App-Shared|
-
-# Yocto Security Layer
-Currently, AGL relies on Cynara and Security Manager from Yocto Layer
-meta-intel-iot-security. Please note that support for these components has
-been dropped in the upstream project.
-
-# Application API Transport
-Currently, AGL Application framework uses D-Bus interface for transport
-and uses the inherent security that comes with this protocol.
-
-# Resource Management and Protection
-AGL provides resource management and protection through SMACK labels.
-Please refer to application framework documentation for more details.
-
-# TrustZone
-Currently, AGL does not provide any direct support for TrustZone.
-This feature strictly depends on the SoC and is only available on ARM architectures.
-
-# AGL Platform Software Update
-
-The update solution must be atomic and the following update requirements:
-- Support Smack as MAC
-- Support Read-Only Filesystem
-- Support Integrity Enforcement
-
-Currently AGL offers a reference implementation of the Over-The-Air
-update system using OSTree. Work is being done to secure the OTA
-updates using *Uptane*.
-
-For more information on Uptane, please refer to:
-
-https://uptane.github.io/
-
-# Cloud Service Infrastructure
-Currently, AGL does not provide a any cloud service infrastructure
-
-
-For recommendations on hardening the system, please refer to the System Hardening Guide.