Zum Hauptinhalt springen

11. Sicherheitsüberlegungen (Security Considerations)

Sicherheitsfragen sind nicht der Hauptfokus dieses Memos. Es gibt jedoch mehrere sicherheitsbezogene Probleme, die im Kontext von MIME erwähnenswert sind.

Potenzielle Sicherheitsrisiken​

1. Content-Type-Spoofing​

Böswillige Benutzer können Daten senden, die vorgeben, von einem Typ zu sein, aber tatsächlich von einem anderen sind. Beispielsweise könnte eine ausführbare Datei als text/plain gekennzeichnet sein.

Minderung:

  • Content-Type-Validierung implementieren
  • Dateisignatur-Erkennung verwenden
  • Ausführbaren Inhalt isolieren

2. Encoding-Angriffe​

Bestimmte Kodierungen können verwendet werden, um schädlichen Inhalt zu verbergen oder Sicherheitsscanning zu umgehen.

Minderung:

  • Alle Inhalte vor dem Sicherheitsscan dekodieren
  • Defense-in-Depth implementieren
  • Vor übermäßig verschachtelten Kodierungen vorsichtig sein

3. Ressourcenerschöpfung​

Sehr große oder böswillig erstellte MIME-Nachrichten können übermäßige Ressourcen verbrauchen.

Minderung:

  • Größenbeschränkungen implementieren
  • Verarbeitungs-Timeouts setzen
  • Verschachtelungstiefe begrenzen

4. Datenschutzbedenken​

Content-ID und andere Identifikatoren können für Tracking verwendet werden.

Minderung:

  • Externes Laden von Ressourcen einschränken
  • Datenschutzmodus bereitstellen
  • Benutzerkontrolle und Transparenz

Empfohlene Sicherheitspraktiken​

  1. Eingabe Validieren: Content-Type und Content-Transfer-Encoding immer validieren
  2. Verarbeitung Begrenzen: Ressourcenlimits für MIME-Parsing setzen
  3. Ausführung Isolieren: Unbekannte Content-Typen in einer Sandbox verarbeiten
  4. Benutzerwarnungen: Benutzer vor potenziell gefährlichen Content-Typen warnen
  5. Regelmäßige Updates: MIME-Parser und Mail-Clients aktuell halten

Schlüsselpunkte:

  • MIME selbst bietet keine Sicherheitsfunktionen
  • Sicherheitsmaßnahmen müssen auf Anwendungsebene implementiert werden
  • Immer davon ausgehen, dass Eingaben böswillig sein können
  • Defense-in-Depth-Strategie verwenden