Archiwum Marzec 2010

Czy PDF jest groźny?

Jako format – na pewno nie. Ale problem pojawia się wtedy, gdy czytnik PDF posiada lukę w bezpieczeństwie. Jest to dość niebezpieczny przypadek, gdyż plik ten może być zagrożeniem nawet wtedy, gdy nie jest otwierany. Większość dzisiejszych desktopowych systemów operacyjnych posiada obecnie usługę indeksowania, która w tle przegląda wszystkie dokumenty użytkownika. Typowo wtyczka taka korzysta z biblioteki dostarczanej przez Adobe i jest wywoływana także wtedy, gdy użytkownik tego pliku nie otwiera. Narzędzia te indeksują także katalogi tymczasowe. Zatem złośliwy kod umieszczony w rozszerzeniu Javascriptowym zacznie działać (wtyczka używana przy indeksowaniu ignoruje ustawienia czytnika!), infekując maszynę.

Jednym z niewielu systemów, które nie korzystają z Adobe Readera oraz ignorują JavaScript przy indeksowaniu jest Linux, gdzie wykorzystywany jest filtr pdf2text. Narzędzie to ignoruje rozszerzenia takie jak JavaScript zatem jest odrobinę bezpieczniejsze od indeksowania z pełną analizą obiektów. Podobnie zachowuje się xpdf oraz SumatraPDF – darmowy czytnik PDF dla systemu Windows.

Problem z zagrożeniem rozsiewanym w plikach PDF nie polega na tym, że format jest niebezpieczny, ale pochodzi stąd, że najpopularniejszy czytnik PDF na świecie posiada bardzo poważne luki w bezpieczeństwie. Ponadto czas od ujawnienia luki w Readerze do jej załatania jest długi – właśnie z tego korzystają cyberprzestępcy.

Należy pamiętać o tym, że każde oprogramowanie (także alternatywne, nie tylko Adobe Reader) może posiadać luki w bezpieczeństwie i bezwzględnie należy zadbać o jego aktualizację. Przestępcy korzystają także z luk w starszej wersji Foxit Readera, przy czym ani DEP, ani ASLR nie chroni akurat przed tym zestawem eksploitów. Bardzo ciekawy materiał na temat zagrożeń w 2009 r. opublikował CERT Polska, artykuł na ten temat ukaże się w najnowszym numerze tygodnika Computerworld.

Oczyścić wejście

Zasada zerowego zaufania do wprowadzanych danych powinna być wypisana wielkimi literami i wpajana wszystkim programistom. Należy ją stosować do wszelkich danych, które są pobierane przez aplikację, niezależnie od sposobu ich pozyskania. Należy traktować tę zasadę poważnie. Oto przykład, który w pewnych warunkach mógłby okazać się zgubny.

Proszę wyobrazić sobie najbardziej znienawidzone urządzenie techniczne instalowane na drogach – fotoradar z automatycznym rozpoznawaniem tablic rejestracyjnych. Namiastkę takiego urządzenia można zobaczyć na drodze krajowej numer 94. Technologia automatycznego rozpoznawania tablic rejestracyjnych działa w wielu miejscach, w tym także na nowym moście w Płocku. System taki pobiera obraz z kamery, rozpoznaje znaki tablicy za pomocą aplikacji OCR, dopasowuje je do schematu, ale najpierw wrzuca pobrane znaki do bazy danych.
Proszę pomyśleć co by było, gdyby przed takim urządzeniem przejechał samochód oznakowany jak niżej:(zdjęcie pochodzi z serwisu http://dabroz.scythe.pl)

ZU O666′, 0,0); DROP DATABASE TABLICE;–

albo

T0 HVVDP’,0,0); TRUNCATE TABLE TABLICE;–

Tablice ZU O666 oraz T0 HVVDP (własny wyróżnik w województwie świętokrzyskim) spełnią podstawy szablonu, gdyby zatem narzędzie OCR rozpoznawało także cudzysłowy, nawiasy i średniki (co czasami ma miejsce, gdy deweloper nie ograniczy alfabetu), do aplikacji zapisującej dane w bazie przekazana byłaby treść jak wyżej. Powszechna niedbałość o kod nie pozostawia wątpliwości, że SQL Injection taką drogą da się zrobić i eksploitowanie podobnego błędu spowodowałoby utratę danych.

Wątpię czy żart ten działa naprawdę, ale pokazuje, że nawet przy pobieraniu danych z rozwiązań OCR (na przykład przy rozpoznawaniu dokumentów przychodzących do firmy) należy koniecznie zabezpieczyć się przed wstrzyknięciem kodu.

