Udostępnij za pośrednictwem


Wykrywanie i naprawianie luk w zabezpieczeniach pakietu za pomocą inspekcji npm

Azure DevOps Services

Polecenie npm audit wykonuje dokładne skanowanie projektu, identyfikując potencjalne luki w zabezpieczeniach i generując szczegółowy raport, który wyróżnia znalezione problemy. Przeprowadzanie inspekcji zabezpieczeń to ważny krok w rozpoznawaniu i usuwaniu luk w zabezpieczeniach w zależnościach projektu. Polecenie npm audit fix automatycznie usuwa wykryte luki w zabezpieczeniach, aktualizując niezabezpieczone wersje pakietów do najnowszych bezpiecznych wersji. Rozwiązanie tych luk w zabezpieczeniach ma kluczowe znaczenie dla zapobiegania potencjalnym problemom, np. utracie danych, przerwom w działaniu usługi i nieautoryzowanemu dostępowi do poufnych informacji.

Ostrzeżenie

Wykonanie inspekcji npm spowoduje przesłanie nazw wszystkich pakietów określonych w package.json do rejestru publicznego.

Uruchamianie inspekcji npm lokalnie

npm audit można wykonać lokalnie bez konieczności uwierzytelniania za pomocą kanału informacyjnego. Dzięki temu można skanować projekt pod kątem luk w zabezpieczeniach i otrzymywać szczegółowy raport na temat wykrytych problemów z zabezpieczeniami i ich ważności.

Jeśli chcesz naprawić wykryte luki w zabezpieczeniach, możesz uruchomić polecenie npm audit fix, ale musisz uwierzytelnić się przy użyciu kanału informacyjnego, aby to zrobić. To polecenie aktualizuje niezabezpieczone wersje pakietów do najnowszych bezpiecznych wersji dostępnych.

Po uruchomieniu poprawki inspekcji npm program aktualizuje nie tylko package.json ipackage-lock.json projektu lokalnego, ale także synchronizuje te zmiany ze skojarzonym źródłem danych usługi Azure Artifacts. Nowo zabezpieczone wersje pakietów będą automatycznie dostępne w kanale informacyjnym.

Ta synchronizacja gwarantuje, że inne projekty współużytkujące ten sam kanał informacyjny będą również korzystać z tych aktualizacji. Pomaga zachować spójny i bezpieczny zestaw wersji pakietów we wszystkich projektach.

  1. Uruchom następujące polecenie w katalogu projektu, aby przeprowadzić inspekcję npm:

    npm audit
    
  2. Jeśli chcesz spróbować uaktualnić do wersji pakietów, które nie są podatne na zagrożenia, najpierw upewnij się, że masz połączenie ze źródłem danych , a następnie uruchom następujące polecenie w katalogu projektu:

    npm audit fix
    

Po uruchomieniu poprawki inspekcji npm upewnij się, że przeprowadzisz dokładne testowanie aplikacji, aby potwierdzić, że aktualizacje nie wprowadziły żadnych zmian powodujących niezgodność. Jeśli poprawka wymaga aktualizacji wersji głównej, zaleca się przejrzenie informacji o wersji pakietu pod kątem potencjalnych zmian powodujących niezgodność. Należy pamiętać, że podczas gdy pakiet prywatny z publicznymi zależnościami podatnymi na zagrożenia otrzymuje alerty dotyczące luk w zabezpieczeniach, nie będzie otrzymywać poprawek za pośrednictwem poprawki inspekcji npm.

Uwaga

Inspekcja npm jest uruchamiana automatycznie z każdym wykonaniem instalacji npm, ale działa tylko dla pakietów publicznych.

Uruchamianie inspekcji npm z potoku

Usługa Azure Pipelines nie obsługuje obecnie inspekcji npm. Jeśli spróbujesz użyć zwykłego polecenia inspekcji npm w potoku, zakończy się to niepowodzeniem. Zamiast tego wykonaj inspekcję npm za pomocą argumentu --registry i podaj źródłowy adres URL źródła.

  1. Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Potoki, wybierz potok, a następnie wybierz pozycję Edytuj , aby go zmodyfikować.

  3. Z definicji potoku + wybierz znak, aby dodać nowe zadanie.

  4. Wyszukaj zadanie npm, a następnie wybierz pozycję Dodaj, aby dodać je do potoku.

  5. Wprowadź nazwę wyświetlaną zadania i wybierz pozycję niestandardową z menu rozwijanego Polecenie.

  6. Wklej niestandardowe polecenie w polu tekstowym Command and arguments (Polecenia i argumenty ):

    1. Użyj następującego polecenia, aby przeprowadzić inspekcję npm i skanowanie pod kątem luk w zabezpieczeniach pakietów. Zastąp symbol zastępczy adresem URL źródła kanału informacyjnego:

      audit --registry=<FEED_SOURCE_URL>
      
    2. Jeśli chcesz podjąć próbę uaktualnienia do niewrażliwych wersji pakietów, użyj następującego polecenia. Zastąp symbol zastępczy adresem URL źródła kanału informacyjnego:

    audit fix --registry=<FEED_SOURCE_URL>
    

    A screenshot showing the npm audit task in a classic pipeline.