23. Bölüm: Akash Mukherjee, Mountain View, CA'da (Temmuz 2021)
Önceki bölümler
Chrome'u geliştirdiğimizde, birçok parça, bir yapının çıktısını etkileyen ortama katkıda bulunur. İşletim sisteminden yüklenen destekleyici kitaplıklar, üçüncü taraf bağımlılıkları, yüklü araçlar ve çalışma zamanı ortamının kendisi; her biri çeşitli güvenlik hijyen seviyeleriyle üretilmiştir.
Google geçmişte ikili yetkilendirme, Kuruluş içi riskleri en aza indiren dahili bir çalışma zamanı uygulama kontrolü üretim yazılımı ve yapılandırmasının Google’da dağıtılmasını düzgün şekilde incelendiğinden ve izlenebilir bir kaynağa sahip olduğundan emin olun.
İnşaatın tek bir kişinin tehlikeye girmemesini sağlayarak ve LUCI üzerine inşa edilen eser zincirinin farkına varmadan, Google, kullanıcılara sağladığımız yazılımlardaki riski azaltır.
Geçen yıldan itibaren, sistem her derleme için doğrulanabilir bir derleme manifesto: imzalı bir JWT yapıda yer alan kaynakları tam olarak açıklamak, Üretilen ikili programların ve yapıların kriptografik karmaları ve tam derleme parametreleri. Bu derleme manifesti, bir yapıyı kaynaklara kadar izlememize olanak tanır. Böylece, derleme süreci ve çıktıları doğrulanabilir hale gelir.
Ayrıca, manifesto, oluşturulan yapının değiştirilmediğini doğrulamamıza da olanak tanır. imzayı geçersiz kılacağından emin olun. Toplamda, Böylece, güvenilir sistemler arasında geçiş yapan eserler için bir gözetim zinciri elde ederiz.
İkili Program Yetkilendirmesi, iki adımlı bir sistem olarak uygulanır. Sistem bir provenance oluşturur derleme zamanı bilgileriyle politikalar, yazılım imzalama veya yüklenmeden önce uygulanır.
def CreateProvenance(self, build_manifest: Mapping[str, Any]):
"""Builder generates and signs provenance given build manifest. Signed JWT is placed
alongside built artifact."""
Chrome için, üretilen yazılım yapılarını Google'ın imzalama altyapısını kullanarak imzalamadan önce Politika, derlemenin belirli minimum güvenlik gereksinimlerini karşılamak için zorunlu kılınır.
def VerifyProvenance(self, artifact_hash: str, provenance: str):
"""Provenance is verified using a policy engine service before signing an artifact."""
Gereksinimler yaklaşık 4 alana ayrılır:
- Kaynak kontrolü: Derlemeye eklenen verileri korur.
- Derleme: Kaynağı ikili sisteme dönüştüren işlemi korur.
- Kanıt: Doğrulanabilir derleme manifesti içeren onay.
- Politika: Belirli bir yapının belirli bir bağlamda uygun olup olmadığını belirleyen kurallar.
Chrome ve altyapı için CI ve CD işlemlerinin bir parçası olarak politika yaptırım denetimi uygulama kodu doğrulamamızı sağladı. belirli minimum güvenlik standartlarını karşılamasını sağlar. Bu, iletişim kurmanın yeterliliğini kısıtlamak için kullanılan kuruluş içinden veya güvenliği ihlal edilmiş olabilecek kuruluş içinden bir hesabın kullanıcılara dağıttığımız yazılımı değiştirmek için kullanılır.