AMSI steht für Antimalware Scan Interface. Die Software ist eine Art Zwischenschicht zwischen einer Antiviren-Lösung (wie Defender) und einem Software-Produkt (wie SharePoint, Exchange usw.), welche es der Software ermöglicht, zusätzliche Bedrohungen schon dann zu erkennen, bevor die Bedrohung die eigentlichen Prozesse erreicht. [1]
Im Grunde wird der HTTP-Datenstrom bzw. Arbeitsspeicher bzw. auf der Protokollebene von dem Softwareprodukt mit Hilfe der API der Antivirenlösung auf bedrohliche Elemente im voraus gescannt.
Die AMSI-Integration in SharePoint Server ist standardmäßig deaktiviert. [2]
In dieser Anleitung wird gezeigt, wie man AMSI für SharePoint aktiviert.
Es müssen mindestens folgende zwei Voraussetzungen erfüllt sein:
- Antivirenprodukt muss AMSI unterstützen und
- Das Produkt bzw. die Software muss die AMSI-Schnittstelle integriert haben.
Unter anderem folgende Elemente werden gescannt: [3]
- Benutzerkontensteuerung oder UAC (Erhöhung der EXE-, COM-, MSI- oder ActiveX-Installation)
- PowerShell (Skripts, interaktive Verwendung und dynamische Codeauswertung)
- Windows Script Host (wscript.exe und cscript.exe)
- JavaScript und VBScript
- Office VBA-Makros
Voraussetzungen
Auf jedem SP-Server überprüfen:
- Windows Server 2016 oder höher
- SharePoint Server-Abonnementedition Version 22H2 oder höher
- SharePoint Server 2019 Build 16.0.10396.20000 oder höher (KB-5002358: Sicherheitsupdate vom 14. März 2023 für SharePoint Server 2019)
- SharePoint Server 2016 Build 16.0.5391.1000 oder höher (KB-5002385: Sicherheitsupdate vom 11. April 2023 für SharePoint Server 2016)
- Microsoft Defender mit AV-Engine-Version 1.1.18300.4 oder höher (alternativ ein kompatibler AMSI-fähiger Drittanbieter für Antiviren-/Antischadsoftware) ^2
Mögliche Nachteile
- Je nach Antiviren-Software kann die Performance des Softwareproduktes bzw. die CPU-Leistung stark beeinträchtigt werden, weil theoretisch jede HTTP-Anfrage untersucht werden könnte. ^2
- Wird eine Antivirensoftware installiert, dann wird Defender automatisch deaktiviert, bis die Antivirensoftware deinstalliert wird. Falls die neue Antivirensoftware dabei kein AMSI unterstützt, dann ist der AMSI-Schutz nicht vorhanden.
AMSI-Provider anzeigen
Anzeigen, welche AMSI-Provider von Antiviren-Tools registriert wurden
$AMSI = Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\AMSI\Providers' -Recurse
$AMSI -match '[0-9A-Fa-f\-]{36}'
$Matches.Values | ForEach-Object {Get-ChildItem "HKLM:\SOFTWARE\Classes\CLSID\{$_}" | Format-Table -AutoSize}
Hier ist nur der Defender vorhanden, der auf die AMSI API zugreift.
Ausgabebeispiel:
True
Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{2781761E-28E0-4109-99FE-B9D127C57AFE}
Name Property
---- --------
Hosts (default) : Scanned Hosting Applications
Implemented Categories
InprocServer32 (default) : "C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.23050.5-0\MpOav.dll"
ThreadingModel : Both
SP-Farm Version anzeigen
# SharePoint Modul laden
Add-PSSnapin Microsoft.SharePoint.PowerShell
# Buildversion ausgeben
(get-spfarm).buildversion
Die Farmversion muss ^2
- Für SP 2016 > 16.0.5391.1000 sein
- Für SP 2019 > 16.0.10396.20000 sein
Ausgabebeispiel:
Major Minor Build Revision
----- ----- ----- --------
16 0 10398 20000
Defender Engine Version anzeigen
CMD als Admin öffnen.
cd %ProgramData%\Microsoft\Windows Defender\Platform
dir
:: Angezeigten <Ordnernamen> mit höchster Version beim nächsten Befehl verwenden
cd <Ordnername>
mpcmdrun.exe -SignatureUpdate
Die Engine muss > 1.1.18300.4 sein ^2
Copyright (C) Microsoft Corporation. All rights reserved.
C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.2105.5-0>MpCmdRun.exe -SignatureUpdate
Signature update started . . .
Service Version: 4.18.2106.6
➡ Engine Version: 1.1.18300.4 ⬅
AntiSpyware Signature Version: 1.343.1364.0
AntiVirus Signature Version: 1.343.1364.0
Signature update finished. No updates needed
C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.2105.5-0>
AMSI Aktivierung per Zentraladministration
Pro Webanwendung folgende Schritte durchführen.
- CA aufrufen
- Application Management
- Manage web applications
- Webanwendung auswählen, für die AMSI aktiviert werden soll
- Manage Features (oben im Ribbon)
- Feature suchen
- SharePoint Server Antimalware Scanning
Beschreibung: "Detect and block potential malware attacks against a web application." - und auf Activate klicken.
- Mit OK das Fenster schließen.
- SharePoint Server Antimalware Scanning
- Für alle gewünschten WebApps wiederholen (bei uns MySite, Portal und CA).
AMSI Aktivierung per PowerShell (alternativ) ^2
Einzeln und selektiv (nach Bedarf) in PowerShell ausführen.
# SharePoint Modul laden
Add-PSSnapin Microsoft.SharePoint.PowerShell
# Alle WebApplikationen ausgeben (inkl. CA)
Get-SPWebApplication -IncludeCentralAdministration
# Prüfen, ob AMSI für eine bestimmte WebApp aktiv ist
Get-SPFeature -Identity 4cf046f3-38c7-495f-a7da-a1292d32e8e9 -WebApplication https://WebApp-url.de/
# Aktiviert, wenn Ausgabe ohne Fehler, bei Fehler (s.u.) nicht aktiviert.
# Get-SPFeature : Cannot find an Enabled Feature object with Id: 4cf046f3-38c7-495f-a7da-a1292d32e8e9 in scope WebApplication Url: https://WebApp-url.de/
# AMSI für eine WebApp aktivieren
# DisplayName "AntimalwareScan"
Enable-SPFeature -Identity 4cf046f3-38c7-495f-a7da-a1292d32e8e9 -Url https://WebApp-url.de/
# AMSI für eine WebApp deaktivieren
# DisplayName "AntimalwareScan"
Disable-SPFeature -Identity 4cf046f3-38c7-495f-a7da-a1292d32e8e9 -Url https://WebApp-url.de/
# AMSI für alle WebApps (inkl. CA) aktivieren
# URLs der WebApps
$WebApps = Get-SPWebApplication -IncludeCentralAdministration | select Url
# WebApps zu String
# Vorsicht: Es gibt auch leere Zeilen davor und danach
$WebAppsString = $WebApps | Out-String
# Strin in Zeilen aufteilen
$WebAppArray = $WebAppsString.split("`n")
# Erste Header-Zeilen und letzten leeren Zeilen entfernen
$WebAppNoHeader = $WebAppArray | Select-Object -Skip 3 | Select-Object -SkipLast 3
# Feature für alle WebApps aktivieren
ForEach($WebApp in $WebAppNoHeader){
Enable-SPFeature -Identity 4cf046f3-38c7-495f-a7da-a1292d32e8e9 -url $WebApp
}