Jeszcze nic się nie zepsuło

To najdroższe zdanie w historii oprogramowania
Chcę audyt oprogramowania

Większość kodu przetrwa demo. Audyt oprogramowania wypełnia lukę między tymi dwoma zdaniami.

Masz platformę, którą zbudował ktoś inny – i nikt nie zostawił mapy.
Masz testy. Na roadmapie. Od dawna.
Masz zarząd, który pyta, czy można bezpiecznie skalować, i nikogo, kto odpowie bez mrugnięcia okiem.

Większość przeglądów kodu kończy się werdyktem: „jest w porządku”. Tyle że „w porządku” to nie pomiar. Tak samo mówiono o poprzedniej platformie – aż do pierwszego weekendu, w którym musiała udźwignąć prawdziwy ruch.

Czytamy kod na cztery sposoby: jak atakujący, jak następny programista, jak regulator, kiedy ktoś złoży wniosek o usunięcie danych, i jak Twój CFO, kiedy przyjdzie faktura z dopiskiem „nieprzewidziane”.

Czym właściwie jest audyt oprogramowania przed produkcją?

To nie jest code review ani test penetracyjny. Code review sprawdza, czy kod jest schludny. Pentest sprawdza, czy jedne drzwi są zamknięte. Ankieta zapisuje, co deklarujesz, że Twój system robi z danymi osobowymi; audyt sprawdza, czy kod się z Tobą zgadza.

Zadaje jedyne pytanie, które się liczy, kiedy pod wdrożeniem podpisujesz się własnym nazwiskiem: czy ludzie, którzy tego systemu nie pisali, dadzą radę go utrzymać, rozwijać i obronić? Dziś „obronić” znaczy także: obronić przed regulatorem.
Audyt prywatności danych to to samo ćwiczenie, tylko wycelowane w dane osobowe.

Polityki pisze się prozą. Systemy – kodem. Z tej rozbieżności biorą się decyzje organów nadzorczych, a widać ją w repozytorium. Dlatego śledzimy dane, a nie dokumentację:

  • czy wycofana zgoda zatrzymuje przetwarzanie, czy tylko chowa checkbox,
  • retencję i usuwanie danych w wersji wdrożonej, a nie obiecanej, prześledzone od początku do końca: co się kasuje, co trafia do archiwum, a co przetrwa w backupach, logach i buckecie dostawcy,
  • dane szczególnych kategorii w logach i payloadach zdarzeń, gdzie nikt ich nie zgłosił,
  • u zarejestrowanych brokerów danych: cykl DROP, hashowanie i raportowanie statusu.

Każde ustalenie, czy dotyczy bezpieczeństwa, czy prywatności, ma plik, linię, poziom ważności i kroki do odtworzenia. Każdy audyt kończy się kosztem utrzymania w osobodniach na miesiąc, bo „działa” i „da się utrzymać za rozsądne pieniądze” to dwa różne ustalenia – a na demo widać tylko jedno z nich. Tę samą listę rozpisaną przepis po przepisie, dla tych, którzy muszą wokół niej planować, znajdziesz w naszej checkliście zgodności.

Audyt, który wraca jako zbiór opinii bez numerów linii, to tylko druga opinia w ładniejszym formatowaniu. Ustaleń dotyczących prywatności też to dotyczy.

Góra lodowa nad i pod wodą – audyt oprogramowania pokazuje też to, czego nie widać na pierwszy rzut oka

Co sprawdza audyt oprogramowania

Lornetka – audyt oprogramowania pokazuje szczegóły, których nie widać gołym okiem

Czytamy kod tak, jak biegły rewident czyta księgi.

Bez „wydaje mi się”. Z numerami linii.

Ustalenia bezpieczeństwa z poziomem ważności i CVSS

Ryzyko zależności i łańcucha dostaw (SBOM)

Autoryzacja i izolacja tenantów

Walidacja danych wejściowych i podatność na wstrzyknięcia

Pipeline CI/CD i bezpieczeństwo wydań

Architektura, powiązania i zasięg skutków awarii

