CounterProof to niezależna praktyka adwersaryjnego przeglądu nowoczesnych baz kodu — przede wszystkim kodu pisanego przez maszyny. Dostarczamy to jedno, czego nie da się wytworzyć wewnętrznie: niezależną, podpisaną ocenę bezpieczeństwa z gradacją dowodów, zbudowaną pod kątem kontroli regulatorów, nabywców, ubezpieczycieli i klientów korporacyjnych.
Kod napisany przez model i przejrzany przez ten sam model nie został przejrzany przez nikogo.
Porozmawiajcie z nami, zanim zrobi to termin →Nikt nie kupuje przeglądu kodu. Kupuje się to, co on otwiera.
Nie czytacie tego dlatego, że obudziliście się z pragnieniem oceny bezpieczeństwa. Coś żąda od was dowodów.
Trzej z tych czterech nigdy nie przyjmą waszego słowa o waszym własnym kodzie — niezależność jest właściwością, którą kupują, i jedyną właściwością, której żaden zespół nie może dostarczyć o własnej pracy. Czwarty, regulator, często przyjmie waszą samoocenę — a potem rozliczy was z każdego dokumentu, który za nią stoi. Tak czy inaczej, dowody muszą się obronić. To właśnie wytwarzamy.
Produkt końcowy jest sednem.
Zlecenie wytwarza CounterProof Assessment pod trwałym identyfikatorem zlecenia (CPR-YYYY-NNN — to, co cytują wasi opiekunowie kodu, wasz nabywca albo wasze commity z poprawkami). Każde ustalenie jest albo potwierdzone względem waszego kodu źródłowego — dokładny plik i wiersz, ścieżka reprodukcji, klasyfikacja skutków — albo jawnie oznaczone jako jedynie uprawdopodobnione. Nic dopchanego, nic wygenerowanego przez skaner, nic, na czym nie można działać. Akta odnotowują także to, co sprawdziliśmy i czego nie znaleźliśmy: zapisany wynik negatywny jest tu produktem, a nie nieudanym zleceniem.
Każde ustalenie wskazuje szczebel dowodowy, który faktycznie osiągnęło — ślad w źródle, dowód kompilacji, test albo reprodukcja w działaniu — i nigdy nie sugeruje wyższego. Każde odwołanie ścieżka:wiersz jest maszynowo rozwiązywane względem dokładnie tej rewizji, którą przeglądaliśmy, zanim raport opuści nasze ręce. Możecie sprawdzić naszą pracę. To celowe.
Gdy ustalenie nie przetrwa weryfikacji — waszej, waszych opiekunów kodu albo naszego własnego ponownego badania — wycofujemy je na piśmie, z podaniem powodu, pod tym samym identyfikatorem zlecenia. Robimy to nieproszeni; druga strona nie musi o to występować. Dziennik wycofań nie jest przyznaniem się; jest mechanizmem.
Okaz — kształt ustaleniaOkaz ilustracyjny, niepochodzący ze zlecenia klienta; identyfikatory są wypełniaczami. Raporty wystawiamy po angielsku.
„Świadkowie są już darmowi. Edycja krytyczna nie jest.”
Rynek zaczął konkurować liczbą ustaleń, jakie narzędzie potrafi wygenerować — ale ustalenie to świadek, nie wyrok. Odwołanie plik:wiersz czytelnik może otworzyć i sprawdzić w minutę; goły „Krytyczny” — nie. W naszych aktach waga jest wynikiem szczebla dowodowego, nigdy wsadem do marketingu. Świadkowie są już darmowi. Edycja krytyczna nie jest. Ustalenie to nie wyrok →
Cztery kroki. Znacie zakres, zanim zapłacicie, a akta zostają u was.
Pierwsze zlecenie nie musi obejmować wszystkiego, co wydajecie. Mały, dobrze dobrany zakres — jeden moduł, jedna granica zaufania — daje te same możliwe do obrony akta w rozmiarze, który potraficie ocenić, i może być pierwszym elementem dowodu z części II pkt 3, jaki producent składa.
Płynność nie jest oznaką jakości. Jest trybem awarii.
Kiedy człowiek pisze linijkę kodu, wątpi w nią. Wie, że zgadywał — a ta wątpliwość jest zabezpieczeniem, bo to ona każe mu pójść i rzecz przetestować.
Model pisze tę samą linijkę płynnie, dokładnie tym głosem, którym pisze linijki poprawne. Dla czytającego płynność wygląda jak kompetencja. Młodszy inżynier podaje wam coś widocznie surowego i to sprawdzacie. Model podaje dwieście wypolerowanych linijek z pewnym uzasadnieniem każdej — i nie sprawdzacie.
Pułapką nie jest to, że modele mylą się częściej niż ludzie. Jest nią to, że ich błędne odpowiedzi przychodzą ubrane w ten sam głos co poprawne — nieodróżnialne z zewnątrz, bo są nieodróżnialne od wewnątrz.
Potem ten sam proces pisze test, który certyfikuje kod, i komentarz, który go objaśnia. Cała trójka się zgadza, bo cała trójka wyszła z jednego miejsca. Ta zgodność wygląda jak trzy niezależne potwierdzenia. Jest jednym.
„Ich błędne odpowiedzi przychodzą tym samym głosem co poprawne.”
Użyteczne pytanie nie brzmi więc, czy model potrafi napisać dobry kod — potrafi, z metodą wokół siebie. Brzmi ono: co właściwie mierzy wasz proces przeglądu, gdy wszystko, co bada, wyszło z tego samego źródła — kod, test, objaśnienie, a coraz częściej i narzędzie, które zbudowaliście do ich sprawdzania. Zrobione dobrze, wynik jest dobry. Zrobione źle — czyta się dokładnie tak samo.
Przegląd znajduje to, co potrafi znaleźć jego recenzent.
Przepuśćcie jeden model przez bazę kodu, a krótki raport powie wam coś wąskiego: ten model, w tej uprzęży, tego dnia, wydobył na powierzchnię to. Czego nie wydobył, nie ma w raporcie — i z konstrukcji być nie może.
Jak bardzo to się liczy, zależy od tego, jak mocno nakładają się martwe pola różnych recenzentów — czego dla przeglądu kodu nikt nie zmierzył. Badania nad skorelowanymi błędami między dostawcami wykazały istotne nakładanie się w testach wielokrotnego wyboru i w zadaniu selekcji CV; czy przenosi się to na wykrywanie podatności, nie zostało ustalone. Co pokazują: różni dostawcy nie są automatycznie od siebie niezależni.
Kilka rzeczy potrafi ograniczyć to, co pojedynczy przebieg przeoczył: dowód, zestaw testów, fuzzer, specjalista, zasiane defekty albo recenzent różny od pierwszego. Czego to nie ograniczy: czytania tego samego przebiegu z większą pewnością siebie.
Nie wykazaliśmy, że przegląd wielorecenzencki łapie więcej realnych defektów — eksperyment, który zaprojektowaliśmy, by to sprawdzić, wycofano przed uruchomieniem, i mówimy to publicznie. Węższa teza jest tą, za którą stoimy: czysty przebieg jednego recenzenta to wynik o ograniczonym zakresie, a czytanie go jako świadectwa czystości to wniosek, którego ten wynik nie unosi. Pełny wywód (po angielsku) →
Długi wywód spisaliśmy, łącznie z tym, gdzie leżą granice naszej własnej metody i czego nie wykazaliśmy: wprowadzenie prostym językiem oraz pełny artykuł za nim, opublikowany jako preprint pod doi:10.5281/zenodo.22030516 (CC BY 4.0), po angielsku. Nie przeszedł recenzji naukowej i mówi to wprost.
Możecie uruchomić te same modele. Nie możecie być niezależni.
Przepuszczenie kilku modeli AI przez własny kod replikuje nasze narzędzia, a gubi właściwość, o którą chodzi. Wasz zespół wybiera, co recenzenci widzą, ustawia pytania i ocenia odpowiedzi — a każdy z tych wyborów wnosi wasze założenia prosto z powrotem do przeglądu. To nie jest brak dyscypliny; to struktura. Autor systemu nie może być jego własnym arbitrem.
Więc nawet nieskazitelny przegląd wewnętrzny pozostaje waszym słowem o waszym własnym kodzie. Tym, co oni kupują, jest strona trzecia gotowa się podpisać. Nie jesteśmy jednostką notyfikowaną i nie certyfikujemy zgodności; wytwarzamy niezależne dowody, które wspierają waszą ocenę i są zbudowane tak, by mogła je ponownie zbadać czyjakolwiek inna.
Metodzie jest obojętne, kto — albo co — napisał wasz kod. Kodowi pisanemu przez ludzi niezależności brakuje równie często. Kod pisany przez maszyny sprawia tylko, że tej luki nie da się już ignorować.
I tak byście to odkryli. Lepiej, żebyście usłyszeli to od nas.
CounterProof jest częścią grupy budującej infrastrukturę płatności i przechowywania aktywów cyfrowych. To tam wykuto tę metodę — i znaczy to, że jeśli budujecie na tych rynkach, nasza spółka powiązana może z wami sąsiadować albo z wami konkurować.
A zatem: przed każdym zleceniem mówimy wam na piśmie, co dokładnie grupa buduje i gdzie działa. Wy decydujecie, czy to akceptowalne — i decydujecie, zanim nam cokolwiek zapłacicie. Jeśli to nieakceptowalne, to uprawniona odpowiedź i wolimy ją usłyszeć na początku.
Co nasze roszczenie niezależności obejmuje, a czego nie — precyzyjnie: nie wydajemy żadnej oceny kodu napisanego przez CounterProof ani przez jakąkolwiek spółkę naszej grupy. Ta granica jest strukturalna. To stwierdzenie o tym, czyj kod przeglądamy, a nie roszczenie do braku interesów handlowych gdziekolwiek w pobliżu waszego sektora. Nasze są wymienione powyżej, a wy decydujecie, czy są akceptowalne, zanim nam cokolwiek zapłaciliście.
Trzy osoby, z nazwiska, w aktach.
Podpisana ocena znaczy, że widnieje na niej czyjeś nazwisko. Oto te osoby — i które nazwisko za co odpowiada.
Jesteśmy praktyką rodzinną — ojciec, syn i córka — a ława recenzencka liczy dwie osoby. Oba te fakty zespół due diligence odkryje sam, więc wolimy powiedzieć je tutaj: ława dwóch recenzentów bierze mniej zleceń niż firma, odmawia wszystkiego spoza swojej dziedziny i nie może ukryć słabego przebiegu za marką. To jest ta wymiana — i to jest powód, dla którego metoda jest spisana i zmechanizowana, zamiast być noszona w czyjejś głowie.
Co czytamy — i co sprawdzamy.
Jev od TypeSafe AI to model nowego rodzaju: nigdy nie pisze tekstu, zwraca wyłącznie typowane decyzje z prawdopodobieństwami. Jego benchmark ocenia go wobec średniej z dwóch innych modeli AI. Otworzyliśmy przypadki, które TypeSafe publikuje, i policzyliśmy. W 8 z 19 przypadków, w których obaj oceniający odpowiedzieli, oceniający różnili się między sobą. Każdy z czterech przypadków, które TypeSafe publikuje pod etykietą „wszystkie trzy chybiają odniesienia”, to przypadek, w którym samo odniesienie było sporne. Notatka pisana prostym językiem o tym, co to znaczy dla sposobu, w jaki oceniamy AI.
Znajdowanie staniało; reszta cyklu życia nie. Przejście etap po etapie (identyfikacja, rozstrzyganie, decyzja, naprawa, zgłoszenie, przechowywanie) wraz z tym, czego unijny Cyber Resilience Act wymaga na każdym z nich, oraz miejsce, w którym sytuuje się niezależny przegląd adwersaryjny: w etapach po pierwszym.
Wyrażenie obejmuje dziś cztery praktyki, od krytycznego promptu po dom ludzi myślących jak napastnik. Każda daje ramę napastnika; żadna nie daje sama z siebie podpisanej dokumentacji od recenzentów niezależnych od autora waszego kodu, stopniowanej według dowodu osiągniętego przez każde ustalenie. Co dostarczamy, czego drugi model nie wytworzy i co mówimy wam przed zakupem.
Porozmawiajcie z nami, zanim zrobi to termin.
Zapytania trafiają do Elenory Soons, account manager: