random:press

#019

Lepiej truchło zjadać w lesie
Niż nie być na SCS-ie.

Transkrypcja i źródła

To jest wydanie specjalne podcastu random:press – cyklicznej audycji serwisu randomseed.pl poświęconej bezpieczeństwu technologii informacyjnych, programowaniu maszyn liczących i informatyce śledczej.

Nadajemy z Warszawy, prosto z trasy Żwirki i Wigury biegnącej z centrum do portu lotniczego imienia Fryderyka Chopina.

Dziś jest 13 września, a już od wczoraj w Mieście Stołecznym jak co roku rozpoczął się interdyscyplinarny zjazd S-C-S, czyli ogólnopolskie Studium Przypadków Bezpieczeństwa pod przewodnictwem znanej w kraju i za granicą Fundacji Bezpieczna Cyberprzestrzeń.

Gromko zgromadzeni delegaci z powiatowych kół pentesterskich Mazowsza, a także przedstawiciele dyrekcji komitetów cyberbezpieczeństwa lokalnych szczebli pozostałych regionów debatują w specjalnie na tę okazję przygotowanych pawilonach dyskusyjnych. Pojawiają się plany zwiększenia dostaw narzędzi bezpieczeństwa przez wprowadzenie do branżowego grafiku trzeciej zmiany. Nie wszystkim fachowcom to się jednak uśmiecha, ale muszą zrozumieć głos społeczeństwa, które nawet w zagranicznym serwisie ukośnik z kropką wyraża niezadowolenie. Drożeją bowiem nie tylko węgiel, stal i Bitcoin, ale też usługi oraz narzędzia zapewniające bezpieczeństwo.

W kuluarach tęgie umysły smakują wiedzy i lokalnych wyrobów; mogą nawet zakosztować partii szachów na stoisku prowadzonym przez okręgowe koło inteligenckie. Stali klienci mogą liczyć na obsługę poza kolejnością i –jak zwykle – dobry, rzemieślniczy pentest. Społeczność kolejkowa, która spontanicznie wytworzyła się wokół punktu, świadczy o zwiększającym się popycie na tego typu usługi. Potwierdza to nasze analizy, z których wynika, że na głowę jednego obywatela przypada średnio tylko jedna dwudziesta penetracyjnego testu.

Spekulacje, zwodnicze ceny i ograniczone moce przerobowe to nie jedyne dyskutowane problemy. Obecni na spotkaniach funkcjonariusze RODO z chęcią dopomogą we wszelkich bolączkach i nieścisłościach związanych z przestrzeganiem norm przetwarzania danych. Nieobce są im nawet takie wyjątkowe sytuacje, jak wymiana personaliów na wędliny, serwowane spod lady. Naszych bystrych sokołów ochrony niczym nie da się zaskoczyć.

Poza majstrami kryptografii i inżynierami penetrującymi w zjeździe biorą również udział łowcy owadów (ang. bug hunters), którzy zapowiadają zdecydowaną walkę z imperialistycznymi szkodnikami. Są to zawodnicy w różnym wieku, a w finale CTF zawalczą o krajowy puchar wręczany przez obecnych na miejscu jubilatów – zwycięzców pierwszych edycji, dowiezionych autokarami PKS z dalekiego Radomia, Kołobrzegu i Zawiercia. Tak więc drodzy specjaliści: maszyny, start! Dyscyplina, upór i wiara we wspólne cele branży niech poprowadzą was do zwycięstwa! Jak za czasów jednostek obliczeniowych bez trybu chronionego.

Dla konferujących uczestników, poza uporządkowanym tapetem, przygotowano też konkursy. Przedstawiciele spółdzielni kółek antywirusowych przy wsparciu organów centralnych i związku montażystów API zorganizowali wiele atrakcji. Wygrać można nie tylko narzędzia pracy, ale również ekonomiczne środki transportu. Wystarczy tylko zbierać talony.

