Na jakich wbudowanych narzędziach działają aplikacje podobne do Little Snitch?

5

Little Snitch to dobrze znane oprogramowanie, które pozwala użytkownikom komputerów Mac blokować wychodzące połączenia z określonej aplikacji.

Teraz, ilekroć pytam, jak zrobić to samo z wbudowanymi narzędziami OS X, otrzymuję odpowiedź: „nie da się tego zrobić bez Little Snitcha. Wbudowana zapora sieciowa PF nie jest zaporą aplikacji, a wbudowana -w AF może blokować tylko ruch przychodzący. Żadne narzędzie OS X nie pozwala na to ”.

To nie może być prawda. Mam na myśli, w tym przypadku, w jaki sposób Little Snitch, Hands Off !, lub małe aplikacje, takie jak RadioSilence, mogłyby to osiągnąć? Same aplikacje z pewnością muszą korzystać z wbudowanych narzędzi blokujących ruch w zależności od aplikacji. Szukałem alternatywnych rozwiązań typu open source z myślą o zapoznaniu się z ich źródłami i dowiedzeniu się „jak to robią”. Ale ... Nie znalazłem żadnej alternatywy typu open source. Dowolny pomysł?

Zozor
źródło

Odpowiedzi:

3

Little Snitch używa rozszerzenia jądra sieci do przechwytywania ruchu sieciowego.

NKE umożliwiają tworzenie modułów, które można dynamicznie ładować i rozładowywać w określonych pozycjach w hierarchii sieci. Moduły te mogą monitorować i modyfikować ruch sieciowy oraz otrzymywać powiadomienia o asynchronicznych zdarzeniach z warstwy sterownika, takich jak zmiany statusu interfejsu.

Każdy z sieciowych mechanizmów KPI wykonuje określone zadanie. Podstawowe mechanizmy KPI dla sieci to:

  • Filtr gniazd KPI, który pozwala KEXTowi filtrować ruch przychodzący lub wychodzący na danym gnieździe, w zależności od tego, jak są przyłączone. Filtry gniazd mogą również filtrować komunikację pozapasmową, na przykład wywołania setsockopt lub bind. Powstałe filtry leżą między warstwą gniazda a protokołem.
  • Filtr interfejsu KPI, który umożliwia KEXT dodanie filtra do określonego interfejsu sieciowego . Te filtry interfejsów (wcześniej znane jako NKE łącza danych) mogą pasywnie obserwować ruch (niezależnie od typu pakietu) przepływającego do i z systemu. Mogą również modyfikować ruch (na przykład szyfrować lub wykonywać translację adresów). Zasadniczo działają one jako filtry między stosem protokołu a urządzeniem.

Jak wspomniałeś, istnieją alternatywy dla rozszerzeń jądra sieciowego, ale tylko w niektórych przypadkach użycia.

Ponieważ nawet drobne błędy w kodzie poziomu jądra mogą powodować poważne konsekwencje, w tym niestabilność aplikacji, uszkodzenie danych, a nawet panikę jądra, techniki opisane w tym dokumencie powinny być stosowane tylko wtedy, gdy nie istnieje już żaden inny mechanizm. Na przykład, tam gdzie to możliwe, filtrowanie IP powinno być generalnie wykonywane przy użyciuipfw . Podobnie, rejestrowanie pakietów powinno być generalnie wykonywane przy użyciubpf .

Rozszerzenia jądra sieciowego są znacznie potężniejsze i pozwalają na bardziej szczegółową kontrolę.

Nacisk na moje treści cytowane. Nie znam innego oprogramowania, ale zakładam, że działa on zgodnie z tą samą zasadą.

grg
źródło