450 likes | 731 Views
Uwaga!!. Prosimy o nie rozmawianie, nie komentowanie i nie zadawanie głupich pytań w czasie trwania prezentacji. Wszystkie pytania proszę sobie zanotować i pytać po zakończeniu prezentacji!! Dziękujemy!. Wirusy Komputerowe i ochrona danych. Made by Kamil Kulczak Daniel Soczewiński
E N D
Uwaga!! • Prosimy o nie rozmawianie, nie komentowanie i nie zadawanie głupich pytań w czasie trwania prezentacji. • Wszystkie pytania proszę sobie zanotować i pytać po zakończeniu prezentacji!! • Dziękujemy!
Wirusy Komputerowe i ochrona danych Made by Kamil Kulczak Daniel Soczewiński Dawid Bojakowski
Co to jest wirus komputerowy? • Wirus komputerowy to krótki program komputerowy, zwykle szkodzący systemowi operacyjnemu i utrudniający pracę użytkownikowi komputera. Każdy wirus ma zdolność samopowielania. Jest to warunek konieczny, aby dany program można było nazywać wirusem. • Wirusy przenoszone są przeważnie w zainfekowanych wcześniej plikach lub w pierwszych sektorach fizycznych dysków logicznych. Proces infekcji polega na odpowiedniej modyfikacji struktury pliku albo sektora. Zainfekowaną ofiarę nazywa się nosicielem, a proces samopowielania replikacją. Długość typowego wirusa waha się w granicach od kilkudziesięciu bajtów do kilku kilobajtów. W dużym stopniu zależy ona od umiejętności programistycznych jego twórcy.
Języki programowania wykorzystywane do pisania wirusów • Do napisania prostego wirusa wystarczy znajomość dowolnego popularnego języka programowania, takiego jak Pascal czy Język C. Najwięcej wirusów pisanych jest jednak w czystym asemblerze. Spowodowane jest to głównie zwięzłością kodu generowanego przez ten język. Kod programu, który z punktu widzenia użytkownika nie robi nic, w językach wysokiego poziomu zajmie od kilkuset bajtów do nawet kilkuset kilobajtów. W asemblerze podobny program zajmie zaledwie kilka bajtów. Jest tak dlatego, ponieważ do każdego wygenerowanego przez siebie programu kompilatory języków wysokiego poziomu dodają sporo kodu niewidocznego dla programisty. Kod ten odpowiedzialny jest między innymi za obsługę błędów, obsługę stosu oraz operacji wejścia-wyjścia. Na korzyść asemblera przemawia również to, że z jego poziomu mamy bardzo dużą swobodę w dostępie do pamięci i portów, a programista ma możliwość świadomego wpływu na kształt przyszłego programu, na przykład w zakresie używanych instrukcji czy rozwiązań programowych. Programy napisane w asemblerze są optymalne pod względem szybkości działania i długości kodu, a więc język ten jest jakby stworzony do programowania wirusów
Platformy programistyczne • Uważa się, że systemy komputerowe o architekturze uniksowej są lepiej zabezpieczone przez wirusami niż systemy operacyjne Microsoftu. Główną przyczyną takiego stanu rzeczy jest ciągła praca z uprawnieniami administratora we wcześniejszych systemach (DOS, Windows 9x). W nowszych wersjach Windows zostało to poprawione, lecz ze względu na kompromisy związane z łatwością używania i przyzwyczajenia użytkowników, wciąż uprawnienia administratora nie są dostatecznie chronione w domyślnej instalacji. Popularność wirusów komputerowych jest związana z popularnością danej platformy, która tworzy środowisko do rozprzestrzeniania się wirusa. Wynika to z działania wirusów komputerowych w środowiskach homogenicznych.
Generatory wirusów • Istnieje wiele programów umożliwiających stworzenie własnego wirusa, nawet bez znajomości systemu czy mechanizmów wykorzystywanych przez wirusy. Można je bez problemu znaleźć w Internecie. Korzystają one z gotowych modułów w asemblerze i umożliwiają stworzenie wirusa o zadanych parametrach wybieranych zwykle przy pomocy przyjaznego użytkownikowi menu. Można w nim określić zakres infekowanych obiektów oraz rodzaj efektów które ma on wywoływać. Oprócz kodu wynikowego wirusa, generatory tworzą także źródła w asemblerze, co umożliwia zainteresowanemu pisaniem wirusów użytkownikowi dokształcenie się w tej dziedzinie. • Najbardziej znane generatory wirusów to: • IVP – Instant Virus Production Kit • VCL – Virus Construction Laboratory • PS-MPC – Phalcon-Skism Mass Produced Code Generator • G2 – G Squared • NRLG – Nuke Randomic Life Generator
Rodzaje wirusów komputerowych • Wirusy można podzielić według wielu kryteriów. Przykładowy podział ze względu na infekowany obiekt: • wirusy dyskowe, infekujące sektory startowe dyskietek i dysków twardych • wirusy plikowe, które infekują pliki wykonywalne danego systemu operacyjnego • wirusy skryptowe • makrowirusy, których kod składa się z instrukcji w języku wysokiego poziomu, wykonywane przez interpreter. • wirusy komórkowe, na razie rzadkie ale być może w przyszłości mogą stanowić istotne zagrożenie w związku z rozwojem oprogramowania dla telefonów komórkowych i dostępnych usług. Przykładem może być wirus Cabir napisany w 2004 roku
Wirusy pasożytnicze • Większość z istniejących wirusów to tzw. wirusy pasożytnicze. Charakteryzują się one tym, że wykorzystują swoje ofiary do transportu. Modyfikują ich strukturę wewnętrzną i oczywiście nie naprawiają jej. Plik użyty do transportu jest uszkodzony. Jedynym dla niego ratunkiem może być użycie szczepionki lub kopii zapasowych dla zainfekowanych plików.
Podział wirusów pasożytniczych • Wirusy lokujące się na końcu pliku (ang. end of file infectors). Dopisują kod wirusa na koniec pliku, a następnie modyfikują początek pliku tak, aby wskazywał na wirusa • Wirusy nadpisujące (ang. overwrite infectors). Lokują się na początku pliku, zwykle nie zapamiętują poprzednich danych w pliku i nieodwracalnie go niszczą • Wirusy nagłówkowe (ang. header infectors). Lokują się w nagłówkach plików EXE przeznaczonych dla systemu DOS. Ich nagłówek jest zawsze standardowo ustawiany przez programy linkujące na wielokrotność jednego sektora (512 bajtów). Wirusy te nie przekraczają rozmiaru jednego sektora • Wirusy lokujące się w pliku w miejscach gdzie jest jakiś pusty obszar. Obszar ten wypełniony jest ciągiem zer i można go nadpisać nie niszcząc pliku. Są to cave infectors • Wirusy lokujące się w dowolnym miejscu pliku. Są bardzo rzadkie i trudne do napisania, to tzw. surface infectors • Wirusy wykorzystujące część ostatniej JAP (Jednostki Alokacji Pliku). Korzystają z faktu, iż plik rzadko zajmuje dokładnie wielokrotność jednej JAP. Są to tzw. slack space infector
Wirusy towarzyszące • Wirusy te zwykle tworzone są w językach wysokiego poziomu. Wykorzystują hierarchię stosowaną przez system DOS, dotyczącą kolejności uruchamiania programów o tych samych nazwach a innych rozszerzeniach. • Jeśli w jednym katalogu jest kilka programów o tej samej nazwie ale o różnych rozszerzeniach (EXE, COM, BAT), to w przypadku podania nazwy programu bez rozszerzenia, w pierwszej kolejności poszukiwany jest plik o rozszerzeniu COM, potem EXE, a na końcu BAT. • Wirusy towarzyszące wykorzystują tą właściwość systemu DOS. Jeśli program ma rozszerzenie COM to wirus towarzyszący nie dokona infekcji. Jeśli natomiast program ma rozszerzenie EXE lub BAT, to plik z wirusem będzie miał rozszerzenie COM i może zostać omyłkowo uruchomiony nawet przez samego użytkownika systemu. • Próba uruchomienia programu bez podania rozszerzenia w pierwszej kolejności uruchomi plik COM zawierający kod wirusa. Następnie wirus po uaktywnieniu się przekaże sterowanie do programu macierzystego.
Wirusy plików wsadowych • Są to tzw. batchviruses, gdyż pliki wsadowe to pliki o rozszerzeniu BAT. Wirusy te wykorzystują do transportu właśnie pliki BAT. Potrafią wbrew pozorom być bardzo niebezpieczne i infekować również pliki COM oraz EXE, a nawet tablice partycji dysku. Po uruchomieniu zainfekowanego pliku wsadowego tworzony jest plik uruchamialny COM lub EXE, który zawiera właściwy kod infekujący pliki BAT. Plik BAT jest następnie kasowany, a plik wykonywalny jest uruchamiany.
Makrowirusy • Makrowirusy nie zarażają programów uruchamialnych lecz dokonują destrukcji dzięki wykonywaniu swojego kodu zapisanego w plikach dokumentów Microsoft Office (doc, xls). W programie Microsoft Word jest to język WordBasic, a w programie Microsoft Excel jest to Visual Basic for Applications. Są to wirusy bardzo łatwo wykrywalne, a ponadto ich działanie może zostać zablokowane przez macierzyste aplikacje. Od chwili, gdy aplikacje Microsoft Office ostrzegają o istnieniu makr, wirusy tego typu nie są bardzo groźne, nie powstają także nowe. Wirusy tego typu mogą działać w programach Microsoft Office w środowisku Macintosh, pojawiały się jeszcze w pierwszych latach XXI wieku, ale nie były szczególnie groźne ani powszechne.
Inne programy o działaniu destrukcyjnym • Obok powyżej opisanych rodzajów wirusów, istnieje szereg programów które często uważane są za wirusy, lecz nimi nie są, gdyż ich sposób działania jest niezgodny z definicją wirusa. Owszem, ich działanie jest szkodliwe dla użytkownika systemu, lecz programy te nie doczepiają się do innych plików. Są to: • robaki • bomby logiczne • króliki • fałszywki • zakraplacz • spyware
Robaki • programy, których działanie polega na tworzeniu własnych duplikatów. Nie atakują one żadnych obiektów jak to czynią wirusy, a jedynie same się powielają. Oprócz zajmowania miejsca na dysku niekiedy wywołują również negatywne skutki uboczne. Robaki są najbardziej popularne w sieciach, gdzie mają do dyspozycji różne protokoły transmisji sieciowej dzięki którym mogą się rozprzestrzeniać.
Konie trojańskie • działają w sposób bardzo prosty. Program będący koniem trojańskim, po uruchomieniu wykonuje normalną pracę i użytkownikowi wydaje się że uruchomił zwykły program bądź grę. Jednak dodatkowo wykonywane są operacje szkodliwe, niezauważalne dla użytkownika. Konie trojańskie najłatwiej podrzucić w plikach udających nowe, popularne programy bądź gry.
Bomby logiczne • różnią się od konia trojańskiego tym, że ukryte operacje nie są wykonywane od razu po ich uruchomieniu, lecz dopiero w odpowiednim czasie. Może to być zajście określonego zdarzenia w systemie bądź wielokrotne uruchomienie danego programu. Często uruchomienie ukrytych operacji następuje automatycznie po upłynięciu określonej liczby dni od momentu uruchomienia bomby.
Króliki • określane są również jako bakterie. To programy, które nie niszczą plików. Ich jedynym celem jest samokopiowanie. Typowy program w rodzaju bakterii lub królika może na przykład jednocześnie uruchomić kilka swoich kopii w systemach wieloprogramowych, lub stworzyć dwa nowe pliki z których każdy jest kopią oryginalnego pliku źródłowego bakterii. Oba programy mogą następnie skopiować się podwójnie i w ten sposób mogą rozmnożyć się do bardzo dużej liczby. Bakterie reprodukują się wykładniczo, zabierając całą moc obliczeniową procesora. Ten rodzaj ataku jest jedną z najstarszych form zaprogramowanych zagrożeń.
Profilaktyka Antywirusowa
Profilaktyka Antywirusowa • Najlepszą metodą ustrzeżenia się przed wirusami jest sprawdzanie możliwie najnowszym programem antywirusowym wszystkich plików, które docierają do naszego komputera. Niekiedy nawet pliki od zaufanych osób mogą zawierać wirusy, a osoby te mogą o tym po prostu nie wiedzieć. Ważnym elementem działań zapobiegawczych jest regularne tworzenie kopii awaryjnych dla najważniejszych plików, programów bądź dokumentów. Tworzenie kopii zapasowych może wydać się niepotrzebne, jednak niekiedy kopie te mogą okazać się dla nas wybawieniem. Należy dodać, że obecność wirusa w systemie nie musi być zawsze dla nas tragedią. Wiele wirusów, wbrew powszechnej opinii, nie zawiera procedur niszczących. W przypadku zainfekowania komputera nie należy od razu w panice formatować dysku twardego. Co więcej, wykonanie formatowania dysku wcale nie oznacza pozbycia się wirusa z systemu.
Ochrona przed wirusami plików uruchamialnych • Pliki uruchamialne można, oprócz sprawdzenia programem antywirusowym, dodatkowo przeanalizować przy użyciu debugera, czyli aplikacji służącej do śledzenia przebiegu programów krok po kroku. Zaawansowany użytkownik często już po kilku instrukcjach kodu programu rozpozna czy zawiera on wirusa i poprzez przerwanie jego działania uniemożliwi infekcję systemu. Powyższa metoda wydawać się może bardzo amatorska, jednak jest skuteczna, jak zresztą większość tego typu sposobów, gdyż pozwala wykryć nowe wirusy, których nie rozpoznają jeszcze programy antywirusowe.
Ochrona przed bombami logicznymi i końmi trojańskimi • Konie trojańskie i bomby logiczne ze względu na sposób działania są trudne do wykrycia, gdyż właściwy, destrukcyjny kod może być umieszczony w dowolnym miejscu programu i trudno go odnaleźć. Niekiedy jest to wręcz niemożliwe. Z pomocą przychodzi tu technika heurystyczna. Polega ona na wykrywaniu potencjalnych agresorów na podstawie charakterystycznych sekwencji kodu. Programy poszukujące koni trojańskich w podejrzanych plikach najczęściej szukają w nich instrukcji wywołań przerwań programowych. Są to przerwania 13h lub 26h, używane do odczytywania i zapisywania sektorów. Ze względu na swe działanie, przerwania te występują bardzo rzadko w typowym oprogramowaniu użytkowym, gdyż normalne programy nie korzystają z bezpośrednich operacji zapisu na sektorach.
Ochrona przed makrowirusami • Bez programu antywirusowego trudno jest wykryć wirusy w plikach dokumentów DOC czy XLS, ale istnieją metody aby zminimalizować szansę zainfekowania systemu. Można w tym celu: • wyłączyć wszystkie makra automatyczne przy pomocy własnoręcznie napisanego makra • aby przy uruchamianiu Worda wyłączyć makro AutoExec należy uruchamiać aplikację z parametrem m: • WINWORD.EXE /M • podczas wczytywania plików trzymać wciśnięty klawisz SHIFT, co spowoduje zablokowanie automatycznego makra AutoOpen • od czasu do czasu przeglądać listę makr zawartych w szablonie NORMAL.DOT. Jeżeli zawiera ona jakieś makra automatyczne lub makra o dziwnych, niespotykanych nazwach, możliwe, iż szablon jest zainfekowany. Makra można przeglądać za pomocą opcji wybieranych z menu Worda PLIK/SZABLONY/ORGANIZATOR/MAKRA, bądź też NARZĘDZIA/MAKRO
Program antywirusowy • program komputerowy, którego celem jest wykrywanie, zwalczanie, usuwanie i zabezpieczanie systemu przed wirusami komputerowymi, a często także naprawianie w miarę możliwości uszkodzeń wywołanych infekcją wirusową. Współcześnie najczęściej jest to pakiet programów chroniących komputer przed różnego typu zagrożeniami.
Skanery • Skanery to najstarszy i najprostszy sposób ochrony antywirusowej. Ich działanie polega na wyszukiwaniu określonej sekwencji bajtów w ciągu danych. W większości wirusów można wyróżnić unikalną sekwencję bajtów, tzw. sygnaturę, dzięki której możliwe jest odnalezienie wirusa w pamięci lub w zarażonej ofierze. Skuteczność skanera antywirusowego zależy od tego, jak bardzo charakterystyczna jest dana sekwencja. Najlepiej, jeżeli wirus zawiera w sobie jakiś bardzo specyficzny napis lub ciąg bajtów. • Wraz z pojawieniem się wirusów polimorficznych znaczenie skanerów trochę zmalało, jednak nadal jest to najważniejsza metoda walki z wirusami. Wirusy polimorficzne są trudne do wykrycia, gdyż ich różne próbki nie wyglądają tak samo. Często dwie próbki danego wirusa nie mają ze sobą nic wspólnego. Polimorfizm może być osiągnięty poprzez zakodowanie ciała wirusa. W przypadku tych wirusów również używa się skanera, choć dopiero w późniejszej fazie wykrywania.
Monitory • Monitor to program antywirusowy zainstalowany jako TSR (ang. Terminate but Stay Resident) lub sterownik SYS, który – poprzez monitorowanie odpowiednich funkcji DOS i BIOS – pozwala na wykrywanie wszystkich wykonywanych za pomocą tych funkcji odwołań do dysków. To, czy monitor będzie działał prawidłowo zależy często od momentu, w którym przejął on kontrolę nad systemem (przed działaniem wirusa, czy już po) oraz od tego, jak głęboko wnika on w system operacyjny. Jak widać autorzy programów antywirusowych muszą korzystać z metod podobnych do tych, które stosują twórcy wirusów. Dużą wadą programów monitorujących jest to, że powodują one często fałszywe alarmy.
Szczepionki • Są to programy skierowane przeciwko konkretnym wirusom. Na podstawie posiadanego czy wykrytego egzemplarza wirusa można, po odpowiedniej analizie jego kodu, zdefiniować tzw. sygnatury, na podstawie których wykrywa się kolejne kopie wirusa w systemie. Dokładna analiza kodu wirusa pozwala niekiedy odnaleźć w nim oryginalne wartości pewnych parametrów, które mogą posłużyć do wyleczenia plików. Większość z istniejących szczepionek to rozbudowane programy, które potrafią wykryć i usunąć kilka tysięcy określonych wirusów. Tylko w przypadkach nowych wirusów szczepionki nie są wcale efektywne.
Programy autoweryfikujące • Programy te służą do sprawdzania czy dany program nie został w jakiś sposób zmieniony przez wirusa. Sprawdzanie to jest możliwe poprzez dodanie do wskazanego pliku określonego, krótkiego programu. Dodawany kod dopisuje się do pliku wykorzystując te same mechanizmy co wirusy, i pozwala on na autoweryfikację, czyli automatyczne sprawdzanie czy dany program nie został zmodyfikowany. • Niestety, programy tego typu najczęściej nie są odporne na technikę ukrywania kodu wirusa stealth i w systemie zainfekowanym przez wirusa używającego tej techniki okażą się całkowicie nieefektywne.
Najbardziej znane programy antywirusowe • Płatne • Kaspersky Anti-Virus firmy Kaspersky Lab • McAfee VirusScan firmy McAfee • mks_vir firmy MKS • NOD32 firmy Eset • Norman Virus Control firmy Norman ASA • Norton AntiVirus firmy Symantec • Norton Internet Security firmy Symantec • Panda Antivirus firmy Panda Security
Najbardziej znane programy antywirusowe • Darmowe • Bez ograniczeń: • ClamAV (Open Source) • ClamWin (Open Source) • OpenAntiVirus na licencji GNU GPL • Darmowe do użytku domowego: • AntiVir PersonalEdition Classic (wersja dla systemów Windows, Linux, FreeBSD i Solaris) • avast! Home Edition • avast! Linux Home Edition • AVG Free Edition (wersja dla systemów Windows i Linux) • BitDefender Antivirus Scanner for Unices (wersja dla systemów Linux i FreeBSD) • BitDefender Free Edition
Skanery antywirusowe on-line • Gdy użytkownik nie posiada programu antywirusowego, a chciałby szybko sprawdzić dysk lub tylko jeden plik, dobrym rozwiązaniem są skanery online • Przykłady skanerów: • ArcaOnline - Skaner Online • BitDefender Online Scanner • ESET Online Skaner - NOD32 • skaner.html mks_vir Skaner On-Line • Kaspersky On-line Scanner
Bezpieczeństwo danych w systemie operacyjnym • Jednym z ważniejszych zadań systemu operacyjnego jest zapewnienie bezpieczeństwa danym. Chodzi tu zarówno o ochronę poufności danych, czyli uniemożliwienie nieautoryzowanego dostępu, jak i o zabezpieczenie danych przed utratą. Systemy operacyjne realizują to zadanie za pomocą wbudowanych narzędzi zabezpieczeń. Zaprezentujemy kilka podstawowych mechanizmów zwiększających bezpieczeństwo danych.
Weryfikacja użytkownika komputera za pomocą hasła • W systemach wielodostępowych istnieje możliwość dodawania użytkowników do systemu i ich autoryzacja hasłem. W systemie Windows XP w bardzo wygodny sposób można ustalić zasady logowania się do systemu oraz właściwości kont użytkowników. W tym celu należy uruchomić okno Konta użytkowników przez wpisanie w oknie Uruchom (z menu Start) komendy „control userpasswords2”.
Szyfrowanie danych • Mechanizm szyfrowania danych jest wykorzystywany przy zabezpieczaniu szczególnie poufnych danych. Odtworzenie ich jest możliwe dopiero po wpisaniu odpowiedniego kodu. W systemie Windows XP możemy zaszyfrować dowolny folder lub plik na partycji NTFS. W tym celu wystarczy ustawić kursor na obszarze wybranego pliku, nacisnąć prawy przycisk myszy i wybrać zakładkę Właściwości. Następnie wywołujemy opcję Zaawansowane i zaznaczamy pole Szyfruj zawartość, aby zabezpieczyć dane. Decyzję potwierdzamy przyciskiem OK.
Wykonywanie regularnych kopii zapasowych • System Windows XP umożliwia wykonywanie kopii zapasowych wybranych plików, folderów a nawet całych partycji. Na uwagę zasługuje opcja wybrania kopii przyrostowej, to znaczy takiej, która przy następnej aktualizacji zmienia się tylko o pliki zmodyfikowane od czasu wykonania ostatniej kopii zapasowej.
Współpraca z zaporami ogniowymi • Uruchomienie zapory (ściany) ogniowej z ang. Firewall chroni przed programami szpiegowskimi, które mogą próbować uzyskać przez Internet dostęp do danych znajdujących się na naszym komputerze. W Windows XP mamy możliwość aktywacji systemowej zapory ogniowej.
Regularne aktualizacje systemu • Kolejny mechanizm pozwalania na automatyczną aktualizację systemu. Aby uruchomić aktualizację automatycznie, należy wybrać w Panelu sterowania opcję Centrum zabezpieczeń, a następnie Aktualizacje automatyczne. Użytkownik samodzielnie ustala częstotliwość, w jakiej aktualizacje mają być uruchamiane.
Poufność transmisji • Informacje przesyłane przez Internet podążąją różnymi drogami. Komplet pakietów wychodzi z miejsca ,do którego dołączony jest komputer nadawcy i pojawia się w miejscu , do którego dołączony jest komputer odbiorcy. Jeżeli w pobliżu któregoś z nich dołączony zostanie trzeci komputer, może przechwycić dane.
Sniffery • Do wyłapywania danych służą programy zwane snifferami. Są to wykorzystywane do testowania sieci i sprawdzania, jak wyglądają przesyłane w niej dane. Używanie snifferów do innych celów jest tak samo nie etyczne, jak otwieranie cudzej korespondencji. Zdobycie jego nie wymaga większych problemów – wystarczy poszukać w Internecie.
Certyfikat strony • Przesyłanie danych za pomocą szyfrowanego protokołu transmisyjnego znacznie utrudnia życie amatorom cudzych sekretów. Certyfikat jest potwierdzeniem, że strona należy do prawowitego właściciela. Certyfikaty wydają firmy, które pełnia funkcję internetowych notariuszy. O tym że stronie przyznano certyfikat, informuje nas kłódka w dolnej części okna przeglądarki.
Podpis Elektroniczny • Dane w postaci elektronicznej, które wraz z innymi danymi, do których zostały dołączone lub z którymi są logicznie powiązane, służą do identyfikacji osoby składającej podpis elektroniczny.