Czy Drupal jest bezpieczny przed atakami typu Brute Force?

9

Brutalny atak to próba uzyskania nieautoryzowanego dostępu do strony internetowej poprzez ciągłe generowanie i wprowadzanie różnych kombinacji hasła. To zadanie jest zwykle wykonywane przez oprogramowanie do automatyzacji („bot”), które wyszukuje komunikaty o sukcesie lub niepowodzeniu i wypróbowuje nowe hasła, dopóki nie otrzyma komunikatu o sukcesie.

Czy Drupal 7 jest domyślnie bezpieczny? jaka jest dla niego bezpieczniejsza konfiguracja? Który moduł może mi pomóc w bezpieczniejszym logowaniu?

Yusef
źródło
1
Odpowiedź zależy od rodzaju ataku, o którym mówisz. Czy masz na myśli atak brutalny, w którym atakujący zgaduje, że użytkownik „admin” ma hasło „Password1”, a następnie zgaduje, że hasło to „javagod”?
greggles,
tak, jako tytuł pytania atak brute force login :(
Yusef

Odpowiedzi:

12

Jak widać w kodzie, funkcja user_login_final_validate rejestruje zdarzenie powodziowe. Oznacza to, że jeśli to samo IP spróbuje połączyć hasło użytkownika / logowania wiele razy, będziemy przez pewien czas „zbanowani”.

Jest to jedna z zabezpieczeń, które oferuje Drupal. Kolejny i myślę, że jeśli zdarzy się na twojej stronie internetowej, zauważysz to bardzo szybko, to token CSRF generowany przez Drupala dla każdej formy.

Oznacza to, że bot atakujący powinien wygenerować formularz, a następnie pobrać token i powiązać go z formularzem przesyłania. Jest to bardzo czasochłonne i prawdopodobnie zniechęci atakującego. Ale najpierw zobaczysz, że serwer zaczyna się nagrzewać.

Yvan
źródło
do symulacji z formularza logowania wystarczy skopiować / wkleić formularz logowania do drupala. możesz go przetestować, jeśli skopiujesz / wkleisz html innej witryny drupal do lokalnego pliku testowego (po prostu upewnij się, że akcja formularza jest absolutnie przekierowaniem do domain.com/user/ login ), uruchom go lokalnie, wpisz poprawnego użytkownika i podaj, że jesteś zalogowany !!!!!
Yusef
Ten formularz będzie działał tak długo, jak Drupal, tak jak token (i formularz) buforowany w jego bazie danych. Po wygaśnięciu pamięci podręcznej formularz nie będzie działać.
yvan
Wyczyściłem pamięć podręczną, ale nadal pracuję
Yusef,
1
Ochronę CSRF można wyłączyć i wyłączyć w formularzu logowania. Jest również wyłączony w formularzu wyszukiwania. Ale, jak stwierdził Yvan, ochrona przeciwpowodziowa zapobiega atakom brutalnej siły na samą formę. Nie zapobiegnie to rozproszonemu atakowi ze strony kogoś, kto ma dostęp do botnetu, ale analiza logów (coś takiego jak Droptor), która szuka powtarzających się nieudanych logowań dla tego samego użytkownika, naprawiłaby to.
greggles,
3

Oprócz dobrych środków, które Drupal 7 stosuje w celu zatrzymania prób logowania, sugerowałbym zainstalowanie modułu Spambot , który zajmuje się szczególnie próbami rejestracji nowych użytkowników.

Przy każdej nowej rejestracji użytkownika moduł ten wysyła zapytanie do serwera Stop Forum Spam , aby sprawdzić, czy użytkownik próbujący rejestracji jest znanym botem.

Opcjonalnie możesz przyczynić się do Stop Forum Spam przy próbach rejestracji witryny.

ermannob
źródło
3

Istnieje kontrola powodzi

Ten projekt ma na celu dodanie interfejsu administracyjnego dla ukrytych zmiennych kontroli powodzi w Drupal 7, takich jak ograniczenia próby logowania i wszelkie przyszłe ukryte zmienne.

Funkcje definiowania i interakcji z podstawowym systemem kontroli powodzi

System zalewowy zapewnia nam trzy funkcje:

flood_register_event($name, $window = 3600, $identifier = NULL)

Zarejestruj wydarzenie dla bieżącego użytkownika mechanizmu kontroli powodzi.

flood_clear_event($name, $identifier = NULL)

Spraw, aby mechanizm kontroli powodzi zapomniał o zdarzeniu dla obecnego gościa.

flood_is_allowed($name, $threshold, $window = 3600, $identifier = NULL)

Sprawdza, czy użytkownik może kontynuować określone zdarzenie. Zasadniczo sprawdzamy, czy użytkownik ma dostęp, wywołując flood_is_allowed. Jeśli zwróci FAŁSZ, rzuć „Odmowa dostępu”. Za każdym razem, gdy użytkownik wykonuje akcję, nazywamy flood_register_event.

Domyślnie sprawdza adres IP użytkownika. Ale możemy przekazać inny unikalny identyfikator, taki jak identyfikator użytkownika.

Powyżej skopiowano z gry z systemem powodzi Drupala

niksmac
źródło
1
Proszę nie kopiować i wklejać z sieci bez odpowiedniego przypisania
Clive
1
@Clive zajmę się tym od teraz. I to właśnie chcę przekazać.
niksmac
0

Myśląc (i mając) ten problem, napisałem moduł, który pozwala zapobiec tego rodzaju atakom: https://drupal.org/project/AntispammerBot

Możesz wybrać, które role są bezpieczne, ile węzłów użytkownik może opublikować, zanim uzna to za spam, itp.

Alejandro Moreno
źródło