Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Sichere ProgrammierungLINQ GroupBy: The Operator Everyone Uses Wrong(23.09.2026 um 09:41 Uhr)
Sichere ProgrammierungIT Heard About the Acquisition Nine Days Before It Closed(23.09.2026 um 09:45 Uhr)
Sichere ProgrammierungThe Story Behind Building NuvyntraLabs(23.09.2026 um 09:45 Uhr)
Sichere ProgrammierungFive dashboards nobody was opening(23.09.2026 um 09:46 Uhr)
Sichere ProgrammierungThe Shift from AI Insights to AI Actions in Finance(23.09.2026 um 09:47 Uhr)
Sichere ProgrammierungGo WebAssembly Meets WebForms Core 2.1(23.09.2026 um 09:49 Uhr)
Sichere ProgrammierungJust One More Round: Scope Creep in the Age of AI Agents(23.09.2026 um 09:50 Uhr)
Sichere ProgrammierungThe Calls That Reach Us Now Are the Ones the Model Could Not Answer(23.09.2026 um 09:50 Uhr)
Sichere ProgrammierungOne Loop Made Four Hundred Round Trips(23.09.2026 um 09:52 Uhr)
Sichere ProgrammierungThe order was committed and nothing else ever heard about it(23.09.2026 um 09:53 Uhr)
Sichere ProgrammierungLINQ GroupBy: The Operator Everyone Uses Wrong(23.09.2026 um 09:41 Uhr)
Sichere ProgrammierungIT Heard About the Acquisition Nine Days Before It Closed(23.09.2026 um 09:45 Uhr)
Sichere ProgrammierungThe Story Behind Building NuvyntraLabs(23.09.2026 um 09:45 Uhr)
Sichere ProgrammierungFive dashboards nobody was opening(23.09.2026 um 09:46 Uhr)
Sichere ProgrammierungThe Shift from AI Insights to AI Actions in Finance(23.09.2026 um 09:47 Uhr)
Sichere ProgrammierungGo WebAssembly Meets WebForms Core 2.1(23.09.2026 um 09:49 Uhr)
Sichere ProgrammierungJust One More Round: Scope Creep in the Age of AI Agents(23.09.2026 um 09:50 Uhr)
Sichere ProgrammierungThe Calls That Reach Us Now Are the Ones the Model Could Not Answer(23.09.2026 um 09:50 Uhr)
Sichere ProgrammierungOne Loop Made Four Hundred Round Trips(23.09.2026 um 09:52 Uhr)
Sichere ProgrammierungThe order was committed and nothing else ever heard about it(23.09.2026 um 09:53 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

How I Built a Django Honeypot to Catch Attackers (and What I Learned)

If you've ever run a Django site, you've probably seen the endless stream of bots trying to brute-force your /admin/ page. After watching my logs fill up with failed login attempts, I decided to do something about it. The…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

If you've ever run a Django site, you've probably seen the endless stream of bots trying to brute-force your /admin/ page. After watching my logs fill up with failed login attempts, I decided to do something about it.






The Problem



Attackers know Django uses /admin/ by default. They hammer it with credential stuffing, brute force attacks, and automated scanners. While rate limiting helps, it's reactive. I wanted something proactive.






The Solution: HoneyGuard



I built HoneyGuard, a Django package that creates fake admin login pages (honeypots). Here's how it works:






1. Fake Login Pages



Move your real admin to /secret-admin/ (or whatever), and let HoneyGuard serve a convincing fake at /admin/. Attackers waste their time, and you gather intel.






2. Behavioral Detection



HoneyGuard catches:





  • Too-fast submissions (< 2 seconds = bot)


  • Too-slow submissions (> 10 minutes = abandoned form or scanner)


  • Hidden honeypot fields (invisible fields that bots fill out)






3. Intelligence Gathering



Every attempt is logged with:




  • IP address, user agent, timestamp

  • Username/password length (not the actual password!)

  • Risk score based on detected anomalies

  • Request timing and suspicious patterns






4. Alerts & Integration




  • Email alerts for high-risk attempts

  • Django signals for custom handlers

  • Console logging for development






Quick Start






pip install django-honeyguard









# settings.py
INSTALLED_APPS = [
'django_honeyguard',
]

HONEYGUARD = {
'EMAIL_RECIPIENTS': ['[email protected]'],
'ENABLE_CONSOLE_LOGGING': True,
}









# urls.py
urlpatterns = [
path('', include('django_honeyguard.urls')),
path('secret-admin/', admin.site.urls), # Your real admin
]






That's it! Now /admin/ is a honeypot, and your real admin is safely hidden.






What I Learned



1. Timing attacks are real: Bots submit forms in milliseconds. Humans take 5-30 seconds minimum.



2. WordPress wannabes: You'd be surprised how many bots hit /wp-admin.php on Django sites. HoneyGuard includes a fake WordPress login too.



3. Fail fast validation: I validate all settings at Django startup, so you catch config errors immediately.



4. Signals > callbacks: Using Django's signal system makes it easy for users to integrate custom behavior without modifying HoneyGuard.






Try It Out








What's Next?



I'm considering adding:




  • Geo-IP blocking for repeat offenders

  • Machine learning for pattern detection

  • Integration with fail2ban



What features would you find useful? Drop a comment!

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten How I Built a Django Honeypot to Catch Attackers (and What I Learned)

Thematisch verwandte Begriffe: Built, Django, Honeypot, Catch · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-96258 | A vulnerability has been found in onSite internet GmbH Auktion NG Auktio…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick