Zamknięcie blox.pl i eksport mojego bloga

Pod koniec lutego 2019 roku, niemalże dokładnie 10 lat od chwili powstania mojego bloga, otrzymałem wiadomość o zamknięciu serwisu blox.pl, które nastąpi pod koniec kwietnia. Decyzja ta nie jest nieoczekiwana, ponieważ wraz z rozwojem współczesnych technologii, blox.pl stawał się coraz bardziej reliktem minionej już epoki, pierwszej dekady XXI wieku, czasów, gdy pojęcie mediów społecznościowych jeszcze nie zostało nawet zdefiniowane.

Świadectwem tamtej epoki są również wpisy na moim blogu, które postanowiłem zachować i zmigrować w miejsce, nad którym posiadam kontrolę. Niektóre z tych wpisów są już całkowicie nieaktualne (jak np. dywagacje dot. niuansów serwisu Nasza Klasa), inne znajdują zastosowanie przeze mnie osobiście do dzisiaj (jak np. sposób zabezpieczania profilu przeglądarki, czy zasady bezpiecznego korzystania z internetu).

Opiszę krótko kilka ogólnych, technicznych aspektów migracji:

  • Ponieważ od 2013r. prowadzę nowy blog tylko o tematyce technicznej blog.pjsen.eu w języku angielskim, dlatego chciałem uniknąć przeniesienia treści starego bloga bezpośrednio do infrastruktury nowego.
  • Blox.pl udostępnia zawartość treści bloga w postaci współczesnego formatu eksportu z WordPress’a.
  • Najprościej byłoby zaimportować tę treść po prostu do nowego bloga opartego na WordPress, ale zarządzanie dwoma blogami to jest coś, czego chciałem uniknąć. Zależało mi na odizolowaniu starych treści w innym miejscu w możliwie najprostszy do wykonania i utrzymywania sposób.

Wymagania te zostały zrealizowane w następujący sposób:

  • Jako technologię utrzymywania treści bloga wybrałem tzw. statyczny generator stron o nazwie Hugo.
    • Statyczne generatory umożliwiają wytworzenie całej witryny internetowej na podstawie łatwo edytowalnych plików, zazwyczaj w formacie Markdown. Wygenerowana witryna jest w całości statyczna, można ją hostować wszędzie. Hugo jest dość dobrym generatorem, ponieważ składa się z pojedynczego pliku exe, a jego podstawowa obsługa ogranicza się praktycznie do uruchamiania hugo, hugo server i hugo new. Na stronie głównej można przeglądać bardzo bogaty katalog gotowych do użycia szablonów.
  • Aby przekonwertować treść do formatu Markdown użyłem Exitwp — skryptu napisanego w Pythonie 2.7. Niestety konieczna była ręczna modyfikacja tego skryptu, ponieważ spodziewał się on kilku elementów struktury xml, które nie były obecne w wyeksportowanej treści z blox.pl. Na szczęście, metodą zaledwie kilku prób i błędów usunąłem niepotrzebne linie ze skryptu, a inne brakujące wartości udało mi się zastąpić zaślepkami np. jako wordpress_id ustawiałem 0, ponieważ celem było tylko zmuszenie skryptu do przekonwertowania treści, a nie zachowania pełnej struktury metadanych.
  • Odniesienie do zasobów statycznych zawierały w ścieżce podkatalog, a Hugo zakłada, że będą one obecne na stronie głównej. Przy pomocy jednolinijkowego skryptu języka Perl i wyrażeń regularnych zmieniłem ścieżki do obrazków i plików we wszystkich 51 plikach wpisów:
  • find . -iname '*.markdown' -exec perl -pi -w -e 's/(\(resources\/)(.*)/\(\/$2/g' {} \;
  • Wpisy poddałem ręcznej korekcie w programie MarkdownPad. Zmodyfikowałem też układ strony, na swoje potrzeby. Pewną nieoczekiwaną dla mnie ciekawostką okazał się atrybut integrity tagu z odniesieniem do styli CSS. Była to suma kontrolna ustawiona sztywno na wartość wygenerowaną w momencie kompilacji szablonu. Ja zmodyfikowałem szablon, konieczne było więc usunięcie tego atrybutu (generowanie poprawnej wartości nie było do niczego potrzebne).
  • Niestety nie przekonwertowałem linków do wpisów w obrębie bloga. Nie miałem oczywistego pomysłu, jak zrobić to automatycznie ani czasu, żeby robić to ręcznie.

Na koniec, w celach pamiątkowych, wklejam zrzut ekranu starego bloga z momentu na chwilę przed jego likwidacją: Stary blog

Problem z zakładkami

Jestem użytkownikiem programów tworzonych przez fundację Mozilla od 2003 roku. W tamtym czasie główną przeglądarką była Mozilla Suite, rok później pojawił się Firefox korzystający z tego samego silnika, ale z kompletnie przebudowanym interfejsem użytkownika. Przez ten czas wielokrotnie migrowałem swój przeglądarkowy profil, ale zawsze zachowywałem zakładki. Niektóre z nich pamiętają jeszcze czasy sprzed Firefox’a, aczkolwiek większość z takich właśnie zapewne prowadzi już do nieistniejących stron. Przez cały ten czas uzbierałem nieco ponad 1000 zakładek. I to właśnie jest problem.

