Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A PowerShell számos olyan funkcióval rendelkezik, amelyeket a szkriptelési környezet biztonságának javítására terveztek.
Végrehajtási irányelv
A PowerShell végrehajtási szabályzata egy biztonsági funkció, amely szabályozza, hogy a PowerShell milyen feltételek mellett tölt be konfigurációs fájlokat, és parancsfájlokat futtat. Ez a funkció segít megakadályozni a rosszindulatú szkriptek végrehajtását. Csoportházirend-beállítással végrehajtási szabályzatokat állíthat be számítógépekre és felhasználókra. A végrehajtási szabályzatok csak a Windows platformra vonatkoznak.
További információért lásd az about_Execution_Policies részt .
A SecureString osztály használata
A PowerShell számos parancsmaggal rendelkezik, amelyek támogatják az System.Security.SecureString osztály használatát.
A .NET-osztályhoz hasonlóan a SecureStringet is használhatja a saját szkriptjeiben. A Microsoft azonban nem javasolja a SecureString használatát az új fejlesztéshez. A Microsoft azt javasolja, hogy kerülje a jelszavak használatát, és támaszkodjon más hitelesítési eszközökre, például tanúsítványokra vagy Windows-hitelesítésre.
A PowerShell továbbra is támogatja a SecureString osztályt a visszamenőleges kompatibilitás érdekében. A SecureString használata még mindig biztonságosabb, mint egy egyszerű szöveges sztring használata. A PowerShell továbbra is a SecureString típusra támaszkodik, hogy elkerülje a tartalom véletlen felfedését a konzolon vagy a naplókban. Körültekintően használja a SecureStringet , mert könnyen átalakítható egyszerű szöveges sztringgé. A SecureString használatáról a System.Security.SecureString osztály dokumentációjában olvashat bővebben.
Modul- és szkriptblokknaplózás
A modulnaplózás lehetővé teszi a naplózás engedélyezését a kiválasztott PowerShell-modulokhoz. Ez a beállítás a számítógép összes munkamenetében érvényes. A PowerShell a Windows PowerShell eseménynaplójában rögzíti a megadott modulok folyamatvégrehajtási eseményeit.
A szkriptblokkok naplózása lehetővé teszi a parancsok, szkriptblokkok, függvények és szkriptek feldolgozását – akár interaktív módon, akár automatizálással. A PowerShell naplózza ezeket az információkat a Microsoft-Windows-PowerShell/Operational eseménynaplóban.
További információért tekintse át az alábbi cikkeket:
AMSI-támogatás
A Windows Antimalware Scan Interface (AMSI) egy API, amely lehetővé teszi, hogy az alkalmazások műveleteket adjanak át egy kártevőirtó szkennernek, például a Windows Defendernek a rosszindulatú hasznos adatok kereséséhez. A PowerShell 5.1-től kezdve a Windows 10-en (és újabb verziókon) futó PowerShell minden szkriptblokkot átad az AMSI-nek.
A PowerShell 7.3 kibővíti az AMSI-nek küldött adatokat ellenőrzés céljából. Most már az összes .NET-metódushívást tartalmazza.
Az AMSI-ről további információt az AMSI segít.
Korlátozott nyelvi mód
A KorlátozottAnguage mód a PowerShell-munkamenetekben engedélyezett parancsmagok és .NET-típusok korlátozásával védi a rendszert. A teljes leírásért tekintse meg a about_Language_Modes.
Alkalmazásvezérlő
A Windows 10 két technológiát tartalmaz, az App Control vállalati verziót és az AppLockert , amelyekkel vezérelheti az alkalmazásokat. A PowerShell észleli, hogy a rendszerszintű alkalmazásvezérlési szabályzat kényszerítve van-e. A szabályzat bizonyos viselkedéseket alkalmaz szkriptblokkok, szkriptfájlok vagy modulfájlok betöltésekor, hogy megakadályozza a kód tetszőleges végrehajtását a rendszeren.
Az App Control for Business a Microsoft Security Response Center (MSRC) által meghatározott karbantartási feltételek alapján biztonsági funkcióként lett kialakítva. Az App Control a Windows előnyben részesített alkalmazásvezérlő rendszere.
További információ arról, hogy a PowerShell hogyan támogatja az AppLockert és az App Controlt, olvassa el az App Control használata a PowerShell biztonságossá tételéhez című témakört.
Szoftveres anyagjegyzék (SBOM)
A PowerShell 7.2-től kezdve minden telepítési csomag tartalmaz egy szoftveres anyagjegyzéket (SBOM). A PowerShell csapata SBOM-eket is gyárt azokhoz a modulokhoz, amelyek saját tulajdonban vannak, de a PowerShelltől függetlenül szállítják őket.
Az SBOM-fájlokat a következő helyeken találja:
- A PowerShellben keresse meg az SBOM-t a következő helyen
$PSHOME/_manifest/spdx_2.2/manifest.spdx.json: . - Modulok esetén keresse meg az SBOM-t a modul mappájában.
_manifest/spdx_2.2/manifest.spdx.json
Az SBOM létrehozása és közzététele az első lépés a szövetségi kormányzati kiberbiztonság modernizálásához és a szoftverellátási lánc biztonságának javításához. A kezdeményezésről további információt az SBOM-ek SPDX-sel való létrehozása a Microsoftnál című blogbejegyzésben talál.
Biztonságos adatátvitel a PowerShell-remotingban
A PowerShell 7.6-preview5-ös verziója előtt a Session_KeySecureString titkosítására szolgál, mielőtt távoli PowerShell-munkamenetet küldene neki. A PowerShell Remoting Protocol (PSRP) kulcscserét hajt végre az ügyfél és a kiszolgáló között, amikor át kell helyezni egy SecureString objektumot. A csere a következő lépéseket foglalja magában:
- Az ügyféloldal létrehoz egy nyilvános/privát kulcspárt, és elküldi a nyilvános kulcsot a kiszolgálónak.
- A kiszolgáló létrehoz egy munkamenetkulcsot a szimmetrikus titkosításhoz.
- A kiszolgáló a nyilvános kulccsal titkosítja a munkamenetkulcsot, és elküldi az ügyfélnek.
- Az ügyfél és a kiszolgáló is az új munkamenetkulcsot használja a SecureString-objektumok titkosításához .
A PowerShell Remoting Protocol (PSRP) az algoritmust RSAEncryptionPadding.Pkcs1 használja a kulcscsere során. Az algoritmus NEM biztonságos, így a kulcscsere nem biztosít további biztonságot.
Fontos
Biztonságos átviteli réteget kell használnia a PSRP-en keresztüli biztonságos adatátvitel biztosításához.
A PowerShell 7.6-preview.5 verziójától kezdve a kulcscsere elavult. A PSRP verziója a 2.4-es verzióra lett növelve, és a következő módosításokat tartalmazza:
A következő PSRP-üzenetek elavultak, ha az ügyfél és a kiszolgáló is 2.4-s vagy újabb verziójú:
- nyilvános kulcs
- NYILVÁNOS_KULCS_KÉRÉS
- TITKOSÍTOTT_MUNKAMENET_KULCS
A titkosítási és visszafejtési lépések
SecureStringkimaradnak, ha az ügyfél és a kiszolgáló is 2.4-s vagy újabb verziójú.
Ez a módosítás visszamenőlegesen kompatibilis.
- A régi ügyfelek vagy kiszolgálók (2.3-as vagy újabb verzió) esetén a kulcscsere akkor is használható, ha szükséges.
- A PSRP akkor használhat elnevezett távoli csöves munkameneteket, ha az ügyfél és a kiszolgáló is ugyanazon a gépen található.
Mivel egy távoli ügyfél csatlakozhat a nevesített csőhöz, és az adatok már nem munkamenet-kulccsal titkosítottan vannak, a nevesített cső (amelyet a rendszer
Enter-PSHostProcesscéljából használ) elutasítja a távoli ügyfelet.
Biztonsági karbantartási feltételek
A PowerShell a Windows Microsoft biztonsági karbantartási feltételeit követi. Csak a biztonsági funkciók felelnek meg a karbantartási feltételeknek.
Biztonsági funkciók
- Rendszerzárolás és alkalmazásvezérlés vállalkozások számára
- Korlátozott nyelvi mód az App Control vállalati verzióval
A védelem részletes funkciói
- Rendszerzárolás az AppLockerrel
- Korlátozott nyelvi mód az AppLockerrel
- Végrehajtási házirend