W dzisiejszym dynamicznym świecie IT, gdzie cyberzagrożenia rosną w zastraszającym tempie, niezbędne jest posiadanie narzędzi umożliwiających efektywne zarządzanie bezpieczeństwem systemów. Jednym z takich narzędzi jest Lynis, wszechstronny i potężny skaner bezpieczeństwa dla systemów Linux, Unix i macOS. W tym artykule pokażę wam, czym jest Lynis, jakie są jego główne funkcje oraz jak skutecznie go wykorzystać w systemie. Na potrzeby tego artykułu wykorzystamy Debiana w najnowszej wersji 12-stej.
Lynis – co to jest
Lynis to otwartoźródłowe narzędzie do audytu bezpieczeństwa, rozwijane przez firmę CISOfy. Jego głównym celem jest ocena konfiguracji systemów operacyjnych, aplikacji oraz ich zabezpieczeń, aby zidentyfikować potencjalne luki i obszary wymagające poprawy. Oferując szerokie spektrum funkcji, pomaga on w ocenie i poprawie bezpieczeństwa infrastruktury IT. Narzędzie to przeprowadza szczegółowe analizy konfiguracji systemu, uprawnień, polityk bezpieczeństwa oraz dostępnych usług. Identyfikuje potencjalne luki i obszary wymagające poprawy. Jego zalety obejmują łatwość instalacji i użytkowania, możliwość dostosowania do specyficznych potrzeb użytkownika oraz wsparcie dla różnych standardów bezpieczeństwa takich jak ISO 27001, PCI-DSS czy HIPAA. Lynis umożliwia także testy penetracyjne, monitorowanie integralności systemu oraz generowanie szczegółowych raportów z rekomendacjami dotyczącymi poprawy bezpieczeństwa. Dzięki możliwości integracji z systemami SIEM oraz automatyzacji audytów, Lynis staje się nieocenionym narzędziem dla administratorów systemów oraz specjalistów ds. bezpieczeństwa, którzy pragną skutecznie chronić swoje środowisko IT przed zagrożeniami.
Instalacja w systemie i uruchomienie podstawowego audytu
apt install lynis -y
lynis audit system
To polecenie uruchomi pełny audyt systemu, sprawdzając konfigurację, uprawnienia, usługi i inne kluczowe aspekty bezpieczeństwa. Po zakończeniu audytu Lynis wygeneruje szczegółowy raport zawierający wykryte problemy oraz rekomendacje.
Poniżej kilka przykładowych screenów z działania aplikacji oraz wyglądu. To o czym już wcześniej przy okazji kilku artykułów wspominałem to fakt, że samo zainstalowanie najnowszej wersji systemu operacyjnego, a także utrzymywanie jego aktualnej wersji wraz z aktualnymi wersjami pakietów to zdecydowanie za mało. Na potrzeby tego artykułu zainstalowałem zupełnie czysty, goły system z jakimiś usługami postawowymi jak apache czy php czy dns. Czy są one w pełni bezpieczne na domyślnych ustawieniach? Spójrzmy na zrzuty i poniżej na komentarz.
Jak widać domyślne ustawienia nigdy nie są w pełni zadowalające i choć nie widać na pierwszy rzut oka krytycznych dziur to jednak same ustawienia poszczególnych aplikacji zwiększają ryzyko.
W całości mamy tu zatem 49 zaleceń do poprawki. Przypomnę tylko, że jest to goły system z apache, php i dns.
Na pocieszenie można dodać, że wszystkie wykryte luki bezpieczeństwa Lynis opisał dość dobrze w swojej dokumentacji zatem po przejściu na ich stronę z podanego linka dowiemy się jak poprawić daną lukę bezpieczeństwa.
Przykładowo:
Konfiguracja personalizowanych audytów
Plik konfiguracyjny /etc/lynis/default.prf jest centralnym miejscem, w którym można dostosować działanie skanera do specyficznych potrzeb użytkownika lub organizacji. Konfiguracja audytów za pomocą tego pliku pozwala na precyzyjne kontrolowanie, które testy są uruchamiane, jakie są poziomy szczegółowości raportów oraz wiele innych parametrów. Poniżej postaram się omówić najważniejsze opcje konfiguracyjne oraz zalecenia dotyczące ich ustawień.
Przykładowa konfiguracja w pliku /etc/lynis/default.prf
# Skip specific tests
skip-test=TEST-1234,TEST-5678
# Log file location
log-file=/var/log/lynis.log
# Verbose mode (1 to enable, 0 to disable)
verbose=1
# Color output (1 to enable, 0 to disable)
color=1
# Cronjob mode (1 to enable, 0 to disable)
cronjob=1
# Upload results to a remote server
upload-url=https://server.domena.pl/siem/audits
Samo narzędzie jest niezwykle intuicyjne I skonfigurowane od razu do działania tak, aby wykonać wszystkie testy. Czasem jednak jakiegoś testu przeprowadzać nie chcemy, wtedy możemy go właśnie w tym pliku wyłączyć. Jednak jak znacie mnie z władców sieci, zalecam zawsze aby jednak testy wykonywać „na maksa”.
Najważniejsze opcje konfiguracyjne
skip-test:
Opcja, która pozwala na pominięcie określonych testów podczas audytu. Może być użyteczna, gdy wiemy, że pewne testy nie mają zastosowania do naszego środowiska lub chcemy zaoszczędzić czas. Przykładowo, aby pominąć testy o identyfikatorach TEST-1234 i TEST-5678:
skip-test=TEST-1234,TEST-5678
log-file
Umożliwia z kolei określenie pliku, do którego mają być zapisywane logi z audytu. Domyślnie Lynis zapisuje logi w /var/log/lynis.log, ale możemy to zmienić:
log-file=/ścieżka/do/pliku/lynis.log
verbose
Włącza tryb szczegółowego logowania, co jest przydatne podczas debugowania lub gdy chcemy uzyskać bardziej szczegółowe informacje o przebiegu audytu. Ustawienie tej opcji na 1 włącza tryb szczegółowy. Użycie opcji verbose oraz log-file pozwala na dokładne śledzenie przebiegu audytu i zachowanie pełnej historii zmian oraz problemów, które mogą być później analizowane.
verbose=1
color
Określa, czy wyniki audytu mają być wyświetlane w kolorze. Ustawienie tej opcji na 1 włącza kolorowe wyjście, co może ułatwić czytelność raportów. Jest to szczególnie pomocne jak można zajrzeć na powyższe screeny, aby od razu rzucić nasz wzrok na problemy.
color=1
cronjob
Umożliwia uruchamianie Lynis w trybie cron, co jest przydatne do automatyzacji regularnych audytów. Włączenie tej opcji powoduje, że Lynis działa w trybie bez interakcji z użytkownikiem. Ustawienie opcji cronjob i skonfigurowanie odpowiedniego zadania cron pozwala na regularne przeprowadzanie audytów. Dzięki temu mamy pewność, że system jest regularnie sprawdzany pod kątem nowych zagrożeń.
cronjob=1
upload
Pozwala na automatyczne przesyłanie wyników audytu na zewnętrzny serwer. Może to być użyteczne w przypadku integracji z systemami centralnego zarządzania logami lub systemami SIEM.
upload-url=https://server.domena.pl/siem/audits
Automatyzacja wykonywania testów
Crontab
Jak już wiemy, narzędzie to może działać z crona, aby wykonywać automatyczne testy. Jak zaplanować takie zadanie w crontabie?
Na przykład, niech testy uruchamiają się każdej nocy o północy.
0 0 * * * /usr/bin/lynis audit system –cronjob > /var/log/lynis/cron_audit.log 2>&1
Integracja z Ansible
Z pomocą przyjdzie nam także moduł Ansible, o którym już pisałem na władcach. Przy pomocy prostego playbooka możemy zautomatyzować wykonywanie testów na wielu różnych serwerach.
Przykład playbooka:
—
– hosts: all
become: yes
tasks:
– name: Install Lynis
apt:
name: lynis
state: present
– name: Run Lynis audit
command: lynis audit system
register: lynis_output
– name: Display Lynis audit results
debug:
var: lynis_output.stdout
Raportowanie
Poza standardowymi opcjami ogranicza właściwie nasz tylko nasza kreatywność bowiem istnieją sposoby dzięki, którym możemy skonwertować do postaci HTML raporty Lynisa.
Skrypt do konwersji raportów:
#!/bin/bash
lynis audit system –cronjob > /var/log/lynis/cron_audit.log 2>&1
cat /var/log/lynis/cron_audit.log | ansi2html > /var/log/lynis/cron_audit.html
Co da nam efekt raportu Lynisa do przeglądarki.
Niestety w standardowym przypadku nie mamy kolorowanego raportu, ale I to da się zmienić I wygenerować raport tak, aby zawierał kolory.
Potrzebne nam do tego narzędzie:
apt install bsdutils -y
Odpowiednio zmodyfikowany skrypt:
script -c „lynis audit system” /var/log/lynis/lynis_audit_colored.log
cat /var/log/lynis/lynis_audit_colored.log | ansi2html > /var/log/lynis/cron_audit_colored.html
Efektem będzie kolorowy raport html.
… [Trackback]
[…] Information on that Topic: wladcysieci.pl/2024/06/14/audyt-bezpieczenstwa-systemu-linux-przy-pomocy-darmowego-narzedzia-lynis/ […]