Szef instytucji wraz z komisją ekspertów pod przewodnictwem dyrektora magazynu exploitów w randze sztygara liczą na sprawną obsługę wydarzenia, nawet w obliczu naporu klientów (poczty elektronicznej) i komunikatorów, które obsługiwane są testowo w systemie bez-kartkowym. Jednak nawet jeżeli zdarzyłyby się przestoje w obsłudze, do dyspozycji uczestników pozostaje specjalna grupa operacyjna, do której na bieżąco kierowane są zażalenia napływające do działu reklamacji. Wystarczy jedynie wypełnić kwestionariusz.

5.45

„Exim TLS Flaw Opens Email Servers to Remote ‘Root’ Code Execution Attacks”, The Hacker News

W serwisie The Hacker News znajdziemy alarmującą informację o krytycznej usterce bezpieczeństwa w serwerze poczty elektronicznej Exim. Błąd znaleziony w podprogramie odpowiedzialnym za obsługę protokołu TLS pozwala na przemycenie i wykonanie dowolnego kodu przez wysłanie odpowiednio spreparowanego komunikatu SNI. Jeżeli zakończony jest on sekwencją odwróconego ukośnika i znakiem o kodzie zero, dojdzie do przepełnienia bufora, a w rezultacie realizacji instrukcji przekazanych przez napastnika, które mogą okazać się niebezpiecznymi poleceniami.

TLS to skrót od Transport Layer Security – zbioru mechanizmów, które pozwalają w bezpieczny sposób wymieniać dane między komunikującymi się przez sieć procesami, czyli uruchomionymi programami. Dzięki ustalonemu zestawowi protokołów wymiany klucza oraz szyfrowania TLS (który jest rozwinięciem SSL) jest sposobem na szybkie zabezpieczenie kanału komunikacyjnego przed podsłuchiwaniem czy zniekształcaniem danych. Istnieją biblioteki obsługi TLS dla wszystkich popularnych systemów operacyjnych, więc programista musi tylko zmienić wywołania funkcji korzystające ze zwyczajnej łączności strumieniowej (TCP) lub datagramowej (UDP) na odpowiedniki wywołań pochodzące z biblioteki.

Serwer Exim – bardzo popularna bestia, której liczba instalacji przekracza na świecie ponad 5 milionów – to elastyczny w konfiguracji serwer obsługi prostego protokołu przekazywania poczty (ang. Simple Mail Transfer Protocol, skr. SMTP), który określa zasady dialogu między wysyłającym a odbierającym e-maile serwerem. Poza podstawową obsługą TLS-u Exima „nauczono” też jednego z jego rozszerzeń, zwanego właśnie SNI (co jest skrótem od Server Name Indication). Dzięki niemu podłączający się do usługi sieciowej klient może wybrać z jaką nazwą stacji sieciowej (potocznie: hosta) chce nawiązać łączność. Tym sposobem serwis działający na jednym adresie IP może występować w roli usługodawcy dla wielu nazw domenowych i prezentować różne certyfikaty klucza publicznego w zależności od nazwy, np. w pełni dookreślonej nazwy domenowej podanej przez klienta podczas ustanawiania bezpiecznego kanału łączności.

W przypadku omawianego serwera poczty nazwa zwracana przez rozszerzenie SNI jest przetwarzana przez podatny na występowanie błędów kod w samym Eximie. Odpowiednio spreparowany łańcuch znakowy z nazwą hosta będzie mógł w pewnym momencie (po przepełnieniu pamięciowego bufora) nadpisać przestrzeń, w której rezydują polecenia. W przypadku Exima i jego bardzo elastycznej konfiguracji, jest to zadaniem o tyle łatwiejszym, że niektóre z klauzul mogą zawierać wywołania zewnętrznych komend. Nie trzeba więc uciekać się do nadpisywania segmentu kodu czy adresów powrotnych, ale wystarczy wstrzyknąć w odpowiednie miejsce konfiguracji sekwencję poleceń połwokowych do wykonania.

I ciekawostka: Gdy zajrzymy do repozytorium projektu w serwisie GitHub, zobaczymy że poprawka polega na dodaniu warunku zakończenia przetwarzania łańcucha znakowego w funkcji obsługującej odwrócony ukośnik (ang. backslash), gdy pojawi się po nim znak o kodzie zero.

Administratorzy podatnych na występowanie błędu Eximów mogą już pobrać najnowszą, załataną wersję. Istnieje też obejście problemu, ale jest ono mało praktyczne, ponieważ polega na wyłączeniu obsługi TLS.

