Udostępnij za pośrednictwem


Skanowanie wpisów tajnych

Uwidocznione poświadczenia w systemach inżynieryjnych zapewniają łatwe wykorzystanie możliwości dla osób atakujących. Aby bronić się przed tym zagrożeniem, usługa GitHub Advanced Security dla skanowania usługi Azure DevOps pod kątem poświadczeń i innego poufnej zawartości w kodzie źródłowym. Ochrona wypychana uniemożliwia również wyciek poświadczeń w pierwszej kolejności.

Skanowanie wpisów tajnych w repozytorium pod kątem wszelkich wpisów tajnych, które mogą już istnieć w kodzie źródłowym w historii, a ochrona wypychana uniemożliwia uwidocznienie nowych wpisów tajnych w kodzie źródłowym.

Usługa GitHub Advanced Security dla usługi Azure DevOps współpracuje z usługą Azure Repos. Jeśli chcesz używać usługi GitHub Advanced Security z repozytoriami GitHub, zobacz Usługa GitHub Advanced Security.

Informacje o alertach skanowania wpisów tajnych

Gdy usługa Advanced Security jest włączona, skanuje repozytoria pod kątem wpisów tajnych wystawionych przez wielu dostawców usług i generuje alerty skanowania wpisów tajnych.

Jeśli dostęp do zasobu wymaga sparowanych poświadczeń, skanowanie wpisów tajnych może utworzyć alert tylko wtedy, gdy obie części pary zostaną wykryte w tym samym pliku. Parowanie zapewnia, że najbardziej krytyczne przecieki nie są ukryte za informacjami o częściowych przeciekach. Dopasowywanie par pomaga również zmniejszyć liczbę wyników fałszywie dodatnich, ponieważ oba elementy pary muszą być używane razem w celu uzyskania dostępu do zasobu dostawcy.

Karta Zabezpieczenia zaawansowane w usłudze Repos>Advanced Security w usłudze Azure DevOps to centrum do wyświetlania alertów zabezpieczeń. Wybierz kartę Wpisy tajne, aby wyświetlić alerty skanowania wpisów tajnych. Możesz filtrować według stanu i typu wpisu tajnego. Możesz przejść do alertu, aby uzyskać więcej informacji, w tym wskazówki dotyczące korygowania. Po włączeniu usługi Advanced Security skanowanie rozpoczyna się dla wybranego repozytorium, w tym wszystkich zatwierdzeń historycznych. W miarę upływu czasu alerty będą wyświetlane w miarę postępu skanowania.

Zmiana nazwy gałęzi nie ma wpływu na wyniki — wyświetlenie nowej nazwy może potrwać do 24 godzin.

Zrzut ekranu przedstawiający alerty skanowania aktywnego wpisu tajnego

Aby skorygować ujawnione wpisy tajne, unieważnij ujawnione poświadczenie i utwórz nowe w swoim miejscu. Nowo utworzony wpis tajny powinien być następnie bezpiecznie przechowywany w sposób, który nie bezpośrednio wypycha go z powrotem do kodu. Na przykład wpis tajny może być przechowywany w usłudze Azure Key Vault. Większość zasobów ma zarówno poświadczenia podstawowe, jak i pomocnicze. Metoda przerzucania poświadczeń podstawowych w porównaniu z poświadczeniem pomocniczym jest taka sama, chyba że określono inaczej.

Zarządzanie alertami skanowania wpisów tajnych

Wyświetlanie alertów dla repozytorium

Każda osoba z uprawnieniami współautora dla repozytorium może wyświetlić podsumowanie wszystkich alertów dla repozytorium na karcie Zabezpieczenia zaawansowane w obszarze Repozytoria. Wybierz kartę Wpisy tajne, aby wyświetlić wszystkie alerty skanowania wpisów tajnych.

Jeśli usługa Advanced Security została niedawno włączona dla repozytorium, może zostać wyświetlona karta wskazująca, że usługa Advanced Security nadal skanuje repozytorium.

