static_analysis_research_closeup

O co chodzi z tą logiką detekcji?

Logika detekcji jest używana przez różnorodne mechanizmy w nowoczesnym oprogramowaniu do ochrony punktów końcowych. W branży cyberbezpieczeństwa określa się ją wieloma różnymi nazwami. Podobnie jak laicy używają terminu „wirus” na określenie tego, co specjaliści od bezpieczeństwa nazywają „złośliwym oprogramowaniem” (z technicznego punktu widzenia wirus to program, który rozprzestrzenia się poprzez umieszczanie swoich kopii w innym programie, pliku danych lub sektorze rozruchowym), logika detekcji bywa nazywana „sygnaturami”, „odciskami palców”, „wzorcami” albo „wskaźnikami IOC”. Kiedy zatem ktoś mówi o wirusie, zazwyczaj ma na myśli złośliwe oprogramowanie, a gdy mówi o sygnaturach, często myśli o logice detekcji. No chyba że mówi właśnie o prostych detekcjach sygnaturowych, których używano w latach osiemdziesiątych i dziewięćdziesiątych. W F-Secure logikę detekcji często nazywamy po prostu „detekcjami”. W poprzednich odcinkach tej serii pisałem o mechanizmach skanowania, mechanizmach behawioralnych i reputacji seciowej oraz o tym, jak współpracują one ze sobą w celu blokowania zagrożeń. Teraz chciałbym wyjaśnić, jak wygląda logika detekcji używana przez te mechanizmy i jak się ją tworzy. Jest to nieco dłuższy artykuł, więc proszę o cierpliwość. Okazało się, że aby szczegółowo i sensownie wyjaśnić ten temat, będę musiał omówić kilka różnych obszarów. Poszczególne koncepcje w wielu miejscach łączą się ze sobą, więc postanowiłem przygotować jeden długi post zamiast kilku oddzielnych wpisów. Szkic tego tekstu przejrzało całkiem sporo osób, ale niektórzy właśnie wyjechali na wakacje, zatem mam nadzieję, że nikt nie będzie miał pretensji, że ujawniam te wszystkie informacje. W nowoczesnych produktach zabezpieczających wykorzystuje się różne typy logiki detekcji. Omówię każdy z nich w oddzielnej sekcji. O czym to mówiliśmy? Ach tak, skomplikowana matematyka i sztuczna inteligencja. Chmurowa logika detekcji Nowoczesne oprogramowanie zabezpieczające zwykle zawiera jeden lub więcej komponentów klienckich, które wykonują kwerendy przez internet. Logika detekcji jest często realizowana częściowo przez komponenty klienckie, a częściowo przez serwer. W najprostszych przypadkach unikatowy identyfikator obiektu (na przykład jego skrót kryptograficzny) jest przekazywany do serwera, który odsyła prosty werdykt „dobry/zły/nieznany”, uwzględniany przez program kliencki podczas podejmowania ostatecznej decyzji. W bardziej skomplikowanych przypadkach program kliencki wyodrębnia z obiektu metadane i wysyła do je serwera, który następnie stosuje własny zbiór reguł i zwraca werdykt albo nowy zbiór wartości, które program kliencki przetwarza przed wydaniem werdyktu. Nawet najprostsze wyszukiwania chmurowe są bardzo skuteczne. Systemy back-endu mają dostęp do pełnej bazy próbek, a także do informacji i metadanych zbieranych od wszystkich użytkowników naszego oprogramowania. Samo urządzenie końcowe nie miałoby dostępu do tych dodatkowych informacji. Kwerenda chmurowa umożliwia przekazanie ich do programu klienckiego, gdzie mogą zostać wykorzystane przez poszczególne komponenty ochronne. Dobrym przykładem jest sprawdzanie potencjalnej szkodliwości plików za pomocą wskaźnika prewalencji. Warto wspomnieć tu jeszcze o skanowaniu chmurowym. Próbki można wysyłać z urządzenia końcowego do chmury w celu przeprowadzenia skomplikowanej analizy, której nie dałoby się wykonać po stronie klienta. Analiza ta może obejmować przepuszczanie próbki przez wiele mechanizmów skanowania, poddawanie jej analizie statycznej oraz dynamicznej. Detekcje na back-endzie projektuje się tak, aby wydawały werdykt poprzez przetwarzanie metadanych wygenerowanych podczas tych analiz. Omówię to bardziej szczegółowo w sekcji poświęconej detekcjom na back-endzie. Heurystyczna logika detekcji Zadaniem heurystycznej logiki detekcji jest wyszukiwanie wzorów często pojawiających się w złośliwych plikach. Detekcje heurystyczne mogą być generowane przez techniki maszynowego uczenia się albo tworzone ręcznie. Stworzona ręcznie logika detekcji heurystycznej może na przykład sprawdzać, czy w skrypcie często występuje znak „+”, co może świadczyć o zastosowaniu typowych technik „zaciemniania” kodu. Bardziej skomplikowane ręczne detekcje mogą szukać wielu wzorów. Wskaźnik potencjalnej szkodliwości jest zwykle obliczany na podstawie obecności tego rodzaju wzorów, a następnie łączony z innymi metadanymi w celu wydania ostatecznego werdyktu. System maszynowego uczenia się, który nauczono rozpoznawać strukturalne wzory często występujące w plikach złośliwych, ale nie w „czystych”, umożliwia zbudowanie złożonej logiki heurystycznej. W tym celu wprowadza się duże zbiory złośliwych i czystych plików, które zostały zweryfikowane przez ekspertów, do systemu maszynowego uczenia się, a następnie skrupulatnie testuje się wyniki. Jeśli uzyskany w ten sposób pakiet detekcji jest wystarczająco wydajny i nie generuje fałszywie pozytywnych ani fałszywie negatywnych wyników, wdraża się go w urządzeniu końcowym. Proces ten należy regularnie powtarzać, aby dostosować logikę detekcji do zmieniającego się krajobrazu zagrożeń. Tego rodzaju pakiety detekcji również działają na zasadzie wyszukiwania charakterystycznych cech i wzorów w próbkach oraz stosowania modeli matematycznych w celu obliczenia wskaźnika potencjalnej szkodliwości. Informacje zawarte w strukturze pliku PE można czasem wykorzystać w celu ustalenia, jak bardzo podejrzany jest dany plik. Jakość detekcji heurystycznych zależy w dużym stopniu od tego, jak dobrze wyszkolono system maszynowego uczenia się. To z kolei zależy od jakości próbek użytych podczas etapów treningu i testowania, a jakość próbek – od odpowiedniej kombinacji automatyzacji i ludzkiego nadzoru. Wymaga to doświadczenia, czasu i środków, ale pozwala uzyskać znakomite efekty. Reguły behawioralne Mechanizmy analizujące wykonywanie kodu zawierają zbiór reguł, które pozwalają określić, czy obserwowane wzory behawioralne są podejrzane lub złośliwe. Niektóre reguły behawioralne można wygenerować automatycznie, inne opracowuje się ręcznie. Poprzez badanie nowych technik włamań oraz wektorów ataku można stworzyć reguły behawioralne, zanim techniki te upowszechnią się w złośliwym oprogramowaniu. Następnie można zaprojektować ogólne reguły behawioralne, które wyłapują wszelkie rodzaje złośliwej aktywności, i w ten sposób pozostać o krok przed napastnikami.  Nasi badacze w F-Secure Labs zawsze wypatrują aktualnych trendów w krajobrazie zagrożeń. Kiedy zidentyfikują nowe metodologie, przystępują do pracy nad nowymi regułami w oparciu o wyniki badań. Jak więc działają reguły behawioralne? Kiedy coś się wykonuje (może to oznaczać uruchomienie pliku wykonywalnego, otwarcie dokumentu w odpowiednim programie itd.), system generuje ślad wykonania. Ślad ten jest przekazywany do procedur detekcji, których zadaniem jest reagować na pewne sekwencje zdarzeń. Do typów zdarzeń, które może sprawdzać reguła behawioralna, należy na przykład: tworzenie, niszczenie lub wstrzymywanie procesu, próby „wstrzyknięcia” kodu, manipulacje w systemie plików, operacje na rejestrze. Każde zdarzenie przekazywane do reguły behawioralnej zawiera zbiór powiązanych z nim metadanych. Reguły mają również dostęp do globalnych metadanych śladu wykonania, takich jak identyfikator procesu (PID), ścieżka do pliku i proces macierzysty. Dostępne są też metadane pochodzące z kwerend chmurowych oraz innych komponentów ochronnych, m.in. wskaźnik prewalencji oraz pochodzenie pliku (historia pliku od momentu, w którym pojawił się w systemie, która może obejmować na przykład adres URL, spod którego pobrano plik). Jak można sobie wyobrazić, wszystkie te informacje umożliwiają zbudowanie całkiem kreatywnej logiki. Oczywiście, nieustannie aktualizujemy logikę i funkcje naszych komponentów detekcji behawioralnej w miarę, jak zmienia się krajobraz zagrożeń i jak dokonujemy ulepszeń.  Kto by tego nie robił? Generyczna logika detekcji Tworząc skomplikowane programy, które są wykonywane w urządzeniach końcowych, możemy zautomatyzować niektóre techniki inżynierii wstecznej w celu wykrywania złośliwego oprogramowania. Tutaj robi się interesująco, ale wyjaśnienie tego zajmie trochę czasu. Istnieje wiele typów plików, które mogą zawierać złośliwy kod. Oto kilka przykładów: dokumenty, na przykład w formacie PDF lub MS Office, pliki wykonywalne przeznaczone do różnych systemów operacyjnych i architektur, takie jak PE, ELF, Mach-O i .NET. pakiety aplikacyjne, takie jak APK, OS X (.app) i Flash (SWF), obrazy dysku, takie jak ISO i DMG, skompilowany kod bajtowy, na przykład klasy Javy lub pliki dex w Androidzie, języki znakowania, takie jak HTML lub XML, skrypty, na przykład VBScript, JavaScript oraz skrypty powłoki systemu operacyjnego, kontenery, takie jak zip, 7z, i RAR. Do pracy z tymi wszystkimi formatami plików często potrzebne są parsery. Parsery identyfikują użyteczne osadzone struktury i wyodrębniają je z odpowiednich kontenerów. Przykładem osadzonych struktur są zasoby (dźwięki, grafika, wideo i dane), nagłówki PE, sekcje PE, podpisy Authenticode, manifesty Androida i skompilowany kod. Mówiąc prosto, parser dzieli plik wejściowy na części składowe i udostępnia je logice detekcji jako łatwo dostępne struktury danych. Formaty plików są często skomplikowane i obejmują wiele przypadków specjalnych. Dzieląc plik na części i przekazując strukturę danych do logiki detekcji, unikamy wielokrotnego powielania złożonego kodu analizy składniowej. Możemy też upewnić się, że kod jest niezawodny i wydajny. W złośliwych plikach często osadzone są inne pliki (różnych typów). Na przykład złośliwy dokument PDF może zawierać osadzony kod Flash, kod wykonywalny, shellcode lub skrypty. Te osadzone pliki są często zaszyfrowane lub zaciemnione. Kiedy zewnętrzny złośliwy plik jest otwierany lub uruchamiany, deszyfruje zawarte w nim obiekty, zapisuje je w pamięci lub na dysku, po czym wykonuje. Same złośliwe pliki wykonywalne często używają standardowych programów do kompresji/ochrony kodu, takich jak UPX lub ASPack, aby zaciemnić swój kod i struktury. W większości przypadków stosuje się kolejno kilka różnych programów do kompresji, a często również niestandardowe metody zaciemniania stworzone przez autora złośliwego oprogramowania. Docieranie do rzeczywistego kodu wewnątrz złośliwego pliku wykonywalnego przypomina obieranie cebuli. Problem ze spakowanymi plikami polega na tym, że wszystkie wyglądają bardzo podobnie, a niektóre zwykłe pliki wykonywalne również używają kompresji. Aby prawidłowo zidentyfikować złośliwy plik, często trzeba usunąć te warstwy. Usuwanie typowej kompresji jest łatwe – nietrudno rozpoznać standardowe programy do ochrony kodu. Trudniej usunąć niestandardowe zaciemnienie. Jednym ze sposobów jest wyodrębnienie kodu deszyfrującego oraz bloków danych ze złośliwego oprogramowania i uruchomienie ich w „piaskownicy” w taki sposób, żeby złośliwy kod sam się rozpakował. Innym trikiem jest napisanie procedury, która analizuje kod usuwający zaciemnienie, identyfikuje klucz deszyfrujący i lokalizuje dane, po czym wyodrębnia obraz wykonywalny. Dzięki usunięciu warstw obronnych ze złośliwego pliku wykonywalnego logika detekcji może przeanalizować właściwy, głęboko ukryty kod. Uzyskany w ten sposób obraz można przetwarzać na wiele różnych sposobów. Te same techniki stosuje się do wyodrębniania obiektów z plików w formatach innych niż PE, takich jak dokumenty PDF i MS Office, a podobne metody deszyfrowania pozwalają usunąć zaciemnienie na przykład ze złośliwego kodu JavaScript. Tworzenie detekcji tego typu bywa czasochłonne, ale z pewnością warte zachodu. Detekcje generyczne nie tylko pozwalają wyłapać dużą liczbę złośliwych plików, ale mają też długi okres ważności. W wielu przypadkach nowe warianty tej samej rodziny złośliwego oprogramowania są wykrywane przez dobrze napisaną detekcję generyczną bez żadnych modyfikacji. Na naszej mapie świata widać że większość, jeśli nie wszystkie spośród naszych 10 najczęstszych detekcji to ręcznie napisane detekcje generyczne. Szczerze mówiąc, wszystko, co tu napisałem, to bardzo powierzchowne omówienie działania tych technologii. Trzeba pamiętać, że logika detekcji ma również dostęp do informacji z kwerend chmurowych oraz śledzenia pochodzenia plików i może działać na dowolnych strumieniach danych, w tym przechowywanych w pamięci i przesyłanych przez sieć, więc nietrudno zrozumieć, czemu te zagadnienia są tak skomplikowane. Żeby je dogłębnie wyjaśnić, prawdopodobnie trzeba by napisać całą książkę. Sieciowa logika detekcji Blokowanie ataków w sieci, na przykład pakietów exploitów, to coś, na co kładziemy duży nacisk. Powstrzymywanie zagrożeń na wczesnym etapie to skuteczny sposób ochrony urządzeń przed infekcjami. Jak wspomniano w poprzedniej sekcji, strumienie danych napływających z sieci można analizować w podobny sposób, jak bada się pliki na dysku. Różnica polega na tym, że w sieci, w miarę przybywania informacji, można wykorzystać mechanizmy, które w locie blokują lub filtrują dostęp do dalszych wektorów ataku. Sieciowa logika detekcji w urządzeniu końcowym ma dostęp do adresów IP i URL, zapytań DNS, certyfikatów TLS, nagłówków HTTP, treści HTTP oraz wielu innych metadanych. Może również badać reputację sieciową, w tym reputację adresów URL, certyfikatów i adresów IP (za pośrednictwem kwerend chmurowych). Dysponując tymi wszystkimi informacjami, można zrobić sporo interesujących rzeczy. Oto kilka przykładów. Zachowanie witryny internetowej można badać w czasie rzeczywistym, co pozwala wykrywać i blokować pakiety exploitów. Można zablokować komunikację między botem a jego serwerem dowodzenia na podstawie adresu IP, z którym próbuje skontaktować się bot. Można też blokować komunikację z serwerami dowodzenia na podstawie wzorów ruchu sieciowego. Witryny wyłudzające informacje można blokować na podstawie nagłówka HTTP, treści HTTP albo jednego i drugiego. Można blokować wiele typów złośliwych przekierowań, w tym przekierowania Flasha. Technologie przechwytujące działające na poziomie sieci umożliwiają nam wyodrębnienie i zapisanie danych na temat obiektów przybywających do systemu. Metadane te są dostępne dla innych komponentów ochronnych, które uwzględniają je w procesie podejmowania decyzji. Pamięciowa logika detekcji Tropienie śladów złośliwego kodu w pamięci to użyteczna technika, zwłaszcza podczas instalacji w systemie, który wcześniej nie był chroniony. Niektóre typy złośliwego oprogramowania, zwłaszcza rootkity, można wykryć tylko tą metodą. Niektóre złośliwe programy aktywnie zapobiegają instalacji oprogramowania ochronnego w systemie. Oczyszczenie systemu przed uruchomieniem instalatora jest zatem ważnym krokiem. Uruchamiamy procedury śledcze, w tym funkcje skanowania pamięci, na wczesnym etapie instalacji naszych produktów, aby usunąć ewentualne infekcje, do których doszło w przeszłości. Te same procedury śledcze mogą być uruchamiane okresowo lub ręcznie, aby zagwarantować, że nic nie prześliznęło się przez nasze szyki defensywne. Jak już wspomniałem, przedzieranie się przez warstwy zaciemnienia bywa dość skomplikowane. Badając przestrzeń adresową używaną przez złośliwe oprogramowanie, często można znaleźć obraz z usuniętym zaciemnieniem. Nie jest to jednak regułą. Standardowe programy do kompresji zwykle zapisują kod w pamięci i uruchamiają go, ale jeśli złośliwe oprogramowanie używa niestandardowej metody zaciemniania, może skorzystać z różnych trików, aby kod pozostał zaciemniony nawet w pamięci. Prostym sposobem może być zaciemnienie łańcuchów tekstu. W bardziej skomplikowanych przypadkach kod jest przekształcany w specjalny, jednorazowy, generowany podczas kompilacji zbiór instrukcji, który jest wykonywany pod kontrolą niestandardowej maszyny wirtualnej. Logika detekcji w systemach zaplecza Duża moc naszych systemów zaplecza umożliwia nam kosztowną obliczeniowo, czasochłonną analizę próbek, której nie dałoby się przeprowadzić w urządzeniu końcowym. Wykonując szereg czynności analitycznych i łącząc rezultaty tych operacji z metadanymi pochodzącymi z kwerend klienckich oraz naszych systemów przechowywania próbek, możemy automatycznie przetwarzać i klasyfikować duże ilości próbek, czego nie bylibyśmy w stanie zrobić ręcznie. Procesy te dostarczają nam również wiele użytecznych informacji o zagrożeniach. Niektóre technologie używane w naszych produktach do ochrony punktów końcowych można również wykorzystać do rygorystycznej analizy statycznej. W tym celu pisze się specjalny kod detekcyjny, który wyodrębnia metadane i identyfikuje charakterystykę próbki, zamiast po prostu wydać werdykt.  To tylko jedna z metod, których używamy do preparowania próbek. Inne systemy, zaprojektowane pod kątem przetwarzania konkretnych typów plików, również dostarczają istotne metadane na potrzeby logiki decyzyjnej. Ponadto przepuszczamy próbki przez systemy, które heurystycznie określają potencjalną szkodliwość pliku na podstawie cech strukturalnych. Classy i Gemmy, dwa komponenty automatyzujące rozpoznawanie złośliwego oprogramowania, opracowane około pięć lat temu w ramach wspólnego projektu badawczego z uniwersytetem Aalto Adresy URL i próbki, które można wykonać, są wysyłane do sandboksów i poddawane analizie dynamicznej. Ślad działania próbki uzyskuje się poprzez odpowiednie przygotowanie środowiska, w którym próbka jest wykonywana. Ślad ten dostarcza dodatkowych metadanych umożliwiających sklasyfikowanie próbki. Czasem analiza tego typu dostarcza nam nowych próbek. Złośliwa próbka może na przykład próbować połączyć się z serwerem dowodzenia. Po zaobserwowaniu takiego zachowania adres serwera jest przekazywany z powrotem do systemu do dalszej analizy. Inny przykład, o którym wspomniałem wcześniej, to złośliwe oprogramowanie, które uruchamia osadzony kod. Kiedy tak się dzieje, osadzony kod jest przekazywany do systemu. Właśnie dlatego mamy logikę detekcji, która wykrywa nie tylko pierwotne złośliwe oprogramowanie, ale również wszystkie jego dalsze ogniwa w łańcuchu ataku. Ponieważ nasze produkty zasięgają informacji w chmurze, możemy gromadzić metadane od wszystkich użytkowników. Metadane te pozwalają ustalić, jak bardzo podejrzana jest dana próbka. Na przykład prewalencja próbki może świadczyć o jej potencjalnej złośliwości. Kiedy w pełni przetworzymy plik lub adres URL, przekazujemy wszystkie zgromadzone metadane do mechanizmu reguł, który określamy mianem automatyzacji zarządzania próbkami (Sample Management Automation, SMA). Reguły w tym systemie są częściowo pisane ręcznie, a częściowo adaptacyjne, w zależności od zmian w środowisku zagrożeń. System ten jest mózgiem całej naszej działalności – klasyfikuje i oznacza próbki w bazach danych, wydaje werdykty i powiadamia nas o nowych zagrożeniach. Detekcje beta Nie da się napisać dobrego oprogramowania bez skrupulatnych testów. Czasem nasi badacze wymyślają kreatywne sposoby wykrywania złośliwego oprogramowania, ale nie są pewni, jak zadziałają one w rzeczywistym świecie. Na przykład nowy typ detekcji może okazać się zbyt agresywny i zgłaszać mnóstwo fałszywie pozytywnych wyników, ale nie dowiemy się tego, dopóki nie wypróbujemy go „w naturze”. W takich przypadkach używamy detekcji beta. Detekcja beta informuje nas, co by zrobiła, ale nie wyzwala żadnych rzeczywistych operacji w produkcie lub samym systemie. Gromadząc dane otrzymane od tych fragmentów kodu, możemy je zoptymalizować i wprowadzić do użytku dopiero wtedy, gdy będą działały tak, jak należy. Detekcje beta to często bardzo zaawansowane programy. W wielu przypadkach wykorzystujemy w nich technologie opracowane z myślą o zagrożeniach, które umiemy już wyłapywać, ale używające innych, bardziej efektywnych metod. Staramy się, żeby każda stworzona ręcznie detekcja identyfikowała jak najwięcej rzeczywistych próbek, więc detekcje beta stanowią przydatne laboratorium do testowania nowych teorii. Wykorzystujemy detekcje beta zarówno w systemach back endu, jak i w urządzeniach końcowych. Podsumowanie Jak widać, logika detekcji przybiera wiele różnych form i może być używana do wielu różnych zadań. Technologie stojące za tymi metodami detekcji zaprojektowano tak, aby współpracowały ze sobą i chroniły urządzenia oraz użytkowników przed szeroką gamą wektorów ataku. Cały system jest dość skomplikowany, ale bardzo skuteczny. Ponadto nieustannie modernizujemy nasze technologie i metodologie w miarę, jak zmienia się krajobraz zagrożeń. Stosując wiele różnych warstw ochrony i nie stawiając wszystkiego na jedną kartę, utrudniamy napastnikom obejście zabezpieczeń. Kiedy więc następnym razem usłyszysz, jak ktoś mówi o „sygnaturach” w kontekście nowoczesnych produktów do ochrony punktów końcowych, będziesz wiedział, że albo jest niedoinformowany, albo sprzedaje fikcję. P.S. Gdybyś się zastanawiał – kiedy wyżej napisałem, że nie wiem, czy wolno mi ujawnić te informacje,  oczywiście żartowałem. Otrzymujemy dużo pozytywnych opinii na temat tej serii artykułów i nie mamy nic przeciwko temu, żeby otwarcie opowiadać o naszych technologiach.   Autorem artykułu jest Andy Patel  