Dotychczas miałem kilka podejść do uporządkowania tego zbioru. Próbowałem ręcznie wyszukiwać nieaktualne zakładki, całość pogrupować w foldery. Próbowałem też korzystać ze słów kluczowych i opisów, żeby później móc efektywniej wyszukiwać. Ale rezultat był raczej mizerny. Zanim napisałem ten post miałem kilkanaście folderów, ale gdy przychodziło do wyszukiwania czegoś zawsze pojawiał się ten sam problem: pamiętam, że znalazłem jakąś istotną dla mnie stronę, pamiętam czego ona dotyczyła i pamiętam też, że na pewno dodawałem ją do zakładek. Ale nie jestem w stanie jej odnaleźć w tych zakładkach. Albo z powodu nie pasującego tytułu, albo dziwnych, nie nawiązujących do treści słów w adresie (a tylko według tych kryteriów możemy wyszukiwać).

Potrzebowałem narzędzia do wyszukiwania, które ma znacznie większą “moc” niż standardowe wyszukiwanie w przeglądarce. Ponieważ nie udało mi się znaleźć niczego takiego, to stworzyłem je sam. Narzędzie to nazwałem BookmarksBase. Jest to otwarto-źródłowy program napisany w języku C#.

Główna aplikacja wyszukująca w treści stron z zakładek

Program realizuje pomysł, który może początkowo wydawać się niedorzeczny: spróbujmy pobrać tekst ze wszystkich stron internetowych z zakładek. Czy to będzie zajmowało dużo miejsca? Jak dużo? Czy nawet jeśli byłyby to setki megabajtów, to nie byłoby warto mieć narzędzie do przeszukiwania tej treści?

Okazuje się, że taki zbiór danych wcale nie zajmuje tak dużo miejsca, jak początkowo mi się wydawało, a samo narzędzie działa zaskakująco szybko, pomimo tego, że nie próbowałem stosować żadnych wyrafinowanych optymalizacji.

Narzędzie składa się z kilku programów. Najpierw uruchamia się program zbierający adresy stron internetowych z zakładek (BookmarksBase.Importer). Pobieranie i przetwarzanie zawartości stron w moim przypadku trwało ok. 2 minut (przypominam, że chodzi o sam tekst, w moim przypadku jednak z dość dużej liczby ok 1000 zakładek). W wyniku tworzony jest plik bookmarksbase.xml (w moim przypadku ok 12 MiB) zawierający tekst ze wszystkich stron, w postaci czytelnej dla dowolnego programu. Następnie do właściwego wyszukiwania służy BookmarksBase.Search, który pełni rolę przeglądarki dla utworzonego pliku. Wyszukujemy dowolny tekst, a program znajduje go w treści, adresie lub tytule i wyświetla wszystko jednocześnie.

Szczegóły oraz link do pobierania dostępne są na moim koncie GitHub.

W momencie publikacji tego wpisu program znajduje się w wersji stabilnie działającej, ale planuję wprowadzić jeszcze kilka udoskonaleń np. wyświetlanie listy nieaktualnych zakładek przez importer oraz usprawnienie nawigacji po BookmarksBase.Search przy użyciu klawiatury. 

Internetowy termometr dla Warszawy

Publikuję trywialny program pełniący rolę “gadżetu pulpitu” i wyświetlający aktualną temperaturę w Warszawie na podstawie serwisu http://www.meteo.waw.pl. Stworzony na własne potrzeby, być może dla kogoś z Odwiedzających również okaże się przydatny.

  • Program automatycznie odświeża się co 5 minut. Można to zmienić w załączonym pliku konfiguracyjnym .config.

  • Program jest skompilowany dla Microsoft .NET w wersji 4.5.1.

  • Wkrótce opublikuję również kod źródłowy na GitHub. Dzięki zastosowanym rozwiązaniom oceniam, że ewentualna modyfikacja pod kątem użycia innych źródeł danych powinna być bardzo prosta.

Web Thermometer dla meteo.waw.pl

Link do pobrania
Wersja z dnia 2015-04-23

AKTUALIZACJA: Kod źródłowy jest do pobrania pod adresem https://github.com/przemsen/WebThermometer 

 

Moje sprawdzone linki pogodowe

Osobiście korzystam z trzech serwisów związanych z pogodą, które w mojej ocenie publikują bardzo dobre prognozy i użyteczne informacje. Często jestem pytany o adresy tych stron, więc podzielenie się tymi informacjami powinno być dobrym pomysłem.

1. meteo.pl (UM)

Prognoza opracowywana przez Interdyscyplinarne Centrum Modelowania Matematycznego Uniwersytetu Warszawskiego. Jest to co innego niż widzimy w większości mediów. Prognoza potrafi przewidzieć opady co do godziny, według mojej subiektywnej opinii bardzo wysoka sprawdzalność.

new.meteo.pl

Bezpośredni link do prognozy dla Warszawy.

  1. meteo.waw.pl

