Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
PoW-Shield — Projekt zur Bekämpfung von Layer-7-DDoS mit Proof-of-Work, mit zusätzlicher WAF und Controller. Ausgestattet mit einem vollständigen Funktionsumfang und containerisiert für schnelle und leichte Bereitstellung. | Kitploit
Tools/GitHubGitHub/ruisiang/pow-shield
Websicherheit
GitHubruisiang/pow-shield

PoW-Shield

Projekt zur Bekämpfung von Layer-7-DDoS mit Proof-of-Work, mit zusätzlicher WAF und Controller. Ausgestattet mit einem vollständigen Funktionsumfang und containerisiert für schnelle und leichte Bereitstellung.

Repository anzeigenWebseite
408749vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
PoW Shield

Beschreibung

PoW Shield bietet DDoS-Schutz auf der OSI-Anwendungsschicht, indem es als Proxy fungiert, der Proof of Work zwischen dem Backend-Dienst und dem Endbenutzer einsetzt. Dieses Projekt zielt darauf ab, eine Alternative zu allgemeinen Anti-DDoS-Methoden wie Googles ReCaptcha zu bieten, die schon immer eine Qual waren. Der Zugriff auf einen durch PoW-Shield geschützten Webdienst war noch nie einfacher: Einfach die URL aufrufen, und der Browser erledigt den Rest der Verifizierung automatisch für Sie.

PoW Shield zielt darauf ab, die folgenden Dienste in einer einzigen Webapp/Docker-Images zu bündeln:

  • Proof-of-Work-Authentifizierung
  • Ratenbegrenzung und IP-Blacklisting
  • Web Application Firewall

(Neu) Artikel auf LinkedIn

Vorgestellt auf Pentester Academy TV

Geschichte auf Medium

Funktionen

  • Webdienststruktur
  • Proxy-Funktionalität
  • PoW-Implementierung
  • Dockerisierung
  • IP-Blacklisting
  • Ratenbegrenzung
  • Unit-Tests
  • WAF-Implementierung
  • Multi-Instanz-Synchronisation (Redis)
  • SSL-Unterstützung

Unterstützt über den PoW Phalanx-Controller:

  • Multi-Instanz-Verwaltung
  • Whitelist-Tokens
  • Blacklist-IP-Synchronisation
  • Dynamische Schwierigkeitskontrolle
  • Dashboard

Alternative Implementierung in Go PoW-Shield-Go (WIP) für Stresstestzwecke und zukünftige optimierte Produktionsversion.

Funktionsweise

Im Grunde genommen fungiert PoW Shield als Proxy vor der eigentlichen Web-App/dem eigentlichen Dienst. Es führt eine Verifikation mittels Proof of Work durch und leitet nur autorisierten Verkehr an den tatsächlichen Server weiter. Der Proxy ist einfach installierbar und kann Anwendungen mit geringer Sicherheit durch eine WAF schützen.

Folgendes passiert im Hintergrund, wenn ein Benutzer einen durch PoW Shield geschützten Webdienst aufruft:

  1. Der Server generiert ein zufälliges hex-kodiertes „Prefix“ und sendet es zusammen mit der PoW-Shield-Seite an den Client.
  2. Browser-JavaScript auf der Client-Seite versucht dann, eine „Nonce“ zu erraten (Brute-Force), die beim Anhängen an das Prefix einen SHA256-Hash mit mehr führenden Nullbits als der vom Server angegebenen „Schwierigkeit“ D erzeugt. D.h. SHA256(prefix+nonce)=0…0xxxx (binär, mit mehr als D führenden 0en).
  3. Clientseitiges JavaScript sendet dann die berechnete Nonce zur Verifikation an den Server; bei erfolgreicher Verifikation erzeugt der Server ein Cookie für den Client, um die Authentifizierung zu bestehen.
  4. Der Server beginnt mit der Weiterleitung des nun authentifizierten Client-Verkehrs an den Server mit aktivierter WAF-Filterung.

Konfiguration

Sie können PoW Shield über die folgenden Methoden konfigurieren.

  • nodejs: .env (Beispiel: .env.example)
  • docker-compose: docker-compose.yaml (Beispiel: docker-compose.example.yaml)
  • docker run: -e Parameter

Umgebungsvariablen

