Automated Threat Detection mit CEP via Rx

Dies ist der erste Teil der Artikelserie Automated Threat Detection mit CEP, die aufzeigt, wie mittels komplexer Ereignisverarbeitung Angriffe auf eine Website entdeckt werden können. Die Serie besteht aus den folgenden Artikel:

OWASP

Um hier kein Buzzword-Bingo zu spielen, gehe ich zuerst auf die einzelnen Begriffe ein.

Das Open Web Application Security Project (OWASP) ist eine Non-Profit-Organisation mit dem Ziel, die Sicherheit von Anwendungen und Diensten im World Wide Web zu verbessern.
Quelle: Wikipedia.

Sie ist die Herausgeberin der OWASP Top Ten, einer Auflistung der zehn häufigsten Sicherheitslücken in Webanwendungen und Diensten. Dieses Nachschlagewerk dient Architekten und Entwicklern dazu, ihre Anwendungen gegen Angriffe zu schützen. Zur Top Ten gehören Angriffsvektoren wie Injection (nicht nur SQL), Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF) und viele Andere.

Zusätzlich zur OWASP Top Ten hat sie kürzlich das Automated Threat Handbook (PDF) herausgegeben. Dabei geht es darum, häufige automatisierte Angriffe als solche zu erkennen, was nicht immer einfach ist.

CEP

Complex Event Processing (CEP; Verarbeitung komplexer Ereignisse) ist die Echtzeitverarbeitung von grossen Ereignisströmen und dient dem Finden von Zusammenhängen und Mustern zwischen den Ereignissen.
Dazu werden Ereignisse von verschiedenen Event Handlern verarbeitet, die jeweils für unterschiedliche Muster zuständig sind.
Diese Ereignisse werden teilweise zwischengespeichert oder aggregiert um in neuer Form weiterzuleiten.
In einem Kundenprojekt hatten wir beispielsweise die Aufgabe, Messwerte aus dem Stromnetz zu aggregieren und anhand der Messwerte Probleme in der Stromverteilung vorauszusagen. Wir wollen CEP nutzen, um automatisierte Angriffe anhand ihrer Muster zu erkennen.
Für CEP gibt es eine Vielzahl an Produkten, sowohl kommerziell als auch Open Source. Hier eine kleine Auswahl an Open Source CEP-Engines:

  1. Apache Spark
  2. Apache Storm
  3. Esper / NEsper

Da wir uns in dieser Artikelserie nicht in einem verteilten Umfeld befinden, benötigen wir keine zusätzliche Software. Wir nutzen daher die .NET Reactive Extensions.

Rx

Die .NET Reactive Extensions sind eine Open Source Bibliothek von Microsoft, die das .NET Framework erweitert. Sie erlaubt das asynchrone Verarbeiten von Datenströmen.

In den kommenden Artikeln werden wir einzelne Missbrauchsmöglichkeiten von Webanwendungen anschauen und mit den nun kennengelernten Methoden aufdecken.