RSS-Feeds als Angriffsvektor

RSS-Feeds als Angriffsvektor

Marc Ruef
by Marc Ruef
time to read: 4 minutes

Das Akronym RSS steht für Really Simple Syndication. Hierbei handelt es sich um eine Familie um Formaten, die zur strukturierten Veröffentlichung von Informationen entwickelt wurde. Vorzugsweise werden durch Webseiten RSS-Feeds angeboten, auf denen die jeweiligen Neuigkeiten verteilt werden.

RSS-Feeds sind XML-basiert. Sie bestehen aus einem Header, der allgemeine Informationen zum Feed bereitstellt. Zum Beispiel der Titel des Feeds, ein Link zur Webseite, eine Beschreibung und Copyright-Informationen. Im weiteren folgen einzelne Items, die die eigentlichen Informationsteile bereitstellen. Diese beinhalten ebenso verschiedene Felder, wie zum Beispiel Titel, Link, Veröffentlichungsdatum und Beschreibung. Beispiel:

<item>
   <title>Eine interessante Meldung für unsere Leser</title>
   <link>http://www.scip.ch/?news.20120125</link>
   <guid isPermaLink="true">http://www.scip.ch/?news.20120125</guid>
   <pubDate>Thu, 15 Mar 2012 07:15:00 +0100</pubDate>
   <dc:creator>scip AG</dc:creator>
   <description>
      <![CDATA[Hier stehen weitere Details drin.]]>
   </description>
</item>

In der Regel stellen also Webseiten (Server) diese Feeds bereit. (Auf unserer Webseite bieten wir ebenfalls verschiedene RSS-Feeds an.) Diese werden durch RSS-Clients bei Bedarf oder in regelmässigen Abständen (z.B. alle 60 Minuten) abgefragt. Entdeckt der Client, dass ein neues Item publiziert wurde, wird es entsprechend als ungelesen dargestellt. Ein Benutzer kann mit einer solchen Abonnierung komfortabel und unkompliziert die neuesten Informationen (z.B. News, Änderungen) zusammentragen. Es gibt sowohl dedizierte RSS-Clients, die als eigenständige Anwendungen fungieren. Ebenso bieten viele Mail-Clients und Browser-Implementierungen von Haus aus oder durch zusätzliche Addons eine entsprechende RSS-Funktionalität zur Verfügung. Zusätzlich gibt es webbasierte RSS-Clients, die zum Beispiel als Plugin in ein bestehendes CMS eingebunden werden können.

Viele Entwickler von RSS-Clients – egal ob nun als eigenständige Applikationen, Addons oder Web-Plugin – vernachlässigen die Risiken einer solchen Lösung. Dabei wird gerne übersehen, dass es sich bei diesem Modell im Grundprinzip um das Gleiche handelt, welches auch beim klassischen Web (Webserver/Webbrowser) zum Tragen kommt:

Der Server liefert die angeforderten Daten an den Client aus (1), der seinerseits für die Interpretation (2) und Darstellung (3) dieser zuständig ist.

Dies kann einerseits zu typischen Eingabeungültigkeiten kommen. Vor allem dann, wenn die Interpretation des XML-Gerüsts durch einen proprietären Parser durchgeführt wird. Durch fehlende, fehlerhafte, verschachtelte, korrupte oder doppelte Tags können sich anwendungsbasierte Angriffsvektoren erschliessen. Dazu gehören beispielsweise Denial of Service-, Pufferüberlauf- oder Format String-Schwachstellen. Der Einsatz eines verlässlichen XML-Parsers, der mittlerweile bei allen modernen Hochsprachen zur Verfügung gestellt wird, vermag diese Gefahr zu bannen.

Weiterführend wird aber auch gerne übersehen, dass RSS-Feeds als Träger für korrupte Inhalte eingesetzt werden können. Durch das Einbetten von bösartigen Elementen können Angriffe auf Clients angestrebt werden. Hierzu bieten sich in einem ersten Schritt Multimedia-Inhalte (Bilder/Videos) an. Aber auch ausführbare Elemente auf der Basis von Javascript, Java und ActiveX können missbraucht werden. Ein sicherer RSS-Client sollte deshalb darauf bedacht sein, lediglich unkritische Inhalte nachzuladen und auszuführen.

Einen Fehler dieser Art haben wir vor einigen Jahren im RSS-Widget von IBM Lotus Notes ausgemacht. Hier war es mitunter möglich, Javascript durch RSS-Feeds verteilen zu lassen. Zusätzlich spielte hier aber noch ein anderer Effekt mit, der die Tragweite der Angriffsmöglichkeit erweiterte. Und zwar wurden sämtliche RSS-Inhalte nach dem Download lokal gespeichert und im lokalen Kontext des Internet Explorer ausgeführt. Dies führte dazu, dass für die aktiven Inhalte verringerte Sicherheitseinstellungen gelten sollten, wodurch sich erweiterte Zugriffe durchführen liessen.

About the Author

Marc Ruef

Marc Ruef has been working in information security since the late 1990s. He is well-known for his many publications and books. The last one called The Art of Penetration Testing is discussing security testing in detail. He is a lecturer at several faculties, like ETH, HWZ, HSLU and IKF. (ORCID 0000-0002-1328-6357)

Links

You need professional Vulnerability Management?

Our experts will get in contact with you!

×
Specific Criticism of CVSS4

Specific Criticism of CVSS4

Marc Ruef

scip Cybersecurity Forecast

scip Cybersecurity Forecast

Marc Ruef

Voice Authentication

Voice Authentication

Marc Ruef

Bug Bounty

Bug Bounty

Marc Ruef

You want more?

Further articles available here

You need support in such a project?

Our experts will get in contact with you!

You want more?

Further articles available here