Stoned – wirus komputerowy infekujący sektor rozruchowy (ang.boot sector), napisany w 1987 roku. Jest jednym z pierwszych wirusów i przypuszczalnie został stworzony przez studenta w Wellington w Nowej Zelandii[3].
W 1989 roku rozprzestrzeniał się na obszarze Nowej Zelandii oraz Australii[4], zaś w latach 90. powszechne były jego odmiany[1].
Komputer zainfekowany pierwotną odmianą wirusa miał szansę 1:8[5][6] na wyświetlenie w trakcie rozruchu tekstu „Your PC is now Stoned!”, który można było odnaleźć w zmodyfikowanym sektorze rozruchowym na zainfekowanej dyskietce oraz głównych rekordach rozruchowych (MBR)dysków twardych, razem z dopiskiem „Legalise Marijuana”. Późniejsze warianty powodowały wyświetlanie się innych komunikatów.
Pierwotna wersja
Uważa się, że oryginalny kod wirusa, odpowiedzialny za wyświetlanie się napisu „Your computer is now Stoned! Legalise Marijuana”, został napisany przez studenta w Wellington w Nowej Zelandii[3]. Struktura kodu pozwala wysnuć wniosek, że został on utworzony przez osobę mającą doświadczenie wyłącznie z dyskietkami IBM PC o pojemności 360 KB, ponieważ nie działa prawidłowo z nośnikami IBM AT o pojemności 1,2 MB lub na systemach posiadających ponad 96 plików w głównym katalogu dysku. Na dyskach o większej pojemności, takich jak dyskietki 1,2 MB oryginalny boot sector może nadpisać część danych katalogu.
Komunikat mógł się pojawić w przypadku, gdy czas uruchamiania komputera był liczbą całkowicie podzielną przez 8. Na wielu klonach IBM PC użytkowanych w tamtym czasie długość trwania rozruchu mogła być zmienna co oznaczało losowe wyświetlanie się napisu (szansa jeden do ośmiu). Na niektórych komputerach kompatybilnych z IBM PC lub na oryginalnych maszynach IBM PC czas rozruchu był taki sam – w takim przypadku zarażony komputer mógł wcale nie pokazywać napisu lub wyświetlać go przy każdym starcie. Zainfekowana maszyna ze stacją dyskietek o pojemności 360 KB i dyskiem twardym mającym 20 MB lub mniej, nigdy nie wyświetlający komunikatu, był jednym z pierwszych przykładów komputera zainfekowanego „bezobjawowo”. Mógł on normalnie funkcjonować, jedynie zarażając umieszczone w nim dyskietki.
W przypadku dysków twardych oryginalny MBR ulega przesunięciu do cylindra 0, głowicy 0, sektora 7. Na dyskietce oryginalny MBR jest przesuwany do cylindra 0, głowicy 1 i sektora 3, który jest ostatnim sektorem katalogu na nośnikach 360-kilobajtowych. Wirus „bezpiecznie” nadpisuje sektor startowy jeżeli katalog główny zawiera do 96 plików.
Komputer klasy PC był zarażany poprzez uruchomienie z zainfekowanej dyskietki. Ówcześnie pierwszym urządzeniem rozruchowym była stacja dyskietek (A:), przy włożonej do niej dyskietce. Wirus rozprzestrzeniał się przy dostępie do dyskietki na zakażonej maszynie. W ten sposób sam nośnik stawał się źródłem dalszych infekcji. Jest to techniczny przykład genu recesywnego – trudnego do wyeliminowania – ponieważ użytkownik mógł posiadać dowolną ilość zarażonych dyskietek i komputer wolny od wirusa do momentu rozruchu ze stacji dyskietek. Usunięcie wirusa z samego komputera, bez oczyszczania każdego z nośników, stanowiło ryzyko powtórnego zakażenia. Wirus mógł być także rozprowadzany przez dyskietki wzajemnie pożyczane przez użytkowników.
Warianty
Kod wirusa może być łatwo modyfikowany; osoba nie znająca się na programowaniu mogła jednak zmienić treść komunikatu. Istnieje wiele wariantów Stoned[2], niektóre z nich różnią się wyłącznie treścią napisu.
Beijing, Bloody!
Wirus zawiera tekst „Bloody! Jun. 4, 1989”. Jest to nawiązanie do daty brutalnego stłumienia protestów na placu Niebiańskiego Spokoju w Pekinie.
Swedish Disaster
Wirus zawiera tekst „The Swedish Disaster”. Możliwe, że został napisany w Szwecji.
Manitoba
Manitoba nie zawiera procedur aktywacji i nie przechowuje oryginalnego sektora startowego na dyskietkach; wariant ten nadpisuje oryginalny sektor i uszkadza dyskietki EHD (ang.extra-high density, pol.ekstra-wysokiej gęstości) o pojemności 2,88 MB.
W trakcie działania zajmuje 2 KB pamięci.
NoInt, Bloomington, Stoned III
NoInt stosuje techniki utrudniające wykrycie. Powoduje to błędy odczytu przy próbie uzyskania dostępu do tablicy partycji. Systemy zainfekowane tym wariantem mają pomniejszoną pamięć o 2 KB.
Flame, Stamford
Wariant nazywany Flame (nie mający powiązania z innym złośliwym oprogramowaniem o tej nazwie) wykorzystuje 1 KB pamięci. Przechowuje oryginalny sektor startowy lub główny rekord rozruchu na cylindrze 25, głowicy 1, sektorze 1 bez względu na rodzaj nośnika danych.
Flame zapisuje numer bieżącego miesiąca w momencie infekcji. Przy zmianie miesiąca wyświetla na ekranie kolorowe płomienie, nadpisując MBR.
Angelina
Angelina posiada mechanizmy ukrywające obecność wirusa. Na dysku twardym MBR jest przenoszony do cylindra 0, głowicy 0, sektora 9.
Kod tego wariantu zawiera wbudowany tekst, który nie jest jednak wyświetlany na ekranie: „Greetings from ANGELINA!!!/by Garfield/Zielona Gora”.
W październiku 1995 roku Angelina została odkryta na fabrycznie nowych dyskach twardych Seagate Technology 5850 (850 MB)[1].
W 2007 roku pewna ilość laptopów marki Medion, sprzedawanych w supermarketach Aldi, rzekomo była zainfekowana wariantem Angelina[7].
W opublikowanym komunikacie prasowym firma Medion oświadczyła, że wirusa nie było na komputerach; przyczyną zamieszania był błąd w preinstalowanym programie antywirusowym Bullguard. Producent oprogramowania opublikował łatkę[8]. Nieprawidłowe działanie Bullguarda wskazuje na jeden z problemów (razem z utratą wydajności oraz irytującymi wyskakującymi okienkami proszącymi użytkownika o uiszczenie zapłaty) preinstalowanego oprogramowania przez przedsiębiorstwa OEM, nazywanego przez pracowników Microsoftu „crapletsami”, na komputerach z systemami Windows w celu odrobienia kosztów związanych z licencją na Windows. Jest to praktyka potępiana przez media z branży IT, nawet przez dziennikarzy zwykle przyjaznych wobec Microsoftu[9].
Incydent z blockchain
15 maja 2014 roku sygnatura wirusa Stoned została wprowadzona do blockchainbitcoinu. Program Microsoft Security Essentials wykrywał kopie blockchain posiadające sygnaturę jako wirus, proponując użytkownikowi usunięcie pliku i zmuszając węzły do ponownego załadowania blockchain celem kontynuowania cyklu[10][11].
Blockchain posiadał jedynie sygnaturę wirusa, nie jego kod wykonywalny; nawet gdyby kod był dołączony do łańcucha bloków nie mógłby działać[12].
Incydent ten został szybko zażegnany, po tym jak Microsoft uniemożliwił wykrycie blockchain jako Stoned[13].
Pakiet Microsoft Security Essentials nie utracił możliwości rozpoznawania prawdziwej instancji Stoned.
Zobacz też
Brain – wcześniejszy wirus atakujący sektor rozruchowy
Michelangelo – wirus sektora rozruchowego bazujący na Stoned