Daft Social – anti social network

Dziś dowiedziałem się o serwisie Daft Social. Przyznaję, że pomysł jest interesujący. Jest to minimalistyczne medium społecznościowe. Czy też antyspołecznościowe. Wielu rzeczy nie ma. Na przykład nie ma możliwości interakcji z treścią. Nie tylko przez innych, ale nawet sam autor nie ma możliwości ani edycji, ani usunięcia zamieszczonego wpisu. Nie ma tytułu, nie ma hashtagów. Nie ma dokładnego czasu zamieszczenia wpisu – jest tylko data. Z rzeczy które są – jest dostępny RSS.

Tworzenie wpisów czy też cała interakcja z platformą także jest minimalistyczna. Wpisy tworzymy poprzez… wysyłanie maili, a cała treść wpisu jest w jego temacie. Body maila nie ma już żadnego znaczenia. Można zamieszczać linki do stron oraz obrazki przez podanie URLi. Nadal w temacie maila.

Niestety, brakuje też security. Jeśli chodzi o zabezpieczenia, to mamy tylko losowego maila, na którego wysłanie powoduje dodanie wpisu. Czyli pojedynczy, stały sekret. Bez możliwości jego zmiany, bez 2FA. Bez możliwości przypomnienia – choć tu podanych jest parę tricków. Bez możliwości ograniczenia, z jakiego adresu email mają być przyjmowane maile.

Mimo wszystko pomysł mi się spodobał. Na tyle, że założyłem konto na Daft Social. Nie wiem jeszcze czy i jak będę korzystał. Póki co planuję wysyłać tam powiadomienia o nowych wpisach na blogu, podobne do tych, które trafiają na Blablera.

Ubuntu – płatne bezpieczeństwo

Ubuntu LTS kojarzy się nam z dystrybucją stabilną i bezpieczną, prawda? Otóż niezupełnie tak jest. Bowiem nie wszystkie pakiety w Ubuntu LTS (np. 20.04 LTS czy 22.04 LTS) otrzymują aktualizacje bezpieczeństwa. Przynajmniej nie za darmo. Od strony technicznej, które pakiety otrzymują aktualizacje (main), a które niekoniecznie (universe) przeczytacie w artykule na nfsec.pl, podobnie jak o genezie szumu wokół Ubuntu i repozytorium ESM (Expanded Security Maintenance).

Zarys sytuacji

Zamiast na stronie technicznej, skupię się na stronie etycznej i prawnej. Sytuacja wygląda bowiem na dość skomplikowaną. Tytułem wprowadzenia niezbędny skrót. Ubuntu w ramach Ubuntu Pro daje między innymi dostęp do repozytorium ESM, które zawiera łatki bezpieczeństwa do tych pakietów z repozytorium universe, do których zostały one przygotowane przez opłaconych przez Ubuntu maintainterów, zamiast przez maintainerów ze społeczności. Osoby fizyczne (personal) mogą bezpłatnie korzystać z Ubuntu Pro na maksymalnie 5 systemach. Natomiast firmy (enterprise) powinny zapłacić za dostęp, albo… nie korzystać z załatanych pakietów. Jest jeszcze trzecia kategoria – edukacja (education, research, and academia). Też powinni kupić, ale dostaną zniżkę w niejawnej wysokości.

Abonament na bezpieczeństwo

Mam mocno mieszane uczucia w stosunku do tego podejścia. Z jednej strony nie ulega wątpliwości, że maintainerzy, którzy wykonali na zlecenie pracę, której nikt nie chciał podjąć się za darmo, powinni otrzymać wynagrodzenie. Z drugiej strony, jest to podcinanie gałęzi, na której się siedzi i z której Ubuntu wyrasta. Bowiem maintainterzy społeczności mogą dojść do wniosku, że nie ma sensu robić za darmo tego, za co inni otrzymują wynagrodzenie. To z czasem może przełożyć się na gorsze wsparcie wolnego oprogramowania, w szczególności dystrybucji opartych o pakiety deb.

