Exploit na ZenMate VPN ujawniał szczegółowe informacje o ofierze i jej prawdziwy adres IP

30 maja, 2018
VPN

Trzy i pół miliona użytkowników znanego dostawcy tunelowania ZenMate VPN było przez niecałą dobę narażonych na całkowite przejęcie konta. Jak to możliwe? Okazało się, że aplikacja zawiera poważny błąd w zabezpieczeniach pozwalający na ujawnienie identyfikatora uwierzytelnienia i tajnego tokenu, za pomocą którego można zalogować się na konto ofiary i zmienić hasło. To tylko połowa złych wiadomości. Druga połowa jest nie mniej drastyczna, ponieważ badaczowi udało się dodatkowo w prosty sposób pobrać informacje o ofierze, czyli:

  • Informacje o ID konta.
  • Adres e-mail ofiary.
  • Listę wszystkich używanych adresów e-mail (także tych używanych poprzednio).
  • Informacje o subskrypcji i rodzaju konta.
  • Kraj, z którego pochodzi ofiara.
  • Szczegółowe informacje o urządzeniu, z którego się logowano.
  • Prawdziwy adres IP ofiary.
  • Całkowitą deanonimizację podczas korzystania przez użytkownika z VPN.

To wszystko było możliwe dzięki luce w rozszerzeniu do przeglądarek pozwalającej na atak XSS, czyli w tym przypadku wstrzyknięcie do pliku „manifest.json” domeny, do której odwoływało się rozszerzenie i pobierało złośliwy kod.

Cześć manifestu rozszerzenia ZenMate VPN wygląda tak:

...trimmed for brevity…
{
  "js": [
    "scripts/page_api.js"
  ],

  "matches": [
    "*://*.zenmate.com/*",
    "*://*.zenmate.ae/*",
    "*://*.zenmate.ma/*",
    "*://*.zenmate.dk/*",
    "*://*.zenmate.at/*",
    "*://*.zenmate.ch/*",
    "*://*.zenmate.de/*",
    "*://*.zenmate.li/*",
    "*://*.zenmate.ca/*",
    "*://*.zenmate.co.uk/*",
    "*://*.zenmate.ie/*",
    "*://*.zenmate.co.nz/*",
    "*://*.zenmate.com.ar/*",
    "*://*.zenmate.cl/*",
    "*://*.zenmate.co/*",
    "*://*.zenmate.es/*",
    "*://*.zenmate.mx/*",
    "*://*.zenmate.com.pa/*",
    "*://*.zenmate.com.pe/*",
    "*://*.zenmate.com.ve/*",
    "*://*.zenmate.fi/*",
    "*://*.zenmate.fr/*",
    "*://*.zenmate.co.il/*",
    "*://*.zenmate.in/*",
    "*://*.zenmate.hu/*",
    "*://*.zenmate.co.id/*",
    "*://*.zenmate.is/*",
    "*://*.zenmate.it/*",
    "*://*.zenmate.jp/*",
    "*://*.zenmate.kr/*",
    "*://*.zenmate.lu/*",
    "*://*.zenmate.lt/*",
    "*://*.zenmate.lv/*",
    "*://*.zenmate.my/*",
    "*://*.zenmate.be/*",
    "*://*.zenmate.nl/*",
    "*://*.zenmate.pl/*",
    "*://*.zenmate.com.br/*",
    "*://*.zenmate.pt/*",
    "*://*.zenmate.ro/*",
    "*://*.zenmate.com.ru/*",
    "*://*.zenmate.se/*",
    "*://*.zenmate.sg/*",
    "*://*.zenmate.com.ph/*",
    "*://*.zenmate.com.tr/*",
    "*://*.zenmate.pk/*",
    "*://*.zenmate.vn/*",
    "*://*.zenmate.hk/*"
  ],

  "run_at": "document_start"
}...trimmed for brevity...

Autorowi udało się wstrzyknąć zarejestrowaną domenę „zenmate.li” i umieścić na niej złośliwy kod ujawniający dane o ofierze:

// Make call to Content Script to get all user data
__zm.getData(function(results) {
    console.log(
        results
    );
});

Dodając poniższą linijkę, można wyłączyć ofierze połączenie VPN:

// Turn off VPN
__zm.toggle(false);

Problem z bezpieczeństwem dotyczył wyłącznie użytkowników, którzy korzystali z rozszerzenia do przeglądarki, a nie z aplikacji zainstalowanej w systemie operacyjnym.

Luka została zgłoszona 28 maja o 2:15 nad ranem. Producent o 2:38 potwierdził problem. Aktualizacja rozszerzenia została upubliczniona o 21 wieczorem:

