Signal – znikające wiadomości nie zawsze znikają

Grandalf

Bardzo aktywny
Członek Załogi
Moderator
Dołączył
26 Maj 2015
Posty
19145
Reakcje/Polubienia
55679
Od czasu rewelacji Snowdena trwa wielki boom na bezpieczne komunikatory. Kilka z nich zyskało sporą popularność, ale jak pokazują problemy jednego z nich, nawet te dobre mogą nie ustrzec się wpadek.

Gdy chcesz mieć pewność, że nikt nie podsłucha twoich rozmów lub też nie przeczyta przesyłanych przez ciebie wiadomości i plików, nie ma potrzeby sięgania po szpiegowskie narzędzia. W teorii wystarczy szyfrowanie całej komunikacji między urządzeniami nadawcy i odbiorcy oraz by komunikaty w postaci nierozszyfrowanej nie były dostępne po żadnej ze stron komunikacji. Te właściwości oferuje swoim użytkownikom Signal.

Signal jest jedną z najpopularniejszych aplikacji komunikacyjnych. Dostępna jest ona niemal na wszystkich platformach (telefony z Androidem i iOS-em), jak również systemach komputerowych (Windows, MacOS, Linux). W wielu kręgach Signal szybko zyskał status najbezpieczniejszego komunikatora. Gwarantuje on poufność informacji poprzez szyfrowanie wiadomości „end-to-end”. Dodatkowe rozwiązania bezpieczeństwa to rzeczywiste usuwanie lokalnej kopii wiadomości oraz możliwość tworzenia samoistnie kasujących się wiadomości („self-destroy”). Cecha ta pozwala na ustawienie czasu, po którym wiadomość jest usuwana po obu stronach komunikacji.

Ta wiadomość ulegnie autodestrukcji za 6.. 5… 4…
Funkcja tworzenia samoznikających wiadomości jest wykorzystywana przez osoby obawiające się, że telefon może zostać skradziony bądź przechwycony przez niewłaściwe osoby. Z tego powodu Signal cieszy się dużą popularnością w środowisku dziennikarzy, którzy dbają o poufność swoich źródeł informacji. Dobra implementacja sprawia, że czat i dzienniki (logi) są czyszczone i nigdzie nie pozostaje ślad po wiadomości. Jednak nie ma technologii bez błędów.

W tym obszarze w ostatnim czasie twórcom Signala (Open Whisper Systems) przytrafiło się kilka wpadek, które pokazują, jak trudno jest zaimplementować samoznikające wiadomości.
  • W niektórych przypadkach znikające wiadomości nie działały zgodnie z oczekiwaniami użytkownika, tzn. nie były usuwane po ustalonym czasie (dotyczy implementacji aplikacji na urządzenia mobilne). Wielokrotna weryfikacja tej funkcji przez
    Zaloguj lub Zarejestruj się aby zobaczyć!
    pokazała, że czasami (zwłaszcza w przypadku długich konwersacji) wiadomości były usuwane tylko na jednym z urządzeń. Problem dotyczył wiadomości wysyłanych tuż przed 22 maja. Twórcy Signala poinformowali, że błąd został już usunięty (stan na 8.06.2018 roku).
1528480742020-redacted.png-580x368.jpg

  • Na komputerach MacOS domyślne ustawienia aplikacji powodują, że nawet wiadomości z ustawionym parametrem usuwającym je po ustalonym czasie mimo to pojawiają się w aplikacji i na pasku powiadomień systemu operacyjnego. Powiadomienia zawierają informacje o nadawcy oraz treść wiadomości. O błędzie poinformował na
    Zaloguj lub Zarejestruj się aby zobaczyć!
    . Okazuje się, że dane są przechowywane na dysku i mimo kasowania ich w aplikacji pozostają dostępne na poziomie systemu operacyjnego. To powoduje, że komponent aplikacji, jakim jest powiadomienie na pasku narzędzi, ma dostęp do wiadomości. Wszystkie dane komunikacji w Signalu są przechowywane w bazie danych SQLite. Wiadomości nie są tam kasowane i mogą być dostępne na poziomie dostępu do bazy danych oraz możliwe do odtworzenia w późniejszym czasie. Ten błąd także został już usunięty.
1525868233912-Screenshot-2018-05-09-at-75106-AM.png-580x405.jpg

Warto przypomnieć, że nie jest to pierwsze zastrzeżenie dotyczące poprawności implementacji kluczowych funkcji aplikacji Signal.

W maju
Zaloguj lub Zarejestruj się aby zobaczyć!
o ujawnieniu wielu błędów w wersji stworzonej na komputery (dotyczy implementacji na wszystkie systemy operacyjne). Początkowo
Zaloguj lub Zarejestruj się aby zobaczyć!
, która umożliwia atakującemu umieszczenie dodatkowego formularza w aplikacji Signal i pozyskiwanie wrażliwych informacji. Szybko opublikowano aktualizację eliminującą ten błąd, jednakże już po kilku dniach kolejne badania ujawniły znacznie groźniejsze luki w Signalu. Okazało się, że nadal istnieją podatności, które
Zaloguj lub Zarejestruj się aby zobaczyć!
złośliwego kodu na komputerze ofiary. Błąd pojawił się 1 kwietnia bieżącego roku wraz z kolejną aktualizacją aplikacji.

