Archiwum kategorii haking

Keylogger wbudowany w OS X

Razem z aktualizacją do najnowszego Firefoksa i Thunderbirda Mozilla wydała bardzo ważne ostrzeżenie związane z funkcjonowaniem mechanizmu CoreGraphics w systemie Apple OS X w wersji Yosemite (10.10). Niektóre aplikacje, w tym takie, które korzystają z własnego mechanizmu zarządzania pamięcią (takiego jak jmemalloc), ze względu na błąd frameworku Apple’a mogą trafić na swoistą „czarną listę” i uruchomić mechanizm keyloggera wbudowany w ten system. Skutkuje to zapisywaniem wszystkich wciskanych klawiszy przy pracy z tym programem do specjalnego pliku /tmp/CGLog_<nazwa procesu>. Właśnie to zdarzyło się Firefoksowi w wersji niższej niż 34. Chociaż jest to błąd programistyczny, niestety źle świadczy o frameworku i o samym systemie operacyjnym.
W każdym przypadku należy sprawdzić obecność podobnych plików w katalogu /tmp i wyczyścić wszystkie pliki

/tmp/CGLog_*

gdyż zawierają one zapis wszystkich wciskanych klawiszy, włącznie z ewentualnymi hasłami, numerami kart kredytowych i innymi poufnymi informacjami.
Yosemite (10.10) jest pierwszym wydaniem OSX, w którym ta funkcja jest domyślnie włączona (kod był obecny także w poprzednich wersjach, wystarczyło ustawić odpowiednio zmienną kCGSDebugOptionVerboseLoggingAllApps). Jeśli korzystasz z backupu, na przykład za pomocą Time Machine, należy usunąć te pliki z backupu, a na przyszłość usunąć /tmp z szablonu kopii bezpieczeństwa.

Apple OS X Yosemite i dyski SSD

Jeśli korzystasz z ogryzka z systemem Mavericks i używasz dysków SSD innej firmy niż Apple, to nie aktualizuj systemu do Yosemite.
Apple w systemie Yosemite wprowadza obowiązek podpisywania sterowników (kext signing), a zatem dyski SSD firm trzecich nie będą działać – nie da się z nich nawet podnieść systemu jeśli zainstalowałeś narzędzia do obsługi opcji Trim (usprawnia ona pracę dysków SSD przy zapisie). Niestety nie da się zaimplementować obsługi Trim inaczej, niż przez kext, gdyż sterownik AHCI SATA napisany przez Apple jest zamknięty i nieudokumentowany. Żaden z producentów nie może zatem dostarczyć dobrze napisanych i podpisanych sterowników do dysków SSD, gdyż Apple na to nie pozwala.
Problem obsługi dysków SSD szczególnie mocno dotyczy profesjonalistów zajmujących się edycją wideo w programie Final Cut Pro.

W świecie Windows podpisywanie sterowników miała Vista 64 bit (styczeń 2007r, a jeszcze w październiku 2006r. osobiście testowałem RC) i mają do dziś wszystkie wydania Windows 64 bit. Apple wprowadza to zabezpieczenie dopiero teraz.

Na warsztacie – Windows 10 Preview

Gdy tylko Microsoft wydaje testową wersję przeglądową swojego najnowszego systemu, zabieram się do testowania. Tym razem na warsztat wziąłem Windows 10 Technical Preview. Instalację przeprowadziłem w środowisku wirtualnym VMware Player.
Więcej »

Najnowszy system Apple a prywatność

