Protokollieren des Netzwerkverkehrs einer bestimmten App in Linux innerhalb von Docker, um zu verhindern, dass er das Internet erreicht und Antworten fälscht.

Protokollieren des Netzwerkverkehrs einer bestimmten App in Linux innerhalb von Docker, um zu verhindern, dass er das Internet erreicht und Antworten fälscht.

Ich habe eine App (Googles Android Emulator, der über QEMU läuft), die unter Ubuntu in einer Docker-Instanz läuft. Ich möchte:

  • Erfassen Sie den gesamten Netzwerkverkehr (Pakete), der von einer VM kommt, die in QEMU ausgeführt wird.
  • Verhindern Sie, dass der Datenverkehr von dieser VM das Internet erreicht, während der Rest der Instanz verbunden bleibt
  • Antworten auf Anfragen dieser VM an andere Server fälschen und so tun, als wäre ich dieser Server
  • Dies alles erfolgt automatisiert und ohne Benutzereingaben (nur Skripte).

Bei der Recherche hierzu entdeckte ichhttps://github.com/mandiant/flare-fakenet-ng, und das ist genau das, was ich brauche. Das Problem ist, dass es in meinem Setup nicht zu funktionieren scheint (immer wenn Fakenets Netzwerktreiber geladen wird, wird der gesamte Netzwerkverkehr unabhängig von den Konfigurationen deaktiviert und ich verliere die Kontrolle über die Docker-Instanz). Ich habe hier eine Frage dazu gestellt (Das Aktivieren eines Umleiters in fakenet-ng unter Ubuntu Linux deaktiviert den gesamten Netzwerkverkehr), erhielt jedoch keine Antworten.

Da ich dieses Problem bisher nicht beheben konnte, suche ich nach einer anderen Möglichkeit, dies zu erreichen. Welche Werkzeuge und Methoden sollte ich verwenden? Was sind ihre Vor- und Nachteile?

Antwort1

Der Android Emulator selbst enthält eine Implementierung von tcpdump und eine Option zum Ausgeben von Paketen in eine Datei. Verwenden Sie ihn folgendermaßen emulator -tcpdump {path_to_dump}.pcap {other_options}:

Um zu verhindern, dass es das Internet erreicht und Antworten fälscht, ist es möglich, den Emulator in einer separaten Benutzergruppe zu starten und eine iptables-Filterung basierend auf GIDs von Prozessen durchzuführen. Dabei wird der gesamte Datenverkehr, der von der spezifischen GID kommt, auf einen lokalen Server umgeleitet, auf dem gefälschte Antworten implementiert werden. So etwas wiehttps://pypi.org/project/spoof/oderhttps://pypi.org/project/fake-server/könnte für diesen Anwendungsfall funktionieren.

verwandte Informationen