Pytanie:
Czy wyświetlenie pozostałych ponownych prób hasła stanowi zagrożenie bezpieczeństwa?
Ahmet Arslan
2019-01-16 14:11:53 UTC
view on stackexchange narkive permalink

Niektóre witryny wyświetlają pozostałą liczbę ponownych prób hasła, gdy wprowadzam nieprawidłowe hasło więcej niż dwa razy. Na przykład wyświetlenie, że do zablokowania mojego konta pozostały 3 próby. Czy to niebezpieczne z punktu widzenia bezpieczeństwa?

Należy wziąć pod uwagę, że może to łatwo ujawnić, czy w witrynie istnieje nazwa użytkownika.Może to być niepożądane, jeśli nazwy użytkowników to e-maile, a witryna jest czymś osobistym, na przykład foot-fetish.com Możesz tego uniknąć, zwracając fałszywy numer dla nieistniejących kont
Czy hakerowi byłoby tak nieprawdopodobnie trudno policzyć liczbę nieudanych prób przed otrzymaniem wiadomości o zablokowanym koncie?Zgodnie z tą logiką powinieneś zapytać, czy wyświetlenie komunikatu „Konto zablokowane” nie stanowi zagrożenia dla bezpieczeństwa.
@MonkeyZeus Ale po wyświetleniu liczby haker wie, kiedy zatrzymać, zanim konto zostanie zablokowane, a nieudana próba zostanie zauważona.Następnie mogą poczekać, aż właściciel się zaloguje i zresetuje licznik.
@BlackJack Niekoniecznie.Gdyby użytkownik wykonał 2 próby tuż przed podjęciem pierwszej próby przez hakera, to naprawdę mam nadzieję, że nie sądzą, że pojedyncza awaria skutkuje zablokowaniem konta.W każdym razie OP nie wspomniał o żadnym modelu zagrożenia, więc otwarte domysły, takie jak ten, naprawdę nic nie robią ...
Dlaczego nikt nie wziął pod uwagę, że liczba ponownych prób może być oparta na rozpoznaniu adresu IP lub urządzenia?
@Nightwolf Też myślałem, zamiast nazwy konta.
Nie blokuj kont, blokuj adres IP, który powoduje nieudane próby dostępu.[fail2ban] (http://www.fail2ban.org) jest tam twoim przyjacielem.
@paj28 Nie sądzę, aby to rozwiązało problem, o którym wspomniałeś.Wszystko, co robi, to rozszerzyć problem na każdy możliwy adres e-mail (o ile atakujący może stwierdzić)
nie nie nie ... NIE blokuj adresów IP dla logowania do WITRYNY.SSH?Pewnie.Ale wiele firm / szkół / kompleksów mieszkalnych / hoteli / itp. NAT wykonuje całą swoją wewnętrzną przestrzeń za pośrednictwem jednego adresu IP, a możesz zablokować mnóstwo niezrzeszonych użytkowników, blokując je przez IP.
@nightwolf, ponieważ jest to okropny pomysł, który jest albo trywialnie do przezwyciężenia (np. Jeśli jest zrobiony przez plik cookie), albo może prowadzić do odmowy usługi przeciwko komuś (na przykład identyfikator urządzenia na podstawie adresu mac) lub całej masie osób (adres IP).
@RobMoir Praktyka blokowania adresu IP może działać w celu ochrony przed próbami brutalnej siły poprzez blokowanie adresu IP na 5 minut.Wyświetlanie liczby dostępnych prób przed tymczasową blokadą wydaje się całkowicie uzasadnione, podobnie jak pozostały czas banowania.Jeśli uprawniony użytkownik otrzyma nadużywane IP, otrzyma co najwyżej 5 minut odmowy, a następnie będzie mógł kontynuować.To oczywiście zależy od modelu zagrożenia.
@Nightwolf Rozumiem to.Ale jak rozwiązujesz problemy, które wskazaliśmy Angelo i ja?Mógłbym w trywialny sposób zablokować około 7500 osobom korzystanie z Twojej usługi przy niewielkim wysiłku, jeśli blokujesz na podstawie adresu IP.
@RobMoir Więc moją sugestią jest po prostu zauważ, że obecnie istnieje blokada czasowa i wymagane jest uwierzytelnianie dwuskładnikowe (łącze e-mail i hasło / telefon komórkowy i hasło), aż do wygaśnięcia blokady czasowej.
Przeciwnik może po prostu sprawdzić liczbę ponownych prób, wybierając losowego innego użytkownika i ewentualnie inny adres IP.Jest bardzo prawdopodobne, że większość użytkowników mimo wszystko osiągnęła maksymalną liczbę ponownych prób, ponieważ wylogowaliby się dopiero po zalogowaniu. Jeśli „wyciek” tych informacji naraziłby system na zagrożenie, miałbyś kłopoty, niezależnie od tego, czy je wyświetlisznie.
Osiem odpowiedzi:
Sean Werkema
2019-01-16 21:52:42 UTC
view on stackexchange narkive permalink

Blokowanie kont to po pierwsze zły pomysł. Może się wydawać, że zwiększasz bezpieczeństwo swojej organizacji, powstrzymując „złych ludzi”, którzy „odgadują” hasła przy użyciu brutalnej siły ataki, ale co tak naprawdę rozwiązałeś? Nawet przy takiej polityce i doskonałej bazie użytkowników, która nigdy nie popełnia błędów w zabezpieczeniach, osoba atakująca może przeprowadzić atak typu „odmowa usługi” na Twoją organizację, wielokrotnie używając hasła „aaa” do blokowania kont użytkowników krytycznych. Zastanów się, co się stanie, jeśli osoba atakująca otrzyma kopię listy nazw użytkowników dla całego działu IT: nagle samo IT - organizacja, która w przeciwnym razie mogłaby odblokować innych użytkowników - zostaje całkowicie zamknięta.

Zawsze rozważ model zagrożenia przed wdrożeniem polityki. „Zły facet” zdeterminowany, by skrzywdzić Twoją organizację, znajdzie alternatywne wektory ataku. Twoja polityka lokautu nie zrazi nawet aktora państwowego (takiego jak Rosja, Chiny czy NSA); zdeterminowany haker po prostu znajdzie inne sposoby obejścia tego problemu (np. socjotechnika); i tylko zaszkodzi legalnym użytkownikom twojej usługi, bez względu na to, jak nisko lub wysoko ustawisz licznik blokady.

Morał z tej historii: Nie blokuj kont. Zamiast tego , zrób to, co Apple robi z iPhonem: każda próba logowania podwaja opóźnienie logowania, tak że po kilkunastu nieudanych próbach musisz odczekać godzinę pomiędzy kolejnymi próbami. To wystarczająco długo, aby uniemożliwić „złym facetom” wykonywanie ataków siłowych, ale wciąż wystarczająco krótkie, aby legalny użytkownik mógł spędzić tę godzinę, zastanawiając się, jakie jest jego hasło i wpisując je poprawnie po obiedzie - lub kontaktując się z IT i przepraszająco prosząc o pomoc . (Podobnie, zasady „zalewania” można często wdrożyć na poziomie adresu IP w zaporze, a nie tylko na poziomie konta użytkownika w oprogramowaniu, jeśli obawiasz się, że dedykowany napastnik próbuje brutalnie wymusić wiele różnych kont .)

A jeśli nie blokujesz kont, nie musisz mieć licznika - ani wyświetlać go.

[ zobacz także: tę doskonałą odpowiedź na podobne pytanie ]

Solidna rada.Chociaż nadal nazywam to blokowaniem kont, jest to tylko z krótkim limitem czasu
Zgadzam się z tym w przypadku implementacji typu „zablokuj i zapomnij”, ale krótkotrwałe blokady (automatycznie odblokowują się ponownie po kilku minutach) mogą być przydatne w przypadku ataków siłowych ograniczających szybkość.
Chyba że możesz sobie pozwolić na ciągły aktywny monitoring 24/7/365 przez żywych ludzi dla twojej służby - wystarczająca ilość żywych ludzi, aby poradzić sobie z najgorszym scenariuszem nawet o 3 nad ranem w Boże Narodzenie - Twoja realizacja jest_ jakąś formą ustawieniai-zapomnij-to, a zatem nadal nie powinien używać blokad kont.I to prawie wszystkie dostępne usługi.
I nie zapominaj, że niektórzy z nas są * zobowiązani * przez zestaw jeszcze bardziej szalonych praw, aby wymusić blokady w przypadku nieudanych prób logowania.Jest powód, dla którego nawet NIST zawiera klauzulę blokady „powinien” (hojnie wysoka przy 100 próbach).Ponieważ najczęściej to rząd wymaga od nas lokautów.
Ale czy powinieneś mieć wyświetlacz informujący użytkownika o tym, jak długo będzie opóźnienie logowania przy następnej próbie?
Chciałbym zobaczyć captcha dla użytkownika, który wykonał wiele nieudanych prób logowania.Powinien powstrzymać większość nadużyć.
Stopniowe wydłużanie czasu blokowania jest rozsądnym rozwiązaniem na urządzeniu fizycznym.Ale nadal nie należy robić tego nawet na koncie, do którego można uzyskać dostęp przez Internet.Atakujący może wysyłać próby podania hasła nawet wtedy, gdy konto jest zablokowane, a za każdym razem, gdy blokada wygaśnie, uprawniony użytkownik będzie miał tylko krótki czas, w którym będzie mógł się zalogować, zanim atakujący spowoduje ponowne zablokowanie.Zamiast tego blokuj adresy IP i prefiksy, jeśli wiele adresów w prefiksie zostało zablokowanych.
Ten atak DoS typu „aaa” jest interesująco specyficzny.Tak się składa, że nie masz prawdziwej historii takiego ataku, prawda?Może wskaźnik odniesienia, abym mógł spojrzeć w górę?Bardzo chciałbym o tym poczytać.
@MichaelEricOberlin: Anegdotycznie, mieliśmy przypadek jednego użytkownika ze stale zablokowanym kontem.Po wielu godzinach spędzonych na badaniu okazało się, że jest to współpracownik / nemezis użytkownika, który robił to na jego złość.Nie dotyczyło to całej firmy, ale nie wymaga też umiejętności eksperta, aby zablokować kogoś, kogo chcesz.
Czy ta sama zasada blokowania nie działa w przypadku Apple, gdzie można skutecznie podnieść licznik blokady, dopóki ludzie nie będą mogli się zalogować przez dłuższy czas?Może nie na stałe, ale nadal ma wpływ na odmowę usługi, nie?
W przypadku systemu online podwojenie czasu blokady nie * naprawdę * pomaga zbytnio.Bycie zablokowanym z całym działem IT przez kilka dni jest wystarczająco irytujące, ale nie jest też takie trudne powtarzanie ataku w coraz dłuższych odstępach czasu, nadal utrzymując swój zespół w zamknięciu mniej więcej na czas nieokreślony.
@kasperd blokada mogła być powiązana z konkretnym adresem IP, a nie połączona z kontem, prawda?Po prostu odrzucaj ruch tego typu z tego źródła, zamiast wchodzić z nim w interakcję.
Blokujemy konta, na których pracuję, ale korzystamy również z usługi blokowania określonych urządzeń i adresów IP, aby zapobiec opisanej tutaj sytuacji ... lub przynajmniej zapobiec jej w sposób, na którym nam zależy.Dotyczy to tylko kont zewnętrznych, które logują się do świadczonej przez nas usługi, a nie kont wewnętrznych pracowników.Konta wewnętrzne można łatwo zresetować i zbadać tutaj.Chodzi jednak o to, że istnieją usługi, które mogą blokować podejrzane adresy IP i urządzenia, więc blokowanie nie powinno być powszechnie obniżane.
(1) System bezpieczeństwa, który blokuje konta bez „magicznej kuli” dostępu (np. Logowanie do konsoli nigdy nie jest blokowane, ponieważ serwer jest fizycznie zabezpieczony) jest oczywiście zasadniczo uszkodzony.Powinniśmy więc założyć, że nawet jeśli zły (lub złośliwy) użytkownik zablokuje konta personelu IT, i tak będzie miał sposób, aby się do niego dostać.Tak więc, jak mówią [Flater] (https://security.stackexchange.com/q/201566/34757#comment404075_201596) i [Jasper] (https://security.stackexchange.com/q/201566/34757#comment404086_201596):czy nie blokowanie pracowników IT na godzinę jest naprawdę tak samo złe?… (Ciąg dalszy)
(Ciąg dalszy)… (2) Wydaje mi się, że twoje ostatnie zdanie nie ma większego sensu.Jeśli podwoisz opóźnienie logowania po każdej nieudanej próbie, nadal będziesz śledzić nieudane logowania.Fakt, że przechowujesz * 2 ^ n * zamiast * n *, nie czyni go mniej licznym.
@SeanWerkema Jeśli opóźnienie logowania jest zbyt duże i dochodzi do ataku typu „odmowa usługi”, tak wiele żądań będzie czekało w kolejce, że serwer nie będzie już mógł przyjąć nowego żądania.Czy to nie jest możliwe?
@Andrew Mój komentarz sugerował blokowanie adresów IP (aw niektórych przypadkach prefiksów).Ale zdecydowanie nie odrzucaj ruchu.Należy nadal odpowiadać odpowiednim komunikatem o błędzie, po prostu nie próbuj sprawdzać nazwy użytkownika ani hasła przed wysłaniem komunikatu o błędzie, jeśli IP klienta znajduje się w zablokowanym zakresie.
Podwojenie czasu logowania jest lepsze niż bezpośrednie blokowanie kont, ale nadal jest to odmowa usługi.Radzenie sobie z podwajającym się czasem logowania nie jest tak naprawdę niedogodnością dla przeciwnika, który automatyzuje proces fałszywego logowania.
„aktor państwa narodowego (jak Rosja, Chiny czy NSA)” - ciekawy zbiór * narodów *.
Jeśli chodzi o administratorów DoS, konta te mogą być chronione w inny sposób, np.na białej liście adresów IP firmy.
@Scott: Używałem pustego hasła roota z tą teorią.Skonfigurowałem bezpieczny port, aby zdalne logowanie jako root było po prostu niemożliwe.
Blokady na poziomie IP @kasperd będą miały wpływ na osoby korzystające z VPN w celu uzyskania dostępu do Twojej usługi (otrzymuję to regularnie, ponieważ regularnie korzystam z VPN i jest to bardzo irytujące).
Pamiętam, że w liceum dzieciaki blokowały się nawzajem, odgadując niewłaściwe hasło.Ktoś sprytnie zablokował nauczyciela, więc nie mógł odblokować kont.Jestem pewien, że niektórzy zrobili to celowo, aby mieć wymówkę, aby nie pracować, chociaż przypuszczalnie dojrzałość powinna się zwiększyć wraz z wejściem ludzi do pracy.
@LoganPickup VPN nie ma z tym nic wspólnego.Problem polega raczej na dwóch innych rzeczach: ** 1. ** Być może wybrałeś dostawcę, który ma wielu agresywnych klientów.** 2. ** Być może wybrałeś dostawcę, który używa NAT.
@northerner Jakie to ma znaczenie, jeśli wzrosła dojrzałość?Mówimy o scenariuszu, w którym każdy w Internecie może cię zaatakować.A gdzieś w internecie można znaleźć przynajmniej jedną osobę, która nie jest dojrzała, a może nawet kogoś, kto jest po prostu nikczemny.
Z tego właśnie powodu zawsze ostrzegałem przed blokadą kont.Są nie tylko uciążliwe dla użytkowników, którzy nie logowali się od jakiegoś czasu i nie pamiętają, której odmiany hasła użyli, ale co ważniejsze (z punktu widzenia bezpieczeństwa), tworzą poważny wektor DoS.Mój przyjaciel stworzył kiedyś aplikację internetową z agresywną polityką blokowania (wbrew mojej radzie).Aby doprowadzić mój punkt do domu (i zadzierać z moim przyjacielem), zablokowałem mu dostęp do jego własnej aplikacji, używając tylko jego adresu e-mail i wielu fałszywych haseł.
Nienawidzę stale wydłużających się limitów czasu.Jeśli są używane, potrzebują pewnego limitu, w przeciwnym razie nadal masz odmowę usługi, jeśli tylko dla jednego użytkownika.
Silver
2019-01-16 15:24:42 UTC
view on stackexchange narkive permalink

To zależy od mechanizmu blokady. Jeśli nieprawidłowe dane logowania zostaną zresetowane po pewnym czasie ORAZ zablokowane konto nie zostanie odblokowane, pokazanie licznika może pomóc atakującemu w niezablokowaniu konta. Jednak wykwalifikowany napastnik określi z góry zasady blokowania i weźmie to pod uwagę podczas odgadywania hasła. Więc wpływ jest ograniczony.

Również poleganie na tym w celu ochrony mechanizmu logowania nie ma sensu. Powinieneś mieć przyzwoitą politykę haseł i pasującą politykę blokowania. Jeśli zasada dotycząca haseł jest silna, osoba atakująca będzie musiała odgadnąć wiele razy, zanim będzie dobrze. Jeśli zablokujesz konto po 20 próbach, masz niewielkie szanse na włamanie.

Musisz zadać sobie pytanie: jaka jest korzyść z pokazania tych informacji prawdziwemu użytkownikowi? Często ten problem z blokadą występuje, ponieważ liczba prób jest ustawiona zbyt mała. 3 lub 5 to typowe wybory. NIST (obecnie niedostępny z powodu zamknięcia rządu, więc nie ma jeszcze bezpośredniego odniesienia) sugeruje mniej niż 100 prób.

NIST ma rację: pomyśl o haśle, którego żaden napastnik nie odgadnie w 3 próby, ale które zgadną w 100 próbach. Wszyscy napastnicy używają różnych słowników i podejść. Jeśli hasło nie wytrzymuje 100 prób, można je złamać, wykonując mniejszą liczbę prób - chociaż jest to mniej prawdopodobne. Dlatego dobra polityka haseł jest koniecznością.

Dodam odniesienia NIST, gdy witryna zostanie ponownie uruchomiona. Troy hunt ma kilka dobrych postów na blogu, które podsumowują hasła i mechanizmy logowania. Jest również fanem wytycznych NIST.

Szukasz specjalnej publikacji NIST 800-63, którą normalnie można zobaczyć tutaj (łącze do odpowiedniej sekcji): https://pages.nist.gov/800-63-3/sp800-63b.html#throttle Oczywiście, ponieważ podjęli szczególny wysiłek, aby przełączyć ten serwer w tryb konserwacji zamiast po prostu odejść (narzekać), wtedy będziesz musiał użyć Wayback Machine, aby go teraz zobaczyć: https://web.archive.org/web/20181223021935 / https: //pages.nist.gov/800-63-3/sp800-63b.html#throttle
Lubię pamiętać przynajmniej ostatnie nieudane hasło (hashe).A jeśli zostanie użyty ten sam, nie zwiększaj licznika błędów.To bardzo pomaga w przypadku źle zapamiętanych lub zapisanych w skryptach klientów, aby nie blokować regularnie sprawcy.
Jeśli osoba atakująca musi odgadnąć tylko 1000 razy, aby uzyskać hasło, nie jest to silne hasło.
@Qwertie, zmienię to na bardziej niejasny opis;)
jamesdlin
2019-01-19 07:26:40 UTC
view on stackexchange narkive permalink

W zasadzie nie, nie powinno to stanowić zagrożenia dla bezpieczeństwa. Gdyby tak było, polegałbyś na bezpieczeństwie poprzez zaciemnienie (ukryte informacje).

Ukrywanie liczby byłoby w najlepszym przypadku niewielką niedogodnością dla przeciwnika.

W przeciwieństwie do tego, ukrycie liczby może być znaczną niedogodnością dla uprawnionych użytkowników. Nierzadko zdarza się, że czasami wpisuję nieprawidłowe hasło, a następnie wpisuję je jeszcze kilka razy, zakładając, że popełniłem literówkę. Jeśli wiem, że zostanie mi zablokowana kolejna niepoprawna próba, poszukam hasła i skopiuję / wkleję lub wpiszę je ostrożnie. Jeśli jednak nieświadomie zablokuję sobie dostęp do swojego konta, teraz muszę wykonać wiele dodatkowych problemów, aby je odblokować.

Tom K.
2019-01-16 19:50:51 UTC
view on stackexchange narkive permalink

Aby spojrzeć na to z innej perspektywy: nie ma to znaczenia dla wprawnego napastnika .

W jaki sposób konta internetowe są dziś atakowane zazwyczaj 1 ? Istnieją dwie powszechnie stosowane techniki.

Bazy danych ze skrótami haseł (lub hasłami w postaci zwykłego tekstu) są kradzione i łamane offline przez atakujących. Po pomyślnym złamaniu hasha poprawne hasło jest podawane do mechanizmu logowania przy pierwszej próbie, więc ta kontrola jest nieskuteczna.

Może to być baza danych danej usługi lub baza danych innej usługi. Niestety, ludzie mają tendencję do ponownego wykorzystywania swoich haseł w kilku usługach, więc istnieje duże prawdopodobieństwo, że po dopasowaniu hasła do adresu e-mail można go użyć w innej witrynie. Atakujący może mieć do wyboru dwa lub trzy hasła, ale prawdopodobnie nie 20. Ponownie, ta kontrola jest nieskuteczna.

Jaki poziom bezpieczeństwa zapewnia ta kontrola? Poziom niezbędny do ochrony przed niedoświadczonymi dzieciakami od skryptów, złośliwymi byłymi partnerami i wścibskimi rodzicami, którzy chcą spojrzeć na twoje konto osobiste i wypróbować pięć losowych haseł. Nie więcej, ale nie mniej.


1 Są oczywiście inne bardziej „zaawansowane” techniki, takie jak keylogging, (spear) -phishing, MitM itp., Które również są nie ograniczane przez tę kontrolę.

Security Beast
2019-01-16 14:22:23 UTC
view on stackexchange narkive permalink

Możliwe są tylko dwa scenariusze, ale raczej pokazanie, że polityka czasu blokady konta jest bardziej związana z czasem blokady.

Np.

  • raz można skonfigurować hydrę lub inne narzędzie do brutalnego wymuszenia logowania i poczekaj po 3 próbach. jeśli nie masz wystarczającego czasu na blokowanie, może to spowodować włamanie na konto.

  • jeśli masz około 30 minut na blokowanie, możemy skonfigurować narzędzie do brutalnej siły i poczekaj, a po trzech próbach złamanie hasła zajmie lata.

Aby to zakończyć, nie ma ryzyka związanego z wyświetleniem próby zablokowania konta.

jfran3
2019-01-16 15:29:04 UTC
view on stackexchange narkive permalink

Generalnie skłaniam się ku temu, że im mniej informacji przekazujesz napastnikowi, tym lepiej. Jak wspomniał @ security-beast, narzędzie można skonfigurować tak, aby czekało przez odpowiednią ilość czasu. Przekazywanie im informacji dotyczących tej konfiguracji niekoniecznie jest idealne.

Jednak musisz to zrównoważyć z potrzebami użytkowników. Czy uważasz, że administratorzy systemu spędzają nadmierną ilość czasu na odblokowywaniu kont, ponieważ użytkownicy ciągle je blokują? W takim przypadku Twoja analiza może wskazywać, że możesz odnieść większe korzyści z wyświetlania liczby ponownych prób użytkownikom, aby wiedzieli, kiedy muszą czekać przed zablokowaniem swoich kont. W innych przypadkach będzie odwrotnie, ale tak czy inaczej odpowiedź powinna być wynikiem obiektywnej analizy kompromisów dla konkretnego systemu.

Mam nadzieję, że to pomoże.

Nie widziałem komentarza Silvera, kiedy pisałem, ale poparłbym wytyczne NIST jako dobrą podstawę na początek.
Hugo
2019-01-16 19:32:38 UTC
view on stackexchange narkive permalink

Ryzyko bezpieczeństwa jest subiektywne, będzie zależało od tego, co próbujesz chronić cel kontroli bezpieczeństwa i jakiejkolwiek innej kontroli bezpieczeństwa na miejscu, która łagodzi lub kompensuje ryzyko.

Na podstawie różnych firm / biznes będzie inaczej akceptował to samo ryzyko.

Jeśli w ogólny sposób podanie liczby prób, które nadal masz, może nie wiązać się z ryzykiem (np. kod PIN na karcie inteligentnej do wykonywania połączeń telefonicznych) W innych sytuacjach może to stanowić ryzyko (np. brute force dostęp do telefonu komórkowego), gdzie można zatrzymać się przed ostatnią próbą i odczekać chwilę, aby użytkownik zresetował licznik z ważnym dostępem ...

Należy sprawdzić cel kontroli bezpieczeństwa, co próbujesz chronić i jakie środki bezpieczeństwa masz na miejscu, które kompensują lub przynajmniej monitorują nietypowe sytuacje.

Na podstawie tego wszystkiego możesz zdecydować, czy jest to akceptowalne ryzyko, czy nie.

Brandhout
2019-01-20 03:44:34 UTC
view on stackexchange narkive permalink

W pewnym momencie byłem w firmie, w której kilku facetów przetestowało ich bezpieczeństwo. Jedną z rzeczy, które odkryli ci faceci, jest to, że nie było blokady konta, gdy było zbyt wiele nieprawidłowych haseł. Jednak ku radości CISO nie byli w stanie udowodnić, że rzeczywiście mogli dostać się do środka poprzez brutalne wymuszenie hasła. Powodem tego było to, że blokada konta była cicha i trwała około 15 minut.

Zadaj sobie pytanie, co zyskujesz wyświetlając taki komunikat, a co tracisz w ten sposób na bezpieczeństwie. Nie ma sensu powiadamianie o zablokowaniu konta z powodu zbyt wielu nieprawidłowych prób logowania. Jeśli przekażesz taką wiadomość, po prostu pomożesz napastnikowi w ustaleniu, kiedy marnuje swój czas brutalną siłą. Jeśli tego nie zrobisz, rzadziej się zorientują, ale może to prowadzić do większej liczby telefonów / e-maili do twojego helpdesku, co może być kosztowne. FAQ lub strona pomocy może to zmniejszyć.

Również wdrożenie odliczania prawdopodobnie oznaczać będzie więcej kodu, a więcej kodu oznacza więcej błędów. To nie jest coś, czego oczekujesz od mechanizmu bezpieczeństwa. Dodając do tego, że źle ją zaimplementujesz, może to pozwolić atakującym na wyliczenie nazw użytkowników, co jest podwójnie problematyczne, jeśli są to adresy e-mail. Do diabła, jeśli zaimplementujesz to za pomocą niepodpisanego pliku cookie, może to w rzeczywistości dać atakującemu możliwość zapobieżenia blokadzie. .

Jestem pentesterem.Gdybym doradził „ogranicz liczbę prób logowania”, a klient odpowie „udowodnij, że jest podatny na ataki”, byłbym zirytowany.To kwestia szczęścia, czy uda mi się dostać tą metodą.Czy chcesz polegać na szczęściu, czy raczej zastosujesz logikę i odkryjesz, że rzeczywiście, jeśli * jeden * z Twoich użytkowników ustawia złe hasło, a * jeden * atakujący ma szczęście, jesteś oszukany?Dlatego byłbym zirytowany, gdyby musiał to udowodnić.Następnie, jeśli później usłyszę, że nastąpiła cicha lokaut (więc pozwól mi wykonać pracę, wiedząc, że to się nie uda), poczułbym się, jakbyś podwójnie zmarnował mój czas.
Więc zirytowałeś pentestera, przejdźmy teraz do trybu użytkownika.Nie mogę dostać się na swoje konto, chociaż wiem, że musi to być jedno z tych pięciu haseł.Teraz muszę wykonać inne czynności, aby odzyskać konto.Później odkrywam, że moje hasło było poprawne, ale system po prostu nie wpuścił mnie z powodu zbyt wielu prób.Zamiast tracić czas na wypróbowywanie różnych haseł i wprowadzanie do witryny coraz większej liczby możliwych haseł (dzięki czemu moje hasła są bardziej widoczne), byłoby bardzo miło, gdyby system mógł mi po prostu powiedzieć.
Na koniec spójrzmy na sytuację jako napastnik.Jeśli mogę utworzyć konto, mogę spróbować 100 niepoprawnych prób na własnym koncie (1. zaloguj się w przeglądarce Firefox; 2. skopiuj jako curl z paska narzędzi programisty; 3. użyj jednej linii Bash: `for i in {1..100}; wykonaj ; done`), a następnie zobacz, czy nadal mogę się zalogować.Nie!Jest więc blokada.Teraz tworzę kolejne konto i piszę podobny skrypt, który najpierw wykonuje jedną nieudaną próbę, potem dwie, potem trzy ... a pomiędzy nimi sprawdzam, czy nadal mogę się zalogować.To wszystko zajmuje około pięciu minut.Ukrywanie liczby ponownych prób nie jest istotną przeszkodą.
@Luc masz rację ukrywanie liczby ponownych prób nie jest ogromną przeszkodą dla zdeterminowanego napastnika, ale jest to jednak przeszkoda.
W mojej anegdocie mogłem nie wyjaśnić, że rachunki zostały po cichu zablokowane na krótki okres, więc najpoważniejsze ustalenia były błędne i dlatego poproszono ich o udowodnienie tego.Chodziło o to, że ciche blokowanie konta jest idealnym sposobem na zrobienie tego, w rzeczywistości jest to robione w praktyce i pokazuje, że może to utrudnić atakującemu.Masz całkowitą rację, że trzeba dokonać kompromisów i nie jest to doskonałe zabezpieczenie, ale tak jest zawsze.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...