August 22, 2016
AUTOR:  
ransomware_customer_journey_banner_image1

Trzy czwarte gangów korzystających z ransomware jest skłonnych do negocjacji okupu.

Cyberprzestępcy używający ransomware (oprogramowania do wymuszania okupu) paradoksalnie troszczą się o wygodę ofiary. Tak wynika z niedawnego eksperymentu opisanego w raporcie firmy F-Secure, który przedstawia doświadczenia ofiar pięciu wariantów ataków typu ransomware. Badanie pokazuje drogę klienta do odzyskania plików począwszy od zetknięcia się z pierwszym ekranem z żądaniem okupu, aż po interakcję z cyberprzestępcami. Wybrane wnioski z raportu są następujące: Grupy, które mają najbardziej profesjonalny interfejs, niekoniecznie mają najlepszy kontakt z ofiarą. Gangi korzystające z oprogramowania ransomware są zazwyczaj skłonne negocjować kwotę okupu. W trzech na cztery warianty umożliwiały one negocjacje, których efektem była średnia zniżka okupu o 29%. Terminy na przekazanie okupu nie muszą być sztywne. 100% badanych grup zgodziło się na opóźnienie terminu zapłaty. Jedna z grup twierdziła, że została wynajęta przez korporację do przeprowadzenia ataku na jej konkurencję. Rodzi się pytanie czy był to żart, czy jednak nowe realne zagrożenie?   W raporcie zwrócono uwagę na paradoks działań z wykorzystaniem oprogramowania szyfrującego. Badanie opisuje zachowania przestępców, którzy dorabiają się kosztem krzywdzonych przez siebie ludzi i firm. Jednocześnie jednak — jak w każdym szanującym się przedsięwzięciu — zależy im na dobrej obsłudze klienta, dbają więc o zapewnienie odpowiednich kanałów obsługi i niezawodne odszyfrowanie plików po uiszczeniu płatności. Grupy cyberprzestępcze często funkcjonują w sposób podobny do legalnie działających firm: mają np. własne witryny, pomocne działy FAQ, „okresy próbne” na deszyfrację plików, a nawet kanały obsługi klienta z konsultantami, z którymi można dojść do porozumienia.   „O atakach typu ransomware czytamy codziennie, a ostatnio do określenia ich proporcji coraz częściej używa się słowa „epidemia” – mówi Sean Sullivan, doradca ds. zabezpieczeń z F-Secure. „Chcieliśmy zaproponować inne spojrzenie na ten problem masowej przestępczości, a w istocie skorzystać z okazji, by przypomnieć użytkownikom indywidualnym i firmom, co mogą robić, by zabezpieczyć się przed tym zagrożeniem. Aktualizować oprogramowanie, korzystać z dobrych zabezpieczeń, uważać na to, co przychodzi e-mailem, a przede wszystkim, jeśli wszystko inne by zawiodło, regularnie tworzyć kopie zapasowe, jeszcze zanim padnie się ofiarą przestępstwa”. Pobierz pełen Raport. Wersja light Raportu  

