Wirusy polimorficzne

Kod polimorficzny modyfikuje się, aby uniknąć wykrycia. Kod wirusa może to osiągnąć, dynamicznie składając się ponownie w celu zmodyfikowania podstawowej struktury przy jednoczesnym zachowaniu ogólnej funkcjonalności. W innych metodach wirus jest szyfrowany, kodowany lub pakowany, a program ładujący odszyfrowuje, dekoduje lub rozpakowuje wirusa w czasie wykonywania. UPX, Ultimate Packer dla eXecutables, jest obecnie najczęściej stosowanym formatem packera. W raporcie o zagrożeniach bezpieczeństwa SOPHOS 2013 autorzy piszą:

Polimorfizm nie jest nowym pomysłem – autorzy szkodliwego oprogramowania używają go od 20 lat. Mówiąc wprost, kod polimorficzny zmienia swój wygląd, próbując uniknąć wykrycia, bez zmiany jego zachowania lub celów. Jeśli program wygląda inaczej, atakujący mają nadzieję, że oprogramowanie antywirusowe może go przegapić. Lub oprogramowanie antywirusowe może zostać zmuszone do wygenerowania zbyt wielu fałszywych alarmów, co skłoni użytkowników do jego wyłączenia. W ataku polimorficznym kod jest zwykle szyfrowany, aby wydawał się bez znaczenia, i łączony z deszyfratorem, który przekształca go z powrotem w formę, którą można wykonać. Za każdym razem, gdy jest odszyfrowywany, silnik mutacji zmienia swoją składnię, semantykę lub oba. Na przykład autorzy szkodliwego oprogramowania dla systemu Windows często używali strukturalnej obsługi wyjątków w celu zaciemnienia przepływu kontroli i utrudnienia wykonywania statycznej analizy programów przed ich uruchomieniem. Tradycyjne wirusy polimorficzne są samowystarczalne i muszą zawierać silnik mutacji zamówienia do replikacji. Sophos i inne firmy zajmujące się bezpieczeństwem są biegłe w wykrywaniu tych form złośliwego oprogramowania. Dostęp do silnika mutacji ułatwia analizę jego zachowania. Obecnie osoby atakujące szybko przechodzą na złośliwe oprogramowanie rozproszone w Internecie, polegające na polimorfizmie po stronie serwera (SSP). Teraz silnik mutacji i powiązane narzędzia są hostowane całkowicie na serwerze. Przestępcy mogą używać tych narzędzi do tworzenia różnorodnych treści plików w locie. Odbiorcy tej zawartości (czy to Windows .exe, Adobe PDF, JavaScript, czy cokolwiek innego) widzą tylko jeden przykład tego, co silnik może stworzyć. Nie widzą samego silnika.

Wirusy skryptów krzyżowych (lub robaki)

Wirusy (lub robaki) skryptów cross-site scripting (XSS) replikowane są przez wadliwe serwery aplikacji Web i kod klienta. W 2005 r. Pojawił się exploit dotyczący skryptów krzyżowych obejmujący serwis społecznościowy MySpace oraz błędy w przeglądarce Microsoft Internet Explorer, w których użytkownik o imieniu Samy  zgromadził ponad milion znajomych w ciągu nocy, używając błędu wstawiania JavaScript22. Sąd Najwyższy w Los Angeles skazał autora Samy Kamkara na trzyletni okres próbny i 90 dni pracy w społeczności za jego czyny. W doskonałej recenzji XSS Sherif Koussa napisał:

Skrypty między witrynami to atak wymierzony w użytkowników aplikacji. Prostota skryptów między witrynami jest również powodem, dla którego jest tak potężny. Jeśli aplikacja jest podatna na skrypty między witrynami, programista nie odpowiada już za to, co działa w przeglądarce użytkownika… atakujący. Skrypty między witrynami mogą być używane w atakach takich jak przejęcie uwierzytelnienia i przejęcie sesji. Moc skryptu między witrynami przejawia się jeszcze bardziej w połączeniu z fałszowaniem żądań między witrynami.… Później przytacza przypadek ataku na Twitterze: w 2009 r. 17-letni Mikey Mooney podniósł odpowiedzialność za atakowanie Twittera za pomocą XSS techniki: „… co najmniej cztery osobne warianty oryginalnego robaka StalkDaily.com XSS trafiły na popularną witrynę mikroblogowania Twitter, automatycznie przejmując konta i reklamując witrynę autora, publikując tweety w imieniu właścicieli kont, wykorzystując skrypty między witrynami wady strony ”. Pisarz Dancho Danchev podał więcej szczegółów na temat ataku w swoim artykule ZDNet.

Logiczne Bomby.