Zrzut ekranu przedstawiający skanowanie pod kątem wpisów tajnych

Po zakończeniu skanowania zostaną wyświetlone wszystkie wyniki. Pojedynczy alert jest generowany dla każdego wykrytego unikatowego poświadczenia we wszystkich gałęziach i historii repozytorium. Nie ma filtrów gałęzi, ponieważ są one rzutowane w jeden alert.

Wpisy tajne innych niż dostawcy można wyświetlić, wybierając pozycję "Inne" z listy rozwijanej ufności na karcie skanowania wpisów tajnych.

Zrzut ekranu przedstawiający filtr ufności skanowania wpisów tajnych usługi GitHub Advanced Security.

Szczegóły alertu

Po przejściu do alertu zostanie wyświetlony szczegółowy widok alertu i zostanie wyświetlony więcej szczegółowych informacji o znalezieniu i podaniu szczegółowych wskazówek dotyczących korygowania w celu rozwiązania alertu.

Zrzut ekranu przedstawiający szczegóły alertu skanowania wpisów tajnych

Sekcja Wyjaśnienie
Lokalizacja Sekcja Lokalizacje zawiera szczegółowe informacje o ścieżkach , w których skanowanie wpisów tajnych wykryło ujawnione poświadczenia. W historii może istnieć wiele lokalizacji lub wiele zatwierdzeń zawierających ujawnione poświadczenia. Wszystkie te lokalizacje i zatwierdzenia są wyświetlane w obszarze Lokalizacje z bezpośrednim linkiem do fragmentu kodu i zatwierdzenia, w których został zidentyfikowany.
Zalecenie Sekcja rekomendacji zawiera wskazówki dotyczące korygowania lub link do wskazówek dotyczących korygowania dokumentacji innych firm dla zidentyfikowanych poświadczeń.
Zamknij powiadomienie o alercie Nie ma zachowania autofiksu dla alertów skanowania wpisów tajnych. Wszystkie alerty skanowania wpisów tajnych muszą być ręcznie potwierdzone jako stałe za pośrednictwem strony szczegółów alertu. Wybierz przycisk Zamknij, aby sprawdzić, czy wpis tajny został odwołany.
Ważność Wszystkie alerty skanowania wpisów tajnych są ustawiane jako krytyczne. Każde uwidocznione poświadczenia jest potencjalnie szansą dla złośliwego aktora.
Znajdowanie szczegółów Typ poświadczeń i reguł używany do znajdowania poświadczeń są wyświetlane w obszarze Znajdowanie szczegółów na pasku bocznym strony szczegółów alertu.

W przypadku wpisów tajnych innych niż dostawcy wskaźnik Ufność: inny tag jest również wyświetlany przez wskaźnik ważności w widoku szczegółów alertu.

Zrzut ekranu przedstawiający szczegółowe informacje o ogólnym alercie skanowania wpisów tajnych usługi GitHub Advanced Security.

Naprawianie alertów skanowania wpisów tajnych

Każdy wpis tajny zawiera unikatowe kroki korygowania, które umożliwiają odwoływanie i ponowne generowanie nowego wpisu tajnego w jego miejscu. Szczegóły alertu udostępniają określone kroki lub dokumentację dla każdego alertu.

Alert skanowania wpisów tajnych pozostaje otwarty do momentu zamknięcia. Aby potwierdzić, że alert skanowania wpisów tajnych został naprawiony:

  1. Przejdź do alertu, który chcesz zamknąć, i wybierz alert.
  2. Wybierz listę rozwijaną Zamknij alert .
  3. Jeśli jeszcze nie wybrano, wybierz pozycję Naprawiono.
  4. Wybierz pozycję Zamknij , aby przesłać i zamknąć alert.

Zrzut ekranu przedstawiający sposób zamykania alertu skanowania wpisów tajnych

Odrzucanie alertów skanowania wpisów tajnych

