Zum Hauptinhalt springen

5. Security Considerations (Sicherheitsüberlegungen)

Vorsicht ist geboten beim Anzeigen von Nachrichten auf einem Terminal oder Terminal-Emulator. Leistungsstarke Terminals können auf Escape-Sequenzen und andere Kombinationen von US-ASCII-Steuerzeichen mit verschiedenen Konsequenzen reagieren. Sie können die Tastatur neu zuordnen oder andere Änderungen am Terminal ermöglichen, die zu Denial-of-Service oder sogar beschädigten Daten führen können.

Nachrichtenanzeige-Programme möchten möglicherweise potenziell gefährliche Terminal-Escape-Sequenzen aus einer Nachricht entfernen, bevor sie angezeigt wird. Andere Escape-Sequenzen erscheinen jedoch zu nützlichen Zwecken in Nachrichten und sollten daher nicht unterschiedslos entfernt werden.

Hauptsicherheitsbedenken

1. Terminal-Escape-Sequenz-Angriffe

Bedrohung: Bösartige Escape-Sequenzen können das Terminalverhalten steuern

Risiken:

  • Tastatur-Neuzuordnung
  • Änderung der Terminaleinstellungen
  • Automatische Befehlsausführung
  • Auswirkungen auf angeschlossene Geräte (Drucker)

Abhilfe:

  • Gefährliche Escape-Sequenzen vor der Anzeige filtern
  • Legitime Escape-Sequenzen beibehalten (ISO 2022, MIME-Kodierung)
  • Sandboxed oder eingeschränkte Anzeigeumgebungen verwenden

2. Übertragung von Nicht-Text-Objekten

Die Übertragung von Nicht-Text-Objekten in Nachrichten wirft zusätzliche Sicherheitsprobleme auf. Diese Probleme werden in RFC 2045, RFC 2046, RFC 2047, RFC 2049, RFC 4288 und RFC 4289 diskutiert.

MIME-bezogene Risiken:

  • Ausführbare Anhänge
  • Script-Injection
  • Pufferüberläufe
  • Bösartige Content-Typen

3. Bcc-Feld-Informationsoffenlegung

Viele Implementierungen verwenden das in Abschnitt 3.6.3 beschriebene "Bcc:"-Feld (Blindkopie), um das Senden von Nachrichten an Empfänger zu erleichtern, ohne die Adressen eines oder mehrerer Adressaten den anderen Empfängern zu offenbaren. Eine falsche Handhabung dieser Verwendung von "Bcc:" hat das Potenzial, vertrauliche Informationen offenzulegen.

Szenario 1: Entfernen der Bcc-Zeile

Wenn die erste in Abschnitt 3.6.3 beschriebene Methode verwendet wird, bei der die "Bcc:"-Zeile aus der Nachricht entfernt wird, haben Blindkopie-Empfänger keinen expliziten Hinweis darauf, dass ihnen eine Blindkopie gesendet wurde, außer insoweit ihre Adresse nicht im Header-Bereich der Nachricht erscheint.

Szenario 2: Beibehaltung des Bcc-Felds

Wenn die zweite Methode aus Abschnitt 3.6.3 verwendet wird, erscheint die Adresse des Blindkopie-Empfängers im "Bcc:"-Feld einer separaten Kopie der Nachricht. Implementierungen müssen bei der Behandlung von Antworten auf die Nachricht vorsichtig sein.

Sicherheits-Best-Practices

Für Nachrichtenanzeige-Programme

PraxisBeschreibung
Steuerzeichen filternPotenziell gefährliche Steuerzeichen entfernen oder escapen
Escape-Sequenzen whitelistenNur bekanntermaßen sichere Escape-Sequenzen zulassen
Sandbox-RenderingNachrichteninhalt in eingeschränkter Umgebung rendern
Benutzer warnenBenutzer vor potenziell gefährlichem Inhalt warnen

Für E-Mail-Clients

PraxisBeschreibung
Bcc-BehandlungDatenschutz des Bcc-Felds ordnungsgemäß implementieren
AntwortbehandlungVersehentliche Offenlegung von Bcc-Empfängern verhindern
Anhang-ScanningAnhänge auf bösartigen Inhalt scannen
InhaltsvalidierungMIME-Content-Typen und -Kodierungen validieren

Für E-Mail-Server

PraxisBeschreibung
InhaltsfilterungBekannte bösartige Muster filtern
GrößenbeschränkungenNachrichten- und Anhanggrößen begrenzen
Rate LimitingSpam und DoS-Angriffe verhindern
AuthentifizierungSPF, DKIM, DMARC implementieren

Zusammenfassung

Sicherheitsüberlegungen bei der Implementierung von RFC 5322 konzentrieren sich auf drei Hauptbereiche:

  1. Anzeigesicherheit: Verhinderung von Terminal-Escape-Sequenz-Angriffen
  2. Datenschutz: Ordnungsgemäße Behandlung des Bcc-Felds
  3. Inhaltssicherheit: Sichere Behandlung von MIME und Anhängen

Alle Implementierungen sollten eine Defense-in-Depth-Strategie verfolgen und Sicherheitskontrollen auf mehreren Ebenen implementieren.


Weiter: 6. IANA Considerations

Zurück: 4. Obsolete Syntax