Zatrzymanie planety

Niedawno napisałem, że planeta weszła na dach. Jest to nawiązanie do pewnego dowcipu, który w jednej z późniejszych odpowiedzi zacytowałem. Dowcip najbardziej kojarzę z ostatniego odcinka drugiego sezonu serialu Przystanek Alaska pod tytułem Slow dance i jest tam genialnie podany.

Jednak do rzeczy. Planeta Joggera została uruchomiona prawie równo dziewięć lat temu. Już wtedy Planet Venus, czyli oprogramowanie, o które jest oparta, wyglądało na nierozwijane. Ale znałem je i były pakiety w Debianie, więc uznałem, że jest to jakoś utrzymywane i łatwo dostępne. Liczyłem, że w tak zwanym międzyczasie znajdę jakąś rozwijaną alternatywę. Albo sam wprowadzę zmiany.

W międzyczasie zauważyłem, że są problemy z kodowaniem, które zwalałem na obsługę UTF-8 w Pythonie 2. Nawet robiłem jakieś podejście do naprawy, bez sukcesu. A na przepisywanie na Pythona 3 nie miałem czasu.

Fast forward. Zgłoszenie błędu pewnie jest bliższe prawdy. Problem nie jest z UTF-8, a z emoji. Jednak nie w tym rzecz. Silnik działa na Pythonie 2, który jest nierozwijany od lat. Debian, na którym jest to aktualnie uruchomiony, jest prehistoryczny, bez wsparcia bezpieczeństwa. Zaraz wychodzi kolejna wersja i będzie mnie to uwierać jeszcze bardziej. Nie jest to coś, co chcę mieć uruchomione na serwerze, nawet w kontenerze.

Próbowałem napisać własny prosty parser feedów w Pythonie. W końcu robiłem to parę razy. Nie jest to niby trudne, ale… Formatów feedów jest wiele. I czym innym jest pobranie informacji z feedu, co robiłem dotychczas, a czym innym pobranie HTML. W grę wchodzą błędy bezpieczeństwa (XSSy i podobne atrakcje), konieczność poprawy linków na bezwzględne. Format niby jest standardowy i jest do tego feedparser, ale różni się znacznie między feedami blogów z których składa się planeta. Last but not least, jeden feed to nie zbiór feedów, jakiś cache by tu się przydał.

Wspominałem, że popularna i polecana biblioteka do tzw. sanityzacji HTML w Pythonie bleach, nie jest już rozwijana? Nadal działa, ale… No i nie korzysta się z tego tak po prostu. Co z tego, że zrobię sanityzację linków do obrazków, jeśli zamiast zdjęcia wyświetli się kod HTML. Wygląda to fatalnie. Mogę usunąć te tagi i wtedy po prostu nie będzie zdjęć. Też średnio.

Kolejna sprawa: ruch. O ile planeta ma stały ruch – i przyznaję, że sam często korzystam w ten sposób – to jest on niewielki.

Ostatnia sprawa: czas. Po tym, jak znowu spędziłem z godzinę na szukaniu alternatyw i kolejną na próbach napisania własnego parsera stwierdzam, że nie mam czasu. OK, nauczyłem się nieco o parsowaniu feedów i sanityzacji w Pythonie. Znalazłem alternatywny soft w Ruby, nierozwijany od raptem 5 lat, czyli w porównaniu – nówka. No ale nie jestem przekonany do niego. I nie mam teraz czasu na zabawę.

Co wchodzi w grę dalej:

  • Uruchomienie planety na innej domenie, niezależnie od wybranego silnika. Rozwiązuje – w sumie tylko mój – problem z XSS itp. Nawet mam domenę i serwer. Mógłbym luźniej podejść do sanityzacji. Tylko nadal, to będzie słaby, niebezpieczny soft. I trzeba go napisać.
  • Prosta planeta, gdzie będą tylko tytuły i daty wpisów. Może tekstowy fragment opisu, bez formatowania HTML. Przyznaję, że ma to swoje zalety, jeśli chodzi o pisanie kodu i jest mi blisko do tego rozwiązania. Nadal, trzeba napisać, przetestować, uruchomić.
  • Ktoś z większym zapałem przejmuje planetę. W sumie oczywista oczywistość, cała konfiguracja i wszystkie potrzebne pliki są dostępna na GitHub.

