24
Introduction to Computer Security Windows Security Pavel Laskov Wilhelm Schickard Institute for Computer Science

Introduction to Computer Security - Windows Security

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction to Computer Security - Windows Security

Introduction to Computer SecurityWindows Security

Pavel LaskovWilhelm Schickard Institute for Computer Science

Page 2: Introduction to Computer Security - Windows Security

Microsoft Windows Family Tree

Key security milestones:

NT 3.51 (1993): network drivers and TCP/IP

Windows 2000: Active Directory, Kerberos, security architecture.

Server 2003: security policies, LAN and wireless security

Vista (2007): no “admin-by-default”, firewall, DEP, ASLR

64-bit versions (Vista+): mandatory kernel code signing

Page 3: Introduction to Computer Security - Windows Security

Architecture of modern Windows OS

Page 4: Introduction to Computer Security - Windows Security

Security components of Windows OS

Kernel mode:Security Reference Monitor: ACL verification

User mode:Log-on process (winlogon): user logonLocal Security Authority (LSA): password verification andchange, access tokens, audit logs (MS04-11 buffer overflow:Sasser worm!)Security Accounts Manager (SAM): accounts database,password encryptionUser Account Control (UAC, Vista): enforcement of limited userprivileges

Page 5: Introduction to Computer Security - Windows Security

Windows registry

A hierarchical database containing critical systeminformationKey-value pairs, subkeys, 11 values typesA registry hive is a group of keys, subkeys, and valuesSecurity-related registry hives:

HKEY_LOCAL_MACHINE\SAM: SAM databaseHKEY_LOCAL_MACHINE\Security: security logs, etcHKEY_LOCAL_MACHINE\Software: paths to programs!

Security risks:manipulated registry entriesmissing security-related registry keys

Page 6: Introduction to Computer Security - Windows Security

Windows domains

A domain is a collection of machinessharing user accounts and securitypolicies.Domain authentication is carried outby a domain controller (DC).To avoid a single point of failure, aDC may be replicated

Page 7: Introduction to Computer Security - Windows Security

Active directory

Active directory introduced in Windows 2000 is an LDAP-likedirectory service for organization of system resources:

Users and groupsSecurity credentials and certificatesSystem resources (desktops, servers, printers)Security policiesDNS serviceTrust management

Page 8: Introduction to Computer Security - Windows Security

Active Directory structure

Page 9: Introduction to Computer Security - Windows Security

Access control in Windows

Access control is applied to objects: files, registry keys andhives, Active Directory objects.More than just access control on files!Various means exist for expressing security policies:

groupsrolesownership and inheritance rulescomplex access rights

Page 10: Introduction to Computer Security - Windows Security

Principals

Principals are active entities in security policiesPrincipals can be

local usersaliasesdomain users

groupsmachines

Principals have a human readable user name and a uniquesecurity identifier (SID)Local principals are created by a LSA, e.g.

principal = MACHINE\principal

Domain principals are administered by DC, e.g.principal@domain = DOMAIN\principal

Page 11: Introduction to Computer Security - Windows Security

Security identifiers

A security identifier (SID) is a unique, machine generatedcode of varying length used to identify principals.Format: S-1-IA-SA-SA-SA-N, where

IA (identifier authority): characterizes an issuer, e.g. WorldAuthority (1) or Local Authority (2)SA (subauthority): identifies a specific SID issuer, e.g. a domaincontrollerN: relative identifier, unique for each authority

Examples:Everyone (World): S-1-1-0System: S-1-5-18Administrator: S-1-5-21-<domain>-500

Page 12: Introduction to Computer Security - Windows Security

Principals used for access control

SID: an individual principalGroup: a collection of principals managed by DC; groupshave their own SIDs and can be nestedAlias: a local group managed by LSA; cannot be nestedAliases implement logical roles: an application may definean alias to which SIDs are assigned at run-time

Page 13: Introduction to Computer Security - Windows Security

Subjects

Subjects are active entities in OS primitives.Windows subjects are processes and threads.Security credentials for a subject are stored in a token.Tokens provide a principal/subject mapping and may containadditional security attributes.Tokens are inherited (possibly with restrictions) duringcreation of new processes.

Page 14: Introduction to Computer Security - Windows Security

Token contents

Identity and authorisation contentsuser SID, group SIDs, alias SIDsprivileges

Defaults for new securable objectsowner SID, group SID, DACL

Miscellaneous attributeslogon SID

Page 15: Introduction to Computer Security - Windows Security

Privileges

A set of fixed privileges is defined by numeric constants inWinnt.hPrivileges control access to system resources.Example privileges:

load or unload a device driverlock a page in a physical memorycreate a computer accountshut down a systemmodify a system time

Privileges are not access rights!

Page 16: Introduction to Computer Security - Windows Security

Objects

Objects represent various passive OS entitiesExample Windows objects:

files or directoriespipesprocesses and threadsfile mappingsaccess tokenswindow-managementobjects

registry keysprintersnetwork sharessynchronization objectsjob objectsActive Directory objects

Security of built-in objects is managed by OSSecurity of private objects must be managed by applicationsSecurable objects are equipped with a security descriptor

Page 17: Introduction to Computer Security - Windows Security

Security descriptor

Owner: a principal who owns an objectPrimary group: for POSIX compatibilityDACL: specifies who is granted and who is denied accessSACL: specifies a security audit policy

Page 18: Introduction to Computer Security - Windows Security

Access rights: an overview

Describe what one can do to an objectEncoded as a 32-bit maskStandard access rights (bits 16–23) are common to mostobject types

DELETEREAD_CONTROL: read object’s security descriptorSYNCHRONIZE: use object for synchronization (not all objects)WRITE_DAC: change object’s DACLWRITE_OWNER: change object’s owner

Object-specific rights (bits 0–15) are tailored to each class ofobjectsExtended rights can be specified for Active Directory entries.

Page 19: Introduction to Computer Security - Windows Security

Generic access rights

The highest 4 bits (28–31) represent generic access rights:GENERIC_READGENERIC_WRITEGENERIC_EXECUTEGENERIC_ALL

Each class of objects maps its generic rights toobject-specific rights.Generic rights are used to simplify design: they provide anintermediate description level for access rights.

Page 20: Introduction to Computer Security - Windows Security

ACLs in Windows

DACL in a security descriptor is a list of Access ControlEntries (ACE)ACE format:

ACE type: positive or negative permissionsPrincipal SIDAccess rights maskInheritance flags

ACEs are processed sequentially until either some entrydenies all requested access rights or a set of ACEs grantsall requested access rights

Page 21: Introduction to Computer Security - Windows Security

ACE matching algorithm

For any objects that do not have DACL, access is always granted.For all other objects, the subject’s token is compared sequentiallywith each ACE as follows:

ACE does not contain a matching SID: skip and continue.SID matches and contains a negative permission: denyaccess and stop.SID matches and contains a positive permission:

if accumulated access rights match access mask, grand accessand stop.otherwise add ACE to the accumulated access rights andcontinue.

Page 22: Introduction to Computer Security - Windows Security

ACL processing example

Page 23: Introduction to Computer Security - Windows Security

ACL inheritance

When a new object is created, its ACL is inherited from thatof the enclosing container, e.g. a directory.Only ACEs with a matching object type are inherited

Page 24: Introduction to Computer Security - Windows Security

Summary

Windows systems contain complex security mechanisms foruser account and object management as well as accesscontrol.DACLs enable fine-grained access control of heterogeneousentities in Windows itself as well as applications.The complexity of Windows security mechanisms is also itsenemy: misconfiguration as well as implementation bugsmay lead to severe security incidents.