May 28, 2:15am – Disclosed issue via security contact email address.

May 28, 2:38am – Confirmed by vendor.

May 28, 9:00pm – Patch issued for Chrome and Firefox extensions.

Autor przygotował stronę internetową, na której można sprawdzić podatność, jeśli ktoś jeszcze nie zaktualizował wtyczki. Nie mamy możliwości sprawdzenia, ale według słów badacza ujawnione zostaną szczegółowe informacje o połączeniu, a sieć VPN zostanie wyłączona. Tak jak na tym wideo:

VPN w przeglądarce czy w systemie?

Zdecydowanie w systemie, ponieważ wtedy szyfrowany jest cały ruch sieciowy. Rozszerzenie zainstalowane w przeglądarce zaszyfruje wyłącznie ruch sieciowy przechodzący przez protokół HTTP/S na portach 80, 8080 i 443 — i w zależności od dostawcy VPN-a — połączenie będzie korzystało z serwerów DNS dostawcy usługi VPN lub zewnętrznego dostawcy, który dowie się, jakie strony odwiedza użytkownik. To kolejna pułapka czyhająca na nieroztropnych, którzy chcieliby ukryć się przed światem. VPN-y nie powstały w celu prywatności, ale by zwiększyć bezpieczeństwo.

Jeżeli mielibyśmy zarekomendować jakiegoś dostawcę, to chyba najlepszym wyborem jest NordVPN. W najkorzystniejszym 2-letnim planie NordVPN oferuje ponad 4000 serwerów wyjściowych z 62 krajów na całym świecie. Jest więc w czym wybierać. Osobom, które chciałyby skorzystać z oferty NordVPN polecamy nasz link partnerski, z którego po każdym zakupie otrzymamy niewielki procent.

Aplikacje klienckie NordVPN są dostępne na niemal wszystkie systemy operacyjne: Windows, macOS, iOS, Apple, Linux i wiele więcej. NordVPN wspiera protokół P2P (nie wszystkie VPN-y to robią) więc bez przeszkód możesz pobierać legalne torrenty. Oprócz tego NordVPN korzysta z własnego serwera DNS, czyli żaden inny węzeł komunikacyjny DNS nie będzie logował odwiedzanych stron internetowych. I co najważniejsze, firma NordVPN zarejestrowana jest w Panamie i nie przechowuje ŻADNYCH logów — nie ma takiego obowiązku.

VPN chroni właściciela urządzenia przed nieostrożnością lub nieroztropnością podczas logowania się do usług internetowych. Zabezpieczy m.in. przed podatnością KRACK na Wi-FI oraz pozwali ominąć restrykcje na usługi bądź strony internetowe nałożone przez rządowe dyktatury.

Niedawno ZenMate VPN był bohaterem innego artykułu. Niestety w takim samym kontekście, czyli problemów z bezpieczeństwem. Warto się poważnie zastanowić, czy nie zmienić dostawcy.

Picture of Adrian Ścibor

Adrian Ścibor

W ramach działań związanych z cyberbezpieczeństwem odpowiada w AVLab za przeprowadzanie testów rozwiązań ochronnych przed zagrożeniami. Opracowuje strategie oraz narzędzia, które pomagają w ochronie danych i systemów przed cyberatakami. Współuczestnik międzynarodowej grupy non-profit AMTSO, która zrzesza ekspertów IT.
Picture of Adrian Ścibor

Adrian Ścibor

W ramach działań związanych z cyberbezpieczeństwem odpowiada w AVLab za przeprowadzanie testów rozwiązań ochronnych przed zagrożeniami. Opracowuje strategie oraz narzędzia, które pomagają w ochronie danych i systemów przed cyberatakami. Współuczestnik międzynarodowej grupy non-profit AMTSO, która zrzesza ekspertów IT.

PODZIEL SIĘ:

guest
1 Komentarz
najstarszy
najnowszy oceniany
Inline Feedbacks
View all comments

Wyrażam zgodę na przesłanie oferty drogą telefoniczną przez IT Partners security sp. z o.o. z siedzibą Katowicach ul.Padereskiego 35 na podany przeze mnie adres e-mail zgodnie z ustawą z dnia 10 maja 2018 roku o ochronie danych osobowych (Dz. Ustaw z 2018, poz. 1000) oraz zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO).

Wyrażam zgodę na przesłanie oferty drogą mailową przez IT Partners security sp. z o.o. z siedzibą Katowicach ul.Padereskiego 35 na podany przeze mnie adres e-mail zgodnie z ustawą z dnia 10 maja 2018 roku o ochronie danych osobowych (Dz. Ustaw z 2018, poz. 1000) oraz zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO).

[ninja_tables id=”27481″]