it-swarm.com.de

Wie kann ich Daten aus einem privaten Netzwerk veröffentlichen, ohne einen bidirektionalen Link zu einem anderen Netzwerk hinzuzufügen?

Ich habe mich nur gefragt, wie ich ein privates Netzwerk aufbauen kann, in dem es physisch unmöglich ist, Zugriff von außen zu erhalten, aber dennoch die Möglichkeit hat, Daten auf einem Remote-Server zu veröffentlichen. Als Beispiel: Nehmen wir an, ich habe ein Netzwerk von Geräten, die eine kritische Infrastruktur steuern, und ich möchte nicht, dass jemand darauf zugreifen kann, außer den Personen vor Ort. Ich würde jedoch weiterhin Diagnoseinformationen ohne nennenswerte Verzögerung an einen Remote-Server senden, auf den über das Internet zugegriffen werden kann.

Annahmen über den Angreifer:

  • kann in jedes System einbrechen, das mit dem Internet verbunden ist
  • hat keinen physischen Zugriff auf das private Netzwerk

Wir können also nicht einfach einen Server einsetzen, der als Firewall zwischen dem öffentlichen und dem privaten Netzwerk fungiert, da jede Software Fehler aufweist und der Angreifer Zugriff auf das private Netzwerk erhält, sobald die Firewall beschädigt wurde (außer wenn wir eine hatten) Firewall, in der die Regeln in Hardware eingebettet sind oder aus einem anderen Grund ohne physischen Zugriff nicht geändert werden können. Gibt es solche Geräte?)

Was das Problem lösen könnte, ist ein Gerät, das physisch nur unidirektionale Kommunikation zulässt (in unserem Fall vom privaten zum öffentlichen Netzwerk). Ich weiß nicht, ob es solche Geräte gibt, aber ich hatte einige Ideen:

  • verwenden Sie alle Nur-Schreib-Medien wie CD-ROMs. Probleme: Hohe Latenz und erfordert spezielle Hardware, um CDs automatisch zwischen Computern zu verschieben.
  • einrichtung des Papierdruckers/Scanners: Haben Sie einen Drucker in Ihrem privaten Netzwerk, der direkt in einen Scanner eingespeist wird, der mit dem öffentlichen Netzwerk verbunden ist. Die Latenz wurde auf wenige Sekunden reduziert, ist jedoch aufgrund von OCR fehleranfällig.
  • Glasfaserkommunikation: Entfernen Sie auf der Seite des Empfängers den optischen Sender physisch (oder entfernen Sie den Empfänger auf der anderen Seite), daher ist nur eine unidirektionale Kommunikation möglich. Funktioniert wahrscheinlich nicht mit Ethernet (gibt es Netzwerkprotokolle, die die unidirektionale Kommunikation ordnungsgemäß verarbeiten?)

Bevor ich mich weiter zum Narren mache, weil ich die offensichtliche Lösung verpasst habe, würde ich gerne Ihre Kommentare dazu hören :)

23
Klamann

Sie können eine serielle Schnittstelle verwenden. Standardmäßig gibt es zwei Datenleitungen, eine pro Richtung, plus ein Erdungskabel (was hier irrelevant ist). Durch Trennen der entsprechenden Leitung können Sie die Kommunikation in eine bestimmte Richtung verhindern.

Es ist wirklich einfach, es zu verwenden. Ich denke, Sie können so etwas wie echo hello >> /dev/ttyS0 Ausführen und es mit cat /dev/ttyS0 Auf der anderen Seite empfangen. Es gibt keinen komplizierten Netzwerkstapel, der umgangen werden könnte (was eine unidirektionale Kommunikation verhindern würde, da die fehlende Antwort als Paketverlust behandelt würde), und die meisten Sprachen verfügen über einfach zu verwendende Bibliotheken, um über serielle Schnittstellen zu kommunizieren.

Hier ist ein Beispiel in Python, wie man JSON über seriell sendet:

import serial, json
s = serial.Serial('/dev/ttyUSB0')
data = json.dumps({"status": "OK", "uptime": 60}).encode("utf-8") # make UTF-8 encoded JSON
s.write(data + "\n") # send the JSON over serial with a newline at the end
37
André Borie

