Szacowanie wielkości botnetów w Polsce

Data publikacji: 19/05/2014, Łukasz Siewierski

computer_wormRaport roczny CERT Polska za 2013 rok będzie już niedługo dostępny na naszej stronie. W tym roku postanowiliśmy zmienić trochę formułę, przykładając – kosztem suchych statystyk – większą wagę do opisu ważnych trendów i zjawisk dostrzeżonych w ubiegłym roku. W oczekiwaniu na publikację zachęcamy do lektury fragmentu raportu znajdującego się poniżej. Fragment zawiera opis naszej metody szacowania wielkości botnetów aktywnych w Polsce oraz wyniki tego szacowania. Niektóre odnośniki do materiałów źródłowych zostały usunięte w celu polepszenia czytelności tekstu na stronie, ale oczywiście znajdą się w raporcie.

Wielkość botnetów w Polsce

Szacowanie wielkości botnetów jest zagadnieniem bardzo trudnym, często przytaczane są zatrważające liczby, otrzymywane według niejasnych reguł i nieodpowiadające rzeczywistej skali problemu. W tym roku na bazie naszych własnych danych i danych otrzymywanych przez zewnętrzne źródła podjęliśmy się próby oszacowania rzeczywistych rozmiarów botnetów. Problem i naszą metodykę staramy się przedstawić w dalszej części wpisu, poniżej znajdują się wyniki naszych obliczeń szacunkowych.

Liczebność botnetów, w sensie tutaj zaprezentowanym, ma niewiele wspólnego z liczbami zaprezentowanymi w raporcie Eurostat, który zawiera stwierdzenie, że 30% polskich użytkowników Internetu miało styczność z infekcją komputera. Zakładamy w tym wypadku, że użytkownik odpowiadając w ankiecie na pytanie o infekcję bazował na informacjach przede wszystkim od oprogramowania antywirusowego.

Prowadzi to do szeregu problemów z interpretacją. Po pierwsze, oprogramowanie antywirusowe może blokować infekcje. Zdaniem Microsoftu około 20% komputerów w Polsce miało styczność ze złośliwym oprogramowaniem, chociaż infekcja została powstrzymana przez oprogramowanie antywirusowe, przy czym powstrzymanie przez oprogramowanie antywirusowe nie oznacza, że użytkownik byłby zainfekowany, gdyby nie miał programu antywirusowego. Plik ze złośliwym oprogramowaniem mógł znajdować się w którejś z wiadomości e-mail, której użytkownik i tak by nie otworzył.

Drugą przyczyną jest niezrozumienie definicji złośliwego oprogramowania — przeciętni użytkownicy nie są w stanie odróżnić nietypowego zachowania systemu operacyjnego bądź aplikacji od „wirusa”. Niektórzy mogą uznać nawet atak phishingowy za kontakt ze złośliwym oprogramowaniem. Co więcej, nie tylko użytkownicy mają problem z definicją złośliwego oprogramowania – rozwiązania antywirusowe potrafią również wykryć niezłośliwy plik jako niepożądane oprogramowanie.

Oczywiście jest też czynnik działający w drugą stronę – „nie wiemy tego o czym nie wiemy”, tj. o zagrożeniach niewykrytych przez systemy antywirusowe. Analizując dane o infekcjach, które CERT Polska otrzymuje, i stosując wspomnianą metodykę stwierdzamy, że w Polsce zainfekowanych dziennie jest około 169 900 komputerów, co stanowi około 1,5% wszystkich komputerów znajdujących się w gospodarstwach domowych, przy czym liczbę komputerów w gospodarstwach domowych szacujemy na 11 mln (szczegóły w raporcie rocznym). Daje to pewien obraz rzeczywistej liczebności infekcji.

Nasze dane dotyczące botnetów pochodzą z systemów sinkhole, honeypotów, crawlerów sieci botnetów P2P, a nie z systemów antywirusowych. Dzięki temu są zazwyczaj bardzo dokładne i zawierają niewiele fałszywych alarmów.

Ze względu na naturę posiadanych przez nas danych oraz ze względu na przyjętą metodykę możemy oszacować, że w Polsce jest nie więcej niż 300 000 zainfekowanych komputerów aktywnych w ciągu każdych 24 godzin. Co więcej, warto zauważyć, że jest coraz więcej małych botnetów liczących po kilka tysięcy maszyn. Cyberprzestępcy starają się specjalizować w infekowaniu użytkowników, którzy są najwięcej dla nich warci.