Kolejny aspekt to pewnego rodzaju szantaż w stosunku do użytkowników. Niby system i oprogramowanie są za darmo, ale jak chcesz mieć bezpiecznie, to zapłać… Płatne bezpieczeństwo to skomplikowane zagadnienie. Co powiecie na abonament na ABS, poduszki powietrzne czy pasy bezpieczeństwa w aucie? Albo jeszcze lepiej: hamulce w wersji zwykłej i pro, te drugie zapewniające krótszą drogę hamowania? I wszystko to rzecz jasna w formie abonamentu, czyli wszędzie jest zamontowane, ale trzeba zapłacić, by było aktywne.

Opłata za udostępnianie

No i ostatnia sprawa – czy Ubuntu może w ogóle brać pieniądze za udostępnianie oprogramowania na wolnych licencjach? Ograniczę się do licencji GPL. Zarówno wersja druga, jak i trzecia GPL wprost mówi, że akt udostępnienia oprogramowania może być zarówno darmowy, jak i płatny. Czyli Ubuntu może żądać wynagrodzenia za udostępnienie oprogramowania.

Jednak jednocześnie GPL zabrania zmiany licencji[1], a licencjonobiorca nabywa wszystkie prawa. W szczególności prawo do dalszej dystrybucji. Czyli czy dowolna osoba może skorzystać z Ubuntu Pro w wersji personal, pobrać z repozytorium ESM pakiety lub kod źródłowy i udostępnić je na swoim serwerze każdemu chętnemu? IANAL, ale wygląda na to, że tak. Przynajmniej te pakiety/patche wydane na licencji GPL.

O sprawie zaczęło się robić głośno dopiero teraz i sam jestem ciekaw, czy jakoś bardziej się to rozwinie i jak się ostatecznie skończy. Trzeba pamiętać, że Ubuntu Pro to znacznie więcej, niż tylko dostęp do załatanych pakietów z repozytorium universe w ramach ESM. To także możliwość aktualizacji kernela bez konieczności restartu systemu, support 24/7. Być może lepszą strategią dla Canonical byłoby udostępnienie patchy społeczności za darmo? Tym bardziej, że z prawnego punktu widzenia raczej są na przegranej pozycji, przynajmniej w kontekście licencji GPL.

[1] Pomijam tu przypadki oprogramowania wydawanego równolegle na kilku licencjach. Wówczas można wybrać, którą licencję się wybrało i modyfikować tylko kod na tej wybranej, dystrybuując go zgodnie z jej – i tylko jej – postanowieniami.

Połam to jeszcze raz

Niedawno sekurak.pl zorganizował kolejny konkurs z łamaniem hashy. Tym razem dowiedziałem się o nim przypadkiem – ot, wpadło powiadomienie z Discorda, które akurat zauważyłem. Rzuciłem okiem, jest link do wpisu, są hashe, więc warto spróbować, bo do wygrania był kolejny dostęp do Akademii Sekuraka 2024.

Miałem w zasadzie gotowca na podstawie poprzedniego wpisu i writeupu, więc liczyłem, że kilka sztuk wpadnie. I faktycznie, nie zawiodłem się. Opisane wcześniej metody pozwalały złamać 7 do 9 hashy. Skąd rozbieżność? Zależy jak liczyć i jaki się utworzyło dedykowany słownik.

Zajmijmy się trzema hashami, z którymi mógł być problem. Pierwszy to db13ca089eb4860896567399a30558f2c1fc69e7:sekurak.academy.
Przyznaję, że zwyczajnie miałem szczęście. W słowniku zagościł bowiem ciąg sekurakacademy, a OneRuleToRuleThemAll zrobiło resztę. Aż się zdziwiłem, czemu to wpadło, więc sprawdziłem.

Sprawdzenie, która reguła spowodowała dopasowanie robi się zgodnie z opisem z dokumentacji hashcata poprzez dodanie parametrów

--debug-mode=1 --debug-file=matched.rule

Okazuje się, że OneRuleToRuleThemAll ma takie cudo jak

