Rails ohne Fails: Abwehr von Code-Injection-Angriffen
Wir bei Akamai sind bestrebt, unsere Web Application Firewall (WAF) kontinuierlich zu verbessern, um unseren Kunden ein Höchstmaß an Sicherheit zu bieten. Im Rahmen dieses Engagements freuen wir uns, die Veröffentlichung einer neuen dedizierten Erkennungsfunktion für Code-Injection-Angriffe bekanntzugeben, die im Speziellen auf Rails-Anwendungen (Ruby on Rails) abzielen.
Warum ist es wichtig, „Ruby on Rails“-Anwendungen zu schützen?
Ruby on Rails ist aufgrund seiner Nutzerfreundlichkeit, Flexibilität und zuverlässigen Ökosysteme zu einem beliebten Framework für die Entwicklung von Webanwendungen geworden. Die Fähigkeit von Rails, die Entwicklungszeit zu verkürzen und gleichzeitig eine saubere Codebasis mit vielen Support-Möglichkeiten zu erhalten, hat das Framework für Entwickler in Unternehmen jeder Größe sehr attraktiv gemacht. Viele bekannte Marken wie GitHub, Shopify, Airbnb und Basecamp haben ihre Plattformen mit Ruby on Rails erstellt, was seine Bedeutung in der Technologiebranche unterstreicht.
Rails ist jedoch aus denselben Gründen, aus denen es Entwickler anzieht, zu einem attraktiveren Ziel für Cyberangreifer geworden. Die stärker automatisierten Prozesse und der ständig zunehmende Bedarf an interoperablen Anwendungen schaffen neue Versteckmöglichkeiten für Angreifer. Das Sichern von Rails-Anwendungen ist für den Schutz sensibler Daten und Geschäftsabläufe dieser kritischen Plattformen unerlässlich.
Wachsende Bedrohungen gegen Ruby on Rails
Im Laufe der Jahre war Rails mit mehreren bemerkenswerten Sicherheitslücken und Angriffsvektoren konfrontiert. Das Open Worldwide Application Security Project (OWASP) hat ein Cheat-Sheet zur Sicherung von Rails veröffentlicht. Es verdeutlicht, wie wichtig es für Entwickler und Sicherheitsteams ist, wachsam zu sein und zu bleiben.
Während die meisten kritischen Sicherheitsanfälligkeiten in Rails mit der unsicheren Deserialisierung der Datenformate JSON und YAML zusammenhängen, könnten Entwickler die Anwendung und die Nutzerdaten versehentlich zusätzlichen Angriffsarten, wie z. B. Code-Injection, aussetzen. Dies gilt insbesondere für die Funktion „eval“ in der Sprache Ruby. Diese Funktion erstellt Ruby-Code dynamisch aus einer Zeichenfolgeneingabe. Wenn die vom Angreifer gesteuerte Eingabe innerhalb dieser Funktion endet, kann der Angreifer jeden beliebigen Ruby-Code ausführen.
Hier ein Beispiel für einen solchen Fall:
def calculate
calc = params[:calc]
result = eval(calc)
render plain: result
End
In diesem äußerst naiven Beispiel nimmt die Aktion calculate einen Parameter calc aus der Nutzereingabe, der eine mathematische Operation wie „1+2“ enthält und benutzt die Methode eval in Ruby, die wiederum das Ergebnis der mathematischen Operation zurückgibt. Dadurch entsteht eine Sicherheitslücke durch Code-Injection, da ein Angreifer beliebigen Ruby-Code zum Ausführen bereitstellen kann.
Wie der Angreifer diese Schwachstelle ausnutzen kann
Ein Angreifer kann diese Sicherheitsanfälligkeit ausnutzen, indem er eine manipulierte Anfrage mit schädlichem Ruby-Code sendet, z. B.:
POST /calculate?ip=IO.popen('cat%20%2Fetc%2Fpasswd').read%20%23
Oder in dekodierter Form:
IO.popen('cat /etc/passwd').read #
Dieser Befehl würde dazu führen, dass der Inhalt der Systemdatei /etc/passwd (die vertrauliche Informationen über Systemnutzer enthält) ausgelesen wird. Das #-Symbol am Ende ist ein Ruby-Kommentar, der alles danach ignoriert und Syntaxfehler im restlichen Code verhindert.
Abwehr mit Adaptive Security Engine von Akamai
Angesichts der zunehmenden Verbreitung komplexer Cyberbedrohungen ist es unerlässlich, über leistungsstarke Sicherheitsmaßnahmen zu verfügen. Unsere neueste Adaptive Security Engine-Regel – 3000404 Ruby on Rails Sensitive Operation Injection Attack Detected – bietet ein höheres Maß an Genauigkeit und Abdeckung bei der Erkennung und Abwehr von Code-Injection-Angriffen auf Rails-Anwendungen (Abbildung 1).
Wichtigste Vorteile
Verbesserte Genauigkeit: Fortschrittliche Erkennungstechniken identifizieren und blockieren Code-Injection-Versuche, minimieren Fehlalarme und stellen sicher, dass legitimer Traffic nicht beeinträchtigt wird
Umfassende Abdeckung: Umfangreiche Abdeckung für eine Vielzahl von Code-Injection-Vektoren bietet leistungsstarken Schutz für Ihre Rails-Anwendungen
„Ruby on Rails“-Code-Injection-Angriffe auf unsere Kunden
Unsere neue spezielle Rails-Regel erkennt täglich Zehntausende von Code-Injection-Versuchen in Rails weltweit. In den letzten Wochen hat diese Regel für die Adaptive Security Engine mit fast 250.000 Erkennungen an einem einzigen Tag ihren Höchststand erreicht und durchschnittlich etwa 70.000 Angriffe pro Tag abgewehrt (Abbildung 2).
Bisher haben wir mehr als 3.000 einzigartige Angriffs-IPs und über 21.000 Hosts beobachtet, die von diesen Angriffsversuchen betroffen waren. Diese Versuche kommen aus der ganzen Welt, die meisten haben ihren Ursprung aber in Deutschland (Abbildung 3).
Ausblick
Sicherheit ist ein wichtiger Aspekt Ihres Unternehmens. Daher sind wir bestrebt, Lösungen anzubieten, die Ihre Erwartungen nicht nur erfüllen, sondern sogar übertreffen. Unsere WAF wurde entwickelt, um umfassenden Schutz zu bieten – und die zusätzliche Regel zur Erkennung von Code-Injection-Angriffen in Rails stärkt unsere Abwehrmechanismen zum Schutz Ihrer Anwendungen und Daten.
Beim von Innovationen getriebenen Ausbau unserer WAF-Funktionen konzentrieren wir uns weiterhin darauf, unseren Kunden die effektivsten und zuverlässigsten Sicherheitslösungen zu bieten. Bleiben Sie auf dem Laufenden für weitere Updates. In der Zwischenzeit arbeiten wir unermüdlich weiter daran, unser Produktangebot zu verbessern und unsere Vorreiterposition in Bezug auf die Sicherheit von Webanwendungen zu halten.
Wenn Sie mehr über die Adaptive Security Engine und die Akamai-Sicherheitslösungen für Webanwendungen und APIs erfahren möchten, kontaktieren Sie Ihren Akamai-Ansprechpartner.