Bezpieczeństwo Systemów Linux

securitybeztabu.pl 2 lat temu

Jak podnieść bezpieczeństwo systemu Gnu/Linux?

W tym artykule wyjaśnię na co powinniśmy zwrócić uwagę jeżeli chcemy aby nasz Linux był bardziej bezpieczny. Znajdziesz tutaj ogólne zasady, których wdrożenie pomoże Ci podnieść poziom bezpieczeństwa Twojego systemu lub serwera.

Bezpieczeństwo Linuxa podzielmy sobie na 3 kategorie:

  1. Uprawnienia użytkowników
  2. Usługi
  3. Monitoring

Jednak zanim przejdziemy do konkretów, musisz określić które dane/pliki powinny być według Ciebie pod ochroną.

Określ kto powinien mieć do nich dostęp, jaki ten dostęp powinien być (read, write, exec).

Wypisz sobie gdzie dokładnie te dane powinny być przechowywane.

Im więcej szczegółów znajdziesz, tym łatwiej będzie Ci zabezpieczyć system.

1. Uprawnienia użytkowników

Uprawnienia, jakie mają użytkownicy, to bardzo ważna kwestia, jeżeli chodzi o bezpieczeństwo systemu. Najłatwiej jest się o tym przekonać grając różnego rodzaju ctf-y lub robiąc maszynki. Eskalacja uprawnień przez wykorzystanie zaniedbania kontroli uprawnień użytkowników jest na porządku dziennym.

Co z tego, iż Kowalski nie ma uprawnień do wykonania danej operacji, skoro administrator systemu nie wpadł na pomysł, aby uniemożliwić mu podłączenie nieautoryzowanego urządzenia, na którym jakieś pliki „podnoszą” uprawnienia i teraz Kowalski ma dostęp do plików, do których normalnie nie ma dostępu?

– Wymagaj używania silnych haseł.

– Ogranicz możliwość instalacji innych programów oraz podłączenia nieautoryzowanych urządzeń.

-Sprawdź, czy użytkownicy (ci co nie powinni), mogą tworzyć set-UID oraz set-GID. Zwykły użytkownik nie powinien mieć takich uprawnień.

-Jako administrator systemu miej oko na katalog /usr, szczególnie /usr/sbin ponieważ jest on powiązany z uprawnieniami roota. Te katalogi powinny być pod szczególną ochroną.

-Gdzie tylko jest taka opcja, powinieneś uniemożliwić logowanie się jako anonymous

-W niektórych przypadkach, warto zastanowić się nad konfiguracją PAM

-Korzystanie z LDAP będzie bardzo dobrym pomysłem. Zarządzanie autoryzacją użytkowników jest dzięki temu dużo prostsze.

2. Usługi

Exploitowanie usług jest czymś powszechnym zarówno w systemie Windows, jak i Linux.

Warto przywiązać szczególną uwagę właśnie na ten punkt w artykule, ponieważ większość ataków na systemy zaczyna się właśnie od sprawdzenia które usługi nasłuchują w systemie, a później szukanie podatności i próbowanie wykorzystania ich.

Nie warto ufać w 100% narzędziom dostępnym do ochrony usług, ponieważ co chwile pojawiają się nowe luki i czasami twórcy programów, które służą do ochrony, nie mają czasu zareagować tak gwałtownie jak trzeba.

Warto więc śledzić ostatnio wykryte podatności i sprawdzać, czy coś nas dotyczy.

-Utwórz odpowiednie reguły w firewall. Pamiętaj o ruchu przychodzącym jak i wychodzącym.

-Wyłącz niepotrzebne usługi/porty. Oprócz samej kwestii bezpieczeństwa, pomoże to zwiększyć wydajnosć.

-Używaj uwierzytelniania wieloskładnikowego gdzie tylko jest to możliwe, zwłaszcza jeżeli chodzi o SSH.

-Pomyśl nad ASLR (Address Space Layout Randomization). Ataki takie jak buffer overflow są dzięki temu znacznie trudniejsze.

-Użyj programu który ułatwi zarządzanie konfiguracją. Jedne z najpopularniejszych narzędzi to Ansible oraz Chef

3. Monitoring

Monitorowanie systemu jest istotną kwestią, jeżeli chodzi o bezpieczeństwo systemu.

Nie jesteśmy w stanie 24/7 sprawdzać, czy wszystko jest w porządku, dlatego warto odpowiednio skonfigurować przeznaczone do tego celu narzędzia.

Oprócz polegania jedynie na programach, powinno się sprawdzać manualnie co się dzieje w naszym systemie.

Nauczenie się narzędzi takich jak sed, awk, cut, jest krytyczną umiejętnością, jeżeli chodzi o wyszukiwanie potrzebnych informacji w dużych plikach.

Niektóre komendy wymagają znajomości wyrażeń regularnych (jedno z nielicznych miejsc, gdzie matematyka przydaje się w cybersec ).

Jednak poświęcenie kilku godzin w zamian za nabycie umiejętności szybkiej analizy plików zawierających 10000 linijek, to dobry układ.

-Technologia SIEM (Splunk) jest bardzo pomocna w monitorowaniu systemu.

-Zapoznaj się z Rsyslogd. Plik konfiguracyjny znajduje się w /etc/rsyslog.conf

-Auditd również jest bardzo pomocny w zarządzaniu logami

4. Inne

-Pamiętaj o tworzeniu i sprawdzaniu backupów co jakiś czas.

-Wrażliwe dane powinny być zaszyfrowane jeżeli tylko jest to możliwe.

-Wyposaż się w chociaż jedno narzędzie, które wykrywa rootkity.

Odnośniki:

– Jak zarządzać uprawnieniami w Linux https://linuxhandbook.com/linux-file-permissions/

– Informacje na temat LDAP https://www.tutorialspoint.com/db2/db2_ldap.htm

– Podstawy instalacji zapory sieciowej w Linux https://www.geeksforgeeks.org/how-to-setup-firewall-in-linux/

– Informacje na temat PAM https://en.wikipedia.org/wiki/Linux_PAM

– Jak włączyć/wyłączyć usługi w Linux https://fedingo.com/how-to-enable-disable-services-in-linux/

– Informacje na temat ASLR https://www.networkworld.com/article/3331199/what-does-aslr-do-for-linux.html

– Porównanie Ansible z Chef https://www.simplilearn.com/ansible-vs-chef-differences-article

– SIEM (Splunk) https://www.youtube.com/embed/ywKPTHJGGdg

– Informacje na temat Rsyslogd https://www.rsyslog.com/guides/ oraz https://www.man7.org/linux/man-pages/man8/rsyslogd.8.html

– Informacje na temat Auditd https://linuxhint.com/auditd_linux_tutorial/

– Wykrywanie rootkitów https://linuxhint.com/about_rootkits_detection_and_prevention/

– Informacje na temat monitorowania logów https://www.loggly.com/use-cases/linux-log-monitoring-guide-tools-tips-and-best-practices/

Idź do oryginalnego materiału