Najlepsze rozwiązania dotyczące bezpiecznego kodu
W usłudze Azure Machine Learning możesz przekazywać pliki i zawartość z dowolnego źródła na platformę Azure. Zawartość w notesach programu Jupyter lub skryptach, które można załadować, może odczytywać dane z sesji, uzyskiwać dostęp do poufnych danych w organizacji na platformie Azure lub uruchamiać złośliwe procesy w Twoim imieniu.
Ważne
Uruchamiaj tylko notesy lub skrypty z zaufanych źródeł. Na przykład gdzie ty lub twój zespół ds. zabezpieczeń przejrzeli notes lub skrypt.
Potencjalne zagrożenia
Programowanie za pomocą usługi Azure Machine Learning często obejmuje internetowe środowiska programistyczne, takie jak notesy lub studio Usługi Azure Machine Learning. W przypadku korzystania ze środowisk deweloperskich opartych na sieci Web potencjalne zagrożenia to:
Wykonywanie skryptów między witrynami (XSS)
- Wstrzyknięcie modelu DOM: ten typ ataku może modyfikować interfejs użytkownika wyświetlany w przeglądarce. Na przykład zmieniając sposób działania przycisku uruchamiania w notesie Jupyter Notebook.
- Token dostępu lub pliki cookie: ataki XSS mogą również uzyskiwać dostęp do lokalnego magazynu i plików cookie przeglądarki. Token uwierzytelniania entra firmy Microsoft jest przechowywany w magazynie lokalnym. Atak XSS może użyć tego tokenu, aby wykonywać wywołania interfejsu API w Twoim imieniu, a następnie wysyłać dane do zewnętrznego systemu lub interfejsu API.
Fałszerstwa żądania między witrynami (CSRF): ten atak może zastąpić adres URL obrazu lub link adresem URL złośliwego skryptu lub interfejsu API. Po załadowaniu obrazu lub kliknięciu linku zostanie wykonane wywołanie adresu URL.
Notesy usługi Azure Machine Learning Studio
Usługa Azure Machine Learning Studio zapewnia środowisko hostowanego notesu w przeglądarce. Komórki w notesie mogą wyświetlać dokumenty HTML lub fragmenty zawierające złośliwy kod. Po renderowaniu danych wyjściowych można wykonać kod.
Możliwe zagrożenia:
- Wykonywanie skryptów między witrynami (XSS)
- Fałszerzość żądań między witrynami (CSRF)
Środki zaradcze udostępniane przez usługę Azure Machine Learning:
- Dane wyjściowe komórki kodu są w trybie piaskownicy w elembcie iframe. Element iframe uniemożliwia skryptowi dostęp do nadrzędnego magazynu DOM, plików cookie lub sesji.
- Zawartość komórki markdown jest czyszczona przy użyciu biblioteki dompurify. Blokuje to renderowanie złośliwych skryptów za pomocą komórek markdown.
- Adres URL obrazu i linki markdown są wysyłane do punktu końcowego należącego do firmy Microsoft, który sprawdza złośliwe wartości. Jeśli zostanie wykryta złośliwa wartość, punkt końcowy odrzuci żądanie.
Zalecane akcje:
- Przed przekazaniem do studia sprawdź, czy zawartość plików jest zaufana. Musisz potwierdzić, że przekazujesz zaufane pliki.
- Po wybraniu linku w celu otwarcia aplikacji zewnętrznej zostanie wyświetlony monit o zaufanie aplikacji.
Wystąpienie obliczeniowe usługi Azure Machine Learning
Wystąpienie obliczeniowe usługi Azure Machine Learning hostuje rozwiązania Jupyter i JupyterLab. W przypadku użycia kodu wewnątrz komórek notesu można wyświetlić dokumenty HTML lub fragmenty zawierające złośliwy kod. Po renderowaniu danych wyjściowych można wykonać kod. Te same zagrożenia mają zastosowanie w przypadku korzystania z aplikacji RStudio lub Posit Workbench (dawniej RStudio Workbench) hostowanej w wystąpieniu obliczeniowym.
Możliwe zagrożenia:
- Wykonywanie skryptów między witrynami (XSS)
- Fałszerzość żądań między witrynami (CSRF)
Środki zaradcze udostępniane przez usługę Azure Machine Learning:
- Brak. Jupyter i JupyterLab to aplikacje typu open source hostowane w wystąpieniu obliczeniowym usługi Azure Machine Learning.
Zalecane akcje:
- Przed przekazaniem sprawdź, czy zawartość plików jest zaufana. Musisz potwierdzić, że przekazujesz zaufane pliki.
Zgłaszanie problemów lub problemów dotyczących zabezpieczeń
Usługa Azure Machine Learning kwalifikuje się do programu Microsoft Azure Bounty. Aby uzyskać więcej informacji, zobacz https://www.microsoft.com/msrc/bounty-microsoft-azure.