Access control list

Access Control List (ACL), eller adgangskontrolliste, er en tabel og/eller liste der indeholder adgangsrettigheder til fx objekter eller netværksadgange til services.

Implementationer

Mange forskellige systemformer implementerer ACLs eller har en historisk implementation.

Filsystem-ACLs

En filsystem-ACL er en tabel og/eller liste der indeholder adgangsrettigheder til en computers styresystems programmer/filer for hver enkelt bruger. Den styrer hvad en bruger har rettigheder til at gøre og ikke gøre for bestemte objekter, såsom filkategorier eller individuelle filer.[1] Hvert objekt har sikkerhedsattributter der angiver en adgangskontrolliste. I en typisk ACL angives et emne, og en operation, for eksempel, hvis en fil har en ACL der indeholder (Lisa, slet) vil dette give Lisa rettigheder til at slette filen.

Listen indeholder en post for hvert systembruger med adgangsrettigheder. Den mest almindelige brug omfatter rettigheder til at læse en fil, eller vise en liste over filer i en mappe, at skrive til en fil eller flere filer, og til at køre/afvikle filer (hvis den er en eksekverbar fil eller et program).[2]

Når en bruger prøver at udføre en operation på en fil i en ACL-baseret sikkerhedsmodel, kontrollerer styresystemet først ACL, for at afgøre om den ønskede handling er tilladt, altså om brugeren har rettigheder.

Filsystem-ACL findes i Microsoft Windows NT,[3] OpenVMS, Unix-lignende og MacOS styresystemer.

De fleste Unix og Unix-lignende styresystemer (fx Linux,[4] BSD eller Solaris) understøtter POSIX.1e ACLs, baseret på en tidligere POSIX udkast som blev trukket tilbage 1997. Mange af dem - fx AIX, FreeBSD,[5] Mac OS X begyndende med version 10.4 ("Tiger") eller Solaris med ZFS filesystemet,[6] understøtter NFSv4-ACLs, som er en del af NFSv4 standarden. Der er to eksperimentelle implementeringer af NFSv4-ACLs for Linux: NFSv4-ACLs understøttelse af Ext3-filesystemet[7] og Richacls,[8] som giver NFSv4 ACLs understøttelse for Ext4-filesystemet.

PRIMOS understøttede ACLs så tidligt som 1984.[9]

Datanet-ACLs

På nogle typer af proprietær computer-hardware (især routere, netværksswitche, multilayer switche), giver en ACL mulighed for at lave regler med fx: kilde-ethernet-adresser, destination-ethernet-adresser, ethernet-protokoller, kilde-ip-adresser, destination-ip-adresser, internetprotokoller, ip-porte, applikationsprotokol (i fx NG-firewalls og lag-7 switche) med formålet at styre datanetadgangen til en service.

En ACL primære formål er at afvise eller tillade adgang via såkaldte permit & deny statements, men kan også blive udnyttet til andre formål f.eks. udpensle hvilke ip-adresser som skal nattes. En ACL er kort sagt en match mekanisme.

Datanet access-lister kan blive brugt til en lang række ting, nogle er listet nedenfor:

  • Adgangskontrol
  • Network address translation (NAT)
  • Quality of Service (QoS)
  • Demand dial Routing
  • Policy Routing
  • Route filtering
  • Virtual private network (VPN)
  • Osv.

ACL på Cisco IOS

ACL'er er tilknyttet i indgående(inbound) eller udgående(outbound) retning. Listen bliver læst fra top til bund men stopper ved første match der passer til den trafik der bliver gennemset. Der er et forudbestemt "deny" i bunden af listen, hvilket vil sige, at hvis der ikke er nogle regler der matcher den pågældende trafik, vil trafikken blive afvist.

Ved at sætte en ACL i indgående retning på en router formindsker dette processor-belastningen, fordi en pakke der potentielt skal afvises bliver afvist inden routeren bruger ressourcer på at route pakken.

Standard og udvidet ACL

En standard ACL er forholdsvis begrænset i funktionalitet men er påkrævet i nogle tilfælde.

  • Matcher på kilde adresser
  • Benytter mindre ressourcer end udvidet ACL
  • Normalt ikke brugt til sikkerhed da det ikke er hensigtsmæssigt at matche på source adresser, det er dog nødvendigt vis man skal natte

En udvidet ACL også kaldet extended ACL har flere funktioner så som tidligere nævnte eksempel i starten af afsnittet for Datanet-ACLs.

  • Match baseret på Source/destination adresser, Protokoller, source/destination port nr.
  • Kræver flere ressourcer end standard ACL
  • Mest brugt til sikkerhed

Refleksive ACL tillader retur adgang for trafik som er efterspurgt internt.

For IPv6 har man næsten samme virke måde dog findes der kun extended ACL og der tilføjes 2 forudbestemte tillad regler i bunden ud over den forudbestemte afvis.

I bunden af en IPv6 ACL findes tillad "Neighbor Discovery - Neighbor Advertisement" & "Neighbor Discovery - Neighbor Solicitation" samt afvis alt ikke tilladt trafik (på samme måde som ved IPv4).

Sammenligning med RBAC

Alternativet til ACL-modellen er role-based access control (RBAC) modellen.

Kilder/referencer

  1. ^ "Access Control (Windows)". msdn.microsoft.com. Hentet 20. november 2017.
  2. ^ Ellen, Nanci. "What is access control list (ACL)? - Definition from WhatIs.com". Hentet 20. november 2017.
  3. ^ "Managing Authorization and Access Control". Microsoft Technet. 2005-11-03. Hentet 2013-04-08.
  4. ^ "Red Hat Enterprise Linux AS 3 Release Notes (x86 Edition)". Red Hat. 2003. Hentet 2013-04-08. EA (Extended Attributes) and ACL (Access Control Lists) functionality is now available for ext3 file systems. In addition, ACL functionality is available for NFS.
  5. ^ "NFSv4 ACLs". FreeBSD. 2011-09-12. Hentet 2013-04-08.
  6. ^ "Chapter 8 Using ACLs and Attributes to Protect ZFS Files". Oracle Corporation. 2009-10-01. Hentet 2013-04-08.
  7. ^ Grünbacher, Andreas (maj 2008). "Native NFSv4 ACLs on Linux". SUSE. Arkiveret fra originalen 2013-06-20. Hentet 2013-04-08.
  8. ^ Grünbacher, Andreas (juli-september 2010). "Richacls - Native NFSv4 ACLs on Linux". bestbits.at. Arkiveret fra originalen 20. marts 2013. Hentet 2013-04-08.{{cite web}}: CS1-vedligeholdelse: Dato-format (link)
  9. ^ "P.S.I. Pacer Software, Inc. Gnet-II revision 3.0". Communications. Computerworld. Vol. 18, no. 21. 1984-05-21. s. 54. ISSN 0010-4841. Hentet 2017-06-30. The new version of Gnet-II (revision 3.0) has added a line-security mechanism which is implemented under the Primos ACL subsystem.

Yderligere læsning