Wirusy komputerowe są to programy posiadające zdolność do samoistnego powielania się oraz przenoszenia pomiędzy komputerami bez wiedzy i kontroli ich użytkowników. Typ wirusa determinuje sposób infekowania systemu, kopiowania się oraz jego funkcje, przy czym podstawowym celem i zadaniem wirusów jest rozmnażanie się, co stanowi o ich przetrwaniu, podczas gdy wszelkie dodatkowe efekty są na dalszym planie. W działalności wirusów wyróżnia się 4 podstawowe fazy:

  1. faza spoczynku, w której wirus nie jest aktywny
  1. faza rozmnażania, gdzie następuje doklejenie się wirusa do podobnej (lecz niekoniecznie) postaci plików (zazwyczaj wykonywalnych) bądź umieszczenie jego własnej kopii w określonych miejscach na dysku
  1. faza wywołania, w której to następuje aktywacja wirusa w celu wykonania zamierzonych przez jego autora funkcji - faza ta wywoływana jest przez różnego rodzaju zdarzenia mające miejsce w systemie, co zależy od rodzaju wirusa
  1. faza wykonania gdzie następuje wykonanie przez wirusa jego funkcji

Wyróżnia się wiele typów wirusów poprzez zastosowanie różnych kryteriów podziału, gdzie najczęściej stosowanym jest podział według kryterium rodzaju nosiciela:

  • wirusy plikowe - zarażają pliki jedynie określonego typu, na przykład pliki wykonywalne i zależnie od pozostałych cech szukają one następnych nosicieli bądź czekają w pamięci operacyjnej systemu
  • makrowirusy - są to programy pisane w makrojęzyku, które infekują dokumenty Worda, arkusze Excela oraz wszelkie inne zawierające makra
  • wirusy dyskowe - wirus tego typu zapisuje się w boot sectorze dysku twardego lub dyskietki, a uruchomienie systemu powoduje również zapisywanie się w pamięci operacyjnej oraz próby infekowania kolejnych boot sectorów

Do innych wirusów należą:

  • wirusy rezydentne - instalują się one w pamięci operacyjnej w chwili wywołania, a ich głównym celem jest zazwyczaj czekanie na wywołanie programu lub innego pliku w odpowiednim typie oraz jego infekcja
  • wirusy polimorficzne - nie posiadają one tak zwanej sygnatury wirusa (jest to kawałek kodu, po którym program antywirusowy odnajduje wirusa) lecz posiadają generator kodu, gdzie każda infekcja powoduje kolejną mutację

Robaki

Robaki (z ang. "worm") są to programy tworzące własne kopie (na przykład poprzez kopiowanie się jednego dysku lub komputera na inny) do czego wykorzystują różne mechanizmy transportowe, takie jak poczta elektroniczna. Robak może jednocześnie być wirusem, który dopisuje się do plików lub też koniem trojańskim, który wykrada hasła z zaatakowanego komputera. Robaki do rozmnażania się nie potrzebują pliku nosiciela.

Ten rodzaj programów początkowo pisano w języku C++, dopiero później wykorzystywano do tego celu języki wysokiego poziomu, takie jak np. Visual Basic czy Delphi. Aktualnie do pisania robaków stosowane są języki skryptowe co powoduje ich szybki rozwój, gdyż kod jest czytelny oraz łatwy do analizy czy modyfikacji.

Wprawdzie robaki mają dość różnorodną budowę, można wyodrębnić w nich pewne wspólne cechy całego ich gatunku, z których są to:

    • procedura instalacji w systemie
    • mechanizm dystrybucji
    • ujawniające swoje istnienie funkcje

Do najczęściej wykorzystywanych przez robaki metod instalacji w systemie należą następujące:

  1. podmiana plików systemowych - jest to zapisanie kodu robaka pod nazwą popularnego programu (jak na przykład Explorer czy Notepad) podczas gdy oryginały są zachowywane pod nazwą inną; uruchomienie programu powoduje aktywację robaka, który zaraz po tym, jak już wykona swoje operacje, przekazuje kontrolę właściwemu narzędziu; metoda ta jest podstawową w przypadku robaków - programów wykonywalnych
  1. rejestracja jako program automatycznie uruchamiany w trakcie startu systemu - w tej metodzie instalacji, robak dopisuje ścieżkę do programu w rejestrze systemu:

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun; jest to instalacja odpowiadająca robakom napisanym w VBScript oraz Jscript (wykorzystują ją także robaki typu wykonywalnego); czasami robak umieszcza się w autostarcie, co stanowi metodę przejściową, która jest pewną ostatecznością (na przykład w przypadku ataku przez udostępnione zasoby)

  1. przechwytywanie plików - jest to kojarzenie rozszerzenia plików z danym robakiem - z chwilą uruchamiania przez użytkownika pliku danego typu następuje uruchomienie robaka, który wykonuje swoje zadania i następnie uruchamia odpowiedni program dla otrzymanego pliku oraz przekazuje go tam

Istnieją następujące sposoby dystrybucji robaków:

  • przez e-mail - stanowi najpowszechniejszy i zarazem najprostszy sposób dystrybucji, w którym to robaki podszywają się zazwyczaj pod załączniki do listu mailowego otwierane przez nieostrożnych użytkowników
  • przez IRC - jest często wykorzystywanym kanałem dystrybucji lecz mniej skutecznym; zaatakowany użytkownik musi otworzyć przesłany mu plik
  • inne kanały dystrybucji - przez strony WWW, przez wykorzystanie udostępnionych zasobów czy też przez komunikatory
