16 października 2010

Czym tak naprawdę są antywirusy z chmury?

Kilka miesięcy temu na łamach Hard Core Security Lab przedstawiłem wam nieco bliżej Immunet Protect, czyli darmową implementację programu antywirusowego wykorzystującego model przetwarzania w chmurze (ang. Cloud computing). Mój artykuł zachwalający zalety takiego podejścia, ostatecznie wywołał burzliwą dyskusję. Spotkałem się m.in. z surowymi głosami krytyki, również ze strony specjalistów z dziedziny bezpieczeństwa IT. Od tego czasu społeczność korzystająca z Immunet Protect wzrosła niemal trzykrotnie (obecnie jest to blisko 600 tys. aktywnych agentów), a ja postanowiłem powrócić do tematu antywirusów w chmurach, by raz jeszcze przyjrzeć się potencjalnym zagrożeniom, które towarzyszą wykorzystaniu tego typu rozwiązań.

Przede wszystkim zdefiniujmy raz jeszcze, co tak naprawdę rozumiemy pod pojęciem antywirusa wykorzystującego technologię przetwarzania w chmurze. Otóż przyjmijmy, że jest to program antywirusowy obecny na naszym komputerze w postaci stosunkowo lekkiego agenta, który znaczną część pracochłonnej analizy danych i obliczeń związanych z wykrywaniem potencjalnych zagrożeń, przekazuje do centralnej infrastruktury utrzymywanej przez producenta danego rozwiązania.

Lekki agent obecny w naszym systemie stanowi oczywiście w stosunku do tradycyjnych ociężałych rozwiązań antywirusowych szereg zalet. Oznacza to bowiem zużycie mniejszej ilości lokalnych zasobów. Im mniej skomplikowany jest dany program, tym mniejsze jest również prawdopodobieństwo tego, że on sam padnie ofiarą udanego ataku, mającego na celu całkowite pozbawienie nas ochrony. Oczywiście zlecanie części zadań na zewnątrz, oznacza nieuchronnie, że pewne dane i informacje muszą zostać wysłane do centralnej infrastruktury. Potencjalne przesyłanie naszych plików na bliżej nieznane nam serwery stanowiło właśnie jeden z najważniejszych argumentów, podnoszonych przez krytyków tego typu rozwiązania.

Cześć plików (przede wszystkim wykonywalnych), szczególnie tych podejrzanych o bycie zainfekowanymi, może rzeczywiście trafić do chmury w celu wykonania dokładnej analizy zagrożeń. Takie pliki wykonywalne raczej nie zawierają jednak zazwyczaj naszych prywatnych danych. Ogromna większość plików nie jest jednak przekazywana do centralnej infrastruktury, co przecież i tak nie byłoby na chwilę obecną wykonalne z racji zbyt wolnych połączeń internetowych! Zamiast tego, poszczególne programy klienckie przekazują do centrali tylko pewne dane pozwalające na skuteczne zidentyfikowanie pliku oraz ewentualnych związanych z nim zagrożeń.

Może to być unikalny identyfikator pliku (czyli np. hash MD5, w przypadku polimorficznego malware'u skuteczniejsze mogą się jednak okazać metody typu fuzzy hashing), informacje na temat pochodzenia zbioru oraz jego zachowania się w naszym systemie. To wszystko wystarcza do tego, by w centralnej chmurze obliczeniowej przeprowadzić kilka rodzajów analiz znanych z tradycyjnych rozwiązań ochronnych, czyli np. analizę behawioralną, heurystyczną itp. Wynika to z prostej zasady, otóż by przykładowo stwierdzić potencjalnie niebezpieczne zachowanie danego programu, centralne serwery wcale nie muszą same przetestować jego zachowania, wystarczy, że lokalny agent doniesie o fakcie zmodyfikowania przez niego pliku hosts, czy też rozpoczęciu masowego rozsyłania poczty e-mail.
Kolejnym argumentem bardzo często podnoszonym przez przeciwników Immunet Protect, jest rzekoma całkowita bezbronność takiego systemu w przypadku braku połączenia z Internetem. Taka teza również w bardzo dużym stopniu mija się z prawdą. Oczywiście gdy nasz agent nie ma kontaktu z centralną infrastrukturą, to jego możliwości ochronne są znacznie ograniczone, jednak nie są zupełnie wyłączone. W takich sytuacjach, pewien stopień ochrony uzyskuje się poprzez tworzony na bieżąco lokalny cache, którego zadaniem jest ochrona systemu przed najczęściej spotykanymi zagrożeniami. Warto również zauważyć, że w chwili obecnej większość typowych zagrożeń trafia do nas za pośrednictwem Internetu, zazwyczaj więc, w trakcie pobierania zainfekowanego pliku, nasz agent będzie miał kontakt z centralą. Wreszcie zauważmy, że tradycyjne rozwiązania antywirusowe do całkowicie poprawnego działania i w celu zapewnienia maksymalnej ochrony, w praktyce również wymagają stałego połączenia z Internetem. Wobec powyższego należy stwierdzić, że kolejny koronny argument przeciwników nowego modelu ochrony antywirusowej, jest niemal zupełnie nieuzasadniony.

Skoro już udało nam się rozprawić z podstawowymi mitami na temat zagrożeń związanych z wykorzystywaniem antywirusowego przetwarzania w chmurze, warto jeszcze raz przypomnieć zalety takich rozwiązań. Są to oczywiście takie cechy jak minimalne obciążenie klienckiego systemu operacyjnego, automatyczny dostęp do najnowszych metod i sygnatur detekcyjnych bez konieczności przeprowadzania lokalnych aktualizacji oraz możliwość natychmiastowego skorzystania z wiedzy i doświadczeń zebranych z setek tysięcy innych stacji klienckich. Reasumując, chciałbym ponownie wyrazić przekonanie, że metody ochronne oparte o przetwarzanie w chmurze stanowią obecnie najbardziej obiecujący trend i myślę, że już w niedalekiej przyszłości staną się rozwiązaniami dominującymi. Zachęcam również wszystkich czytelników do przetestowania tego typu rozwiązań we własnym zakresie i wyrobienie sobie na ich temat własnego zdania.