Kończy się pewna epoka

Powoli zbliża się następca najpopularniejszego serwera DNS na świecie , czyli pakiet bind10, opracowany przez Internet System Consortium. Niestety nie można oczekiwać szybkich wdrożeń, gdyż kod ten jest jeszcze obarczony wieloma błędami, niezbyt efektywny i w ogóle trudny. Twórcy zamierzają pousuwać te niedogodności w ciągu najbliższych lat (!), ale opracowane elementy kodu zawierają już solidną podstawę do migracji w przyszłości.

Projekt serwera Bind9 pochodzi z roku 1998 i ma bardzo bogatą historię, także związaną z krytycznymi błędami (niektóre skutkowały masowym przejęciem serwerów, inne zagrażały użytkownikom). Jego konkurencją jest pakiet djbdns opracowany przez Daniela J. Bernsteina. Jest to do dziś jedna z najbezpieczniejszych implementacji serwera tej usługi, nagrodę 1000USD za wskazanie błędu odebrano dopiero w marcu 2009r, po kilku latach od wydania ostatniej wersji. TinyDNS z pakietu djbdns w 2004 roku obsługiwał 15% domen. Niestety djbdns miał sporo wad (m.in. licencja zabraniająca redystrybucji binariów skompilowanych ze zmodyfikowanych źródeł – jedynym systemem sensownie obchodzącym ten problem było FreeBSD, gdzie mechanizm portów umożliwiał pobranie i nałożenie wymaganego zestawu łat). Na szczęście powstał fork o nazwie dbdns (wspiera IPv6), niektórzy używają także serwera maradns, który podobnie jak djbdns był projektowany jako bezpieczniejsza alternatywą dla bardzo dziurawego wtedy binda. Na trzecim miejscu plasuje się serwer DNS z systemów Windows Server, przy czym oprogramowanie to wywodzi się ze starszej wersji binda i straciło na popularności głównie ze względów bezpieczeństwa. Jest wbudowane w serwery platformy Windows – a hosting jest jej szczególnie słabym punktem, chociaż nie jest to zła platforma. Nota bene ISC dystrybuuje także wersję binda dla Windows.

Przez pewien czas administrowałem bindem i pakietem djbdns, bardzo lubiłem dnscache (a także serwer pocztowy qmail, oba od Daniela J. Bernsteina) za bardzo dobre bezpieczeństwo i wydajność, ceną była konieczność korzystania z narzędzi typu daemontools i konieczność nakładania łat, by uzyskać żądaną funkcjonalność. Łaty te bywały różnej jakości i nie zawsze warto było je instalować. Z kolei bind to jest de facto standard, który musi znać każdy sensowny specjalista do spraw sieci.

Można powiedzieć, że epoka starego binda powoli się kończy. Nowy będzie lepszy, przy czym (podobnie jak djbdns) korzysta z kilku demonów.

Windows Phone – ciąg dalszy

Coraz więcej wiemy na temat nowego systemu mobilnego, którym Microsoft ma zamiar nadrobić straty rynku i gonić Symbiana, iPhone’a, Androida czy Blackberry OS. Opublikowano już informacje na temat pierwszych trzech telefonów z tym systemem. Wiemy też czego nie będzie w Windows Phone 7.

Nie będzie opcji kopiuj-wklej między aplikacjami. Jest to decyzja podjęta celowo, miejsce schowka systemowego zajmie specjalizowana aplikacja, która przechwytuje linki – coś takiego, jak detekcja numerów w mailach i SMSach odebranych przez telefon Nokia Communicator 9300. Według mnie jest to dobry pomysł ale obok działającego normalnie schowka. Należy pamiętać, że w telefonach z WP7 będzie mobilna wersja prostego edytora tekstu i arkusza kalkulacyjnego. Tam opcja kopiuj wklej między aplikacjami się naprawdę przydaje. Nawet Apple w końcu zareagowało na feedback użytkowników i dodało tę opcję do iPhone’ów. Ciekawe czy Microsoft się złamie i wprowadzi ją ponownie.

Nie będzie multitaskingu – aplikacje firm trzecich nie będą mogły pracować w trybie usługi. Wyjaśniono, że przyczyną takiego ograniczenia jest dbałość o to, by telefon działał szybko i mógł poprawnie wejść w stan niskiego poboru energii. Deweloperzy otrzymali w zamian za to zestaw usług, do których aplikacje się podpina (na przykład Notification service). Tak twierdzi Mark Chamberlain (sr. Escalation Engineer, Microsoft Developer Support z działu WP7) i nie ma powodu, by mu nie wierzyć. Niestety trudno będzie napisać w ten sposób np. rozsądny komunikator, który będzie korzystał z powiadomienia i działał razem z pozostałymi aplikacjami. Nie da się też jednocześnie prowadzić rozmowy i użyć notatnika firm trzecich albo jakiejś zaawansowanej aplikacji do rejestrowania notatek. Nie będzie też szans na rozsądny menedżer zachowania telefonu, taki jak Call Manager w Nokiach z systemem Symbian.

