Usługi AI dla firm Realizacje Blog FAQ Rozpocznij projekt

Bezpieczeństwo aplikacji — OWASP Top 10 dla nietechnicznych

OWASP Top 10 to lista dziesięciu klas błędów, które najczęściej prowadzą do włamań do aplikacji webowych. Powstaje na podstawie danych z realnych incydentów i jest w praktyce standardem, do którego odwołują się audyty bezpieczeństwa. Ten tekst tłumaczy ją językiem osoby, która podpisuje umowę z wykonawcą, a nie pisze kod.

Krótka odpowiedź: zdecydowana większość realnych włamań do aplikacji firmowych nie wykorzystuje wyrafinowanych technik. Sprowadza się do trzech rzeczy: brakującej kontroli uprawnień, nieaktualnych bibliotek i błędnej konfiguracji serwera.

Jeśli masz zadać wykonawcy tylko trzy pytania, niech brzmią: czy uprawnienia są sprawdzane po stronie serwera przy każdym żądaniu, jak i jak często aktualizujecie zależności oraz co dokładnie trafia do rejestru zdarzeń i kto go czyta.

Dlaczego to nie jest temat wyłącznie techniczny

Wyciek danych z aplikacji firmowej ma konsekwencje, które rozkładają się na kilka lat i kilka obszarów naraz. Bezpośredni koszt techniczny — usunięcie luki, przywrócenie danych, audyt — jest zwykle najmniejszą pozycją. Poważniejsze są obowiązki zgłoszeniowe wobec organu nadzorczego i osób, których dane dotyczą, ryzyko kary administracyjnej oraz utrata zaufania klientów, którzy dowiadują się o incydencie z komunikatu.

Z perspektywy zamawiającego oznacza to jedno: bezpieczeństwo jest pozycją w budżecie projektu, a nie darmowym dodatkiem, który wykonawca zapewnia „przy okazji". Wycena, w której nie ma godzin na testy bezpieczeństwa i przegląd konfiguracji, jest wyceną niepełną.

Dziesięć klas błędów w praktyce

KategoriaCo to znaczy w praktyceTypowy skutek
Brak kontroli dostępuZmiana numeru w adresie pokazuje cudze daneWyciek danych wszystkich klientów
Błędy kryptograficzneHasła i dane wrażliwe zapisane bez właściwej ochronyPrzejęcie kont po wycieku bazy
Wstrzyknięcie koduDane z formularza trafiają wprost do zapytaniaOdczyt lub skasowanie całej bazy
Niebezpieczny projektProces pozwala obejść krok weryfikacjiZamówienia bez płatności, obejście limitów
Błędna konfiguracjaDomyślne hasła, panel administracyjny dostępny publiczniePrzejęcie serwera
Nieaktualne komponentyBiblioteki ze znanymi lukamiAtak zautomatyzowany, bez udziału człowieka
Błędy uwierzytelnianiaBrak limitu prób logowania, słabe odzyskiwanie hasłaMasowe przejmowanie kont
Brak weryfikacji integralnościAktualizacje i skrypty pobierane bez sprawdzeniaWprowadzenie złośliwego kodu do aplikacji
Brak rejestrowania zdarzeńNie wiadomo, kto i kiedy sięgnął po daneIncydent wykryty po miesiącach
Żądania po stronie serweraAplikacja pobiera zasób ze wskazanego adresuDostęp do zasobów sieci wewnętrznej

Trzy najczęstsze — omówione szerzej

Brak kontroli dostępu

Najczęstsza i jednocześnie najprostsza do wykorzystania klasa błędów. Scenariusz wygląda tak: użytkownik otwiera swoją fakturę pod adresem zawierającym jej numer, zmienia numer o jeden i widzi fakturę innej firmy. Nie potrzeba do tego żadnych narzędzi — wystarczy przeglądarka.

Przyczyną jest sprawdzanie uprawnień w interfejsie zamiast na serwerze. Ukrycie przycisku nie jest zabezpieczeniem, ponieważ żądanie można wysłać z pominięciem interfejsu. Poprawnie zbudowana aplikacja przy każdym żądaniu weryfikuje, czy zalogowany użytkownik ma prawo do konkretnego rekordu, a nie tylko do funkcji.

Nieaktualne komponenty

Typowa aplikacja webowa korzysta z kilkuset zewnętrznych bibliotek, licząc zależności pośrednie. Gdy w którejś z nich zostaje ujawniona luka, w ciągu kilkudziesięciu godzin pojawiają się automaty skanujące internet w poszukiwaniu podatnych instalacji. Atak nie jest wymierzony w konkretną firmę — trafia w każdego, kto nie zaktualizował.

Obrona jest procesowa, nie techniczna: ktoś musi regularnie sprawdzać listę zależności i wgrywać poprawki. Aplikacja bez umowy utrzymaniowej staje się podatna sama z siebie, bez żadnej zmiany w kodzie.

Błędna konfiguracja

