Het is belangrijk om een veilige omgeving te hebben, waarbij het least privilege principe wordt afgedwongen in uw servers en databases, maar dit kan moeilijk te bereiken zijn op grote omgevingen, waar veel mensen verhoogde rechten hebben of verschillende mensen rechten hebben om taken uit te voeren over uw data of schema.

Als een extra maatregel, zou een audit log moeten worden geimplementeerd in deze scenario’s en deze vaak moeten worden herzien.

SQL Server biedt de functionaliteit om audit logs te implementeren op Server en Database niveau. Beginnend met SQL Server 2008, alle SQL Server edities ondersteunen Server niveau audits. Database audits worden ondersteund vanaf SQL Server 2016 (13.x) SP1. Daarvoor was database niveau auditing beperkt tot Enterprise, Developer, en Evaluation edities.

Op deze post zal ik u laten zien hoe u audit logs kunt configureren en bekijken:

Auditlog implementeren

Onder beveiliging gaat u naar Audits en selecteert u Nieuwe audit…

Specificeer een naam voor de audit en selecteer een auditbestemming (persoonlijk geef ik de voorkeur aan een bestandslocatie).
Selecteer de gewenste parameters en klik op OK.

De audit is nu aangemaakt, om te kunnen werken moet u de audit inschakelen.
NOOT: voordat u wijzigingen in de auditconfiguratie aanbrengt, moet u deze eerst uitschakelen.

Audit op serverniveau implementeren

We hebben onze auditlocatie aangemaakt, nu gaan we verder met het aanmaken van de acties die we op serverniveau willen auditen.

Onder de map Beveiliging, lokaliseer Server Audit Specificaties, klik met de rechtermuisknop en selecteer Nieuwe Server Audit Specificatie…

In het volgende venster geeft u een naam op voor de audit (u kunt er meer dan een hebben) en selecteert u de audit die in de vorige stap is gemaakt.

Kies de actie of acties die moeten worden geaudit. Om te controleren wat bij elke actie is inbegrepen, leest u hier de documentatie van Microsoft.

Als u klaar bent, klikt u op OK om de auditspecificatie te maken.
Voor dit voorbeeld heb ik alleen de DBCC-actie opgenomen die moet worden geaudit (zoals we later in deze post zullen zien)

De auditspecificatie is ook uitgeschakeld gemaakt, om deze te laten werken, schakelt u deze in zoals wordt weergegeven in de afbeelding.

NOTE: voordat u wijzigingen in de auditspecificatie aanbrengt, moet u deze eerst uitschakelen.

Audit op databaseniveau implementeren

Het proces is relatief hetzelfde om een auditspecificatie op databaseniveau te maken, het belangrijkste verschil is dat de optie zich in de map Beveiliging van elke database bevindt.

Rechter muisklik op de map Database Audit Specificatie en dan Nieuwe Database Audit Specificatie…

Selecteer de naam van de Database Audit en de auditbestemming (dezelfde die in de eerste stap voor dit voorbeeld is gemaakt).
Een van de belangrijkste verschillen voor Database Audits is dat we het object of schema moeten selecteren dat we willen controleren.
Selecteer de acties die u wilt auditen (u kunt hier een beschrijving van elke actie zien), en klik vervolgens op Ok.

In dit voorbeeld zal ik de SELECT-opdracht over de tabel met de naam Cursus in een voorbeeld School-database auditen.

Nadat u de auditspecificatie hebt gemaakt, moet u deze inschakelen om te kunnen worden uitgevoerd.

NOTA: voordat u wijzigingen in de auditconfiguratie aanbrengt, moet u deze eerst uitschakelen.

Review audit logs

Het hebben van de audits geconfigureerd en draaiende is slechts de helft van het werk, het zal niets waard zijn als je niet pro-actief de logs vaak bekijkt.
Er zijn 2 opties om de logs te bekijken, met behulp van SSMS en T-SQL

Voor dit voorbeeld heb ik een aantal zinnen uitgevoerd om de server en database audits te triggeren die hierboven zijn geconfigureerd, zodat we wat gegevens kunnen zien.

SSMS

Om event logs te controleren met behulp van Management Studio, selecteert u de Audit die is aangemaakt, klikt u er met de rechtermuisknop op en selecteert u de optie View Audit Logs

De audit log zal worden weergegeven in een SQL Server log type, en u kunt enkele voorbeelden zien die ik heb geactiveerd

T-SQL

Voor het gebruik van deze optie, gebruikt u de DMF sys.fn_get_audit_file, waarbij u de locatie van het bestand opgeeft, en voor de bestandsnaam gebruikt u *.sqlaudit om alle bestanden op te nemen.

Dit is de query die ik gebruik voor dit voorbeeld:

SELECT event_time,action_id,statement,database_name,server_principal_name 
FROM sys.fn_get_audit_file ('C:\temp_TestAudit_*.sqlaudit',default,default);

De output van de query ziet er als volgt uit:

Ik heb de acties die zijn vastgelegd in de databasespecificatie geel gemarkeerd.

Met deze informatie kunt u aan de slag om uw eigen audits voor uw missiekritieke servers te configureren en ze vaak te controleren, ook kunt u een waarschuwing of automatische rapportagelogica implementeren om op de hoogte te worden gesteld van verdachte activiteiten.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.