July 22, 2016
AUTOR:  
harmful-web-site-blocked

O co chodzi z tą reputacją sieciową?

Ataki typu drive-by download, czyli instalacje oprogramowania bez wiedzy użytkownika, to jedno z budzących największy lęk zagrożeń w internecie. Narzędziem wykorzystywanym do tych ataków są pakiety exploitów. Badają one środowisko przeglądarki – typ i wersję przeglądarki, zainstalowane wtyczki i wersje wtyczek – aby znaleźć oprogramowanie podatne na atak. Jeśli pakiet exploitów znajdzie luki w zabezpieczeniach, wykorzystuje je do bezpośredniego uruchomienia kodu w systemie. W większości przypadków prowadzi to do instalacji złośliwego oprogramowania bez żadnej interakcji z użytkownikiem. W najgorszym scenariuszu kilka minut później na ekranie pojawia się instrukcja, jak zapłacić napastnikowi za przywrócenie świeżo zaszyfrowanych plików do pierwotnego stanu. Pakiety exploitów mogą czaić się w różnych zakątkach internetu. Oto kilka przykładów. Złośliwe domeny Istnieje wiele wątpliwych witryn, na które można się natknąć podczas przeglądania sieci. Przykładem mogą być nielegalne serwisy udostępniania plików, strony z torrentami i witryny pornograficzne. Niektóre z tych witryn bezpośrednio przechowują pakiety exploitów. Możesz też trafić do złośliwych witryn poprzez kliknięcie łącza w postach lub komentarzach na forach, blogach i stronach społecznościowych, a także w otrzymanych wiadomościach e-mail. Bez względu to, jak znajdziesz się na jednej z tych stron, ryzykujesz, że Twój system padnie łupem napastnika. Złośliwe reklamy Na większości stron internetowych wyświetlane są reklamy, w wielu przypadkach rozpowszechniane przez agencje reklamowe. Możesz trafić na złośliwą reklamę, kiedy napastnik przekaże ją do jednej z takich agencji. Aby prowadzić skuteczne kampanie, napastnicy posługujący się złośliwymi reklamami korzystają z usług bardziej popularnych agencji, które zamieszczają reklamy w bardziej popularnych witrynach. Ta tania i skuteczna metoda zapewnia napastnikom szeroko wykorzystywaną platformę do dystrybucji złośliwej treści. Obserwujemy to dość regularnie. Złośliwe reklamy to szczególnie podstępny wektor infekcji. Napastnicy nie muszą nakłaniać ofiar do zmiany zwykłych nawyków, żeby zainfekować ich systemy. Kiedy złośliwa reklama trafi na platformę reklamową, będzie automatycznie pokazywana w szerokiej gamie popularnych witryn. Gdy więc użytkownik następnym razem zajrzy do swojego ulubionego portalu informacyjnego, wizyta może skończyć się infekcją jego systemu, choć samą witrynę zasadniczo uważa się za bezpieczną. W dodatku nie musi nawet klikać reklamy, żeby ulec infekcji. Nawiasem mówiąc, złośliwe reklamy pojawiają się nie tylko w witrynach internetowych. Niedawno udokumentowaliśmy przypadek, w którym użyto reklam Skype’a do dostarczania złośliwej treści z wykorzystaniem tego samego mechanizmu. Zwykłe witryny przejęte przez napastników Hakerzy włamują się do legalnych witryn. Bardzo często. W rzeczywistości większość exploitów znajduje się w zhakowanych serwerach, które nie zostały „wyczyszczone”. Napastnicy atakują legalne witryny, kiedy ktoś znajdzie nową lukę w zabezpieczeniach usług internetowych (takich jak Apache lub WordPress). Często natychmiast po odkryciu nowej luki rozpoczyna się wyścig do przejęcia wszystkich dostępnych celów w internecie, a cały ten proces jest w dużej mierze zautomatyzowany. Regularnie dochodzi też do włamań do serwerów WordPressa, co nie dziwi, zważywszy na to, jak łatwo jest zdobyć nazwiska autorów blogów. Naturalnie, w zhakowanych w ten sposób witrynach umieszczane są pakiety exploitów, a dalszy ciąg tej historii jest Ci już dobrze znany. Prawdopodobnie uświadomiłeś już sobie, że higieniczne praktyki przeglądania sieci nie uchronią Cię przed atakami typu drive-by download. Właśnie dlatego wszystkie nowoczesne rozwiązania do ochrony punktów końcowych zawierają komponenty do blokowania adresów URL i skanowania sieci. Jeśli strona albo jej komponent nie zostaną wyświetlone w przeglądarce, to nie zostanie uruchomiony pakiet exploitów. Oczywiście, nie muszę przypominać, że regularne aktualizowanie oprogramowania w systemie bardzo pomaga bronić się przed takimi atakami. Krajobraz złośliwych adresów URL zmienia się błyskawicznie, dlatego wyszukiwania w chmurze to najlepszy sposób, żeby nadążyć za tymi zmianami. Prosta kwerenda chmurowa na znormalizowanej wersji żądanego adresu URL, tuż przed jego odwiedzeniem, pozwala dowiedzieć się, czy witryna jest bezpieczna. Uzyskany werdykt może też zawierać inne informacje; oprócz wskazywania, czy witryna jest złośliwa, może też informować, jaki rodzaj treści się w niej znajduje. Przydaje się to do filtrowania treści, na przykład do kontroli rodzicielskiej. Jeśli widzisz coś takiego, prawdopodobnie kliknąłeś coś, czego nie chciałeś kliknąć. W laboratoriach F-Secure mamy wiele źródeł uzupełniających i odświeżających nasze repozytoria adresów URL. Kiedy liczyliśmy ostatnio, było ich ponad 70. Otrzymujemy ponad 500 000 nowych adresów URL dziennie. Niektóre pochodzą z „honeypotów” i pułapek na spam, inne ze statycznej lub dynamicznej analizy malware’u. Wprowadzając potencjalnie złośliwe adresy do naszych zautomatyzowanych „piaskownic”, możemy sprawdzić, co się stanie z maszyną wirtualną, i odpowiednio sklasyfikować witrynę. Mamy też systemy eksperckie, które automatyzują klasyfikowanie treści. Nasze systemy prawdopodobnie zginęłyby pod lawiną miliardów wpisów, gdybyśmy przechowywali klasyfikację każdej możliwej ścieżki URL. Aby temu zapobiec, złożona logika automatyzacji decyduje, czy sklasyfikować całą domenę, czy pojedyncze katalogi. Używamy też informacji whois do klasyfikowania całych domen. Oprócz prostej taktyki sprawdzania adresów URL w chmurze, używamy kilku innych sztuczek, żeby chronić klientów przed złośliwymi witrynami. Przeprowadzając analizę heurystyczną ruchu do adresu URL, możemy wychwycić pewne typy złośliwych zachowań. Nasze komponenty ochronne badają również treść, nagłówki i metadane adresu URL i podejmują decyzje na podstawie tych informacji. Blokowanie dostępu do adresów URL uniemożliwia też malware’owi komunikację z serwerami dowodzenia (C&C). Jak wspomniałem w pierwszym poście z tej serii, zapobieganie kontaktowi użytkownika ze złośliwą witryną jest pierwszą linią obrony przed rzeczywistymi zagrożeniami. A w obliczu zagrożenia atakiem drive-by download jest to ważny pierwszy krok. Kiedy więc następnym razem zobaczysz wyskakujące okno w rogu ekranu tuż po kliknięciu łącza, będziesz zadowolony, że nie padłeś ofiarą paskudnego trojana, który pobiera oprogramowanie wymuszające okup.   Autorem artykułu jest Andy Patel.

