Obserwatorium bezpieczeństwa wydań · v0.7.2
Sprawdź, co naprawdę mówi stan bezpieczeństwa Twojej instancji Git.
VersionSec sprawdza jedną instancję Gitea lub Forgejo, która należy do Ciebie albo do której masz wyraźną autoryzację. Tylko czyta i niczego nie zmienia. Przegląd konfiguracji i przegląd runnera działają całkowicie offline, bez żadnych żądań sieciowych.
- tylko odczyt
- jeden autoryzowany cel
- deterministycznie
- Gitea i Forgejo
- MD / JSON / SARIF
Apache-2.0 - bez konta, bez hostowanej warstwy sterującej, bez telemetrii.
$ versionsec scan \
--url https://git.example.com \
--authorized --product gitea \
--format md,json,sarif
FG-VER PASS 1.27.3 confirmed
FG-CVE-27771 PASS fixed in this version
FG-ANON WARN anonymous API reachable
FG-REG PASS OCI root requires auth
FG-SIGNIN WARN repo browser is public
# 22 stable IDs · md + json + sarif written
- aktualne wydanie
- v0.7.2
- kontrole
- 22 stabilnych ID
- testy
- 433 przechodzi
- proweniencja
- podpisana atestacja
- licencja
- Apache-2.0
Pytania o stan, na które zwykle odpowiada się z pamięci
Większość własnych instancji konfiguruje się raz, a potem ufa im bezterminowo. VersionSec zamienia cztery powracające pytania w dowody, które można zachować, porównać i przekazać audytorowi.
Czy działająca wersja faktycznie jest podatna?
Stan wersji jest oceniany względem nazwanych biuletynów. Nieznana wersja jest raportowana jako nieznana - nigdy po cichu jako zaliczona.
Co widzi anonimowy odwiedzający?
Odpytywany jest zamknięty zestaw dozwolonych ścieżek, wyłącznie metodą GET, a raportowany jest dokładnie zaobserwowany status.
Czy konfiguracja zgadza się z tym, co zakładamy?
Zanonimizowany zrzut konfiguracji jest sprawdzany całkowicie offline, więc sama instancja nie jest dotykana.
Co zadanie CI na runnerze może zrobić hostowi?
Tryb uprzywilejowany, ekspozycja gniazda Dockera, montowania hosta, tryb sieci i czas życia poświadczeń są oceniane z zadeklarowanego zrzutu.
Cztery tryby przeglądu, jeden deterministyczny raport
Każdy tryb daje tę samą strukturę raportu, więc wyniki pozostają porównywalne w czasie.
Przegląd stanu na żywo
Jeden cel na uruchomienie, wyłącznie żądania GET wobec zamkniętej listy ścieżek. Bez zapisu, bez zmiany stanu, bez wyszukiwania innych hostów.
- FG-VER
- FG-ANON
- FG-HTTP
- FG-REG
- FG-SIGNIN
Stan wersji wobec biuletynów
Nazwane biuletyny oceniane względem wersji potwierdzonej przez operatora: podatna, naprawiona albo nieznana - powiedziane wprost.
- FG-CVE-27771
- FG-CVE-78433
- FG-FJ-TEMPLATE-20260910
Offline'owy przegląd konfiguracji
Sprawdza dostarczony przez Ciebie zanonimizowany zrzut. Zero żądań sieciowych, więc jest bezpieczny także tam, gdzie skan na żywo jest niedozwolony.
- FG-CONFIG-REGISTRATION
- FG-CONFIG-SIGNIN
- FG-CONFIG-PRIVACY
- FG-CONFIG-MFA
Offline'owy przegląd runnera Actions
Sprawdza jeden zadeklarowany zrzut runnera wobec zamkniętego schematu. Istotność wynika z zadeklarowanego zaufania do obciążeń, a nie z samej wersji.
- FG-RUNNER-PRIVILEGED
- FG-RUNNER-DOCKER
- FG-RUNNER-VOLUMES
- FG-RUNNER-NETWORK
Wersje kwalifikowane, a nie pełne wsparcie
Gitea i Forgejo mają osobne providery z własnymi kontrolami. To dokładnie te wersje, wobec których wydanie jest testowane - nie obietnica dla każdej wersji w obu liniach.
Inne wersje zwykle działają, ale poza tymi celami nic nie jest przedstawiane jako zweryfikowane.
Jak przebiega uruchomienie
Deklaracja celu
Podajesz jedną instancję i jej produkt oraz potwierdzasz, że masz autoryzację do jej sprawdzenia.
Ograniczone zbieranie
Odpytywane są tylko dozwolone ścieżki, wyłącznie GET. Tryby offline czytają plik i nie wysyłają nic.
Deterministyczna ocena
Każda kontrola zwraca PASS, FAIL, WARN, NOT_APPLICABLE albo UNKNOWN. Brak dowodu nigdy nie jest zaliczeniem.
Raport i eksport
Markdown dla ludzi, JSON dla pipeline'ów, SARIF 2.1.0 dla narzędzi code-scanning. Wszędzie stabilne ID.
Dowody i proweniencja
Opublikowane artefakty to dokładnie te, które zbudowało CI. Ich pochodzenie sprawdzisz jednym poleceniem, a zmodyfikowana kopia zostaje odrzucona.
$ gh attestation verify \
versionsec-0.7.2-py3-none-any.whl \
--repo gexiro-global/versionsec
# wheel sha256
ea7d40357d808ed490113a62b6dae7fe
4af7e655b61c687c77689b4041828f5d
# sdist sha256
fcbacb335a17d43436c819507fdb968a
12ff0754644ea6ee7e0e73fc5221b79d
Podpisana proweniencja builda
Oba artefakty mają atestację Sigstore wygenerowaną przez własny workflow CI projektu.
Opublikowane sumy kontrolne
SHA-256 dla wheel i sdist są dołączone do wydania i zgadzają się z atestowanymi obiektami.
Testy kontraktu wydania
Każde udokumentowane polecenie jest uruchamiane jako realny podproces wobec zainstalowanych skryptów.
Stabilne identyfikatory
ID znalezisk i identyfikatory schematu nie zmieniają się między wydaniami z powodów brandingowych.
Formaty wyjścia
Markdown
Czytelny raport z pełną tabelą znalezisk, dla ludzi i do załączania w zgłoszeniach.
JSON
Stabilny dokument maszynowy z wersjonowanym identyfikatorem schematu dla pipeline'ów.
SARIF 2.1.0
Standardowy format wymiany analizy statycznej, dla dashboardów code-scanning i adnotacji CI.
VersionSec dawniej nazywał się ForgeGuard
Wydania do 0.6.0 włącznie były publikowane jako ForgeGuard i pozostają dostępne oraz niezmienione. Od 0.7.0 kanoniczna nazwa to VersionSec.
Dotychczasowi użytkownicy nic nie tracą: polecenie forgeguard i import forgeguard działają dalej przez warstwę zgodności wskazującą na tę samą implementację, a FORGEGUARD_TOKEN jest nadal czytany.
Dlaczego identyfikatory FG-* zostają
ID znalezisk takie jak FG-VER i identyfikatory schematu takie jak forgeguard.assessment.v1 to tożsamość kontraktu, nie branding. Zmiana nazw zepsułaby istniejące procesy raportowania, listy wyjątków i baseline'y SARIF - dlatego pozostają celowo bez zmian.
Errata do 0.7.0
W 0.7.0 brakowało przełącznika wersji, więc versionsec --version kończyło się błędem nieznanej opcji. Skanowanie, przegląd konfiguracji i przegląd runnera działały poprawnie. 0.7.1 to naprawia i zastępuje 0.7.0.
Instalacja
$ python -m pip install versionsec==0.7.2
$ versionsec --version
VersionSec 0.7.2
# existing ForgeGuard users
$ python -m pip install forgeguard==0.7.2
$ versionsec providers
$ versionsec checks
$ versionsec config review --snapshot snap.json
$ versionsec runner review --snapshot runner.json
Czego VersionSec nie robi
Użycie jest ograniczone do instancji, która należy do Ciebie albo do której masz wyraźną autoryzację. Podstawa prawna pozostaje odpowiedzialnością operatora.
Pytania, które naprawdę padają
Czy Gitea i Forgejo są wspierane tak samo?
Czy potrzebny jest dostęp sieciowy?
Czy potrzebny jest token administratora?
Czy coś zmieni na mojej instancji?
Co, jeśli kontroli nie da się ocenić?
Czy wersja spoza listy kwalifikowanej jest niewspierana?
Używam ForgeGuard. Co się zepsuje?
Jaka licencja?
Kontakt
W sprawie narzędzia, integracji albo ograniczonego zakresowo przeglądu hardeningu. Wybierz temat, żeby wiadomość trafiła we właściwe miejsce.