Contens
|
NTFS Security Model
© Thomas Schedl 2019
1 Security Descriptor
2 ACE-Entry
2.1 Access Mode
2.2 Standard Permissions
2.3 Special Permissions
2.4 Generic Permissions
2.5 Inheritance
1 Security Descriptor
The Security Descriptor contains all meta information
about access rights of a Windows Object
(file, registry, process, printer, ... )
and could be seen as data structure with the following entries:
Owner: |
Owner of the Object |
Primary Group: |
for POSIX and UNIX compatibility |
Global Flags: |
Version and Inheritance for all principals |
DACL: |
Discretionary Access Control List |
SACL: |
System Access Control List |
Details for Global Flags:
SDDL |
Meaning |
P |
The SE_DACL_PROTECTED flag is set. |
AR |
The SE_DACL_AUTO_INHERIT_REQ flag is set. |
AI |
The SE_DACL_AUTO_INHERITED flag is set. |
SR |
The SE_SELF_RELATIVE flag is set (not shown with ntfsacl.exe). |
The Security Descriptor can be in absolut or
self-relative Format:
The self-relative Format is the compact
Version of the SD and contains
all information in one block.
The canonical order ensures that an explicit access-denied
ACE is enforced regardless of any explicit
access-allowed ACE .
During an access check, the operating system steps through the
ACEs in the order in which they appear in the
object’s DACL , so that the deny ACE
is processed before the allow ACE .
2 ACE-Entry
2.1 Access Mode
grfAccessMode |
SDDL |
Access Mode |
Description |
Beschreibung |
0x0000 0001 |
A |
GRANT_ACCESS |
Allow |
Zulassen |
0x0000 0002 |
|
SET_ACCESS |
|
|
0x0000 0003 |
D |
DENY_ACCESS |
Deny |
Verweigern |
0x0000 0004 |
|
REVOKE_ACCESS |
|
|
2.2 Standard Permissions
grfAccessPermissions |
SDDL |
Access Mask |
Description |
Beschreibung |
0x001f 03ff |
FA |
FILE_ALL_ACCESS |
Full Control |
Vollzugriff |
0x0013 01bf |
0x1301bf |
combination of special perm. |
Modify |
Ändern |
0x0012 00a9 |
0x1200a9 |
FILE_GENERIC_READ | FILE_EXECUTE |
Read & Execute |
Lesen, Ausführen |
0x0012 0089 |
FR |
FILE_GENERIC_READ |
Read |
Lesen |
0x0010 0116 |
0x100116 |
combination of special perm. |
Write |
Schreiben |
2.3 Special Permissions
grfAccessPermissions |
SDDL |
Access Mask |
Description |
Beschreibung |
0x0000 0001 |
0x100001 |
FILE_READ_DATA |
List Folder / Read Data |
Ordner auflisten / Daten lesen |
0x0000 0002 |
0x100002 |
FILE_WRITE_DATA |
Create Files / Write Data |
Dateien erstellen / Daten schreiben |
0x0000 0004 |
0x100004 |
FILE_APPEND_DATA |
Create Folders / Append Data |
Ordner erstellen / Daten anhängen |
0x0000 0008 |
0x100008 |
FILE_READ_EA |
Read Extended Attributes |
Erweiterte Attribute lesen |
0x0000 0010 |
0x100010 |
FILE_WRITE_EA |
Write Extended Attributes |
Erweiterte Attribute schreiben |
0x0000 0020 |
0x100020 |
FILE_EXECUTE |
Traverse Folder / Execute File |
Ordner durchsuchen / Dateien ausführen |
0x0000 0040 |
0x100040 |
FILE_DELETE_CHILD |
Delete Subfolders and Files |
Unterordner und Daten löschen |
0x0000 0080 |
0x100080 |
FILE_READ_ATTRIBUTES |
Read Attributes |
Attribute lesen |
0x0000 0100 |
0x100100 |
FILE_WRITE_ATTRIBUTES |
Write Attributes |
Attribute schreiben |
0x0001 0000 |
SD |
DELETE |
Delete |
Löschen |
0x0002 0000 |
RC |
READ_CONTROL |
Read Permissions |
Berechtigungen lesen |
0x0004 0000 |
WD |
WRITE_DAC |
Change Permissions |
Berechtigungen ändern |
0x0008 0000 |
WO |
WRITE_OWNER |
Take Ownership |
Besitzrecht übernehmen |
0x0010 0000 |
always added |
SYNCHRONIZE |
invisible |
unsichtbar |
2.4 Generic Permissions
0x1000 0000 |
GA |
GENERIC_ALL |
0x2000 0000 |
GX |
GENERIC_EXECUTE |
0x4000 0000 |
GW |
GENERIC_WRITE |
0x8000 0000 |
GR |
GENERIC_READ |
0xa000 0000 |
|
GENERIC_EXECUTE | GENERIC_READ |
0xe000 0000 |
|
GENERIC_EXECUTE | GENERIC_WRITE | GENERIC_READ |
Found when evaluating an ACE in a Security Descriptor
(SD ).
e.g. At the root of a disk. Not found in the GUI.
2.5 Inheritance
grfInheritance |
SDDL |
Inheritance FLAG |
Description |
Beschreibung |
0x0000 0000 |
|
|
This folder only |
Nur diesen Ordner |
0x0000 0001 |
OI |
OBJECT_INHERIT_ACE |
This folder and files |
Diesen Ordner, Dateien |
0x0000 0002 |
CI |
CONTAINER_INHERIT_ACE |
This folder and subfolders |
Diesen Ordner, Unterordner |
0x0000 0003 |
OICI |
OBJECT_INHERIT_ACE | CONTAINER_INHERIT_ACE |
This folder, subfolders and files |
Diesen Ordner, Unterordner und Dateien |
0x0000 0004 |
NP |
NO_PROPAGATE_INHERIT_ACE |
Apply these permissions ... |
Berechtigungen nur in diesem Container ... |
0x0000 0009 |
OIIO |
OBJECT_INHERIT_ACE | INHERIT_ONLY_ACE |
Files only |
Nur Dateien |
0x0000 000a |
CIIO |
CONTAINER_INHERIT_ACE | INHERIT_ONLY_ACE |
Subfolders only |
Nur Unterordner |
0x0000 000b |
OICIIO |
OBJECT_ ... | CONTAINER_ ... | INHERIT_ ... |
Subfolders and files only |
Nur Unterordner und Dateien |
0x0000 0010 |
ID |
INHERITED_ACE |
inherited |
geerbt von |
NTFS since Windows XP allows a special inheritance with
an one level scope for all child objects
|