Infrastruktura, zarządzanie sekretami, ścieżka wdrożenia

Dokumentacja i koszt wprowadzenia nowego programisty do projektu

Ujawnione sekrety, klucze i dane uwierzytelniające

Uwierzytelnianie i obsługa sesji

Ryzyka RODO, w tym dane szczególnych kategorii

CCPA, CPRA, Delete Act i wnioski o usunięcie danych składane przez DROP – oraz cała mozaika przepisów stanowych

Zgoda zebrana w banerze a zgoda respektowana w kodzie

Retencja i usuwanie danych – tak, jak działają, a nie jak je opisano

Podmioty przetwarzające, podprzetwarzające i to, dokąd dane naprawdę trafiają

Pokrycie testami i luki, które ukrywa

Analiza statyczna, linting i bezpieczeństwo typów

Schemat bazy danych, indeksy i koszt zapytań

Obserwowalność – logi, metryki, alerty

Koszt utrzymania w osobodniach na miesiąc

Ustalenia bezpieczeństwa z poziomem ważności i CVSS

Ryzyko zależności i łańcucha dostaw (SBOM)

Autoryzacja i izolacja tenantów

Walidacja danych wejściowych i podatność na wstrzyknięcia

Pipeline CI/CD i bezpieczeństwo wydań

Architektura, powiązania i zasięg skutków awarii

Infrastruktura, zarządzanie sekretami, ścieżka wdrożenia

Dokumentacja i koszt wprowadzenia nowego programisty do projektu

Ujawnione sekrety, klucze i dane uwierzytelniające

Uwierzytelnianie i obsługa sesji

Ryzyka RODO, w tym dane szczególnych kategorii

CCPA, CPRA, Delete Act i wnioski o usunięcie danych składane przez DROP – oraz cała mozaika przepisów stanowych

Zgoda zebrana w banerze a zgoda respektowana w kodzie

Retencja i usuwanie danych – tak, jak działają, a nie jak je opisano

Podmioty przetwarzające, podprzetwarzające i to, dokąd dane naprawdę trafiają

Pokrycie testami i luki, które ukrywa

Analiza statyczna, linting i bezpieczeństwo typów

Schemat bazy danych, indeksy i koszt zapytań

Obserwowalność – logi, metryki, alerty

Koszt utrzymania w osobodniach na miesiąc

Dlaczego Sanddev?

Kod czytają ludzie, którzy budowali to, na czym on stoi

Nasi założyciele wyszli z Nokii, Tieto i Microsoftu, a Sanddev prowadzą od dekady. Sami seniorzy: nikt nie uczy się za Twoje pieniądze. I żadnego audytu nie podpisuje ktoś, kto nigdy nie musiał ratować wydania o drugiej w nocy.

Zmierzyliśmy to, czego nikt nie mierzy

Najczystszy kod, jaki audytowaliśmy w tym roku – 128 plików, jedno ustalenie o niskiej ważności – kosztuje 10–15 osobodni utrzymania miesięcznie. Znacznie bardziej chaotyczna platforma z siedmioma ustaleniami: od dwóch do czterech. O koszcie utrzymania decyduje brak testów, CI i dokumentacji, a nie podatności. Dlatego ta liczba jest dziś w każdym naszym raporcie – to ją CFO odczuwa najbardziej.

Sami bywaliśmy dostawcą po drugiej stronie takiego raportu

Budujemy ad serwery, DSP, platformy tradingowe i systemy AI działające na produkcji – OpenAI wyróżniło nas za przetworzenie ponad dziesięciu miliardów tokenów w realnych wdrożeniach. Dlatego wiemy, czym świadomy skrót różni się od skrótu zrobionego w panice. Audytorzy, którzy nigdy niczego nie dowozili pod presją terminu, przy wszystkim biją na alarm równie głośno – i tak powstaje raport z 200 ustaleniami i zerem decyzji.

Warstwę zgód budujemy, a nie tylko ją czytamy

