[PL] Szurkogadanie #9

Homepage:

https://www.youtube.com/watch?v=1lwKlQyhMM8

Description:

Wprowadzenie

Witam w 9 już odcinku podcastu Szurkogadanie - czyli o bezpieczeństwie dla Wszystkich. Ja nazywam się Kacper Szurek i w staram się tutaj przekazywać wiedzę na temat security w prostej i zrozumiałej dla wszystkich formie. Przed nami 10 informacji z ostatniego tygodnia - każda z nich jest rozdzielona specjalnym dźwiękiem.

Zapraszam do słuchania.

Podcast

1. Już parę razy w tej serii wspominałem, że instalowanie mało znanych rozszerzeń do przeglądarek Internetowych jest równoznaczne z uruchomieniem plików wykonywalnych. Teraz niejako moja teza się potwierdza - z tą jednak różnicą że tym razem mamy do czynienia z popularnym rozszerzeniem - zainstalowanym ponad 1,5 miliona razy. Mowa o MEGA.nz, czyli stronie, która umożliwia wysyłanie i odbieranie plików w Internecie. Dla wygody użytkowników, posiada rozszerzenie do Chroma, które ułatwia używanie tej witryny. Atakującym w nieznanych okolicznościach udało się uzyskać dostęp do konta Google Chrome Web Store, które służyło do zarządzania tym rozszerzeniem. Dzięki temu podmienili oficjalny kod i dodali parę linijek od siebie.

Aktualizacje rozszerzeń w Chromie są automatyczne - w taki oto sposób, zostało ono zaktualizowane u dużej grupy użytkowników. Jedyne co mogło zwrócić uwagę czujnych osób, to fakt, że aktualizacja prosiła o dodatkowe uprawnienia - które pozwalały na kradzież loginów i haseł praktycznie z dowolnych serwisów.

Złośliwy dodatek był jednakże skierowany głownie na posiadaczy krypto walut i osoby posiadające konta na serwisach MyEtherWallet, MyMonero czy też idex.market. Wykradał również dane z Amazona, Githuba i Google i wysyłał je na serwer zlokalizowany w Ukrainie. Następnie dane te były wykorzystywane do kradzieży krypto walut.

Bardzo interesujący przypadek - jeśli bowiem nie możemy zaufać rozszerzeniom z tak dużą ilością użytkowników i tworzonych przez poważne firmy - co z rzeszą mniejszych, niszowych dodatków - które tworzone są przez małych, niezależnych twórców?

2. Autoruns to jedno z narzędzi z pakietu Sysinternals, które pozwala wyświetlić wszystkie miejsca w systemie Windows, które umożliwiają automatyczne uruchomienie aplikacji podczas startu systemu. Zapewne większość z nas jest świadoma istnienia katalogu Autostart, który służy właśnie do tego celu. Ale w systemie operacyjnym istnieje całe mnóstwo podobnych miejsc, które są ukryte przed wzrokiem normalnego użytkownika. Takie niestandardowe metody mogą być użyte przez twórców złośliwego oprogramowania aby uzyskać persystencje w systemie - czyli w prostych słowach - przetrwać ponowne uruchomienie komputera.

Stąd też popularność oprogramowania Autoruns, wśród osób zajmujących się bezpieczeństwem. Co jakiś czas znajdowane są jednak nowe metody - które nie są wyświetlane w tym narzędziu.W Windows 10 po zalogowaniu się uruchamiane jest wiele procesów - np. Cortana, która rozpoznaje mowę użytkownika.

Autor nowej metody zadał sobie pytanie: jak te procesy są debugowane podczas ich tworzenia? Jak ich twórcy sprawdzają czy ich działanie jest prawidłowe podczas startu systemu? Dowiedział się, że istnieje specjalne narzędzie, plmdebug, które pozwala na ustawienie trybu debugowego dla wybranej aplikacji. Drążył sprawę dalej. Ta aplikacja ustawiała specjalny, nieznany wcześniej wpis w rejestrze. I to wszystko. Znając lokalizację tego wpisu możemy ustawić go dla wybranej przez nas aplikacji.

3. W poprzednim odcinku omawiałem błąd, który umożliwiał enumeracje użytkowników na serwerze openssh. Podobny błąd istnieje w serwisie AWS Amazona. Tutaj każdy użytkownik ma przypisany swój unikalny identyfikator - nie jest on jednak tajny.

