Libseccomp: F: Systemaufrufe vom gleichen Prozess abfangen

Erstellt am 20. Mai 2021  ·  3Kommentare  ·  Quelle: seccomp/libseccomp

Ich arbeite an einer Sandbox unter Linux, was ich erreichen möchte, ist, Systemaufrufe abzufangen und emulierte Werte zurückzugeben oder Register/Zeiger zu ändern und den Systemaufruf mit geändertem Wert auszuführen.

Ich möchte dies aus dem gleichen Prozess erreichen, mein Code wird bereits beim Start in den Zielprozess injiziert.

Ist das mit seccomp möglich?
Wenn Sie ein hilfreiches Beispiel oder andere Empfehlungen haben, gibt es vielleicht einen besseren Weg, um dasselbe zu erreichen

question

Hilfreichster Kommentar

Sie können jederzeit den folgenden Test überprüfen, er ist ziemlich einfach, aber er sollte Ihnen eine grundlegende Vorstellung davon geben, wie Sie ihn verwenden:

Ich werde dieses Problem schließen, da ich denke, dass die Frage gelöst wurde, aber wenn Sie nicht einverstanden sind, können Sie es gerne erneut öffnen / kommentieren.

Alle 3 Kommentare

Es ist wahrscheinlich erwähnenswert, dass der Versuch, Systemaufrufe als eine Form von Sandboxing aus demselben Adressraum wie der Sandbox-Prozess abzufangen, fehleranfällig ist. Eine bösartige Anwendung könnte einen Weg finden, um zu erkennen, dass sie in einer Sandbox ausgeführt wird, und Maßnahmen gegen den Sandboxing-Code ergreifen, der in ihrem Adressraum ausgeführt wird.

Eine bessere Option wäre, einen traditionelleren statischen Syscall-Filter zu verwenden, wie es von vielen Sandboxing-Tools verwendet wird, oder einen Supervisor-Prozess zu erstellen, um Syscalls zu überwachen und abzufangen, indem die Benachrichtigungsfunktionen von seccomp/libseccomp verwendet werden.

Ich bin ziemlich neu bei seccomp, wusste am Vortag noch nicht einmal von seiner Existenz, wenn ich richtig verstanden habe, dass das kürzliche Hinzufügen von Benachrichtigungen uns die Möglichkeit gibt, Systemaufrufe aus dem Benutzermodus zu verarbeiten.
Haben Sie einen Code, den ich als Referenz für diese Aufgabe verwenden kann (seccomp-Benachrichtigung, um Systemaufrufe abzufangen)?

Sie können jederzeit den folgenden Test überprüfen, er ist ziemlich einfach, aber er sollte Ihnen eine grundlegende Vorstellung davon geben, wie Sie ihn verwenden:

Ich werde dieses Problem schließen, da ich denke, dass die Frage gelöst wurde, aber wenn Sie nicht einverstanden sind, können Sie es gerne erneut öffnen / kommentieren.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen