SteemConnect - Potencjalnie zagrożenia

in #polish5 years ago

Wiele osób uważa SteemConnect za bardzo bezpieczną formę logowania do programów i aplikacji. Po części tak jest, ale wbrew pozorom ten projekt ma parę wad. Dzisiaj omówię jak działa SteemConnect i co może zrobić potencjalny hacker.

Być może są obejścia na te problemy, ja jednak nie wiem jak miałyby wyglądać, więc sam tekst może mieć ogólne błędy.

Autoryzacja

obraz.png

Logujemy się do strony (np. SteemDash) i jesteśmy zalogowani. Ale jak to się dzieje, że strona wie, że się zalogowaliśmy, skoro zrobiliśmy to na SteemConnect, a nie na SteemDash?

Każda strona wykorzystująca SteemConnect ma własny link logowania, który zawiera:

  • Nazwę projektu (na SteemConnect). Jest to konto utworzone na Steem, ale twórca aplikacji nie ma dostępu. W sumie ciężko powiedzieć po co, bo żadnej operacji moje konto nie zrobiło ;) A zapłacić musiałem ...
  • Redirect URL czyli stronę na którą ma SteemConnect wrócić po logowaniu. Jest specjalna lista (tworzona przez programistę) stron na które wrócić może, więc np. do Google.pl domyślnie nie przekieruje. Aby to zmienić twórca musiałby stracić dostęp do swojego konta.
  • Scope czyli uprawnienia. W zależności co chcemy by dane konto mogło robić na serwisie. Im mniej uprawnień tym bezpieczniej i o tym trzeba pamiętać. Warto też zastanowić się czy dana aplikacja wykorzystuje te uprawnienia czy nie.

Po zalogowaniu strona z Redirect URL dostaje trzy rzeczy

  • Username czyli nazwę użytkownika
  • Informację ile czasu token jest aktywny (7 dni domyślnie?)
  • Access Token czyli token autoryzacyjny

Jest to moim zdaniem pierwszy dość poważny problem, że serwer dostaje token i to GETem, a nie POSTem. Potencjalnie w logach serwera WWW można odczytać wszystkie tokeny (ba, może je sam serwer zapisywać, bo kto bogatemu zabroni).

Sam serwer może zrobić dwie rzeczy w zasadzie. Przechować token i go wykorzystywać lub dać go klientowi i zapomnieć. Wydaje się, że drugie rozwiązanie jest lepsze, chociaż nie mamy gwarancji tego, iż serwer usunął te dane ;) Tak więc nie ma MOIM zdaniem bardzo lepszego rozwiązania.

Ok, mam token - co z nim mogę zrobić?

Potencjalnie wszystko na co pozwala (czyli to co pokazuje link). Z ciekawych uprawnień to (nie wszystkie testowałem i mogę się mylić w działaniu [oprócz typowych]):

  • Regeneracja tokenu (czyli może trwać w nieskończoność zamiast 7 dni)
  • Custom JSON. Powiedzmy, że fervi jest użytkownikiem Wise. W takim haker razie może wydawać różne polecenia Wiseowi.
  • Comment Options. Haker może ustawić, że 100% zarobku z postu idzie do niego :)

To są oczywiście najbardziej hakerskie scenariusze. Ale oczywiście głosować na swoje posty (czy flagować) lub spamować może jak najbardziej.

Co robić, jak żyć?

obraz.png

Upewniaj się, że aplikacje do których się logujesz, wymagają mało uprawnień i czy faktycznie je wymagają. Ustawić, by aplikacja wymagała wszystko jest bardzo prosto, ale potem może nas czekać potencjalne kuku.

Należy pamiętać, że alternatywną metodą jest podanie np. posting key, który da się zmienić zmieniając wszystkie hasła. Tak więc SteemConnect mimo różnych wad czy kontrowersji jest bezpieczniejszą metodą. Dodatkowo jeśli twórca nie oszukuje, to dobrze dobrane uprawnienia mogą być skrojone na miarę, a Posting Key zbyt potężny.

Czy były jakieś udane ataki?

Ostatnio jakiś (nie znam szczegółów) problem miał Share2Steem. Jednakże była sprawa Utopiana, w której haker wziął Access Tokeny i rządził kontami użytkowników (nawet moim :P), ogólnie upvotował głupie posty i flagował haejina (ale skutecznie! :P). Tak więc należy pamiętać o tym, że takie rzeczy się zdarzają, bo jesteśmy tylko ludźmi.

Sort:  

"Jak to, Steem Connect nie jest najlepszy?!"
Dobra robota @fervi :)

Zapomniales o najwazniejszym ataku czyli wycieku tokenow (autoryzacyjnych) podczas ataku na utopian.io gdyz utopian zapisywal te tokeny, zamiast po prostu dać im wygasnąć.

No w sumie może źle to napisałem. Natomiast te tokeny 7 dniowe też mogą wyciec i przez 7 dni można robić masakrę :D

Pamiętam jak mój brat logował się na steemit po pijaku i kliknął w coś i mu konto ukradli. Dopiero jak zrobił recovery to odzyskał ale steem już poszło : 0

Posted using Partiko Android

Dobrze napisane. Bezpieczeństwo na pierwszym miejscu!

Dzięki Fervi za wpis :) nawet nie zdawałem sobie sprawy, że steemConnect ma takie wrażliwe punkty

Posted using Partiko Android

Ale dalej jest najlepszą opcją :P Po prostu jak w telefonach - patrz na uprawnienia ;)

Hejka
Fragment "MOIM zdaniem bardzo lepszego rozwiązania" wymiata;)
Ogólnie fajny artukul. Pozdrawiam

Coin Marketplace

STEEM 0.31
TRX 0.11
JST 0.034
BTC 64060.81
ETH 3129.62
USDT 1.00
SBD 4.17