Tymczasem w najbliższym czasie Planeta przestanie aktualizować wpisy. Nie wyłączam zupełnie, bo jest tam trochę linków do blogów. Nie podjąłem decyzji o wyłączeniu (w końcu finalnie to statyczny plik HTML, więc co tu wyłączać). Jako ołtarzyk – zostaje.

Hasło Alert

CERT Orange uruchomił nową usługę o nazwie Hasło Alert. W zasadzie idea jest podobna jak Have I Been Pwned, ale stwierdziłem, że przetestuję. Zawsze jest szansa, że będą mieli dostęp do lokalnych wycieków, które na HIBP nie trafiły. Czy tak jest w istocie? Nie wiem, jest wyłącznie informacja o autorskim rozwiązaniu. Nie ma żadnych informacji o źródłach ani ewentualnej współpracy z innymi podmiotami.

Pierwsza rzecz, która rzuca się w oczy to podtytuł Sprawdź czy Twój mail nie wyciekł. W tytule strony hasło, w podtytule email, przypuszczam, że osoby mniej zorientowane mogą się pogubić. Tym bardziej, że nie widzę by było to wytłumaczone gdzieś dokładniej. Oczywiście chodzi o pary email i hasło w wyciekach. Ani sam email, ani samo hasło nie zostaną zgłoszone. Wynika to z zasady działania serwisu, o czym za chwilę. Czyli podajemy adres email, a dostajemy hasła, które wyciekły z serwisów dla konta z podanym tym adresem email.

To co mi się podoba, to fakt, że sprawdzenie, czy dany adres email pojawił się w wycieku wymaga dostępu do konta email sprawdzanego adresu. Aby przeszukać wycieki, trzeba kliknąć linka z potwierdzeniem zlecenia wyszukania. Same wyniki również są odsyłane mailem. Zapobiega to możliwości sprawdzania wycieków dla kont, które nie należą do nas. Zdecydowany plus, jeśli chodzi o prywatność.

Z samymi wynikami jest już znacznie gorzej. Porównując z HIBP, wyników jest mało. I nie chodzi tu wyłącznie o różnego rodzaju kompilacje wycieków. Z czego to wynika? Nie wiem. Może chodzić o zawężenie czasowe[1], może chodzić o dostęp do źródeł.

Jeśli chodzi o wyniki, to otrzymujemy zamaskowane hasło i datę. W haśle widoczna jest pierwszy i ostatni znak, oraz ilość liter, przy założeniu, że każda gwiazdka odpowiada jednej literze. Jest też jakaś data. Niestety nie jest wyjaśnione czy jest to data pobrania danych do wycieku, data publikacji wycieku, data pozyskania zbioru czy jeszcze jakaś inna. Zdecydowanie przydałoby się tu wyjaśnienie. Tym bardziej, że wyciek z LinkedIn z roku 2012, który został opublikowany w 2016, podawany jest jako… styczeń 2023.

Przede wszystkim brakuje jednak źródła wycieku, co czyni usługę w zasadzie bezwartościową. Zalecenia są słuszne, ale skoro nie wiadomo, do którego serwisu hasło zmienić, to mało przydatne w praktyce. A zmiana wszystkich haseł, bo gdzieś jakieś podobno wyciekło to chyba overkill. No chyba, że ktoś używa tego samego hasła w wielu miejscach, ale wtedy ma większy problem. I nie potrzebuje sprawdzać, czy wyciekło, tylko od razu może zmienić hasła ustawiając różne dla różnych serwisów.