Bomba logiczna jest formą funkcji złośliwego kodu wbudowaną czasami w wirusy, które czekają na aktywację sekwencji zdarzeń, takich jak zniknięcie rekordu pracownika z bazy danych zasobów ludzkich lub określonej daty i godziny. Kabay podał kilka przykładów wczesnych bomb logicznych w artykule Network World z 2002 roku:

W 1985 r. Niezadowolony funkcjonariusz ds. Bezpieczeństwa komputerowego w firmie pośrednictwa ubezpieczeniowego w Teksasie założył złożoną serię programów Job Control Language (JCL) i RPG (stary język programowania), opisanych później jako „tripwires i bomby zegarowe”. Na przykład zmodyfikowano funkcję rutynowego wyszukiwania danych, aby spowodować wyłączenie komputera klasy średniej EBMSystem / 38. Zaprogramowano inną procedurę usuwania losowych fragmentów pamięci głównej, zmiany własnej nazwy i resetowania, aby wykonać miesiąc później. W 1992 roku programista komputerowy został ukarany grzywną w wysokości 5000 $ za pozostawienie bomby logicznej w General Dynamics. Zamierzał wrócić po tym, jak jego program usunie krytyczne dane i dostanie dużo pieniędzy, aby rozwiązać problem. Bomby zegarowe są podklasą bomb logicznych, które „wybuchają” w określonym czasie. Niektóre z pierwszych wirusów, napisanych w latach 80., były bombami zegarowymi. Na przykład niesławny wirus „Piątek 13” był bombą zegarową; powielało się w każdy piątek i 13 dnia miesiąca, powodując spowolnienie systemu. Ponadto w każdy piątek trzynastego roku uszkodził również wszystkie dostępne dyski. Wirus Michała Anioła z początku lat 90. XX wieku – jeden z pierwszych wirusów, który dostał się do publicznej wiadomości z powodu doniesień prasowych – próbował uszkodzić katalogi dysków twardych 6 marca. Wirus Win32.Kriz.3862, odkryty w 1999 roku, detonuje w Boże Narodzenie; jego ładowność obejmuje ogromne nadpisywanie danych we wszystkich jednostkach pamięci, a także uszkodzenie systemu BIOS. W 2000 roku mężczyzna z Stamford w stanie Connecticut został oskarżony w Sądzie Najwyższym stanu Nowy Jork na Manhattanie pod zarzutem nieautoryzowanych modyfikacji systemu komputerowego i wielkiej kradzieży. Oskarżony pracował w Deutsche Morgan Grenfell od 1996 roku jako programista. Do końca 1996 r. Stał się sprzedawcą papierów wartościowych. W akcie oskarżenia postawiono programistyczną bombę zegarową w modelu ryzyka, nad którym pracował jako programista; datą uruchomienia był lipiec 2000 r. Nieautoryzowany kod został odkryty przez innych programistów, którzy najwyraźniej musieli spędzać miesiące naprawiając program z powodu nieautoryzowanych zmian, które rzekomo wprowadził oskarżony.

W 2002 roku pracownik UBS PaineWebber podłożył bombę logiczną na serwerach swojego pracodawcy w ramach próby manipulacji zapasami. Sprawca, Roger Duronio, nabył liczne kontrakty na akcje opcji sprzedaży, pozwalając mu na sprzedażUBSstock po stałej, wysokiej cenie. 4 marca 2002 roku, o godzinie 9:30, bomba logiczna zaczęła usuwać pliki na ponad 1000 komputerów, powodując szkody o wartości 3 milionów dolarów. Duronio pomyślał, że skutki bomby logicznej obniżyłyby wartość akcji UBS, pozwalając mu na osiągnięcie dużych zysków z opcji na akcje. Spisek Duronio nie powiódł się, a jego zysk się nie zmaterializował. Władze federalne oskarżyły go później o papiery wartościowe i oszustwa komputerowe. W 2006 r. Sędzia skazał Duronio na 97 miesięcy więzienia za atak. W marcu 2013 r. Bomba logiczna nadpisała dane na dyskach twardych w bankach i nadawcach Korei Południowej. Kim Zetter z WIRED napisał:

Według Richarda Hendersona, badacza zagrożeń dla FortiGuard Labs z Vancouver, działu badań firmy ochroniarskiej Fortinet, bomba logiczna podyktowała datę i czas, kiedy złośliwi zaczęli wymazywać dane z maszyn, aby koordynować zniszczenie wielu ofiar. Atak, który uderzył w maszyny 20 marca, zniszczył dyski twarde i główny rekord rozruchowy co najmniej trzech banków i dwóch firm medialnych jednocześnie. Ataki podobno spowodowały, że niektóre bankomaty przestały działać, uniemożliwiając Koreańczykom południowym wycofanie z nich gotówki. Złośliwe oprogramowanie składało się z czterech plików, w tym jednego o nazwie AgentBase.exe, który uruchomił czyszczenie. W tym pliku znajdował się ciąg szesnastkowy (4DAD4678) wskazujący datę i godzinę rozpoczęcia ataku – 20 marca 2013 r. O godzinie 14.00 czasu lokalnego (2013-3-20 14:00:00). Gdy tylko wewnętrzny zegar na maszynie wybił godzinę 14:00:01, wycieraczka została uruchomiona, aby zastąpić twarde dyski i główny rekord rozruchowy na komputerach z systemem Microsoft Windows, a następnie ponownie uruchom system

