Licho nie śpi – cz. 2

Dostęp do Internetu daje złudne poczucie, że jesteśmy jedną wielką rodziną i że wszyscy internauci są dla siebie życzliwi. W rzeczywistości jednak należy uważać na intruzów, którzy wykorzystują Sieć, nie kierując się szczytnymi ideami.

Cel, jaki przyświeca zabezpieczaniu komputerów przed atakami oraz dostępem niepowołanych osób, jest oczywisty: dane zgromadzone w serwerach są w większości przypadków cenniejsze niż sprzęt, na którym się one znajdują. W Internecie używany jest protokół TCP/IP, który nie umożliwia poprawy bezpieczeństwa bazujących na nim sieci lokalnych poprzez autoryzację czy szyfrowanie. Aby zastosować takie mechanizmy na przykład na serwerze sieci osiedlowej (patrz: CHIP 2/2000, s. 186), należy wykorzystać w systemie dodatkowe oprogramowanie.

Konfiguracja Linuksa poprawiająca bezpieczeństwo w sieci lokalnej była opisana w CHIP-ie 9/2000 na stronie 140. Niniejszy artykuł przedstawia zagrożenia (a także sposoby ich unikania) związane z pracą tego systemu w Internecie. Wszystkie pliki konfiguracyjne oraz ustawienia dotyczą dystrybucji Debian 2.1r4, w innych edycjach Linuksa mogą występować niewielkie rozbieżności.

Jak wykryć atak

Administrator systemu najczęściej nie jest świadomy, iż jego serwer padł ofiarą ataku włamywacza (ang. hacker). Jeżeli wszystko pracuje w miarę poprawnie i nic złego się nie dzieje, to włamywacz może działać w systemie bardzo długo, niejako “pod bokiem” administratora. Jeżeli intruz dostanie się do systemu, to zwykle zmodyfikuje pliki konfiguracyjne oraz zainstaluje bądź zamieni niektóre programy. W celu sprawdzanie systemu można użyć narzędzia Tripwire opisanego w poprzednim numerze. Aby zabezpieczyć się przed włamaniami, należy bardzo regularnie przeglądać logi systemowe generowane przez demona syslogd .

Narzędzia takie jak PortSCanNER, opracowane przez grupę SkAtAn, pozwalają leniwym włamywaczom na poszukiwanie systemu podatnego na odpowiedni atak i wykorzystanie posiadanego przez nich exploita. Jeżeli będziemy mieć zawsze aktualne oprogramowanie, zagwarantujemy naszym danym większe bezpieczeństwo.

Jeżeli w Linuksie używana jest powłoka bash, to wszystkie komendy wywoływane w systemie przez włamywacza będą zapamiętane w pliku .bash_history w katalogu domowym użytkownika, z którego konta intruz korzystał. Włamywacz może czasami zapomnieć o “wyczyszczeniu” tego zbioru i wtedy mamy możliwość sprawdzenia, jakie komendy wydawał. Dzięki temu dowiemy się, które pliki edytował, jakie programy instalował itp. Brak pliku .bash_history może świadczyć o tym, iż ktoś zacierał ślady za sobą, w związku z czym powinniśmy przyjrzeć się bliżej systemowi. Włamywacz może również zmienić zawartość pliku z historią komend, aby zmylić nasz trop. Kopia systemu operacyjnego, zapisana na taśmie lub płycie CD-R, powinna pomóc w odzyskaniu prawidłowej konfiguracji systemu.