Nie będą działać aplikacje napisane dla starszej platformy – nie ma zgodności wstecz, choćby z powodów wymienionych powyżej. Twórcy np. Automapy, aplikacji, która w Polsce mocno przyczyniła się do popularyzacji platformy Windows Mobile, będą musieli ją przepisać i rekompilować.

Na razie nie ma obsługi technologii Flash, ale myślę, że dość prędko się pojawi, podobnie jak najlepsza przeglądarka mobilna – Opera.

Tak okrojony telefon klasy smartphone bardzo wiele traci. Dlatego gdybym miał kupować nowy telefon tej klasy do moich prywatnych potrzeb, brałbym pod uwagę tylko dwa systemy: Symbian i Android.

Nieprzyjazne technologie

Gdyby wybierać dostawcę w dziedzinie IT, który jest najbardziej nieprzyjazny użytkownikom i środowisku naturalnemu, na jednym z pierwszych miejsc byłaby na pewno firma Apple. Znana z ograniczania technologicznego niektórych swoich produktów, sprzedawanych z bardzo kontrowersyjną licencją oraz kłopotliwym wsparciem. Firma, której najbardziej okrzyczany produkt nie posiada wymiennej baterii (zatem musi być wysłany do producenta w celu wymiany zużytego akumulatora – absurd!) i nie zezwala na instalację oprogramowania innego, niż dozwolone (tak restrykcyjnych zapisów nie ma nawet sztandarowy dostawca komercyjnego oprogramowania – firma Microsoft), postanowiła pójść za ciosem.

Otóż w iPadzie nie przewiduje się w ogóle wymiany akumulatora, nawet przez polski autoryzowany serwis. Firma za opłatą odeśle użytkownikowi nowe urządzenie, czyste, bez żadnej treści. O ile tylko nie uzna, że poprzedni egzemplarz nie został przypadkiem zalany wodą… Niestety chemiczne czujniki wilgoci stosowane w iPhone’ach w naszym klimacie bardzo często sygnalizują zamoczenie przy typowym użytkowaniu zabawek Apple’a. Tym razem jednak nawet wspomniana w linku firma Regenersis nie będzie mogła otworzyć urządzenia i wymienić (lub nie) akumulatora. iPad musi być odesłany do producenta. I to ma być technologia przyjazna środowisku?

Nie jestem przeciwnikiem Apple. Jestem przeciwnikiem rozwiązań defective by design.

Podziemna infrastruktura

Regularnie piszemy o zagrożeniach związanych ze złośliwym oprogramowaniem, zatem ponownie przyjrzymy się temu co w pecetach piszczy, a nie powinno. Tym razem najnowsza wersja Zeusa doczekała się nawet ochrony przed piratami na wzór MS WGA (za Securitystandard.pl). Sam trojan posiada własną komercyjną licencję,  jest używany masowo i służy do kradzieży pieniędzy, stanowiąc część podziemnego arsenału złodziejskiego. Postarałem się to naświetlić w dwóch tekstach opublikowanych w nr 42 i 43/2009, omawiając przy tym mechanizm nielegalnych transakcji i współpracy między przestępcami, a także samo pobieranie i dystrybucję kradzionych danych. Rozmowy z ekspertami udowadniają ponad wszelką wątpliwość, że sprzedaż danych kwitnie. Potwierdza to także mały rekonesans po portalach hackerskich. Oto przykład opinii po transakcji sprzedaży ruchu na stronę związaną ze złośliwym oprogramowaniem (klik powiększa obrazek, tł. moje).

Niebawem przygotuję tekst na temat zagrożeń związanych z bankowością elektroniczną. Trojan ZeuS nie pozostaje bez wpływu na fraudy i dlatego zagrożenie ze strony tego złośliwego kodu także należy wziąć pod uwagę.

Bardzo dobry tekst porównujący ZeuSa z innym trojanem Pinch, można znaleźć tutaj (witryna w języku rosyjskim). Na tym samym portalu jest także instrukcja obsługi do ZeuSa (również w języku rosyjskim, niestety do starszej wersji). Jest to ciekawy materiał, warto poświęcić mu kilka chwil.

