Gizli dizi taraması

Mühendislik sistemlerinde kullanıma sunulan kimlik bilgileri, saldırganlar için kolayca yararlanılabilir fırsatlar sağlar. Bu tehdide karşı savunmak için Azure DevOps için GitHub Gelişmiş Güvenlik, kaynak kodunuzda kimlik bilgilerini ve diğer hassas içeriği tarar. Anında iletme koruması ayrıca ilk etapta tüm kimlik bilgilerinin sızdırılmasını önler.

Deponuz için gizli dizi taraması, geçmiş genelinde kaynak kodunuzda zaten mevcut olabilecek gizli dizileri tarar ve anında iletme koruması, yeni gizli dizilerin kaynak kodda kullanıma sunulmasını önler.

Azure DevOps için GitHub Advanced Security, Azure Repos ile çalışır. GitHub depolarıyla GitHub Gelişmiş Güvenlik'i kullanmak istiyorsanız bkz . GitHub Gelişmiş Güvenlik.

Gizli dizi tarama uyarıları hakkında

Gelişmiş Güvenlik etkinleştirildiğinde, çok çeşitli hizmet sağlayıcıları tarafından verilen gizli diziler için depoları tarar ve gizli dizi tarama uyarıları oluşturur.

Kaynağa erişim için eşleştirilmiş kimlik bilgileri gerekiyorsa, gizli dizi taraması yalnızca aynı dosyada çiftin her iki bölümü de algılandığında bir uyarı oluşturabilir. Eşleştirme, en kritik sızıntıların kısmi sızıntılarla ilgili bilgilerin arkasına gizlenmesini sağlar. Çift eşleştirme, sağlayıcının kaynağına erişmek için çiftin her iki öğesinin de birlikte kullanılması gerektiğinden hatalı pozitif sonuçları azaltmaya da yardımcı olur.

Azure DevOps'ta Repos>Gelişmiş Güvenlik'teki Gelişmiş Güvenlik sekmesi, güvenlik uyarılarınızı görüntülemek için merkezdir. Gizli dizi tarama uyarılarını görüntülemek için Gizli Diziler sekmesini seçin. Duruma ve gizli dizi türüne göre filtreleyebilirsiniz. Düzeltme kılavuzu da dahil olmak üzere daha fazla ayrıntı için bir uyarıya gidebilirsiniz. Gelişmiş Güvenlik etkinleştirildikten sonra, tüm geçmiş işlemeler de dahil olmak üzere seçili depo için tarama başlar. Zaman içinde, tarama ilerledikçe uyarılar görünmeye başlar.

Dallar yeniden adlandırılırsa sonuçları etkilemez. Yeni adın görüntülenmesi 24 saat kadar sürebilir.

Etkin gizli dizi tarama uyarılarını gösteren ekran görüntüsü

Kullanıma sunulan gizli dizileri düzeltmek için, kullanıma sunulan kimlik bilgilerini geçersiz kılın ve yerine yeni bir tane oluşturun. Yeni oluşturulan gizli dizi daha sonra kodu doğrudan koda geri göndermeyen bir şekilde güvenli bir şekilde depolanmalıdır. Örneğin, gizli dizi Azure Key Vault'ta depolanabilir. Çoğu kaynak hem birincil hem de ikincil kimlik bilgilerine sahiptir. Birincil kimlik bilgilerini ikincil kimlik bilgileri yerine üzerine alma yöntemi, aksi belirtilmediği sürece aynıdır.

Gizli dizi tarama uyarılarını yönetme

Depo için uyarıları görüntüleme

Depo için katkıda bulunan izinleri olan herkes, Depolar altındaki Gelişmiş Güvenlik sekmesinde bir depo için tüm uyarıların özetini görüntüleyebilir. Tüm gizli dizi tarama uyarılarını görüntülemek için Gizli Diziler sekmesini seçin.