Apple zazwyczaj zachowywało dobre podejście do prywatności użytkowników swoich systemów desktopowych. Niestety najnowsze wydanie Yosemite (OS X 10.10) zachowuje się o wiele gorzej od poprzednich. W domyślnych ustawieniach wysyła do Apple’a między innymi wszystko, co użytkownik wpisuje do lokalnej wyszukiwarki Spotlight (dotyczy to wyszukiwania zarówno aplikacji, jak i lokalnego pliku) i do podpowiedzi Safari. Niestety nie są to wszystkie grzeszki najnowszej wersji systemu – zostawia ona także informacje o użytych kontach pocztowych. Część tej informacji z bazy Spotlighta można znaleźć na nośnikach wymiennych. To niepożądane zjawisko można nieco ukrócić, zajmuje się tym projekt fix macosx. Ponieważ z zewnętrznymi serwisami kontaktują się nie tylko składniki systemu operacyjnego, badacze analizują cały generowany ruch sieciowy. Ze wstępnej analizy wyłania się nieciekawy obraz – zjawisko zwane „phone home” wykazuje całkiem sporo różnych aplikacji dla OSX, a sam system tego w żaden sposób nie blokuje. Z niecierpliwością czekam na wyniki badań.

Zabawy z odwrotnym DNS

Niektórzy operatorzy (lub admini małych sieci) robią sobie żarty, wprowadzając do odwrotnego DNS śmieszne zapisy. Oto przykład – wystarczy zrobić traceroute do adresu 216.81.59.173 z wyłączonym ograniczeniem do 30 hopów. Miłośnicy Gwiezdnych Wojen – łączcie się! W Internecie!
Traceroute i odwrotny DNS

O wesołych wpisach w odwrotnym DNS sporo dyskutowano na listach mailingowych – ślady tych dowcipów można znaleźć na przykład tutaj, w archiwum z 2001r.
Pomysł wziął się z epoki IRC, najwięcej takich wpisów było wtedy, gdy w Polsce królowało łącze SDI dostarczane przez TP S.A. Miało stały adres IP, pasmo 115kBit/s i w odróżnieniu od później wprowadzonej Neostrady – nie miało miesięcznych limitów transferu. Na takim łączu niektórzy utrzymywali nawet domeny i mieli własne wpisy w DNS.

Oczywiście wiele wpisów zrobili miłośnicy IRC:

ircowanie.jest.smiechuwarte.pl [195.205.47.168]
jak.przejalem.kanal.siostrze.to.niezla.byla.wojna.domowa.pl [195.116.255.55]
IRC.mojdom.pl [195.116.255.61]
ircuje.z.apteki.net.pl [212.182.111.248]

Były też inne żartobliwe:

please.press.any.key.com.pl [195.116.255.51]
kocham.iwonke.jak.dhs.org [195.116.255.60]
jak.chcesz.dobudowac.pienterko.do.kibelka.to.wynajmij.mabud.pl [195.116.255.70]
chyba.cos.zle.wcisnalem.i.trafilem.tu.pl [212.244.21.37]
pierwsze.co.robie.rano.to.odpalam.net [212.244.21.45]
koncza.mi.sie.fundusze.pl [195.205.186.132]
hihihi.hahaha.pl [212.244.125.178]

Obecnie z całej długiej listy wesołych wpisów pozostał tylko RevDNS do adresu IP 213.25.93.3.

Nie jest to jedyny przykład. Wiele lat temu, gdy serwis WWW firmy trych.pl utrzymywali weseli admini lokalnej sieci INDS w częstochowskiej dzielnicy Północ, niektóre adresy IP z wykorzystywanej tam klasy miały żartobliwe wpisy odwrotnego DNS podobne do:

dziewczyny.zapraszamy.na.s.trych.pl
do.otwarcia.wy.trych.pl

(być może niedokładnie takie, ale domena była na pewno ta). Dziś to już dawno nieaktualne. Obecnie małe sieci coraz rzadziej samodzielnie utrzymują domeny, więc podobne wesołe wpisy zdarzają się już sporadycznie. Z kolei łącza prywatne korzystają z dynamicznie przydzielanych adresów IP i mają odwrotny DNS utrzymywany przez operatora.

Nowe warsztaty