Ponieważ korzystam z managera haseł, postanowiłem – mimo braku podanego źródła – sprawdzić, które moje hasła wyciekły. I tu zaskoczenie, bo w większości przypadków nie udało mi się znaleźć pasujących kandydatów. Nawet biorąc pod uwagę tylko pierwszy i ostatni znak, bez ilości liter. Dziwne, bo i niektóre wycieki świeże, i manager haseł przechowuje nie tylko bieżące hasło, ale także poprzednie. Czyli nawet gdybym zmienił hasło po informacji o wycieku, to powinienem mieć je zapisane w managerze.

Niestety nie wiem, czy jest to błąd po stronie systemu, błąd w wycieku, czy jednak zmieniłem hasło więcej niż raz. I bez źródła danych nie jestem w stanie tego określić.

Podsumowując – Hasło Alert to ciekawa inicjatywa, ale w tej chwili wg mnie mało użyteczna. Przede wszystkim brakuje źródła wycieku, ale przydało by się też nieco więcej objaśnień. Liczę, że wkrótce pojawią się zmiany w tym zakresie.

[1] Najstarsza data, którą widziałem to 2019.

Facebookowe blokady

Niedawno Facebook najpierw zablokował wpis CERT Polska dotyczący scamu za pośrednictwem reklam na Facebooku. Potem usuwał posty, które odwoływały się do zablokowanego wpisu. A także blokowano profile, które zamieszczały te posty np. zablokowany został profil Sekuraka.

Bez dwóch zdań wtopa, w dodatku komunikat przy blokadzie strony Sekuraka jest zupełnie od czapy (jakie podszycie się?) i nie tak powinno to wszystko zadziałać, ale… spróbuję pobawić się w adwokata diabła i poszukać jasnych stron. Dla jasności: raczej nie korzystam z FB, od lat.

  • Facebook zna problem oszustw i ma jakieś narzędzie do wykrywania podejrzanych treści. Raczej nie działa ono w reklamach (hrhrhr), przynajmniej nie skutecznie, ale coś jest. Nieoczywiste w porównaniu z innymi platformami.
  • Blokady są automatyczne i szybkie. Zaleta, bo ogranicza zasięgi faktycznych postów z naruszeniami. W przypadku jakiegokolwiek ręcznego blokowania czas byłby wielokrotnie dłuższy.
  • Można odwołać się od decyzji i wygląda, że jest to rozpatrywane szybko i sensownie.
  • Działanie jest konsekwentne, tj. zablokowana została nie tylko pierwotna treść zidentyfikowana jako szkodliwa, ale i późniejsze odniesienia do niej.

Automatyczna klasyfikacja treści nie jest trywialna, szczególnie, jeśli opisują one zabronione rzeczy, w dodatku z przykładami. Zresztą wiadomo, że błędne klasyfikacje, w obie strony, zawsze będą się zdarzały. Nasunął mi się się pomysł whitelistowania profili, bo oczywiste jest, że profile związane z IT security będą pisały o nadużyciach w tym zakresie ale… takie wyjątki musiałyby istnieć dla każdej branży. No i whitelista profili jest niebezpieczna, bo w przypadku włamania i przejęcia dostępu do profilu pozwoliłaby bezkarnie zamieszczać/podbijać szkodliwe treści.

Ciekawe czy Facebook w jakikolwiek sposób odniesie się do tej sytuacji, wprowadzi korekty w mechanizmie blokad? Jeszcze gdyby w reklamach zaczęli walczyć ze scamem choć w połowie skutecznie jak z opisami zagrożeń…

I oczywiście jest to kolejne przypomnienie o zagrożeniach płynących z życia na platformie, nad którą nie ma się kontroli i na której obecność nie zależy od widzimisię jej administratora czy moderatora. Warto zapewnić własny, możliwie niezależny kanał dotarcia do użytkowników (lista mailowa, RSS) i go propagować. Żeby jeszcze tylko ludzie chcieli z niego korzystać…