Syswall dynamiczna zapora ogniowa dla wywołań systemowych

ściana systemowa

Syswall to nowe rozwiązanie mające na celu stworzenie podobieństwa do dynamicznej zapory ogniowej do filtrowania dostępu aplikacji do wywołań systemowych. Kod projektu jest napisany w języku Rust, licencja nie jest określona.

Ten nowy rozwój wygląda jak interaktywna wersja narzędzia strace i pozwala na śledzenie każdego wywołania systemowego wykonywanego przez program. Kluczowa różnica polega na tym, że oprócz wyświetlania informacji o wywołaniach systemowych i wynikach ich wykonania.

O Syswall

Ściana systemowa obsługuje tryb interaktywny w którym monitorowany proces jest zatrzymywany przed wywołaniem systemowym a użytkownik jest proszony o kontynuowanie lub zignorowanie operacji (na przykład możesz monitorować próby otwarcia każdego pliku lub procesu połączenia sieciowego).

Syswall może również gromadzić statystyki dotyczące wykonywanych wywołań systemowych i generować na ich podstawie raport.

Cele syswall są następujące:

do zapewniają ulepszoną wersję strace co jest łatwiejsze do określenia, jakie oprogramowanie faktycznie robi.
Zapewnij środowisko do testowania i eksperymentowania z oprogramowaniem, umożliwiając szczegółowe i interaktywne podejście do dopuszczania i odrzucania wywołań systemowych.

Każdy proces może mieć plik konfiguracyjny

Dla każdego procesu, sMożna połączyć plik konfiguracyjny z listą jawnie dozwolonych lub zablokowanych wywołań systemowych.

W przypadku obsługiwanych połączeń syswall umożliwia użytkownikowi wykonanie następujących czynności:

  • Zezwól raz na wywołanie systemowe
  • Zawsze zezwalaj na to konkretne wywołanie systemowe
  • Zablokuj wywołanie systemowe raz (twarde lub miękkie)
  • Zawsze blokuj to konkretne wywołanie systemowe (twarde lub miękkie)
  • Podczas blokowania program może wykonać blok (twardy lub miękki).

Podczas sesji interaktywnej można zezwolić lub zablokować określone wywołania systemowe w czasie wykonywania oraz wszelkie wywołania tego wywołania systemowego, niezależnie od tego, gdzie program jest dostępny.
Blokowanie jest obsługiwane w trybach „twardym” i „miękkim”.

Rodzaje zamków

W pierwszym przypadku wywołanie systemowe nie jest wykonywane i do procesu wysyłany jest kod błędu dostępu. W drugim przypadku wywołanie systemowe również nie jest wykonywane, ale proces otrzymuje fikcyjny, pomyślny kod powrotu, symulujący pomyślne wykonanie wywołania systemowego.

Na przykład obecnie obsługiwana jest tylko analiza wywołań systemowych związana z operacjami na plikach.

Twarda blokada zapobiega wykonaniu wywołania systemowego i zwraca błąd odmowy uprawnień do procesu potomnego. Z drugiej strony, miękka blokada zapobiega wywołaniu systemowemu, ale próbuje zwrócić odpowiednią odpowiedź procesowi potomnemu, aby udawać, że wywołanie systemowe zostało faktycznie wykonane.

W takim przypadku prośby o potwierdzenie będą wyświetlane tylko wtedy, gdy dotyczą specjalnie wybieranych lub wcześniej brakujących połączeń systemowych.

Zapisz i załaduj konfigurację procesu.

Wybory dokonane podczas wykonywania można zapisać w pliku JSON. Ten plik można załadować podczas innego uruchomienia, aby były używane powyższe opcje.

To jest w toku - tylko dozwolone / zablokowane odpowiedzi będą zawsze zapisywane.

informacja

Kiedy proces potomny zakończy się, syswall wygeneruje krótki raport o wywołaniach systemowych tego procesu. Obecnie składa się ze wszystkich otwartych lub zablokowanych plików, ale zostanie rozszerzony w przyszłych wersjach.

Projekt jest wciąż na etapie funkcjonalnego prototypu i nie wszystkie zakładane możliwości są realizowane.

Jest jeszcze wiele do zrobienia

Istnieje duża lista rzeczy do zrobienia w projekcie, w przyszłości planowane jest dodanie obsługi dodatkowych klas wywołań systemowych, lmożliwość weryfikacji, z uwzględnieniem argumentów przekazanych do wywołania systemowego, sposobu zapisywania stanu procesu do pliku w celu późniejszego porównania aktywności podczas różnych uruchomień programów (np. w celu porównania list plików i połączeń sieciowych), opcja ignorować ładowanie bibliotek dynamicznych i obsługiwać typowy zestaw ustawień (na przykład blokować wszystkie gniazda, ale zezwalać na dostęp do plików).


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.