Wychodząc naprzeciw potrzebom ludzi z IT, rozpoczęliśmy nowy cykl warsztatów, które dostarczą solidną porcję wiedzy. Tym razem wielki nacisk kładziemy na zagadnienia prawne – warsztaty trwają dwa dni i cały pierwszy dzień będzie dotyczył właśnie tej części wiedzy, której czasami działom IT brakuje.
Zajmiemy się:

    • prywatnością,
    • monitoringiem działań pracowników (miałem zawsze bardzo dużo pytań związanych z monitoringiem przy poprzednich szkoleniach)
    • ochroną danych firmowych,
    • incydentami bezpieczeństwa, a także
    • obecnością pracowników firmy w sieciach społecznościowych.

Część prawną poprowadzą wybitni specjaliści z kilku kancelarii. Drugiego dnia przedstawimy zagadnienia związane ze współpracą z organami ścigania (gościem i prelegentem będzie Przemysław Krejza, prezes Stowarzyszenia Instytut Informatyki Śledczej), a także ciekawą sesję związaną z monitoringiem ruchu sieciowego i podatnościami bezpieczeństwa w firmowych aplikacjach webowych. Pokażę w jaki sposób sprawdzić czy hasła rzeczywiście są szyfrowane w tranzycie, jak sprawdzić czy komunikacja odbywa się we właściwy sposób, a Piotr Matuszewski pokaże zestaw błędów programisty webowego, które mogą skutkować utratą danych firmy.
Na deser – pokaz zdalnego przejęcia kontroli nad stacją roboczą Windows XP w sposób całkowicie niezależny od działań jej użytkownika oraz opis kompletnego ataku phishingowego razem ze sposobem obrony przed czymś podobnym.
Szkolenie IT
Zapraszam 24 i 25 kwietnia do hotelu Sound Garden przy ul. Żwirki i Wigury 18. Rejestracja jak zwykle u Oli Krupińskiej.

Ciekawe szkolenie

Wczoraj przeprowadziłem pierwsze z cyklu szkoleń autorskich w nowej formule. Podczas warsztatów „Rola pracownika w bezpieczeństwie informacji w firmie” zwróciliśmy uwagę między innymi na socjotechnikę oraz komunikację na styku pracownik – dział IT. W tych warsztatach wzięli udział specjaliści do spraw bezpieczeństwa z dwóch ważnych instytucji państwowych i operatora telekomunikacyjnego.
Jednym z elementów warsztatów było praktyczne ćwiczenie związane z atakami (również socjotechnicznymi), a także z przygotowaniem firmy i obroną przed zagrożeniami. Uczestnicy, podzieleni na dwa obozy, zaplanowali atak i obronę, przy czym posługiwali się informacjami o działaniach „przeciwnika” przenoszonymi przez kogoś w rodzaju „szpiega”.
Wykazali się przy tym kreatywnością i bardzo szybkim wyciąganiem poprawnych wniosków ze szczątkowych i niepewnych informacji. Uczestnicy byli z tych ćwiczeń bardzo zadowoleni, gdyż mogli wczuć się nie tylko w rolę obrońcy firmy, ale także napastnika.
DSC_0008
Na zdjęciu – analiza dostarczonych przez „szpiega” informacji o strefach ochronnych w fikcyjnej firmie. Chwilę później uczestnicy zaplanowali skomplikowany atak.

W planach mamy nie tylko powtórzenie warsztatów w miarę potrzeb, ale także ciąg dalszy, który obejmie również zagadnienia szkoleń dla pracowników i ochrony prawnej dla firm.

Bloatware w Internecie

Zjawisko radykalnego wzrostu zasobożerności i objętości oprogramowania, nazywane popularnie bloatware nie omija stron WWW. Odkąd serwis Twitter usunął obsługę RSS, praktycznie przestałem czytać wpisy publikowane na tej platformie. To samo potwierdzili moi koledzy. Przykładowa strona główna na Twitterze wymaga pobrania 200kB, a po włączeniu skryptów, obrazków i innych zasobów – ponad 2,5 MB. Nie pomaga żadna z wtyczek do Firefoksa, gdyż nadal wymagają załadowania mnóstwa skryptów:
smieci_js