Stacja meteorologiczna umiejscowiona w Warszawie, w dzielnicy Ursus. Częściej otwieram tę stronę niż patrzę na fizyczny termometr za oknem. Adres przydatny nie tylko dla mieszkańców Warszawy, ponieważ zawiera linki do innych stacji.

meteo.waw.pl

  1. antistorm.eu

Wizualizacja prawdopodobieństwa wystąpienia burzy na terenie całej Polski. Jedna z bardziej użytecznych, jakie widziałem.

antistorm.eu

Przypisywanie adnotacji do dowolnych plików

Jest to problem, którego doświadczyłem osobiście wiele razy. Szczególnie podczas pisania prac dyplomowych, ale również na co dzień. Mam bardzo dużo materiałów w postaci dokumentów PDF z artykułami, prezentacji, e-boook’ów itd. Po pewnym czasie pojawia się problem skojarzenia co właściwie jest najważniejsze w danym pliku. Długa nazwa nie rozwiązuje tego problemu. Idealne byłoby narzędzie, które wyświetla zawartość plików w katalogu, a po prawej stronie daje możliwość przypisania dowolnego tekstu do danego pliku. W ten sposób można by np. opisać sobie w punktach najważniejsze rzeczy w dokumencie. Ale zastosowań takiego narzędzia byłoby więcej: opisywanie zdjęć, tworzenie list rzeczy do zrobienia, napisanie krótkiej informacji jak działa program narzędziowy itp.

Poszukiwałem takiego narzędzia, ale niestety nie udało mi się znaleźć niczego, co byłoby wystarczająco proste i skuteczne. Owszem, istnieją zaawansowane narzędzia zarządzania dokumentami jak np. Benubird. Ale czemu ograniczać się tylko do dokumentów PDF? Istnieją też systemy wspomagające zarządzaniem dokumentów ukierunkowane na pisanie prac naukowych, wspomagające tworzenie bibliografii, przypisów, cytowań itd. np. Mendeley. To potężne i cenione narzędzie. Ale w mojej ocenie, zastosowanie go do realizacji ww. prostych wymagań przypomina celowanie armatą do wróbla.

Postanowiłem więc samodzielnie stworzyć program spełniający tak postawione wymagania. Nazwałem go Simple File Annotator. Myślę, że jest to rozwiązanie dość unikatowe, bardzo elastyczne - ponieważ może być wykorzystywane do bardzo różnych zastosowań. Zapraszam na stronę:

http://www.pjsen.eu/sfa

Na koniec kilka słów wyjaśnienia, dlaczego podjąłem decyzję, aby projekt ten miał charakter komercyjny. Osobiście bardzo potrzebowałem takiego narzędzia. Byłem gotowy nawet za nie zapłacić, gdyby tylko istniało. Ale nie istniało (przynajmniej nic mi o tym nie było wiadomo). Oceniam, że pomysł ten może stanowić pewną wartość, dla użytkowników, którzy doświadczyli i rozumieją, na czym polega problem opisany we wstępie. Cenę ustaliłem taką, jaką uwzględniając zdrowy rozsądek, sam byłbym w stanie zapłacić za tego typu program. Jest to bardzo niska cena jak na oprogramowanie, prawdę powiedziawszy widziałem w Internecie mniej skomplikowane programy sprzedawane za wyższą cenę. Mam więc nadzieję, że efektywny zysk dla użytkownika ze stosowania tego narzędzia będzie i tak większy niż mój czysto liczbowy zysk jako producenta.

Naprawa systemu Windows z płyty instalacyjnej

W przypadku gdy Windows ulegnie awarii i wiadomo, że przyczyną jest sterownik lub usługa to można posłużyć się narzędziami z płyty instalacyjnej dowolnego z systemów nowszych od XP (Vista, 7, Server 2008), aby wyłączyć problematyczny komponent. Piszę o tym dlatego, że jest to sztuczka niekoniecznie oczywista, ponieważ domyślnie instalator wyszukuje kompatybilne instalacje systemu na dysku i proponuje czynności typu przywracanie stanu systemu bądź przywracanie obrazu partycji (kompatybilne w tym sensie, że aby zastosować je na konkretnej wersji systemu, to trzeba użyć płyty instalacyjnej właśnie tej wersji. Przykładowo nie można przywrócić stanu systemu w wersji XP z płyty instalacyjnej wersji 7). Po wybraniu opcji naprawy systemu w instalatorze i ewentualnym zignorowaniu komunikatów o niewykryciu instalacji systemu ani obrazów, uzyskujemy dostęp do opcji uruchamiającej wiersz poleceń. I to jest właśnie najważniejsze. Jest to wiersz poleceń uruchomiony w ramach Windows Preinstallation Enviroment, który de facto jest okrojonym zwykłym Windowsem uruchomionym z płyty instalacyjnej. Należy zwrócić uwagę na znaczący postęp w stosunku do konsoli odzyskiwania z systemów XP i niższych, która w obsłudze była niesamowicie toporna i mało użyteczna. Wiersz poleceń z płyty instalacyjnej daje nam znacznie większe możliwości niż stara konsola, oprócz dostępu do plików na dysku również możliwość uruchamiania aplikacji graficznych np. regedit.

