In den komplexen IT-Umgebungen von heute ist die Aufrechterhaltung der Sicherheit von Benutzerumgebungen von größter Bedeutung. Für IT-Experten und Managed Service Provider (MSPs) besteht eine Herausforderung darin, die Ausführung potenziell schädlicher ausführbarer Dateien einzuschränken, die sich an Speicherorten wie AppData oder im Download-Ordner eines Benutzers befinden. Um diese Herausforderung zu verstehen, wollen wir uns mit einer leistungsstarken Skriptlösung zum Blockieren von ausführbaren Dateien aus AppData und anderen festgelegten Speicherortenbefassen.
Verständnis der Richtlinien zur Softwareeinschränkung
Softwareeinschränkungsrichtlinien (SRP) sind eine Funktion von Windows, mit der Administratoren steuern können, welche Software auf ihren Computern ausgeführt werden kann. SRP kann verwendet werden, um bestimmte ausführbare Dateien, Dateierweiterungen oder sogar ganze Verzeichnisse zu blockieren.
Wenn eine ausführbare Datei ausgeführt wird, überprüft Windows die SRP-Einstellungen, um festzustellen, ob die Datei ausgeführt werden darf. Wenn die Datei nicht ausgeführt werden darf, wird eine Fehlermeldung angezeigt.
SRP ist ein leistungsfähiges Tool, das zum Schutz von Computern vor Malware und anderen Sicherheitsbedrohungen eingesetzt werden kann. Es ist jedoch wichtig, SRP mit Bedacht einzusetzen, da es auch die Ausführung legitimer Software blockieren kann.
Das Skript Disable-AppDataExe.ps1
Das Skript “Disable-AppDataExe.ps1” ist ein PowerShell-Skript, mit dem die Ausführung von ausführbaren Dateien in den Verzeichnissen “%AppData%” und “%UserProfile%Downloads” verhindert werden kann. Das Skript ist anpassbar, so dass Sie wählen können, welche Dateierweiterungen blockiert werden sollen und welche Verzeichnisse eingeschränkt werden sollen.
#Requires -Version 5.1 <# .SYNOPSIS Creates a Software Restriction Policy to block executables from AppData and a user's Downloads folder. .DESCRIPTION Creates a Software Restriction Policy to block executables from AppData and a user's Downloads folder. .EXAMPLE -RestrictedDirectory "%APPDATA%", "%UserProfile%Downloads" Creates a Software Restriction Policy to block executables from AppData and a user's Downloads folder. This is the default. .EXAMPLE PS C:> Disable-AppDataExe.ps1 -RestrictedDirectory "%APPDATA%", "%UserProfile%Downloads" Creates a Software Restriction Policy to block executables from AppData and a user's Downloads folder. This is the default. .OUTPUTS None .NOTES Minimum OS Architecture Supported: Windows 10, Windows Server 2016 - DOES NOT SUPPORT WINDOWS 11 Release Notes: Initial Release (c) 2023 NinjaOne By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https://www.ninjaone.com/terms-of-use. Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA). #> [CmdletBinding()] param ( # Paths to block executions [Parameter()] [String[]] $RestrictedDirectory = @("%APPDATA%", "%UserProfile%Downloads"), # Executables [Parameter()] [String[]] $ExecutableTypes = @("ADE", "ADP", "BAS", "BAT", "CHM", "CMD", "COM", "CPL", "CRT", "EXE", "HLP", "HTA", "INF", "INS", "ISP", "LNK", "MDB", "MDE", "MSC", "MSI", "MSP", "MST", "OCX", "PCD", "PIF", "REG", "SCR", "SHS", "URL", "VB", "WSC") ) begin { function Test-IsElevated { $id = [System.Security.Principal.WindowsIdentity]::GetCurrent() $p = New-Object System.Security.Principal.WindowsPrincipal($id) if ($p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)) { Write-Output $true } else { Write-Output $false } } } process { if (-not (Test-IsElevated)) { Write-Error -Message "Access Denied. Please run with Administrator privileges." exit 1 } # Clear existing rules $BaseRegPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\safer' if (Test-Path "$BaseRegPath") { Remove-Item "$BaseRegPath" -Recurse } # Create our rule settings New-Item "$BaseRegPath" New-Item "$($BaseRegPath)\codeidentifiers" New-Item "$($BaseRegPath)\codeidentifiers\0" New-Item "$($BaseRegPath)\codeidentifiers\0\Paths" New-ItemProperty "$($BaseRegPath)\codeidentifiers" -Name 'authenticodeenabled' -Value 0 -PropertyType DWord New-ItemProperty "$($BaseRegPath)\codeidentifiers" -Name 'DefaultLevel' -Value 262144 -PropertyType DWord New-ItemProperty "$($BaseRegPath)\codeidentifiers" -Name 'TransparentEnabled' -Value 1 -PropertyType DWord New-ItemProperty "$($BaseRegPath)\codeidentifiers" -Name 'PolicyScope' -Value 0 -PropertyType DWord New-ItemProperty "$($BaseRegPath)\codeidentifiers" -Name 'ExecutableTypes' -Value $ExecutableTypes -PropertyType MultiString foreach ($Directory in $RestrictedDirectory) { $pathguid = [guid]::newguid() $newpathkey = "$($BaseRegPath)\codeidentifiers\0\Paths{" + $pathguid + "}" if ((Test-Path -LiteralPath $newpathkey) -ne $true) { New-Item $newpathkey } New-ItemProperty -LiteralPath $newpathkey -Name 'SaferFlags' -Value 0 -PropertyType DWord New-ItemProperty -LiteralPath $newpathkey -Name 'ItemData' -Value $Directory -PropertyType ExpandString } gpupdate.exe /force }
So verwenden Sie das Skript
Um das Skript “Disable-AppDataExe.ps1” zu verwenden, muss PowerShell installiert sein und mit administrativen Rechten ausgeführt werden. Sobald Sie das Skript haben, können Sie es ausführen, indem Sie den folgenden Befehl an der PowerShell-Eingabeaufforderung eingeben:
.Disable-AppDataExe.ps1
Das Skript verhindert dann, dass die angegebenen ausführbaren Dateien in den angegebenen Verzeichnissen ausgeführt werden.
Abschließende Überlegungen
Das Skript Disable-AppDataExe.ps1 ist ein nützliches Tool, um die Ausführung von ausführbaren Dateien in bestimmten Verzeichnissen zu verhindern. Es ist jedoch wichtig, sich seiner Grenzen bewusst zu sein. Wenn Sie verstehen, wie SRP funktioniert und wie Sie das Skript verwenden, können Sie dazu beitragen, Ihre Computer vor Malware und anderen Sicherheitsbedrohungen zu schützen.
Bei der Verwendung des Skripts Disable-AppDataExe.ps1 sind einige zusätzliche Dinge zu beachten:
- Das Skript blockiert nur ausführbare Dateien, die sich in den angegebenen Verzeichnissen befinden. Es werden keine ausführbaren Dateien blockiert, die sich in anderen Verzeichnissen befinden, z. B. im Verzeichnis “Programme”.
- Das Skript blockiert keine ausführbaren Dateien, die über eine Eingabeaufforderung oder eine Batch-Datei ausgeführt werden.
- Das Skript kann von Benutzern mit administrativen Rechten umgangen werden. (Es könnte Sie interessieren, wie Sie lokale administrative Rechte mit PowerShell deaktivieren können)
NinjaOne kann IT-Experten dabei helfen, ausführbare Dateien nahtlos über eine unbegrenzte Anzahl von Endpunkten zu blockieren. NinjaOne ist eine Cloud-basierte IT-Management-Plattform, die eine Vielzahl von Sicherheitsfunktionen bietet, einschließlich der Möglichkeit, Softwareeinschränkungsrichtlinien (SRP) zu erstellen und einzusetzen. Die SRP-Funktion von NinjaOne ist einfach zu bedienen und kann so angepasst werden, dass ausführbare Dateien in bestimmten Verzeichnissen, Dateierweiterungen oder sogar ganze Anwendungen blockiert werden. Zusätzlich kann NinjaOnes SRP Funktion zentral verwaltet werden, was die Skalierung auf eine unbegrenzte Anzahl von Endpunkten erleichtert.
Hier sind einige der Vorteile von NinjaOne zum Blockieren ausführbarer Dateien:
- Nahtlose Bereitstellung: Die SRP-Funktion von NinjaOne kann ohne individuelle Installationen oder Konfigurationen auf den Endpunkten eingesetzt werden. Auf diese Weise lässt sich die Richtlinie schnell und einfach auf einer großen Anzahl von Endpunkten bereitstellen.
- Zentralisierte Verwaltung: Die SRP-Funktion von NinjaOne kann zentral von einer einzigen Konsole aus verwaltet werden. Dies erleichtert das Erstellen, Ändern und Bereitstellen von SRP-Richtlinien für alle Ihre Endpunkte.
- Flexibilität: NinjaOnes SRP Funktion ist flexibel und kann an die spezifischen Bedürfnisse Ihres Unternehmens angepasst werden. Sie können ausführbare Dateien nach Verzeichnis, Dateierweiterung oder sogar Anwendung blockieren.
- Skalierbarkeit: NinjaOnes SRP Funktion kann auf eine unbegrenzte Anzahl von Endpunkten skaliert werden. Das macht es zu einer großartigen Lösung für Unternehmen jeder Größe.
Erfahren Sie mehr über NinjaOne Endpunkt-Management.