Liczby wynikające z naszych danych są bliskie wartościom z raportu firmy Microsoft, według którego infection rate dla Polski wynosi pomiędzy 0,56% a 0,78%, natomiast dla świata pomiędzy 0,53% a 0,63%, zależnie od rozważanego kwartału. Wynik jest zaniżony, ponieważ nie uwzględnia osób, które nie używają żadnego rozwiązania antywirusowego, przez co są – przynajmniej teoretycznie – bardziej narażone na infekcje.

W poniższej tabeli zebraliśmy najbardziej popularne rodziny złośliwego oprogramowania w Polsce.

 

Pozycja Nazwa Liczba IP Udział procentowy
1 Conficker 45 521 26,79%
2 Sality 24 080 14,17%
3 ZeroAccess 19 025 11,20%
4 Virut 15 063 8,87%
5 ZeuS (w tym Citadel i pochodne) 12 193 7,18%
Pozostałe 54 018 31,79%

 

Jak liczyć botnety?

Różne instytucje stosują odmienne metody określania liczebności botnetów. Każda organizacja zajmująca się przejęciem botnetu ma powód, aby uznać właśnie zdejmowany botnet za bardzo duży, jeśli nie największy. Prowadzi to do stosowania wielu różnych metodyk liczenia. Postaramy się wskazać, która z nich jest jednocześnie łatwa w użyciu i dobrze przybliża wielkość botnetu. W tegorocznym raporcie wybraliśmy właśnie tę metrykę.

Aby zrozumieć problem, należy przedstawić przeszkody jakie towarzyszą szacowaniu wielkości danego botnetu. Rozważmy kilka możliwości takiego szacowania i to, w jaki sposób obserwacja ta wpływa na określenie wielkości. Abstrahujemy tutaj od tego, jak dane dotyczące botnetu są zbierane – to oczywiście też wpływa na szacowanie wielkości botnetu, ale najczęściej wybierany jest sposób, który jest jednocześnie możliwy do implementacji i dokładny.

Unikalne adresy IP

Najczęstszym sposobem szacowania wielkości botnetu jest liczenie unikalnych adresów IP. Jednak takie podejście zakłada, że dany adres IP reprezentuje jeden i w dodatku zawsze ten sam komputer. Założenie takie nie jest prawdziwe, jak zauważają autorzy raportu ENISA, w wielu przypadkach dostawcy Internetu korzystają z dynamicznych adresów IP. Adresy takie zmieniane są co jakiś czas lub w przypadku, gdy użytkownik zrestartuje modem bądź router dostępowy. Powoduje to, że dany użytkownik raz na jakiś czas otrzymuje inny adres IP, co w przypadku zliczania unikalnych adresów IP powoduje, że jeden bot może być policzony kilkukrotnie. W przypadku botnetu Torpig jeden bot zmienił adres IP 694 razy w ciągu 10 dni. Żeby pozbyć się tego efektu, można liczyć unikalne adresy IP na dzień, przy założeniu, że większość komputerów zmienia adres IP średnio raz dziennie.

Z drugiej strony, wiele sieci stosuje technikę mapowania adresów sieciowych (NAT). Pozwala ona na korzystanie z jednego publicznego adresu IP przez wiele urządzeń sieciowych. Wykorzystywana jest na przykład w firmach, które nie potrzebują, aby każda stacja robocza miała osobny, publiczny adres IP. Podobne działania podejmują użytkownicy domowi, którzy instalują router w swojej sieci, aby zapewnić dostęp do Internetu kilku urządzeniom (np. za pomocą sieci WiFi). W takim przypadku za jednym adresem IP może znajdować się kilka bądź kilkanaście botów, a zliczony zostanie tylko jeden. Nie ma łatwej metody na poprawienie tak zafałszowanych wyników. Pozostaje jedynie uwzględnienie identyfikatorów bota.

Identyfikator bota

Drugim sposobem określania wielkości botnetu jest użycie identyfikatora bota. W niektórych przypadkach takich jak Citadel opisany w jednym z naszych raportów, identyfikator ten jest z dużym prawdopodobieństwem unikalny. Niestety w innych przypadkach, np. Virut, identyfikator, który miał być unikalny okazał się zupełnie nieprzydatny. Powstawał z Volume Serial Number, który mógł być zmieniony przez użytkownika i nie identyfikuje jednoznacznie maszyny.

