News zu Tech Portfolio

SQL Server Da­ten­bank­si­cher­heit mit Vul­nerabi­li­ty As­sess­ment Reports

Die An­fäl­lig­keit und Si­cher­heit der Microsoft SQL Server Da­ten­ban­ken und Da­ten­bank­sys­te­me ist ein Thema, welches in der täglichen Arbeit des DBAs oftmals nicht die not­wen­di­ge Auf­merk­sam­keit bekommt. Das po­ten­ti­el­le Be­dro­hungs­po­ten­ti­al ist jedoch in den letzten Jahren ex­po­nen­ti­ell gewachsen und das kann durchaus dra­ma­ti­sche Folgen haben. Für uns ein guter Grund, um diesem Thema mal wieder mit einen Artikel zu widmen. Von daher haben wir uns im Microsoft SQL Server Ma­nage­ment Studio die neue hin­zu­ge­füg­te Funk­tio­na­li­tät Vul­nerabi­li­ty As­sess­ment mal genauer angeschaut.

Vul­nerabi­li­ty As­sess­ment wurde erstmals mit Version 17.4 ein­ge­führt. Mit diesem Werkzeug ist es möglich, einfach und über­sicht­lich, eine Bewertung der Datenbank in der Instanz aus si­cher­heits­kri­ti­scher Sicht zu erstellen. So werden zahl­rei­che Risiken getestet und an­schlie­ßend in den 3 Ka­te­go­rien “High Risk”, “Medium Risk” und “Low Risk” auf­ge­führt. Zu­sätz­lich zum Ergebnis des Tests, wird für jedes an­ge­zeig­te Problem eine de­tail­lier­te Be­schrei­bung und ein Lö­sungs­vor­schlag angezeigt.

Kurze Fea­ture­über­sicht

Das Vul­nerabi­li­ty As­sess­ment wird zur Über­prü­fung des Si­cher­heits­sta­tus der SQL Server Da­ten­ban­ken verwendet. Es beruht dabei auf einer Knowledge Database, die von Microsoft gepflegte und den An­for­de­run­gen vieler Auf­sichts­be­hör­den ent­spre­chen­den Regeln enthält. Anhand dieser Regeln werden die Da­ten­ban­ken geprüft und der Nutzer bekommt hilf­rei­che Hinweise zur Behebung even­tu­el­ler Fehlkonfigurationen.

Die Reports un­ter­stüt­zen den Nutzer bei folgenden Aufgaben:

  • Erfüllung von Konformitätsanforderungen
  • Ein­hal­tung von Datenschutzstandards
  • Über­wa­chung von dy­na­mi­schen Datenbankumgebungen

Die einzelnen Er­geb­nis­se können durch das Erstellen einer in­di­vi­du­el­len Baseline an die eigenen Be­dürf­nis­se angepasst werden. Zudem besteht die Mög­lich­keit alle Check State­ments, die der Report an­ge­wen­det hat, ein­zu­se­hen. Diese können bspw. auch für ein Mo­ni­to­ring System verwendet werden, da hier stets ein ver­wert­ba­res Ergebnis zurück geliefert wird.

Vul­nerabi­li­ty As­sess­ment ausführen

Zum Ausführen des Vul­nerabi­li­ty As­sess­ment Reports wird ein aktuelles SQL Server Ma­nage­ment Studio benötigt. Dies kann von der of­fi­zi­el­len Microsoft Website kostenlos bezogen werden.

Download: https://docs.microsoft.com/de-de/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15

Nach der In­stal­la­ti­on auf einem be­lie­bi­gen Client (der eine Netz­werk­ver­bin­dung zur SQL Server Instanz aufbauen können sollte), wird das SQL Server Ma­nage­ment Studio gestartet und eine Ver­bin­dung zur Instanz aufgebaut.

SQL Server Management Studio

Als nächstes wird die jeweilige Datenbank aus­ge­wählt, die getestet werden soll. Mit einem Rechts­klick auf den Da­ten­bank­na­men → Tasks → Vul­nerabi­li­ty As­sess­ment → Scan for Vul­nerabi­li­ties … kann der Scan gestartet werden.

Jetzt muss noch der Spei­cher­ort des Reports aus­ge­wählt werden. Stan­dard­mä­ßig wird dieser im “Documents Ordner” des aktuellen Benutzers gespeichert.

Report Speicherort

An­schlie­ßend kann der Report aus­ge­führt werden und die Er­geb­nis­se werden direkt angezeigt.

Vulnerabilty Assessment Report Ergebnisse

Somit bekommt man einen guten Überblick der aktuellen Si­cher­heits­kon­fi­gu­ra­ti­on der je­wei­li­gen Datenbank.

Falls ein Check ein negatives Ergebnis liefert, was nicht gelöst werden soll, kann dieses in die Baseline auf­ge­nom­men werden. Damit wird dieser Check zukünftig dann nicht mehr angezeigt.

Vulnerabilty Assessment Baseline Approval

Au­to­ma­ti­sier­te Reporterstellung

Bei einer um­fang­rei­chen Da­ten­bank­um­ge­bung ist es nicht prak­ti­ka­bel, für alle Da­ten­ban­ken den Report per Hand zu erzeugen. Besser ist es hier einen au­to­ma­ti­schen Job zu erstellen mit dem die Vul­nerabi­li­ty Assessemt Reports erzeugt werden. Dafür nutzt du die Power­Shell mit dem Power­Shell Modul “SqlServer”.