Makrowirusy

Makrowirusy rozprzestrzeniają się za pośrednictwem języków definicji makr używanych przez niektóre aplikacje. Najczęściej nadużywany jest język skryptowy Visual Basic for Applications (VBA) opracowany przez firmę Microsoft w celu umożliwienia automatyzacji funkcji w pakiecie produktów pakietu Office. Każda funkcja pozwalająca na automatyzację jest prawdopodobnym punktem ataku. Deweloperzy powinni dokładnie rozważyć bezpieczeństwo i łatwość użytkowania, dołączając takie funkcje do produktów. Pierwszy wirus makr atakujący Microsoft Word pojawił się na wolności w 1995 roku. Od tego czasu makrowirusy stanowiły znaczną liczbę udanych ataków.

Wirusy infekujące pliki

Wirusy infekujące pliki wstawiały się do programów obecnych w systemie hosta. Za każdym razem, gdy użytkownik uruchomił program hosta (zwykle plik .EXE lub .COM), złośliwy kod wykorzystywał okazję do włożenia się do pamięci o swobodnym dostępie (RAM), a następnie replikacji do innych plików w systemie. Chociaż prawdopodobnie nadal istnieją, wirusy infekujące pliki stanowią stosunkowo niewiele współczesnych zagrożeń złośliwym kodem.

Wirusy sektora rozruchowego

 

Gdy użytkownicy uruchamiają komputer z nośnika cyfrowego, pozwalają na uruchomienie kodu znajdującego się w sektorze rozruchowym nośnika na mikroprocesorze przy bardzo niewielkim pośrednictwie. Wirusy sektora rozruchowego w latach 80. i 90. XX wieku wykorzystywały ten mechanizm do rozprzestrzeniania się za pośrednictwem zainfekowanych nośników wymiennych, takich jak (obecnie wymarłe) dyskietki. Jeśli użytkownik błędnie uruchomi się z zainfekowanej dyskietki, dysku kompaktowego (CD), DVD lub dysku flash, wirus skopiuje się do sektora rozruchowego dysku twardego. Następnie szkodliwy kod programu kopiuje się na każdy nośnik wstawiony do systemu. Chociaż podobno nadal istnieją, wirusy sektora rozruchowego stanowią bardzo niewiele współczesnych zagrożeń złośliwym kodem. Virus Bulletin donosi: „Ostatnie wirusy sektora startowego spadły z WildList na początku 2006 roku, ale w naszych raportach dotyczących rozpowszechniania nadal pojawiają się różne typy, a partia laptopów zainfekowanych„ Stoned.Angelina ”została wydana w Niemczech i Danii w połowie 2007 roku . Niedawno zaobserwowano [T] rojany stosujące podobne techniki do sadzenia rootkitów w celu ukrycia swojej działalności

PRZEGLĄD ZŁOŚLIWEGO KODU

Wirusy

W biologii wirus jest „organizmem zakaźnym, który jest zwykle submikroskopowy, może namnażać się tylko w niektórych żywych komórkach gospodarza i jest obecnie rozumiany jako struktura niekomórkowa pozbawiona jakiegokolwiek wewnętrznego metabolizmu i zwykle zawierająca rdzeń DNA lub RNA wewnątrz płaszcza białkowego ”. W kategoriach komputerowych wirus to samoreplikujący się kod, który wymaga pliku wykonywalnego lub dokumentu hosta oraz pomocy człowieka do replikacji. Joe Dellinger stworzył pierwszego wirusa dla systemu operacyjnego Apple w 1982 roku, podczas gdy student Texas A & M.14 Fred Cohen stworzył pierwszego wirusa komputerowego VAX w 1983 roku w ramach swoich badań doktoranckich15 Len Adleman, A in RSA, pierwszy zastosował biologicznego wirusa metafory do opisania wyników. Typy wirusów to sektor rozruchowy, infektor plików, wirus makr, bomba logiczna, wirusy skryptów krzyżowych (naprawdę forma robaka), wirusy polimorficzne i kryptowirusy. Jednak współczesne zagrożenia złośliwym kodem nie dzielą się tak starannie na kategorie.

Dostęp kontra działanie: Wektor kontra ładunek

