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.
Ez a cikk azt ismerteti, hogyan állíthat be alkalmazásvezérlő vállalati szabályzatot. Konfigurálhatja a szabályzatot a szabályzat szabályának kikényszerítésére vagy naplózására. Naplózási módban a PowerShell működése nem változik, de naplózza az eseményazonosító 16387-et az PowerShellCore/Analytic eseménynaplóba. Kényszerítési módban a PowerShell alkalmazza a szabályzat korlátozásait.
Ez a cikk feltételezi, hogy tesztgépet használ, hogy tesztelhesse a PowerShell működését egy gépszintű alkalmazásvezérlési szabályzatban, mielőtt üzembe helyezené a házirendet a környezetben.
Alkalmazásvezérlési szabályzat létrehozása
Az alkalmazásvezérlési szabályzatokat egy XML-fájl ismerteti, amely információkat tartalmaz a szabályzat beállításairól, az engedélyezett fájlokról és a szabályzat által felismert aláíró tanúsítványokról. A szabályzat alkalmazásakor csak a jóváhagyott fájlok tölthetőek be és futtathatók. A PowerShell vagy letiltja a nem jóváhagyott parancsfájlok futtatását, vagy a házirend beállításaitól függően módban futtatja őket ConstrainedLanguage .
Az alkalmazásvezérlési szabályzatot a ConfigCI modullal hozhatja létre és módosíthatja, amely az összes támogatott Windows-verzióban elérhető. Ez a Windows PowerShell-modul a Windows PowerShell 5.1-ben vagy a PowerShell 7-ben használható a Windows kompatibilitási rétegen keresztül. Ezt a modult egyszerűbben használhatja a Windows PowerShellben. A létrehozott szabályzat a PowerShell bármely verziójára alkalmazható.
Alkalmazásvezérlési szabályzat létrehozásának lépései
A teszteléshez csak létre kell hoznia egy alapértelmezett szabályzatot és egy önaláírt kódaláíró tanúsítványt.
Alapértelmezett szabályzat létrehozása
New-CIPolicy -Level PcaCertificate -FilePath .\SystemCIPolicy.xml -UserPEsEz a parancs létrehoz egy alapértelmezett szabályzatfájlt, amelynek a neve
SystemCIPolicy.xmllehetővé teszi az összes Microsoft kódaláírt fájl futtatását.Feljegyzés
A parancs futtatása akár két órát is igénybe vehet, mert a teljes tesztgépet be kell vizsgálnia.
Naplózási mód letiltása az alapértelmezett házirendben
A rendszer mindig módban hoz létre új szabályzatot
Audit. A szabályzatkényszerítés teszteléséhez le kell tiltania a naplózási módot a szabályzat alkalmazásakor. Szerkessze aSystemCIPolicy.xmlfájlt egy szövegszerkesztővel, példáulnotepad.exea Visual Studio Code-tal (VS Code). Tegye megjegyzésbe aAudit modelehetőséget.<!-- <Rule> <Option>Enabled:Audit Mode</Option> </Rule> -->Önaláírt kódaláíró tanúsítvány létrehozása
A tesztgépen futtatni kívánt teszt bináris fájlok vagy parancsfájlok aláírásához kódaláíró tanúsítványra van szükség. Ezt
New-SelfSignedCertificatea PKI modul biztosítja. A legjobb eredmény érdekében futtassa ezt a parancsot a Windows PowerShell 5.1-ben.$newSelfSignedCertificateSplat = @{ DnsName = $Env:COMPUTERNAME CertStoreLocation = "Cert:\CurrentUser\My\" Type = 'CodeSigningCert' } $cert = New-SelfSignedCertificate @newSelfSignedCertificateSplat Export-Certificate -Cert $cert -FilePath C:\certs\signing.cer Import-Certificate -FilePath C:\certs\signing.cer -CertStoreLocation "Cert:\CurrentUser\Root\" $cert = Get-ChildItem Cert:\CurrentUser\My\ -CodeSigningCert dir C:\bin\PowerShell\pwsh.exe | Set-AuthenticodeSignature -Certificate $certKódaláíró tanúsítvány hozzáadása a szabályzathoz
Az alábbi paranccsal adja hozzá az új kódaláíró tanúsítványt a szabályzathoz.
Add-SignerRule -FilePath .\SystemCIPolicy.xml -CertificatePath C:\certs\signing.cer -UserAz XML-szabályzatfájl konvertálása szabályzatkényszerítési bináris fájllá
Végül az XML-fájlt bináris fájllá kell konvertálnia, amelyet az App Control használ egy szabályzat alkalmazásához.
ConvertFrom-CIPolicy -XmlFilePath .\SystemCIPolicy.xml -BinaryFilePath .\SIPolicy.p7bAz Alkalmazásvezérlési szabályzat alkalmazása
Ha a szabályzatot a tesztgépre szeretné alkalmazni, másolja a
SIPolicy.p7bfájlt a szükséges rendszerhelyre.C:\Windows\System32\CodeIntegrityFeljegyzés
Egyes szabályzatdefiníciókat át kell másolni egy almappába, például
C:\Windows\System32\CodeIntegrity\CiPolicies. További információ: Alkalmazásvezérlési rendszergazdai tippek > Ismert problémák.Az alkalmazásvezérlési szabályzat letiltása
A szabályzat letiltásához nevezze át a
SIPolicy.p7bfájlt. Ha további tesztelést kell végeznie, módosíthatja a nevet a szabályzat újrakonzolására.Rename-Item -Path .\SIPolicy.p7b -NewName .\SIPolicy.p7b.off
Alkalmazásvezérlési szabályzat naplózásának tesztelése
A PowerShell 7.4 új funkciót adott hozzá az alkalmazásvezérlési szabályzatok naplózási módban való támogatásához. Naplózási módban a PowerShell hiba nélkül futtatja a nem megbízható szkripteket ConstrainedLanguage , de ehelyett naplózza az üzeneteket az eseménynaplóba. A naplóüzenetek azt írják le, hogy milyen korlátozások vonatkoznak, ha a szabályzat kényszerítés módban lenne.
Naplózási események megtekintése
A PowerShell naplózza az eseményeket a PowerShellCore/Analitikus eseménynaplóban. A napló alapértelmezés szerint nincs engedélyezve. A napló engedélyezéséhez nyissa meg a Windows Eseménynapló, kattintson a jobb gombbal a PowerShellCore/Elemzési naplóra, és válassza a Napló engedélyezése lehetőséget.
Másik lehetőségként futtathatja a következő parancsot egy emelt szintű PowerShell-munkamenetből.
wevtutil.exe sl PowerShellCore/Analytic /enabled:true /quiet
Megtekintheti az eseményeket a Windows Eseménynapló, vagy a Get-WinEvent parancsmag használatával lekérheti az eseményeket.
Get-WinEvent -LogName PowerShellCore/Analytic -Oldest |
Where-Object Id -EQ 16387 | Format-List
TimeCreated : 4/19/2023 10:11:07 AM
ProviderName : PowerShellCore
Id : 16387
Message : App Control Audit.
Title: Method or Property Invocation
Message: Method or Property 'WriteLine' on type 'System.Console' invocation will not
be allowed in ConstrainedLanguage mode.
At C:\scripts\Test1.ps1:3 char:1
+ [System.Console]::WriteLine("pwnd!")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FullyQualifiedId: MethodOrPropertyInvocationNotAllowed
Az eseményüzenet tartalmazza azt a szkriptpozíciót, ahol a korlátozást alkalmazni szeretné. Ezek az információk segítenek megérteni, hogy hol kell módosítania a szkriptet, hogy az az Alkalmazásvezérlési szabályzatban fusson.
Fontos
A naplózási események áttekintése után le kell tiltania az elemzési naplót. Az elemzési naplók gyorsan növekednek, és nagy mennyiségű lemezterületet használnak fel.
Naplózási események megtekintése a PowerShell-hibakeresőben
Ha a $DebugPreference változót egy interaktív PowerShell-munkamenetre Break állítja be, a PowerShell a parancssori szkript hibakeresője lesz a szkript aktuális helyén, ahol a naplózási esemény történt. A töréspont lehetővé teszi a kód hibakeresését és a szkript aktuális állapotának valós idejű vizsgálatát.