July 19, 2016
AUTOR:  

Najnowsze wpisy

static_analysis_research_closeup

Logika detekcji jest używana przez różnorodne mechanizmy w nowoczesnym oprogramowaniu do ochrony punktów końcowych. W branży cyberbezpieczeństwa określa się ją wieloma różnymi nazwami. Podobnie jak laicy używają terminu „wirus” na określenie tego, co specjaliści od bezpieczeństwa nazywają „złośliwym oprogramowaniem” (z technicznego punktu widzenia wirus to program, który rozprzestrzenia się poprzez umieszczanie swoich kopii w innym programie, pliku danych lub sektorze rozruchowym), logika detekcji bywa nazywana „sygnaturami”, „odciskami palców”, „wzorcami” albo „wskaźnikami IOC”. Kiedy zatem ktoś mówi o wirusie, zazwyczaj ma na myśli złośliwe oprogramowanie, a gdy mówi o sygnaturach, często myśli o logice detekcji. No chyba że mówi właśnie o prostych detekcjach sygnaturowych, których używano w latach osiemdziesiątych i dziewięćdziesiątych. W F-Secure logikę detekcji często nazywamy po prostu „detekcjami”. W poprzednich odcinkach tej serii pisałem o mechanizmach skanowania, mechanizmach behawioralnych i reputacji seciowej oraz o tym, jak współpracują one ze sobą w celu blokowania zagrożeń. Teraz chciałbym wyjaśnić, jak wygląda logika detekcji używana przez te mechanizmy i jak się ją tworzy. Jest to nieco dłuższy artykuł, więc proszę o cierpliwość. Okazało się, że aby szczegółowo i sensownie wyjaśnić ten temat, będę musiał omówić kilka różnych obszarów. Poszczególne koncepcje w wielu miejscach łączą się ze sobą, więc postanowiłem przygotować jeden długi post zamiast kilku oddzielnych wpisów. Szkic tego tekstu przejrzało całkiem sporo osób, ale niektórzy właśnie wyjechali na wakacje, zatem mam nadzieję, że nikt nie będzie miał pretensji, że ujawniam te wszystkie informacje. W nowoczesnych produktach zabezpieczających wykorzystuje się różne typy logiki detekcji. Omówię każdy z nich w oddzielnej sekcji. O czym to mówiliśmy? Ach tak, skomplikowana matematyka i sztuczna inteligencja. Chmurowa logika detekcji Nowoczesne oprogramowanie zabezpieczające zwykle zawiera jeden lub więcej komponentów klienckich, które wykonują kwerendy przez internet. Logika detekcji jest często realizowana częściowo przez komponenty klienckie, a częściowo przez serwer. W najprostszych przypadkach unikatowy identyfikator obiektu (na przykład jego skrót kryptograficzny) jest przekazywany do serwera, który odsyła prosty werdykt „dobry/zły/nieznany”, uwzględniany przez program kliencki podczas podejmowania ostatecznej decyzji. W bardziej skomplikowanych przypadkach program kliencki wyodrębnia z obiektu metadane i wysyła do je serwera, który następnie stosuje własny zbiór reguł i zwraca werdykt albo nowy zbiór wartości, które program kliencki przetwarza przed wydaniem werdyktu. Nawet najprostsze wyszukiwania chmurowe są bardzo skuteczne. Systemy back-endu mają dostęp do pełnej bazy próbek, a także do informacji i metadanych zbieranych od wszystkich użytkowników naszego oprogramowania. Samo urządzenie końcowe nie miałoby dostępu do tych dodatkowych informacji. Kwerenda chmurowa umożliwia przekazanie ich do programu klienckiego, gdzie mogą zostać wykorzystane przez poszczególne komponenty ochronne. Dobrym przykładem jest sprawdzanie potencjalnej szkodliwości plików za pomocą wskaźnika prewalencji. Warto wspomnieć tu jeszcze o skanowaniu chmurowym. Próbki można wysyłać z urządzenia końcowego do chmury w celu przeprowadzenia skomplikowanej analizy, której nie dałoby się wykonać po stronie klienta. Analiza ta może obejmować przepuszczanie próbki przez wiele mechanizmów skanowania, poddawanie jej analizie statycznej oraz dynamicznej. Detekcje na back-endzie projektuje się tak, aby wydawały werdykt poprzez przetwarzanie metadanych wygenerowanych podczas tych analiz. Omówię to bardziej szczegółowo w sekcji poświęconej detekcjom na back-endzie. Heurystyczna logika detekcji Zadaniem heurystycznej logiki detekcji jest wyszukiwanie wzorów często pojawiających się w złośliwych plikach. Detekcje heurystyczne mogą być generowane przez techniki maszynowego uczenia się albo tworzone ręcznie. Stworzona ręcznie logika detekcji heurystycznej może na przykład sprawdzać, czy w skrypcie często występuje znak „+”, co może świadczyć o zastosowaniu typowych technik „zaciemniania” kodu. Bardziej skomplikowane ręczne detekcje mogą szukać wielu wzorów. Wskaźnik potencjalnej szkodliwości jest zwykle obliczany na podstawie obecności tego rodzaju wzorów, a następnie łączony z innymi metadanymi w celu wydania ostatecznego werdyktu. System maszynowego uczenia się, który nauczono rozpoznawać strukturalne wzory często występujące w plikach złośliwych, ale nie w „czystych”, umożliwia zbudowanie złożonej logiki heurystycznej. W tym celu wprowadza się duże zbiory złośliwych i czystych plików, które zostały zweryfikowane przez ekspertów, do systemu maszynowego uczenia się, a następnie skrupulatnie testuje się wyniki. Jeśli uzyskany w ten sposób pakiet detekcji jest wystarczająco wydajny i nie generuje fałszywie pozytywnych ani fałszywie negatywnych wyników, wdraża się go w urządzeniu końcowym. Proces ten należy regularnie powtarzać, aby dostosować logikę detekcji do zmieniającego się krajobrazu zagrożeń. Tego rodzaju pakiety detekcji również działają na zasadzie wyszukiwania charakterystycznych cech i wzorów w próbkach oraz stosowania modeli matematycznych w celu obliczenia wskaźnika potencjalnej szkodliwości. Informacje zawarte w strukturze pliku PE można czasem wykorzystać w celu ustalenia, jak bardzo podejrzany jest dany plik. Jakość detekcji heurystycznych zależy w dużym stopniu od tego, jak dobrze wyszkolono system maszynowego uczenia się. To z kolei zależy od jakości próbek użytych podczas etapów treningu i testowania, a jakość próbek – od odpowiedniej kombinacji automatyzacji i ludzkiego nadzoru. Wymaga to doświadczenia, czasu i środków, ale pozwala uzyskać znakomite efekty. Reguły behawioralne Mechanizmy analizujące wykonywanie kodu zawierają zbiór reguł, które pozwalają określić, czy obserwowane wzory behawioralne są podejrzane lub złośliwe. Niektóre reguły behawioralne można wygenerować automatycznie, inne opracowuje się ręcznie. Poprzez badanie nowych technik włamań oraz wektorów ataku można stworzyć reguły behawioralne, zanim techniki te upowszechnią się w złośliwym oprogramowaniu. Następnie można zaprojektować ogólne reguły behawioralne, które wyłapują wszelkie rodzaje złośliwej aktywności, i w ten sposób pozostać o krok przed napastnikami.  Nasi badacze w F-Secure Labs zawsze wypatrują aktualnych trendów w krajobrazie zagrożeń. Kiedy zidentyfikują nowe metodologie, przystępują do pracy nad nowymi regułami w oparciu o wyniki badań. Jak więc działają reguły behawioralne? Kiedy coś się wykonuje (może to oznaczać uruchomienie pliku wykonywalnego, otwarcie dokumentu w odpowiednim programie itd.), system generuje ślad wykonania. Ślad ten jest przekazywany do procedur detekcji, których zadaniem jest reagować na pewne sekwencje zdarzeń. Do typów zdarzeń, które może sprawdzać reguła behawioralna, należy na przykład: tworzenie, niszczenie lub wstrzymywanie procesu, próby „wstrzyknięcia” kodu, manipulacje w systemie plików, operacje na rejestrze. Każde zdarzenie przekazywane do reguły behawioralnej zawiera zbiór powiązanych z nim metadanych. Reguły mają również dostęp do globalnych metadanych śladu wykonania, takich jak identyfikator procesu (PID), ścieżka do pliku i proces macierzysty. Dostępne są też metadane pochodzące z kwerend chmurowych oraz innych komponentów ochronnych, m.in. wskaźnik prewalencji oraz pochodzenie pliku (historia pliku od momentu, w którym pojawił się w systemie, która może obejmować na przykład adres URL, spod którego pobrano plik). Jak można sobie wyobrazić, wszystkie te informacje umożliwiają zbudowanie całkiem kreatywnej logiki. Oczywiście, nieustannie aktualizujemy logikę i funkcje naszych komponentów detekcji behawioralnej w miarę, jak zmienia się krajobraz zagrożeń i jak dokonujemy ulepszeń.  Kto by tego nie robił? Generyczna logika detekcji Tworząc skomplikowane programy, które są wykonywane w urządzeniach końcowych, możemy zautomatyzować niektóre techniki inżynierii wstecznej w celu wykrywania złośliwego oprogramowania. Tutaj robi się interesująco, ale wyjaśnienie tego zajmie trochę czasu. Istnieje wiele typów plików, które mogą zawierać złośliwy kod. Oto kilka przykładów: dokumenty, na przykład w formacie PDF lub MS Office, pliki wykonywalne przeznaczone do różnych systemów operacyjnych i architektur, takie jak PE, ELF, Mach-O i .NET. pakiety aplikacyjne, takie jak APK, OS X (.app) i Flash (SWF), obrazy dysku, takie jak ISO i DMG, skompilowany kod bajtowy, na przykład klasy Javy lub pliki dex w Androidzie, języki znakowania, takie jak HTML lub XML, skrypty, na przykład VBScript, JavaScript oraz skrypty powłoki systemu operacyjnego, kontenery, takie jak zip, 7z, i RAR. Do pracy z tymi wszystkimi formatami plików często potrzebne są parsery. Parsery identyfikują użyteczne osadzone struktury i wyodrębniają je z odpowiednich kontenerów. Przykładem osadzonych struktur są zasoby (dźwięki, grafika, wideo i dane), nagłówki PE, sekcje PE, podpisy Authenticode, manifesty Androida i skompilowany kod. Mówiąc prosto, parser dzieli plik wejściowy na części składowe i udostępnia je logice detekcji jako łatwo dostępne struktury danych. Formaty plików są często skomplikowane i obejmują wiele przypadków specjalnych. Dzieląc plik na części i przekazując strukturę danych do logiki detekcji, unikamy wielokrotnego powielania złożonego kodu analizy składniowej. Możemy też upewnić się, że kod jest niezawodny i wydajny. W złośliwych plikach często osadzone są inne pliki (różnych typów). Na przykład złośliwy dokument PDF może zawierać osadzony kod Flash, kod wykonywalny, shellcode lub skrypty. Te osadzone pliki są często zaszyfrowane lub zaciemnione. Kiedy zewnętrzny złośliwy plik jest otwierany lub uruchamiany, deszyfruje zawarte w nim obiekty, zapisuje je w pamięci lub na dysku, po czym wykonuje. Same złośliwe pliki wykonywalne często używają standardowych programów do kompresji/ochrony kodu, takich jak UPX lub ASPack, aby zaciemnić swój kod i struktury. W większości przypadków stosuje się kolejno kilka różnych programów do kompresji, a często również niestandardowe metody zaciemniania stworzone przez autora złośliwego oprogramowania. Docieranie do rzeczywistego kodu wewnątrz złośliwego pliku wykonywalnego przypomina obieranie cebuli. Problem ze spakowanymi plikami polega na tym, że wszystkie wyglądają bardzo podobnie, a niektóre zwykłe pliki wykonywalne również używają kompresji. Aby prawidłowo zidentyfikować złośliwy plik, często trzeba usunąć te warstwy. Usuwanie typowej kompresji jest łatwe – nietrudno rozpoznać standardowe programy do ochrony kodu. Trudniej usunąć niestandardowe zaciemnienie. Jednym ze sposobów jest wyodrębnienie kodu deszyfrującego oraz bloków danych ze złośliwego oprogramowania i uruchomienie ich w „piaskownicy” w taki sposób, żeby złośliwy kod sam się rozpakował. Innym trikiem jest napisanie procedury, która analizuje kod usuwający zaciemnienie, identyfikuje klucz deszyfrujący i lokalizuje dane, po czym wyodrębnia obraz wykonywalny. Dzięki usunięciu warstw obronnych ze złośliwego pliku wykonywalnego logika detekcji może przeanalizować właściwy, głęboko ukryty kod. Uzyskany w ten sposób obraz można przetwarzać na wiele różnych sposobów. Te same techniki stosuje się do wyodrębniania obiektów z plików w formatach innych niż PE, takich jak dokumenty PDF i MS Office, a podobne metody deszyfrowania pozwalają usunąć zaciemnienie na przykład ze złośliwego kodu JavaScript. Tworzenie detekcji tego typu bywa czasochłonne, ale z pewnością warte zachodu. Detekcje generyczne nie tylko pozwalają wyłapać dużą liczbę złośliwych plików, ale mają też długi okres ważności. W wielu przypadkach nowe warianty tej samej rodziny złośliwego oprogramowania są wykrywane przez dobrze napisaną detekcję generyczną bez żadnych modyfikacji. Na naszej mapie świata widać że większość, jeśli nie wszystkie spośród naszych 10 najczęstszych detekcji to ręcznie napisane detekcje generyczne. Szczerze mówiąc, wszystko, co tu napisałem, to bardzo powierzchowne omówienie działania tych technologii. Trzeba pamiętać, że logika detekcji ma również dostęp do informacji z kwerend chmurowych oraz śledzenia pochodzenia plików i może działać na dowolnych strumieniach danych, w tym przechowywanych w pamięci i przesyłanych przez sieć, więc nietrudno zrozumieć, czemu te zagadnienia są tak skomplikowane. Żeby je dogłębnie wyjaśnić, prawdopodobnie trzeba by napisać całą książkę. Sieciowa logika detekcji Blokowanie ataków w sieci, na przykład pakietów exploitów, to coś, na co kładziemy duży nacisk. Powstrzymywanie zagrożeń na wczesnym etapie to skuteczny sposób ochrony urządzeń przed infekcjami. Jak wspomniano w poprzedniej sekcji, strumienie danych napływających z sieci można analizować w podobny sposób, jak bada się pliki na dysku. Różnica polega na tym, że w sieci, w miarę przybywania informacji, można wykorzystać mechanizmy, które w locie blokują lub filtrują dostęp do dalszych wektorów ataku. Sieciowa logika detekcji w urządzeniu końcowym ma dostęp do adresów IP i URL, zapytań DNS, certyfikatów TLS, nagłówków HTTP, treści HTTP oraz wielu innych metadanych. Może również badać reputację sieciową, w tym reputację adresów URL, certyfikatów i adresów IP (za pośrednictwem kwerend chmurowych). Dysponując tymi wszystkimi informacjami, można zrobić sporo interesujących rzeczy. Oto kilka przykładów. Zachowanie witryny internetowej można badać w czasie rzeczywistym, co pozwala wykrywać i blokować pakiety exploitów. Można zablokować komunikację między botem a jego serwerem dowodzenia na podstawie adresu IP, z którym próbuje skontaktować się bot. Można też blokować komunikację z serwerami dowodzenia na podstawie wzorów ruchu sieciowego. Witryny wyłudzające informacje można blokować na podstawie nagłówka HTTP, treści HTTP albo jednego i drugiego. Można blokować wiele typów złośliwych przekierowań, w tym przekierowania Flasha. Technologie przechwytujące działające na poziomie sieci umożliwiają nam wyodrębnienie i zapisanie danych na temat obiektów przybywających do systemu. Metadane te są dostępne dla innych komponentów ochronnych, które uwzględniają je w procesie podejmowania decyzji. Pamięciowa logika detekcji Tropienie śladów złośliwego kodu w pamięci to użyteczna technika, zwłaszcza podczas instalacji w systemie, który wcześniej nie był chroniony. Niektóre typy złośliwego oprogramowania, zwłaszcza rootkity, można wykryć tylko tą metodą. Niektóre złośliwe programy aktywnie zapobiegają instalacji oprogramowania ochronnego w systemie. Oczyszczenie systemu przed uruchomieniem instalatora jest zatem ważnym krokiem. Uruchamiamy procedury śledcze, w tym funkcje skanowania pamięci, na wczesnym etapie instalacji naszych produktów, aby usunąć ewentualne infekcje, do których doszło w przeszłości. Te same procedury śledcze mogą być uruchamiane okresowo lub ręcznie, aby zagwarantować, że nic nie prześliznęło się przez nasze szyki defensywne. Jak już wspomniałem, przedzieranie się przez warstwy zaciemnienia bywa dość skomplikowane. Badając przestrzeń adresową używaną przez złośliwe oprogramowanie, często można znaleźć obraz z usuniętym zaciemnieniem. Nie jest to jednak regułą. Standardowe programy do kompresji zwykle zapisują kod w pamięci i uruchamiają go, ale jeśli złośliwe oprogramowanie używa niestandardowej metody zaciemniania, może skorzystać z różnych trików, aby kod pozostał zaciemniony nawet w pamięci. Prostym sposobem może być zaciemnienie łańcuchów tekstu. W bardziej skomplikowanych przypadkach kod jest przekształcany w specjalny, jednorazowy, generowany podczas kompilacji zbiór instrukcji, który jest wykonywany pod kontrolą niestandardowej maszyny wirtualnej. Logika detekcji w systemach zaplecza Duża moc naszych systemów zaplecza umożliwia nam kosztowną obliczeniowo, czasochłonną analizę próbek, której nie dałoby się przeprowadzić w urządzeniu końcowym. Wykonując szereg czynności analitycznych i łącząc rezultaty tych operacji z metadanymi pochodzącymi z kwerend klienckich oraz naszych systemów przechowywania próbek, możemy automatycznie przetwarzać i klasyfikować duże ilości próbek, czego nie bylibyśmy w stanie zrobić ręcznie. Procesy te dostarczają nam również wiele użytecznych informacji o zagrożeniach. Niektóre technologie używane w naszych produktach do ochrony punktów końcowych można również wykorzystać do rygorystycznej analizy statycznej. W tym celu pisze się specjalny kod detekcyjny, który wyodrębnia metadane i identyfikuje charakterystykę próbki, zamiast po prostu wydać werdykt.  To tylko jedna z metod, których używamy do preparowania próbek. Inne systemy, zaprojektowane pod kątem przetwarzania konkretnych typów plików, również dostarczają istotne metadane na potrzeby logiki decyzyjnej. Ponadto przepuszczamy próbki przez systemy, które heurystycznie określają potencjalną szkodliwość pliku na podstawie cech strukturalnych. Classy i Gemmy, dwa komponenty automatyzujące rozpoznawanie złośliwego oprogramowania, opracowane około pięć lat temu w ramach wspólnego projektu badawczego z uniwersytetem Aalto Adresy URL i próbki, które można wykonać, są wysyłane do sandboksów i poddawane analizie dynamicznej. Ślad działania próbki uzyskuje się poprzez odpowiednie przygotowanie środowiska, w którym próbka jest wykonywana. Ślad ten dostarcza dodatkowych metadanych umożliwiających sklasyfikowanie próbki. Czasem analiza tego typu dostarcza nam nowych próbek. Złośliwa próbka może na przykład próbować połączyć się z serwerem dowodzenia. Po zaobserwowaniu takiego zachowania adres serwera jest przekazywany z powrotem do systemu do dalszej analizy. Inny przykład, o którym wspomniałem wcześniej, to złośliwe oprogramowanie, które uruchamia osadzony kod. Kiedy tak się dzieje, osadzony kod jest przekazywany do systemu. Właśnie dlatego mamy logikę detekcji, która wykrywa nie tylko pierwotne złośliwe oprogramowanie, ale również wszystkie jego dalsze ogniwa w łańcuchu ataku. Ponieważ nasze produkty zasięgają informacji w chmurze, możemy gromadzić metadane od wszystkich użytkowników. Metadane te pozwalają ustalić, jak bardzo podejrzana jest dana próbka. Na przykład prewalencja próbki może świadczyć o jej potencjalnej złośliwości. Kiedy w pełni przetworzymy plik lub adres URL, przekazujemy wszystkie zgromadzone metadane do mechanizmu reguł, który określamy mianem automatyzacji zarządzania próbkami (Sample Management Automation, SMA). Reguły w tym systemie są częściowo pisane ręcznie, a częściowo adaptacyjne, w zależności od zmian w środowisku zagrożeń. System ten jest mózgiem całej naszej działalności – klasyfikuje i oznacza próbki w bazach danych, wydaje werdykty i powiadamia nas o nowych zagrożeniach. Detekcje beta Nie da się napisać dobrego oprogramowania bez skrupulatnych testów. Czasem nasi badacze wymyślają kreatywne sposoby wykrywania złośliwego oprogramowania, ale nie są pewni, jak zadziałają one w rzeczywistym świecie. Na przykład nowy typ detekcji może okazać się zbyt agresywny i zgłaszać mnóstwo fałszywie pozytywnych wyników, ale nie dowiemy się tego, dopóki nie wypróbujemy go „w naturze”. W takich przypadkach używamy detekcji beta. Detekcja beta informuje nas, co by zrobiła, ale nie wyzwala żadnych rzeczywistych operacji w produkcie lub samym systemie. Gromadząc dane otrzymane od tych fragmentów kodu, możemy je zoptymalizować i wprowadzić do użytku dopiero wtedy, gdy będą działały tak, jak należy. Detekcje beta to często bardzo zaawansowane programy. W wielu przypadkach wykorzystujemy w nich technologie opracowane z myślą o zagrożeniach, które umiemy już wyłapywać, ale używające innych, bardziej efektywnych metod. Staramy się, żeby każda stworzona ręcznie detekcja identyfikowała jak najwięcej rzeczywistych próbek, więc detekcje beta stanowią przydatne laboratorium do testowania nowych teorii. Wykorzystujemy detekcje beta zarówno w systemach back endu, jak i w urządzeniach końcowych. Podsumowanie Jak widać, logika detekcji przybiera wiele różnych form i może być używana do wielu różnych zadań. Technologie stojące za tymi metodami detekcji zaprojektowano tak, aby współpracowały ze sobą i chroniły urządzenia oraz użytkowników przed szeroką gamą wektorów ataku. Cały system jest dość skomplikowany, ale bardzo skuteczny. Ponadto nieustannie modernizujemy nasze technologie i metodologie w miarę, jak zmienia się krajobraz zagrożeń. Stosując wiele różnych warstw ochrony i nie stawiając wszystkiego na jedną kartę, utrudniamy napastnikom obejście zabezpieczeń. Kiedy więc następnym razem usłyszysz, jak ktoś mówi o „sygnaturach” w kontekście nowoczesnych produktów do ochrony punktów końcowych, będziesz wiedział, że albo jest niedoinformowany, albo sprzedaje fikcję. P.S. Gdybyś się zastanawiał – kiedy wyżej napisałem, że nie wiem, czy wolno mi ujawnić te informacje,  oczywiście żartowałem. Otrzymujemy dużo pozytywnych opinii na temat tej serii artykułów i nie mamy nic przeciwko temu, żeby otwarcie opowiadać o naszych technologiach.   Autorem artykułu jest Andy Patel  