9.28

„Judge lets Facebook privacy class action proceed, calls company’s views ‘so wrong’”, Reuters

Agencja Reuters podaje, że w ubiegły poniedziałek sędzia federalny przyjął pozew zbiorowy przeciwko Facebookowi, któremu zarzuca się udzielenie podmiotom trzecim nieuprawnionego dostępu do prywatnych danych użytkowników. Chodzi tu m.in. o słynną firmę Cambridge Analytica.

Według sędziego użytkownicy mogą żądać zadośćuczynienia za to, że bez ich zgody dane były przetwarzane w celu osiągania korzyści. Odrzucił on argumenty pozwanego, który twierdził, że przekazywanie danych nie powodowało żadnych wymiernych szkód, ponieważ były to informacje, które użytkownicy i tak przekazywali znajomym.

Osobiście zastanawia mnie różnica w podejściach do tego typu spraw między Europą a Stanami Zjednoczonymi. Mamy znacznie mocniejsze prawa ochrony danych osobowych i mniej kwestii mogą u nas regulować (na korzyść usługodawców) umowy świadczenia usług. Unia Europejska czasem nakłada więc pokaźne kary na duże technologiczne firmy zza oceanu. Z drugiej strony w USA mamy mocno rozwiniętą kulturę (jeżeli można tak to nazwać) pozwów zbiorowych i tam poszkodowani zrzeszają się, aby zawalczyć o to, czego ich pozbawiono lub co utracili. Mimo bardziej „płynnego” systemu prawnego, wydaje się to być bardziej sprawiedliwym sposobem rekompensowania strat, ponieważ ewentualna wygrana trafia rzeczywiście do poszkodowanych, uczestniczących w pozwie. Moim zdaniem jest to system nieco bardziej zorientowany na jednostkę i jej dobrostan.

11.04

„Hong Kong Protestors Using Mesh Messaging App China Can’t Block: Usage Up 3685%”, Forbes

Gdy po konferencji Security Case Study w roku 2014 poproszono mnie o kilka słów komentarza do raportu dotyczącego zagrożeń i trendów w roku 2015 roztoczyłem wizję ludzi organizujących własne, niezależne sieci komputerowe z użyciem urządzeń mobilnych. Z tymi przewidywaniami nieco się pośpieszyłem, bo na początku września b.r. w serwisie Forbes mogliśmy przeczytać artykuł o tym, jak protestujący z Hong Kongu, aby się komunikować, używają specjalnych aplikacji przeznaczonych dla smartfonów, dzięki którym są w stanie tworzyć sieci siatkowe niezależne od operatorów telekomunikacyjnych.

Sieć o topologii siatki, zwana też siecią typu mesh lub siecią meshową, to sieć komputerowa, w której węzły wymieniające informacje mogą łączyć się ze sobą bezpośrednio i w sposób niehierarchiczny (potencjalnie każdy z każdym), ewentualnie hierarchia jest wyznaczana dynamicznie, zależnie od możliwości sieci w danym momencie. Minusem takiej aranżacji jest oczywiście trudna do przewidzenia szerokość pasma czy podatność na zakłócenia (dane mogą trafiać do węzłów o słabych parametrach trasowania, np. urządzeń zbyt obciążonych, wadliwie funkcjonujących czy oddalających się od innych). Z drugiej strony układ taki sprawdza się, gdy rozpatrujemy jego odporność na długotrwałe przerwy w łączności.

Konkretna implementacja meshowej sieci wykorzystywana przez protestujących bazuje na aplikacji dla smartfonów produkowanej przez amerykański start-up Bridgefy. Wykorzystuje ona łączność Bluetooth do przesyłania komunikatów między oddalonymi węzłami. Każdy telefon z taką usługą zamienia się w router, który pomaga innym w wymianie informacji. Poza wiadomościami wysyłanymi między użytkownikami można tam korzystać również z opcji rozgłoszeniowej, tzn. komunikatów kierowanych do grup, a nawet wysyłanych do wszystkich znajdujących się w pobliżu.