Tymczasem jeszcze raz brawa dla polskich informatyków w bankach – informację na temat pojawienia się kilku polskich witryn w konfigach ZeuSa otrzymałem właśnie od zaprzyjaźnionych adminów, którzy na bieżąco śledzą to, co botnety robią. Poziom bezpieczeństwa bankowości online jest w Polsce dość wysoki, ale nadal występuje ryzyko związane z obecnością złośliwego oprogramowania na stacji roboczej.

Życie wewnętrzne komputera

Niedawno wiedza na temat złośliwego oprogramowania miała okazję przydać mi się w praktyce. Nie pierwszy raz czyściłem system Windows XP/Vista z wirusów, ale pierwszy raz odzyskiwałem dane z dysku nadpisanego przez spyware po wykonaniu komendy „kill OS”. Początkowo podejrzewałem awarię dysku, ale napęd zgłosił się do systemu operacyjnego poprawnie, zatem skopiowałem dysk do pliku obrazu za pomocą dd, a następnie wykorzystałem program testdisk do odtworzenia tablicy partycji. Po zamontowaniu systemu plików w trybie tylko do odczytu, ukazał mi się taki oto obraz głównego katalogu:

Tak, dobrze myślicie, to są pliki wykonywalne wirusa. Po przeskanowaniu prostym programem antywirusowym (w celach informacyjnych, bo osoba ta już korzysta z innego systemu, zainstalowanego na nowym dysku twardym), można było potwierdzić istnienie całej kolekcji zahibernowanych wirusów:

Nadmienię, że osoba ta posiadała sprawny i aktualny program antywirusowy (na dysku są informacje o szczepionkach datowanych na czas tuż przed „zabiciem” systemu przez spyware) a trojany te działały co najmniej pół roku. Dlaczego program ich nie wykrył? Odpowiedź jest prosta – jeden z modułów, który instalował także Zeusa, dociągnął sobie wtyczkę, która unieszkodliwiała motor skanowania oraz wyłączała kontrolę chroniącą integralność antywirusa. Analiza dysku potwierdziła moje wstępne podejrzenia w całej rozciągłości.

Jestem przekonany, że bardzo wiele domowych komputerów posiada nieznane właścicielowi „życie wewnętrzne”. Z kolei pewna część zarażonych maszyn to są komputery firmowe. Jeśli miał rację Uri Rivner (oraz kilku polskich specjalistów), jedna trzecia maszyn w różnych botnetach Zeusa, to właśnie korporacyjne stacje robocze, z założenia wyposażone w najnowsze oprogramowanie antywirusowe i tak dalej. Niestety prognozy nie są pomyślne, niebawem postaram się opracować i opublikować raport na temat zagrożeń bezpieczeństwa polskich firm. Prace trwają, dziękuję przy tym ekspertom CERT Polska oraz tym pracownikom instytucji rządowych, którzy poświęcili mi cenny czas.

Obecnie nawet Mac, wbrew reklamom, nie zapewnia wymaganego poziomu bezpieczeństwa, głównie ze względu na opóźnienia w aktualizacji oprogramowania. W tej chwili jedynym w miarę bezpiecznym środowiskiem aplikacji firmowych jest cienki klient, gdzie w podsieci użytkowników całkowicie wyeliminowano system Microsoft Windows i typowe stacje robocze, a serwer terminalowy jest chroniony za pomocą dedykowanych rozwiązań. Czy taki poziom można osiągnąć w praktyce za pomocą tradycyjnych metod? Tak, ale wcale nie będzie to proste. Tutaj antywirus to niestety zdecydowanie zbyt mało.

Ile potrzeba CPU?

Większość pecetów działa przy typowych zadaniach biurowych. Ile do tego potrzeba CPU? Czy naprawdę wielordzeniowe procesory są niezbędne do pracy? Takie pytania zadają sobie także nasi czytelnicy. Odpowiedź wcale nie jest prosta.

Gdyby określić dolny próg wydajności komputerów do pracy, okazałoby się, że po spełnieniu dwóch warunków, wystarczyłby typowy Atom instalowany powszechnie w netbookach. Należałoby  wyposażyć komputer w porządny akcelerator grafiki (a nie przeraźliwie wolną kartę Intel 945). Drugim warunkiem jest wykorzystywanie systemu operacyjnego, który ma niewielkie potrzeby własne i optymalnie napisanego oprogramowania.