Ich finde es toll, wie sehr sich meine Suchleistung erhöht, sobald ich mit dem Posten meiner Frage fertig bin. D.

Wikipedia zur Rettung:

  • " Sneakernet ist ein informeller Begriff, der die Übertragung elektronischer Informationen durch physisches Verschieben von Medien (...) von einem Computer zu einem anderen beschreibt, anstatt die Informationen über ein Computernetzwerk zu übertragen."
  • "Ein nidirektionales Netzwerk (auch als unidirektionales Sicherheitsgateway oder Datendiode bezeichnet) ist ein Netzwerkgerät oder -gerät, mit dem Daten nur in eine Richtung übertragen werden können, um die Informationssicherheit zu gewährleisten."
  • "Ein Luftspalt , Luftwand oder Luftspalt ist eine Netzwerksicherheitsmaßnahme, die auf einem oder mehreren Computern angewendet wird, um sicherzustellen, dass ein sicheres Computernetzwerk physisch von ungesicherten Netzwerken isoliert ist."
  • siehe auch: Air Gap Malware

Und es gibt tatsächlich nternehmen, die gehackte Glasfaser-Netzwerkverbindungen verkaufen . Sie mussten ihre eigenen Netzwerkprotokolle entwickeln, obwohl ich bisher keine Spezifikationen für diese finden konnte ...

16
Klamann

Ethernet

Gängiges 100-MBit-Ethernet kann durch Abschneiden einiger Drähte leicht physikalisch unidirektional gemacht werden. Die Standard-Netzwerkprotokolle erfordern eine bidirektionale Kommunikation und stellen sicher, dass in einem unidirektionalen Netzwerk keine Zustellung möglich ist (da der Absender keine Bestätigung erhalten kann, ob eine Nachricht empfangen wurde oder verloren gegangen ist), aber Sie können auf jeden Fall selbst einen kleinen benutzerdefinierten Netzwerkstapel schreiben - eine App auf der einen Seite das Senden der Daten (möglicherweise Duplizieren jeder Nachricht und einschließlich Prüfsummen, die eine Fehlerbehebung ermöglichen) als rohe Ethernet-Frames; und eine App auf der anderen Seite, die einen Datenstrom daraus zusammenstellt. Es sind Bibliotheken auf relativ hoher Ebene verfügbar, um mit solchen Daten zu arbeiten, z. http://www.secdev.org/projects/scapy/ .

Es ist nicht etwas, das sofort funktioniert, aber auch nicht so schwer, das innerhalb der Grenzen eines College-Hausaufgabenprojekts liegen könnte.

6
Peteris

Einige Ideen:

  • Was ist mit so etwas wie dem Electric Imp?

https://electricimp.com/aboutus/faq/

Es scheint eine kleine Optodiode zur Kommunikation zu verwenden.

  • Oder was ist mit dieser Javascript-Bibliothek, die Ultraschallgeräusche verwendet, die von Ihrem Lautsprecher ausgehen? Stellen Sie einfach ein Mikrofon, aber keinen Lautsprecher auf das Empfangsgerät?

https://github.com/borismus/sonicnet.js

  • Hier ist eine Live-Implementierung der Off-Channel-Methode zur unidirektionalen Kommunikation:

https://youtu.be/w6lRq5spQmc

Anscheinend verwendet der Google Chromecast einen Teil davon. Das könnte also ein fruchtbarer Codestack zum Stöbern sein. Obwohl nicht für Sicherheitsanwendungen, aber dennoch relevant.

  • Schauen Sie sich die Technologie hinter der Infosound-Plattform von Yamaha an. Auch dies scheint eine unidirektionale Kommunikation über einen verrauschten Kanal zu sein:

https://play.google.com/store/apps/details?id=com.yamaha.Android.infosoundbrowser&hl=de

Natürlich hängt alles davon ab, welche Bandbreite Sie benötigen.

2
curious_cat

Alle Protokolle, die eine garantierte Zustellung erfordern , erfordern eine bidirektionale Kommunikation .

Ein unidirektionaler Kommunikationskanal muss entweder:

  1. opfern zuverlässige Lieferung, oder
  2. einen Rückweg haben, um Bestätigungen zurückzugeben.