August 22, 2016
ransomware_customer_journey_banner_image1

Cyberprzestępcy używający ransomware (oprogramowania do wymuszania okupu) paradoksalnie troszczą się o wygodę ofiary. Tak wynika z niedawnego eksperymentu opisanego w raporcie firmy F-Secure, który przedstawia doświadczenia ofiar pięciu wariantów ataków typu ransomware. Badanie pokazuje drogę klienta do odzyskania plików począwszy od zetknięcia się z pierwszym ekranem z żądaniem okupu, aż po interakcję z cyberprzestępcami. Wybrane wnioski z raportu są następujące: Grupy, które mają najbardziej profesjonalny interfejs, niekoniecznie mają najlepszy kontakt z ofiarą. Gangi korzystające z oprogramowania ransomware są zazwyczaj skłonne negocjować kwotę okupu. W trzech na cztery warianty umożliwiały one negocjacje, których efektem była średnia zniżka okupu o 29%. Terminy na przekazanie okupu nie muszą być sztywne. 100% badanych grup zgodziło się na opóźnienie terminu zapłaty. Jedna z grup twierdziła, że została wynajęta przez korporację do przeprowadzenia ataku na jej konkurencję. Rodzi się pytanie czy był to żart, czy jednak nowe realne zagrożenie?   W raporcie zwrócono uwagę na paradoks działań z wykorzystaniem oprogramowania szyfrującego. Badanie opisuje zachowania przestępców, którzy dorabiają się kosztem krzywdzonych przez siebie ludzi i firm. Jednocześnie jednak — jak w każdym szanującym się przedsięwzięciu — zależy im na dobrej obsłudze klienta, dbają więc o zapewnienie odpowiednich kanałów obsługi i niezawodne odszyfrowanie plików po uiszczeniu płatności. Grupy cyberprzestępcze często funkcjonują w sposób podobny do legalnie działających firm: mają np. własne witryny, pomocne działy FAQ, „okresy próbne” na deszyfrację plików, a nawet kanały obsługi klienta z konsultantami, z którymi można dojść do porozumienia.   „O atakach typu ransomware czytamy codziennie, a ostatnio do określenia ich proporcji coraz częściej używa się słowa „epidemia” – mówi Sean Sullivan, doradca ds. zabezpieczeń z F-Secure. „Chcieliśmy zaproponować inne spojrzenie na ten problem masowej przestępczości, a w istocie skorzystać z okazji, by przypomnieć użytkownikom indywidualnym i firmom, co mogą robić, by zabezpieczyć się przed tym zagrożeniem. Aktualizować oprogramowanie, korzystać z dobrych zabezpieczeń, uważać na to, co przychodzi e-mailem, a przede wszystkim, jeśli wszystko inne by zawiodło, regularnie tworzyć kopie zapasowe, jeszcze zanim padnie się ofiarą przestępstwa”. Pobierz pełen Raport. Wersja light Raportu  