Deponuz için Yakın zamanda Gelişmiş Güvenlik etkinleştirildiyse, Gelişmiş Güvenlik'in deponuzu taramaya devam ettiğini gösteren bir kart görebilirsiniz.

Gizli dizileri taramayı gösteren ekran görüntüsü

Tarama tamamlandıktan sonra tüm sonuçlar görüntülenir. Deponuzun tüm dallarında ve geçmişinde algılanan her benzersiz kimlik bilgisi için tek bir uyarı oluşturulur. Tek bir uyarıda toplandığı için dal filtresi yoktur.

Sağlayıcı olmayan gizli diziler, gizli dizi tarama sekmesindeki güvenilirlik açılan listesinden "Diğer" seçilerek görüntülenebilir.

GitHub Gelişmiş Güvenlik gizli dizi tarama güvenilirlik filtresinin ekran görüntüsü.

Uyarı ayrıntıları

Bir uyarıya gittiğinizde, ayrıntılı bir uyarı görünümü görüntülenir ve bulma hakkında daha fazla ayrıntı ortaya çıkar ve uyarıyı çözümlemek için belirli düzeltme yönergeleri sağlar.

Gizli dizi tarama uyarısının ayrıntılarını gösteren ekran görüntüsü

Section Açıklama
Konum Konumlar bölümünde gizli dizi taramasının sızdırılan kimlik bilgilerini keşfettiği yollar ayrıntılı olarak ele alınır. Geçmişte sızdırılan kimlik bilgilerini içeren birden çok konum veya birden çok işleme olabilir. Bu konumların ve işlemelerin tümü Konumlar altında kod parçacığına doğrudan bağlantı ve tanımlandığı işleme ile görüntülenir.
Öneri Öneri bölümünde düzeltme kılavuzu veya tanımlanan kimlik bilgileri için üçüncü taraf belge düzeltme kılavuzu bağlantısı yer alır.
Uyarıyı kapat Gizli dizi tarama uyarıları için otomatik düzeltme davranışı yoktur. Tüm gizli dizi tarama uyarıları, uyarı ayrıntı sayfası aracılığıyla sabit olarak el ile doğrulanmalıdır. Gizli dizinin iptal edilmiş olduğunu doğrulamak için Kapat düğmesini seçin.
Önem Tüm gizli dizi tarama uyarıları kritik olarak ayarlanır. Kullanıma sunulan tüm kimlik bilgileri, kötü amaçlı bir aktör için potansiyel olarak bir fırsattır.
Ayrıntıları bulma Kimlik bilgilerini bulmak için kullanılan kimlik bilgisi ve kural türü, uyarı ayrıntıları sayfasının kenar çubuğundaki Ayrıntıları bulma altında listelenir.

Sağlayıcı olmayan gizli dizilerde Güvenilirlik: diğer etiketi uyarı ayrıntı görünümünde önem derecesi rozeti tarafından da görünür.

GitHub Gelişmiş Güvenlik gizli dizi tarama genel uyarı ayrıntılarının ekran görüntüsü.

Gizli dizi tarama uyarılarını düzeltme

Her gizli dizi, yerine yeni bir gizli diziyi iptal etme ve yeniden oluşturma konusunda size yol gösterecek benzersiz düzeltme adımlarına sahiptir. Uyarı ayrıntıları, her uyarı için belirli adımları veya belgeleri paylaşır.

Gizli dizi tarama uyarısı kapatılana kadar açık kalır. Gizli dizi tarama uyarısının düzeltildiğini test etmek için:

  1. Kapatmak istediğiniz uyarıya gidin ve uyarıyı seçin.
  2. Uyarıyı kapat açılan listesini seçin.
  3. Henüz seçili değilse Sabit'i seçin.
  4. Uyarıyı göndermek ve kapatmak için Kapat'ı seçin.

Gizli dizi tarama uyarısını kapatmayı gösteren ekran görüntüsü