Eine einfache Implementierung der unidirektionalen Lieferung kann mit der 3,5-mm-Audiobuchse erfolgen. Mit einem Softwaremodulator konvertieren Sie Oktettdaten in eine Audiodatei und spielen den Sound über einen Audioausgang ab. Sie würden diesen Audioausgang über eine TRS-Audio-Buchse von Stecker zu Stecker mit dem Audioeingang eines anderen Computers verbinden. Auf dem anderen Computer verwenden Sie einen Software-Demodulator, um den Ton wieder in Oktettdaten zu interpretieren. Zu diesem Zeitpunkt haben Sie ein grundlegendes Softwaremodem .

Wenn Sie keine zuverlässige Lieferung benötigen, ist dies ausreichend.

Wenn Sie eine zuverlässige Zustellung wünschen, müssen Sie einen Rückweg hinzufügen, um Übermittlungsbelege (ACKs) in einem einfachen TCP-ähnlichen Stapel zu übertragen. Der Absender sollte das Datenpaket senden und dann auf eine ACK warten, bevor er das nächste Datenpaket sendet. Wenn nach einer vorgegebenen Zeit keine solche ACK empfangen wird, sollte der Absender die Daten erneut senden. Der Rückweg kann ein einfacher Piepton auf einer anderen Audio-Leitung sein.

Wenn Sie keinen hohen Durchsatz benötigen, ist dies ausreichend.

Wenn Sie einen hohen Durchsatz wünschen, müssen Sie ein Sendefenster hinzufügen. An dieser Stelle möchten Sie wahrscheinlich eine Softwareimplementierung eines TCP -Stacks) ändern.

2
Lie Ryan

Wenn Ihr Entwicklungs- (oder Produktions-) Netzwerk wirklich lückenhaft ist, besteht eine Option darin, einen Opfer-PC im Internet zu haben, über den Sie mit Ihrem Hosting-Service kommunizieren können.

Sie können Sneakernet verwenden, um Dateien zu verschieben, die hochgeladen werden müssen, und dann SSH mit FileZilla oder einem gleichwertigen Programm auf Ihren Host übertragen.

Der Opfer-PC sollte vor der Verbindung mit dem Internet abgebildet werden (mit Macrium oder Acronis oder einem gleichwertigen Gerät), damit Sie ihn jederzeit in einen bekannten, guten Zustand zurückversetzen können.

Es gibt Geschichten von Computern, die innerhalb von Minuten nach der Verbindung mit dem Internet untersucht und/oder gehackt werden. Ein anständiger NAT Router bietet Ihnen also mindestens eine Schutzstufe. Stellen Sie sicher, dass Sie uPnP deaktivieren.

Wenn Sie wirklich paranoid sind, können Sie das bekannte, gute Image dieses PCs jedes Mal wiederherstellen, wenn Sie Dateien darauf verschieben. Einige Malware kann über einen USB-Speicher wieder ins Innere gelangen. Wenn dieser PC kompromittiert wird, können Sie das nicht verbundene Netzwerk infizieren.

Eine Maxime ist, dass die höchsten Bäume zuerst für ihr Holz gefällt werden. Wenn Sie also ein hochwertiges Ziel mit einem hoch entwickelten Angreifer sind, können Sie pwned werden.

Alles in allem ist E-Mail nach außen wahrscheinlich Ihre größte Gefahr, da Ihre PCs diesen Inhalt buchstäblich nach innen einladen. Es ist immer noch unidirektional in dem Sinne, dass Ihre Computer den Kontakt mit dem Mailserver initiieren. So kann es Würmer fernhalten, aber keine Spear-Phishing-Angriffe.

- BEARBEITEN: @Gilsham schlägt vor, eine LiveCD für die Übertragungen zu verwenden. Das ist eine großartige Idee.

Als ich Kali Sana (basierend auf Debian) verwendete, erlaubte es eine LiveCD im "persistenten" Modus, so dass Sie damit die Datei auf der CD speichern und dann auf dem Opfer-PC starten, den Upload durchführen und dann die zerstören konnten CD.

Wenn Sie den permanenten Modus nicht verwenden, verwenden Sie nur eine LiveCD (schreibgeschützt) und laden Sie die Datei (en) auf einer anderen CD-ROM ein.

Das wäre wirklich unidirektional.

1
SDsolar
0
nealmcb