Użytkownicy pobierają te zasoby po to, by przeczytać kilkanaście wpisów po 160 znaków każdy!
Podstawową alternatywą do szybkiego przeglądania jest oczywiście RSS albo prosty plik, który wyświetliłby się poprawnie w przeglądarce przy minimalnym zaangażowaniu zasobów komputera i sieci. Aby rozwiązać ten problem, stosuję następującą technologię:

  1. na serwerze pobieram stronę główną z https://twitter.com/NazwaUzytkownika za pomocą programu wget z opcją -nd
  2. powstały plik index.html przepuszczam przez skrypt:
    cat index.html | grep tweet-text | sed "s/js-tweet-text tweet-text/aa/g" | tidy -asxhtml -utf8 2>/dev/null > index.xml
  3. plik index.xml można wyświetlić w przeglądarce, a zatem znajduje się on na serwerze, skąd go pobiorę,
  4. oryginalna strona z Twittera wylatuje z zakładek, za to pojawia się tam link do tworzonego periodycznie pliku
  5. skrypt wywołujący kopiowanie do RSS jest uruchamiany w pętli for i in *; do z katalogu wyżej, tworząc po jednym pliku w katalogach przypisanych do odpowiednich userów Twittera,
  6. właściwy skrypt na serwerze zostaje zapisany do usługi cron, by co kilka minut tworzył właściwą kopię.

Metoda ta ma jeszcze jedną zaletę – nie ładuję żadnych skryptów śledzących, ani innych śmieci, które dotychczas musiałem filtrować za pomocą Ghostery, NoScripta i Adblock Plusa. Pobiera jedynie stronę główną każdego z użytkowników Twittera i czyści ją z różnych niepotrzebnych śmieci. Nie zostawia również żadnych śladów ze strony użytkownika w oryginalnym serwisie Twittera, poza załadowaniem strony przez serwer i jeszcze czymś, o czym za chwilę.
Na podobne rozwiązanie wpadli też inni użytkownicy Internetu i powstał kolejny serwis typu tweet to RSS, który obecnie znajduje się pod adresem http://www.rssitfor.me. Gorąco polecam!
Jedyny minus obu metod ominięcia ograniczeń wprowadzonych przez Twittera dotyczy linków we wpisach – pobrane z Twittera prowadzą do adresu t.co, skąd podlegają przekierowaniu do docelowego adresu, a zatem zostawiają ślady. Wolałbym, by dostarczane do mnie linki wiodły do oryginalnego adresu. Prace nad podobnym skryptem trwają. Użycie html2text daje obiecujące efekty.

Teleportacja