Aby odrzucić alerty w usłudze Advanced Security, potrzebne są odpowiednie uprawnienia. Domyślnie tylko administratorzy projektu mogą odrzucać alerty usługi Advanced Security. Aby uzyskać więcej informacji na temat uprawnień zabezpieczeń zaawansowanych, zobacz Zarządzanie uprawnieniami zabezpieczeń zaawansowanych.

Aby odrzucić alert:

  1. Przejdź do alertu, który chcesz zamknąć, i wybierz alert.
  2. Wybierz listę rozwijaną Zamknij alert .
  3. Jeśli jeszcze nie wybrano, wybierz opcję Ryzyko zaakceptowane lub Fałszywie dodatnie jako przyczynę zamknięcia.
  4. Dodaj opcjonalny komentarz do pola tekstowego Komentarz .
  5. Wybierz pozycję Zamknij , aby przesłać i zamknąć alert.
  6. Stan alertu zmienia się z Otwórz na Zamknięty i wyświetla przyczynę odrzucenia.

Zrzut ekranu przedstawiający szczegóły odrzucania alertu skanowania wpisów tajnych

Każdy alert, który został wcześniej odrzucony, można ręcznie otworzyć ponownie.

Zabezpieczanie naruszonych wpisów tajnych

Po zatwierdzeniu wpisu tajnego do repozytorium zostanie naruszony wpis tajny. Firma Microsoft zaleca następujące działania w przypadku naruszonych wpisów tajnych:

  • W przypadku naruszonego osobistego tokenu dostępu usługi Azure DevOps usuń naruszony token, utwórz nowy token i zaktualizuj wszystkie usługi korzystające ze starego tokenu.
  • W przypadku wszystkich innych wpisów tajnych najpierw sprawdź, czy wpis tajny zatwierdzony w usłudze Azure Repos jest prawidłowy. Jeśli tak, utwórz nowy wpis tajny, zaktualizuj wszystkie usługi używające starego wpisu tajnego, a następnie usuń stary wpis tajny.
  • zidentyfikuj wszelkie działania podejmowane przez token naruszony w zasobach przedsiębiorstwa.

Podczas aktualizowania wpisu tajnego pamiętaj o bezpiecznym przechowywaniu nowego wpisu tajnego i upewnij się, że jest on zawsze dostępny i nigdy nie jest przechowywany jako zwykły tekst. Jedną z możliwości może być usługa Azure Keyvault lub inne rozwiązania do zarządzania wpisami tajnymi.

Ochrona wypychana wpisów tajnych

Ochrona wypychana sprawdza wszelkie przychodzące wypychania dla wpisów tajnych o wysokiej pewności i zapobiega przechodzeniu przez wypychanie. Komunikat o błędzie wyświetla wszystkie zidentyfikowane wpisy tajne, aby je usunąć lub w razie potrzeby wypchnąć wpisy tajne.

Informacje o alertach ochrony wypychanych

Alerty ochrony wypychanych to alerty użytkowników zgłaszane przez ochronę wypychaną. Skanowanie wpisów tajnych jako ochrona wypychana obecnie skanuje repozytoria pod kątem wpisów tajnych wystawionych przez niektórych dostawców usług.

Jeśli dostęp do zasobu wymaga sparowanych poświadczeń, skanowanie wpisów tajnych może utworzyć alert tylko wtedy, gdy obie części pary zostaną wykryte w tym samym pliku. Parowanie zapewnia, że najbardziej krytyczne przecieki nie są ukryte za informacjami na temat częściowych przecieków. Dopasowywanie par pomaga również zmniejszyć liczbę wyników fałszywie dodatnich, ponieważ oba elementy pary muszą być używane razem w celu uzyskania dostępu do zasobu dostawcy.