Poza niewątpliwymi, pluralistycznymi zaletami tego typu komunikacji, zastanawia mnie, czy wykorzystany protokół radiowy nie jest łatwy do zakłócenia, a po drugie, jak wygląda ochrona przed atakami typu DDoS, w których napastnik zacząłby rejestrować własne węzły w celu zakłócania bądź celowego opóźniania komunikacji.

W krótkim wywiadzie przeprowadzonym z jednym z twórców aplikacji Forbes pyta m.in. o motywację dla jej powstania. Okazuje się, że nie była ona związana z protestami, lecz sytuacjami losowymi, w których zanika konwencjonalna łączność komórkowa (huragany, trzęsienia ziemi, powodzie itp.).

13.42

„Thieves Used Audio Deepfake of a CEO to Steal $243,000”, Motherboard

Ciekawy i futurystyczny nieco news znajdzimy w serwisie Motherboard. Pojawiła się tam relacja dotycząca pierwszego (wydaje się) wyłudzenia znacznej kwoty z użyciem sztucznych sieci neuronowych, którymi posłużono się do wygenerowania głosu człowieka – i to nie przypadkowego człowieka, ale prezesa pewnej firmy.

Intruzi z powodzeniem wprowadzili w błąd pracownika (również nie przypadkowego, bo dyrektora zarządzającego), domagając się zlecenia pilnego przelewu na rachunek bankowy zlokalizowany na Węgrzech. Oczywiście była to rozmowa głosowa, a głos brzmiał tak samo, jak głos szefa. Identyczny był ton, akcent i inne charakterystyczne cechy mowy. W efekcie na konto cyberprzestępców trafiło 240 tysięcy dolarów.

Nasuwa się pytanie: jak w przyszłości będziemy chronili się przed tego typu oszustwami? Czy przestaniemy ufać zmysłom i zwrócimy się w stronę podpisanej cyfrowo komunikacji tekstowej? A może zaczniemy cyfrowo podpisywać audio- i wideogramy?

11.45

„Weakness in Intel chips lets researchers steal encrypted SSH keystrokes”, Ars Technica

A teraz informacja dla tych, którzy lubią trzymać dane w prawdziwych chmurach, czyli systemach składających się z wielu fizycznych maszyn połączonych wysokowydajnymi mechanizmami wymiany danych.

Serwis Ars Technica podaje, że w procesorach Intela znaleziono kolejne usterki bezpieczeństwa, których korzenie sięgają roku 2011. Wtedy właśnie producent wprowadził do jednostek obliczeniowych technologię DDIO (skr. od Data-Direct I/O), czyli takie DMA na sterydach. Dzięki niej urządzenia peryferyjne mogą bezpośredno wymieniać dane z ostatnią pamięcią podręczną CPU. Dzięki pominięciu głównej pamięci procesora dochodzi do znacznego skrócenia czasu obsługi operacji i zmniejszenia wymagań dotyczących poboru mocy.

Okazuje się jednak, że w pewnych warunkach potencjalny napastnik jest w stanie wykorzystać mechanizm DDIO, żeby poznać charakter strumieni danych wymienianych z urządzeniami. Mogą nimi być na przykład fragmenty komunikacji sieciowej, ale również wciśnięcia klawiszy. W przypadku pojedynczych serwerów usług da się nad tym zapanować, stosując odpowiednią izolację i dbając o bezpieczeństwo samego systemu, ale problematyczne wydają się systemy połączone w środowiskach chmurowych, gdzie administrator jest w stanie wykradać dane należące do innych maszyn, jeżeli tylko korzystają z RDMA, czyli bezpośredniego dostępu do pamięci między osobnymi maszynami.