Ataki złośliwego kodu obejmują wektor i ładunek. W biologii wektor jest czynnikiem, który przenosi (potencjalnie szkodliwy) materiał (kod) z jednej lokalizacji do drugiej. W atakach komputerowych wektor jest drogą dostępu, taką jak dozwolona ścieżka poprzez dostęp fizyczny lub sieć. Dostęp fizyczny odbywa się za pośrednictwem personelu wewnętrznego lub innych osób mających dostęp do pomieszczeń. Dostęp przez sieć może odbywać się za pośrednictwem dozwolonej ścieżki do serwera sieci Web, dozwolonej ścieżki od złośliwego serwera sieci Web do klienta sieci Web, użytkownika za pośrednictwem załącznika do wiadomości e-mail lub innego procesu programowego przez dostępny port. Ładunek to funkcja (akcja) umieszczona w systemie w celu osiągnięcia pewnego celu. Ładunki mogą obejmować dodatkową złośliwą logikę, oprogramowanie do zdalnego dostępu (rootkity i tym podobne) lub oprogramowanie do zdalnego sterowania (robot lub bot) w celu osiągnięcia pewnego celu (spamowanie, ataki DDoS, i tak dalej).

Aktorzy: nieustrukturyzowane zagrożenia

Nieustrukturyzowane zagrożenia obejmują nieuczciwych aktorów, którzy nie działają w porozumieniu lub koordynacji z większymi podmiotami. Chociaż poważne ataki mogą wynikać z nieustrukturyzowanych zagrożeń, nie stanowią one takich samych długoterminowych wyzwań, jak zagrożenia strukturalne. W zeznaniu przed Kongresem Stanów Zjednoczonych były dyrektor NSA Kenneth Minihan stwierdził:

Nieustrukturyzowane zagrożenie jest losowe i względnie ograniczone. Składa się z przeciwników o ograniczonych środkach i organizacji oraz krótkoterminowych celach. Chociaż stanowi zagrożenie dla operacji systemu, bezpieczeństwo narodowe nie jest celem. To dziś najbardziej oczywiste zagrożenie. Zagrożenie strukturalne jest znacznie bardziej metodyczne i dobrze obsługiwane. Chociaż zagrożenie nieustrukturyzowane jest obecnie najbardziej oczywistym zagrożeniem, dla celów bezpieczeństwa narodowego zajmujemy się przede wszystkim zagrożeniem strukturalnym, ponieważ stanowi ono największe ryzyko.

Aktorzy: zagrożenia strukturalne

Zagrożenia strukturalne są zorganizowane, dobrze finansowane i mogą działać w perspektywie długoterminowej. Zagrożenia związane ze złośliwym kodem strukturalnym zwykle obejmują funkcje wywiadowcze, inwigilacyjne i rozpoznawcze. Zagrożenia strukturalne mogą wykorzystywać te możliwości do angażowania się w szpiegostwo przemysłowe, kontradyktoryjne operacje informacyjne lub poważne bieżące oszustwa i kradzieże. Przestępczość zorganizowana odpowiada za 90 procent zagrożeń złośliwym kodem. Ekstresjoniści atakują branżę hazardu online za pomocą ataków DDoS z rozproszonych komputerów osobistych. Przestępcy używają skompromitowanych systemów do angażowania się w oszustwa związane z giełdami typu „zrzuć”, a jeden z mediów informuje o rocznych zyskach takich grup zbliżających się do 1 miliarda dolarów rocznie. Rośnie liczba incydentów związanych z wypożyczaniem oprogramowania, co wskazuje na dojrzewający rynek złośliwego kodu. W 2006 r. Izraelski sąd skazał kilka osób na więzienie i nakazał im zapłacić grzywny za pisanie i umieszczanie złośliwego kodu wykorzystywanego do szpiegowania korporacji i osób przez członków firm telekomunikacyjnych i handlowych. Skoordynowane, systematyczne ataki pochodzące z Chin rutynowo atakują obiekty obronne oraz badawczo-rozwojowe. W tekście Unrestricted Warfare z 1999 r. Dwóch chińskich oficerów lotnictwa wezwało do transformacji działań wojennych, która pociągałaby za sobą ciągłe ataki technologiczne na zachodnie aktywa.10 W chińskiej białej księdze wojskowej wydanej w 2006 r. Wezwano do strategii, dzięki której Chiny mogłyby wygrać „wojnę informacyjną” przeciwko Zachodowi, który jest „w szybkim tempie, zaawansowany technologicznie i zdigitalizowany”. Chociaż chińscy urzędnicy publicznie zaprzeczają sponsorowaniu takich ataków, brak działań organów ścigania wskazuje przynajmniej tolerancję na ataki elektroniczne na zachodnie aktywa.