Cisco CyberOps Associate - System operacyjny Linux
- Linux jest systemem open source - Każda osoba może nabyć Linuxa bez opłat i modyfikować go, aby dopasować do konkretnych potrzeb. Ta elastyczność pozwala analitykom i administratorom na dostosowanie systemu operacyjnego specjalnie do analizy bezpieczeństwa.
- Interfejs wiersza poleceń (CLI) w Linuxie jest bardzo potężny - Chociaż GUI ułatwia wykonanie wielu zadań, dodaje złożoności i wymaga więcej zasobów komputerowych do działania. Interfejs wiersza poleceń (CLI) w Linuxie jest niezwykle potężny i umożliwia analitykom wykonywanie zadań nie tylko bezpośrednio na terminalu, ale także zdalnie.
- Użytkownik ma większą kontrolę nad systemem operacyjnym - Użytkownik administratora w Linuxie, znany jako użytkownik root lub superuser, ma absolutną moc nad komputerem. W przeciwieństwie do innych systemów operacyjnych, użytkownik root może modyfikować dowolny aspekt komputera za pomocą kilku klawiszy. Ta zdolność jest szczególnie cenna podczas pracy z funkcjami niskiego poziomu, takimi jak stos sieciowy. Pozwala to użytkownikowi root na precyzyjną kontrolę nad sposobem obsługi pakietów sieciowych przez system operacyjny.
- Umożliwia lepszą kontrolę komunikacji sieciowej - Kontrola jest nieodłączną częścią Linuxa. Ponieważ system operacyjny może być dostosowany praktycznie pod każdym względem, jest świetną platformą do tworzenia aplikacji sieciowych. To ta sama przyczyna, dla której wiele świetnych narzędzi oprogramowania opartego na sieci jest dostępnych tylko dla Linuxa.
- Kluczowe narzędzie dla analityka SOC, ponieważ umożliwia obserwację i zrozumienie każdego szczegółu transakcji sieciowej.
- Wireshark jest popularnym narzędziem do przechwytywania pakietów.
- Te narzędzia pozwalają analitykom bezpiecznie uruchamiać i obserwować wykonanie malware bez ryzyka skompromitowania podstawowego systemu.
- Te narzędzia są używane do monitorowania ruchu w czasie rzeczywistym i inspekcji.
- Jeśli jakikolwiek aspekt obecnie przepływającego ruchu pasuje do ustanowionych zasad, podejmowana jest z góry określona akcja.
- To oprogramowanie jest używane do określania, na podstawie z góry ustalonych zasad, czy ruch jest dozwolony do wejścia lub wyjścia z sieci lub urządzenia.
- Pliki logów są używane do rejestrowania zdarzeń.
- Ponieważ sieć może generować bardzo dużą liczbę wpisów w logach, oprogramowanie menadżera logów jest zatrudniane do ułatwienia monitorowania logów.
- Zarządzanie informacjami o bezpieczeństwie i zarządzanie zdarzeniami (SIEM)
- Przypisywanie, edycja i rejestrowanie zadań ticketów odbywa się za pomocą systemu zarządzania ticketami. Alerty bezpieczeństwa są często przypisywane analitykom za pośrednictwem systemu ticketingowego.
man
(skrót od manual). Na przykład man ls
dostarcza dokumentację polecenia ls
z podręcznika użytkownika.Ponieważ polecenia są programami przechowywanymi na dysku, gdy użytkownik wpisze polecenie, powłoka musi je znaleźć na dysku, zanim będzie mogła je wykonać. Powłoka będzie szukać poleceń wpisanych przez użytkownika w określonych katalogach i próbować je wykonać. Lista katalogów sprawdzanych przez powłokę nazywana jest ścieżką (path
). Ścieżka zawiera wiele katalogów powszechnie używanych do przechowywania poleceń. Jeśli polecenie nie znajduje się w ścieżce, użytkownik musi określić jego lokalizację, w przeciwnym razie powłoka nie będzie mogła go znaleźć. Użytkownicy mogą łatwo dodawać katalogi do ścieżki, jeśli jest to konieczne.
Podstawowe polecenia Linuxa:
mv
- Przenosi lub zmienia nazwy plików i katalogów.chmod
- Modyfikuje uprawnienia plików.chown
- Zmienia właściciela pliku.dd
- Kopiuje dane z wejścia na wyjście.pwd
- Wyświetla nazwę bieżącego katalogu.ps
- Wyświetla listę procesów aktualnie działających w systemie.su
- Symuluje logowanie jako inny użytkownik lub staje się superużytkownikiem.sudo
- Uruchamia polecenie jako superużytkownik domyślnie lub inny nazwany użytkownik.grep
- Używane do wyszukiwania określonych ciągów znaków w pliku lub innych wyjściach poleceń. Aby przeszukać wyjście poprzedniego polecenia,grep
musi być przekierowane na koniec poprzedniego polecenia.ifconfig
- Używane do wyświetlania lub konfigurowania informacji związanych z kartą sieciową. Jeśli wydane bez parametrów,ifconfig
wyświetli bieżącą konfigurację karty(-t) sieciowej(-ych). Uwaga: Mimo że nadal jest powszechnie używane, to polecenie jest przestarzałe. Zamiast tego użyjip address
.apt-get
- Używane do instalowania, konfigurowania i usuwania pakietów w Debianie i jego pochodnych. Uwaga:apt-get
jest przyjaznym dla użytkownika interfejsem wiersza poleceń dladpkg
, menedżera pakietów Debiana. Kombinacjadpkg
iapt-get
jest domyślnym systemem zarządzania pakietami we wszystkich pochodnych Linuxa Debiana, w tym Raspbianie.iwconfig
- Używane do wyświetlania lub konfigurowania informacji związanych z bezprzewodową kartą sieciową. Podobnie doifconfig
,iwconfig
wyświetli informacje bezprzewodowe, gdy wydane bez parametrów.shutdown
- Wyłącza system,shutdown
może być polecane do wykonania wielu zadań związanych z wyłączaniem, w tym restartu, zatrzymania, uśpienia lub wylogowania wszystkich obecnie podłączonych użytkowników.passwd
- Używane do zmiany hasła. Jeśli nie podano parametrów,passwd
zmienia hasło dla bieżącego użytkownika.cat
- Używane do wyświetlania zawartości pliku i oczekuje nazwy pliku jako parametru. Poleceniecat
jest zwykle używane na plikach tekstowych.man
- Używane do wyświetlania dokumentacji dla konkretnego polecenia.
ls
- Wyświetla pliki wewnątrz katalogu.cd
- Zmienia bieżący katalog.mkdir
- Tworzy katalog w bieżącym katalogu.cp
- Kopiuje pliki ze źródła do miejsca docelowego.mv
- Przenosi pliki do innego katalogu.rm
- Usuwa pliki.grep
- Wyszukuje określone ciągi znaków w pliku lub innych wyjściach poleceń.cat
- Wyświetla zawartość pliku i oczekuje nazwy pliku jako parametru.
Użytkownicy z odpowiednimi poziomami uprawnień mogą używać edytorów tekstu do zmiany zawartości plików konfiguracyjnych. Po dokonaniu zmian plik jest zapisywany i może być używany przez powiązaną usługę lub aplikację. Użytkownicy mogą dokładnie określić, jak chcą, aby dana aplikacja lub usługa się zachowywała. Po uruchomieniu usługi i aplikacje sprawdzają zawartość określonych plików konfiguracyjnych, aby odpowiednio dostosować swoje zachowanie.
Przykładowo plik hosts w Linuxie zawiera statyczne mapowania adresów IP hostów na nazwy. Nazwy służą jako skróty, które pozwalają łączyć się z innymi urządzeniami za pomocą nazwy zamiast adresu IP. Tylko superuser może zmienić plik hosta.
10. Serwery to komputery z zainstalowanym oprogramowaniem, które umożliwia świadczenie usług klientom w sieci. Istnieje wiele rodzajów usług. Niektóre dostarczają zewnętrzne zasoby, takie jak pliki, wiadomości e-mail lub strony internetowe na żądanie klientów. Inne usługi wykonują zadania konserwacyjne, takie jak zarządzanie logami, zarządzanie pamięcią, skanowanie dysków i inne. Każda usługa wymaga oddzielnego oprogramowania serwerowego
11. Aby komputer mógł być serwerem dla wielu usług, używane są porty. Port to zarezerwowany zasób sieciowy używany przez usługę. Mówi się, że serwer “nasłuchuje” na porcie, gdy został do niego przypisany.
Chociaż administrator może zdecydować, który port użyć z daną usługą, wiele klientów jest domyślnie skonfigurowanych do korzystania z określonego portu. Powszechną praktyką jest pozostawienie usługi działającej na jej domyślnym porcie. Poniższa tabela zawiera kilka powszechnie używanych portów i ich usług. Są one również nazywane “dobrze znanymi portami”.
- 20/21 - Protokół transferu plików (FTP)
- 22 - Secure Shell (SSH)
- 23 - Usługa zdalnego logowania Telnet
- 25 - Protokół prostego transferu poczty (SMTP)
- 53 - System nazw domenowych (DNS)
- 67/68 - Protokół dynamicznej konfiguracji hosta (DHCP)
- 69 - Trywialny protokół transferu plików (TFTP)
- 80 - Protokół transferu hipertekstu (HTTP)
- 110 - Protokół pocztowy wersji 3 (POP3)
- 123 - Protokół czasu sieciowego (NTP)
- 143 - Protokół dostępu do wiadomości internetowych (IMAP)
- 161/162 - Prosty protokół zarządzania siecią (SNMP)
- 443 - HTTP Secure (HTTPS)
Nginx jest lekkim serwerem internetowym dla systemu Linux.
- Serwer nasłuchuje na porcie 80.
- Domena serwera to example.com.
- Lokalizacja zasobów dla ścieżki / to /var/www/html, a plik index.html jest używany jako strona główna.
- Lokalizacja zasobów dla ścieżki /images/ to /var/www/images/.
- driftfile określa lokalizację pliku, który przechowuje informacje o błędzie dryfu zegara.
- server wskazuje serwery NTP, z których klient ma synchronizować czas.
- restrict definiuje poziom dostępu do serwera NTP dla innych komputerów.
- fudge pozwala na ręczne ustawienie parametrów dla serwera czasu.
- RULE_PATH, SO_RULE_PATH i PREPROC_RULE_PATH to zmienne określające ścieżki do różnych zestawów reguł.
- include wskazuje pliki, które mają być załączone do konfiguracji.
- output określa format i lokalizację, gdzie alertów będą zapisywane.
- ipvar definiuje zmienne IP dla sieci domowej (HOME_NET) i zewnętrznej (EXTERNAL_NET).
- preprocessor konfiguruje różne preprocessory, które analizują ruch sieciowy przed przetworzeniem przez reguły Snort.
W zależności od dystrybucji Linuxa, wiele usług jest domyślnie włączonych. Niektóre z tych funkcji są włączone z historycznych powodów, ale nie są już wymagane. Zatrzymanie takich usług i zapewnienie, że nie będą się automatycznie uruchamiać podczas startu systemu, jest kolejną techniką zabezpieczania urządzenia.
Aktualizacje systemu operacyjnego są również niezwykle ważne dla utrzymania zabezpieczonego urządzenia. Każdego dnia odkrywane są nowe podatności. Twórcy systemów operacyjnych regularnie tworzą i wydają poprawki i łatki. Komputer aktualny jest mniej narażony na kompromitację.
Najlepsze praktyki zabezpieczania urządzeń:
- Zapewnienie fizycznego bezpieczeństwa
- Minimalizacja zainstalowanych pakietów
- Wyłączanie nieużywanych usług
- Używanie SSH i wyłączanie logowania konta root przez SSH
- Aktualizacja systemu
- Wyłączanie automatycznego wykrywania USB
- Wymuszanie silnych haseł
- Wymuszanie okresowych zmian haseł
- Zapobieganie użytkownikom przed ponownym używaniem starych haseł
Istnieje wiele innych kroków, które często zależą od konkretnej usługi lub aplikacji.
- Logi aplikacji
- Logi zdarzeń
- Logi usług
- Logi systemowe
- /var/log/messages - Ten katalog zawiera ogólne logi aktywności komputera. Jest głównie używany do przechowywania informacyjnych i niekrytycznych komunikatów systemowych. W komputerach opartych na Debianie, katalog /var/log/syslog pełni tę samą funkcję.
- /var/log/auth.log - Ten plik przechowuje wszystkie zdarzenia związane z uwierzytelnianiem w komputerach Debian i Ubuntu. Wszystko, co dotyczy mechanizmu autoryzacji użytkownika, można znaleźć w tym pliku.
- /var/log/secure - Ten katalog jest używany przez komputery RedHat i CentOS zamiast /var/log/auth.log. Śledzi również logowania sudo, logowania SSH i inne błędy zarejestrowane przez SSSD.
- /var/log/boot.log - Ten plik przechowuje informacje związane z uruchamianiem i komunikaty zarejestrowane podczas procesu startowego komputera.
- /var/log/dmesg - Ten katalog zawiera komunikaty bufora pierścieniowego jądra. Informacje związane z urządzeniami sprzętowymi i ich sterownikami są tutaj rejestrowane. Jest to bardzo ważne, ponieważ ze względu na ich niskopoziomowy charakter, systemy logowania takie jak syslog nie działają, gdy te zdarzenia mają miejsce i dlatego często są niedostępne dla administratora w czasie rzeczywistym.
- /var/log/kern.log - Ten plik zawiera informacje zarejestrowane przez jądro.
- /var/log/cron Cron to usługa używana do planowania zautomatyzowanych zadań w Linuxie i ten katalog przechowuje jego zdarzenia. Za każdym razem, gdy uruchamiane jest zaplanowane zadanie (nazywane również zadaniem cron), wszystkie jego istotne informacje, w tym status wykonania i komunikaty o błędach, są tutaj przechowywane.
- /var/log/mysqld.log lub /var/log/mysql.log - To jest plik logów MySQL. Wszystkie komunikaty debugowania, niepowodzenia i sukcesu związane z procesem mysqld i demonem mysqld_safe są tutaj rejestrowane. Dystrybucje Linuxa RedHat, CentOS i Fedora przechowują logi MySQL w pliku /var/log/mysqld.log, podczas gdy Debian i Ubuntu utrzymują log w pliku /var/log/mysql.log.
- ext2 jest nadal systemem plików wybieranym dla nośników pamięci flash, ponieważ brak dziennika zwiększa wydajność i minimalizuje liczbę zapisów.
- Z uwagi na fakt, że urządzenia pamięci flash mają ograniczoną liczbę operacji zapisu, minimalizacja operacji zapisu zwiększa żywotność urządzenia.
- Jednak współczesne jądra Linuxa obsługują również ext4, jeszcze nowocześniejszy system plików, o lepszej wydajności, który może również działać w trybie bez dziennika.
- ext3 (trzeci rozszerzony system plików)
- Dziennik, główna funkcja dodana do ext3, to technika używana do minimalizacji ryzyka uszkodzenia systemu plików w przypadku nagłego zaniku zasilania.
- System plików prowadzi dziennik (lub log) wszystkich zmian, które mają zostać wprowadzone do systemu plików.
- Jeśli komputer ulegnie awarii przed zakończeniem zmiany, dziennik może być użyty do przywrócenia lub poprawienia ewentualnych problemów stworzonych przez awarię.
- Maksymalny rozmiar pliku w systemach plików ext3 wynosi 32 TB.
- Zaprojektowany jako następca ext3, ext4 został stworzony na podstawie serii rozszerzeń do ext3.
- Podczas gdy rozszerzenia poprawiają wydajność ext3 i zwiększają obsługiwane rozmiary plików, deweloperzy jądra Linuxa byli zaniepokojeni problemami ze stabilnością i byli przeciwni dodawaniu rozszerzeń do stabilnego ext3.
- Projekt ext3 został podzielony na dwa; jeden zachowany jako ext3 i jego normalny rozwój, a drugi, nazwany ext4, zawierał wspomniane rozszerzenia.
- NFS to system plików oparty na sieci, umożliwiający dostęp do plików przez sieć.
- Z punktu widzenia użytkownika nie ma różnicy między dostępem do pliku przechowywanego lokalnie a na innym komputerze w sieci.
- NFS to otwarty standard, który pozwala każdemu na jego implementację.
- CDFS został stworzony specjalnie dla nośników dysków optycznych.
- System plików swap jest używany przez Linuxa, gdy zabraknie mu RAM.
- Technicznie rzecz biorąc, jest to partycja swap, która nie ma określonego systemu plików, ale jest istotna dla dyskusji o systemie plików.
- Gdy to się zdarzy, jądro przenosi nieaktywną zawartość RAM do partycji swap na dysku.
- Chociaż partycje swap (znane również jako przestrzeń swap) mogą być przydatne dla komputerów Linuxa z ograniczoną ilością pamięci, nie powinny być traktowane jako główne rozwiązanie.
- Partycja swap jest przechowywana na dysku, który ma znacznie niższe prędkości dostępu niż RAM.
- System plików używany przez Apple w swoich komputerach Macintosh.
- Jądro Linuxa zawiera moduł do montowania HFS+ do operacji odczytu i zapisu.
- Zaktualizowany system plików, który jest używany przez urządzenia Apple. Zapewnia silne szyfrowanie i jest zoptymalizowany dla flash i dysków SSD.
- Znajdujący się w pierwszym sektorze skomputeryzowanego komputera, MBR przechowuje wszystkie informacje o sposobie, w jaki zorganizowany jest system plików.
- MBR szybko przekazuje kontrolę funkcji ładowania, która ładuje system operacyjny.
apt-get install
, apt-get update
i apt-get upgrade
są używane w systemach Linux opartych na Debianie, takich jak Ubuntu, do zarządzania pakietami. apt-get update
: Używane do pobrania listy pakietów z repozytorium pakietów i aktualizacji lokalnej bazy danych pakietów. To polecenie nie aktualizuje samego oprogramowania, ale informuje system o dostępnych aktualizacjach.apt-get upgrade
: Używane do aktualizacji wszystkich obecnie zainstalowanych pakietów do ich najnowszych wersji. Zwykle jest używane poapt-get update
.apt-get install
: Używane do instalacji nowych pakietów. Możesz podać nazwę pakietu, który chcesz zainstalować jako argument dla tego polecenia.
Przykładowe użycie tych poleceń:
sudo apt-get update # aktualizuje listę dostępnych pakietówsudo apt-get upgrade # aktualizuje wszystkie zainstalowane pakietysudo apt-get install firefox # instaluje przeglądarkę Firefox
Należy posiadać uprawnienia administratora (sudo) do wykonania tych poleceń. Zawsze jest dobrą praktyką uruchamiać apt-get update
przed apt-get upgrade
lub apt-get install
, aby upewnić się, że instalujesz najnowsze wersje pakietów.
21. Proces to uruchomiona instancja programu komputerowego. Systemy operacyjne wielozadaniowe mogą jednocześnie wykonywać wiele procesów.
Forking (rozwidlenie) to metoda, której jądro używa, aby pozwolić procesowi na stworzenie swojej kopii. Procesy potrzebują sposobu na tworzenie nowych procesów w systemach operacyjnych wielozadaniowych. Operacja fork jest jedynym sposobem na to w Linuxie.
Rozwidlenie jest ważne z wielu powodów. Jednym z nich jest skalowalność procesów. Dobrym przykładem jest popularny serwer sieciowy Apache. Rozwidlając się, Apache jest w stanie obsłużyć dużą liczbę żądań przy mniejszym zużyciu zasobów systemowych niż serwer oparty na pojedynczym procesie.
Gdy proces wywołuje fork, proces wywołujący staje się procesem nadrzędnym, a nowo utworzony proces jest nazywany jego procesem potomnym. Po fork, procesy są do pewnego stopnia niezależnymi procesami; mają różne identyfikatory procesów, ale wykonują ten sam kod programu.
Polecenia, które są używane do zarządzania procesami.
- ps - używane do wyświetlania procesów działających na komputerze w momencie jego wywołania. Może być skonfigurowane do wyświetlania działających procesów, które należą do bieżącego użytkownika lub innych użytkowników. Podczas wyświetlania procesów nie są wymagane uprawnienia roota, ale zabijanie lub modyfikowanie procesów innych użytkowników już tak.
- top - używane do wyświetlania działających procesów, ale w przeciwieństwie do ps, top dynamicznie wyświetla działające procesy.
- kill - używane do modyfikacji zachowania konkretnego procesu. W zależności od parametrów, kill usunie, zrestartuje lub zatrzyma proces. W wielu przypadkach użytkownik uruchomi ps lub top przed uruchomieniem kill. Robi się to, aby użytkownik mógł dowiedzieć się o PID procesu przed uruchomieniem kill.
22. Złośliwe oprogramowanie Linux obejmuje wirusy, konie trojańskie, robaki i inne typy złośliwego oprogramowania, które mogą wpływać na system operacyjny. Ze względu na szereg elementów konstrukcyjnych, takich jak struktura systemu plików, uprawnienia do plików i ograniczenia kont użytkowników, systemy operacyjne Linux są ogólnie uważane za lepiej chronione przed złośliwym oprogramowaniem.
Chociaż można argumentować, że Linux jest lepiej chroniony, nie jest odporny na złośliwe oprogramowanie. W Linuxie znaleziono i wykorzystano wiele luk bezpieczeństwa. Zasięg tych luk obejmuje od oprogramowania serwerowego po luki w jądrze. Atakujący są w stanie wykorzystać te luki i skompromitować cel. Ponieważ Linux jest oprogramowaniem open source, poprawki i łatki są często dostępne w ciągu kilku godzin od odkrycia takich problemów.
Jeśli zostanie wykonany złośliwy program, spowoduje on szkody, niezależnie od platformy. Częstym wektorem ataku na Linuxa są jego usługi i procesy. Luki są często znajdowane w kodzie serwera i procesu działającym na komputerach podłączonych do sieci. Na przykład przestarzała wersja serwera internetowego Apache mogłaby zawierać niezałataną lukę, którą może wykorzystać atakujący. Atakujący często sondują otwarte porty, aby ocenić wersję i charakter serwera działającego na tym porcie. Mając te informacje, atakujący mogą zbadać, czy są znane problemy z tą konkretną wersją tego konkretnego serwera, aby wspomóc atak. Jak w przypadku większości luk, utrzymanie komputera zaktualizowanego i zamknięcie wszelkich nieużywanych usług i portów to dobry sposób na zmniejszenie możliwości ataku na komputerze z Linuxem.
23. Rootkit to rodzaj złośliwego oprogramowania zaprojektowanego w celu zwiększenia uprawnień nieautoryzowanego użytkownika lub udzielenia dostępu do części oprogramowania, które zazwyczaj nie powinny być dozwolone. Rootkity są również często używane do zabezpieczenia tzw. tylnych drzwi do skompromitowanego komputera.
Instalacja rootkita może być zautomatyzowana (wykonywana jako część infekcji) lub atakujący może ręcznie zainstalować go po skompromitowaniu komputera. Rootkit jest destrukcyjny, ponieważ zmienia kod jądra i jego moduły, zmieniając najbardziej podstawowe operacje samego systemu operacyjnego. Z tak głębokim poziomem kompromitacji, rootkity mogą ukryć włamanie, usunąć ślady instalacji, a nawet manipulować narzędziami do rozwiązywania problemów i diagnostyki, tak aby ich wyniki teraz ukrywały obecność rootkita. Chociaż kilka luk bezpieczeństwa w historii Linuxa pozwoliło na instalację rootkita za pomocą zwykłych kont użytkowników, zdecydowana większość kompromitacji rootkita wymaga dostępu roota lub administratora.
Ponieważ sama natura komputera jest skompromitowana, wykrycie rootkita może być bardzo trudne. Typowe metody wykrywania często obejmują uruchomienie komputera z zaufanych mediów, takich jak diagnostyczny system operacyjny live CD. Skompromitowany dysk jest montowany, a z zestawu narzędzi zaufanego systemu, można uruchomić zaufane narzędzia diagnostyczne do inspekcji skompromitowanego systemu plików. Metody inspekcji obejmują metody oparte na zachowaniu, skanowanie sygnatur, skanowanie różnic i analizę zrzutu pamięci.
Usunięcie rootkita może być skomplikowane i często niemożliwe, zwłaszcza w przypadkach, gdy rootkit znajduje się w jądrze; reinstalacja systemu operacyjnego jest zazwyczaj jedynym prawdziwym rozwiązaniem problemu. Rootkity firmware zazwyczaj wymagają wymiany sprzętu.
chkrootkit to popularny program oparty na Linuxie, zaprojektowany do sprawdzania komputera pod kątem znanych rootkitów. Jest to skrypt powłoki, który używa powszechnych narzędzi Linuxa, takich jak strings i grep, do porównywania sygnatur podstawowych programów. Przeszukuje również system plików /proc w poszukiwaniu nieścisłości, porównując znalezione tam sygnatury z wynikiem ps.
Pomimo że jest pomocny, należy pamiętać, że programy do sprawdzania rootkitów nie są w 100% niezawodne.
np. sudo ./chkrootkit
24. Chociaż narzędzia linii poleceń są zazwyczaj zaprojektowane do wykonywania konkretnego, dobrze zdefiniowanego zadania, wiele poleceń można łączyć w celu wykonywania bardziej złożonych zadań za pomocą techniki zwanej potokiem (piping). Potok polega na łączeniu poleceń, kierując wyjście jednego polecenia na wejście innego.
Na przykład, polecenie ls służy do wyświetlania wszystkich plików i katalogów danego katalogu. Polecenie grep przeszukuje plik lub tekst w poszukiwaniu określonego ciągu znaków. Jeśli ciąg zostanie znaleziony, grep wyświetla całą zawartość folderu, w którym znaleziono ciąg.
Dwa polecenia, ls i grep, można połączyć w potok, aby odfiltrować wyjście ls. Jest to pokazane na wyjściu polecenia ls -l | grep host i polecenia ls -l | grep file.