Zarządzanie lukami w zabezpieczeniach w usłudze Azure Machine Learning
Zarządzanie lukami w zabezpieczeniach obejmuje wykrywanie, ocenianie, łagodzenie i raportowanie wszelkich luk w zabezpieczeniach, które istnieją w systemach i oprogramowaniu organizacji. Odpowiedzialność za zarządzanie lukami w zabezpieczeniach leży zarówno po stronie użytkownika, jak i firmy Microsoft.
W tym artykule omówiono te obowiązki i opisano zarządzanie lukami w zabezpieczeniach mechanizmów kontroli zapewnianych przez usługę Azure Machine Learning. Dowiesz się, jak zapewnić aktualność wystąpienia usługi i aplikacji przy użyciu najnowszych aktualizacji zabezpieczeń oraz jak zminimalizować okno możliwości dla osób atakujących.
Obrazy maszyn wirtualnych zarządzanych przez firmę Microsoft
Usługa Azure Machine Learning zarządza obrazami maszyn wirtualnych systemu operacyjnego hosta dla wystąpień obliczeniowych usługi Azure Machine Learning, klastrów obliczeniowych usługi Azure Machine Learning i maszyn wirtualnych Nauka o danych. Częstotliwość aktualizacji jest miesięczna i zawiera następujące szczegóły:
Dla każdej nowej wersji obrazu maszyny wirtualnej najnowsze aktualizacje pochodzą od oryginalnego wydawcy systemu operacyjnego. Korzystanie z najnowszych aktualizacji pomaga zapewnić, że uzyskasz wszystkie odpowiednie poprawki związane z systemem operacyjnym. W przypadku usługi Azure Machine Learning wydawca jest canonical dla wszystkich obrazów systemu Ubuntu. Te obrazy są używane w przypadku wystąpień obliczeniowych usługi Azure Machine Learning, klastrów obliczeniowych i Nauka o danych maszyn wirtualnych.
Obrazy maszyn wirtualnych są aktualizowane co miesiąc.
Oprócz poprawek, które ma zastosowanie oryginalny wydawca, usługa Azure Machine Learning aktualizuje pakiety systemowe, gdy są dostępne aktualizacje.
Usługa Azure Machine Learning sprawdza i weryfikuje wszystkie pakiety uczenia maszynowego, które mogą wymagać uaktualnienia. W większości przypadków nowe obrazy maszyn wirtualnych zawierają najnowsze wersje pakietu.
Wszystkie obrazy maszyn wirtualnych są oparte na bezpiecznych subskrypcjach, które regularnie uruchamiają skanowanie luk w zabezpieczeniach. Usługa Azure Machine Learning flaguje wszelkie niezaubrane luki w zabezpieczeniach i naprawia je w następnej wersji.
Częstotliwość jest miesięcznym interwałem dla większości obrazów. W przypadku wystąpień obliczeniowych wersja obrazu jest zgodna z cyklem wydania zestawu SDK usługi Azure Machine Learning, który jest wstępnie zainstalowany w środowisku.
Oprócz regularnego cyklu wydawania usługa Azure Machine Learning stosuje poprawki, jeśli wystąpią luki w zabezpieczeniach. Firma Microsoft wprowadza poprawki w ciągu 72 godzin dla klastrów obliczeniowych usługi Azure Machine Learning i w ciągu tygodnia dla wystąpień obliczeniowych.
Uwaga
System operacyjny hosta nie jest wersją systemu operacyjnego, którą można określić dla środowiska podczas trenowania lub wdrażania modelu. Środowiska działają wewnątrz platformy Docker. Platforma Docker działa w systemie operacyjnym hosta.
Obrazy kontenerów zarządzanych przez firmę Microsoft
Podstawowe obrazy platformy Docker, które usługa Azure Machine Learning utrzymuje, często otrzymują poprawki zabezpieczeń, aby rozwiązać nowo wykryte luki w zabezpieczeniach.
Usługa Azure Machine Learning publikuje aktualizacje obsługiwanych obrazów co dwa tygodnie, aby rozwiązać problem z lukami w zabezpieczeniach. Jako zobowiązanie dążymy do braku luk w zabezpieczeniach starszych niż 30 dni w najnowszej wersji obsługiwanych obrazów.
Poprawione obrazy są wydawane w ramach nowego niezmiennego tagu i zaktualizowanego :latest
tagu. Użycie tagu :latest
lub przypinanie do określonej wersji obrazu może być kompromisem między powtarzalnością zabezpieczeń i środowiska dla zadania uczenia maszynowego.
Zarządzanie środowiskami i obrazami kontenerów
Powtarzalność jest kluczowym aspektem eksperymentowania z programowaniem oprogramowania i uczeniem maszynowym. Głównym celem składnika środowiska usługi Azure Machine Learning jest zagwarantowanie powtarzalności środowiska, w którym jest wykonywany kod użytkownika. Aby zapewnić powtarzalność dowolnego zadania uczenia maszynowego, wcześniej utworzone obrazy są ściągane do węzłów obliczeniowych bez konieczności ponownego materializacji.
Mimo że usługa Azure Machine Learning stosuje poprawki obrazów podstawowych z każdą wersją, to to, czy używasz najnowszego obrazu, może być kompromisem między powtarzalnością a zarządzanie lukami w zabezpieczeniach. Twoim zadaniem jest wybranie wersji środowiska używanej do zadań lub wdrożeń modelu.
Domyślnie zależności są nakładane na podstawowe obrazy zapewniane przez usługę Azure Machine Learning podczas tworzenia środowisk. Możesz również używać własnych obrazów podstawowych podczas korzystania ze środowisk w usłudze Azure Machine Learning. Po zainstalowaniu większej liczby zależności na obrazach dostarczonych przez firmę Microsoft lub udostępnieniu własnych obrazów podstawowych zarządzanie lukami w zabezpieczeniach staje się Twoim zadaniem.
Skojarzony z obszarem roboczym usługi Azure Machine Learning jest wystąpieniem usługi Azure Container Registry, które działa jako pamięć podręczna obrazów kontenerów. Każdy obraz, który materializuje, jest wypychany do rejestru kontenerów. Obszar roboczy używa go, jeśli eksperymentowanie lub wdrożenie zostanie wyzwolone dla odpowiedniego środowiska.
Usługa Azure Machine Learning nie usuwa żadnego obrazu z rejestru kontenerów. Odpowiadasz za ocenę potrzeb obrazu w czasie. Aby monitorować i utrzymywać higienę środowiska, możesz użyć usługi Microsoft Defender for Container Registry , aby ułatwić skanowanie obrazów pod kątem luk w zabezpieczeniach. Aby zautomatyzować procesy na podstawie wyzwalaczy z usługi Microsoft Defender, zobacz Automatyzowanie odpowiedzi korygowania.
Aby uzyskać więcej informacji, odwiedź stronę adresów luk w zabezpieczeniach w środowiskach.
Korzystanie z repozytorium pakietów prywatnych
Usługa Azure Machine Learning używa platformy Conda i narzędzia do instalowania pakietów języka Python. Domyślnie usługa Azure Machine Learning pobiera pakiety z repozytoriów publicznych. Jeśli twoja organizacja wymaga, aby pakiety źródłowe pochodziły tylko z repozytoriów prywatnych, takich jak źródła danych usługi Azure DevOps, konfigurację Conda i można zastąpić w ramach obrazów podstawowych i konfiguracji środowiska dla wystąpień obliczeniowych.
Poniższa przykładowa konfiguracja pokazuje, jak usunąć kanały domyślne i dodać własne prywatne kanały Conda i. Rozważ użycie skryptów konfiguracji wystąpienia obliczeniowego na potrzeby automatyzacji.
RUN conda config --set offline false \
&& conda config --remove channels defaults || true \
&& conda config --add channels https://my.private.conda.feed/conda/feed \
&& conda config --add repodata_fns <repodata_file_on_your_server>.json
# Configure Pip private indexes and ensure that the client trusts your host
RUN pip config set global.index https://my.private.pypi.feed/repository/myfeed/pypi/ \
&& pip config set global.index-url https://my.private.pypi.feed/repository/myfeed/simple/
# In case your feed host isn't secured through SSL
RUN pip config set global.trusted-host http://my.private.pypi.feed/
Aby dowiedzieć się, jak określić własne obrazy podstawowe w usłudze Azure Machine Learning, zobacz Tworzenie środowiska na podstawie kontekstu kompilacji platformy Docker. Aby uzyskać więcej informacji na temat konfigurowania środowisk Conda, zobacz Tworzenie pliku środowiska ręcznie w witrynie Conda.
Zarządzanie lukami w zabezpieczeniach na hostach obliczeniowych
Zarządzane węzły obliczeniowe w usłudze Azure Machine Learning używają obrazów maszyn wirtualnych systemu operacyjnego zarządzanego przez firmę Microsoft. Podczas aprowizowania węzła pobiera on najnowszy zaktualizowany obraz maszyny wirtualnej. To zachowanie dotyczy wystąpienia obliczeniowego, klastra obliczeniowego, bezserwerowego obliczeniowego (wersja zapoznawcza) i opcji obliczeniowych wnioskowania zarządzanego.
Mimo że obrazy maszyn wirtualnych systemu operacyjnego są regularnie poprawiane, usługa Azure Machine Learning nie skanuje aktywnie węzłów obliczeniowych pod kątem luk w zabezpieczeniach, gdy są one używane. Aby uzyskać dodatkową warstwę ochrony, rozważ izolację sieci dla obliczeń.
Upewnienie się, że środowisko jest aktualne, a węzły obliczeniowe korzystają z najnowszej wersji systemu operacyjnego, jest wspólną odpowiedzialnością między Tobą a firmą Microsoft. Węzły, które nie są bezczynne, nie mogą być aktualizowane do najnowszego obrazu maszyny wirtualnej. Zagadnienia są nieco inne dla każdego typu obliczeniowego, jak opisano w poniższych sekcjach.
Wystąpienie obliczeniowe
Wystąpienia obliczeniowe uzyskują najnowsze obrazy maszyn wirtualnych w momencie aprowizacji. Firma Microsoft wydaje nowe obrazy maszyn wirtualnych co miesiąc. Po wdrożeniu wystąpienia obliczeniowego nie jest on aktywnie aktualizowany. Możesz wykonać zapytanie dotyczące wersji systemu operacyjnego wystąpienia. Aby zachować aktualność przy użyciu najnowszych aktualizacji oprogramowania i poprawek zabezpieczeń, możesz użyć jednej z następujących metod:
Utwórz ponownie wystąpienie obliczeniowe, aby pobrać najnowszy obraz systemu operacyjnego (zalecane).
Jeśli używasz tej metody, utracisz dane i dostosowania (takie jak zainstalowane pakiety), które są przechowywane w systemie operacyjnym wystąpienia i dyskach tymczasowych.
Podczas ponownego tworzenia wystąpienia:
- Przechowuj notesy w katalogu Pliki użytkownika, aby je utrwały.
- Instalowanie danych w celu utrwalania plików.
Aby uzyskać więcej informacji na temat wydań obrazów, zobacz Informacje o wersji obrazu wystąpienia obliczeniowego usługi Azure Machine Learning.
Regularnie aktualizuj pakiety systemu operacyjnego i języka Python.
Użyj narzędzi do zarządzania pakietami systemu Linux, aby zaktualizować listę pakietów przy użyciu najnowszych wersji:
sudo apt-get update
Użyj narzędzi do zarządzania pakietami systemu Linux, aby uaktualnić pakiety do najnowszych wersji. Konflikty pakietów mogą wystąpić podczas korzystania z tego podejścia.
sudo apt-get upgrade
Użyj narzędzi do zarządzania pakietami języka Python, aby uaktualnić pakiety i sprawdzić dostępność aktualizacji:
pip list --outdated
Możesz zainstalować i uruchomić dodatkowe oprogramowanie skanujące w wystąpieniu obliczeniowym w celu skanowania pod kątem problemów z zabezpieczeniami:
- Użyj narzędzia Trivy , aby odnaleźć luki w zabezpieczeniach na poziomie pakietów systemu operacyjnego i języka Python.
- Odnajdywanie złośliwego oprogramowania za pomocą programu ClamAV . Jest on wstępnie zainstalowany w wystąpieniach obliczeniowych.
Instalacja agenta usługi Microsoft Defender for Servers nie jest obecnie obsługiwana.
Rozważ użycie skryptów dostosowywania na potrzeby automatyzacji. Przykładowy skrypt instalacyjny, który łączy trivy i ClamAV, zobacz Przykładowe skrypty konfiguracji wystąpienia obliczeniowego.
Klastry obliczeniowe
Klastry obliczeniowe automatycznie uaktualniają węzły do najnowszego obrazu maszyny wirtualnej. Jeśli skonfigurujesz klaster za pomocą min nodes = 0
polecenia , automatycznie uaktualni węzły do najnowszej wersji obrazu maszyny wirtualnej po zakończeniu wszystkich zadań, a klaster zmniejsza się do zera węzłów.
W następujących warunkach węzły klastra nie są skalowane w dół, więc nie mogą uzyskać najnowszego obrazu maszyny wirtualnej:
- Minimalna liczba węzłów klastra jest ustawiona na wartość większą niż zero.
- Zadania są zaplanowane w sposób ciągły w klastrze.
Odpowiadasz za skalowanie w dół węzłów klastra bezczynności w celu uzyskania najnowszych aktualizacji obrazu maszyny wirtualnej systemu operacyjnego. Usługa Azure Machine Learning nie zatrzymuje żadnych uruchomionych obciążeń w węzłach obliczeniowych w celu wydawania aktualizacji maszyn wirtualnych. Tymczasowo zmień minimalną wartość węzłów na zero i zezwól klastrowi na zmniejszenie do zera węzłów.
Zarządzane punkty końcowe online
Zarządzane punkty końcowe online automatycznie otrzymują aktualizacje obrazów hosta systemu operacyjnego, które obejmują poprawki luk w zabezpieczeniach. Częstotliwość aktualizacji obrazów wynosi co najmniej raz w miesiącu.
Węzły obliczeniowe są automatycznie uaktualniane do najnowszej wersji obrazu maszyny wirtualnej po wydaniu tej wersji. Nie musisz podejmować żadnych działań.
Klastry Kubernetes zarządzane przez klienta
Środowisko obliczeniowe Kubernetes umożliwia skonfigurowanie klastrów Kubernetes do trenowania, wnioskowania i zarządzania modelami w usłudze Azure Machine Learning.
Ponieważ zarządzasz środowiskiem za pomocą platformy Kubernetes, zarządzanie lukami w zabezpieczeniach maszyn wirtualnych systemu operacyjnego i lukami w zabezpieczeniach obrazu kontenera jest Twoim zadaniem.
Usługa Azure Machine Learning często publikuje nowe wersje obrazów kontenerów rozszerzeń usługi Azure Machine Learning w Rejestr Artefaktów Microsoft. Firma Microsoft jest odpowiedzialna za zapewnienie, że nowe wersje obrazów są wolne od luk w zabezpieczeniach. Każda wersja naprawia luki w zabezpieczeniach.
Gdy klastry uruchamiają zadania bez przerwy, uruchomione zadania mogą uruchamiać nieaktualne wersje obrazu kontenera. Po uaktualnieniu amlarc
rozszerzenia do uruchomionego klastra nowo przesłane zadania zaczynają używać najnowszej wersji obrazu. Podczas uaktualniania amlarc
rozszerzenia do najnowszej wersji wyczyść stare wersje obrazu kontenera z klastrów zgodnie z potrzebami.
Aby sprawdzić, czy klaster usługi Azure Arc korzysta z najnowszej amlarc
wersji programu , użyj witryny Azure Portal. W obszarze zasobu usługi Azure Arc typu Kubernetes — Azure Arc przejdź do pozycji Rozszerzenia , aby znaleźć wersję amlarc
rozszerzenia.
Ważne
Jeśli automatyczna aktualizacja została wyłączona przy użyciu --auto-upgrade false
parametru az k8s-extension create
polecenia , należy ręcznie zaktualizować rozszerzenie przy użyciu polecenia az k8s-extension update
. Aby uzyskać informacje na temat wersji tego rozszerzenia, zapoznaj się z informacjami o wersji.
Środowiska automatycznego uczenia maszynowego i projektanta
W przypadku środowisk szkoleniowych opartych na kodzie można kontrolować, które środowisko usługi Azure Machine Learning ma być używane. W przypadku rozwiązania AutoML i projektanta środowisko jest hermetyzowane w ramach usługi. Te typy zadań mogą być uruchamiane na skonfigurowanych obliczeniach, aby umożliwić korzystanie z dodatkowych kontrolek, takich jak izolacja sieci.
Zadania automatycznego uczenia maszynowego są uruchamiane w środowiskach warstwowych na podstawie podstawowych obrazów platformy Docker usługi Azure Machine Learning.
Zadania projektanta są podzielone na składniki. Każdy składnik ma własne środowisko, które warstwuje na podstawie podstawowych obrazów platformy Docker usługi Azure Machine Learning. Aby uzyskać więcej informacji na temat składników, zobacz dokumentację składnika.