Gizli dizi tarama uyarılarını kapatma

Gelişmiş Güvenlik'te uyarıları kapatmak için uygun izinlere sahip olmanız gerekir. Varsayılan olarak, yalnızca proje yöneticileri Gelişmiş Güvenlik uyarılarını kapatabilir. Gelişmiş Güvenlik izinleri hakkında daha fazla bilgi için bkz . Gelişmiş Güvenlik izinlerini yönetme.

Uyarıyı kapatmak için:

  1. Kapatmak istediğiniz uyarıya gidin ve uyarıyı seçin.
  2. Uyarıyı kapat açılan listesini seçin.
  3. Henüz seçili değilse, kapatma nedeni olarak Risk kabul edildi veya Hatalı pozitif seçeneğini belirleyin.
  4. Açıklama metin kutusuna isteğe bağlı bir açıklama ekleyin.
  5. Uyarıyı göndermek ve kapatmak için Kapat'ı seçin.
  6. Uyarı durumu Açık olan Kapalı olarak değişir ve kapatma nedeninizi görüntüler.

Gizli dizi tarama uyarısının kapatma ayrıntılarını gösteren ekran görüntüsü

Daha önce kapatılan tüm uyarılar el ile yeniden açılabilir.

Güvenliği aşılmış gizli dizilerin güvenliğini sağlama

Bir gizli dizi bir depoya işlendikten sonra gizli dizi tehlikeye girer. Microsoft, gizliliği ihlal edilen gizli diziler için aşağıdaki eylemleri önerir:

  • Güvenliği aşılmış bir Azure DevOps kişisel erişim belirteci için güvenliği aşılmış belirteci silin, yeni bir belirteç oluşturun ve eski belirteci kullanan hizmetleri güncelleştirin.
  • Diğer tüm gizli diziler için önce Azure Repos'a işlenen gizli dizinin geçerli olduğunu doğrulayın. Bu durumda yeni bir gizli dizi oluşturun, eski gizli diziyi kullanan hizmetleri güncelleştirin ve ardından eski gizli diziyi silin.
  • kuruluşunuzun kaynaklarında güvenliği aşılmış belirtecin gerçekleştirdiği tüm eylemleri belirleyin.

Gizli diziyi güncelleştirirken, yeni gizli diziyi güvenli bir şekilde depoladığınızdan ve her zaman erişildiğinden ve hiçbir zaman düz metin olarak depolanmadığından emin olun. Bu olasılıklardan biri Azure Keyvault veya diğer gizli dizi yönetimi çözümleri olabilir.

Gizli dizi anında iletme koruması

Anında iletme koruması, yüksek güvenilirlikli gizli diziler için tüm gelen gönderimleri denetler ve gönderimin geçmesini önler. Bir hata iletisi, bunları kaldırmanız veya gerekirse gizli dizileri göndermeye devam etmek için tanımlanan tüm gizli dizileri görüntüler.

Anında iletme koruması uyarıları hakkında

Anında iletme koruması uyarıları, anında iletme koruması tarafından bildirilen kullanıcı uyarılarıdır. Anında iletme koruması olarak gizli dizi tarama şu anda bazı hizmet sağlayıcıları tarafından verilen gizli diziler için depoları tarar.

Kaynağa erişim için eşleştirilmiş kimlik bilgileri gerekiyorsa, gizli dizi taraması yalnızca aynı dosyada çiftin her iki bölümü de algılandığında bir uyarı oluşturabilir. Eşleştirme, en kritik sızıntıların kısmi sızıntılarla ilgili bilgilerin arkasına gizlenmesini sağlar. Çift eşleştirme, sağlayıcının kaynağına erişmek için çiftin her iki öğesinin de birlikte kullanılması gerektiğinden hatalı pozitif sonuçları azaltmaya da yardımcı olur.

