Können HTTP-Server in einem LAN aus dem Web gehackt werden?

424
Mister Mystère

Ich habe einen Webserver auf einem ESP8266-Mikrocontroller in meinem lokalen Netzwerk eingerichtet. An dieses Gerät gesendete HTTP-GET-Anforderungen können eine Netzsteckdose ein- und ausschalten, und ich habe vor, ein paar davon im Haus zu installieren.

Dieses LAN ist über eine Standard-Internet-Box (Router + Modem) mit dem Internet verbunden. Ich möchte verhindern, dass irgendjemand außerhalb des LAN, einschließlich des Internet, irgendetwas an den Mikrocontroller sendet.

Nehmen wir an, die Leute können mein WPA-PSK-geschütztes WLAN nicht hacken. Ist mein Setup eine Sicherheitslücke? Wie schwierig ist es für jemanden, sich in meine DIY-Smart-Outlets zu hacken?

0

2 Antworten auf die Frage

1
acejavelin

Es ist zwar alles möglich, wenn keine Ports über Portweiterleitung zugeordnet sind, die manchmal als virtueller Server bezeichnet werden, insbesondere 80, 443 und 8080, oder welche Ports Ihr Webserver verwendet ... Die Wahrscheinlichkeit eines Angriffs von außerhalb des LANs über Ihren Router zu diesem Gerät sind nahe Null.

Nehmen Sie dies jedoch nicht ohne eine gründlichere Sicherheitsüberprüfung als endgültige Antwort. Wenn es einen Willen gibt, gibt es einen Weg, egal welche Vorsichtsmaßnahmen Sie treffen.

Vielen Dank. Gordon Davisson scheint eine Lücke gefunden zu haben. Was ist deine Meinung dazu? Mister Mystère vor 8 Jahren 0
Sehr plausibel, für jemanden, der dies tun möchte, würde er sehr genaue Kenntnisse Ihres internen Netzwerks benötigen, einschließlich der IP-Adresse und der verwendeten Syntax. Möglich, aber in Ihrer Wohnsituation wahrscheinlich so wahrscheinlich, dass Sie von einem Hai gebissen werden. Auch für diese Arbeit sollte eine Person ein hohes Maß an Details über Ihr internes Netzwerk und die erforderlichen Befehle kennen. Dies könnte ein unbedeutendes Problem sein, wenn Sie über ausreichend informierte Freunde mit einer Scherzseite verfügen, aber ich wäre wahrscheinlich nicht besorgt. Im schlimmsten Fall geht es um Ihre Lichter, nicht um Ihr Bankkonto acejavelin vor 8 Jahren 0
Richtig, obwohl ich mir Sorgen mache, dass Leute Heizungslüfter in meiner Wohnung aktivieren, wenn ich nicht da bin (auch wegen der Stromrechnung ...). Es gibt also keinen Weg für jemanden außerhalb meines Netzwerks, alle Computer aufzulisten, die den Port 80 abhören, und Brute-Force-Anforderungen, bis sie eine Antwort erhalten? Mister Mystère vor 8 Jahren 0
Zu sagen, dass dies kein Weg ist, wäre eine Lüge, aber wenn Port 80 in der Firewall geschlossen ist, kann ein externer Benutzer nicht direkt darauf zugreifen. Die Realität ist, es gibt immer eine Möglichkeit, alles zu hacken, wenn ausreichend Zeit, Ressourcen und eine bestimmte Art von Arbeit dazu vorhanden sind. Die Realität in Ihrer Situation ist jedoch, dass die Wahrscheinlichkeit, dass dies geschieht, winzig ist und gegen Null geht. acejavelin vor 8 Jahren 0
1
Gordon Davisson

Während es für Außenstehende nicht möglich sein sollte, direkt auf den Server zuzugreifen (sofern Sie keine Ports des Routers weiterleiten), sind Sie anfällig für eine Art Cross-Site-Anforderungsfälschung . Wenn Ihnen beispielsweise eine E-Mail-Nachricht im HTML-Format gesendet wird (oder Sie eine Webseite laden oder ...) und ein Inline-Bild von dort geladen wird http://192.168.1.50/control?outlet=all&action=off(oder wie auch immer seine IP-Adresse und -Syntax lautet), wird Ihr E-Mail-Client dies tun Versuchen Sie, ein Bild von dieser URL zu laden, und Ihre Verkaufsstellen werden ausgeschaltet (oder was auch immer).

Wenn Sie also genügend geeky Freunde haben, die Ihre Netzwerkeinrichtung kennen, sollten Sie davon ausgehen, dass Sie Streiche spielen. Tatsächlich sollten Sie auch zufällige XSRF-Treffer erwarten, die versuchen, andere Geräte zu nutzen, die Sie möglicherweise nicht haben. Wenn der Webserver des Controllers durch einen dieser Server verwirrt wird, kann er versehentlich beschädigt werden.

[Update] Um dies besser zu gewährleisten, hängt es stark von den Krypto-Funktionen des Webservers ab. Ich habe bei einer Schnellsuche nicht viele Informationen gesehen, daher bin ich mir nicht sicher, was er tun kann. Am einfachsten ist es, der Anfrage eine Kennwortvariable hinzuzufügen. Dies ist nicht besonders sicher, da es auf dem Draht sichtbar ist, im Protokoll auf dem Client gespeichert und auf dem Server usw. protokolliert wird, aber es ist besser als nichts (und besser als die Verwendung einer eigenartigen Syntax, da es leicht zu ändern ist). . Verwenden Sie nicht dasselbe Passwort, das Sie für andere Zwecke verwenden.

Ein Wechsel von GET zu POST würde auch ein bisschen helfen, zumal der HTTP-Standard besagt, dass GET-Anforderungen den Status des Servers nicht ändern sollen, dh es ist sicher, dass Clients GET-Anforderungen nicht senden können abhängig von zB dem Zustand ihrer Caches. Die Verwendung von HTTPS würde noch mehr helfen (sofern der Server dies unterstützt). Die Verwendung der WebDAV-Digest-Authentifizierung (anstelle einer Kennwortzeichenfolge) wäre ebenfalls gut (wiederum, wenn der Server dies unterstützt), aber Sie müssen einen gewissen Schutz vor Wiederholungsangriffen hinzufügen, damit er wirklich effektiv ist.

Sehr interessant, vielen Dank! Gibt es eine Möglichkeit, sich davor zu schützen, vielleicht etwas zur Firmware des Webservers hinzuzufügen? Wenn die Syntax beispielsweise nicht intuitiv ist, können sie dies nicht tun, wenn sie die Anforderungen in meinem Netzwerk nicht von innen heraus erfassen. Mister Mystère vor 8 Jahren 0
@ MisterMystère Siehe Update. Gordon Davisson vor 8 Jahren 0
Ausgezeichnete Antwort, danke. Frage geschlossen! Mister Mystère vor 8 Jahren 0