Czym jest wielkość botnetu?

Proponujemy, podobnie jak i badacze z Johns Hopkins University oraz autorzy wspomnianego wcześniej raportu ENISA, aby termin wielkość botnetu nie był terminem uniwersalnym i odnosił się również do metodyki, która została zastosowana, wraz z jej wszelkimi wadami. Microsoft w swoim raporcie oddziela dwie koncepcje: cleaned computers per mile, CCM (czy też infection rate), czyli liczba komputerów, na których wykryto złośliwe oprogramowanie oraz encounter rate, czyli liczba komputerów, na których oprogramowanie antywirusowe było w stanie zablokować infekcję.

Różnice w liczeniu wielkości botnetów za pomocą różnych metod są znaczące. Jako przykład rozpatrzmy trzy różne przypadki. Pierwszy oszacowuje wielkość botnetu Torpig na podstawie dziesięciodniowej obserwacji:

    • 1 247 642 unikalnych adresów IP,
    • 182 800 unikalnych identyfikatorów bota,
    • 179 866 unikalnych adresów IP dziennie (średnio),
    • około 200 000 unikalnych adresów dziennie (maksymalnie),
    • około 125 000 unikalnych identyfikatorów botów dziennie (maksymalnie).

    Zakładając, że generowane identyfikatory są unikalne, albo przynajmniej lepiej odzwierciedlają wielkość botnetu, dochodzimy do wniosku, że gdybyśmy szacowali wielkość Torpiga na podstawie unikalnych adresów IP to przeszacowalibyśmy ją ponad sześciokrotnie. Z drugiej strony, jak zauważają autorzy dokumentu, o ile liczba dziennych unikalnych adresów IP różni się o ponad 36% względem liczby dziennych unikalnych botów to dosyć dobrze przybliża całkowitą wielkość botnetu.

    Drugi przypadek to próba oszacowania wielkości instancji plitfi botnetu Citadel na podstawie 25-dniowej obserwacji pochodzącej z naszego raportu:

    • 164 323 unikalnych adresów IP,
    • 11 730 unikalnych identyfikatorów.

Okres obserwacji był jeszcze dłuższy, przez co liczba unikalnych adresów IP różni się jeszcze mocniej od rzeczywistej wielkości botnetu. 14-krotnie więcej unikalnych adresów IP skontaktowało się z serwerem niż rzeczywiście było botów.

Trzeci przypadek to połączenia z naszym sinkhole’em z różnych instancji botnetów opartych na złośliwym oprogramowaniu Citadel. Wyniki przeprowadzonych przez nas w ciągu 10 wybranych losowo dni pomiarów znajdują się w tabeli poniżej.

Data Adresy IP Identyfikatory
18.01.2014 3323 2288
19.01.2014 3671 2376
20.01.2014 3963 2414
21.01.2014 4459 2341
04.02.2014 3238 2268
05.02.2014 3217 2230
06.02.2014 3486 2290
07.02.2014 3306 2180
08.02.2014 3092 2094
09.02.2014 3311 2174
Łącznie 19768 3429

Według firmy Arbor Networks, w niektórych przypadkach za jednym adresem IP, w wyniku działania NAT może się znajdować nawet 100 różnych zainfekowanych komputerów, jednak w przypadku danych z naszego sinkhole’a zaobserwowaliśmy maksymalnie cztery różne zainfekowane komputery pod jednym adresem IP. Średnio na jeden adres IP przypadało 1.02 bota. Jeden z komputerów w ciągu 4 dni zmienił adres IP 858 razy, przy czym średnio jeden komputer miał 5.90 różnych adresów IP w ciągu całego okresu obserwacji serwera. Łączna liczba unikalnych adresów IP jest prawie sześciokrotnie większa niż liczba unikalnych identyfikatorów.

Mimo, iż liczba unikalnych dziennych adresów IP jest większa od liczby unikalnych dziennych identyfikatorów to trafnie oddana jest skala wielkości botnetu. Należy zauważyć, że nie zawsze jesteśmy w sytuacji, w której bot tworzy unikalny identyfikator. Dlatego, naszym zdaniem, maksymalna liczba unikalnych adresów IP dziennie jest miarą, która dobrze przybliża rzeczywistą wielkość botnetu.