Si Pracujesz z repozytoriami Git i martwisz się o ich bezpieczeństwo, Powiem ci, że istnieje rozwiązanie, które może pomóc Ci rozwiązać ten i nie tylko. Której przydatność Porozmawiajmy, że dzisiejsze imię to Gittuf który jest projektem rozwiązującym ograniczenia bezpieczeństwa i kontroli dostępu w Git.
Gittuf koncentruje się na opracowaniu hierarchicznego systemu weryfikacji zawartości repozytoriów Git. To narzędzie zapewnia dodatkową warstwę bezpieczeństwa oraz zestaw narzędzi do zarządzania kluczami deweloperskimi z dostępem do repozytorium, a także ustalania zasad dostępu do gałęzi, tagów i poszczególnych plików.
Jak działa Gittuf?
Gittuf Rozwiązuje te niedociągnięcia Git poprzez wdrożenie mechanizmów bezpiecznego zarządzania kluczami i szczegółowej kontroli dostępu, zainspirowanych The Update Framework (TUF) wykorzystywanych w projektach takich jak Docker, Fuchsia, AGL (Automotive Grade Linux) i PyPI w celu ochrony procesów aktualizacji, a także umożliwienia kojarzenia zaufanych kluczy za pomocą Sigstore tożsamości i obsługuje podpisywanie zatwierdzeń Git przy użyciu OIDC i GPG, a także kluczy SSH.
Projekt przechowuje dodatkowe informacje i artefakty weryfikacyjne w określonej przestrzeni nazw w składnicy obiektów Git, zapewniając zgodność z istniejącymi narzędziami i usługami, takimi jak GitHub i GitLab. W przypadku braku wsparcia Gittuf repozytorium pozostaje dostępne, ale możliwość dokładnej weryfikacji jego integralności jest ograniczona.
w Gittufie, Deweloperzy i wprowadzane przez nich zmiany są identyfikowani za pomocą kluczy cyfrowych i podpisów. System ten umożliwia bezpieczne generowanie nowych kluczy, niezawodną dystrybucję kluczy, przeprowadzanie okresowej rotacji kluczy, unieważnianie skompromitowanych kluczy, zarządzanie listami dostępu (ACL) i przestrzeniami nazw w repozytoriach Git.
Aby zweryfikować podpisy cyfrowe potwierdzenia i etykiety, Właściciel repozytorium generuje i dystrybuuje klucze publicznektóre są bezpośrednio powiązane z repozytorium. Mechanizmy unieważniania i zastępowania kluczy służą do zapobiegania promowaniu przez atakujących fałszywych zmian po uzyskaniu dostępu do kluczy w celu wygenerowania podpisów cyfrowych poszczególnych programistów. Klucze mają ograniczoną żywotność i wymagają ciągłych aktualizacji w celu ochrony przed podpisaniem starymi kluczami.
Co więcej, Gittuf prowadzi rejestr referencyjny wszystkich zmian, znany jako rekord stanu referencyjnego (RSL), którego integralność i ochronę przed zniekształceniami wstecznymi gwarantuje struktura drzewa „Merkle Tree”. Każda gałąź drzewa weryfikuje wszystkie leżące u jego podstaw gałęzie i węzły dzięki haszowi drzewa, dzięki czemu użytkownicy mogą zweryfikować poprawność całej historii przeszłych operacji i stanów. Chroni także przed „atakami stanu referencyjnego” na repozytoria Git i planuje dodać elastyczność algorytmów kryptograficznych, integrację z intoto dla certyfikatów śledzenia źródeł SLSA oraz ograniczenia dostępu do odczytu repozytoriów Git.
Warto zaznaczyć, że Gittuf jest obecnie w fazie pre-alfa, gdzie jego główne cechy są w trakcie rozwoju i obecnie głównym priorytetem jest przejście w stronę wersji alfa, w której prace będą polegały na zaimplementowaniu głównego dokumentu projektowego, który zawiera takie funkcjonalności jak polityki dla Git i przestrzeni nazw plików, dystrybucja kluczy, rejestrowanie stanu referencyjnego i możliwość synchronizacji metadanych Gittuf ze zdalnymi repozytoriami.
W związku z tym plan działania Gittuf przedstawia plan wykorzystania samego narzędzia Gittuf w jego rozwoju i zapewnianiu bezpieczeństwa. Proces dogfoodingu Gittuf’a Będzie ono realizowane w kilku etapach:
- Faza 1
Na tym początkowym etapie do tworzenia i podpisywania wpisów RSL w imieniu opiekunów Gittuf zostanie wykorzystana automatyzacja, a dla każdego żądania ściągnięcia połączonego z gałęzią główną zostanie zarejestrowany certyfikat GitHub, zapewniając ścieżkę audytowalną dla przyszłych inspekcji przy użyciu Gittuf. - Faza 2
Wraz z poprawą obsługi poleceń i użyteczności narzędzia Gittuf, przejście rozpocznie się w taki sposób, że przynajmniej niektóre wpisy RSL będą wydawane przez klucze lokalne przechowywane przez opiekunów. - Faza 3
W miarę zbliżania się Gittuf do wersji 1 można spodziewać się płynniejszego przejścia do podpisywania głównie w trybie offline. Będzie to wymagało dodatkowych ulepszeń użyteczności. Mamy nadzieję, że w tej końcowej fazie rozwiązaliśmy problemy związane z aktywnym wykorzystaniem Gittuf, aby kontynuować prace nad stabilną i funkcjonalną wersją.
Jeżeli jesteś chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły W poniższym linku.