Biorąc pod uwagę fakt, że blisko 30% wszystkich znanych przypadków naruszenia zabezpieczeń wynika bezpośrednio z udanego ataku na aplikację webową, testowanie bezpieczeństwa tych aplikacji oraz interfejsów API staje się zadaniem o krytycznym znaczeniu.
Nie chodzi tylko o przestrzeganie wymogów regulacyjnych, ale również o ochronę danych klientów i minimalizację ryzyka dla Twojej firmy.
Istnieje wiele sposobów na zabezpieczenie aplikacji internetowych, każde z własnymi zaletami i wadami. Niektóre metody polegają na analizie kodu źródłowego pod kątem potencjalnych luk. Inne skupiają się na ochronie przed atakami w czasie rzeczywistym. Jeszcze inne polegają na dynamicznym testowaniu bezpieczeństwa, symulując działania potencjalnego hakera.
Ten artykuł skupia się na tym ostatnim podejściu, a konkretnie na rozwiązaniu Probely. Unikalność Probely polega na tym, że rozwiązuje dwa główne problemy skanerów podatności: kompleksowy zakres skanowania współczesnych aplikacji webowych i wysoką jakość wyników.
Probely oferuje dwie wersje: samoobsługową, skierowaną do mniejszych i średnich firm, oraz wersję enterprise, przeznaczoną dla dużych organizacji z rozbudowaną infrastrukturą aplikacji internetowych i interfejsów API.
Głównym celem Probely jest zapewnienie szerokiego zakresu testów w nowoczesnych środowiskach programistycznych. Jednocześnie, dzięki weryfikacji wyników skanowania, eliminuje fałszywe alarmy i umożliwia integrację testów DAST z cyklem rozwoju oprogramowania.
Czy to nie brzmi zbyt dobrze, by było prawdziwe?
Zapraszam do lektury, aby poznać szczegóły mojej analizy Probely.
Na czym polega działanie Probely?
Probely, z myślą o programistach i firmach każdej wielkości, zajmuje się testowaniem aplikacji i interfejsów API poprzez skanowanie w poszukiwaniu problemów i luk w zabezpieczeniach. Po zakończeniu analizy, Probely oferuje wskazówki, jak rozwiązać wykryte problemy.
Programiści i inżynierowie bezpieczeństwa mogą korzystać z Probely za pośrednictwem intuicyjnego interfejsu użytkownika. Jeżeli jednak potrzebna jest większa moc i elastyczność, mogą polegać na w pełni funkcjonalnym interfejsie API. Probely stosuje podejście oparte na API, co oznacza, że wszystkie funkcje dostępne w interfejsie użytkownika są również dostępne poprzez API. API umożliwia integrację Probely z potokiem CI/CD, systemem zarządzania lukami, narzędziem do orkiestracji czy systemem śledzenia problemów. Jeżeli używasz popularnych narzędzi, prawdopodobnie znajdziesz gotową integrację. Dotyczy to narzędzi takich jak JIRA, Jenkins, Azure DevOps, DefectDojo, CircleCI i Slack. Jednak, jeśli masz własne rozwiązanie do śledzenia problemów lub orkiestracji, API daje Ci pełną swobodę.
Zasięg, indeksowanie i dokładność
Probely używa zaawansowanego pająka, który porusza się po złożonych aplikacjach Javascript, naśladując zachowanie zwykłej przeglądarki. Pozwala to na osiągnięcie wyjątkowego pokrycia witryny, co często stanowi wyzwanie dla innych narzędzi DAST. Ten pająk jest idealny do aplikacji jednostronicowych, takich jak te oparte na React lub Angular JS.
Należy pamiętać, że skaner może wykryć luki w zabezpieczeniach tylko na stronach, które udało mu się znaleźć. Dlatego skuteczny pająk jest niezwykle ważny.
Probely oferuje również różne profile skanowania, dostosowane do środowiska, które ma być przetestowane. Można ustawić mniej inwazyjny profil, jeśli skanowane jest środowisko produkcyjne. Natomiast dla środowiska testowego można wybrać bardziej dogłębny profil, aby uzyskać dokładniejsze wyniki. Testując środowisko przedprodukcyjne, można zidentyfikować i wyeliminować luki, zanim aplikacja trafi na produkcję.
Raportowanie
Chociaż Probely identyfikuje szeroką gamę luk, skupia się na raportowaniu tylko istotnych problemów, eliminując fałszywe alarmy. W przypadku niektórych klas luk dostarcza również dowodów, które potwierdzają ich istnienie, co oszczędza czas zespołu potrzebny na weryfikację.
Probely oferuje kompleksowe raporty w interfejsie użytkownika. Może również synchronizować informacje o lukach z narzędziami do śledzenia problemów lub systemami zarządzania lukami, co pozwala na dostosowanie Probely do istniejących procesów bezpieczeństwa i rozwoju oprogramowania.
Probely przeprowadza testy oprogramowania pod kątem luk z listy OWASP Top 10 i wielu innych. Pomaga również w osiągnięciu zgodności z wymogami PCI-DSS, RODO, HIPAA i ISO270-01.
Na podstawie raportu OWASP Top 10, można od razu zobaczyć, jakie są problemy z daną zgodnością.
Interfejs
Interfejs jest prosty i intuicyjny w obsłudze, co pozwala na szybkie rozpoczęcie pracy. Wersja Enterprise daje możliwość zarządzania użytkownikami, rolami oraz ustawiania niestandardowych uprawnień. Etykiety umożliwiają organizację użytkowników, zasobów i luk w celu lepszego zarządzania bezpieczeństwem aplikacji webowych. Ponieważ wszystkie funkcje są dostępne przez API, integracja Probely z innymi aplikacjami i procesami bezpieczeństwa w firmie jest bardzo prosta.
Użytkownicy Jira lub Azure Boards mogą skonfigurować Probely tak, aby automatycznie przesyłał wszystkie wykryte luki do systemu śledzenia problemów. Kiedy programista naprawi problem w systemie, automatycznie uruchamiane jest ponowne testowanie w Probely, aby sprawdzić, czy luka została poprawnie wyeliminowana. Jeśli problem nadal występuje, zostanie ponownie otwarty w systemie śledzenia problemów. Dzięki temu, zespół programistyczny może traktować raport o lukach w zabezpieczeniach jak każdy inny błąd, bez konieczności bezpośredniego korzystania z interfejsu Probely. Wygodne, prawda? 🙂
Pierwsze kroki 🚀
Do celów testowych korzystałem z wersji Probely Enterprise.
Dostępna jest również edycja standardowa oraz różne plany, w tym plan bezpłatny. W planie darmowym skanowanie obejmuje jedynie trzy klasy luk: flagi plików cookie, nagłówki bezpieczeństwa oraz problemy z SSL/TLS. Plan Pro oferuje większość funkcji i jest przeznaczony dla małych i średnich firm, które mają pięć lub mniej celów do skanowania.
Wersja Enterprise jest skierowana do organizacji posiadających wiele celów do skanowania i oferuje dodatkowe funkcje charakterystyczne dla oprogramowania korporacyjnego, takie jak zarządzanie użytkownikami, grupami, rolami i uprawnieniami. Pozwala również na skanowanie celów w sieci prywatnej, poprzez instalację dostarczonego agenta.
Dodawanie celu
Dodanie celu jest bardzo proste. Po zalogowaniu się na konto, należy przejść do sekcji „Cele” i kliknąć „Dodaj”. Następnie należy podać nazwę, adres URL oraz etykiety (np. Testy, Produkcja, Rozwój) dla nowego celu. Jeżeli Probely ma skanować cel jako samodzielny interfejs API, bez wsparcia aplikacji webowej, należy zaznaczyć odpowiednią opcję.
Jeżeli cel nie jest publicznie dostępny i agent Probely został zainstalowany w sieci prywatnej, można wybrać agenta, którego należy użyć podczas dodawania celu.
Po dodaniu celu, należy potwierdzić jego własność, ponieważ Probely wymaga dowodu, że użytkownik ma uprawnienia do przeprowadzania skanowania. Istnieją dwie metody weryfikacji: umieszczenie pliku z określoną zawartością w katalogu głównym celu lub dodanie wpisu TXT do rekordu DNS z nazwą domeny i podaną zawartością rekordu. Po weryfikacji celu, można rozpocząć skanowanie, klikając przycisk „Skanuj”.
Postęp i status skanowania można śledzić na stronie „Skanowania” w panelu Probely. Na stronie widać, kiedy skanowanie się rozpoczęło i jakie wyniki zostały już znalezione. Wyniki są kolorowane według ważności, co pozwala szybko zidentyfikować krytyczne problemy, które wymagają natychmiastowego rozwiązania.
Jeśli witryna posiada stronę logowania i chcesz, aby Probely przeprowadził skanowanie po zalogowaniu, musisz podać dane uwierzytelniające. Probely obsługuje większość metod uwierzytelniania stron logowania.
Skanowanie interfejsu API
Aby przeskanować cel API, Probely potrzebuje jego schematu. Można to zrobić, podając adres URL schematu OpenAPI lub przesyłając schemat jako plik lokalny. Opcja z URL pozwala Probely na pobranie schematu przed każdym skanowaniem, co zapewnia, że skanowanie zawsze opiera się na aktualnej wersji schematu.
Istnieje szereg opcji związanych z uwierzytelnianiem dostępu do API. Probely obsługuje nie tylko statyczne tokeny, ale także umożliwia dynamiczną konfigurację uwierzytelniania podczas skanowania API. Można ustawić punkt logowania, z którego Probely pobierze token uwierzytelniający lub skonfigurować nagłówek z kluczem API. Dodatkowo można podać niestandardowe wartości parametrów, które Probely użyje dla parametrów znalezionych w schemacie.
Po konfiguracji uwierzytelniania i parametrów API, można rozpocząć skanowanie, klikając przycisk „Skanuj teraz”. Po kilku sekundach można śledzić postęp skanowania. Po zakończeniu skanowania, można pobrać raport pokrycia, który pokazuje wszystkie znalezione punkty końcowe oraz kody odpowiedzi. W raporcie widoczne są również informacje o ewentualnych awariach.
Analiza wyników
Strona z wynikami wyświetla wyniki skanowania zaraz po ich wykryciu, nawet gdy skanowanie jeszcze trwa. Każdy wynik zawiera informacje o: poziomie ważności (wysoki, średni lub niski), celu i adresie URL, opisie problemu, czasie wykrycia, statusie (rozwiązany lub nie), osobie odpowiedzialnej oraz o tym, czy dany problem wpływa na zgodność z PCI-DSS lub OWASP.
Oprócz informacji o wykrytych lukach, strona z wynikami służy do przypisywania luk konkretnym członkom zespołu w celu ich naprawienia. Aby to zrobić, wystarczy zaznaczyć pole wyboru po lewej stronie i wybrać odpowiednią osobę z menu.
Probely dostarcza również instrukcje, jak naprawić wykryte luki. Dodatkowo, można zobaczyć pełne żądanie i odpowiedź oraz dowody.
Na stronie „Pulpit nawigacyjny” można znaleźć różne wykresy, które podsumowują ryzyko bezpieczeństwa zeskanowanych celów. Wykresy przedstawiają trendy różnych metryk, takich jak oceny ryzyka, średni czas naprawy oraz poziomy istotności. Dodatkowo, można zobaczyć, które witryny wymagają największej uwagi i ranking pięciu najczęściej występujących luk.
Wreszcie, na stronie „Integracje” można skonfigurować Probely do współpracy z różnymi narzędziami do zarządzania projektami, komunikacji, śledzenia problemów i innymi. Dostępne integracje obejmują: Azure Boards, DefectDojo, Slack, Jira, Jenkins i CircleCI.
Narzędzie dla programistów i zespołów bezpieczeństwa
Dla zwinnych zespołów programistycznych czas wprowadzenia produktu na rynek jest najważniejszy. Dlatego ważne jest, aby zminimalizować czas potrzebny na wdrożenie oprogramowania, bez kompromisu w kwestii jakości. Probely oferuje właśnie to – efektywny sposób na poprawę bezpieczeństwa witryn internetowych i interfejsów API, pomagając dotrzymywać obietnic związanych z harmonogramem i dostarczając wysokiej jakości oprogramowanie.
Zespołom ds. bezpieczeństwa, Probely zapewnia platformę do zabezpieczania aplikacji internetowych i zarządzania lukami. Pozwala również odciążyć zespoły programistyczne od części testów bezpieczeństwa, pełniąc jednocześnie rolę nadzorczą.
Probely oferuje darmowe wersje próbne, licencje ewaluacyjne dla przedsiębiorstw oraz prezentacje produktów. Aby rozpocząć, skontaktuj się z nimi.
newsblog.pl