| Termin | Definicja |
|---|---|
| Możliwość edytowania kontaktów bez autoryzacji | Edytowanie kontaktów bez autoryzacji to podatność umożliwiająca modyfikację bazy odbiorców osobie bez odpowiednich uprawnień. Możliwość edytowania kontaktów bez autoryzacji – czym jest ta podatnośćMożliwość edytowania kontaktów bez autoryzacji oznacza sytuację, w której aplikacja pozwala zmienić dane zapisane w książce kontaktów mimo braku prawidłowego uwierzytelnienia albo odpowiedniego uprawnienia. Chodzi nie tylko o dopisanie nowego numeru telefonu. W zależności od budowy systemu może dojść do zmiany imienia i nazwiska, adresu poczty elektronicznej, numeru telefonu, stanowiska, adresu korespondencyjnego, notatki, identyfikatora odbiorcy albo ustawień decydujących o sposobie komunikacji. Podatność może wystąpić w aplikacji internetowej, panelu administracyjnym, programie używanym na komputerze, aplikacji mobilnej lub usłudze udostępniającej interfejs programistyczny. Czasem dostęp do modyfikacji uzyskuje się bez logowania. W innych przypadkach konto jest zalogowane, ale brakuje sprawdzenia, czy dana osoba może zmieniać konkretny kontakt. Wtedy problem dotyczy kontroli dostępu, a nie samego mechanizmu logowania. Niewłaściwe rozdzielenie tych dwóch obszarów może powodować, że ograniczenia widoczne w interfejsie zostają pominięte przez bezpośrednie wysłanie żądania do aplikacji. Możliwość edytowania kontaktów bez autoryzacji a uwierzytelnianie i kontrola dostępuUwierzytelnianie odpowiada na pytanie, kto korzysta z systemu. Autoryzacja określa natomiast, jakie działania wolno wykonać po rozpoznaniu użytkownika. Jeżeli można wysłać żądanie zmiany kontaktu bez ważnej sesji, występuje brak wymaganego uwierzytelnienia. Jeżeli zalogowany użytkownik może modyfikować kontakty należące do innej osoby, problem dotyczy niewłaściwej autoryzacji obiektowej. Jeżeli zmiana jest dostępna dla zwykłego konta, chociaż powinna być zarezerwowana dla określonej roli, mamy do czynienia z błędem autoryzacji funkcjonalnej. Istotne jest również rozróżnienie między odczytem a zapisem. Aplikacja może prawidłowo ukrywać cudze kontakty na liście, a jednocześnie przyjmować zmianę po podaniu identyfikatora rekordu. W takim przypadku ograniczenie działa tylko w warstwie prezentacji. Mechanizm serwerowy powinien przy każdym żądaniu sprawdzić sesję, rolę, zakres działania konta oraz powiązanie wskazanego kontaktu z użytkownikiem lub dozwolonym zespołem. Sam fakt, że formularz nie jest wyświetlany, nie stanowi zabezpieczenia. Podobne znaczenie ma sposób przekazywania danych. Wrażliwe pola nie powinny być akceptowane wyłącznie dlatego, że zostały przesłane przez klienta. Należy zweryfikować identyfikator kontaktu, zakres modyfikowanych atrybutów, format wartości oraz reguły biznesowe. W przeciwnym razie możliwe bywa nie tylko zmienianie zwykłych danych, ale też przejęcie ustawień powiadomień, zmiana odbiorcy komunikatów lub przygotowanie gruntu pod dalsze nadużycia. Możliwość edytowania kontaktów bez autoryzacji – typowe objawy i skutkiPierwszym sygnałem bywa możliwość wykonania zmiany po wylogowaniu, w trybie prywatnym przeglądarki albo z użyciem adresu żądania skopiowanego z narzędzi deweloperskich. Innym objawem jest skuteczne zapisanie danych po podmianie identyfikatora kontaktu na wartość odnoszącą się do innego profilu. W aplikacji mobilnej podobny problem może ujawnić się po ponownym odtworzeniu żądania wysyłanego przez program. Nie należy utożsamiać każdego komunikatu o sukcesie z rzeczywistą podatnością, dlatego wynik powinien zostać potwierdzony przez sprawdzenie stanu danych i dzienników zdarzeń. Skutki zależą od rodzaju przechowywanych informacji. Zmiana numeru telefonu lub adresu poczty elektronicznej może skierować powiadomienia do nieuprawnionej osoby. Modyfikacja nazwy kontaktu może utrudnić rozpoznanie odbiorcy podczas wysyłania wiadomości. Zmiana notatki może usunąć kontekst potrzebny do obsługi zgłoszenia. W systemach, w których kontakty są wykorzystywane do zatwierdzania operacji, błąd może prowadzić do przekierowania komunikacji, oszustwa, naruszenia poufności albo utraty integralności danych. Ryzyko rośnie, gdy aplikacja nie prowadzi dziennika zmian, nie zapisuje poprzedniej wartości i nie informuje właściciela kontaktu o modyfikacji. Wtedy trudniej ustalić zakres incydentu, przywrócić poprawne dane i ocenić, czy nie doszło do dalszych działań. Należy zwrócić uwagę na powtarzalność problemu, możliwość zmiany wielu rekordów, dostępność funkcji z różnych kanałów oraz to, czy kontrola dostępu jest spójna w całej aplikacji. Możliwość edytowania kontaktów bez autoryzacji – praktyczne wskazówki ochronnePodstawą ochrony jest centralne sprawdzanie uprawnień po stronie serwera. Każda operacja zapisu powinna być traktowana jako niezależne żądanie wymagające potwierdzenia tożsamości, roli i zakresu dostępu. Nie należy polegać na ukrytych przyciskach, blokadzie pola w formularzu, wartości przekazanej przez przeglądarkę ani na samym identyfikatorze znajdującym się w adresie. Kontrola powinna obejmować także żądania pochodzące z aplikacji mobilnych oraz innych klientów korzystających z tego samego interfejsu. Warto ograniczyć zakres danych przyjmowanych w operacji aktualizacji. Jeżeli użytkownik ma zmieniać jedynie numer telefonu, żądanie nie powinno pozwalać na jednoczesne modyfikowanie właściciela rekordu, roli, ustawień powiadomień lub innych pól administracyjnych. Dla każdego atrybutu należy określić, kto może go zmieniać, w jakich warunkach i po jakiej walidacji. Należy też stosować ochronę sesji, bezpieczne tokeny, właściwe zasady wygasania dostępu oraz zabezpieczenia przed przesyłaniem żądań z niepożądanego źródła. Testowanie powinno obejmować konto bez logowania, konto o ograniczonej roli, konto należące do innego zespołu oraz konto pozbawione dostępu do konkretnego kontaktu. Po każdej próbie trzeba sprawdzić odpowiedź aplikacji, stan rekordu, wpis w dzienniku i ewentualne powiadomienie. W środowisku testowym można używać danych zastępczych, aby nie naruszać prywatności. Wdrożenie poprawki powinno zostać uzupełnione ponownym testem regresji, ponieważ zmiana kontroli dostępu może wpłynąć na inne funkcje. Kiedy zgłosić możliwość edytowania kontaktów bez autoryzacji do serwisuZgłoszenie jest zasadne, gdy zmiana kontaktu następuje bez logowania, po utracie sesji, z konta o niewystarczających uprawnieniach albo po wskazaniu rekordu należącego do innego użytkownika. W pierwszej kolejności należy przerwać dalsze próby na rzeczywistych danych, zapisać datę i przybliżony opis zdarzenia oraz zachować bezpieczny, niezmieniony zapis komunikatów aplikacji. Nie powinno się ujawniać publicznie danych kontaktowych ani wykonywać masowych modyfikacji w celu sprawdzenia skali problemu. W Warszawskim Pogotowiu Komputerowym 24/7 można skonsultować objawy dotyczące bezpieczeństwa komputera i aplikacji, w tym nieoczekiwane zmiany danych kontaktowych, działanie panelu użytkownika lub podejrzane zachowanie programu. Przydatne będzie przekazanie informacji o używanym systemie, rodzaju konta, momencie wystąpienia problemu oraz o tym, czy zmiana została faktycznie zapisana. Takie dane ułatwiają odtworzenie ścieżki zdarzenia i rozdzielenie błędu aplikacji od problemu z kontem, sesją albo lokalnym środowiskiem. Nie należy zwlekać ze zgłoszeniem, jeżeli zmieniono dane odbiorcy powiadomień, utracono dostęp do własnych kontaktów, zauważono nieznane wpisy w historii lub pojawiły się komunikaty o operacjach, których nie wykonywano. Do czasu wyjaśnienia sprawy można unieważnić aktywne sesje, zmienić hasło z zaufanego urządzenia, włączyć dostępne dodatkowe zabezpieczenia i skontrolować dane odzyskiwania konta. Po usunięciu przyczyny warto potwierdzić poprawność kontaktów, przejrzeć rejestry zmian oraz sprawdzić, czy podobna możliwość nie występuje w innych miejscach aplikacji. |