Beispiele für mögliche Anwendungsbereiche
Es gibt viele Anwendungsmöglichkeiten für die API-Funktion. Hier sind zwei Beispiele, die für Kunden von Security Controls sicherlich hilfreich sind.
Security Controls in einen Schwachstellenscanner integrieren
Falls Sie einen Schwachstellenscanner einsetzen, um Schwachstellen in Ihrem Netzwerk zu identifizieren, werden vermutliche Hunderte oder gar Tausende von Problemen auf Ihren Computern ermittelt. Auf den ersten Blick erscheint das ziemlich viel, vermutlich erzeugt der Schwachstellenscanner jedoch einfach zu viele Ergebnisse. Oft meldet der Scanner jeden fehlenden Patch als Schwachstelle, obwohl in der Realität vermutlich nur ein paar wichtige Patches auf den Computern fehlen, die eine große Anzahl älterer Patches ersetzen. Oft bedarf es lediglich einiger weniger Patches, um eine Vielzahl angeblicher Schwachstellen zu beheben.
Zu diesem Zweck können Sie die API für folgende Aktionen einsetzen:
- Aufrufe an den Schwachstellenscanner durchführen
- Schwachstellenliste (CVE-Liste) extrahieren
- CVEs in eine Security Controls-Patchgruppe importieren
- Patchscans und Bereitstellungen unter Verwendung dieser Patchgruppe durchführen
Das Patchmodul eliminiert all die ersetzten Patches und ermittelt die paar wenigen Patches, die tatsächlich fehlen. Wenn Sie den Schwachstellenscanner nach dem Bereitstellen der Patches erneut ausführen, werden die meisten Schwachstellen vermutlich nicht mehr angezeigt.
Mit PowerShell-Skript einen geclusterten SQL Server patchen
Dieses Beispiel veranschaulicht, wie Sie mit einem PowerShell-Skript das Patchscanning und die Patchbereitstellung auf Computern in einem SQL-Cluster steuern. Das Ziel in diesem Beispiel ist das Koordinieren der Ereignisse und das Vermeiden jeglicher Ausfallzeit während des Patchvorgangs.
Import-Module STProtect –PassThru
Import-Module ServerManager
Add-WindowsFeature RSAT-Clustering
Import-Module FailoverClusters
Write-Host “Scannen SampleSQL1”
$scan = Start-PatchScan –EndpointName “SampleSQL1”
–CredentialFriendlyName “Beispiel Domäne Anmeld” –TemplateName “Sicherheitspatchscan”
$scan | Watch-PatchScan
Write-Host “Scanning SampleSQL1 Complete”
$scanDetail = $scan | Get-PatchScan
Write-Host “SampleSQL1 Final Details”
$scanDetail | Format-PatchScanTable
#Identifizieren, ob Patches auf dem Zielknoten fehlen. Falls ja, Knoten im Cluster stoppen und System patchen.
If ($scanDetail.MachineStates[0].MissingPatches –ne 0)
{
$totalMissingPatches = scanDetail.MachineStates[0].MissingPatches
Write-Host “$totalMissingPatches Alle fehlenden Patches werden bereitgestellt. Starting deploy. . ."
Write-Host “Clusterknoten auf SampleSQL1 wird gestoppt”
Suspend-ClusterNode –Name SampleSQL1 –Cluster SampleSQLCluster –Drain
$deploy = $scan | Start-PatchDeploy –TemplateName “Standard”
$deploy | Watch-PatchDeploy | Format-Table
Write-Host “Starting cluster node on SampleSQL1”
Resume-ClusterNode –Name SampleSQL1 –Cluster SampleSQLCluster –Failback NoFailback
}
Durch dieses Beispielskript wird insbesondere Folgendes durchgeführt:
- Die erforderlichen Module werden importiert.
- Es wird ein einzelner Knoten in einem SQL-Cluster gescannt.
- Der Patchscan wird überwacht und alle anderen Aktionen werden blockiert, bis der Scan abgeschlossen ist.
- Die Ergebnisse des Scans werden abgerufen.
In der Ausgabe wird unter anderem Folgendes angegeben: Informationen zum Zielcomputer, Anzahl der fehlenden und der installierten Patches und eine Meldung, wonach der Scanvorgang abgeschlossen ist. - Falls Patches fehlen, heben Sie den Knoten im SQL-Cluster auf und bereiten Sie den Patchvorgang für das System vor.
Heben Sie dazu den Knoten im Cluster auf und leiten Sie alle aktuellen Sitzungen auf einen anderen Knoten um. - Starten Sie die Patchbereitstellung unter Verwendung der Standardvorlage.
- Überwachen Sie den Fortschritt der Patchbereitstellung und blockieren Sie alle anderen Aktionen, bis der Vorgang abgeschlossen ist.
Daraufhin wird der aktuelle Status der Bereitstellung angezeigt: Geplant, Abschließen und Neustart, Erneuter Scan steht aus und Fertig. - Fügen Sie den Knoten wieder zum SQL-Cluster hinzu und nehmen Sie den Betrieb wieder auf.
Wiederholen Sie den Prozess je nach Bedarf für jede weitere SQL Server-Instanz bzw. jeden weiteren Knoten im Cluster.