Znając go i używając funkcjonalności AssumeRole możemy sprawdzić czy na danym koncie amazona istnieje użytkownik o podanej nazwie. Dzieje się tak ponieważ amazon zwraca błąd - jeśli nazwa użytkownika będzie niepoprawna. Nie sprawdza przy tym, czy testujemy swoje konto czy konto innego użytkownika. Na pozór takie informacje jak znalezienie prawidłowej nazwy użytkownika nie grożą większymi konsekwencjami. Ale dla sprawnego atakującego są to przydatne informacje. Przecież jeszcze kilka minut temu musiał zgadywać i login i hasło. Teraz login jest znany.

Błędy tego rodzaju są dość powszechne. Weźmy chociażby funkcjonalność resetowania hasła w dowolnym serwisie internetowy. Zazwyczaj aby zresetować hasła użytkownika musimy podać login albo adres email. Jeśli login istnieje w bazie danych wyświetlana jest odpowiednia informacja a my dostajemy wiadomość z dalszymi instrukcjami. Jeśli użytkownika o podanym loginie nie ma w naszym systemie wyświetlamy błąd o nieistniejących danych.

I tutaj spotykają się 2 sprzeczne ze sobą wartości - bezpieczeństwo, które mówi, aby dla istniejącego i nieistniejącego użytkownika wyświetlić tą samą wartość tak aby nie można było sprawdzić czy ktoś o takim loginie istnieje w naszym systemie. Z drugiej jednak strony mamy wygodę użytkownika - jeśli bowiem wyświetlimy mu informację, ze wysłaliśmy do niego maila a on pomylił się w nazwie konta, nie będzie wiedział co się dzieje. Mail nigdy bowiem do niego nie trafi.

4. Tym razem przypomnienie starego jak świat tricku. Ilu z was zdaje sobie sprawę że spora część edytorów tekstu tworzy tymczasowe pliki podczas edycji dokumentów? Dla przykładu Vim - generuje pliki z rozszerzeniem .swp.

W specyficznych okolicznościach może dojść do pozyskania przez atakującego tajnych danych. Wyobraźmy sobie bowiem sytuacje, że administrator edytuje jakiś plik na serwerze produkcyjnym przy użyciu vima. Nie dokończył jednak jego edycji bowiem jego sesja ssh została zerwana. W tym momencie atakujący może pobrać takowy plik przy użyciu przeglądarki - pliki swp bowiem nie są interpretowane przez serwer WWW jako pliki zawierające jakikolwiek plik wykonywalny. W ten sposób może dojść do poznania przez atakującego części kodu źródłowego czy też haseł do baz danych.

Istnieją 2 metody zabezpieczenia przed tego rodzaju atakiem. Pierwsza to globalne zmodyfikowanie miejsca, w którym vim będzie przechowywał pliki tymczasowe. Druga - to ustawienie serwera WWW w taki sposób, aby blokował dostęp do plików .swp

Może warto sprawdzić czy w serwerze produkcyjnym w naszej firmie nie istnieją pliki o takim rozszerzeniu? A jeśli tak to jakie dane one zawierają?

5. Pomału na Youtubie pojawiają się nagrania z zeszłorocznej konferencji PWNing 2017. Można się zapoznać z moją prezentacją na temat bezpieczeństwa różnych klientów VPN. Przedstawiam tam błędy w implementacji komunikacji między procesami a w szczególności pomiędzy interfejsem graficznym a serwisami co prowadzi do błędów podniesienie uprawnień w systemie Windows.

Drugą z ciekawszych prezentacji jest jedna o tytule: Harware hacking, czyli o dwóch takich co chcieli odblokować laptopa”. Panowie Michał Kowalczyk i Sergiusz Bazański poruszyli temat haseł na BIOS.

Dawniej, jeszcze przed czasami, gdy szyfrowało się całe dyski twarde, komputery były chronione poprzez ustawienie hasła na bios. Dzięki takiemu rozwiązaniu - jeśli ktoś ukradł komputer i nie znał jego hasła, nie mógł uruchomić żadnego systemu operacyjnego. Komputer w takim stanie był zatem nieużywalny - co potwierdza cena takich zablokowanych komputerów na różnorakich platformach aukcyjnych, która jest wielokrotnie niższa jeśli porównamy je z cenami komputerów bez takiej blokady. Dla zwykłych bowiem użytkowników takie komputery są bezużyteczne. Oczywiście producent zdawał sobie sprawę, że będzie miał do czynienia ze sporą grupą legalnych użytkowników, którzy po jakimś czasie po prostu zapomnieli swojego hasła. Dla nich zatem wbudował w systemie specjalny backdoor - użytkownik miał możliwość zresetowania hasła. Wyświetlał mu się wtedy długi ciąg znaków, który miał przekazać do suportu technicznego.

