Wstęp do bezpiecznego korzystania z Internetu
Dobre rady wujka Billa nie wystarczą
wojtzuch 13 sierpnia 2004, 04:28
Wiele pisze się o sposobach zabezpieczenia komputerów pracujących pod kontrolą systemu Windows XP i jemu pokrewnych. Poprawki, program antywirusowy, firewall... Przestrzeganie wyłącznie standardowych zaleceń okazuje się jednak niewystarczające. Łatki nie łatają wszystkich dziur, nawet tych od dawna znanych. W przypadku różnych zagrożeń nawet najlepsze programy antywirusowe wypadają różnie. Popularne firewalle – jeśli tylko ograniczyć się do domyślnych ustawień – straszą lukami w zabezpieczeniach.
Uruchom firewall, zainstaluj uaktualnienia, zaktualizuj program antywirusowy... Dobre rady wujka Billa na stronie Microsoftu są jak najbardziej słuszne. To jednak tylko ogólniki, których przestrzeganie nie zapewni dostatecznego poziomu bezpieczeństwa. Ale nie znajdziecie w tym tekście wyczerpującego instruktażu tworzenia reguł firewalla dla poszczególnych aplikacji czy też kompleksowego porównania możliwości programów antyszpiegowskich. Wskażę jedynie, często na konkretnych przykładach, sposoby na zwiększenie bezpieczeństwa domowego peceta.
Nie rozpocznę popularną radą: zmieńcie system operacyjny. Bez wątpienia rodzaj zagrożeń w każdym z systemów jest nieco inny. W przypadku zastosowań domowych z Windowsem związanych jest więcej niebezpieczeństw niż z Linuksem. A jednak większość z nas mniej lub bardziej świadomie godzi się żyć z lukami w systemach Microsoftu. Zapewne jeszcze przez dwa lata dominującą pozycję zajmował będzie Windows XP.
Przeciętnemu użytkownikowi raczej nie grozi włamanie utalentowanego hakera, zainteresowanego dostaniem się do kolekcji wakacyjnych zdjęć. Powinniśmy obawiać się zagrożeń ze strony wirusów, trojanów i spyware, jak również tzw. script kiddies tworzących wirusy za pomocą narzędzi automatyzujących cały proces. Niebezpieczni mogą okazać się także domorośli „hakerzy”, skanujący komputery w sieci z użyciem narzędzi ściągniętych z Internetu. Niestety, coraz częściej narzędzia te wykorzystują poważne dziury w mechanizmach Windows, a do uruchomienia kodu wystarczy połączenie się z Internetem. Ponadto w oprogramowaniu Microsoftu potencjalnie niebezpiecznych składników systemu jest bardzo dużo i czasem nie odkrywa ich ani producent, ani uczciwi specjaliści od zabezpieczeń.
Łączy nas coraz groźniej
Czasy, kiedy infekcje wirusami miały przeważnie lokalny charakter, odeszły wraz z rozwojem Internetu. Coraz częściej występowały globalne epidemie złośliwych programów rozprzestrzeniających się w postaci załączników poczty elektronicznej. Co jakiś czas pojawiał się wirus wykorzystujący luki w mechanizmach Internet Explorera. Do zainfekowania komputera nie było konieczne otwarcie załącznika przez adresata, a jedynie przeczytanie (otwarcie) wiadomości, tzw. Stealth bomb. Przykładem jest wirus Romeo i Julia, wykorzystujący szereg dziur w pomocy HTML przeglądarki. Zdarzały się także przykłady wykorzystania luk w systemie, pozwalających na umieszczenie złośliwego, wykonywalnego kodu w samej treści wiadomości.
Wraz z upowszechnieniem się w zastosowaniach domowych systemów opartych na jądrze NT, prywatne komputery podlegają nowym niebezpieczeństwom związanym z zaawansowanymi mechanizmami sieciowymi. Infekcją systemu grozi już nie tylko otwarcie zarażonego załącznika, nie tylko przeczytanie czy wręcz samo ściągnięcie wiadomości. Teraz wystarczy być jedynie podłączonym do sieci, natomiast to, że jesteśmy tylko jednym z setek milionów przeciętnych użytkowników komputera, przestaje mieć jakiekolwiek znaczenie.
Włamanie na śniadanie
Kto czyta prasę, być może pamięta proces przeciwko nastolatkowi, który włamał się do komputera pewnego przedsiębiorcy i zniszczył ważne dane dotyczące firmy? Ofiara została wybrana przypadkowo, a charakter danych nie miał znaczenia. Dla włamywacza liczył się akt zniszczenia. Sprawca okazał się nie dość doświadczony nawet dla amatora. Właściciel komputera, mimo braku świadomości zasad bezpieczeństwa (ochrona komputera, backup danych), potrafił ustalić sprawcę.
Wspomniane script kiddies nie będą próbowały włamać się do lepiej lub gorzej zabezpieczonych sieci korporacyjnych. Zawsze wybiorą nieświadomych zagrożeń, przypadkowych użytkowników Internetu, zresztą używane przez nich narzędzia z reguły skanują losowo generowane adresy IP. Podobnie funkcjonują robaki internetowe w rodzaju słynnego Blastera, który wyszukuje podłączone do sieci komputery, a następnie, wykorzystując lukę w mechanizmie RPC (Zdalne Wywoływanie Procedur), ustanawia transmisję w celu ściągnięcia na zainfekowaną maszynę właściwego kodu.
Zażyj go z mańki
Automatyczne narzędzia, podobnie zresztą jak pozbawieni wyobraźni nastoletni włamywacze, zazwyczaj łamią sobie zęby na pierwszym niestandardowym działaniu upatrzonej ofiary. Szczególnie w pierwszym przypadku nawet zmiana nazwy domyślnego katalogu instalacji Windows stanowi skuteczną obronę przed atakiem. Również wszelkiej maści wirusy oraz ich pochodne z reguły korzystają z zapisanych w kodzie ścieżek dostępu zamiast szukać ich samodzielnie.
Zaleca się także niekorzystanie z konta administratora w celach innych niż administracyjne (zmiany w ustawieniach systemu, instalacja oprogramowania, modyfikacja opcji firewalla oraz programu antywirusowego itp.). Windows XP umożliwia łatwe przełączanie użytkowników bez ich wylogowywania i zamykania otwartych aplikacji; pomysł nie jest zatem zbyt kłopotliwy.
Szczególnie w przypadku udostępniania plików w sieciach p2p warto pomyśleć o specjalnym koncie o możliwie niskich prawach, na które po pierwszym zalogowaniu można się przełączać niemal równie szybko jak między aplikacjami. Można w tym celu użyć także konta gościa, choć należy pamiętać, że konto to nie jest chronione hasłem. Nie każdy chciałby pozwolić innym domownikom lub gościom na korzystanie z Internetu bądź też na poznanie zestawu zainstalowanych aplikacji. Z drugiej strony, konto gościa można w każdej chwili wyłączyć. Przy tym jest możliwe, w przypadku fizycznego dostępu do komputera, zalogowanie się na prawach administratora startując system Windows XP z płyty Windows 2000, choć tylko w trybie konsoli. Także złamanie lub tylko zmiana hasła administratora ze strony innego użytkownika nie stanowi większego problemu – do tego przeznaczone są ogólnodostępne aplikacje (choć można to utrudnić). Stąd nie należy oczekiwać, że samo zabezpieczenie kont choćby najsilniejszymi hasłami uniemożliwi zdobycie danych przechowywanych na dysku.
Oprócz zadbania o odpowiednio skonstruowane hasła dla administratora i użytkowników z ograniczeniami, warto dodatkowo ograniczyć uprawnienia tych kont do faktycznie wykorzystywanych. Szczególnej uwadze polecam następujące działania... Wchodzimy w Panel sterowania – Narzędzia administracyjne – Zasady zabezpieczeń lokalnych (lub wpisujemy „secpol.msc” w Start – Uruchom). W folderze „Opcje zabezpieczeń” należy włączyć opcje:
- Dostęp sieciowy: nie zezwalaj na anonimowe wyliczanie kont SAM i udziałów;
- Zabezpieczenia sieci: nie przechowuj wartości mieszania (hash) programu LAN Manager dla następnej zmiany hasła.
Najlepiej w ogóle wyłączyć tworzenie lm hash. Podczas tworzenia lub zmiany hasła system Windows XP tworzy dwa ciągi (hash): nt i lm. Ten drugi jest banalny do rozkodowania – wystarczą dosłownie minuty, aby włamywacz był w stanie zalogować się do systemu na pełnych prawach. Dlatego należy pozostawić możliwość tworzenia wyłącznie nt hash. W tym celu uruchamiamy edytor rejestru (Start – regedit) i w kluczu HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa zmieniamy wartość nolmhash na 1. Teraz złamanie odpowiednio skonstruowanych haseł do kont zajmie naprawdę wiele czasu. Jednak na niewiele się to zda, jeśli nie użyjemy systemu plików NTFS i nie uczynimy swoich folderów prywatnymi (spod właściwości folderu); skądinąd zawsze pozostaje ich odczytanie lub skopiowanie na nośnik wymienny spod konsoli odzyskiwania lub Linuksa startującego z CD. Możemy tu jedynie ograniczyć możliwość poznania haseł i logowania się w klasyczny sposób.
Następnie przechodzimy do folderu „Przypisywanie praw użytkownika” i usuwamy we właściwościach pozycji „Uzyskiwanie dostępu do tego komputera z sieci” wszystkie nazwy użytkowników oraz grup użytkowników oprócz tych, którym pragniemy zapewnić dostęp. Możemy teraz dodać własnoręcznie utworzone wpisy (np. inny komputer w domowej lub osiedlowej sieci LAN). Jeśli nie chcemy usuwać któregoś z umieszczonych tu użytkowników, a mimo to chcielibyśmy zablokować mu dostęp do naszej maszyny, możemy tego łatwo dokonać w opcji „Odmowa dostępu do tego komputera z sieci”, przepisując odpowiednią pozycję.
Jeśli udostępniamy pliki i urządzenia w sieci bądź korzystamy z takich funkcji na innych maszynach, a chcemy ograniczyć współużytkownikom zasobów możliwość zdalnego logowania się na naszym pececie, dodajemy odpowiednie pozycje we właściwościach opcji „Odmawiaj logowania za pomocą usług terminalowych”.
Wszystko to na niewiele się zda, jeśli skorzystamy z systemu plików FAT32, zamiast nieporównanie bardziej bezpiecznego NTFS. Kluczowa jest możliwość przydzielanie praw dostępu dla plików i folderów, czyli możliwość łatwego uczynienia kluczowego folderu prywatnym (dostępnym wyłącznie dla konkretnego, zalogowanego użytkownika – np. administratora), jak również szyfrowanie plików i folderów.
Należy też rozważyć ustanowienie możliwie niestandardowych nazw użytkowników. Nie jest to nawet w połowie tak istotne, jak odpowiednie hasło, lecz nazw „administrator” czy „Wojtek” dla konta administratora należy unikać.
Czapka niewidka
Wspomniane techniki włamywania zawsze wiążą się ze skanowaniem portów zdalnego komputera. Autor ataku lub zainfekowana maszyna wysyła pakiety na dany adres IP i oczekuje odpowiedzi. Gdy ją otrzyma wie już, że komputer jest podłączony do sieci. Dostaje też informacje, które porty są otwarte. Numery tych ostatnich najczęściej pozwalają rozpoznać system operacyjny, a także cześć zainstalowanych aplikacji. W przypadku zdalnych infekcji typu Blaster wystarczy to do ustanowienia transmisji oraz – w przypadku braku odpowiedniej łatki – do ściągnięcia przez zaatakowany komputer kodu wirusa.
Podstawowe działanie to oczywiście instalacja łatek bezpieczeństwa. Powstaje jednak poważny problem: bardzo często użytkownicy korzystają w tym celu wyłącznie z witryny Windows Update. Tymczasem nie należy do rzadkości sytuacja, kiedy po reinstalacji systemu infekcja następuje zanim jeszcze zdążymy połączyć się z serwerem Microsoftu!
Aby się przed tym uchronić, mamy dwie możliwości. Albo trzymać wszystkie łatki na osobnej partycji lub nośniku wymiennym, sukcesywnie je uzupełniając za pomocą strony producenta systemu oraz instalując przed pierwszym połączeniem z siecią, albo użyć firewalla („ściana ognia”, „zapora ogniowa”).
Zadania firewalla są proste: kontrolować komunikację systemu i aplikacji z siecią (lokalną oraz globalną), blokować nieautoryzowany dostęp oraz maskować porty komputera, tak aby stał się możliwie „niewidzialny”.
Najprościej jest łączyć się przez sprzętowy router z wbudowanym firewallem. W przypadku takiego rozwiązania instalacja programowej zapory nie jest niezbędna do zabezpieczenia się przed zagrożeniami w rodzaju Blastera; mimo to wciąż jest wskazana, o czym w dalszej części tekstu. Funkcję routera – firewalla równie dobrze spełni komputer dostępowy, najlepiej działający pod kontrolą któregoś z systemów Unikowych (np. Linux).
Jeśli nie korzystamy z rozwiązania sprzętowego, instalacja takiej aplikacji wydaje się obowiązkowa. Sposób wyszukiwania adresów w sieci przez wspomniane „robaki” sprawia, że uniknięcie infekcji przypomina loterię. Do tego dochodzi problem script kiddies. Firewall, oprócz ochrony przed włamaniem, spełnia także inną funkcję: w przypadku zarażenia trojanem blokuje mu wszelki dostęp do sieci bez zgody użytkownika.
Należy w tym miejscu podkreślić ważną kwestię: w przypadku każdego produktu domyślne ustawienia dla systemu i aplikacji mogą się znacznie róznić od tego, co można osiągnąć dzięki właściwej konfiguracji. Są one często niewystarczające i nie pozwalają wykorzystać możliwości programu, zwłaszcza dotyczy to tzw. leak tests, czyli testów szczelności "od środka". Uważajmy więc, kiedy pozwalamy aplikacjom na komunikację wg predefiniowanych profili – jeśli nie posiadamy odpowiedniej wiedzy, wybierzmy produkt zarazem prosty jak i możliwie skuteczny na domyślnych ustawieniach, oczywiście na podstawie aktualnych testów.
Na pewno nietrudna w użyciu jest zapora zintegrowana w systemie Windows XP, jednak ciężko znaleźć kogokolwiek, poza samym Microsoftem, kto polecałby rezygnację z zewnętrznych narzędzi tego typu. Małe możliwości konfiguracji, raczej elementarne funkcje i skuteczność... Przeciwko najpospolitszym zagrożeniom wystarczy, ale warto możliwie wcześnie zamienić ją na coś bardziej zaawansowanego. Pewną poprawę na tym polu wniosło narzędzie zawarte w Service Pack 2 (SP2), jednak wciąż nie można mówić o skutecznej kontroli aplikacji.
Na witrynie PC Flank możemy przetestować w trybie on-line szczelność portów komputera. Ale uwaga! O ile programowe rozwiązania z reguły posiadają możliwość włączenia tzw. stealth mode, który w założeniu zapewnia brak odpowiedzi na przychodzące pakiety (choć do końca nie jest to prawda), to firewall wbudowany w typowy, niedrogi router nie sprawi, że samo urządzenie pozostanie niewidzialne. Mimo to skanowanie portów komputera staje się niezwykle trudne i raczej nieosiągalne dla automatycznych narzędzi.
Cerujemy dziury
Kiedy już będziemy gotowi do ściągnięcia uaktualnień, musimy zdecydować: Windows Update czy Centrum downloadu? Pierwsza możliwość, dostępna dla legalnych użytkowników Windows XP, pozwala na automatyczne przeskanowanie komputera i ściągnięcie, a następnie zainstalowanie wymaganych łatek. Druga możliwość pozwala na wybór poprawek (np. tylko te dotyczące bezpieczeństwa) i zapis na dysku w celu późniejszego wykorzystania.
W tym miejscu kilka uwag. Po pierwsze użytkownicy stwierdzają czasem brak niektórych ważnych poprawek po dokonaniu automatycznej aktualizacji, zaś witryna, przy kolejnej wizycie, wciąż potrafi zgłaszać konieczność ich instalacji. Po drugie, ręczna aktualizacja systemu wymaga, ażeby dopilnować właściwej kolejności w jakiej poprawki instalujemy – nowsze często podmieniają pliki zaktualizowane przez wcześniejsze, czasem jedne poprawki naprawiają luki w innych. Zapisując łatki na dysku warto tak modyfikować nazwy plików, aby te odpowiednio się sortowały (np. dzięki wstawieniu na początek daty). Po trzecie, część poprawek zostaje wydana w pakietach po kilka – kilkanaście (w tym miejscu nie mam na myśli Pakietów Serwisowych, czyli Service packs). Na przykład 15.10.2003, obok czterech innych „krytycznych” poprawek, Microsoft wydał jedną zawierającą wszystkie opublikowane po wydaniu pierwszego SP.
I uwaga! O ile do niedawna poprawki bezpieczeństwa dla pakietu DirectX, Internet Explorera i klienta poczty Outlook Express mogliśmy znaleźć wśród innych uaktualnień systemu, to obecnie znajdują się one w osobnych działach. Niestety, łatwo jest przeoczyć publikację uaktualnień, gdy z przyzwyczajenia szuka się ich na pierwszej stronie z poprawkami do systemu.
Należy również pamiętać o uaktualnieniu innych zainstalowanych aplikacji. Oczywiście konieczność łatania dziur w równym stopniu dotyczy oprogramowania innych producentów.
A nie jest to błahy problem! Znakomita większość istniejących aplikacji posiada zarówno funkcje rejestracji, aktualizacji i pomocy w trybie on-line, jak też możliwość otwierania przeznaczonych dla nich dokumentów bezpośrednio z sieci, czasem także w oknie przeglądarki. W tym przypadku błędy w zabezpieczeniach to możliwość zdalnego wejścia do systemu. Dotyczy to tym bardziej aplikacji z założenia komunikujących się z siecią, m.in. takich, jak menedżery ściągania, oprogramowanie antywirusowe i pokrewne, aplikacje Peet to Peer, gry sieciowe, Java (choćby historia z zamianą kropek i przecinków w kodzie), wreszcie sam firewall (np. niedawny casus pakietu NIS Symanteca).
Polska trudny język
Zalecałbym również korzystanie z angielskiej wersji językowej „Okienek”. Podstawą bezpieczeństwa systemu jest jego regularne uaktualnianie, tymczasem poprawki dla polskiej wersji, zwłaszcza Pakiety Serwisowe (Service Packs), nie zawsze są publikowane wraz z tymi dla angielskiej edycji. Trzeba jednak przyznać, że obecnie, zwłaszcza po wprowadzeniu przez Microsoft miesięcznego cyklu publikacji uaktualnień (wyjątkiem są tu wcześniej ujawnione luki), sytuacja w dużej mierze unormowała się.
W przypadku systemu w polskiej wersji dyskusyjne jest korzystanie z niezależnych, zintegrowanych zbiorów poprawek takich jak Autopatcher. W tej kwestii zdania są podzielone – wiele osób nie poleca instalacji wszystkich zawartych w pakiecie poprawek; część w ogóle odradza jego instalację na polskiej wersji. Faktem jest, że zestaw ten w przypadku instalacji systemu oszczędza sporo czasu, jednakże nigdy nie zawiera wszystkich najnowszych poprawek. Jak każdy zbiorczy pakiet, od testów całości do publikacji mija na tyle dużo czasu, aby zdążyło się pojawić co najmniej kilka nowych aktualizacji. Dlatego przydatność tego narzędzia może na dłuższy okres zmaleć wraz z wydaniem drugiego SP.
Na spacer tylko w kagańcu
Każda z komunikujących się z siecią aplikacji wykorzystuje szereg portów. Należałoby się zastanowić, czy mamy potrzebę pozostawienia dostępnych wszystkich portów, tak jak domyślnie proponuje firewall (np. 110, wykorzystywany przez Worda do wysyłania poczty) albo czy w ogóle potrzebny jest nam bezpośredni dostęp danego programu do sieci. W przypadku programów takich jak skanery antywirusowe, firewall przeważnie proponuje ogólne reguły typu Download manager. Tymczasem można by ograniczyć komunikację do konkretnego protokołu, portu i serwera, wykorzystywanych przez dany produkt.
Szczególny problem stanowią aplikacje Peer to Peer. Udostępnianie własnych zasobów wiąże się z otwarciem szeregu portów, przeważnie standardowo blokowanych przez sprzętowe i programowe firewalle. Przynajmniej część z nich będziemy zmuszeni pozostawić dostępne w obu kierunkach, jeśli nie po to, aby w ogóle móc z takich programów korzystać, to przynajmniej po to, aby móc robić to z przyzwoitą prędkością. Informacje na temat przepuszczania (forwardowania) portów oraz instrukcje dla różnych urządzeń można znaleźć m.in. na stronie Port Forward.
Jednakże, oprócz standardowego zakresu, klienci p2p często próbują łączyć się na dość „egzotycznych” portach, z których część nie zawsze jest domyślnie blokowana przez sprzętowe zabezpieczenia. Bez szczególnej straty wydajności możemy ograniczyć połączenia klientów do standardowego zestawu. Przy tym dostępnych portów jest zwykle znacznie więcej, niż można wykorzystać na normalnym łączu. Na przykład sieć Bit Torrent pozwala na wykorzystanie portów w zakresie 6881-6999. W praktyce poza portem 6969, tradycyjnie przeznaczonym dla trackera, spokojnie możemy zablokować wszystko ponad numer 6890.
Jednak niektóre trackery także używają portów poza przyjętym zakresem. Czasem są to porty 80-83 (czyli protokół HTTP). W takim przypadku można utworzyć regułę firewalla dopuszczającą konkretny (zaufany) tracker, pamiętając jedynie o umieszczeniu reguł w odpowiedniej kolejności.
Weźmy także pod uwagę wspomnianą już możliwość użycia osobnego konta z minimalnym dostępem do pozostałych zasobów komputera.
W przypadku części gier sieciowych martwić się portami routera musimy tylko wtedy, gdy uruchamiamy serwer. Część jednak wymaga forwardowania zarówno dla gry w roli klienta, jak też do jej hostowania. Listy portów wykorzystywanych przez różne tytuły są dostępne w Internecie, np. na wspomnianych stronach Microsoftu, PC Flank i Port Forward. Zwykle nie jest ich dużo, zatem jeśli używamy programowego firewalla, najprościej jest utworzyć reguły wg konkretnych prób połączenia.
RIAA ostrzy pazurki
RIAA, czyli Amerykańskie Stowarzyszenie Przemysłu Nagraniowego. Jedną z metod stosowanych przez nich w celu identyfikacji użytkowników nielegalnie wymieniających się tzw. własnością intelektualną jest śledzenie ich aktywności w sieciach p2p. Część z tych sieci oferuje w teorii całkowitą anonimowość, jednak stan faktyczny często nie do końca odpowiada zamysłowi. Kolejny, w miarę skuteczny sposób to użycie narzędzi w rodzaju Peer Guardian, blokujących wszelkie próby połączenia z danym klientem p2p z podejrzanych adresów, umieszczanych w regularnie aktualizowanej bazie.


