Notes - MCS
Secure Execution Environments
Notes - MCS
Secure Execution Environments
  • Secure Execution Environments
  • Introduction
    • Trusted Computing Base (TCB)
    • TEE (Trusted Execution Environment)
    • Can you trust the operating system?
  • Security in Operating Systems
    • Operating system
    • Virtual machines and hypervisors
    • Computational model
    • Access control
    • Protection with capabilities
    • Unix file protection ACLs
    • Windows NTFS file protection
    • Unix file protection ACLs
    • Privilege elevation
    • Privilege reduction
    • Linux login
  • Virtualization on Intel Processors
    • Modes of Operation
    • Virtual memory
    • How to put assembly instructions inside C code
    • A more elaborate example
    • Useful assembly instructions
  • Intel Software Guard Extensions
    • What is SGX (Software Guard eXtensions)?
    • SGX Enclave Memory
    • Guidelines for designing applications using SGX
    • Performance Overhead
    • SDK compilation modes
    • Writing Enclave Functions
  • ARM TrustZone
    • SoC and IP
    • ARM TrustZone
    • Worlds
    • Architecture
    • TrustZone bootstrap
  • Linux Kernel Namespaces
    • Namespaces
    • Advantages
    • Process Namespace
    • Network namespace
    • Mount namespace
    • UTS namespace
    • User namespace
  • LXC Linux Containers
    • Container
    • LXC containers
  • AppArmor
    • Purpose
    • Enforcement
    • Benefits
    • Attack prevention
    • Enforcement policies
    • Enforcement modes
    • Logging and auditing
    • Profiles
  • TPM (Trusted Platform Module)
    • Trusted Platform Module (TPM)
    • History
    • Cryptographic Concepts
    • Use cases
    • TPM Software Stack (TSS)
    • TPM concepts
    • Entities
    • Key management
    • Restrict signatures
    • Sessions
    • Authorization roles
  • Bootstrap security
    • AEGIS
    • Trusted computing
    • Root of Trust Measurements
    • Trusted Computing Platform Alliance (TCPA)
    • TPM-based attestation
    • Trusted Platform identity credentials
    • UEFI (Unified Extensible Firmware Interface)
    • NSA Boot Security
    • UEFI secure boot & TPM measurements
    • Intel Trusted Execution Technology (TXT)
    • Smartcards
      • Java Cards
      • OpenCard Framework (OCF)
      • Cryptographic services
Powered by GitBook
On this page
  • User identifiers
  • Group identifiers
  • Processes
  1. Security in Operating Systems

Computational model

  • Set of entities (objects) managed by the OS kernel.

    • High-level abstractions are supported transparently by low-level mechanisms.

  • Processes.

  • User identifiers.

    • Users;

    • Groups.

  • Virtual memory.

  • Files and file systems.

    • Directories;

    • Files;

    • Special files.

  • Communication channels.

    • Pipes;

    • Sockets;

    • Etc.

  • Physical devices.

    • Storage;

      • Tapes;

      • Magnetic disks;

      • Optical disks;

      • SSD.

    • Network interfaces

      • Wired, wireless.

    • Human-computer interfaces.

      • Keyboards;

      • Graphical screens;

      • Text consoles;

      • Mice.

    • Serial/parallel I/O interfaces

      • USB;

      • Serial & parallel ports;

      • Bluetooth.

User identifiers

For the OS kernel, a user is a number.

  • It is established during a login operation.

  • User ID (UID).

All activities are executed on a computer on behalf of a UID.

  • The UID allows the kernel to assert what is allowed/denied to processes.

  • Linux: UID 0 is omnipotent (root).

    • Administration activities are usually executed with UID 0.

  • Windows: the concept of privileges.

    • For administration, system configuration, etc.

    • There is no unique, well-known identifier for an administrator.

    • Administration privileges can be bound to several UIDs.

      • Usually through administration groups;

      • Administrators, Power Users, Backup Operators.

  • Linux: the concept of capabilities (similar to privileges).

Group identifiers

Groups also have an identifier.

  • A group is a set of users;

  • A group can be defined by including other groups;

  • Group ID (GID).

A user can belong to several groups.

  • Actual user rights = UID rights + rights of his groups’ GIDs.

In Linux, all activities are executed on behalf of a set of groups.

  • Primary group.

    • It is typically used for setting file protection.

  • Secondary groups.

Processes

  • A process defines the context of an activity.

    • For making security-related decisions.

    • For other purposes (e.g. scheduling).

  • Security-related context.

    • Identity (UID and GIDs).

      • Fundamental for enforcing access control.

    • Resources being used.

      • Open files.

        • Including communication channels.

      • It is reserved for virtual memory areas.

      • CPU time used.

Last updated 1 year ago