Więc ostatnio myślałem o wirusach i zastanawiałem się, jak dokładnie nadążają antywirusy? Biorąc pod uwagę, że każdy, kto koduje od kilku tygodni, może zhakować coś, co robi paskudne, nieprzyjemne rzeczy na czyimś komputerze, sama ilość sprawiłaby, że prosta lista skrótów jest niemożliwa, więc jak to zrobić w programach antywirusowych? Czy monitorują aktywność procesu i stosują zasadę 3 ostrzeżeń do robienia rzeczy podobnych do wirusów? A jeśli tak, to co powstrzymuje go przed uruchamianiem się na całkowicie nieszkodliwych rzeczach (takich jak przenoszenie plików w systemie \ system32)?
Robiłem trochę google, ale zwykłe miejsca nie pomogły szczególnie i nie mogłem znaleźć tutaj duplikatu, więc pomyślałem, że dobrze byłoby zapytać :)
security
anti-virus
Phoshi
źródło
źródło
Odpowiedzi:
Ten artykuł z 2002 roku mówi o budowie silnika antywirusowego.
Jest też artykuł na temat heurystycznych technik wykrywania infekcji. To także ciekawa lektura.
źródło
Około rok temu uczestniczyłem w wykładzie Mikko Hyyppönena, jednego z głównych badaczy F-Secure. Pokazał ich zautomatyzowaną sieć testową, w której tworzą maszyny wirtualne dla każdej wysłanej do nich próbki, analizują jej strukturę, pozwalają na uruchomienie, rejestrują wszystko, co robią, porównują ją z poprzednimi próbkami i generują podsumowanie, które człowiek może sprawdzić później. Jeśli człowiek stwierdzi, że jest to wirus, system automatycznie generuje sygnaturę wykrycia i wysyła aktualizację do klientów. Wyobrażam sobie, że inni dostawcy również mają podobne systemy, aby aktualizować swoje bazy sygnatur.
źródło
Od Jak działa oprogramowanie antywirusowe? (AntivirusWorld):
Program antywirusowy to program komputerowy, którego można używać do skanowania plików w celu identyfikacji i eliminacji wirusów komputerowych i innego złośliwego oprogramowania (złośliwego oprogramowania).
Oprogramowanie antywirusowe zwykle wykorzystuje dwie różne techniki, aby to osiągnąć:
Podejście do słownika wirusów W podejściu do słownika wirusów, gdy oprogramowanie antywirusowe sprawdza plik, odnosi się do słownika znanych wirusów, które zostały zidentyfikowane przez autora oprogramowania antywirusowego. Jeśli fragment kodu w pliku pasuje do dowolnego wirusa zidentyfikowanego w słowniku, wówczas oprogramowanie antywirusowe może albo usunąć plik, poddać go kwarantannie, aby plik był niedostępny dla innych programów i wirus nie mógł się rozprzestrzeniać, lub podjąć próbę naprawić plik, usuwając samego wirusa z pliku.
Aby odnieść sukces w perspektywie średnio- i długoterminowej, podejście do słownika wirusów wymaga okresowego pobierania online zaktualizowanych wpisów słownika wirusów. Ponieważ nowe wirusy są identyfikowane „na wolności”, nastawieni na społeczeństwo i technicznie skłonni użytkownicy mogą wysyłać swoje zainfekowane pliki do autorów oprogramowania antywirusowego, którzy następnie umieszczają informacje o nowych wirusach w swoich słownikach.
Słownikowe oprogramowanie antywirusowe zwykle sprawdza pliki, gdy system operacyjny komputera je tworzy, otwiera i zamyka; i kiedy pliki są wysyłane pocztą elektroniczną. W ten sposób znany wirus może zostać wykryty natychmiast po otrzymaniu. Oprogramowanie można zazwyczaj zaplanować tak, aby regularnie sprawdzało wszystkie pliki na dysku twardym użytkownika.
Chociaż podejście słownikowe jest uważane za skuteczne, autorzy wirusów starali się wyprzedzać takie oprogramowanie, pisząc „wirusy polimorficzne”, które szyfrują swoje części lub w inny sposób modyfikują się jako metoda maskowania, aby nie pasować do sygnatury wirusa w słowniku.
Podejście podejrzanego zachowania Podejście podejrzanego zachowania nie próbuje natomiast zidentyfikować znanych wirusów, ale monitoruje zachowanie wszystkich programów. Jeśli na przykład jeden program próbuje zapisać dane w programie wykonywalnym, jest to oznaczane jako podejrzane zachowanie, a użytkownik jest o tym powiadamiany i pytany, co zrobić.
W przeciwieństwie do metody słownikowej, podejrzane zachowanie zapewnia ochronę przed nowymi wirusami, które jeszcze nie istnieją w żadnych słownikach wirusów. Jednak wydaje się to również dużą liczbą fałszywych alarmów, a użytkownicy prawdopodobnie odczulają wszystkie ostrzeżenia. Jeśli użytkownik kliknie „Akceptuj” przy każdym takim ostrzeżeniu, oprogramowanie antywirusowe jest oczywiście bezużyteczne dla tego użytkownika. Problem ten pogorszył się szczególnie w ciągu ostatnich 7 lat, ponieważ wiele innych nie złośliwych programów zdecydowało się zmodyfikować inne pliki .ex bez względu na ten fałszywie pozytywny problem. Dlatego większość współczesnych programów antywirusowych wykorzystuje tę technikę coraz mniej.
Inne sposoby wykrywania wirusów Niektóre programy antywirusowe będą próbowały emulować początek kodu każdego nowego pliku wykonywalnego wykonywanego przed przekazaniem kontroli do pliku wykonywalnego. Jeśli wydaje się, że program używa kodu samomodyfikującego się lub w inny sposób pojawia się jako wirus (natychmiast próbuje znaleźć inne pliki wykonywalne), można założyć, że plik wykonywalny został zainfekowany wirusem. Jednak ta metoda powoduje wiele fałszywych trafień.
Jeszcze inną metodą wykrywania jest użycie piaskownicy. Piaskownica emuluje system operacyjny i uruchamia plik wykonywalny w tej symulacji. Po zakończeniu programu piaskownica analizuje zmiany, które mogą wskazywać na wirusa. Ze względu na problemy z wydajnością ten typ wykrywania jest zwykle wykonywany tylko podczas skanowania na żądanie.
Kwestie budzące obawy
Makrowirusom, prawdopodobnie najbardziej niszczycielskim i szeroko rozpowszechnionym wirusom komputerowym, można by zapobiec znacznie taniej i skuteczniej, bez konieczności kupowania oprogramowania antywirusowego przez wszystkich użytkowników, gdyby Microsoft naprawił luki w zabezpieczeniach w Microsoft Outlook i Microsoft Office związane z wykonanie pobranego kodu oraz zdolność makr dokumentów do rozprzestrzeniania się i siać spustoszenie.
Edukacja użytkowników jest równie ważna jak oprogramowanie antywirusowe; zwykłe przeszkolenie użytkowników w zakresie bezpiecznych praktyk komputerowych, takich jak niepobieranie i uruchamianie nieznanych programów z Internetu, spowolniłoby rozprzestrzenianie się wirusów bez konieczności korzystania z oprogramowania antywirusowego.
Użytkownicy komputerów nie zawsze powinni uruchamiać z dostępem administratora do własnego komputera. Gdyby po prostu działały w trybie użytkownika, niektóre typy wirusów nie byłyby w stanie się rozprzestrzeniać.
Słownikowe podejście do wykrywania wirusów jest często niewystarczające z powodu ciągłego tworzenia nowych wirusów, jednak podejrzane zachowanie jest nieskuteczne z powodu fałszywie pozytywnego problemu; dlatego obecne rozumienie oprogramowania antywirusowego nigdy nie podbije wirusów komputerowych.
Istnieją różne metody szyfrowania i pakowania złośliwego oprogramowania, które uniemożliwiają wykrycie nawet dobrze znanych wirusów w oprogramowaniu antywirusowym. Wykrywanie tych „zakamuflowanych” wirusów wymaga potężnego mechanizmu rozpakowywania, który może odszyfrować pliki przed ich zbadaniem. Niestety, wiele popularnych programów antywirusowych tego nie ma i dlatego często nie są w stanie wykryć zaszyfrowanych wirusów.
Wydaje się, że firmy sprzedające oprogramowanie antywirusowe mają motywację finansową do pisania i rozprzestrzeniania wirusów oraz do paniki nad zagrożeniem.
(Podoba mi się ten artykuł, a ja po prostu kopiuję i wklejam z AntivirusWorld.)
źródło
Phoshi, twoje pytanie jest bardzo interesujące, ale sugeruję, abyś rozpoczął swoją misję od innego. Radzę to, ponieważ odpowiedzi na zadane pytanie mogą Cię wprowadzić w błąd.
Proponuję zacząć od zastanowienia się nad tym, co uważasz za wirusa, jaka jest jego definicja.
Elitarni twórcy wirusów to badacze bezpieczeństwa, a nie dzieciaki skryptów. Ich definicja wirusa to: „wirus jest fragmentem kodu, który może się namnażać”. Otóż to. Jak widać, nie ma tu żadnych cech destrukcyjnych. Wszystkie wirusy obowiązkowo są złe - to FUD, który otrzymujesz od twórców oprogramowania antywirusowego, aby mogli sprzedawać swoje oprogramowanie.
IMHO mądrze jest traktować wirusy jako część całego ekosystemu oprogramowania, a nie jako zewnętrznych złych „obcych”.
źródło
Jednym z bardzo ważnych sposobów patrzenia na wirusy jest odwrotność. W jaki sposób wirusy wpływają na systemy. Jest to zwykle spowodowane lukami w oprogramowaniu. Oprogramowanie antywirusowe jest świadome tych luk w zabezpieczeniach i szuka oprogramowania wpływającego na te luki. Tak czy inaczej, wirusy zawsze coś robią. Potrzebują więc działającego procesu, aby zrobić to, co robią najlepiej. Czasami jest to już istniejące, czasem same się tworzą.
Jednak większość wirusów działa w podobny sposób, dzięki czemu skaner wirusów łatwo je rozróżnia. Istnieje wiele różnych wirusów wykorzystujących tę samą lukę!
http://en.wikipedia.org/wiki/List_of_computer_viruses
źródło