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
| Praxis | Beschreibung |
|---|---|
| Steuerzeichen filtern | Potenziell gefährliche Steuerzeichen entfernen oder escapen |
| Escape-Sequenzen whitelisten | Nur bekanntermaßen sichere Escape-Sequenzen zulassen |
| Sandbox-Rendering | Nachrichteninhalt in eingeschränkter Umgebung rendern |
| Benutzer warnen | Benutzer vor potenziell gefährlichem Inhalt warnen |
Für E-Mail-Clients
| Praxis | Beschreibung |
|---|---|
| Bcc-Behandlung | Datenschutz des Bcc-Felds ordnungsgemäß implementieren |
| Antwortbehandlung | Versehentliche Offenlegung von Bcc-Empfängern verhindern |
| Anhang-Scanning | Anhänge auf bösartigen Inhalt scannen |
| Inhaltsvalidierung | MIME-Content-Typen und -Kodierungen validieren |
Für E-Mail-Server
| Praxis | Beschreibung |
|---|---|
| Inhaltsfilterung | Bekannte bösartige Muster filtern |
| Größenbeschränkungen | Nachrichten- und Anhanggrößen begrenzen |
| Rate Limiting | Spam und DoS-Angriffe verhindern |
| Authentifizierung | SPF, DKIM, DMARC implementieren |
Zusammenfassung
Sicherheitsüberlegungen bei der Implementierung von RFC 5322 konzentrieren sich auf drei Hauptbereiche:
- Anzeigesicherheit: Verhinderung von Terminal-Escape-Sequenz-Angriffen
- Datenschutz: Ordnungsgemäße Behandlung des Bcc-Felds
- 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