A przy użyciu regedit możliwe jest załadowanie i wyedytowanie plików rejestru dowolnego Windowsa, co umożliwia wykonanie wszelkich napraw związanych z konfiguracją zapisaną właśnie w rejestrze. Po wpisaniu w wierszu poleceń regedit uruchomi się edytor z załadowanym rejestrem Windows Preinstallation Enviroment. Należy wybrać gałąź, którą chcemy załadować np. HKLM, wybrać opcję Load hive i wskazać odpowiedni plik z katalogu system32\config instalacji Windows, którą naprawiamy. Dla HKLM będzie to plik SYSTEM. Następnie podajemy dowolną nazwę, pod którą nastąpi “zamontowanie” ładowanego rejestru, na obrazku poniżej wpisałem WINXP_HKLM. Następnie odczytujemy z klucza select, który z ControlSet jest aktywny, zazwyczaj będzie to pierwszy. Wchodząc do gałęzi services uzyskujemy możliwość edycji usług i sterowników - wartość 4 klucza Start oznacza wyłączenie sterownika lub usługi, 2 oznacza start automatyczny.

Win PE

Powyższy zrzut ekranu wykonałem edytując rejestr systemu XP przy użyciu płyty instalacyjnej systemu w wersji 7. Warto znać taki właśnie sposób naprawy, ponieważ awarie w znakomitej większości powodowane są błędami w sterownikach trybu jądra, dzięki opisanej sztuczce możliwe jest wyłączenie takiego problematycznego sterownika.

Muzodajnia – serwis udostępniający muzykę w formatach mp3 i wma

Testowałem ostatnio serwis o nazwie Muzodajnia, który oferuje opłacany abonamentem dostęp do zbioru utworów muzycznych w formacie mp3 oraz wma. Na początek opiszę dlaczego moim zdaniem warto zwrócić uwagę na tego typu serwisy. Jednym z częstszych zastosowań dostępu do Internetu odkąd pamiętam było ściąganie muzyki. Osobiście pamiętam jeszcze legendarnego Napstera w swej najpiękniejszej dla użytkowników, darmowej postaci. Zarówno Napster jak wszelkie powstałe po nim narzędzia wymiany plików służyły do nielegalnego udostępniania utworów muzycznych. Sytuacja zmieniła się nieco wraz z upowszechnieniem serwisów udostępniających klipy muzyczne online jak Youtube. Wielu użytkowników zadowala się muzyką odtwarzaną bezpośrednio z tego serwisu, istnieje również wiele sposobów na ściągnięcie na swój komputer utworu muzycznego np. Youtube (pisałem o tym tutaj). Niemniej jednak wiąże się z tym problem, który dla audiofili z prawdziwego zdarzenia jest nie do pominięcia: jakość. Bardzo często zdarza się, że ścieżka dźwiękowa klipu na Youtube jest po prostu zakodowana przy bardzo niskich parametrach, co jest dosyć denerwujące. Płatny serwis muzyczny - Muzodajnia eliminuje oba wyżej wymienione problemy czyli po pierwsze pobieranie za jego pomocą utworów jest jak najbardziej legalne, po drugie utwory te są naprawdę wysokiej jakości. Opcji jest kilka: mp3 128 kbps, wma 128 kbps, wma 256 kbps i mp4 128 kbps.

Podstawowym czynnikiem przy podejmowaniu decyzji o zakupie abonamentu do takiego serwisu będzie zapewne wielkość “bazy” utworów. “Baza” ta jest dość spora, aczkolwiek pod żadnym pozorem nie należy oczekiwać, że cokolwiek co znajdziemy na Youtube będziemy mogli sobie ściągnąć w super jakości z Muzodajni. Myślę, że każdy użytkownik bez względu na upodobania muzyczne bez problemu znajdzie taki tytuł, którego w Muzodajni nie będzie. Nie mam tutaj na myśli jakichś szczególnie niszowych gatunków, chociaż przykładowo z polskiego hip-hopu nie znajdziemy PIH’a, a znajdziemy TeDe’go i to w sporych ilościach. Bardzo duży wybór jest z muzyki POP, wykonawców i zespołów często ostatnio słyszanych w wielu stacjach radiowych jak Black Eyed Peas czy Lady Gaga. Ale przy gatunku POP też można się zdziwić, bo np. po wpisaniu do wyszukiwarki serwisu “Shakira” tabela wyników świeci pustkami, co wydaje się być dość zaskakujące. Podsumowując zasoby - całkiem w porządku, ale bez rewelacji.