Tam weryfikowano czy rzeczywiście jest właścicielem danego komputera i jeśli wszystko się zgadzano - dyktowano kod, który odblokowywał dane urządzenie. W swojej prezentacji autorzy demonstrują jak zrzucili zawartość kości flash, jak ją zanalizowali i w końcu jak udało im się stworzyć działający generator kodów odblokowujących. Interesująca lektura. Polecam.

6. WAF - czyli web application firewall to usługa, która ma chronić nas przed szkodliwymi paylodami wysyłanymi przez użytkowników, tak aby nawet jeśli w naszym kodzie istnieje błąd, nie mógł być on wykorzystany przez atakującego.

Metody tworzenia takich firewallów są różne - jedną z prostszych są zwyczajne wyrażenia regularne, kiedy to w tekście wysyłanym przez użytkownika wyszukujemy specyficznych ciągów znaków, które mogą świadczyć o tym że jest to część ataku a nie prawidłowe żądanie do serwera WWW. Istnieje wiele metod na ominięcie tego rodzaju blokad. Można próbować zmodyfikować ciąg wejściowy - tak aby nie był rozpoznawany przez regexp.

W dawnych czasach wystarczyło zapisanie tekstu raz dużą raz małą literą. Teraz jednak musimy stosować bardziej wyrafinowane techniki. Np. do danych wejściowych dopisywać dodatkowe nieistotne informacje. Ale jak to zrobić aby komenda którą chcemy wykonać nadal działała pomimo dodania do niej nadmiarowych danych? I tutaj na pomoc przychodzą nam niezainicjalizowane zmienne w bashu - czyli takie, które nie posiadają wartości. Są one zatem traktowane jako puste i nie przeszkadzają w wykonywaniu komendy.

Zamiast więc używać komendy cat z nazwą pliku możemy spróbować zapisać ją jako cat$u - gdzie $u to niezainicjalizowana wartość. Prawda że sprytne?

7. Cryptojacking to używanie mocy obliczeniowej użytkownika bez jego zgody w celu pozyskiwania korzyści majątkowych. Najpopularniejszym rodzajem tego ataku jest wstrzyknięcie na zaatakowane strony internetowej specjalnego kodu JavaScript, który wydobywał krypto waluty przez przeglądarki niczego nieświadomych internautów, którzy odwiedzali zarażone tą metodą strony internetowe. Dzisiaj chciałbym jednak opisać inny atak tego rodzaju.

Docker to narzędzie, która umożliwia na tworzenie kontenerów z naszymi aplikacjami. Dzięki temu raz tworzymy kontener który może być następnie dystrybuowany pomiędzy różnymi użytkownikami - i u każdego z nich będzie wyglądał tak samo. Istnieją rejestry takich ogólno dostępnych kontenerów, stworzonych przez różne osoby z Internetu. Dzięki temu jeśli dla przykładu potrzebujemy bazy danych nie musimy tworzyć własnego kontenera a tylko wyszukać go w Internecie, znaleźć jego nazwę i zainstalować na naszym komputerze. Omija nas przy tym cała konfiguracja i babranie się w dokumentacji - szybko, prosto i przyjemnie.

Jednak ma to swoją cenę - jak bowiem rozpoznać, czy przygotowana przez kogoś maszyna wirtualna jest bezpieczna i nie znajduje się w niej nic, co mogło by nam zaszkodzić? W ostatnim czasie wyszedł na jaw proceder nadużywania dockera w celu kopania krypto walut. Zidentyfikowano kilkanaście takich kontenerów, które były skonfigurowane w taki sposób aby w tle uzyskiwać krypto waluty.

Ile można na takim procederze zarobić? Całkiem sporo. Ponad 172 000 $ dolarów. Proszę zauważyć że nie mamy tutaj do czynienia z żadnymi atakami na żadne komputery - wystarczy jedynie spreparować złośliwy obraz a następnie odpowiednio go zareklamować. I to tyle.

