Warum sollte man einen Django-Pentest durchführen?
Django ist ein beliebtes Web-Framework, das in Python geschrieben wurde. Mit dem Boom von LLM/KI hat die Sprache und damit auch das Framework an Popularität gewonnen. Als Angreifer kann man stark davon ausgehen, dass in einem System auf Django-Basis durchaus interessante Daten zu finden sein werden. Django ist an sich schon gut abgehärtet - wenn man sich an alles Best Practice hält. Und hier trifft Realität auf Theorie - oft wird das Framework von unerfahrenen Entwicklern eingesetzt. Das Ergebnis sind Sicherheitslücken und Fehleinstellungen diverser Art. Insofern lohnt sich immer der Test gegen ein Python-System.
Mehr Informationen gibt es im Artikel Vorteile von Penetrationstests
Wie viel kostet ein Django Pentest?
Mit Django kann man einfache aber auch hoch komplexe Systeme bauen. Der Preis hängt primär von der Komplexität Ihrer Installation ab. Ein einfaches System kann problemlos mit einem Budget von 1.500 bis 2.500 Euro getestet werden. Oft inkludiert Django aber auch das Django Rest Framework - ein Toolkit, das es Entwicklern erlaubt, schnell API zu programmieren. Hier müssen ebenfalls alle Routes getestet werden. Der Preis kann so schnell in den Bereich 5.000 bis 15.000 Euro steigen. Allgemein schauen wir uns vorab jedes System in Ruhe an und geben ein Angebot ab - fragen Sie uns einfach!
"Ich liebe Django und speziell das Django Rest Framework - was man da alles falsch machen kann!"
Damian Strobel - Gründer von DSecured
Prüfen Sie, ob Ihre Django Anwendung wirklich sicher ist. Wir helfen!
Relevantes zu Django-Pentests
Pentest: Dienstleistungen
Welche Sicherheitslücken finden wir während eines Django-Penetrationstests?
Wie bei jeder Webapplikation können auch Django-Webapplikationen von verschiedenen Sicherheitslücken betroffen sein. Der Klassiker ist beispielsweise DEBUG=True in den Einstellungen der Produktivumgebung. Diese Einstellung erlaubt es dem Angreifer die gesamte Angriffsoberfläche in kürze zu erfassen. Außerdem können spezielle HTTP Requests dazu verwendet werden, um Zugangsdaten zu verbundenen Diensten oder Datenbank auszugeben. Klassische Probleme sind meist XSS und CSRF.
Wird Django REST verwendet, wird es meist besonders spannend. Bei der Entwicklung von REST-APIs muss man besonders stark auf gute Rechteverwaltung achten. Wir prüfen ob der jeweilige Nutzer wirklich auf bestimmte Ressourcen zugreifen darf. Ist dem nicht der Fall, können die Folgen dramatisch sein. Ein Nutzer oder sogar Gast kann Nutzerdaten stehlen oder ändern. Ähnlich wie in anderen Frameworks erlaubt auch Django die Nutzung von "raw queries". Hier sieht man immer wieder SQL Injections. Auch Probleme im Bereich RCE/Deserialisierung sind nicht unüblich, wenn auch recht selten.
Penetrationstests von Django Rest Framework Anwendungen
Wie eingangs erwähnt sieht man im Kontext von Django sehr oft das Django Rest Framework. Das erlaubt den Entwicklern relativ schnell komplexe API-Anwendungen zu bauen. Diese lassen sich recht effizient testen, da es sehr einfach ist die API als beispielsweise Swagger JSON zu exportieren (siehe hierzu drf-spectacular). Das wiederum erlaubt es uns, den Großteil der API-Endpunkte automatisiert zu testen. Hierfür haben wir eigene Software.
Wie das Bild ebenfalls zeigt, ist der Debug-Modus von Django ebenfalls äußerst hilfreich. Er erlaubt es auf Fuzzing-Aktionen zu verzichten, um "versteckte" oder "vergessene" Endpunkte zu finden. Das spart Zeit und erhöht die Effektivität des Django Penetrationstests.
Einige Unternehmen, denen wir bisher helfen konnten
Django Pentest anfragen