Najczęściej tuż po włamaniu do systemu, cracker stara się zostawić w nim 'tylne drzwi', umożliwiające przyszły, niezauważalny dostęp do konta z prawami administratora. Najbardziej podatnymi systemami na tego typu ataki jest rodzina systemów UNIX, głównie ze względu na ich konstrukcję i zastosowania.
W większości przypadków trojan wykorzystywany jest w celu osiągnięcia nieautoryzowanego, interaktywnego dostępu do systemu. Wyjątkami mogą tu być ataki DDoS (ang. Distributed Denial of Service), służące do zdalnego floodowania ofiary.
Rodzaje koni trojańskichDobrze napisany koń trojański powinien pozostać niezauważalny przez
długi okres czasu. Do tego celu stosuje się wiele metod, będących
najczęściej podmianami ważnych systemowych demonów. Idealnym i
najbardziej rozpowszechnionym przykładem jest zamiana demona
sshd na własną wersję, reagującą na uniwersalne hasło
oraz zamiana klienta ssh na wersję zapisującą hasła
użytkowników.
Innym sposobem, który wyszedł jednakże już prawie zupełnie z użycia jest
zamiana pewnych plików konfiguracyjnych lub praw dostępu do binariów
systemowych, powodująca zmianę zachowania systemu w określonych warunkach.
Przykładem może być dopisanie do pliku /etc/inetd.conf fikcyjnego
demona, uruchamiającego w rzeczywistości powłokę.
Równie rzadko są w chwili obecnej spotykane tzw. bindshell'e, czyli
konie trojańskie uruchamiające powłokę z prawami administratora w chwili
połączenia na określony port TCP lub UDP. Najczęściej trojany tego typu
łączone były z demonami systemowymi. Bardzo rozpowszechnionym w Polsce okazał
się demon syslogd, który po połączeniu z portem 114 ofiary i
podaniu hasła, uruchamiał powłokę w prawami administratora.
W chwili obecnej coraz częściej w użyciu jest pewna odmiana
opisanych wyżej programów. Zamiast otwierać dany port TCP lub UDP,
oczekują one na na pakiety ICMP określonego typu i wielkości, wykonując
zawarte w nich polecenia. Utrudnia to w znacznym stopniu wykrycie takiego
konia trojańskiego. Przykładem dość rozpowszechnionego 'gotowca'
pełniącego tę funkcję jest program loki2 autorstwa
route9|daemon.
Innym, równie częstym sposobem nielegalnego dostępu do systemu jest
instalowanie własnych bibliotek i modułów kernela. Ogólnodostępne rozwiązania
potrafią: ukrywać dowolne pliki, procesy, otwarte połączenia, przekierowywać
funkcję execve(), fałszować sumy kontrolne MD5,
ukrywać tryb nasłuchiwania pakietów i wiele innych. Zdecydowanie są to
najniebezpieczniejsze ze wszystkich trojanów.
Oprócz wyżej opisanych koni trojańskich, cracker instaluje w systemie sniffery, czyli programy wyłapujące hasła i informacje przesyłane przez sieć. Aby utrudnić wykrycie, ich obecność na dysku oraz na liście procesów, a także tryb wychwytywania pakietów (ang. promiscous mode) są maskowane, najczęściej przy pomocy modułów kernela.
Sposoby ochronyNajbardziej oczywistą i najskuteczniejszą metodą ochrony jest
uniemożliwienie nieautoryzowanego dostępu do systemu. Podstawową regułą
każdego administratora powinno być śledzienie serwisów WWW (np.
www.securityfocus.com) i list
dyskusyjnych (bugtraq@securityfocus.com) poświęconych
bezpieczeństwu oraz regularne 'łatanie' serwerów.
Kluczowe dla bezpieczeństwa systemu jest również używanie sesji szyfrowanej
SSH. Nigdy nie ma pewności, czy ruter pośredniczący w
transmisji pakietów nie ma zainstalowanego sniffera. Ważne jest
także uniemożliwienie fizycznego dostępu do konsoli serwera poprzez
umieszczenie komputerów w wydzielonym pomieszczeniu, do którego
dostęp mają tylko upoważnione osoby.
Zdarza się, że zastosowanie wyżej opisanych kroków nie wystarcza i dochodzi do włamania do systemu. Aby zminimalizować możliwość zainstalowania trojanów należy przyjąć następujące kroki:
używać programu tripwire lub innych obliczających sumy
kontrolne plików systemowych; powinien on być umieszczony razem z bazą danych
na zabezpieczonej dyskietce oraz statycznie zlinkowany, aby utrudnić
zafałszowanie sum kontrolnych
| |
zabezpieczyć ważne pliki systemowe przed próbami modyfikacji; system
FreeBSD w trybie kern.securelevel większym niż 1 uniemożliwia
modyfikację plików z flagą schg, bezpośrednie pisanie po dyskach i
pamięci, a także modyfikację regułek filtra pakietów |
Uniemożliwienie nieautoryzowanego dostępu do danych jest pracochłonnym i niejednokrotnie kosztownym procesem, ale straty wyrządzone przez crackerów mogą być niewspółmiernie duże do poniesionych nakładów. Toteż zagadnienie bezpieczeństwa systemów jest niezwykle ważne i w żadnym wypadku nie powinno być lekceważone przez administratorów.

Wszystkie materiały na mojej stronie dostępne są na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Na tych samych warunkach 2.5 Polska.