Sårbarhetshantering för Azure Machine Learning
Sårbarhetshantering innebär att identifiera, utvärdera, minimera och rapportera eventuella säkerhetsrisker som finns i en organisations system och programvara. Sårbarhetshantering är ett ansvar som både du och Microsoft har.
Den här artikeln beskriver dessa ansvarsområden och beskriver de hantering av säkerhetsrisker kontroller som Azure Machine Learning tillhandahåller. Du lär dig hur du håller din tjänstinstans och dina program uppdaterade med de senaste säkerhetsuppdateringarna och hur du minimerar fönstret med möjligheter för angripare.
Microsoft-hanterade VM-avbildningar
Azure Machine Learning hanterar avbildningar av virtuella värddatorer (VM) för Azure Machine Learning-beräkningsinstanser, Azure Machine Learning-beräkningskluster och Datavetenskap virtuella datorer. Uppdateringsfrekvensen är månadsvis och innehåller följande information:
För varje ny vm-avbildningsversion kommer de senaste uppdateringarna från den ursprungliga utgivaren av operativsystemet. Med hjälp av de senaste uppdateringarna ser du till att du får alla tillämpliga OS-relaterade korrigeringar. För Azure Machine Learning är utgivaren Kanonisk för alla Ubuntu-avbildningar. Dessa avbildningar används för Azure Machine Learning-beräkningsinstanser, beräkningskluster och Datavetenskap virtuella datorer.
Vm-avbildningar uppdateras varje månad.
Förutom korrigeringar som den ursprungliga utgivaren tillämpar uppdaterar Azure Machine Learning systempaket när uppdateringar är tillgängliga.
Azure Machine Learning kontrollerar och validerar alla maskininlärningspaket som kan kräva en uppgradering. I de flesta fall innehåller nya VM-avbildningar de senaste paketversionerna.
Alla VM-avbildningar bygger på säkra prenumerationer som regelbundet kör sårbarhetsgenomsökning. Azure Machine Learning flaggar eventuella oadresserade säkerhetsrisker och åtgärdar dem i nästa version.
Frekvensen är ett månatligt intervall för de flesta bilder. För beräkningsinstanser justeras avbildningsversionen med versionstakt för Azure Machine Learning SDK som är förinstallerad i miljön.
Utöver den vanliga versionstakten tillämpar Azure Machine Learning snabbkorrigeringar om sårbarheter dyker upp. Microsoft distribuerar snabbkorrigeringar inom 72 timmar för Azure Machine Learning-beräkningskluster och inom en vecka för beräkningsinstanser.
Kommentar
Värdoperativsystemet är inte den operativsystemversion som du kan ange för en miljö när du tränar eller distribuerar en modell. Miljöer körs i Docker. Docker körs på värdoperativsystemet.
Microsoft-hanterade containeravbildningar
Grundläggande docker-avbildningar som Azure Machine Learning underhåller hämtar säkerhetskorrigeringar ofta för att åtgärda nyligen identifierade sårbarheter.
Azure Machine Learning släpper uppdateringar för avbildningar som stöds varannan vecka för att åtgärda säkerhetsrisker. Som ett åtagande strävar vi efter att inte ha några sårbarheter som är äldre än 30 dagar i den senaste versionen av bilder som stöds.
Korrigerade bilder släpps under en ny oföränderlig tagg och en uppdaterad :latest
tagg. Att använda taggen :latest
eller fästa på en viss avbildningsversion kan vara en kompromiss mellan säkerhets- och miljöåtergivning för ditt maskininlärningsjobb.
Hantera miljöer och containeravbildningar
Reproducerbarhet är en viktig aspekt av programvaruutveckling och maskininlärningsexperiment. Azure Machine Learning-miljökomponentens primära fokus är att garantera reproducerbarhet för miljön där användarens kod körs. För att säkerställa reproducerbarhet för alla maskininlärningsjobb hämtas tidigare byggda avbildningar till beräkningsnoderna utan att behöva ommaterialiseras.
Även om Azure Machine Learning korrigerar basavbildningar med varje version kan det vara avvägning mellan reproducerbarhet och hantering av säkerhetsrisker om du använder den senaste avbildningen. Det är ditt ansvar att välja den miljöversion som du använder för dina jobb eller modelldistributioner.
Som standard läggs beroenden ovanpå basavbildningar som Azure Machine Learning tillhandahåller när du skapar miljöer. Du kan också använda dina egna basavbildningar när du använder miljöer i Azure Machine Learning. När du har installerat fler beroenden ovanpå avbildningarna som tillhandahålls av Microsoft eller har egna basavbildningar blir hantering av säkerhetsrisker ditt ansvar.
Associerad med din Azure Machine Learning-arbetsyta är en Azure Container Registry-instans som fungerar som en cache för containeravbildningar. Alla avbildningar som materialiseras skickas till containerregistret. Arbetsytan använder den om experimentering eller distribution utlöses för motsvarande miljö.
Azure Machine Learning tar inte bort någon avbildning från containerregistret. Du ansvarar för att utvärdera behovet av en bild över tid. Om du vill övervaka och underhålla miljöhygienen kan du använda Microsoft Defender för Container Registry för att söka igenom dina avbildningar efter säkerhetsrisker. Information om hur du automatiserar dina processer baserat på utlösare från Microsoft Defender finns i Automatisera reparationssvar.
Mer information finns i åtgärda sårbarheter i miljöer.
Använda en lagringsplats för privata paket
Azure Machine Learning använder Conda och Pip för att installera Python-paket. Som standard laddar Azure Machine Learning ned paket från offentliga lagringsplatser. Om din organisation kräver att du endast hämtar paket från privata lagringsplatser som Azure DevOps-feeds kan du åsidosätta Conda- och Pip-konfigurationen som en del av dina basavbildningar och dina miljökonfigurationer för beräkningsinstanser.
Följande exempelkonfiguration visar hur du tar bort standardkanalerna och lägger till dina egna privata Conda- och Pip-feeds. Överväg att använda installationsskript för beräkningsinstanser för automatisering.
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/
Information om hur du anger dina egna basavbildningar i Azure Machine Learning finns i Skapa en miljö från en Docker-byggkontext. Mer information om hur du konfigurerar Conda-miljöer finns i Skapa en miljöfil manuellt på Conda-webbplatsen.
Sårbarhetshantering på beräkningsvärdar
Hanterade beräkningsnoder i Azure Machine Learning använder Microsoft-hanterade VM-avbildningar för operativsystem. När du etablerar en nod hämtas den senaste uppdaterade VM-avbildningen. Det här beteendet gäller för beräkningsinstanser, beräkningskluster, serverlös beräkning (förhandsversion) och beräkningsalternativ för hanterad slutsatsdragning.
Även om VM-avbildningar för operativsystem regelbundet korrigeras genomsöker Azure Machine Learning inte aktivt beräkningsnoder efter sårbarheter när de används. Överväg nätverksisolering av din beräkning för ett extra skyddslager.
Att se till att din miljö är uppdaterad och att beräkningsnoder använder den senaste operativsystemversionen är ett delat ansvar mellan dig och Microsoft. Noder som inte är inaktiva kan inte uppdateras till den senaste VM-avbildningen. Överväganden skiljer sig något åt för varje beräkningstyp, enligt beskrivningen i följande avsnitt.
Beräkningsinstans
Beräkningsinstanser får de senaste VM-avbildningarna när de etableras. Microsoft släpper nya VM-bilder varje månad. När du har distribuerat en beräkningsinstans uppdateras den inte aktivt. Du kan köra frågor mot en instans operativsystemversion. Om du vill hålla dig uppdaterad med de senaste programuppdateringarna och säkerhetskorrigeringarna kan du använda någon av följande metoder:
Återskapa en beräkningsinstans för att hämta den senaste OS-avbildningen (rekommenderas).
Om du använder den här metoden förlorar du data och anpassningar (till exempel installerade paket) som lagras på instansens operativsystem och tillfälliga diskar.
När du återskapar instansen:
- Lagra notebook-filer i katalogen Användarfiler för att spara dem.
- Montera data för att spara filer.
Mer information om avbildningsversioner finns i viktig information om Azure Machine Learning-beräkningsinstansens avbildning.
Uppdatera os- och Python-paket regelbundet.
Använd Linux-pakethanteringsverktyg för att uppdatera paketlistan med de senaste versionerna:
sudo apt-get update
Använd Linux-pakethanteringsverktyg för att uppgradera paket till de senaste versionerna. Paketkonflikter kan uppstå när du använder den här metoden.
sudo apt-get upgrade
Använd Python-pakethanteringsverktyg för att uppgradera paket och söka efter uppdateringar:
pip list --outdated
Du kan installera och köra ytterligare genomsökningsprogram på beräkningsinstansen för att söka efter säkerhetsproblem:
- Använd Trivy för att identifiera sårbarheter på os- och Python-paketnivå.
- Använd ClamAV för att identifiera skadlig kod. Den är förinstallerad på beräkningsinstanser.
Agentinstallationen för Microsoft Defender för servrar stöds för närvarande inte.
Överväg att använda anpassningsskript för automatisering. Ett exempel på ett installationsskript som kombinerar Trivy och ClamAV finns i Exempel på konfigurationsskript för Beräkningsinstans.
Beräkningskluster
Beräkningskluster uppgraderar automatiskt noder till den senaste VM-avbildningen. Om du konfigurerar klustret med min nodes = 0
uppgraderas noderna automatiskt till den senaste versionen av VM-avbildningen när alla jobb har slutförts och klustret reduceras till noll noder.
Under följande förhållanden skalas inte klusternoder ned, så de kan inte hämta den senaste VM-avbildningen:
- Klustrets minsta antal noder är inställt på ett värde som är större än noll.
- Jobb schemaläggs kontinuerligt i klustret.
Du ansvarar för att skala ned icke-inaktiva klusternoder för att hämta de senaste uppdateringarna av OS VM-avbildningen. Azure Machine Learning stoppar inte arbetsbelastningar som körs på beräkningsnoder för att utfärda VM-uppdateringar. Ändra tillfälligt de minsta noderna till noll och gör det möjligt för klustret att minska till noll noder.
Hanterade onlineslutpunkter
Hanterade onlineslutpunkter tar automatiskt emot uppdateringar av os-värdavbildningar som innehåller sårbarhetskorrigeringar. Uppdateringsfrekvensen för bilder är minst en gång i månaden.
Beräkningsnoder uppgraderas automatiskt till den senaste vm-avbildningsversionen när den versionen släpps. Du behöver inte vidta några åtgärder.
Kundhanterade Kubernetes-kluster
Med Kubernetes-beräkning kan du konfigurera Kubernetes-kluster för att träna, utföra slutsatsdragning och hantera modeller i Azure Machine Learning.
Eftersom du hanterar miljön med Kubernetes är det ditt ansvar att hantera både säkerhetsrisker för virtuella operativsystem och sårbarheter för containeravbildningar.
Azure Machine Learning publicerar ofta nya versioner av Containeravbildningar för Azure Machine Learning-tillägg i Microsofts artefaktregister. Microsoft ansvarar för att se till att nya avbildningsversioner är fria från sårbarheter. Varje version åtgärdar sårbarheter.
När dina kluster kör jobb utan avbrott kan körningsjobb köra inaktuella containeravbildningsversioner. När du har uppgraderat amlarc
tillägget till ett kluster som körs börjar nyligen skickade jobb att använda den senaste avbildningsversionen. När du uppgraderar amlarc
tillägget till den senaste versionen rensar du de gamla containeravbildningsversionerna från klustren efter behov.
Om du vill se om ditt Azure Arc-kluster kör den senaste versionen av amlarc
använder du Azure Portal. Under din Azure Arc-resurs av typen Kubernetes – Azure Arc går du till Tillägg för att hitta versionen av amlarc
tillägget.
Viktigt!
Om du har inaktiverat automatisk uppdatering med hjälp av parametern --auto-upgrade false
för az k8s-extension create
kommandot måste du uppdatera tillägget manuellt med hjälp az k8s-extension update
av . Information om versionerna av det här tillägget finns i viktig information.
AutoML- och Designer-miljöer
För kodbaserade träningsupplevelser styr du vilken Azure Machine Learning-miljö som ska användas. Med AutoML och designern kapslas miljön in som en del av tjänsten. De här typerna av jobb kan köras på beräkningar som du konfigurerar för att tillåta extra kontroller, till exempel nätverksisolering.
AutoML-jobb körs på miljöer som lagrar ovanpå Azure Machine Learning Base Docker-avbildningar.
Designerjobb delas upp i komponenter. Varje komponent har en egen miljö som lagrar ovanpå Docker-basavbildningarna i Azure Machine Learning. Mer information om komponenter finns i komponentreferensen.