Na co dzień budujemy frameworki zgód, grafy tożsamości, listy wykluczeń i pipeline’y usuwania danych, które muszą działać pod prawdziwym ruchem, a nie w dokumencie z polityką prywatności. Kiedy więc czytamy Twój mechanizm zgód, patrzymy na coś, co sami musieliśmy utrzymać przy życiu na produkcji. To zupełnie inny rodzaj uwagi niż odhaczanie checklisty – i dlatego nasze ustalenia dotyczące prywatności wskazują plik i linię, a nie numer paragrafu.

Ty decydujesz, kto naprawia

Naprawimy to, co znaleźliśmy, w stałym zakresie wycenionym na podstawie raportu. Albo nasz senior będzie nadzorował Twój zespół przy naprawach – taniej, a wiedza zostaje u Ciebie w firmie. Kiedy audytor sprzedaje też lekarstwo, powstaje konflikt interesów, z którego nikt nie lubi się tłumaczyć. Dlatego zostawiamy drugie wyjście.

Techniczne due diligence przed rundą finansowania

Techniczne due diligence to ten sam audyt oprogramowania, tylko czytany przez kogoś innego. Inwestor nie potrzebuje listy poziomów ważności. Chce wiedzieć, czy to, co kupuje, utrzyma ktoś inny niż autor, ile kosztuje dalsze utrzymanie i które ustalenia po zamknięciu transakcji staną się jego problemem. Przygotowujemy jeden raport, który odpowiada na oba pytania: wersję techniczną, z którą Twój CTO rusza do pracy, i podsumowanie, które zarząd i doradcy drugiej strony przeczytają bez tłumacza. Zwykle zajmuje to od tygodnia do dwóch – mniej więcej tyle, ile większość rund na to zostawia.

Przestań zgadywać. Zacznij mierzyć.

Jak przebiega audyt oprogramowania – od zakresu do ponownego testu

1
Najpierw zakres, potem cena: dajesz nam dostęp do odczytu i liczbę plików. Mówimy, w którym przedziale cenowym się mieścisz i ile to kosztuje – zanim ktokolwiek cokolwiek podpisze.
2
Audyt: automatyczne skanowanie, potem ręczny przegląd przez seniora. Każde ustalenie, zanim trafi do raportu, odtwarza druga osoba.
3
Omówienie: jeden dokument, z którym Twój CTO może ruszyć do pracy jeszcze w tym tygodniu, a zarząd przeczyta go bez tłumacza – ustalenia, poziomy ważności, szacunki pracochłonności i koszt utrzymania.
4
Etap drugi – Twoja decyzja: naprawiamy w stałym zakresie wycenionym na podstawie ustaleń albo nasz senior nadzoruje Twój zespół przy naprawach. Ten sam raport, dwie ceny, zero nacisku na droższą.
5
Ponowny test: powtarzamy audyt oprogramowania i pokazujemy, co się zmieniło – co kwartał, jeśli chcesz trzymać rękę na pulsie.

Idzie na produkcję, a Ty się pod tym podpisujesz? Mamy o czym rozmawiać.

CTO, którzy odziedziczyli platformę zbudowaną przez kogoś tańszego. Founderzy dwa tygodnie przed technicznym due diligence. Zespoły, które zaraz będą skalować system, którego nikt nigdy porządnie nie prześwietlił. Zarządy, którym obiecano liczbę, a dostały zapewnienie. Firmy, których poprzedni dostawca przestał odbierać telefon. Inspektorzy ochrony danych, którzy mają w ręku politykę, ale nie mają jak jej sprawdzić. Zarejestrowani brokerzy danych, którym tyka 45-dniowy zegar, a nikt z zewnątrz nie sprawdził, czy stojący za nim pipeline w ogóle działa. Każdy, komu autorzy kodu powiedzieli, że „jest w porządku”.

Nie wiesz, czy jesteś na tej liście? Przekaż nam repozytorium i tak. Powiemy Ci wprost, jeśli nie ma tam nic, za co warto wystawiać fakturę.

Ile kosztuje audyt oprogramowania – zanim zapytasz 🪙

Potrzebujesz taniej? Powiemy, które ustalenia mogą bezpiecznie poczekać.