Dowiedz się więcej o zabezpieczeniach skryptów programu PowerShell

Dotyczy: programu Configuration Manager (bieżąca gałąź)

Do obowiązków administratora należy weryfikacja proponowanego programu PowerShell i użycia parametrów programu PowerShell w środowisku. Oto kilka pomocnych zasobów, które pomogą administratorom zapoznać się z możliwościami programu PowerShell i potencjalnymi zagrożeniami. Te wskazówki mają pomóc w ograniczeniu potencjalnych obszarów ryzyka i umożliwić stosowanie bezpiecznych skryptów.

Zabezpieczenia skryptów programu PowerShell

Funkcja skryptów programu Configuration Manager umożliwia wizualne przeglądanie i zatwierdzanie skryptów. Inny administrator może zażądać, aby jego skrypt był dozwolony. Administratorzy powinni mieć świadomość, że skrypty programu PowerShell mogą zawierać skrypty zaciemnione. Zaciemniony skrypt może być złośliwy i trudny do wykrycia za pomocą kontroli wzrokowej podczas procesu zatwierdzania skryptu. Przejrzyj skrypty programu PowerShell i użyj narzędzi do inspekcji, aby wykrywać podejrzane problemy ze skryptami. Te narzędzia nie zawsze mogą ustalić intencje autora programu PowerShell, dlatego mogą zwrócić uwagę na podejrzany skrypt. Jednak od administratora będzie wymagana ocena, czy jest to złośliwa, czy celowa składnia skryptu.

Zalecenia

  • Zapoznaj się ze wskazówkami dotyczącymi zabezpieczeń programu PowerShell, korzystając z różnych linków wymienionych poniżej.
  • Podpisywanie skryptów: Inną metodą zabezpieczania skryptów jest ich weryfikacja, a następnie podpisanie przed zaimportowaniem ich do użycia.
  • Nie przechowuj wpisów tajnych (takich jak hasła) w skryptach programu PowerShell i dowiedz się więcej o sposobie obsługi wpisów tajnych.

Ogólne informacje o zabezpieczeniach programu PowerShell

Ten zbiór linków został wybrany, aby dać administratorom programu Configuration Manager punkt wyjścia do poznania zaleceń dotyczących zabezpieczeń skryptów programu PowerShell.

Obrona przed atakami programu PowerShell

Ochrona przed wstrzykiwaniem złośliwego kodu

PowerShell — zespół niebieski omawia rejestrowanie blokowania skryptów głębokich, rejestrowanie zdarzeń chronionych, interfejs skanowania chroniącego przed złośliwym kodem i interfejsy API bezpiecznego generowania kodu

API interfejsu skanowania chroniącego przed złośliwym oprogramowaniem

Zabezpieczenia parametrów programu PowerShell

Przekazywanie parametrów to sposób na elastyczność skryptów i odłożenie decyzji do czasu wykonywania. Otwiera to również kolejną powierzchnię ryzyka.

Poniższa lista zawiera zalecenia zapobiegające wstrzykiwaniu złośliwych parametrów lub skryptów:

  • Zezwalaj tylko na używanie wstępnie zdefiniowanych parametrów.
  • Użyj funkcji wyrażeń regularnych, aby sprawdzić dozwoloną liczbę parametrów.
    • Przykład: Jeśli dozwolony jest tylko określony zakres wartości, użyj wyrażenia regularnego, aby sprawdzić, czy istnieją tylko te znaki lub wartości, które mogą składać się na zakres.
    • Sprawdzanie poprawności parametrów może pomóc w zapobieganiu próbom użycia przez użytkowników określonych znaków, które mogą być zmienione, takich jak cudzysłowy. Typów cudzysłowów może być wiele, więc używanie wyrażeń regularnych w celu sprawdzenia, które znaki są uznane za dopuszczalne, jest często łatwiejsze niż próba zdefiniowania wszystkich niedozwolonych danych wejściowych.
  • Użyj modułu programu PowerShell "łowcy iniekcji" w Galerii programu PowerShell.
    • Mogą występować wyniki fałszywie dodatnie, więc szukaj intencji, gdy coś jest oflagowane jako podejrzane, aby ustalić, czy jest to rzeczywisty problem, czy nie.
  • Program Microsoft Visual Studio zawiera analizator skryptów, który może pomóc w sprawdzaniu składni programu PowerShell.

Poniższy film zatytułowany: "DEF CON 25 - Lee Holmes - Get $pwnd: Attacking Battle Hardened Windows Server" zawiera przegląd rodzajów problemów, przed którymi możesz się zabezpieczyć (zwłaszcza sekcja od 12:20 do 17:50):

Zalecenia środowiskowe

Poniższa lista zawiera ogólne zalecenia dla administratorów programu PowerShell:

  • Wdróż najnowszą wersję programu PowerShell, taką jak wersja 5 lub nowsza, która jest wbudowana w system Windows 10 lub nowszy. Można również wdrożyć strukturę Windows Management Framework.
  • Włączanie i zbieranie dzienników programu PowerShell, w tym opcjonalne rejestrowanie zdarzeń chronionych. Dołącz te dzienniki do podpisów, wyszukiwania zagrożeń i przepływów pracy reagowania na zdarzenia.
  • Zaimplementuj Just Enough Administration w systemach o wysokiej wartości, aby wyeliminować lub ograniczyć nieograniczony dostęp administracyjny do tych systemów.
  • Wdróż zasady kontroli aplikacji usługi Windows Defender, aby umożliwić wstępnie zatwierdzonym zadaniom administracyjnym korzystanie z pełnych możliwości języka programu PowerShell, jednocześnie ograniczając użycie interakcyjne i niezatwierdzone do ograniczonego podzbioru języka programu PowerShell.
  • Wdróż system Windows 10 lub nowszy, aby zapewnić dostawcy oprogramowania antywirusowego pełny dostęp do całej zawartości (w tym zawartości wygenerowanej lub pozbawionej zaciemnienia w czasie wykonywania) przetwarzanej przez hostów skryptów systemu Windows, w tym programu PowerShell.