Blog

Programmierer erobern Sicherheit: Share & Learn-Serie — E-Mail-Header-Injektion

March 21, 2019
Jaap Karan Singh

Heutzutage ist es üblich, dass Websites und Anwendungen es Benutzern ermöglichen, Feedback, Terminerinnerungen und verschiedene andere Informationen über eine Anwendung per E-Mail zu senden. Normalerweise ist dieser Prozess ziemlich harmlos, und die meisten Menschen denken nicht einmal darüber nach, ob ein potenzielles Sicherheitsrisiko besteht.

Wie jedes andere Designelement, das Benutzereingaben ermöglicht, können diese scheinbar belanglosen Funktionen jedoch von böswilligen Benutzern für schändliche Zwecke manipuliert werden, wenn sie nicht richtig konfiguriert sind. Der Benutzer muss lediglich die Möglichkeit haben, Code in das Eingabefeld einzugeben, der dann fälschlicherweise vom Server verarbeitet wird. Plötzlich kann eine E-Mail-Anwendung zu einer Waffe werden.

In dieser Folge werden wir lernen:

  • Wie Angreifer eine E-Mail-Header-Injektion auslösen können
  • Warum E-Mail-Header-Injektionen gefährlich sind
  • Techniken, mit denen diese Sicherheitsanfälligkeit behoben werden kann.

Wie lösen Angreifer eine E-Mail-Header-Injektion aus?

Obwohl es nicht oft als programmierbar angesehen wird, können die meisten E-Mail-Kontaktanwendungen oder Funktionen, die in Websites oder Anwendungen integriert sind, Eingaben akzeptieren, die die Art der Anfrage ändern. Normalerweise erfolgt dies nur automatisch durch den Server, nachdem ein Benutzer seine Daten, wie z. B. seine E-Mail-Adresse, in das Vertragsfeld eingegeben hat. Das Programm konfiguriert dann die Nachricht, fügt die entsprechenden Empfänger hinzu und versendet die Nachricht über seinen Standard-E-Mail-Server.

Eine typische POST-Anfrage per E-Mail könnte so aussehen:

POSTE /contact.php HTTP/1.1
Gastgeber: www.example.com

Und generieren Sie Code, der so aussieht, nachdem ein Benutzer seine Informationen eingegeben hat:

name=RealName&replyto= RealName@ValidServer.com &message=Deine Terminerinnerung

Das Problem tritt auf, wenn Hacker beginnen, Code in den Prozess einzufügen, anstatt nur ihre Kontaktinformationen. Dies ist einem Angriff vom Typ SQL-Injection nicht unähnlich, wird jedoch gegen die E-Mail-Anwendung durchgeführt. Ein Beispiel für eine manipulierte Abfrage, die stattdessen Spam von Ihrer Anwendung an einen Zielbenutzer sendet, könnte wie folgt aussehen:

name=FakeName\nbcc: SpammedVictim@TargetAddress.com &replyTo= FakeName@ValidServer.com &message=Spam-Nachricht

Warum ist die E-Mail-Header-Injektion gefährlich?

Abhängig von den Fähigkeiten des böswilligen Benutzers und seinen Absichten können E-Mail-Header-Injection-Angriffe von einfach nervig bis hochgefährlich sein, was den Schweregrad angeht. Am unteren Ende der Schweregradskala können sie möglicherweise ihre Kontaktinformationen in das BCC-Feld einer ausgehenden Nachricht eingeben, die an ein geheimes oder unbekanntes Postfach in Ihrem Unternehmen gesendet wird, und sie so einem Hacker zugänglich machen.

Noch besorgniserregender ist, dass es ihnen möglicherweise ermöglicht, Ihren E-Mail-Server vollständig zu kontrollieren, um Spam-, Phishing- oder andere Angriffs-E-Mails von Ihrem Unternehmen zu versenden. Sie müssten nicht versuchen, die Tatsache vorzutäuschen, dass die E-Mail von Ihren internen Servern stammt, da sie tatsächlich von dort stammen würde. Und wenn Sie diese Aktivität nicht überwachen, können sie den Prozess sogar automatisieren und Hunderte oder Tausende von E-Mails über die Server Ihres Unternehmens versenden, und zwar so, dass es so aussieht, als würden Sie diese Aktivität tatsächlich initiieren.

Beseitigung des E-Mail-Header-Injection-Problems

Wie bei SQL-Injektion Und bei anderen Angriffen dieser Art besteht der Schlüssel zur Vermeidung der Möglichkeit, dass ein böswilliger Benutzer eine E-Mail-Header-Schwachstelle ausnutzt, darin, Benutzereingaben niemals zu vertrauen. Wenn ein Benutzer in der Lage ist, Informationen einzugeben, auch wenn dies wie ein trivialer Vorgang wie die Eingabe seiner E-Mail-Adresse erscheint, müssen Sie vom Schlimmsten ausgehen. Oder gehen Sie zumindest davon aus, dass das Schlimmste möglich ist.

Die Eingabevalidierung sollte für alle Parameter durchgeführt werden. Dies gilt auch für das Hinzufügen einer E-Mail-Kontaktfunktion zu einer App oder Website. Whitelisting kann verwendet werden, um gezielt Prozesse und Felder zu aktivieren, die Sie für gültig halten, während alles andere verweigert wird. Tatsächlich verfügen die meisten Frameworks über Bibliotheken, mit denen Sie Funktionen auf die benötigten Funktionen beschränken können. Dadurch wird verhindert, dass Code oder Befehle, die von böswilligen Benutzern eingegeben werden, von Ihren Servern erkannt und verarbeitet werden.

Weitere Informationen zu E-Mail-Header-Injections

Zum weiteren Lesen können Sie sich ansehen, was OWASP dazu sagt E-Mail-Header-Injektionen. Sie können Ihr neu gewonnenes Defensivwissen auch auf die Probe stellen mit dem kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.

Denken Sie, Sie sind jetzt bereit, eine E-Mail-Injection zu finden und zu korrigieren? Gehen Sie zur Plattform und testen Sie Ihre Fähigkeiten: [Fangen Sie hier an]

Slogan

Govern AI-driven development before it ships

Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.

book a demo
Slogan

Explore more blogs

Lorem ipsum diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis.

browse all
Case Study
Filter Label
This is some text inside of a div block.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Learn More
Case Study
Filter Label
This is some text inside of a div block.

One Culture of Security: How Sage built their security champions program with agile secure code learning

Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.

Learn More
Blog
Filter Label
This is some text inside of a div block.

The Future of AI Software Governance Is Built on Strong Partnerships

Discover why Secure Code Warrior is becoming a channel-first company and how trusted partners help organizations adopt AI Software Governance securely and at scale.

Learn More
Blog
Filter Label
This is some text inside of a div block.

Citizen AI by Secure Code Warrior: Build an AI-Ready Workforce

Secure Code Warrior's AI literacy program for non-developer employees.

Learn More
Blog
Filter Label
This is some text inside of a div block.

Why most CISOs are navigating AI adoption blindfolded (and how they can remove it)

Today, Secure Code Warrior issued an all-new white paper covering a prescriptive, directional AI adoption model that security leaders can use to identify their adoption stage and make real progress in bringing the AI security risks within their organization under control.

Learn More

Secure AI-driven development before it ships

See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.

Book a demo