Haker tworzy czasami konto w systemie, aby mieć do niego dostęp w późniejszym czasie. Korzystając z konta zwykłego użytkownika, włamywacz ma ograniczone możliwości, ponieważ użytkownik może po prostu zmienić hasło i wtedy straci (przynajmniej na jakiś czas) uprawnienia umożliwiające mu działanie na szkodę serwera. Należy szczególnie uważać, aby intruz nie utworzył w naszym systemie konta z uprawnieniami użytkownika root. Konta w systemie określone są poprzez wpisy w pliku /etc/passwd. Każda linia tego zbioru zawiera kilka sekcji oddzielonych znakiem dwukropka. Są to po kolei: login użytkownika, opcjonalnie szyfrowane hasło, identyfikator użytkownika (UID), identyfikator grupy, do której należy (GID), nazwa użytkownika, katalog domowy użytkownika oraz powłoka, jakiej będzie używał. Jeżeli w pliku /etc/passwd stałe UID (User ID) oraz GID (Group ID) są równe zeru, znaczy to, że posiadacz konta ma uprawnienia administratora. Niewinnie wyglądająca linia binary::0:0:binary:/:/bin/bash świadczy o tym, że w systemie istnieje konto o nazwie binary z uprawnieniami roota, a na dodatek dostęp do niego nie wymaga podania hasła, gdyż jest ono puste (w miejscu gdzie powinno być zaszyfrowane hasło lub wskazanie na plik /etc/shadow, nie ma żadnego wpisu)! Włamywacz często włącza programy przygotowane specjalnie po to, aby udostępniać zasoby systemu w inny sposób, niż przewiduje administrator maszyny. Mogą to być programy startujące usługi sieciowe i stworzone po to, aby haker miał możliwość dostania się później do systemu. Aktualną listę takich usług można uzyskać, używając polecenia netstat -tavn. Komenda ta spowoduje wyświetlenie wszystkich aktywnych połączeń TCP oraz usług “nasłuchujących” na różnych portach. Użycie opcji

-c

(continous) w tym poleceniu sprawi, że informacje o połączeniach będą wyświetlane na bieżąco co sekundę. Analiza informacji wyświetlanych przez netstat może pomóc w ocenie działania usług sieciowych na naszym serwerze. Dodatkowe informacje o tej komendzie dostępne są w systemowej Pomocy po wydaniu polecenia man netstat .

Włamywacz nie musi dokonywać zmian w systemie natychmiast po włamaniu się do niego. Do wywoływania komend w późniejszym czasie może on wykorzystać demony atd (uruchamianie zadań w zadanym czasie) oraz cron (włączanie zadań okresowo, np. w określone dni, godziny lub minuty). Zadania lub procesy przygotowane do uruchomienia w przyszłości za pomocą demona atd można sprawdzić poleceniem atq. Aby usunąć jakiś proces, należy użyć komendy atrm. Zadania wywoływane poprzez demona cron są określone w pliku /etc/crontab. Trzeba zweryfikować jego zawartość, a także sprawdzić katalog /var/spool/cron/crontabs, zawierający pliki konfiguracyjne użytkowników systemu dla demona cron .

Info
Grupy dyskusyjne
Uwagi i komentarze do artykułu:
#
Pytania techniczne:
#
Grupy poświęcone bezpieczeństwu Linuksa:
comp.os.linux.security
comp.security.firewalls
pl.comp.security
pl.comp.os.linux.sieci
Internet
Narzędzia do ochrony serwerów
http://www.securityfocus.com/
http://linuxtoday.com/
http://www.securityportal.com/
http://www.insecure.com/tools.html
Polska strona underground
http://www.underground.org.pl/
Bezpieczeństwo inaczej
http://www.rootshell.com/
http://www.insecure.com/
Dokumentacja
Ipchains HowTo http://netfilter.filewatcher.org/ipchains/HOWTO.html
Firewall HowTohttp://sunsite.unc.edu/LDP/HOWTO/Firewall-HOWTO.html
Linux Administrator’s Security Guide http://www.securityportal.com/lasg/
IPSec
http://www.ietf.org/html.charters/ipsec-charter.html
W dziale Internet | Bezpieczeństwo Linuksa znajduje się specyfikacja RFC 2828 dotycząca bezpieczeństwa sieciowego oraz programy ułatwiające wykrycie i usunięcie usterek związanych z ochroną danych
Więcej:bezcatnews