Odkrywcy usterki zademonstrowali skuteczność ataku posługując się oprogramowaniem, które odczytało (a właściwie odgadło) frazę szyfrującą wprowadzaną w celu odbezpieczenia klucza SSH w systemie połączonym z ich stacją z użyciem RDMA. Warto zauważyć, że nie mamy tu do czynienia z konwencjonalnym podsłuchiwaniem komunikacji, lecz atakiem bazującym na pomiarze czasu przebywania danych w bardzo, bardzo, bardzo chwilowym buforze. Właśnie z powodu tej szybkości można stwierdzić, jakie wciśnięcia następowały po sobie, biorąc pod uwagę układ klawiszy i czasy ich wciskania, które są pochodną odległości. W tym konkretnym przypadku badacze skorzystali z techniki zwanej PRIME+PROBE. Najpierw wpłynęli na zawartość pamięci podręcznej prowadząc odczyty z wcześniej przygotowanej przestrzeni pamięci operacyjnej, a następnie dokonywali pomiarów czasowych dla tej samej przestrzeni, gdy użytkownik wpisywał hasło.

Osoby odpowiedzialne za znalezienie podatności na zagrożenie zapowiedziały, że skupią się teraz na sprawdzaniu, czy taki bocznokanałowy atak da się przeprowadzić bez dodatkowego wykorzystywania RDMA.

17.24

„Why Clojure?”, The Clean Code Blog

Nie byłbym sobą, gdybym nie wtrącił jakiejś informacji o współczesnych dialektach języka Lisp. Oto w blogu Wujka Boba znajdziemy wpis zachwalający język Clojure i wróżący mu świetlaną przyszłość i popularność podobną do tej, którą miał język C przed wieloma laty.

Clojure to Lisp działający pod kontrolą JVM, a programistyczny ewangelista Wujek Bob zaczyna swój felietonowy materiał od tego, że po 40 latach w końcu zdecydował się bardziej wsiąknąć w jeden z dialektów najelegantszego wg. Richarda Stallmana języka programowania i uznać go za ulubiony.

Co go urzekło? Oszczędna składnia wyrażeń i oszczędna ich gramatyka. W zasadzie jest to jedyna cecha, którą wprost nazywa i twierdzi przy tym, że to wystarczy.

Gdy przyjrzymy się Lispom, zauważymy, że ich kod wyrażany jest jednokierunkowymi listami, a na poziomie zapisu są to zbiory wyrażeń umieszczane w nawiasach. Dzięki temu w Lispach (a więc i w Clojure) możemy korzystać z precyzyjnych funkcji transformujących kod źródłowy zanim zostanie on skompilowany i uruchomiony. Pomaga w tym cecha zwana homoikonicznością: drzewo składniowe w pamięci ma taki sam układ, jak kod źródłowy napisany przez programistę, a poza tym do jego wyrażania stosuje się struktury danych obsługiwane przez język.

Ale Lispy to nie tylko elastyczna składnia, lecz również elastyczne tworzenie warstw abstrakcji. Funkcje są tu jednostkami pierwszej kategorii, a więc można je przekazywać jako argumenty i zwracać jako wyniki obliczeń prowadzonych przez inne funkcje. Poza tym w samym Clojure nacisk kładzie się na zwłoczne przetwarzanie sekwencji (czyli abstrakcyjnych kolekcji o następczym interfejsie dostępu), niezmienność danych (operowanie na wartościach) i obsługiwaną przez mechanizmy języka obsługę przetwarzania współbieżnego. Wygląda ona inaczej, niż w językach, w których występują konwencjonalne zmienne, ponieważ programista nie musi zabezpieczać programu przed nim samym, a dokładniej przed sytuacjami zakleszczeń wykonywania czy wyścigów w dostępie do danych.

Myślę, że Wujek Bob nie polubiłby Lispów 10, 20 czy 30 lat temu. Musiało stać się to teraz z uwagi na rozwój sprzętu i systemów. Lisp nie jest językiem oszczędnym: wymaga czasu CPU dla Garbage Collectora, kod bywa często wczytywany jako dane, a potem (w locie) kompilowany i wykonywany, zaś dialekty z niemutowalnymi danymi potrzebują więcej pamięci (nawet przy współdzieleniu strukturalnym).

To tyle w dzisiejszym, specjalnym odcinku prosto z jednej ze scen konferencji Security Case Study. Dziękuję publiczności i organizatorom za możliwość wystąpienia w takich okolicznościach i wśród ludzi o takich umysłach.

Pozdrawiam!

A custodianami dzisiejszego odcinka byli Marcin M., Mirosław M. i Piotr Sz.

Jesteś w sekcji

comments powered by Disqus