Twoje konkretne pytania
Rozumiem, że oczywiście mogę dostać wirusa, pobierając i uruchamiając plik .exe w systemie Windows, ale jak mogę uzyskać wirusa, wchodząc na stronę internetową?
Twoja przeglądarka cały czas wykonuje kod (jest zrobiony z kodu). Podczas pobierania stron internetowych kod ten pobiera i wyświetla dowolne dane (piksele, znaki itp.).
Kod to także dane (na poziomie procesora).
Ponieważ kod jest danymi, jeśli Twoja przeglądarka próbuje wykonać dane (bez względu na rozszerzenie pliku lub format), może faktycznie zostać uruchomiony (jeśli zostanie spreparowany poprawnie).
Zwykle twoja przeglądarka nie jest tak głupia, aby próbować uruchamiać pobrane losowe dane. Może się to jednak zdarzyć.
Jednym ze sposobów jest utworzenie danych w taki sposób, aby po odczytaniu „przeciekły” i nadpisały dane tworzące program wykonywalny przeglądarki. Wymaga to od przeglądarki błędu (najczęściej w tym przypadku, który pozwala na przekroczenie bufora ).
Twoja przeglądarka uruchamia także programy na stronach internetowych. JavaScript, jak wspomniałeś, jest jednym z takich typów kodu. Ale są dziesiątki. ActiveX, Flash, dodatki, skrypty typu Monkey Monkey itp. To kod uruchamiany podczas odwiedzania stron internetowych. Ten kod może zawierać błędy powodujące naruszenia bezpieczeństwa.
Czy te wirusy atakują użytkowników Windows, Mac i Linux, czy też użytkownicy Mac / Linux są odporni?
Żadna platforma, z której korzystamy, nie jest całkowicie odporna na błędy, ponieważ wszystkie używają procesorów, które traktują dane jako kod. Właśnie tak działa nasza istniejąca architektura komputerowa.
Powodem tego mitu jest to, że Mac i Linux mają znacznie niższe wskaźniki adopcji w porównaniu z komputerami z systemem Windows (na poziomie komputera stacjonarnego). Dlatego oprogramowanie komputerowe na tych komputerach nie jest tak powszechnym celem twórców wirusów.
Wirusy nie występują za pomocą magii ani ewolucji postaw zdarzeniowych (tak jak robią to wirusy biologiczne). Jest to oprogramowanie napisane przez osoby lub zespoły programistów. I chcą dotrzeć do największego udziału w rynku, tak jak robią to zwykli dostawcy oprogramowania.
Co do tego, czy jeden wirus może atakować wiele platform; Wszystkie przeglądarki używają innego kodu, więc będą miały różne błędy (nawet ta sama przeglądarka na różnych platformach). Ale istnieją pewne biblioteki kodów, które są współużytkowane na różnych platformach. Jeśli taka biblioteka zawiera błąd, możliwe jest, że exploit może istnieć na wielu platformach.
Jednak w zależności od rodzaju przeprowadzonego ataku wirus napisany dla komputerów Mac innych niż Intel może nie działać na komputerach Mac z procesorami Intel i odwrotnie, ponieważ mają one różne procesory. W przypadku różnych procesorów dane reprezentujące kod mają inny format.
Gdy mówisz o maszynie wirtualnej lub języku skryptowym, ataki mogą być niezależne od platformy. To prowadzi nas do następnego pytania ...
Czy wirusy są zaprogramowane w JavaScript?
Niektóre wirusy są. Informacje, które podałem powyżej (o exploitach polegających na przepełnieniu bufora) byłyby zwykle używane jako atak poza Javascriptem, ale równie dobrze mogłyby się odnosić do wirusa stworzonego do ataku na exploita w interpreterie Javascript.
Javascript będzie również miał swój własny zestaw exploitów, na poziomie operacyjnym, który jest wyższy niż przepełnienie bufora. Istnieje wiele sposobów atakowania dowolnego oprogramowania. Im większe jest oprogramowanie (wiersze kodu), tym więcej odmian danych wejściowych użytkownika (w tym przypadku rodzajów kodu) może otrzymać i tym więcej błędów może zawierać.
Ponadto, im bardziej narażone jest działające oprogramowanie (np. Oprogramowanie działające na serwerze), tym bardziej narażone jest na atak.
Ogólnie jest to nazywane powierzchnią ataku
Wykorzystuje ogólnie
Microsoft ma mnemonikę typowych typów exploitów i wszystkie mają swoje własne interesujące właściwości oraz różne poziomy oprogramowania, które mogą atakować - STRIDE , co oznacza:
Spoofing (of user identity)
Tampering
Repudiation
Information disclosure (privacy breach or Data leak)
Denial of Service (D.o.S.)
Elevation of privilege
Niektóre z nich są częściej używane w ataku opartym na JavaScript niż inne, inne na serwerach, inne na plikach danych (takich jak obrazy).
Ale bezpieczeństwo to duże i ewoluujące pole. Jest naprawdę zbyt wiele informacji, aby w pełni odpowiedzieć na wszystkie pytania.