Przyjrzyjmy się bliżej Linux.Ellipsis.1.
Uruchomiony na zainfekowanej maszynie, Linux.Ellipsis.1 usuwa swój katalog roboczy, czyści listę zasad iptables i próbuje zakończyć procesy kilku uruchomionych aplikacji, na przykład programów używanych do logowania zdarzeń i analizowania ruchu. Następnie trojan podmienia istniejące katalogi i pliki dziennika zdarzeń systemu na foldery o tych samych nazwach. Dzięki temu możliwe będzie stworzenie logów o identycznych nazwach.
Następnie Linux.Ellipsis.1 modyfikuje plik konfiguracyjny “/etc/coyote/coyote.conf” dodając ciąg alias passwd=cat . Potem usuwa kilka narzędzi systemowych z katalogów /bin/, /sbin/ i /usr/bin/ i dodaje atrybut “tylko do odczytu” do kilku plików niezbędnych dla jego działania. Co więcej, trojan blokuje podsieć adresów IP, określonych w pliku konfiguracyjnym lub w komendzie odebranej przez trojana. Oznacza to, że po utworzeniu reguły iptables, określony adres IP nie jest dopuszczony do wysyłania lub odbierania pakietów przez określony port lub protokół. Głównym celem Linux.Ellipsis.1 jest uruchomienie serwera proxy na zainfekowanym komputerze. Dlatego trojan monitoruje połączenia na lokalnym adresie i porcie filtrując przesyłany przez nie ruch.
W porównaniu z innymi złośliwymi programami, zachowanie Linux.Ellipsis.1 jest dość unikalne. Trojan zawiera listę ciągów testowych, pod kątem których dokonuje przeszukiwania ruchu sieciowego. Jeśli dowolny z tych ciągów zostanie wykryty, trojan blokuje przesyłanie danych na odpowiadający temu ciągowi (adresowi IP) zdalny serwer. Lista zabronionych słów posiada również część, która zmienia się zgodnie z zawartością przychodzących pakietów. Na przykład, jeśli przychodzący pakiet zawiera ciąg “User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)”, lista jest uzupełniana wartościami “eapmygev.” i “ascuviej.”. Ponadto trojan wykorzystuje również listę słów ignorowanych i podejrzanych.
“Paranoidalne” zachowanie Linux.Ellipsis.1 objawia się również tym, że oprócz blokowania zdalnych węzłów z listy, trojan sprawdza także połączenia sieciowe i wysyła na zdalny serwer adres IP, na który zestawione jest dane połączenie. Jeśli serwer odpowie komendą “kill”, trojan zamyka aplikację, która zestawiła to połączenie i blokuje adres IP z użyciem iptables. W katalogu domowym Linux.Ellipsis.1 tworzy plik “ip.filtered”, w którym “ip” jest zastępowane ciągiem reprezentującym zablokowany adres IP. To samo sprawdzanie jest stosowane do procesów zawierających w swoich nazwach ciąg “sshd”. Adresy IP z list są blokowane na stałe, podczas gdy inne adresy są blokowane tylko na 2 godziny. Co każde pół godziny odrębny złośliwy proces skanuje zawartość katalogu domowego szukając plików, które były utworzone więcej niż dwie godziny temu i których nazwy zaczynają się od adresu IP. Następnie te pliki są kasowane i tworzona jest odpowiednia reguła w iptables.
Tuż po tym, jak Linux.Ellipsis.1 został wykryty, analitycy bezpieczeństwa Doctor Web wyśledzili Linux.Ellipsis.2. Trojan ten, sądząc po niektórych jego funkcjonalnościach, został stworzony przez tego samego twórcę wirusów i zaprojektowany do łamania haseł metodą brute-force. Tak jak Linux.Ellipsis.1, tak i jego druga wersja czyści listę reguł iptables, usuwa aplikacje które mu “przeszkadzają”, tworzy foldery aby powstrzymać system operacyjny przed logowaniem zdarzeń i odwołuje się do serwera w celu otrzymania zadań. Adres serwera otrzymuje jako argument przychodzący podczas uruchomienia. Linux.Ellipsis.2 oblicza całkowitą liczbę wątków skanowania i połączeń SSH na podstawie częstotliwości taktowania procesora zainfekowanego komputera.
Zadanie pozyskane z serwera zawiera adres IP podsieci do przeskanowania przez złośliwy program pod kątem urządzeń z otwartymi połączeniami SSH na porcie 22. Jeśli takie połączenia zostaną wykryte, trojan próbuje podłączyć się do nich, korzystając z wszystkich par login:hasło ze specjalnej listy. Jeśli któraś z prób zakończy się sukcesem, trojan wysyła odpowiednią wiadomość na serwer kontrolowany przez cyberprzestępców.