Do tej kategorii należą rzeczy pozornie trywialne: pozostawione konto testowe z domyślnym hasłem, panel administracyjny bazy danych dostępny z internetu, kopia zapasowa w katalogu publicznym, komunikaty błędów pokazujące ścieżki i wersje oprogramowania, brak nagłówków bezpieczeństwa. Każda z osobna wydaje się drobiazgiem, razem tworzą gotową drogę wejścia.

Klasyczny przypadek. Podczas wdrożenia powstaje kopia bazy w katalogu dostępnym przez przeglądarkę — „na chwilę, do migracji". Zostaje tam na dwa lata. Automat indeksujący znajduje ją w kilka dni, bo skanowanie typowych nazw plików jest standardowym elementem rozpoznania. Kosztem jest wyciek pełnej bazy klientów bez jednej linijki kodu ataku.

Co powinien zapewnić wykonawca

Pytania do wykonawcy przed podpisaniem umowy

Odpowiedź, która powinna zaniepokoić. „Używamy sprawdzonego frameworka, więc jest bezpiecznie." Framework rozwiązuje część problemów — głównie wstrzyknięcia kodu — ale nie ma wpływu na kontrolę uprawnień, konfigurację serwera, jakość rejestru zdarzeń ani na to, czy ktokolwiek wgrywa aktualizacje po odbiorze projektu.

Bezpieczeństwo po wdrożeniu

Stan zabezpieczeń pogarsza się sam z upływem czasu, nawet gdy w kodzie nic się nie zmienia. Publikowane są nowe podatności w używanych bibliotekach, wygasają certyfikaty, przybywa integracji i kont dostępowych. Dlatego bezpieczeństwo trzeba traktować jako proces o stałym koszcie.

Podsumowanie

OWASP Top 10 opisuje nie egzotyczne ataki, lecz powtarzalne zaniedbania. Trzy pozycje odpowiadają za większość realnych incydentów w aplikacjach firmowych: brak kontroli uprawnień po stronie serwera, nieaktualne biblioteki i błędna konfiguracja środowiska.

Dla zamawiającego praktyczny wniosek jest prosty. Warto zapisać w umowie, że uprawnienia weryfikowane są na serwerze, że projekt obejmuje testy bezpieczeństwa przed uruchomieniem i że po odbiorze ktoś konkretny odpowiada za aktualizacje. Te trzy zapisy usuwają większość ryzyka za ułamek kosztu obsługi incydentu.

Najczęstsze pytania

Większość ataków nie jest wymierzona w konkretną firmę. To automaty, które skanują internet w poszukiwaniu znanych podatności i uderzają we wszystko, co pasuje do wzorca. Wielkość firmy nie chroni — decyduje wyłącznie to, czy aplikacja ma nieaktualne komponenty lub błędną konfigurację.

Podstawowy przegląd wraz z automatycznym skanowaniem i weryfikacją konfiguracji to zwykle 5 000 – 15 000 zł. Pełny test penetracyjny prowadzony przez zewnętrzny zespół, z ręczną analizą logiki biznesowej, zaczyna się od kilkunastu tysięcy i rośnie wraz ze złożonością aplikacji. Dla systemów przetwarzających dane osobowe to koszt nieporównywalnie niższy niż obsługa incydentu.

Nie. Framework ogranicza część klas błędów, przede wszystkim wstrzyknięcia kodu i podstawowe ataki na formularze. Nie ma natomiast wpływu na kontrolę uprawnień do konkretnych rekordów, konfigurację serwera, jakość rejestru zdarzeń ani na to, czy ktoś wgrywa aktualizacje po zakończeniu projektu.

Przeglądu warto dokonywać co miesiąc, a poprawki oznaczone jako krytyczne wgrywać niezwłocznie po ich publikacji. Od ujawnienia luki do pojawienia się automatów ją wykorzystujących mijają zwykle godziny lub dni, więc kwartalny rytm aktualizacji jest w praktyce zbyt wolny.

Zabezpieczyć dowody, czyli kopie rejestrów zdarzeń, zanim cokolwiek zostanie nadpisane. Następnie odciąć dostęp, unieważnić wszystkie sesje i klucze oraz ustalić zakres wycieku. Jeśli obejmuje dane osobowe, uruchamiają się obowiązki zgłoszeniowe z krótkim terminem, więc równolegle należy powiadomić osobę odpowiedzialną za ochronę danych w firmie.

Convert Studio realizuje projekty z tego obszaru dla firm w całej Polsce. Zobacz: Aplikacje webowe → · Lokalizacje →

Bezpłatna wycena Twojego projektu

Opisz w kilku zdaniach, co chcesz zbudować — stronę, aplikację czy sklep. Odpowiadamy w ciągu 24 godzin roboczych konkretną propozycją zakresu i harmonogramu. Konsultacja i wycena są bezpłatne, bez zobowiązań.

Odpowiedź w 24 h roboczych. Dane wykorzystujemy wyłącznie do kontaktu w sprawie zapytania — polityka prywatności.