Syswall ist eine Neuentwicklung, mit der eine Ähnlichkeit einer dynamischen Firewall hergestellt werden soll, um den Zugriff von Anwendungen auf Systemaufrufe zu filtern. Der Projektcode ist in der Sprache Rust geschrieben, die Lizenz ist nicht angegeben.
Diese neue Entwicklung Es sieht aus wie die interaktive Version des Dienstprogramms strace und ermöglicht es Ihnen, jeden Systemaufruf des Programms zu verfolgen. Der Hauptunterschied besteht darin, dass zusätzlich zur Anzeige von Informationen zu den Systemaufrufen und den Ergebnissen ihrer Ausführung.
Über Syswall
Systemwand unterstützt den interaktiven Modus in dem der überwachte Prozess vor einem Systemaufruf gestoppt wird und der Benutzer wird aufgefordert, den Vorgang fortzusetzen oder zu ignorieren (Sie können beispielsweise Versuche überwachen, jeden Datei- oder Netzwerkverbindungsprozess zu öffnen.)
Syswall kann auch Statistiken über die getätigten Systemaufrufe sammeln und darauf basierend einen Bericht erstellen.
Die Ziele von syswall sind folgende:
zu bieten eine verbesserte Version von strace Das ist einfacher zu bestimmen, welche Software tatsächlich tut.
Stellen Sie eine Umgebung zum Testen und Experimentieren mit der Software bereit, indem Sie einen detaillierten und interaktiven Ansatz zum Zulassen und Ablehnen von Systemaufrufen ermöglichen.
Jeder Prozess kann eine Konfigurationsdatei haben
Für jeden Prozess sWir können eine Konfigurationsdatei mit einer Liste explizit zulässiger oder blockierter Systemaufrufe verbinden.
Bei unterstützten Anrufen kann der Benutzer mit syswall die folgenden Aktionen ausführen:
- Erlaube syscall einmal
- Lassen Sie immer diesen bestimmten Systemaufruf zu
- Syscall einmal blockieren (hart oder weich)
- Blockieren Sie immer diesen bestimmten Systemaufruf (hart oder weich).
- Beim Blockieren kann das Programm einen Block ausführen (hart oder weich).
Während der interaktiven Sitzung ist es möglich, bestimmte Systemaufrufe zur Laufzeit und alle Aufrufe dieses Systemaufrufs zuzulassen oder zu blockieren, unabhängig davon, wo auf das Programm zugegriffen wird.
Das Blockieren wird in den Modi "hart" und "weich" unterstützt.
Arten von Schlössern
Im ersten Fall wird der Systemaufruf nicht ausgeführt und der Zugriffsfehlercode an den Prozess gesendet. Im zweiten Fall wird der Systemaufruf ebenfalls nicht ausgeführt, aber der Prozess erhält einen fiktiven erfolgreichen Rückkehrcode, der die erfolgreiche Ausführung des Systemaufrufs simuliert.
Derzeit wird beispielsweise nur die Systemaufrufanalyse für Dateivorgänge unterstützt.
Ein harter Block verhindert die Ausführung des Systemaufrufs und gibt einen Fehler mit verweigerter Berechtigung an den untergeordneten Prozess zurück. Auf der anderen Seite verhindert eine weiche Sperre den Systemaufruf, versucht jedoch, eine angemessene Antwort auf den untergeordneten Prozess zurückzugeben, um vorzutäuschen, dass der Systemaufruf tatsächlich ausgeführt wurde.
In diesem Fall werden Bestätigungsanforderungen nur angezeigt, wenn sie sich auf speziell gewählte oder zuvor fehlende Systemaufrufe beziehen.
Speichern und laden Sie eine Prozesskonfiguration.
Während der Ausführung getroffene Entscheidungen können in einer JSON-Datei gespeichert werden. Diese Datei kann während eines weiteren Laufs geladen werden, sodass die oben genannten Optionen verwendet werden.
Dies ist eine laufende Arbeit - es werden immer nur zulässige / blockierte Antworten gespeichert.
Informationen
Wenn der untergeordnete Prozess abgeschlossen ist, gibt syswall einen kurzen Bericht über die Systemaufrufe des untergeordneten Prozesses aus. Derzeit besteht es aus allen geöffneten oder gesperrten Dateien, wird aber in zukünftigen Versionen erweitert.
Das Projekt befindet sich noch im Stadium eines funktionalen Prototyps und es werden nicht alle geplanten Möglichkeiten realisiert.
Es gibt noch mehr zu entwickeln
Es gibt eine große Aufgabenliste für das Projekt. In Zukunft ist geplant, Unterstützung für zusätzliche Klassen von Systemaufrufen hinzuzufügen. L.eine Option zum Überprüfen unter Berücksichtigung der an den Systemaufruf übergebenen Argumente, zum Speichern des Prozessstatus in einer Datei zum späteren Vergleich der Aktivitäten während verschiedener Programmstarts (z. B. zum Vergleichen von Dateilisten und Netzwerkverbindungen), Option Um das Laden dynamischer Bibliotheken zu ignorieren und die typischen Einstellungen zu unterstützen (z. B. alle Sockets sperren, aber Dateizugriff zulassen).