Jest to trywialne ćwiczenie w automatach skończonych, aby pokazać, że nie ma algorytmu, który mógłby wykryć wszystkie wirusy, ale wiele firm sprzedaje oprogramowanie antywirusowe.
Czy jest jakaś część CS, która zajmuje się wirusami i antywirusami?
PS: Nie pytam o niezwiązane z CS uzasadnienie posiadania AV, ale tylko o to, jaką kategorię / przedmiot w CS są objęte, jeśli w ogóle. Jeśli AV nie jest przedmiotem w CS, to jest to również akceptowalna odpowiedź, czy są jakieś odniesienia w kontekście CS do wirusów i AV?
reference-request
security
Arjang
źródło
źródło
Odpowiedzi:
Istnieje podobszar bezpieczeństwa komputerowego o nazwie Wirusologia komputerowa. Journal of Computer Wirusologii poświęcona jest tematem. Badanie działania oprogramowania antywirusowego jedynie rysuje powierzchnię tego obszaru.
Na przykład jest nawet trochę pracy nad logiką złośliwego oprogramowania: ogólna definicja złośliwego oprogramowania autorstwa S. Kramera i JC Bradfielda. Journal of Computer Virology (6) 2010.
źródło
Wirusy i technologia antywirusowa mają wiele wspólnego z CS. Twoje pytanie przypomniało mi coś, co ostatnio przeczytałem. Oto fragment książki Williamson & Shmoys, The Design of Approximation Algorytmy, strona 6. Uzasadnia to (praktyczne) znaczenie algorytmów aproksymacyjnych i wykorzystuje dobrze znany problem pokrycia zestawu jako przykład w kontekście wirusów:
Zaskakujące czy nie, ten przykład pokazuje, że przydatne są co najmniej techniki AI i optymalizacja kombinatoryczna. Po przeczytaniu tego można łatwo uwierzyć, że wiele obszarów CS ma rzeczy, które można zastosować w kontekście wirusów i ich wykrywania. Aby odpowiedzieć na twoje pytanie bardziej bezpośrednio, wiele rzeczy w CS radzi sobie z wirusami, przynajmniej pośrednio.
źródło
Należy zachować ostrożność, używając wyniku teoretycznego do argumentowania, że czegoś nie można zrobić w praktyce. Istnieje kilka niebezpieczeństw, w które można wpaść:
wynik teoretyczny ma założenia, które nie mają zastosowania,
problem w praktyce nie jest dobrze modelowany przez model teoretyczny,
w praktyce rozwiązanie nie musi być idealne, aby było przydatne.
Nie podałeś formalnej definicji wirusa, więc rozwinięcie twojego twierdzenia o trywialnym ćwiczeniu może pomóc w zrozumieniu, co naprawdę masz na myśli.
Duża część tego, co robi oprogramowanie antywirusowe, polega na wykrywaniu znanych wirusów (i ich wariantów), a odbywa się to poprzez porównywanie ciągów (w plikach, pamięci itp.) Ze skończoną listą ciągów (sygnatur wirusów). Dlatego musimy regularnie aktualizować bazę danych oprogramowania antywirusowego.
Istnieją dodatkowe możliwości wykrywania potencjalnych wirusów w oparciu o ich „zachowanie”, ale metody te nie są ani kompletne, ani dźwiękowe (i aby były przydatne, nie muszą być pełne / kompletne). Wydaje się, że projektowanie oprogramowania antywirusowego w większym stopniu dotyczy inżynierii komputerowej niż informatyki (choć informatyka i inżynieria komputerowa są ze sobą ściśle powiązane).
Ogólnie rzecz biorąc, badania te objęłyby bardziej stosowaną część bezpieczeństwa komputerowego (i bardziej ogólnie obszary systemowe: sieci komputerowe, systemy operacyjne itp.) Informatyki, ale wykorzystanie pomysłów z innych części informatyki (uczenie maszynowe itp.) Jest typowy.
Możesz sprawdzić The Art of Computer Virus Research and Defense .
źródło