l i7.

Przekładając na bardziej zrozumiały język: zamień wszystkie litery na małe i wstaw kropkę po siódmym znaku. Chwilę po godzinie dziewiętnastej odesłałem 8 złamanych hashy.

Kolejne hasło, które mogło sprawić trudność to złożenie nie dwóch, ale trzech wyrazów. Czułem, że będzie, bo tego typu pojawiały się w poprzednich edycjach. Schemat był zawsze ten sam – dwa wyrazy oddzielone krótkim spójnikiem. Sprawdziłem, ile jest krótkich spójników w moim słowniku. Samych dwuznakowych było aż 428. Uznałem, że to zbyt wiele. W dodatku większość się nie nadawała – zz czy yy po prostu mi nie pasowały.

Postanowiłem spróbować z dwuliterowymi. Ręcznie przejrzałem wszystkie dwuliterowe słowa, wybrałem 25, które wydały mi się najbardziej prawdopodobne, zapisałem do pliku. Dorzuciłem jeszcze 3 jednoliterowe spójniki: i, o, a. Na koniec dodałem 19 wyrazów trzyznakowych. Tak powstał plik laczniki.txt.

Stwierdziłem też, że dla pełnego słownika języka polskiego i tak wyszłoby wiele kombinacji. Hasła z poprzednich edycji były umiarkowanej długości. Postanowiłem wziąć na warsztat tylko wyrazy od 2 do 9 znaków. Nazwałem go 29_slownik_all_nopl.txt. Liczył 845 tys. wierszy.

Krótkim skryptem w Pythonie utworzyłem słownik z wszystkimi kombinacjami wyrazów z 29_slownik_all_nopl.txt oraz 57 łączników. Wynikiem był spory, ale nadal akceptowalny słownik zawierający 48 mln wierszy.

Potem już standardowo – operacja na dwóch słownikach. Pierwszym był 29_slownik_all_nopl_laczniki.txt zaś drugim 29_slownik_all_nopl.txt. Tak udało się złamać 61d54fe02ce6edcde2f5762f2677b3c83d876417:trudnotozgadnac
i kwadrans po dwudziestej pierwszego dnia odesłałem 9 haseł.

Wersja z tworzeniem słownika na dysku nie jest może najefektywniejszym podejściem do haseł zbudowanych z trzech słów, ale jak widać wystarczyła.

Warto w tym miejscu odnotować, że słowo to pojawiało się wcześniej i gdyby człowiek pomyślał, to mógł przyjąć, że będzie i tym razem. Cóż, po fakcie każdy mądry.

Ostatnie hasło jest ciekawą i pouczającą sprawą. Na discordowym kanale pojawiła się informacja, że już dwie osoby mają 9 haseł, w dodatku gdyby połączyć ich odpowiedzi, to będzie komplet, czyli wszystkie hasła z konkursu zostały złamane. Dopuszczałem możliwość, że coś przeoczyłem, bo jak wspominałem do konkursu przystąpiłem w pośpiechu. Na innym kanale Patryk (jego writeup z łamania haseł znajdziecie na tutaj – polecam) też pochwalił się złamaniem 9 hashy.

Po krótkiej rozmowie czego komu brakuje i ustaleniu, że faktycznie chodzi o nas, Patryk rzucił podpowiedzią, że brakujący hash jest podobny do już złamanego, ale po polsku. Cóż, wielkiego wyboru nie było i wkrótce, po dosłownie czterech próbach wykonanych ręcznie, do złamanych dołączył:
283d5cb401e9de6a2e56f97166a639479fb86aee:akademiasekuraka
Komplet haseł odesłałem o 20:23 drugiego dnia konkursu.

Zarówno słowo akadamia jak i sekurak oczywiście miałem w słowniku. Zabrakło wersji z deklinacją. Mam zatem pewne wnioski dotyczące słownika na przyszłość…

UPDATE: Artykuł z oficjalnym rozwiązaniem konkursu i statystykami rozwiązań.