Konie trojańskie

Koń trojański jest to kod ukryty w danym programie powodujący to, iż uruchomienie tego programu powoduje oprócz realizacji przypisanych mu funkcji również dodatkowe negatywne działania, jak na przykład zawieszenie systemu operacyjnego, wyświetlanie różnego rodzaju komunikatów na ekranie czy też usuwanie plików. W przeciwieństwie do wirusów, konie trojańskie nie potrafią się samodzielnie powielać, dlatego też można się nimi zarazić jedynie w przypadku zainstalowania na dysku programu, który jest nosicielem trojana.

Istnieje kilka rodzajów koni trojańskich:

  • Backdoor Trojan - jest to koń trojański zostawiający w atakowanym komputerze otwartą furtkę (czyli port) - w przypadku, gdy posiadania odpowiedniego oprogramowania klienckiego można z furtki tej skorzystać w celu przejęcia kontroli nad danym komputerem bądź podsłuchiwania go
  • PWSteal Trojan - jest to koń trojański kolekcjonujący hasła, które znajdują się na danej maszynie, po czym wysyła je na wskazane internetowe adresy pocztowe
  • Trojan Horse - wszystkie trojany nie posiadające wyżej wymienionych właściwości są po prostu zwykłymi końmi trojańskimi wykonującymi różnego rodzaju szkodliwe operacje, takie jak kasowanie plików, zmienianie ustawień systemowych itp.

Konie trojańskie typu backdoor posiadają duże możliwości przejęcia kontroli nad komputerem, między innymi:

    • całkowity dostęp do dysku (lista katalogów oraz plików, wyszukiwanie, kopiowanie, kasowanie lub przesuwanie)
    • całkowity dostęp do rejestru
    • dodawanie lub usuwanie pewnych udziałów sieciowych
    • kompresja lub dekompresja plików (przed przekazem do atakowanego komputera oraz z atakowanego komputera)
    • kontrola procesów (wyświetlanie listy, uruchamianie i zabijanie)
    • logowanie używania klawiatury
    • mapowanie portów TCP na inne IP
    • restartowanie lub blokowanie systemu
    • tworzenie serwera plików o dostępie przez HTTP
    • włączanie plików dźwiękowych
    • wysłanie pinga i sprawdzenie wersji programu serwera
    • wyświetlanie listy haseł oraz informacji o systemie
    • wyświetlanie listy mapowanych portów oraz wysyłanych plików przez TCP
    • wyświetlanie listy udziałów i aktywnych połączeń
    • wyświetlanie okna dialogowego o dowolnej treści
    • zapytania o nazwę hosta oraz adres IP
    • zrzuty lub animacje działania atakowanego użytkownika na ekranie

Sniffing - jest to przechwytywanie oraz analizowanie przesyłanych za pośrednictwem sieci komputerowej informacji. Sniffer pakietów to karta sieciowa, która jest ustawiona w trybie Promiscous (przez co nie odrzuca ona nieprzeznaczonych dla niej pakietów) oraz program służący do dekodowania pakietów. Wyróżnia się:

    • sniffery komercyjne, które służą do badania ruchu w sieci
    • sniffery niekomercyjnesłużące do podsłuchiwania haseł czy wyłapywania ruchu w sieci; znaczna część transmisji mającej miejsce w sieci lokalnej odbywa się otwartym tekstem (bez szyfrowania) i pomimo faktu, iż wrażliwe na sniffing protokoły - takie jak http, telnet, ftp, POP, czy MAP - posiadają swoje szyfrowane odpowiedniki, to bardzo często są one wykorzystywane, co może wynikać z faktu fałszywego przeświadczenia dotyczącego bezpieczeństwa sieci lokalnej

Sniffery nie zawsze są zupełnie pasywne. System sniffujący zazwyczaj jest mocno obciążony gdyż musi programowo filtrować ramki, co ma wpływ na prędkość udzielanych przez system odpowiedzi.

Test odpowiedzipolega na wysłaniu spreparowanej ramki z fałszywym, fizycznym adresem odbiorcy (MAC address), gdzie normalnie została by ona odrzucona (przez interfejs sieciowy) lecz w tym przypadku jest przekazywana dalej do procesu usługowego z innych warstw. W środku znajduje się prawidłowy pakiet, segment bądź datagram.

Test ICMP → zapytanie ICMP echo request

Test ARP → ramka ARP ze sfałszowanym MAC adresem Ethernetowym oraz dobrym MAC adresem w środku - sprawdzanie, czy ktoś odpowie pakietami ARP Reply

Jeśli chodzi o sposoby zabezpieczania się przez sniffowaniem, to Switche nie zapewniają ochrony przed na przykład ARP - spoofingiem, lecz jest on aktywny a przez co prostszy do wykrycia. Spoofing jest to proces, w którym dochodzi do fałszowania pakietów, którego celem jest podanie się za inny komputer (na przykład serwer WWW czy DNS). Najprostszym przykładem może tutaj być nasłuchiwanie, do chwili gdy ktoś prześle zapytanie do serwera DNS, wtedy przechwytuje się oraz wysyła swoją odpowiedź jako serwer DNS.