Obecnie większość dróg w Polsce jest już w usłudze Google Street View, dzięki czemu można wirtualnie odwiedzić wiele miejsc. Zdjęcia do tej świetnej usługi Google’a zrobiono nawet na niewielkich wsiach, na drogach lokalnych. Nie udało się jednak uniknąć błędów, które teraz pokazują sobie Internauci, żartując, że Google wprowadziło w życie teleportację, rodem z powieści i filmów SF.
Błędy objawiają się połączeniem końcówek dróg z innymi punktami w terenie – gdy samochód z kamerą Google dojechał do końca ulicy, zaułka lub lokalnej drogi (częściej), zakończył rejestrację obrazu i pojechał fotografować następny odcinek naszego kraju. Tymczasem oprogramowanie połączyło miejsce końcowe poprzedniej rejestracji z innym. Efekt jest ciekawy i warto go zobaczyć (tutaj okolice miejscowości Romany-Sebory, ale takich miejsc w kraju jest dość dużo.
zrzut
Na poniższym widoku Street View wystarczy kliknąć zaznaczoną strzałkę, by przenieść się w inne okolice, na pobliskie pole uprawne:

Wyświetl większą mapę

Niekiedy w ten sposób można „przeskoczyć” kilka kilometrów, ma to miejsce na przykład na drodze 801, tutaj, gdzie kliknięcie strzałki w prawo przenosi do wsi Uśniaki (ponad 4km w linii prostej, dobry skrót!).
Częściej zdarza się „podłączenie” końca ulicy do różnych dziwnych miejsc. Przykład ze Staszowa jest tu, kliknięcie jednej ze strzałek powoduje „teleportację” na środek skrzyżowania.
Jeden z bardziej spektakularnych efektów jest tu:

Wyświetl większą mapę
Kliknięcie strzałki
lasdom1
przenosi prosto na dom
lasdom2

Można znaleźć sporo błędów w okolicy miejscowości Czyżew, gdzie zapisy zdjęć lokalnych wiejskich dróg są mocno pokawałkowane, a oprogramowanie łączy różne odcinki w jedną całość – nie zawsze poprawnie.

Dlaczego o tym wspominam na Technoblogu?
Często bezgranicznie ufamy algorytmom i automatycznym rozwiązaniom, bez sprawdzenia wyniku wyjściowego. Gdy danych jest bardzo dużo, sprawdzenie jest niesłychanie trudne, niemal niemożliwe przed oddaniem systemu do produkcji. Street View jest doskonałym przykładem aplikacji, w której ogrom danych sprawia, że ostatecznych wyników nie da się sprawdzić. Nikt ręcznie nie sprawdzi połączenia wszystkich obrazów, nie sprawdzi wszystkich połączeń dróg, nie „przejedzie” każdą z nich. Jest to fizycznie niemożliwe. Można za to liczyć na zgłoszenia ewentualnych błędów.
W dobie Big Data możemy się spodziewać podobnych problemów także w innych aplikacjach biznesowych. Przykładem błędu może być nieprawidłowe dołączenie zestawów danych do źródła raportów, co skutkuje niewłaściwym zaplanowaniem kampanii marketingowych.

Automatyzacja oraz ręczne sterowanie

Bardzo ciekawe doświadczenie związane z możliwością przejęcia kontroli nad planem lotu i różnymi opcjami komputerów w samolocie obiegło lotem błyskawicy różne media. Chociaż doświadczenia są bardzo ciekawe, nie odzwierciedlają rzeczywistych skutków ataku, gdyż badacz (zresztą zawodowy pilot z ważną licencją CPL) nie uwzględnił w wynikach jednego czynnika – możliwości wyłączenia automatyzacji. A to się da zrobić i piloci przechodzą także takie szkolenia.

Po co pilotom tyle komputerów?

Automatyzacja została wprowadzona po to, by zmniejszyć obciążenie pracą dwuosobowej załogi w kokpicie. Początkowo w kokpicie pracowało dwóch pilotów, nawigator oraz inżynier pokładowy (taka była załoga samolotów IŁ62m i innych z tej epoki lotnictwa). Automatyzacja i komputery umożliwiły redukcję załogi do dwóch pilotów, dzięki komputerom można było zmniejszyć ilość zadań do akceptowalnego poziomu, redukując obciążenie pracą obu pilotów.
Lotnictwo należy do tych wynalazków, w których bezpieczeństwo jest traktowane bardzo poważnie (patrz uziemienie Boeingów 787 zwanych czasami sarkastycznie „dymlajnerami”). Piloci są szkoleni nie tylko z zachowania w typowych sytuacjach awaryjnych, takich jak pożar, utrata silnika (np. przy starcie, po przekroczeniu prędkości V1, po której startu już nie można przerwać), dekompresja czy różne problemy techniczne. Piloci posiadają procedury na wypadek awarii lub wątpliwych wskazań przyrządów, posiadają przyrządy rezerwowe. Przechodzą szkolenia także z optymalnego wykorzystania dostępnej automatyzacji.

Gdy samolot „leci sam”.

W lotnictwie wyróżniamy trzy stopnie automatyzacji:

  1. pierwszy – gdy pilot leci „w łapach”, czyli ręcznie kieruje samolotem za pomocą wolantu/drążka/joysticka i pedałów oraz przepustnicy/manetek ciągu. W tym trybie wszystkie najważniejsze decyzje, takie jak kierunek, wysokość, prędkość podejmuje samodzielnie na podstawie wyobraźni przestrzennej, wskazań przyrządów oraz tego co widzi za szybą (szczególnie ważne w locie VFR). Każdy samolot, z największym Boeingiem i Airbusem włącznie daje pilotom możliwość pilotażu na takim poziomie automatyzacji. Tak też latają piloci najmniejszych samolotów, to są podstawowe umiejętności, które musi posiąść każdy adept sztuki latania.
  2. drugi – gdy załączony jest autopilot, ale pilot podaje mu komendy, „nakręcając” kurs, potrzebną wysokość, prędkość lotu, prędkość wznoszenia itp. W tym trybie można wykonać większość lotu i jest to kolosalne ułatwienie dla pilotów samolotów pasażerskich, gdyż zmniejsza ich wysiłek.
  3. trzeci – gdy załączony jest autopilot, a komendy do niego pochodzą z komputera, do którego wprowadzono trasę lotu (poszczególne punkty trasy, parametry itp). Ten tryb sprawdza się świetnie na bardzo długich trasach, na przykład transatlantyckich lub transpacyficznych. Wtedy zestaw komputerów prowadzi samolot przez długie godziny, a piloci mają i tak mnóstwo innej pracy, choćby polegającej na komunikacji z pozostałymi uczestnikami ruchu powietrznego, na planowaniu dalszego lotu, zliczaniu zużytego paliwa i tak dalej.

A zatem aby taki atak się udał, należałoby wprowadzić fałszywe parametry do komputerów sterujących, wymusić wykonanie niespodziewanych manewrów, a potem spowodować zamieszanie w kokpicie. Tymczasem lotnictwo nigdy nie polega na jednej metodzie zabezpieczeń, choćby najsprawniejszej. Dlatego w razie próby wprowadzenia zmian do planu lotu, pilot takiej zmiany po prostu nie zatwierdzi. Gdyby jednak udało się włamywaczowi zmienić kierunek, prędkość lub wysokość, inne systemy takie jak TCAS podniosą alarm. Do tego dochodzi zachowanie pilota, wyuczone przez całe lata szkoleń i praktyki.

Co zrobi pilot, który zauważy dziwne zachowanie samolotu prowadzonego przez komputer?

Wyłączy autopilota i przejdzie do najniższego możliwego poziomu automatyzacji. WSZYSCY piloci przechodzą szkolenia w zakresie niespodziewanych sytuacji i wyuczone zachowanie na problemy przy locie na autopilocie polega na wyłączeniu autopilota (A/P) oraz automatu ciągu (A/T) i przejściu na ręczne pilotowanie samolotu zgodnie z planem. Klik, klik i jesteśmy na najniższym poziomie automatyzacji – każdy pilot wie jak to zrobić.

Wielu z nich lubi ten poziom, gdyż daje im satysfakcję ręcznego prowadzenia maszyny (a warto wiedzieć, że piloci, podobnie jak żeglarze, to są w większości pasjonaci swojego zawodu) i właśnie z tego powodu oprócz „dużego latania” samolotami pasażerskimi regularnie latają małymi samolotami, dla własnej frajdy.

Jak wybrać właściwy poziom automatyzacji?

Polecam wszystkim poświęcenie dwudziestu pięciu minut na obejrzenie świetnego filmu instruktażowego dla pilotów American Airlines, nazwanego „Children of Magenta” (dzieci różowej kreski na mapie, chodzi o zbytnie poleganie na automatyzacji).

To zastrzeżenie dotyczy różnych innych narzędzi, w tym także automatyki przemysłowej. Niekiedy sterowanie podstawowymi procesami można zrealizować na niższym poziomie i każda firma, która posiada sieci SCADA powinna również mieć plan awaryjny i szkolić swoich pracowników z wyboru właściwego poziomu automatyzacji pracy. Są przypadki, w których przejście na niższy poziom automatyzacji zmniejsza obciążenie operatorów. To dotyczy nie tylko lotnictwa, ale także innych dziedzin, choćby zarządzania w centrach kryzysowych.