Muzyka w serwisie pogrupowana jest w kategorie: pop, dance (z podkategorią disco-polo), hip-hop i r&b;, rock, klasyka i jazz oraz kategoria “inne” z podkategoriami typu country, czy elektroniczna. Wyszukiwarka w serwisie jest raczej kiepska, w tym sensie, że przy mało precyzyjnym zapytaniu prawie na pewno nie znajdziemy tego, o co nam chodzi. Najlepiej jest wpisywać pełny tytuł ora pełną nazwę wykonawcy. Gdy już uporamy się z wyszukiwaniem, możemy wylistować zawartość całej płyty do której należy wyszukany uwtór. Każdy kawałek w ramach płyty możemy próbnie posłuchać - kilkunastosekundowy fragment oraz oczywiście pobrać. Nie ma możliwości pobrania seryjnie wszystkich utworów w ramach płyty. Utwory pobierają się bardzo szybko, w moim przypadku przy prędkości ok 2 MiB/s. Zwrócę jeszcze uwagę, że serwer nie lubi menedżerów pobierania, przykładowo przy użyciu popularnego DownThemAll nie udało mi się ściągnąć żadnego pliku. Sama strona natomiast ładuje się dość wolno, podczas mojego dwumiesięcznego okresu testowania były sytuacje, że jej fragmenty nie chciały się w ogóle załadować. Ponadto zdarzały się też sytuacje, że wyszukiwarka całkowicie odmawiała posłuszeństwa i przepraszając zapraszała do skorzystania za chwilę. Widać, że pod względem niezawodności serwis nie wypada najlepiej, a (przynajmniej ja) w przypadku usług płatnych oczekuję bardzo wysokiej jakości. Również sam projekt strony jest dosyć “ciężki” - przy przeglądaniu listy utworów wykonują się liczne skrypty JavaScript znacznie obciążające procesor (uciążliwe dla laptopów, które podczas pracy bateryjnej zmniejszają szybkość taktowania zegara procesora), co w połączeniu ze wspomnianym wcześniej powolnym transferem elementów strony sprawia, że są momenty, że z serwisu korzysta się mało przyjemnie.

Na koniec aspekt najważniejszy: płatności. Przytoczę tutaj ceny na dzień dzisiejszy  dla użytkowników nie będących klientami Plus’a:

  • 96 zł za 25 utworów miesięcznie przez rok

  • 192 zł za 100 utworów miesięcznie przez rok

  • 288 zł za 250 utworów miesięcznie przez rok.

Działa to w ten sposób, że mamy miesięczny limit na liczbę pobranych utworów. Limity nie przechodzą na następny miesiąc. Moim zdaniem powyższe “pakiety” płatności są zbyt mało elastyczne. Osobiście oczekiwałbym jakiejś formy pre-paid czyli przedpłacenia sobie np. możliwości pobrania 50 utworów bez zobowiązań czasowych.

Podsumowując, Muzodajnia jest serwisem ciekawym, chociaż mającym pewne wady. Moim zdaniem dwie najważniejsze to: zbyt częsty komunikat wyszukiwarki o braku utworu który co chwilę można usłyszeć w radiu oraz właśnie mało elastyczna płatność.

Gadżet wirtualnych pulpitów w systemie Windows

Istnieje dodatek do systemu Windows XP umożliwiający korzystanie ze znanych w systemach linuksowych wirtualnych pulpitów. Jest to narzędzie niezwykle praktyczne, ale mało znane. Narzędzie nazywa się Virtual Desktop Manager i wchodzi w skład Windows XP PowerToys. Do pobrania za darmo spod adresu http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx

Podpowiem jeszcze możliwe “scenariusze” użycia tego narzędzia. Po zainstalowaniu, na pasku narzędziowym obok zegara, po kliknięciu PPM możemy wybrać pasek Desktop Manager. Obok zasobnika z zegarem pojawiają się wtedy takie przyciski:

MSVDM

Każdy z nich reprezentuje oddzielny wirtualny pulpit na którym możemy mieć odrębny zestaw otwartych okienek i tapetę. Osobiście mam pewne zastrzeżenia do sposobu przenoszenia okienek między pulpitami - trzeba zaznaczyć opcję Shared Desktops, kliknąć przycisk docelowego pulpitu i kliknąć okienko tak, aby nie było zwinięte do paska zadań. Wówczas po odznaczeniu Shared Desktops wybrane okienko zostaje na stałe w wybranym pulpicie i nie jest widoczne w innych. Każdy, kto korzysta z linuksa kojarzy zapewne, że w dowolnym środowisku graficznym jest to rozwiązane dużo lepiej poprzez prostą opcję w rodzaju “przenieś okienko x na pulpit y”.

Niemniej jednak za wygodę korzystania z 4 pulpitów warto znieść tę drobną niedogodność z przenoszeniem okienek. Osobiście wykorzystuję to narzędzie w ten sposób, że np. na pulpicie nr 1 mam otwartą przeglądarkę internetową, na 2 okienko z wirtualną maszyną, na kolejnym mam zawsze otwartą konsolę i menedżer plików z uprawnieniami administracyjnymi. Dzięki temu mam zawsze pod ręką najczęściej używane narzędzia i jednocześnie unikam bałaganu i chaosu spowodowanego niezdrową liczbą pootwieranych okienek.

Zbiór moich zasad bezpiecznego przeglądania stron internetowych