Download: https://www.powershellgallery.com/packages/SqlServer/

Im Power­Shell Modul “SqlServer” sind bereits folgende Vul­nerabil­ty As­sess­ment relevante Cmdlets enthalten:

Cmdlet
Be­schrei­bung
Invoke-SqlVulnerabilityAssessmentScan 
Mit diesem Cmdlet lässt sich eine spe­zi­fi­sche Datenbank einer Instanz scannen. Als Ergebnis wird der Scan geliefert, der an­schlie­ßend wei­ter­ver­ar­bei­tet werden kann. Die Au­then­ti­sie­rung an der Instanz kann über Windows oder SQL Server Au­then­ti­fi­zie­rung erfolgen. 
Export-SqlVulnerabilityAssessmentScan 
Damit kann die Er­geb­nis­men­ge aus dem Scan als Excel Datei ex­por­tiert werden. 
New-SqlVulnerabilityAssessmentBaseline 
Mit diesem Cmdlet kann eine neue Baseline für eine bestimmte VA-Si­cher­heits­prü­fung erstellt werden. Diese Baseline kann dann zu einem Baseline-Set hin­zu­ge­fügt werden, das wiederum zum Ausführen eines neuen VA-Scans mit an­ge­pass­ten Er­geb­nis­wer­ten verwendet werden kann. Ein Ergebnis eines vor­he­ri­gen VA-Scans kann verwendet werden, um den Wert für diese Baseline festzulegen. 
New-SqlVulnerabilityAssessmentBaselineSet 
Mit Hilfe dieses Cmdlet kann ein neues VA-Baseline-Set erstellt werden, dass eine Sammlung von VA-Baseline-Werten für ver­schie­de­ne Si­cher­heits­prü­fun­gen enthält. Das Baseline-Set kann verwendet werden, um VA-Scans mit an­ge­pass­ten Er­geb­nis­sen aus­zu­füh­ren, die auf eure Da­ten­bank­um­ge­bung zu­ge­schnit­ten sind. 
Export-SqlVulnerabilityAssessmentBaselineSet 
Verwende dieses Cmdlet, um ein VA-Baseline-Set in eine Datei zu ex­por­tie­ren. Die Aus­ga­be­da­tei kann in SSMS geöffnet und verwaltet werden. 
Import-SqlVulnerabilityAssessmentBaselineSet 
Dieses Cmdlet ver­wen­dest du, um ein VA-Baseline-Set aus einer Datei zu im­por­tie­ren. Es kann verwendet werden, um mit SSMS erstellte Baseline-Sets zu importieren. 

Mit einem einfachen Skript lassen sich so alle Da­ten­ban­ken einer Da­ten­bank­in­stanz scannen.

Hier wäre ein Beispiel für ein Skript, was alle Da­ten­ban­ken einer Instanz scannt und die Er­geb­nis­se als Excel Dateien ablegt. Die Sys­tem­da­ten­ban­ken werden dabei aus­ge­nom­men. Dieses Skript kann auch als geplanter Task im Windows Server hin­ter­legt werden.

DB_VA_Scan.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
######################################################
# ASPICON Automatic Vulnerability Assessment Scan
######################################################
 
######################################################
# Variablen Definition
######################################################
 
# SqlServer Modul importieren
Import-Module SqlServer
 
# System Datenbanken definieren
$sysdbs = @('master','msdb','model','tempdb')
 
# Server und Instanz definieren
$serverinstance 'localhost'
 
# Zielordner für die Exports definieren
$folder = "D:\test\"
 
######################################################
# Skript Logik
######################################################
 
# Alle Datenbanken der Instanz erfassen
$databases = Get-SqlDatabase -ServerInstance $serverinstance
 
# Schleife durch alle Datenbanken
foreach ($db in $databases)
{
  if (!$sysdbs.Contains($db.Name))   # Definierte System Datenbanken nicht scannen
  {
    echo 'Erstelle Report für $db.Name '
 
    # Scan durchführen und in einer Variable speichern
    $result = Invoke-SqlVulnerabilityAssessmentScan -ServerInstance $serverinstance -DatabaseName $db.Name
 
    # Zieldatei und Ordner definieren
    $file $folder $db.Name + ".xlsx"
 
    echo 'Erstelle Excel Datei'
 
    # Export des Reports in eine Excel Datei
    $result | Export-SqlVulnerabilityAssessmentScan -FolderPath $file
  }
}

Fazit

Es lohnt sich ab und zu einen Blick auf neue Features der Microsoft Client- und Server Produkte zu werfen. Mit den Vul­nerabi­li­ty As­sess­ment Reports bekommt man als DBA ein nütz­li­ches Tool an die Hand, um schnell und effektiv die Da­ten­ban­ken auf Schwach­stel­len zu prüfen. Zugleich werden ent­spre­chen­de Lö­sungs­vor­schlä­ge zur Behebung der Probleme geliefert. Damit eignen sich diese Reports auch zur Erfüllung even­tu­el­ler Com­pli­ance Richtlinien.

Hier findest du weitere Posts zu den Themen Microsoft oder SQL Server aus unserem News Bereich. 
icon-arrow_right_medium-violet-blue.svg

Share this article

Facebook 
Twitter 
LinkedIn 
XING 
WhatsApp 
Email