Brak kontroli dostępu na poziomie funkcji

Większość aplikacji internetowych weryfikuje prawa dostępu na poziomie funkcji przed udostępnieniem tej funkcji użytkownikowi. Jeśli jednak te same kontrole dostępu nie są przeprowadzane na serwerze, hakerzy mogą przeniknąć do aplikacji bez odpowiedniej autoryzacji.

Pozwól nam zrozumieć agentów zagrożeń, wektory ataku, słabość zabezpieczeń, wpływ techniczny i skutki biznesowe tej usterki za pomocą prostego diagramu.

Przykład

Oto klasyczny przykład braku kontroli dostępu na poziomie funkcji -

Haker po prostu wymusza docelowe adresy URL. Zwykle dostęp administracyjny wymaga uwierzytelnienia, jednak jeśli dostęp do aplikacji nie zostanie zweryfikowany, nieuwierzytelniony użytkownik może uzyskać dostęp do strony administratora.

' Below URL might be accessible to an authenticated user
http://website.com/app/standarduserpage

' A NON Admin user is able to access admin page without authorization.
http://website.com/app/admin_page

Praktyczny

Step 1 - Zalogujmy się jako menedżer konta, przeglądając najpierw listę użytkowników i ich uprawnienia dostępu.

Step 2 - Po wypróbowaniu różnych kombinacji możemy dowiedzieć się, że Larry ma dostęp do menedżera konta zasobów.

Mechanizmy zapobiegawcze

  • Mechanizm uwierzytelniania powinien domyślnie odmawiać wszelkiego dostępu i zapewniać dostęp do określonych ról dla każdej funkcji.

  • W aplikacji opartej na przepływie pracy sprawdź stan użytkowników, zanim zezwolisz im na dostęp do zasobów.