W tym wpisie wymienię i opiszę kilka zasad, którymi sam kieruję się podczas codziennego przeglądania stron internetowych. Czynność ta stała się jedną z ważniejszych wykonywanych przy użyciu komputera, a sama przeglądarka stała się programem, który uruchomiony jest niemalże przez cały czas gdy komputer jest włączony. Z tych właśnie powodów wiele wektorów ataku wykorzystywać może słabości związane właśnie z oprogramowaniem służącym do przeglądania stron internetowych. Warto więc zadać sobie pewien trud i zastanowić się nad bezpieczeństwem “surfowania” (ostatnio, odkąd Internet spowszedniał, chyba już rzadziej spotykane słowo).

0. Zasada z zerowym numerem, niejako w charakterze oczywistości, dotyczy korzystania na co dzień z konta zwykłego użytkownika, była o tym szerzej mowa w poprzednim wpisie. Tak więc przeglądarka internetowa, jak również wszelkie inne programy niezbędne w codziennej pracy uruchamiam z konta zwykłego użytkownika.

1. Dbam o aktualność przeglądarki internetowej, ale również oprogramowania “około-przeglądarkowego”. Mam tutaj na myśli wtyczkę Adobe Flash, która ponoć znajduje się w dziewięćdziesięciu-kilku procentach komputerów na świecie i w której też znajdowane są błędy mogące zagrażać bezpieczeństwu. Eliminowanie takich krytycznych błędów jest podstawowym uzasadnieniem dla dbania o posiadanie aktualnych wersji programów. Uaktualniam obie wersje zarówno dla Internet Explorer’a jak i dla Opery i Firefoxa. Uaktualniam również regularnie czytnik PDF Adobe Reader i Java Runtime Enviroment.

Ponieważ komunikaty o nowych wersjach oprogramowania nie zawsze się pojawiają wtedy, gdy powinny, a użytkownicy systemu Windows nie dysponują dobrodziejstwami znanych z linuksowych repozytoriów sprawdzam ręcznie czy dostępne są nowe wersje programów. Dobrym miejscem, w którym można szybko sprawdzić dostępność nowych wersji wielu programów jest FileHippo. Korzystam z RSS tego serwisu, więc wiem niemalże natychmiast, że pojawiła się nowa wersja Adobe Reader i trzeba dokonać aktualizacji.

2. Na co dzień korzystam z przeglądarki Firefox - używam bardzo użytecznego dodatku jakim jest Web of Trust, który informuje mnie o złej lub dobrej reputacji odwiedzanej witryny. Innym tego typu dodatkiem jest McAfee SiteAdvisor. Jeżeli dostanę ostrzeżenie, że ze stroną coś jest nie w porządku to na nią nie wchodzę.

3. Korzystam z oprogramowania izolującego przeglądarkę internetową - Sandboxie z dodatkowo ustawionymi obostrzeniami na uruchamianie programów tylko z wyznaczonej przeze mnie listy. Sandboxie przechwytuje wszystkie operacje zapisu na dysku procesu i kieruje je do określonego folderu. Program jest niczego nie świadomy, a użytkownik ma pełen wgląd w zmiany na dysku jakie on wprowadza. Oczywiście przeglądarka internetowa aby działać prawidłowo musi mieć skonfigurowany dostęp bezpośredni do swojego profilu, jest to jednak jedyna “dziura” w piaskownicy, która z resztą ustawia się domyślnie, bo Sandboxie “zna” wszystkie popularne przeglądarki.

Zdecydowałem się na dodatkową izolację przeglądarki po przeczytaniu wywiadu z Joanną Rutkowską, która sama stosuje jeszcze silniejsze rozwiązanie w postaci przeglądania stron internetowych z wirtualnych maszyn VMware. Uważam, że Sandboxie jest rozsądnym kompromisem pomiędzy wygodą i szybkością “uwolnionej” przeglądarki a bezpieczeństwem maszyny wirtualnej. Niewątpliwie złamanie całego hypervisor’a byłoby o wiele trudniejsze niż “piaskownicy”, ale w grę wchodzi też wygoda i szybkość działania. Korzystanie z maszyny wirtualnej nawet na sprzęcie z 2 GiB pamięci oraz 2 rdzeniowym procesorem wnosi jednak pewien narzut wydajnościowy. Okienko wirtualnego komputera nie przełącza się tak szybko i sprawnie jak okienka zwykłych aplikacji, zaś ogólne spowolnienie całego komputera wynikające z dużego użycia pamięci i częstego “wymiatania” stron pamięci do pliku wymiany jest nieprzyjemnie odczuwalne. Przeglądarka zamknięta w “piaskownicy” działa praktycznie tak samo sprawnie jakby działała poza nią. Dodatkowa opcja blokowania uruchamiania programów przez proces z piaskownicy również podnosi poziom bezpieczeństwa. Naturalnie, jeżeli dysponujemy potężnym sprzętem (w linkowanym wywiadzie mowa jest o 8 rdzeniowym procesorze i 16 GiB pamięci) i nie musimy martwić się o spadek szybkości działania komputera to lepiej jest rzeczywiście użyć wirtualnych maszyn do korzystania z Internetu

4. Używam oddzielnej przeglądarki gdy muszę świadomie odwiedzić bardziej mroczne zakamarki Internetu. Korzystam wtedy z Opery (również w piaskownicy) z wyłączonymi skryptami, obsługą Javy, wtyczek i ciasteczek. Jeżeli jakaś strona nie wyświetla się z powodu tej rygorystycznej konfiguracji no to trudno.