W 2006r używałem komputera z procesorem 1,6 GHz (Toshiba SPM 30), wydajność tego procesora była z powodzeniem wystarczająca do komfortowej pracy z Windows XP lub Linuksem. Niestety nie dało się na nim pracować w systemie Windows Vista, który akurat miał swoją premierę (mimo 2 GB RAM). Przyczyną był brak stabilnych sterowników do akceleratora graficznego. Po dość długich pracach ledwie udało się włączyć Aero. A to był wtedy dość szybki laptop.

Dzisiaj pracuję „produkcyjnie” na netbooku (MSI Wind U100), na którym mam ponad 60 GB dokumentów (praktycznie wszystkie materiały i dokumenty, które przygotowywałem dla Computerworlda). Chociaż jest to zdecydowanie słabsza maszyna od dzisiejszych stacji roboczych i dużych laptopów, do pracy wystarcza. Dlaczego? Nie używam Windows Vista ani 7 (chociaż próbowałem obu, mam 2 GB RAM). Do tak słabej maszyny najlepszy jest Windows XP albo Linux. Jeśli chodzi o prędkość pracy, to do typowych zadań, którymi się zajmuję, z powodzeniem wystarczy netbook. W pracy podłączam monitor 19”  LCD, zewnętrzną klawiaturę i myszkę.

Jestem przekonany, że większość typowej pracy biurowej, związanej z edycją pojedynczego dokumentu można z powodzeniem wykonać na komputerze z procesorem rzędu 1,6 GHz z pojedynczym rdzeniem. Aplikacje biznesowe można eksploatować także przez terminal. Wtedy procesor RISC taktowany częstotliwością kilkaset MHz i rozsądnie przygotowany system operacyjny wyposażony w klienta usług terminalowych, z powodzeniem wystarczy, by działało środowisko cienkiego klienta. Resztę zrobi za nas serwer.

Większość mocy obliczeniowej dzisiejszych desktopów jest marnotrawiona na nieoptymalnie napisane aplikacje i systemy. Potrzeby typowego biura zostały zaspokojone mniej więcej w okolicy Office 2000/XP – nie dziwi mnie, że pakiet ten jest tak popularny do dziś.

Manipulacja cyfrowym obrazem

W ciągu ostatnich lat nastąpił odwrót od fotografii analogowej, tej klasycznej, z użyciem negatywu i pozytywowej odbitki lub filmu odwracalnego. Miejsce filmów negatywowych C-41 i barwnych odbitek zajęły dziś aparaty cyfrowe, które już 6 lat temu oferowały dostateczną jakość zdjęć nawet w amatorskich aparatach. Zdjęcia analogowe, głównie czarno-białe, zostały tylko w specjalnych zastosowaniach, na przykład przy fotografowaniu obiektów o skrajnie dużym kontraście, w fotogrametrii i badaniach naukowych. Negatywy i przezrocza służą także do działań kreatywnych niektórym artystom.

Wszyscy znani mi reporterzy korzystają z cyfrowych lustrzanek, podobnie pracują fotografowie w różnych instytucjach, dokumentujący czasami bardzo poważne zdarzenia. W odróżnieniu od negatywu, dane cyfrowe mogą być bardzo łatwo zmanipulowane i czasami wychodzi to na jaw. Przykładem może być dyskwalifikacja Stiepana Rudnika, którego reportaż Antysport (albo Młode Psy, witryna w języku rosyjskim, tematem reportażu są „ustawki” chuliganów-pseudokibiców) zdobył trzecią nagrodę World Press Photo. Manipulacja została wykryta po analizie plików RAW (surowych danych z matrycy aparatu, jest to jedna z opcji fotografowania cyfrową lustrzanką). Nie jest to pierwszy taki przypadek. Piotr Skórnicki, laureat konkursu Grand Press Foto stracił nagrodę,  fotomontaż nagrodzonego zdjęcia można było łatwo zauważyć.

Nie wiadomo ile zdjęć zostaje zmanipulowanych, ale zdarzało się to także na pierwszych stronach gazet (mówi o tym bardzo dobry tekst Kingi Kenig, fotoedytorki Gazety Wyborczej), nawet takim agencjom jak Reuters.

Jak w takim razie można wierzyć cyfrowym dowodom, które są używane w sądzie? To jest dość skomplikowana sprawa. Zbieranie dowodów z komputera nie jest proste – to trzeba wykonać dobrze, inaczej materiały nie będą miały żadnej wartości. To samo dotyczy zdjęć.

Z drugiej strony, fotografia cyfrowa daje potężne pole do popisu artystom, których ogranicza tylko wyobraźnia. Nikt nie zabroni tworzenia obrazów jak z bajki.

(Ateny, listopad 2009, fot. MM).