
Wirus komputerowy – najczęściej prosty program komputerowy, który w sposób celowy powiela się bez zgody użytkownika. Wirus komputerowy w przeciwieństwie do robaka komputerowego do swojej działalności wymaga nosiciela w postaci programu komputerowego, poczty elektronicznej itp. Wirusy wykorzystują słabość zabezpieczeń systemów komputerowych lub właściwości systemów oraz niedoświadczenie i beztroskę użytkowników.
Często wirusami komputerowymi mylnie nazywane są wszystkie złośliwe programy.
Do zwalczania, usuwania i zabezpieczania się przed wirusami używane są programy antywirusowe.
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. Jedyną wadą asemblera jest to, że programów w nim napisanych nie można przenosić na komputery o innej architekturze, stąd mogą one egzystować tylko w jednej rodzinie komputerów.
Oprócz typowych języków programowania do stworzenia wirusa można wykorzystać języki makr wbudowane w nowoczesne edytory tekstów lub arkusze kalkulacyjne. Zawarte w nich mechanizmy pozwalają na infekcję każdego otwieranego przez program dokumentu lub arkusza. Są one wymarzonym narzędziem do tworzenia wirusów dla początkujących programistów, gdyż wszystkie operacje na fizycznych obiektach są zaimplementowane w makrach i wykonują się bez konieczności ingerencji programisty.
Uważa się, że systemy komputerowe o architekturze uniksowej są lepiej zabezpieczone przed 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.
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
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.
Pierwszy rodzaj wirusów był bardzo rozpowszechniony w czasach, kiedy powszechne było kopiowanie danych i programów na dyskietkach. Wirusy te przenosiły się między komputerami za pośrednictwem dyskietek. Uruchomione w środowisku nie posiadającym odpowiednich zabezpieczeń, zarażały pliki wykonywalne oraz kolejne dyskietki. Ich zmierzch przyszedł razem z wyparciem dyskietek przez CD-ROMy oraz rozpowszechnieniem Internetu. Dzisiaj są one właściwie niespotykane. Najbardziej znane przykłady wirusów z tej kategorii: Brain, Stoned, Michelangelo.
Wirusy plikowe są najpowszechniejszym, obok makrowirusów, typem wirusów. Tworzone są głównie w asemblerze. Wirusy te są programami, które potrafią dołączać swój kod do kodu wykonywalnego innego programu. Infekują pliki na dysku, w udostępnionych zasobach sieciowych lub wysyłają się w e-mailach poprzez SMTP. Przykładowe wirusy plikowe: Frodo, W95.CIH, W32.Magistr.
Wirusy skryptowe to samoreplikujące się skrypty powłoki. Zwykle infekują one inne skrypty. W DOS-ie występują jako pliki .bat, pod Linuksem jako skrypty bashowe, pod systemem Windows jako np. Visual Basic script (.vbs). Przykładowe wirusy: Bat.Rous, VBS.LoveLetter, SH.Sizer.
Inny rodzaj wirusów to programy zapisane jako makra. Infekują one dokumenty programów biurowych a rozprzestrzeniają się głównie za pośrednictwem poczty elektronicznej. Przykładowe wirusy: W95M.Concept, W97M.Melissa, W97M.Laroux.
Najlepszą metodą ustrzeżenia się przed wirusami jest ochrona prewencyjna, która opiera się na domyślnym odrzucaniu 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. Trzeba również regularnie tworzyć kopie zapasowe danych. 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 (np. w przypadku Viruta).
Oprócz sprawdzenia programem antywirusowym, pliki wykonywalne można dodatkowo przeanalizować przy użyciu strony analizującej pliki pod kątem ich zainfekowania (np. virustotal.com). Dzięki temu rozwiązaniu można mieć niemalże 100% pewności, że dany plik jest/nie jest zainfekowany. Wyjątkiem mogą być wirusy, które są tak nowe, że żadna firma produkująca zabezpiecznie nia miała z nimi styczności, więc nie jest ich w stanie rozpoznać jako zainfekowane.
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. Potencjalnymi końmi trojańskimi są także najnowsze wersje typowych i często używanych programów użytkowych, programów kompresujących czy nawet antywirusowych, zatem należy się z nimi obchodzić bardzo ostrożnie i przed uruchomieniem ich wypada je przeskanować. Dobrym rozwiązaniem, pozwalającym uchronić się przed większością koni trojańskich i bomb, może być zainstalowanie monitora antywirusowego. Konie trojańskie są zwykle pisane przez początkujących programistów, którzy do przeprowadzania destrukcji używają przerwań programowych, a te mogą być łatwo przechwytywane i kontrolowane przez monitor.
Źródło: http://pl.wikipedia.org/wiki/Wirus_komputerowy