Kolejne dni przyniosły następne niepokojące odkrycia.
Zaloguj lub Zarejestruj się aby zobaczyć!
, która umożliwiała atakującemu wykonanie na komputerze ofiary zdalnego kodu (RCE – Remote Code Execution) poprzez wysłanie specjalnie przygotowanej wiadomości (
Zaloguj lub Zarejestruj się aby zobaczyć!
). Kiedy ofiara odebrała wiadomość, złośliwy kod był wykonywany automatycznie, bez konieczności interakcji z użytkownikiem. Przygotowany PoC exploit wykazał, że w ataku tym można było wykraść rozmowy użytkownika (jako zwykły tekst) i wysłać do atakującego jako wiadomość. Atak niszczył całkowicie poufność komunikacji – bez konieczności łamania szyfrowanych wiadomości umożliwiał poznanie całej korespondencji w postaci jawnego tekstu. Pokazano również, że poprzez atak tego typu możliwe jest pozyskanie funkcji skrótów haseł NTLMv2 (poświadczenia logowania do systemu Windows).

Screenshot-2018-6-10-Hackers-Reveal-How-Code-Injection-Attack-Works-in-Signal-Messaging-App-580x309.png

Niektóre z błędów nie były inherentną cechą samej aplikacji, lecz były związane z frameworkiem Electron, z którego korzystają twórcy Signala. Z tego względu część badaczy jednoznacznie
Zaloguj lub Zarejestruj się aby zobaczyć!
, uznając, że bazuje ona na niezbyt bezpiecznym rozwiązaniu, jakim jest Electron.

Warto zauważyć, że już w październiku 2016 roku
Zaloguj lub Zarejestruj się aby zobaczyć!
, iż funkcja usuwania wiadomości nie działa w systemach iOS (problem został rozwiązany dopiero w wersji 2.11 aplikacji w czerwcu 2017 roku).

Każdą odkrytą podatność poddawano analizie, która wykazała, że niektóre z nich pojawiały się dopiero w ostatnich wersjach aplikacji, co może świadczyć o problemach z analizą jakości i bezpieczeństwa implementowanych zmian. Twórcy, rozwijając aplikację, dodając kolejne funkcje, zapominają, że mogą popsuć coś, co dobrze działa, i naprawiając jeden element aplikacji, niszczą inny. Obecnie poprawki do aplikacji są wydawane tuż po odkryciu błędów, a każdy użytkownik powinien je natychmiast zainstalować na swoim Signalu.

Opisane błędy świetnie pokazują, że nawet koncepcyjnie świetny protokół komunikacji może mieć poważne problemy w warstwie implementacji. Zapewne na jakości kodu Signala odbija się bardzo nieliczny zespół pracujących nad nim programistów. Nie oznacza to jednak, że należy Signala porzucić dla innych rozwiązań. Warto zauważyć, że wszystkie popularne komunikatory cierpiały na podobne przypadłości na pewnym etapie swojego rozwoju – oprogramowanie bez błędów nie istnieje, a jeśli gdzieś błędów nie odkryto, to zapewne niewystarczająco długo ich szukano.
Zaloguj lub Zarejestruj się aby zobaczyć!
 
Ostatnia edycja:

Grandalf

Bardzo aktywny
Członek Załogi
Moderator
Dołączył
26 Maj 2015
Posty
19145
Reakcje/Polubienia
55679
Jak można było zdalnie odczytać wiadomości z komunikatora Signal z powodu traktowania tekstu jako kodu HTML. Opis i prezentacja dwóch exploitów: CVE-2018-10994 i CVE-2018-11101

 

OXYGEN THIEF

Bardzo aktywny
Członek Załogi
Administrator
Dołączył
26 Maj 2010
Posty
35578
Reakcje/Polubienia
24602
Miasto
Trololololo

spamtrash

Bardzo aktywny
Zasłużony
Dołączył
11 Styczeń 2014
Posty
4275
Reakcje/Polubienia
5690
Miasto
To tu to tam....
Tu byl sobie post, ale @Kamelka ma pretensje ze jestem "ich ekspertem do wszystkiego". Wiec juz nie ma.
 
Ostatnia edycja:

spamtrash

Bardzo aktywny
Zasłużony
Dołączył
11 Styczeń 2014
Posty
4275
Reakcje/Polubienia
5690
Miasto
To tu to tam....
Tu byl sobie post, ale @Kamelka ma pretensje ze jestem "ich ekspertem do wszystkiego". Wiec juz nie ma.
 
Ostatnia edycja:
Do góry