Bu belirteçler en son sürümlerine göre daha fazla sayıda hatalı pozitif sonuç üreteediğinden, anında iletme koruması belirli belirteçlerin eski sürümlerini engellemeyebilir. Anında iletme koruması eski belirteçleri de engellemeyebilir. Azure Depolama Anahtarları gibi belirteçler için Gelişmiş Güvenlik yalnızca son oluşturulan belirteçleri destekler, eski desenlerle eşleşen belirteçleri desteklemez.

Komut satırından anında iletme koruması

Anında iletme koruması, Azure DevOps Git'e yerel olarak yerleşik olarak sağlanır. İşlemeleriniz tanımlanmış bir gizli dizi içeriyorsa gönderiminizin reddedildiğine dair bir hata görürsünüz.

VS Code'dan engellenen git gönderimi gösteren ekran görüntüsü

Web arabiriminden anında iletme koruması

Anında iletme koruması web arabiriminden de çalışır. Bir işlemede gizli dizi tanımlanırsa, değişikliklerinizi göndermenizi engelleyen aşağıdaki hata bloğunu görürsünüz:

AzDO web kullanıcı arabiriminden engellenen git gönderimini gösteren ekran görüntüsü

Gönderiminiz engellendiyse yapmanız gerekenler

Anında iletme koruması, genellikle (ancak bunlarla sınırlı olmamak üzere) kaynak kodu veya JSON yapılandırma dosyaları gibi düz metin dosyalarında bulunan gizli dizileri engeller. Bu gizli diziler düz metin olarak depolanır. Kötü bir aktör dosyalara erişirse ve ortak bir depoda yayımlanırsa, gizli diziler herkes tarafından kullanılabilir.

Bayrak eklenmiş dosyadan gizli diziyi kaldırmanız ve ardından gizli diziyi işleme geçmişinden kaldırmanız önerilir. Bayrak eklenmiş gizli dizi bir yer tutucu veya örnek gizli diziyse, sahte gizli diziyi sahte gizli dizinin önüne eklemek Placeholder için güncelleştirmeniz önerilir.

Gizli dizi önceki işlemenize eklendiyse, işlemeyi düzeltin ve yeni bir işleme oluşturun:

  1. Gizli diziyi kodunuzdan kaldırın.
  2. Kullanarak değişiklikleri işleme git commit --amend
  3. Değişikliklerinizi yeniden iletin.

Gizli dizi daha da geçmişe eklendiyse etkileşimli bir yeniden temellendirme kullanarak işlemelerinizi düzenleyin:

  1. Gizli diziyi ilk olarak hangi işlemeye işlediğinizi belirlemek için git log kullanın.
  2. Etkileşimli bir yeniden temel oluşturma gerçekleştirin: git rebase -i [commit ID before credential introduction]~1
  3. Düzenleyicide görüntülenen metnin ilk satırında pick öğesini edit olarak değiştirerek düzenlemeniz gereken işlemeyi tanımlayın.
  4. Gizli diziyi kodunuzdan kaldırın.
  5. Değişikliği git commit --amend ile işleyin.
  6. komutunu çalıştırarak git rebase --continueyeniden temeli tamamlayın.

Engellenen gizli dizi gönderme

Bayrak eklenmiş gizli dizilerin atlanması önerilmez, çünkü atlama şirketinizin güvenliğini riske atabilir. Tanımlanan gizli dizilerin hatalı pozitif olmadığını onaylarsanız, değişikliklerinizi yeniden göndermeye çalışmadan önce gizli diziyi dal geçmişinizin tamamından kaldırmanız gerekir.

Engellenen gizli dizilerin hatalı pozitif veya göndermesi güvenli olduğuna inanıyorsanız, anında iletme korumasını atlayabilirsiniz. dizesini skip-secret-scanning:true işleme iletinize ekleyin. Anında iletme korumasını atlasanız bile, gizli dizi gönderildikten sonra uyarı UX'inde gizli dizi tarama uyarısı oluşturulur.