VariableTypStandardBeschreibung
PORTAllgemein3000Port, den PoW Shield abhört
SESSION_KEYAllgemeinGeheimer Schlüssel für Cookie-Signaturen; aus Sicherheitsgründen einen eindeutigen verwenden, sonst kann jeder Ihre signierten Cookies fälschen
BACKEND_URLAllgemeinZielort für authentifizierten Verkehr; IPs und URLs werden akzeptiert (akzeptiert protocol://url(:port) oder protocol://ip(:port))
DATABASE_HOSTRedis127.0.0.1Redis-Dienst-Host
DATABASE_PORTRedis6379Redis-Dienst-Port
DATABASE_PASSWORDRedisnullRedis-Dienst-Passwort
POWPoWonSchaltet PoW-Funktionalität ein/aus (wenn nicht vorübergehend ausgeschaltet, warum dieses Projekt überhaupt verwenden?)
NONCE_VALIDITYPoW60000Maximale Sekunden, die eine Nonce nach Generierung an den Server gesendet werden kann (zur Durchsetzung von Schwierigkeitsänderungen und Herausfiltern veralteter Nonces)
DIFFICULTYPoW13Problem-Schwierigkeit, Anzahl führender Nullbits im erzeugten Hash (0: extrem einfach ~ 256: unmöglich, 13 (Standard) dauert etwa 5 Sekunden für den Browser)
RATE_LIMITRatenbegr.onSchaltet Ratenbegrenzungsfunktionalität ein/aus
RATE_LIMIT_SAMPLE_MINUTESRatenbegr.60Minuten, bis Statistiken für Sitzung/IP zurückgesetzt werden
RATE_LIMIT_SESSION_THRESHOLDRatenbegr.100Anzahl der Anfragen, die eine einzelne Sitzung stellen kann, bevor der Token-Widerruf ausgelöst wird
RATE_LIMIT_BAN_IPRatenbegr.onSchaltet IP-Sperrfunktionalität ein/aus
RATE_LIMIT_IP_THRESHOLDRatenbegr.500Anzahl der Anfragen, die eine einzelne Sitzung stellen kann, bevor die IP-Sperre ausgelöst wird
RATE_LIMIT_BAN_MINUTESRatenbegr.15Minuten, die die IP-Sperre bestehen bleibt
WAFWAFonSchaltet WAF-Funktionalität ein/aus
WAF_URL_EXCLUDE_RULES

Verwendung

Nodejs

Voraussetzungen

  • Docker ^19.0.0
  • Nodejs ^14.0.0
root@kitploit:~
# Clone repository
git clone https://github.com/RuiSiang/PoW-Shield.git

# Install dependencies
npm install

# Configure settings
cp -n .env.example .env
# Edit .env
nano .env

# Transpile
npm run build

#############################################
# Run with db (redis), recommended & faster #
# install redis first                       #
# sudo apt-get install redis-server         #
#############################################
npm start
#############################################

#############################################
#        Run without db (mock redis)        #
#############################################
npm run start:standalone # linux
npm run start:standalone-win # windows
#############################################

# Test functionalities(optional)
npm test

Docker (repo)

root@kitploit:~
####################################################
# Docker run with db (redis), recommended & faster #
####################################################
docker run -p 3000:3000 -e BACKEND_URL="http://example.com" -d ruisiang/pow-shield
####################################################

####################################################
#        Docker run without db (mock redis)        #
####################################################
docker run -p 3000:3000 -e BACKEND_URL="http://example.com" -e NODE_ENV="standalone" -d ruisiang/pow-shield
####################################################

####################################################
#                  Docker Compose                  #
####################################################
# Copy docker-compose.example.yaml
cp -n docker-compose.example.yaml docker-compose.yaml
# Edit docker-compose.yaml
nano docker-compose.yaml

# Start the container
docker-compose -f docker-compose.yaml up
####################################################

Stresstest

Hinweis: Dies funktioniert nur mit der nicht-containerisierten Version von PoW Shield, und Ihr System könnte bei der Ausführung des Tests instabil werden.

root@kitploit:~
# Start the stress test
npm run stress

# If you changed the PORT variable in .env, you should also change the target variable in the stress test script
nano scripts/stress.sh

Die folgenden Tests wurden auf einem einzelnen Thread einer i7-10870H CPU mit einem 60-Sekunden-Zeitraum für jeden gleichzeitigen Parameter durchgeführt.

Massen-GET

Gleichzeitige VerbindungenDurchschn. LatenzFehlerrateAnfragen/Sekunde
6415.3ms0.00004188
12830.2ms0.00004229
25660.4ms0.00004235
512122.6ms0.01424166
1024261.7ms0.17663894
20481966.5ms0.49791027
40964685ms0.7179838

Nonce-Flut

Gleichzeitige VerbindungenDurchschn. LatenzFehlerrateAnfragen/Sekunde
6415.6msN/A4094
12831.5msN/A4058
25661.5msN/A4159
512129.5msN/A3945
1024264.4msN/A3858
2048592.1msN/A3407
40961212.6msN/A3322

Aus obigem Beispiel wird ersichtlich, dass die angemessene maximale Lastschätzung für PoW Shield bei etwa 512 gleichzeitigen Verbindungen liegt. Fehlerraten und Latenzen verschlechtern sich danach über die normale Akzeptanz hinaus. Daher sollte es in einer lastverteilten Umgebung auf der Maschine (1 PoW Shield-Instanz auf jedem der 8 Kerne) in der Lage sein, maximal etwa 4096 gleichzeitige Verbindungen (Clients) bei einer Gesamtanforderungsrate von 32k Anfragen/Sekunde zu bewältigen.

Referenzen

  • Proof of Work von Fedor Indutny (PoW-Dienstprogrammfunktionen)
  • Shadowd von Zesecure (WAF-Regeln)

Lizenz

MIT

Tool herunterladen
WAF
Ausschlussregeln beim Scannen der Anfrage-URL; ',' zur Trennung von Regelnummern, '-' für einen Bereich (z.B. 1,2-4,5,7-10)
WAF_HEADER_EXCLUDE_RULESWAF14,33,80,96,100Ausschlussregeln beim Scannen des Anfrage-Headers; ',' zur Trennung von Regelnummern, '-' für einen Bereich (z.B. 1,2-4,5,7-10)
WAF_BODY_EXCLUDE_RULESWAFAusschlussregeln beim Scannen des Anfragekörpers; ',' zur Trennung von Regelnummern, '-' für einen Bereich (z.B. 1,2-4,5,7-10)
SSLSSLoffSchaltet SSL-Funktionalität ein/aus
SSL_CERT_PATHSSLtests/ssl/mock-cert.pemPfad zum SSL-Zertifikat
SSL_KEY_PATHSSLtests/ssl/mock-key.pemPfad zum SSL-Schlüssel
SOCKETSocketoffSchaltet Socket-Funktionalität ein/aus
SOCKET_URLSocketOrt des PoW Phalanx-Controllers; IPs und URLs werden akzeptiert (akzeptiert protocol://url:port oder protocol://ip:port)
SOCKET_TOKENSocketAbonnement-Token für den PoW Phalanx-Controller