Audyt · testy penetracyjne · Polska
Audyt bezpieczeństwa, po którym zostają poprawki, a nie PDF.
Sprawdzamy kod, zależności, serwery i aplikacje mobilne oczami atakującego, potwierdzamy każde znalezisko i je naprawiamy.
Żeby znaleźć to, co psuje się po cichu.
- 15typowych znalezisk poniżej: zanonimizowane i pogrupowane według miejsca błędu
- 6warstw sprawdzamy: od krawędzi sieci po kopię zapasową
- 2agentów na każde znalezisko: jeden je znajduje, drugi próbuje je obalić
Gdzie atak się zatrzymuje
Warstwy, które sprawdzamy i ustawiamy. Wybierz warstwę, by zobaczyć, co zatrzymuje.
Krawędź sieci
CDN · TLS
Zatrzymuje
Zalewanie ruchem, zwykły HTTP, ataki wprost na adres serwera
Jak
TLS kończy się na CDN, który odsiewa zalewanie ruchem. Adres serwera nigdzie nie jest publikowany, więc nie ma czego atakować z pominięciem CDN.
Tunel i firewall
0 otwartych portów www
Zatrzymuje
Skanowanie portów, ataki na wystawione usługi, zgadywanie haseł SSH
Jak
Ruch www wchodzi przez tunel wychodzący, więc żaden port www nie jest otwarty. Firewall jest zamknięty dla ruchu www; SSH przyjmuje tylko klucze, hasła są wyłączone.
Proxy
limity · bany
Zatrzymuje
Skanery podatności, lawina żądań z jednego adresu, odczyt plików wewnętrznych
Jak
Każdy adres ma limit żądań na minutę. Robot banuje skanery, które szukają znanych luk. Pliki repozytorium odpowiadają 404, a nagłówki bezpieczeństwa idą z każdą stroną.
Aplikacja
tylko loopback
Zatrzymuje
Zgadywanie haseł, dostęp do cudzych danych, wstrzyknięcia
Jak
Usługi nasłuchują tylko na loopback. Trzy błędne hasła blokują adres na godzinę. Serwer ponownie sprawdza każde uprawnienie i koduje dane wyjściowe dla HTML, CSV i e-maili.
Dane
co noc, poza serwerem
Zatrzymuje
Utratę dysku, ransomware, ludzkie błędy
Jak
Nocne archiwum trafia do osobnego magazynu: siedem kopii dziennych i jedna miesięczna. Bazy danych są kopiowane bezpiecznym zrzutem w trakcie pracy.
Aktualizacje
co miesiąc
Zatrzymuje
Znane podatności z gotowymi exploitami
Jak
Raz w miesiącu: pakiety systemu, jądro z restartem, środowiska uruchomieniowe i zależności. Każda runda trafia do dziennika.
Co audyt znajduje najczęściej
Przypadki zbiorcze, zanonimizowane i zmienione: nie da się z nich odtworzyć klienta, produktu ani daty. Do każdego poprawka i zasada, która nie pozwala błędowi wrócić.
Wysoka
Domyślne hasło administratora w kodzie źródłowymKod
Co widzimy
Zapasowe konto administratora powstaje z hasła zapisanego w kodzie: każdy, kto widział repozytorium, loguje się do świeżej instalacji.
Jak naprawiamy
Pierwszy administrator powstaje z sekretu ustawionego przy wdrożeniu i tylko wtedy, gdy nie ma innego.
Zasada
Żadnych danych logowania w kodzie, nawet domyślnych.
Wysoka
Zastrzeżone pozycje dostępne przez publiczne APIKod
Co widzimy
API ufa liście przysłanej przez przeglądarkę i nie sprawdza, który katalog użytkownik może widzieć.
Jak naprawiamy
Serwer sprawdza uprawnienie przy każdym żądaniu; zamknięte strony wydają podpisany token.
Zasada
Serwer ponownie sprawdza każde uprawnienie; przycisk na stronie niczego nie dowodzi.
Wysoka
Środowisko uruchomieniowe bez wsparciaPakiety i wersje
Co widzimy
Produkcja działa na środowisku i frameworku, dla których skończyły się aktualizacje bezpieczeństwa: znane CVE mają zastosowanie, a łatki nie będzie.
Jak naprawiamy
Plan aktualizacji według ekspozycji: test na kopii, wdrożenie usługa po usłudze.
Zasada
Każde środowisko w inwentaryzacji ma obok datę końca wsparcia.
Wysoka
Pliki repozytorium czytelne przez HTTPInfrastruktura
Co widzimy
Katalog główny strony odwzorowuje repozytorium, więc notatki z kodami dostępu, skrypty i konfiguracje narzędzi są o jeden URL od odwiedzającego.
Jak naprawiamy
Reguła na proxy odpowiada 404 na pliki repozytorium; sekrety wyjeżdżają z katalogu strony.
Zasada
Jeśli folder serwuje serwer www, wszystko w nim jest publiczne, dopóki reguła nie powie inaczej.
Wysoka
Panel administracyjny otwarty na cały internetDostęp
Co widzimy
Strona zarządzania bazą lub magazynem danych jest dostępna z każdego miejsca, a przed nią stoi tylko jej własny formularz logowania.
Jak naprawiamy
Przed stroną logowania staje VPN albo bramka zero trust z jednorazowym kodem.
Zasada
Panel admina to nie strona publiczna, nawet za hasłem.
Wysoka
Foldery z danymi poza kopią zapasowąDane i utrzymanie
Co widzimy
Przesłane pliki, baza danych i ustawienia usług nie są nigdzie kopiowane: kopia obejmuje tylko to, co istniało w dniu jej ustawienia.
Jak naprawiamy
Każdy folder z danymi trafia do nocnego archiwum poza serwerem, a odtworzenie jest próbowane według harmonogramu.
Zasada
Usługa nie jest gotowa, dopóki jej dane nie są w kopii zapasowej.
Średnia
Eksport do arkusza uruchamia formuły z danych użytkownikaKod
Co widzimy
Imię zaczynające się od = trafia do eksportu CSV administratora jako działająca formuła (CSV injection).
Jak naprawiamy
Komórki zaczynające się od = + − @ są neutralizowane przed eksportem.
Zasada
Dane wyjściowe koduje się pod miejsce docelowe: HTML, CSV, e-mail.
Średnia
Jedno zepsute ciasteczko zatrzymuje usługę dla wszystkichKod
Co widzimy
Ciasteczko, którego parser się nie spodziewa, rzuca błąd poza obsługą i proces się kończy.
Jak naprawiamy
Ostrożne parsowanie i ostatnia obsługa błędów: żądanie dostaje błąd, proces działa dalej.
Zasada
Każde wejście jest wrogie, nagłówki i ciasteczka też.
Średnia
Zależności z opublikowanymi podatnościamiPakiety i wersje
Co widzimy
Pliki lock przypinają biblioteki ze znanymi CVE i nic nie informuje zespołu o nowych.
Jak naprawiamy
Kontrola zależności w CI zatrzymuje build przy wysokiej wadze; reszta trafia do cotygodniowego raportu.
Zasada
Zależność to kod, którego nikt w zespole nie czytał: śledź ją jak własny.
Średnia
Łatki bezpieczeństwa zainstalowane, ale nie działająPakiety i wersje
Co widzimy
Jądro i biblioteki systemowe są zaktualizowane na dysku, ale serwer nie był restartowany od miesięcy, a dziesiątki pakietów czekają w kolejce.
Jak naprawiamy
Comiesięczna runda aktualizacji z restartem i wpisem do dziennika.
Zasada
Łatka się liczy, gdy proces, który jej potrzebuje, został zrestartowany.
Średnia
Stare pliki, których wdrożenie nie usuwaInfrastruktura
Co widzimy
Wdrożenie kopiuje, ale nie usuwa: przemianowane foldery, stara kopia pliku środowiska i prywatne dokumenty leżą na serwerze latami.
Jak naprawiamy
Raport porównuje serwer z repozytorium; pozostałości znikają po zrobieniu kopii.
Zasada
Sprawdzaj, co leży na serwerze, a nie to, co powinno według repozytorium.
Średnia
Formularze logowania pozwalają zgadywać hasło bez limituDostęp
Co widzimy
Nieudane próby nie są liczone, hasło jest porównywane w zmiennym czasie, a ciasteczka sesji idą bez flagi Secure.
Jak naprawiamy
Tymczasowa blokada po kilku błędnych hasłach, porównanie w stałym czasie, ciasteczka z Secure.
Zasada
Wszystko, co sprawdza hasło, liczy też porażki.
Średnia
Wspólny limit, który może wyczerpać jeden odwiedzającyDostęp
Co widzimy
Śmieciowe żądania liczą się do wspólnego limitu, więc jeden adres może zablokować formularz prawdziwym użytkownikom.
Jak naprawiamy
Najpierw działa limit na adres; limit wspólny liczy tylko żądania, które przeszły walidację.
Zasada
Limit chroni użytkowników; sprawdzaj, kogo odcina.
Średnia
Ochrona włączona, ale nigdy nie ruszyłaDane i utrzymanie
Co widzimy
Timer banujący skanery jest włączony przy instalacji, ale nigdy nie ruszył: tygodniami na drodze stoi tylko limit żądań.
Jak naprawiamy
Próbny przebieg na żywym logu, potem start; kontrola stanu pokazuje wszystkie timery.
Zasada
Włączone to nie znaczy działa: sprawdzaj stan, nie konfigurację.
Niska
Strona błędu w cache dla wszystkich odwiedzającychInfrastruktura
Co widzimy
Odpowiedź limitu żądań przejmuje długi nagłówek cache obrazków i CDN serwuje ten błąd wszystkim.
Jak naprawiamy
Odpowiedzi z błędem nigdy nie trafiają do cache.
Zasada
Ochrona nie może zamienić się w odmowę usługi.
Nic nie pasuje do obu filtrów.
Jak przebiega audyt
Każdy audyt przechodzi ten sam proces: nasze skille dla agentów AI, kontrole w CI i człowiek, który to zatwierdza.
Zakres i zgoda
Ustalamy, co testujemy, skąd i czego nie ruszamy. Bez pisemnej zgody właściciela nic się nie zaczyna.
Dostajesz: Pismo o zakresie
Inwentaryzacja
Każde środowisko, framework, pakiet i serwer z wersją i datą końca wsparcia.
Dostajesz: Mapa wersji
Stare wersje
To, co straciło wsparcie lub ma znane CVE, dostaje plan aktualizacji ułożony według ekspozycji, nie liczby.
Dostajesz: Plan aktualizacji
Przegląd kodu przez agentów AI
Nasze skille dzielą przegląd według klas błędów: kontrola dostępu, wstrzyknięcia, sekrety, sesje, pliki, logika biznesowa. Agenci czytają kod równolegle, każdy swoją klasę.
Dostajesz: Surowe znaleziska
Dowód
Każde znalezisko odtwarzamy. Drugi agent próbuje je obalić, a to, co się obroni, sprawdza człowiek. Czego nie da się pokazać, nie trafia do raportu.
Dostajesz: Raport z dowodami
Naprawić i utrzymać
Poprawki lub pull requesty, ponowny test i kontrole w Twoim CI, żeby ten sam błąd następnym razem zatrzymał build.
Dostajesz: Poprawki i kontrole w CI
Co sprawdzamy
- Aplikacje www i APIOWASP ASVS · WSTG
- Logowanie i sesje, kontrola dostępu, wstrzyknięcia, przesyłanie plików, limity, nagłówki.
- Aplikacje mobilneOWASP MASVS · MASTG
- Android i iOS: przechowywane dane, ruch sieciowy, uprawnienia, zasady sklepów. Sami wydajemy 18 aplikacji.
- Serwery i sieciCIS Benchmarks
- Otwarte porty, tunele, TLS, DNS i rekordy poczty (SPF, DKIM, DMARC), kopie zapasowe, aktualizacje.
- Kod i zależnościOWASP Top 10 · CWE
- Wersje bez wsparcia, znane CVE, sekrety w historii git, pipeline CI/CD.
- Funkcje AI i agenciOWASP Top 10 for LLM
- Prompt injection, wycieki danych przez model, jakie narzędzia agent może wywołać.
Co dostajesz
- Raport: każde znalezisko z oceną CVSS, klasą CWE, dowodem i krokami odtworzenia
- Do każdego znaleziska szybkie obejście i naprawa przyczyny
- Krytyczne znaleziska od razu po potwierdzeniu, nie na końcu
- Plan aktualizacji starych wersji według ryzyka
- Poprawki: naprawiamy sami albo przekazujemy je Twojemu zespołowi
- Ponowny test po wdrożeniu poprawek
- Kontrole w Twoim pipeline, żeby błąd nie wrócił
Sprawdź się w minutę
Siedem pytań. Odpowiedzi zostają w przeglądarce, chyba że dołączysz je do zapytania.
„Nie wiem” liczy się jako ryzyko: czego nie widać, tego nie da się obronić.
Pytania przed zamówieniem
Audyt bezpieczeństwa czy test penetracyjny: czym się różnią?
Test penetracyjny atakuje działający system w ograniczonym czasie, tak jak zrobiłby to ktoś z zewnątrz. Audyt dodaje kod, zależności, serwery i procesy, więc znajduje też to, do czego atakujący jeszcze nie dotarł. Robimy jedno i drugie i z góry mówimy, co dokładnie dostajesz.
Czego potrzebujecie od nas na start?
Listy tego, co testować, dostępu do środowiska testowego i, jeśli to możliwe, kodu. Testy zaczynają się dopiero po pisemnej zgodzie właściciela systemów.
Czy testujecie produkcję?
Tylko to, co zatwierdzisz, w uzgodnionych godzinach i bez testów niszczących. Lepsza jest kopia produkcji: tam możemy naciskać mocniej.
Czy potrzebujecie kodu źródłowego?
Nie. Bez niego testujemy z zewnątrz, tak jak widzi Cię atakujący (black box). Z kontami testowymi lub kodem (grey lub white box) znajdujemy więcej w krótszym czasie.
Ile to kosztuje?
Zależy od zakresu. Po pierwszym mailu ustalamy, co testujemy, i wysyłamy cenę oraz termin, zanim zaczniemy pracę.
Czy podpiszecie NDA?
Tak. Podpiszemy Twoją umowę albo wyślemy naszą razem z zakresem.
Kto wykonuje pracę i kto wystawia fakturę?
Maxim Markarov razem z agentami AI studia; każde znalezisko przed wysłaniem sprawdza człowiek. Fakturę wystawia jednoosobowa działalność JDG Maxim Markarov, NIP 8943181769.
Zamów audyt bezpieczeństwa
Napisz, co sprawdzić. Zapytanie trafia na support@markarov.dev i stamtąd odpowie Ci człowiek.
- Bez autoodpowiedzi: przez formularz nie da się wysłać maila do kogoś innego.
- Do zapytania nie dołączamy adresu IP.
- Formularz trzyma się zasad tej strony: limit na adres, walidacja na serwerze, zero zewnętrznych skryptów.