Safe Computing

RAPORT TECHNICZNY


Sophos Anti-Virus a problem roku 2000


W miarΩ zbli┐ania siΩ roku 2000 coraz czΩ£ciej pojawiaj╣ siΩ w╣tpliwo£ci dotycz╣ce przystosowania oprogramowania do przej£cia w kolejne tysi╣clecie. Pragniemy udzieliµ Pa±stwu odpowiedzi na trzy podstawowe zwi╣zane z tym pytania:

Czym jest problem roku 2000?
Na ca│ym £wiecie przyjΩte jest aby do okre£lenia bie┐╣cego roku u┐ywaµ tylko dw≤ch jego ostatnich cyfr. Stwierdzenia typu "urodzi│em siΩ w 71" s╣ dla nas ca│kowicie jasne. Tendencja ta zosta│a przeniesiona do dziedziny programowania. Kilka czy kilkana£cie lat temu nikt nie przypuszcza│, ┐e jego program bΩdzie wci╣┐ wykorzystywany w nastΩpnym stuleciu. Program komputerowy numeruj╣cy lata tylko dwoma ostatnimi cyframi nie rozpoznaje dnia 1 stycznia 2000 jako nastΩpnego po 31 grudnia 1999. Spowoduje to b│Ωdy w obliczeniach daty. Problemy mog╣ wyst╣piµ przy okre£laniu lat przestΩpnych. Lata podzielne przez cztery s╣ przestΩpnymi za wyj╣tkiem pierwszego roku w nowym wieku, kt≤ry musi dzieliµ siΩ przez 400. Lata 1700, 1800 i 1900 nie by│y przestΩpnymi, natomiast 2000 bΩdzie. Niekt≤re aplikacje s╣ tak zaprogramowane, ┐e nie bΩd╣ traktowaµ roku 2000 jako przestΩpnego. Po 28 lutego przejd╣ od razu do 1 marca. I tym razem obliczenia daty bΩd╣ nieprawid│owe. Program zaprojektowany tak, by bezproblemowo przej£µ w nastΩpny wiek powinien poprawnie operowaµ dat╣ przed, w trakcie i po roku 2000. Powinien te┐ rozpoznaµ rok 2000 jako przestΩpny. Nale┐y zwr≤ciµ uwagΩ na to, ┐e aplikacja posiadaj╣ca prawid│owo zaimplementowan╣ datΩ mo┐e dzia│aµ niew│a£ciwie za spraw╣ systemu operacyjnego lub innych program≤w.

Jakie znaczenie ma data dla systemu Sophos Anti-Virus
Zadaniem Sophos Anti-Virus jest wykrywanie i usuwanie wirus≤w komputerowych. Daty nie maj╣ dla niego praktycznego znaczenia. Nawet je£li system jest u┐ywany razem z programami, kt≤re podaj╣ nieprawid│ow╣ datΩ, w ┐adnym stopniu nie wp│ynie to na ochronΩ antywirusow╣ jak╣ system zapewnia. Sophos Anti-Virus wykorzystuje obliczenia zwi╣zane z dat╣ jedynie w dw≤ch przypadkach. Pierwszym z nich jest moment, w kt≤rym system jest startowany. Por≤wnywana jest wtedy data systemowa z dat╣ wygenerowan╣ przez Sophos Anti-Virus i przechowywan╣ w pliku. Zapisana jest ona w formacie YYYYDDMM wykorzystuj╣cym cztery cyfry do zapisu roku. Data systemowa powinna zawsze zgadzaµ siΩ, lub ewentualnie byµ p≤ƒniejsza od daty wygenerowanej przez system antywirusowy. Je£li tak nie jest na ekranie pojawia siΩ komunikat: "System clock date is incorrect" (data systemowa jest nieprawid│owa). W przypadku, gdy data systemowa jest wiΩksza o ponad cztery miesi╣ce od daty Sophos Anti-Virus wy£wietlona zostaje informacja: "Usefull life of SWEEP has been exceeded" (ta wersja SWEEPa jest ju┐ przestarza│a). Pomaga to ostrzec u┐ytkownik≤w przed u┐ywaniem nieaktualnego oprogramowania antywirusowego, kt≤re mo┐e nie wykryµ nowopowsta│ych wirus≤w. Po raz drugi Sophos Anti-Virus korzysta z daty kiedy │adowane s╣ pliki IDE zawieraj╣ce identyfikatory nowych wirus≤w. Pliki te wysy│ane s╣ do u┐ytkownik≤w w wypadku je£li pomiΩdzy aktualizacjami zostanie wykryty nowy wirus. Informacja o nowym wirusie jest p≤ƒniej umieszczana w bazie wirus≤w nastΩpnej wersji systemu. Oznacza to, ┐e ka┐dy plik IDE starszy ni┐ trzy miesi╣ce jest ca│kowicie zbΩdny. W przypadku natrafienia na taki w│a£nie plik Sophos Anti-Virus wy£wietla komunikat: "File C:\SWEEP\NEWVIRUS.IDE is older than 90 days" (plik C:\SWEEP\NEWVIRUS.IDE ma wiΩcej ni┐ 90 dni). Wyliczenie "wieku" pliku IDE odbywa siΩ na zasadzie por≤wnania daty bΩd╣cego w u┐yciu pliku z dat╣ systemow╣.

Jak przekonaµ siΩ czy Sophos Anti-Virus jest przystosowany do przej£cia w nowe tysi╣clecie?
Na pocz╣tek nale┐y zainstalowaµ aktualn╣ wersjΩ Sophos Anti-Virus na komputerze przeznaczonym do test≤w a nastΩpnie uruchomiµ system antywirusowy. Upewniµ siΩ, ┐e nie s╣ wy£wietlane ┐adne komunikaty maj╣ce zwi╣zek z dat╣. NastΩpnie cofn╣µ datΩ systemow╣ o jeden rok i ponownie uruchomiµ Sophos Anti-Virus. Powinien pojawiµ siΩ komunikat: "System clock date is incorrect". Ustawiµ datΩ w systemie o rok naprz≤d i zn≤w wystartowaµ Sophos Anti-Virus. Tym razem pojawi siΩ komunikat: "Usefull life of SWEEP has been exceeded". Taka sama informacja bΩdzie wy£wietlona je£li datΩ systemow╣ ustawimy na 31 grudnia 1999 a nastΩpnie na 1 stycznia 2000. Oznacza to, ┐e system prawid│owo rozpoznaje pierwszy dzie± dwudziestego pierwszego wieku jako nastΩpuj╣cy po ostatnim dniu dwudziestego. To czy oprogramowanie zainstalowane na testowym komputerze uznaje rok 2000 jako przestΩpny czy te┐ nie dla systemu Sophos Anti-Virus nie ma znaczenia gdy┐ jest to kwestia jednego dnia.


⌐ 1998 SAFE COMPUTING Sp. z o.o., http://www.safecomp.com/, email: info@safecomp.com
Tel/fax (022) 6198956, 6700756, 6700956; 03-733 Warszawa, ul.Targowa 34