July 22, 2016
harmful-web-site-blocked

Ataki typu drive-by download, czyli instalacje oprogramowania bez wiedzy użytkownika, to jedno z budzących największy lęk zagrożeń w internecie. Narzędziem wykorzystywanym do tych ataków są pakiety exploitów. Badają one środowisko przeglądarki – typ i wersję przeglądarki, zainstalowane wtyczki i wersje wtyczek – aby znaleźć oprogramowanie podatne na atak. Jeśli pakiet exploitów znajdzie luki w zabezpieczeniach, wykorzystuje je do bezpośredniego uruchomienia kodu w systemie. W większości przypadków prowadzi to do instalacji złośliwego oprogramowania bez żadnej interakcji z użytkownikiem. W najgorszym scenariuszu kilka minut później na ekranie pojawia się instrukcja, jak zapłacić napastnikowi za przywrócenie świeżo zaszyfrowanych plików do pierwotnego stanu. Pakiety exploitów mogą czaić się w różnych zakątkach internetu. Oto kilka przykładów. Złośliwe domeny Istnieje wiele wątpliwych witryn, na które można się natknąć podczas przeglądania sieci. Przykładem mogą być nielegalne serwisy udostępniania plików, strony z torrentami i witryny pornograficzne. Niektóre z tych witryn bezpośrednio przechowują pakiety exploitów. Możesz też trafić do złośliwych witryn poprzez kliknięcie łącza w postach lub komentarzach na forach, blogach i stronach społecznościowych, a także w otrzymanych wiadomościach e-mail. Bez względu to, jak znajdziesz się na jednej z tych stron, ryzykujesz, że Twój system padnie łupem napastnika. Złośliwe reklamy Na większości stron internetowych wyświetlane są reklamy, w wielu przypadkach rozpowszechniane przez agencje reklamowe. Możesz trafić na złośliwą reklamę, kiedy napastnik przekaże ją do jednej z takich agencji. Aby prowadzić skuteczne kampanie, napastnicy posługujący się złośliwymi reklamami korzystają z usług bardziej popularnych agencji, które zamieszczają reklamy w bardziej popularnych witrynach. Ta tania i skuteczna metoda zapewnia napastnikom szeroko wykorzystywaną platformę do dystrybucji złośliwej treści. Obserwujemy to dość regularnie. Złośliwe reklamy to szczególnie podstępny wektor infekcji. Napastnicy nie muszą nakłaniać ofiar do zmiany zwykłych nawyków, żeby zainfekować ich systemy. Kiedy złośliwa reklama trafi na platformę reklamową, będzie automatycznie pokazywana w szerokiej gamie popularnych witryn. Gdy więc użytkownik następnym razem zajrzy do swojego ulubionego portalu informacyjnego, wizyta może skończyć się infekcją jego systemu, choć samą witrynę zasadniczo uważa się za bezpieczną. W dodatku nie musi nawet klikać reklamy, żeby ulec infekcji. Nawiasem mówiąc, złośliwe reklamy pojawiają się nie tylko w witrynach internetowych. Niedawno udokumentowaliśmy przypadek, w którym użyto reklam Skype’a do dostarczania złośliwej treści z wykorzystaniem tego samego mechanizmu. Zwykłe witryny przejęte przez napastników Hakerzy włamują się do legalnych witryn. Bardzo często. W rzeczywistości większość exploitów znajduje się w zhakowanych serwerach, które nie zostały „wyczyszczone”. Napastnicy atakują legalne witryny, kiedy ktoś znajdzie nową lukę w zabezpieczeniach usług internetowych (takich jak Apache lub WordPress). Często natychmiast po odkryciu nowej luki rozpoczyna się wyścig do przejęcia wszystkich dostępnych celów w internecie, a cały ten proces jest w dużej mierze zautomatyzowany. Regularnie dochodzi też do włamań do serwerów WordPressa, co nie dziwi, zważywszy na to, jak łatwo jest zdobyć nazwiska autorów blogów. Naturalnie, w zhakowanych w ten sposób witrynach umieszczane są pakiety exploitów, a dalszy ciąg tej historii jest Ci już dobrze znany. Prawdopodobnie uświadomiłeś już sobie, że higieniczne praktyki przeglądania sieci nie uchronią Cię przed atakami typu drive-by download. Właśnie dlatego wszystkie nowoczesne rozwiązania do ochrony punktów końcowych zawierają komponenty do blokowania adresów URL i skanowania sieci. Jeśli strona albo jej komponent nie zostaną wyświetlone w przeglądarce, to nie zostanie uruchomiony pakiet exploitów. Oczywiście, nie muszę przypominać, że regularne aktualizowanie oprogramowania w systemie bardzo pomaga bronić się przed takimi atakami. Krajobraz złośliwych adresów URL zmienia się błyskawicznie, dlatego wyszukiwania w chmurze to najlepszy sposób, żeby nadążyć za tymi zmianami. Prosta kwerenda chmurowa na znormalizowanej wersji żądanego adresu URL, tuż przed jego odwiedzeniem, pozwala dowiedzieć się, czy witryna jest bezpieczna. Uzyskany werdykt może też zawierać inne informacje; oprócz wskazywania, czy witryna jest złośliwa, może też informować, jaki rodzaj treści się w niej znajduje. Przydaje się to do filtrowania treści, na przykład do kontroli rodzicielskiej. Jeśli widzisz coś takiego, prawdopodobnie kliknąłeś coś, czego nie chciałeś kliknąć. W laboratoriach F-Secure mamy wiele źródeł uzupełniających i odświeżających nasze repozytoria adresów URL. Kiedy liczyliśmy ostatnio, było ich ponad 70. Otrzymujemy ponad 500 000 nowych adresów URL dziennie. Niektóre pochodzą z „honeypotów” i pułapek na spam, inne ze statycznej lub dynamicznej analizy malware’u. Wprowadzając potencjalnie złośliwe adresy do naszych zautomatyzowanych „piaskownic”, możemy sprawdzić, co się stanie z maszyną wirtualną, i odpowiednio sklasyfikować witrynę. Mamy też systemy eksperckie, które automatyzują klasyfikowanie treści. Nasze systemy prawdopodobnie zginęłyby pod lawiną miliardów wpisów, gdybyśmy przechowywali klasyfikację każdej możliwej ścieżki URL. Aby temu zapobiec, złożona logika automatyzacji decyduje, czy sklasyfikować całą domenę, czy pojedyncze katalogi. Używamy też informacji whois do klasyfikowania całych domen. Oprócz prostej taktyki sprawdzania adresów URL w chmurze, używamy kilku innych sztuczek, żeby chronić klientów przed złośliwymi witrynami. Przeprowadzając analizę heurystyczną ruchu do adresu URL, możemy wychwycić pewne typy złośliwych zachowań. Nasze komponenty ochronne badają również treść, nagłówki i metadane adresu URL i podejmują decyzje na podstawie tych informacji. Blokowanie dostępu do adresów URL uniemożliwia też malware’owi komunikację z serwerami dowodzenia (C&C). Jak wspomniałem w pierwszym poście z tej serii, zapobieganie kontaktowi użytkownika ze złośliwą witryną jest pierwszą linią obrony przed rzeczywistymi zagrożeniami. A w obliczu zagrożenia atakiem drive-by download jest to ważny pierwszy krok. Kiedy więc następnym razem zobaczysz wyskakujące okno w rogu ekranu tuż po kliknięciu łącza, będziesz zadowolony, że nie padłeś ofiarą paskudnego trojana, który pobiera oprogramowanie wymuszające okup.   Autorem artykułu jest Andy Patel.