8. Jeden z użytkowników serwisu wykop.pl opublikował ostatnio informacje o odkrytym przez siebie błędzie. Mowa tutaj o tabnabbingu. Co to jest? Każdy z nas kojarzy linki czy też odnośniki, które prowadzą do zewnętrznych stron WWW. Standardowo gdy w nie klikniemy - zmienia się obecna strona na której jesteśmy. Ale nie zawsze takie rozwiązanie jest najlepsze - czasami chcemy, aby użytkownik pozostał na naszej stronie a nowa witryna, którą użytkownik chce odwiedzić otworzyła mu się w nowej zakładce.

Aby uzyskać taką funkcjonalność należy dodać specjalny atrybut: target='_blank'. Wtedy kliknięcie powoduje załadowanie treści w nowym oknie. Jednak z tą funkcjonalnością wiąże się jeden wyjątek - nowa otwarta strona może posiadać kod, który umożliwia podmienienie adresu URL witryny, która do niej kierowała. Czyli w przypadku serwisu wykop - po kliknięciu w link nie dość że użytkownik zostanie przeniesiony na daną stronę to także możemy sprawić aby opuścił serwis wykop. Użytkownik noisy przedstawił jak można wykorzystać tą funkcjonalność do stworzenia rozbudowanego ataku phisingowego. Zarejestrował on domenę ssl-wykop.pl, która wyglądała identycznie z oryginalnym serwisem. Tam przedstawił okno logowania a nad nim dodał informację, że użytkownik został wylogowany z serwisu i musi ponownie podać swoje dane do logowania ponieważ zmienił się regulamin serwisu i musi go jeszcze raz zaakceptować.

Prawda że sprytne? Aby obronić się przed tego rodzaju atakiem oprócz atrybutu target blank należy również dodać rel="noopener noreferrer".

9. Czeski badacz bezpieczeństwa postanowił przeskanować cały Internet w poszukiwaniu katalogu .git, który byłby dostępny dla niezalogowanego użytkownika. Skąd ten pomysł? Git to jeden z najpopularniejszych obecnie systemów kontroli wersji. Dzięki niemu, deweloperzy mogą zapanować nad zmianami dokonywanymi w kodzie źródłowy aplikacji, które tworzą. Ale co by się stało gdyby na serwer WWW oprócz aplikacji, wysłać również całe repozytorium gita?

Może do tego dojść ponieważ repozytorium to nic innego jak katalog .git, w którym znajdują się wszystkie dane na temat przechowywanej aplikacji. W wyniku przypadku i niedopatrzenia może zatem dojść do nieumyślnego wysłania tego katalogu na serwer produkcyjny. Następnie atakujący może zlokalizować ten katalog i pobrać wszystkie znajdujące się na nim dane - począwszy od kodu źródłowego aplikacji a skończywszy na danych do bazy danych czy innych serwisów.

Skan całego Internetu zajął prawie 4 tygodnie. Znaleziono prawie 400 000 stron, które posiadały ten katalog. Co niespotykane autor spróbował skontaktować się z autorami tych stron internetowych. Wysłał ponad 90 000 mail. Imponujące liczby i szlachetność autora. A czy na Twoimi serwerze nie ma czasem katalogu .git?

10. Ostatnia wiadomość na dzisiaj. British Airways czyli przewoźnik lotniczy z Wielkiej Brytanii poinformował swoich klientów o potencjalnym wycieku danych. Wszyscy, którzy korzystali ze strony tego operatora albo jego aplikacji mobilnej pomiędzy 21 sierpnia a 5 września mogą być narażeni i jeśli podawaliście tam swoje numery kart kredytowych warto rozważyć ich zablokowanie i wyrobienie nowych.

Podejrzewa się, że w wyniku tego ataku mogło ucierpieć ponad 380 000 klientów. Na razie nie są znane szczegóły techniczne i w jaki sposób uzyskano dostęp do systemów firmy lotniczej.

I to wszystko w tym odcinku. Jeśli ktoś chciałby mnie spotkać na żywo zapraszam na konferencje Security Case Study która odbędzie się 13 i 14 września w Warszawie. Będę na niej opowiadał o potencjalnie niepożądanych aplikacjach które sprawiają że nasz komputer działa coraz wolniej. Jeśli ten materiał Ci się spodobał zapraszam do komentowania i lajkowania. Do zobaczenia za tydzień. Cześć!

Odnośniki

1 2 3 4 5 6 7 8 9 10 11

Timeline: