wirusy wirtualne serwery linux zabezpieczenia bezpieczeństwo
Wojciech Bojdoł

Kim jestem?
Zdjęcia
Po pracy:

Niedokończone pomysły
Dziwadła
Aktywność zawodowa:
Moje oprogramowanie
Moje publikacje
Numery kont
Moje CV
Moja głowa jest pełna pomysłów. Poniżej niektóre, które realizowałem w przeszłości:

Pożyteczny wirus (1999)

    Rok 1999. Wirusy typu ILoveYou atakują miliony komputerów. Jedna maleńka kupa badziewia powoduje ogromne problemy. Samego wirusa trudno nawet zaliczyć do jakiegoś programistycznego artyzmu. Ot taki sobie kawałek kodu.
    Michał Zalewski zaczął wtedy pracować nad czymś znacznie fajniejszym. Wirus, który byłby znacznie inteligentniejszy, potrafił się sam modyfikować i sam dopasowywać do nowego środowiska. To było ciekawe wyzwanie.
    W mojej głowie pojawiło się wtedy jednak coś innego. Wirus, który potrafiłby wprawdzie zarazić całą sieć komputerową, jednak jego cel byłby całkiem inny niż cel wirusów typu ILoveYou. Jego celem byłoby dostarczenie autorowi informacji o stanie sieci, nieznanych mu jeszcze problemach, lukach w bezpieczeństwie czy innych informacjach. Wirus, który byłby wykorzystywany nie do niszczenia, lecz do analizy bezpieczeństwa.
To jednak nie jedyne zastosowanie wirusów. W internecie wiele maszyn stoi odłogiem. Ogromna ilość sprzętu stoi niewykorzystana. Jeśli wirus potrafiłby znaleźć takie komputery w dużej korporacji mógłby wykorzystać ich moc do ważnych zadań. Dynamicznie wykorzystywana przestrzeń dyskowa czy też moc procesorów. Innym zastosowaniem mogłoby być wykorzystanie wirusów do sterowania przepływem informacji i dynamicznego routingu. Wirus z umiejętnością uczenia się znacznie szybciej mógłby wykryć błędy w routingu, próby włamania czy nietypowe zachowanie routerów (błędy w niektórych ramkach) i raportować te błędy człowiekowi.
    Moja idea wirusa opiera się na sieci Wormów. Podobnie jak w grze Lemmings - każdy worm specjalizowałby się w jednej czynności. Przykładowo "Worm scanner" zajmowałby się poszukiwaniem ofiar w sieci, "Worm hacker" włamywaniem do znalezionych wcześniej ofiar a "Worm installer" - instalowaniem sieci na nowej maszynie. Struktura pozwalałaby na dynamiczne dodawanie nowych wormów (np. zajmujących się dynamicznym routingiem) a wspólnym ich elementem byłaby wspólna pamięć.
W roku 1999 kilka miesięcy pracowałem nad mechanizmem pamięci dla wormów, jednak nie ukończyłem swoich prac. Pod adresem lcamtuf.coredump.cx/worm.txt znajdziecie opis idei Michała Zalewskiego, w której wątek WormNetu nie jest zbyt dobrze objaśniony jednak dokument jest moim zdaniem ciekawy. :)

Wirtualne serwery (2000)

Interesując się systemami bezpieczeństwa przez pewien czas poszukiwałem metod, jakimi hacker może ukryć swoją obecność na serwerze. Włamanie się na serwer jest bowiem banałem, jednak przejęcie nad nim kontroli na czas dłuższy niż dwa dni jest strasznie trudne. Ucząc się technik używanych przez hackerów szukałem sposobu na to, by się przed nimi bronić. Zauważyłem, że najgorsze są pierwsze dwie godziny działania hackera - wtedy w zależności od celu hackera:
  • będzie on starał się znaleźć na serwerze cenne dane
  • będzie on starał się poznać system i ukryć tak, by móc wykorzystywać jego moc obliczeniową, przestrzeń dyskową lub łącza
  • będzie niszczył system jak sie tylko da, podmieniał strony i robił inne bzdury
Obserwacja działań włamywacza w czasie rzeczywistym jest o tyle niebezpieczna, że w tym ostatnim wypadku (niszczenie) może sie źle skończyć. Z drugiej strony nie obserwując działań hackera trudno zebrać wystarczający materiał dowodowy, by go oskarżyć o cokolwiek poważnego (wykorzystanie dziury w systemie by do niego wejść nie jest do końca niezgodne z prawem - równie dobrze ta osoba może po prostu testować bezpieczeństwo serwera).
Problemy te rozwiązuje moja idea wirtualnych serwerów. Ponieważ serwer może mieć wiele adresów IP możemy na każdym z nich tworzyć oddzielny, wirtualny system. Każdy z tych wirtualnych serwerów może posiadać osobne konto administratora. Pod każdym z adresów IP serwer może sprawiać wrażenie całkiem innej maszyny. I tu kryje się podstawa mojej idei. Jeden z wirtualnych serwerów może być przynętą dla hackera, w której będzie mógł sobie buszować do woli. Administrator zaś będzie mógł obserwować poczynania włamywacza w czasie rzeczywistym i zbierać dane dla prokuratury.
    To jednak nie jest jeszcze najlepsze. Kolejny pomysł, który nasuwał mi się w czasie prac nad pierwszą wersją systemu jest znacznie bardziej interesujący. System może wykrywać włamywacza i tworzyć dla niego dynamicznie wirtualny system. W chwili włamania hacker zostanie przeniesiony do wirtualnego katalogu, w którym system plików będzie inny niż w prawdziwym systemie. Wszelkie kolejne połączenia hackera z tym systemem z jego adresu IP będą przekierowywane do wirtualnego systemu, dzięki czemu hacker będzie miał wrażenie że nanoszone przez niego zmiany odnoszą skutek.
Niestety ten projekt również porzuciłem. Początkowo opublikowałem jego pierwszą wersję, później usunąłem ją ze strony ponieważ pewna firma chciała kupić ode mnie prawa autorskie do tego rozwiązania, obecnie znów publikuję moje patche. Moje adresy, które znajdziecie w tych łatkach nie są już aktualne.
    Szczegóły techniczne łatek możesz znaleźć w archiwalnych numerach Magazynu Linux & Unix, niestety artykułów do tego pisma nie mogę publikować w internecie. Moja opinia o podobnym rozwiązania ukazała się również w magazynie Chip Special Linux Jesień 2003.
 
O stronie | Kontakt
© wojboj