5. Do wykonywania wrażliwych operacji (np. bankowość) zdecydowałem się na wszelki wypadek używać jednak maszyny wirtualnej. Mój hypervisor to darmowy Sun VirtualBox a systemem gościa jest Xubuntu - ze względu na lekkie środowisko Xfce. Maszyna ma przydzielone 384 MiB pamięci przez co włącza się i zapisuje swój stan bardzo szybko. Taka ilość pamięci wystarcza do tego aby wykonać coś na stronie Internetowej jak również sprawnie (bez “zamulania”) przełączać się do pozostałych uruchomianych programów.

Ostatnia zasada może nie musi być właściwie wymieniana, bo wie o niej chyba każdy. Chodzi oczywiście o zdrowy rozsądek. Staram się zastanawiać zanim gdziekolwiek kliknę, staram się nie uruchamiać podejrzanych plików (jeżeli już muszę to obowiązkowo najpierw z maszyny wirtualnej przeznaczonej do takich właśnie eksperymentów), uważnie przyglądam się programom, które instaluję w swoim systemie etc.

Konto zwykłego użytkownika w systemie Windows – nawyki i sztuczki przydatne podczas codziennej pracy

Wbrew obiegowym opiniom system Windows nie jest wcale tak bardzo niebezpieczny i podatny na działanie wirusów jak mogłoby to się wydawać. Jedną z przyczyn takiego postrzegania “windowsów” są raczej niefortunnie dobrane standardowe ustawienia systemu (NT4, 2000, XP) - mam tutaj na myśli tworzenie standardowo kont z uprawnieniami administracyjnymi zamiast tylko jednego konta administratora a do zwykłej pracy kont ograniczonych - tak jak jest to w systemach uniksopodobnych. Praca na koncie z ograniczeniami w bardzo znaczącym stopniu podnosi bezpieczeństwo, ponieważ nawet jeżeli zawiedzie program antywirusowy czy firewall i “przepuści” plik z wirusem, to wirus ten nie poczyni żadnych szkód ponieważ nie będzie mógł zainstalować się w systemie. Sam obserwowałem takie przypadki, gdy twórcy wirusa ewidentnie nie uwzględnili w założeniach projektowych uruchamiania swojego dzieła na koncie z ograniczeniami i mogłem podziwiać efektowną serię komunikatów o błędach która kończyła się zamknięciem procesu “wirusa”.

Niestety wszelkie zagadnienia związane z bezpieczeństwem pociągają za sobą zmniejszenie szybkości działania, efektywności, wygody użytkowania etc.

Balans

Idealnie byłoby wypracować rozwiązania, które są zarówno bezpieczne jak i szybkie i przyjemne do użycia. Postaram się opisać tutaj szereg chwytów, które sam stosuję korzystając na co dzień z ograniczonego konta w systemie Windows. Przybliżają one elastyczność i wygodę pracy na koncie z uprawnieniami administracyjnymi zachowując jednocześnie bezpieczeństwo na koncie zwykłego użytkownika (grupa “Użytkownicy” w menedżerze lusrmgr.msc).

Sztuczka podstawowa to umieszczenie najlepiej na pulpicie lub w innym wygodnym miejscu skrótu do wiersza poleceń (program cmd.exe) i uruchomienie go klikając prawym przyciskiem myszy opcją “Uruchom jako” , a następnie wybranie administratora. Uzyskujemy w ten sposób wiersz poleceń działający z uprawnieniami administratora (odpowiednik uniksowego su). Wiele z moich sztuczek opiera się właśnie o wydanie komend z wiersza poleceń. Polecam zadbać o możliwość uzupełniania nazw plików i folderów tabulatorem - w systemie XP można to ustawić np. narzędziem Microsoft Tweak UI.

1. Dostęp do plików

Sporą uciążliwością konta zwykłego użytkownika jest brak możliwości tworzenia folderów na korzeniu głównym partycji oraz w innych miejscach. Wiąże się to z brakiem uprawnień do modyfikacji dla grupy użytkowników. Wypracowałem sobie takie rozwiązania tego problemu: w sytuacji gdy potrzebuję zmodyfikować podkatalog w katalogu systemowym albo utworzyć katalog w korzeniu głównym uruchamiam sobie menedżer plików klikając prawym przyciskiem myszy i wybierając opcję “Uruchom jako”. W miejscach do których wolałbym mieć jednak bezpośrednio swobodny dostęp dodaję uprawnienia pełnej kontroli dla grupy użytkowników. Ponieważ graficzny interfejs zarządzania uprawnieniami plików w systemie NT może moim zdaniem przyprawić o ból głowy - polecam zastosowanie tego polecenia:

cacls (nazwa_katalogu) /t /e /g Users:F

Powoduje ono dodanie uprawnień do pełnej modyfikacji dla podanego katalogu i wszystkich znajdujących się w nim plików i podkatalogów. Zamiast grupy Users można oczywiście podać nazwę samego użytkownika. To bardzo ważne polecenie które zdarza mi się dość często wykonywać. Warto je sobie zapisać i mieć pod ręką dopóki nie zapamięta się składni.