July 19, 2016
floppies

W F-Secure Labs często używamy słowa „prewalencja”. Cóż to takiego? Prewalencja (częstość występowania) pliku wykonywalnego określa, ile razy napotkali go wszyscy nasi klienci. Złośliwe pliki wykonywalne zwykle występują rzadko w dłuższych przedziałach czasu, większość szybko pojawia się i znika, więc to, ile razy napotkaliśmy dany plik binarny, może wskazywać, jak bardzo jest podejrzany. Ponieważ nasze rozwiązania zabezpieczające łączą się z chmurą, wskaźniki prewalencji są łatwo dostępne. Aby zrozumieć, dlaczego złośliwe pliki wykonywalne są rzadkie, musimy cofnąć się daleko w przeszłość. Nie, nie trzymamy na nich kodów do odpalenia głowic jądrowych. Większość pierwszych wirusów w rzeczywistości nie miała złośliwej natury. Hakerzy tworzyli je po to, żeby popisać się swoimi 3l1t4rnymi umiejętnościami. Jeśli chciałbyś zobaczyć, jak działały niektóre z nich, zajrzyj do Muzeum Malware’u, które Mikko pomógł stworzyć w witrynie archive.org. W miarę upływu czasu pojawiało się coraz więcej czysto złośliwych wirusów. Kiedy ich liczba wzrosła na tyle, że zaczęła stwarzać problem dla ogółu użytkowników, powstała branża antywirusowa (a w końcu również termin „malware”, zbitka słów „malicious” i „software”). W tamtych czasach co tydzień pojawiała się zaledwie garstka nowych rodzin/wariantów, więc techniki detekcji były bardzo proste. Wystarczyło dopasować tu czy tam kilka bajtów albo poszukać konkretnego łańcucha. Ponieważ złośliwy program miał postać jednego plik binarnego, detekcja wychwytywała go za każdym razem. Twórcy złośliwego oprogramowania wkrótce zauważyli, że ciężka praca, którą wkładali w swoje dzieła, szła na marne w ciągu kilku godzin od wykrycia i udostępnienia próbki. Musieli wymyślić nowy zestaw trików, żeby uniknąć tych prostych metod detekcji. Tak też zrobili. Jedną z najbardziej skutecznych metod, stosowanych od początku lat dziewięćdziesiątych, było wykorzystanie kodu polimorficznego. Poprzez szyfrowanie kodu twórcy malware’u mogli generować nowe kopie programu, które były funkcjonalnie identyczne, ale pod względem strukturalnym na tyle różne, że unikały prostych technik detekcji. Każdą nową kopię tworzono z wykorzystaniem nieco innego klucza, a sam proces generowania nowych plików binarnych był zautomatyzowany. Nowe złośliwe próbki były generowane na żądanie w punkcie dystrybucji po stronie serwera. Ponieważ każda nowa próbka odnaleziona „w naturze” była niepowtarzalna, metody detekcji stosowane pod koniec lat osiemdziesiątych i na początku lat dziewięćdziesiątych stały się niewystarczające. Praktyka masowego wypuszczania na świat funkcjonalnie podobnych, ale strukturalnie odmiennych plików binarnych przetrwała do dziś. Twórcy malware’u nadal muszą chronić swoje pliki binarne przed najprostszymi technikami detekcji (takimi jak metody sygnaturowe). Ten ruchomy cel dla producentów oprogramowania antywirusowego stanowi część zabawy w kotka i myszkę, której napastnicy i obrońcy oddają się po dziś dzień. Dlaczego zatem sprawdzanie prewalencji działa tak dobrze? Wszystko sprowadza się do „czystych” plików. Legalne oprogramowanie, którego używają nasi klienci, jest dość dobrze znane. A my nieustannie wyszukujemy w internecie nowe, „czyste” programy, które możemy dodać do listy zaufanych plików binarnych. Ponadto wiele legalnych plików jest podpisanych przez zaufanych dostawców, co ułatwia wciąganie ich na białą listę. Ten zbiór plików „znanych jako czyste” zmienia się dość rzadko. Z drugiej strony, codziennie obserwujemy istną powódź nowych złośliwych plików binarnych (liczonych w dziesiątkach tysięcy). Każdy plik, który nie został jeszcze zaliczony do zbioru „czystych” lub „złośliwych”, jest po prostu uważany za nieznany, a im jest rzadszy, tym większe prawdopodobieństwo, że jest złośliwy. Analiza behawioralna punktów końcowych bardzo często to potwierdza. Dla przykładu, według statystyk generowanych przez wewnętrzne systemy F-Secure, które monitorują znane zagrożenia, w przypadkowej próbce złośliwych programów znalezionych w pierwszych czterech miesiącach 2013 roku, 99,7 proc. zagrożeń było rzadko napotykanych przez naszych użytkowników. Jak się zapewne domyślasz, sprawdzanie prewalencji ma równie duże znaczenie, jak blokowanie specyficznego typu plików binarnych używanych w zaawansowanych atakach ukierunkowanych. Wykorzystując kombinację badań prewalencji i analizy behawioralnej, zwykle dobrze sobie radzimy z rzeczywistymi zagrożeniami. Autorem tekstu jest Andy Patel.

July 15, 2016
unflag

