Eine ACL (Access Control List) ist eine Sicherheitskontrolle, die den Zugriff auf Ressourcen wie DNS-Abfragen, Zonentransfers und dynamische Updates basierend auf definierten Kriterien wie der Quell-IP-Adresse zulässt oder verweigert, wobei die Regeln der Reihe nach, in der sie erscheinen, einzeln ausgewertet werden. In DNS-Umgebungen sind ACLs entscheidend, um unbefugte Zonentransfers einzuschränken, die die Netzwerktopologie offenlegen, den Missbrauch rekursiver Resolver bei Amplifikationsangriffen zu verhindern und zu kontrollieren, wer dynamische Updates übermitteln darf; allerdings müssen sie mit Authentifizierungsmethoden wie TSIG kombiniert werden, um Spoofing von Quelladressen zu verhindern. Schlecht verwaltete ACLs versagen im großen Maßstab, da sich Ausnahmen häufen, veraltete Einträge stillgelegte Adressen für die Wiederverwendung durch fremde Hosts freigeben und Fehler bei der Reihenfolge der Regeln oder das Fehlen impliziter Verweigerungsregeln zu Ausfällen führen oder Dienste übermäßig dem Internet aussetzen können.
So funktionieren ACLs
Eine ACL ist eine Liste von Einträgen, bei denen jeweils ein Übereinstimmungskriterium einer Aktion („zulassen“ oder „verweigern“) zugeordnet ist. Das System, das die Liste durchsetzt, vergleicht eine Anfrage mit den Einträgen und wendet das Ergebnis der ersten Übereinstimmung an.
- Anfrage geht ein: Ein Client oder ein Gerät versucht, eine Aktion auszuführen, beispielsweise eine DNS-Abfrage zu senden, einen Zonentransfer anzufordern oder ein Paket über einen Router weiterzuleiten.
- Extrahierte Kriterien: Das durchführende System liest die Attribute aus, die die Liste für den Abgleich verwendet, üblicherweise die Quell-IP-Adresse und bei Netzwerkgeräten zusätzlich die Zieladresse, das Protokoll oder den Port. DNS-Server können den Abgleich auch anhand eines kryptografischen Schlüssels vornehmen.
- Einträge werden der Reihe nach ausgewertet: Das System prüft die Einträge von oben nach unten. Die meisten Implementierungen halten beim ersten Eintrag an, der übereinstimmt, und wenden dessen Aktion an.
- Angewandte Aktion: Ein „Permit“-Eintrag lässt die Anfrage zu. Ein „Deny“-Eintrag lehnt sie ab oder verwirft sie. Viele Systeme beenden die Liste mit einem impliziten „Deny“, sodass eine Anfrage, die keinem Eintrag entspricht, abgelehnt wird.
Da die Reihenfolge eine Rolle spielt, kann eine weit gefasste Zulassungsregel, die über einer eng gefassten Ablehnungsregel steht, diese unwirksam machen. In DNS-Servern regeln üblicherweise separate Listen verschiedene Funktionen wie Abfragen, Rekursion, Übertragungen und Aktualisierungen, sodass jede Funktion ihre eigene Zielgruppe haben kann. Adressbasierte Abgleiche können gefälscht werden, daher lassen sich sensible Vorgänge wie dynamische Aktualisierungen besser schützen, indem zusätzlich eine Authentifizierung wie TSIG verlangt wird.
Häufige Probleme mit ACLs
Eine über einer spezifischen Verweigerungsregel platzierte allgemeine Zulassungsregel führt dazu, dass die Verweigerungsregel niemals zutrifft, sodass Datenverkehr, der eigentlich blockiert werden sollte, durchgelassen wird. Techniker stellen dies in der Regel fest, wenn der Trefferzähler der Verweigerungsregel bei Null bleibt.
Viele Implementierungen beenden eine Liste mit einer stillschweigenden Ablehnung („deny“), sodass das Hinzufügen eines ersten Eintrags zu einer zuvor leeren Liste plötzlich alles andere blockieren kann. Dies führt oft unmittelbar nach einer kleinen Änderung zu einem Ausfall.
Einträge, die stillgelegte Hosts benennen, bleiben auch nach der Neuzuweisung der Adresse bestehen. Der neue Host erbt dann Zugriffsrechte, wie beispielsweise die Berechtigung zum Zonentransfer, die ihm niemand gewähren wollte.
Eine ACL, die sich ausschließlich auf die Quell-IP stützt, kann durch gefälschte Pakete umgangen werden, insbesondere über UDP. Durch die Kombination mit einer schlüsselbasierten Authentifizierung oder einer Filterung am Netzwerkrand lässt sich dieses Risiko verringern.
Das Zulassen von Abfragen von beliebigen Adressen auf einem rekursiven Server macht diesen für Amplifikationsangriffe anfällig. Das Zulassen von Übertragungen an beliebige Adressen legt den gesamten Inhalt der Zone offen.