Ponieważ autorzy wielu programów (niestety) nie przewidzieli, że ich produkty będą uruchamiane na koncie ograniczonym a dostęp do folderu Program Files z takiego konta jest tylko do odczytu, to zdarzają się osobliwe błędy. Proponuję utworzyć sobie w katalogu Program Files specjalny katalog (ja go nazwałem UserAccess) i potraktować go powyższym poleceniem. Wszelkie nowe programy, które przewidujemy do działania na ograniczonym koncie sugeruję instalować właśnie w takim katalogu. Programy często potrzebują zapisywać sobie jakieś dane w trakcie działania w katalogu w którym są instalowane, dzięki tej sztuczce zwiększamy prawdopodobieństwo, że aplikacja będzie działała poprawnie na ograniczonym koncie.

2. Widoczność programów w Menu Start

Przyznam, że moim zdaniem jest to największa uciążliwość pracy na koncie ograniczonym. Zdarzają się tutaj 2 przypadki - albo zainstalowany program nie jest widoczny w menu start konta użytkownika, albo jeśli nawet jest widoczny to skrót nie działa ponieważ nie ma uprawnień dla użytkowników. Pierwszą czynnością którą polecam wykonać to potraktowanie powyższym poleceniem cacls całego folderu All Users\Menu Start. Dzięki temu jako zwykły użytkownik będzie można wprowadzać dowolne modyfikacje w menu start

Kolejną czynnością jest upewnienie się, że wpisy skrótów w menu start dla programu znajdują się właśnie w All Users a nie w katalogu Administrator. Ponieważ, aby zainstalować program należy jego instalator uruchomić z uprawnieniami administracyjnymi, to w wielu przypadkach wpisy do menu start dopisują się właśnie dla administratora przez co są niewidoczne dla innych użytkowników. Jeżeli dla All Users\Menu Start nadaliśmy już pełne uprawnienia dla użytkowników to proponuję przenosić wpisy z menu start administratora do All Users z wiersza poleceń (osobiście uważam, że tak jest łatwiej bo jest mniej klikania). Przechodzimy do menu start administratora poleceniem

pushd "c:\Documents and Settings\Administrator\Menu Start\Programy"

a następnie wydajemy polecenie

move (folder_programu_do_przeniesienia) "..\..\..\All Users\Menu Start\Programy"

Przy wpisywaniu tych długich ścieżek posługujemy się oczywiście autouzupełnianiem za pomocą tabulatora. Przechodzenie do katalogów komendą pushd powoduje, że możemy powrócić do poprzedniego folderu komendą popd.

Kilka słów o widoczności wpisów w menu start. To, co widzimy klikając Start/Programy, jest “widokiem” będącym teoriomnogościową sumą zawartości katalogu Programy z All Users i katalogu Programy z bieżącego użytkownika. Dlatego warto zadbać, aby wszelkie wpisy dla menu start znajdowały się jednak w All Users.

3. Konfigurowanie systemu, panel sterowania

Co prawda mechanizm uruchamiania programów z innymi uprawnieniami jest bardzo podobny do tego znanego z linuksa, to jednak są elementy systemu których w ten sposób uruchomić się nie da. Wynika to z faktu, iż nie da się w ten sposób uruchomić po raz drugi instancji powłoki systemowej - programu explorer.exe (jeden proces explorer.exe działa dla bieżącego użytkownika, z jakichś powodów system odmawia uruchomienia powłoki po raz drugi dla kogoś innego). Powłoka systemowa odpowiada za wyświetlanie okienek. Nie da się zatem uruchomić tych elementów, których “oprawą” są okienka - czyli np Panel sterowania, menedżer połączeń sieciowych, wszelkie programy które instalują się jako rozszerzenia powłoki.

Rozwiązaniem na to jest bezpośrednie wywoływanie apletów panelu sterowania z linii poleceń (administracyjnej oczywiście). Polecam do tego ten spis komend wiersza poleceń. Przykładowo jeżeli chcemy wyświetlić narzędzie usuwania programów - uruchamiamy z linii poleceń appwiz.cpl.

Niestety do zarządzania opcjami połączeń sieciowych konieczne jest pełne zalogowanie się na koncie administratora. Możemy jednak ominąć przynajmniej jedno ograniczenie - na włączanie i wyłączanie połączeń sieciowych. W tym celu wystarczy w narzędziu lusrmgr.msc dodać nasze ograniczone konto użytkownika do grupy konfiguracji sieci (ta możliwość pojawiła się chyba w XP SP3, bo jestem pewien, że wcześniej nie było tej grupy).

[EDIT - 14 października 2009]

Ponieważ treść tego wpisu dotyczy głównie Windows XP, brakuje wyjaśnienia czym jest i jak działa w tym kontekście mechanizm UAC w systemie Windows Vista oraz Windows 7. Odsyłam w tym miejscu do wpisu na blogu Joanny Rutkowskiej gdzie zawarte są te właśnie informacje jak również dużo bardziej wnikliwe rozważania na temat bezpieczeństwa kont użytkownika w Windows Vista.