Udostępnij przez


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 npm audit 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.

Kiedy uruchomisz polecenie npm audit fix, nie tylko aktualizuje ono package.json i package-lock.json projektu lokalnego, ale także synchronizuje te zmiany ze skojarzonym źródłem danych z usługi Azure Artifacts. Nowo zabezpieczone wersje pakietów będą automatycznie dostępne w Twoim kanale.

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 npm audit fix upewnij się, że przeprowadzisz dokładny test aplikacji, aby się upewnić, ż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 chociaż pakiet prywatny z publicznymi zależnościami podatnymi na zagrożenia dostaje alerty dotyczące luk w zabezpieczeniach, nie będzie otrzymywał poprawek za pomocą npm audit fix.

Uwaga / Notatka

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

Uruchom audit npm z twojego potoku

Usługa Azure Pipelines nie obsługuje obecnie inspekcji npm. Jeśli spróbujesz użyć zwykłego polecenia npm audit w procesie CI/CD, zakończy się to niepowodzeniem. Zamiast tego wykonaj npm audit za pomocą argumentu --registry i podaj 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 przepływu wybierz ikonę +, aby dodać nowe zadanie.

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

  5. Wprowadź nazwę wyświetlaną dla zadania, i wybierz opcję 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>
    

    Zrzut ekranu przedstawiający zadanie inspekcji npm w potoku klasycznym.