Ochrona wypychana może nie blokować starszych wersji niektórych tokenów, ponieważ tokeny te mogą generować większą liczbę wyników fałszywie dodatnich niż najnowsza wersja. Ochrona wypychana może również nie blokować starszych tokenów. W przypadku tokenów, takich jak klucze usługi Azure Storage, usługa Advanced Security obsługuje tylko ostatnio utworzone tokeny, a nie tokeny zgodne ze starszymi wzorcami.

Wypychanie ochrony z wiersza polecenia

Ochrona wypychana jest wbudowana natywnie w usługę Azure DevOps Git. Jeśli zatwierdzenia zawierają zidentyfikowany wpis tajny, zostanie wyświetlony błąd, że wypychanie zostało odrzucone.

Zrzut ekranu przedstawiający zablokowanie wypychania git z programu VS Code

Ochrona wypychana z interfejsu internetowego

Ochrona wypychana działa również z poziomu interfejsu internetowego. Jeśli wpis tajny jest identyfikowany w zatwierdzeniu, zostanie wyświetlony następujący blok błędów, który uniemożliwia wypychanie zmian:

Zrzut ekranu przedstawiający zablokowany wypychanie git z internetowego interfejsu użytkownika azDO

Co zrobić, jeśli wypchnięcie zostało zablokowane

Ochrona wypychana blokuje wpisy tajne znalezione w plikach zwykłego tekstu, które są zwykle (ale nie tylko) plikami tekstowymi, takimi jak kod źródłowy lub pliki konfiguracji JSON. Te wpisy tajne są przechowywane w postaci zwykłego tekstu. Jeśli zły aktor uzyska dostęp do plików i zostanie opublikowany w repozytorium publicznym, wpisy tajne będą używane przez każdego użytkownika.

Zaleca się usunięcie wpisu tajnego z oflagowanych plików, a następnie usunięcie wpisu tajnego z historii zatwierdzeń. Jeśli oflagowany wpis tajny jest symbolem zastępczym lub przykładowym wpisem tajnym, zaleca się zaktualizowanie fałszywego wpisu tajnego, aby poprzedzać ciąg Placeholder przed fałszywym wpisem tajnym.

Jeśli wpis tajny został dodany w bezpośrednim poprzednim zatwierdzeniu, zmień zatwierdzenie i utwórz nowe zatwierdzenie:

  1. Usuń wpis tajny z kodu.
  2. Zatwierdzanie zmian przy użyciu polecenia git commit --amend
  3. Ponownie wypchnij zmiany.

Jeśli wpis tajny został dodany ponownie w historii, edytuj zatwierdzenia przy użyciu interaktywnej bazy danych:

  1. Użyj polecenia git log, aby określić, które zatwierdzenie jako pierwsze zatwierdziło wpis tajny.
  2. Wykonaj interaktywną bazę danych: git rebase -i [commit ID before credential introduction]~1
  3. Zidentyfikuj zatwierdzenie do edycji, zmieniając wartość pick na edit w pierwszym wierszu tekstu wyświetlanego w edytorze.
  4. Usuń wpis tajny z kodu.
  5. Zatwierdź zmianę za pomocą polecenia git commit --amend.
  6. Zakończ ponowną bazę, uruchamiając polecenie git rebase --continue.

Wypychanie zablokowanego wpisu tajnego

Pomijanie oflagowanych wpisów tajnych nie jest zalecane, ponieważ pomijanie może zagrozić bezpieczeństwu firmy. Jeśli potwierdzisz, że zidentyfikowany wpis tajny nie jest fałszywie dodatni, przed podjęciem próby ponownego wypchnięcia zmian należy usunąć wpis tajny z całej historii gałęzi.

Jeśli uważasz, że zablokowany wpis tajny jest fałszywie dodatni lub bezpieczny do wypychania, możesz pominąć ochronę wypychaną. Dołącz ciąg skip-secret-scanning:true do wiadomości zatwierdzenia. Nawet jeśli pomijasz ochronę wypychaną, alert skanowania wpisów tajnych jest generowany w środowisku użytkownika alertu po wypchnięciu wpisu tajnego.