Według Access Now, grupy broniącej praw cyfrowych, od początku 2015 r. rządy przynajmniej 35 razy zablokowały obywatelom dostęp do internetu. Uchwała przyjęta 1 lipca przez Radę Praw Człowieka Organizacji Narodów Zjednoczonych wzywa wszystkie państwa, aby powstrzymały się przed działaniami „celowo uniemożliwiającymi lub zakłócającymi dostęp lub rozpowszechnianie informacji w sieci z pogwałceniem międzynarodowego ustawodawstwa w zakresie praw człowieka”. Uchwała potwierdza historyczną rezolucję z 2012 r. dotyczącą wolności słowa w internecie, która została odnowiona w 2014 r., przed obecną falą rządowych interwencji. Tylko w 2016 r. wyłączono dostęp do internetu w Malezji, Czadzie, Ugandzie, Indiach, Syrii, Etiopii, Pakistanie, Brazylii, Iraku, Korei Północnej, Wietnamie, Algierii, Bahrajnie i Turcji. Podczas tych blokad dostęp do sieci mają tylko urzędnicy rządowi oraz ci, którzy obchodzą ograniczenia z wykorzystaniem takich rozwiązań, jak Freedome VPN. Być może najważniejszym historycznie aspektem uchwały jest deklaracja, że „te same prawa, które ludzie mają poza siecią, muszą być również chronione w sieci”, że wolność wypowiedzi obowiązuje „niezależnie od granic i preferowanych mediów”. Jest to standard, który może zyskiwać na znaczeniu w miarę, jak wirtualna rzeczywistość będzie stawać się coraz ważniejszą częścią naszego życia oraz miejscem, w którym będą pracować miliony ludzi. Dostęp to nie tylko kwestia polityczna, ale również gospodarcza. W Stanach Zjednoczonych, kraju, w którym powstał internet, dziesiątki milionów osób nadal nie mają szerokopasmowego dostępu do sieci. Finlandia już w 2010 r. zadeklarowała, że szerokopasmowy dostęp jest prawem człowieka, a ONZ poparło tę deklarację w zeszłym roku. Jednak nawet najlepsze połączenie na świecie nie zda się na nic, jeśli rząd może po prostu nacisnąć wyłącznik. Uchwała ONZ nie jest wiążąca, ale umożliwia obrońcom praw człowieka wywieranie presji nie tylko na rządy, ale również na korporacje, które działają w krajach odmawiających obywatelom dostępu do sieci. „Gospodarka i ochrona praw człowieka rozwijają się tam, gdzie sieci pozostają otwarte, bezpieczne i stabilne – wyjaśnia Peter Micek, specjalista ds. polityki globalnej i radca prawny w Access Now. – Wszyscy zainteresowani, od firm telekomunikacyjnych do aktywistów i sędziów, muszą połączyć siły i domagać się zaprzestania blokad”. Uchwała została przyjęta w drodze konsensusu, ale napotkała opór z niezbyt zaskakujących kierunków. Rosja i Chiny naciskały na poprawki, które usunęłyby odwołania do Powszechnej Deklaracji Praw Człowieka, a wspierały je w tym takie demokracje, jak Republika Południowej Afryki, Indonezja i Indie. Przynajmniej teraz, kiedy jakieś państwo spróbuje odciąć dostęp do całego internetu albo do wybranych serwisów społecznościowych, to ze świadomością, że narusza podstawowe prawa swoich obywateli i że reszta świata jest temu przeciwna. [Zdjęcie: sanjitbakshi | Flickr]

July 13, 2016
Full Frame Shot Of Illuminated Escalators

Prewencja kluczem do powstrzymania ransomware’u i innych rodzajów złośliwego oprogramowania Ransomware – złośliwe oprogramowanie wymuszające okup – to dziś gorący temat. Co więcej, zagrożenie ze strony ransomware’u będzie rosło w nadchodzących miesiącach i latach. To samo dotyczy wszystkich naruszeń bezpieczeństwa, które zdarzają się coraz częściej. W 2015 r. odnotowano niemal 60 milionów incydentów. W dodatku to nie sam ransomware powoduje największe szkody, ale wymuszone przez niego przestoje. Jednym z najlepszych sposobów ochrony punktów końcowych przed dzisiejszymi zagrożeniami jest pilnowanie, żeby zagrożenia nie docierały do potencjalnych ofiar. Najłatwiej osiągnąć to poprzez używanie wielu warstw ochrony – połączenie inteligentnego skanowania, analizy behawioralnej oraz chmury (dostarczającej aktualne informacje o zagrożeniach). W raporcie Gartnera „Effective Tactics to Protect Midmarket Enterprises from Advanced Threats” z 29 marca 2016 r., autorstwa Neila MacDonalda, (1 można przeczytać: „Przede wszystkim prewencja – tak powinna brzmieć mantra specjalistów ds. bezpieczeństwa w przedsiębiorstwach średniej wielkości. Nie wierzcie tym, którzy przechwalają się, że u nich »sygnatury to przeszłość«. Platformy ochrony punktów końcowych (EPP) już od wielu lat nie wykrywają złośliwego oprogramowania wyłącznie na podstawie sygnatur. Wszystkie czołowe rozwiązania EPP oferują zaawansowane mechanizmy behawioralne do ochrony przed malwarem”. W przypadku stosowania ochrony prewencyjnej ogromna większość malware’u, ransomware’u lub innego potencjalnie niepożądanego oprogramowania jest zatrzymywana przez mechanizmy skanowania, zanim dotrze do kolejnej, mocniejszej warstwy ochronnej. A dzisiejsze mechanizmy skanowania bardzo różnią się od rozwiązań antywirusowych z lat dziewięćdziesiątych. Andy Patel z działu Labs Technology Outreach wyjaśnia: Współczesne detektory zaprojektowano tak, aby mogły identyfikować tysiące, a nawet setki tysięcy próbek. Przeszły daleką drogę od dawnego podejścia „jeden skrót na jedną próbkę”. Zawsze jednak będą pojawiać się nowe typy złośliwego oprogramowania, które nie mogą zostać zidentyfikowane przez tradycyjne mechanizmy, i wtedy potrzebne jest inne podejście. Aby zabezpieczyć się przed nowym złośliwym oprogramowaniem – malwarem, ransomwarem, trojanami – potrzeba również ochrony behawioralnej, heurystycznej. Mikael Albrecht z działu F-Secure Labs Technology Outreach wyjaśnia: F-Secure DeepGuard wykrywa złośliwe oprogramowanie w zupełnie inny sposób. Co dzień średnio wykrywa się 10 000 nowych wariantów malware’u do Windows. Warianty te zwykle są dość krótkowieczne. Jednakże detekcje DeepGuard skupiają się na algorytmach, sposobach działania złośliwego oprogramowania, co pozwala nam rozpoznać wzory zachowań, zanim malware spróbuje wyrządzić jakieś szkody. Sposób wykrywania kluczowych funkcji złośliwego oprogramowania przez DeepGuard sprawia, że definicje (reguły detekcji) są znacznie bardziej długowieczne. Jest bardzo prawdopodobne, że nowy wariant złośliwego oprogramowania wyzwoli istniejącą definicję. Dzięki temu funkcja DeepGuard jest naprawdę proaktywna. Ponadto malware i ransomware można wyłapać nawet wtedy, gdy detekcje behawioralne nie zadziałają. Przykładem może być ransomware Petya, który był blokowany przez DeepGuard za pomocą skryptu częstości występowania na długo przed tym, jak został zidentyfikowany. Andy Patel z działu Technology Outreach tłumaczy: W rzeczywistości większość sposobów dostarczania złośliwego oprogramowania można łatwo zablokować metodami behawioralnymi. W większości przypadków, kiedy znajdujemy nowe zagrożenie, odkrywamy również, że w odległej przeszłości dodaliśmy już logikę uwzględniającą wykorzystywany przez nie wektor ataku. Przeczytaj również nasz krótki przewodnik po tym, jak przechytrzyć ransomware. Gartner nie popiera żadnego producenta, produktu ani usługi prezentowanej w swoich publikacjach badawczych ani nie zaleca użytkownikom wybierania wyłącznie najwyżej sklasyfikowanych producentów. Publikacje przedstawiają opinie organizacji badawczej Gartnera i nie należy traktować ich jako stwierdzeń faktu. Gartner nie udziela żadnych gwarancji, jawnych ani domniemanych, odnośnie swoich badań, łącznie z gwarancjami przydatności handlowej albo użyteczności do określonego celu.

July 5, 2016
Computer virus, conceptual computer artwork.

W ostatnich latach powstało kilka dużych botnetów, o których pisała prasa. Dziś botnety wciąż funkcjonują, ale rzadko trafiają na czołówki gazet. Wydaje się, że do nich przywykliśmy. A od kilku lat botnety wykonują najróżniejsze zadania w zainfekowanych infrastrukturach, takie jak eksploracja danych i szpiegostwo, zamiast typowych ataków DDoS lub rozsyłania spamu. Botnety przypominają zautomatyzowaną „tylną furtkę” do Twojej firmowej sieci, a większość infekcji złośliwym oprogramowaniem w jakiś sposób wiąże się z botnetami, które pozwalają uzyskać zdalną kontrolę nad systemem i kontynuować dystrybucję malware’u. Boty można również wykorzystać do ataku na wybraną organizację, ponieważ przejęte węzły można wynająć za rozsądną cenę. Z biegiem lat największe botnety, takie jak Conficker, ZeroAccess i Storm, zainfekowały miliony komputerów i nadal rosną. Artykuł w Hacked.com ocenia, że na samym fałszywym ruchu do reklam generowanych przez botnety przestępcy zarobią aż 7,2 mld dol. w 2016 r. Możesz chronić swoją sieć przed botnetami na kilku poziomach. Boty są często dostarczane za pośrednictwem złośliwego załącznika, który może zostać kliknięty przez jednego lub kilku nieostrożnych pracowników. Tak więc oprócz pierwszej warstwy, którą oczywiście jest aktualne, dobre oprogramowanie zabezpieczające, powinieneś stosować dodatkowe środki bezpieczeństwa, które będą uwzględniać działania botnetów na dalszych etapach łańcucha zagrożeń, kiedy niektóre z Twoich systemów padną już ofiarą napastnika. Jarno Niemelä z F-Secure Labs wyjaśnia: Ponieważ boty potrzebują dostępu do zasobów, serwery dowodzenia (Command & Control, C&C) są często najważniejszym narzędziem napastników. Poprzez serwery C&C komunikują się oni zdalnie z zainfekowanymi systemami. Jeśli odetniesz tę komunikację, botnet zostanie sparaliżowany. Będzie po prostu pozostawał w uśpieniu (dopóki nie zdołasz usunąć go z systemu). Aby skutecznie zwalczać botnety, do pakietu F-Secure Business Suite teraz dołączono funkcję Botnet Blocker. Przerywa ona komunikację z domenami C&C, uniemożliwiając przestępcom kontrolowanie zainfekowanych systemów. Jej działanie polega na blokowaniu zapytań DNS na poziomie hosta, co efektywnie zakłóca działania botnetu, ponieważ pozwala użytkownikowi wybrać dozwolone domeny. W zależności od wymaganego poziomu ochrony, opcje konfiguracyjne dotyczące zapytań DNS to „zezwalaj na wszystkie”, „blokuj niebezpieczne i podejrzane” oraz „zezwalaj tylko na bezpieczne”. Oczywiście, zablokowanie wszystkich połączeń z wyjątkiem bezpiecznych zapewnia najwyższy poziom ochrony, ponieważ zapobiega rozprzestrzenianiu się złośliwego oprogramowania.

June 30, 2016