Audit na Microsoft SQL Serveru

Víte, kdo přistupuje k vašemu serveru a pracuje s vašimi daty? SQL Server 2008 představil jako jednu z novinek v Enterprise edici SQL Audit, který zaznamená veškeré informace.

C2 Audit

Možnost auditu je na SQL Serveru dostupná již od verze 2000, kde bylo možné zapnout tzv. C2 audit tracing, který ukládal informace o přístupu k objektům nebo spouštění jednotlivých dotazů, ať již úspěšné nebo neúspěšné. Při využití tohoto režimu byl audit soubor ukládán do výchozí složky pro data SQL serveru, a vždy po 200MB byl vytvořen další soubor. Velkou nevýhodou tohoto režimu je jeho značná náročnost na systémové prostředky a také jedno z pravidel C2 režimu, kdy v případě nemožnosti uložit informaci o auditu bude celá instance SQL Serveru vypnuta.


image

Tento soubor je zpracovatelný pomocí nástroje SQL Profiler, který je běžně k dispozici po instalaci SQL Serveru nebo funkcí fn_trace_gettable.

image
Common Criteria

Od verze SQL 2008 je navíc ve verzích Enterprise a Datacenter k dispozici možnost konfigurace pro tzv. Common Criteria. CC je framework, ve kterém uživatelé počítačového systému mohou specifikovat jejich bezpečnostní funkcionalitu a jistící požadavky, prodejci potom mohou implementovat a zároveň/nebo se dožadovat bezpečnostních atributů jejich produktů, a testovací laboratoře mohou vyhodnocovat produkty. Jinak řečeno, Common Criteria dává jistotu, že proces specifikace, implementace a hodnocení produktu počítačové bezpečnosti bude řídit přísným a standardizovaným způsobem. (http://cs.wikipedia.org/wiki/Common_Criteria)

Pokud budou CC zapnuta dojde k aktivaci několika component, které jsou pro Common Criteria povinné.

  • Residual Information Protection – v případě uvolnění paměti jinému prostředku musí nejprve dojít k přepsání paměti známou sekvencí bitů
  • Login Statistics – při každém přihlášení uživatele je uložena informace o posledním úspěšném I neúspěšném přihlášení, stejně tak o počtu pokusů o přihlášení mezi neúspěšným a úspěšným pokusem
  • Změna hierarchie DENY/GRANT – pokud je na tabulce nastaveno oprávnění DENY a na sloupci GRANT, poté uživatel k tomuto sloupci přistupovat může. V případě zapnutých common criteria nikoli, tedy table DENY má větší váhu než GRANT na sloupci tabulky.

Pro správnou funkci Common Criteria nestačí pouze onen checkbox, který najdeme v management studiu, ale pro dokončení konfigurace je nutné I spuštění konfiguračního skriptu, který nalezneme na strákách MS SQL Server Common Criteriahttp://go.microsoft.com/fwlink/?LinkId=79877, který nastaví SQL Server tak, aby splňoval požadavky specifikované v EAL-4+.

SQL Audit

Ve verzi SQL 2008 byl představen SQL Audit, který umožňuje detailní nastavení auditu na úrovni SQL Serveru nebo jednotlivých databází. Jeho velkou výhodou je plná skriptovatelnost pomocí T-SQL, která ve spojitosti s multi-server managementem (představen taktéž v rámci SQL Serveru 2008) dovoluje nastavit bezpočet instancí naráz s totožnými parametry.

Konfigurace auditu je rozdělena do několika částí. Nejprve je nutné vytvořit objekt typu SQL Audit, ve kterém specifikujeme úložiště pro audit informace. V konfiguraci můžeme vybírat mezi

  • Audit souborem
  • Aplikačním logem systému
  • Security logem systému
image

Zejména u security logu musíme být opatrní v případě, že použijete I volbu “Shutdown server on failure”. U security logu je pomocí lokálních práv kontrolováno, které identity mohou do security logu zapisovat jednotlivé události.

Jakmile máme vytvořený objekt SQL Audit, můžeme konfigurovat specifikace auditu pro server nebo pro databáze. Nově jsou server specifikace dostupné I ve standard edici SQL Serveru, databázové jsou nadále pouze enterprise záležitostí. V rámci server level specifikací se nachází několik skupin akcí, které seskupují vždy několik příkazů pro protokolování událostí (např. Server role member change group, pro audit jednotlivých server rolí).

 

image

Pokud máme k dispozici enterprise edici, můžeme specifikaci auditu konfigurovat i na úrovni jednotlivých databází. I zde jsou k dispozici skupiny operací, které budou zaprotokolovány, ale u databázových specifikací jsou již k dispozici i jednotlivé TSQL příkazy jako SELECT, DELETE atd. Je tedy možné pomocí filtrů na objekty protokolovat přístup k datum pro skupiny uživatelů, nebo I jednotlivé uživatele. Následně jsou logy dostupné pomocí audit log viewer nástroje, který dokáže jednotlivé informace zobrazit, exportovat a filtrovat.

Závěrem

Audit na SQL Serveru je možné řešit několika způsoby, od C2 tracing přes DDL a DML trigger až po SQL Audit, který je dostupný od verze 2008 a v enterprise edici nabízí velmi bohaté možnosti nastavení protokolování. Nový SQL Audit je postaven nad infrastrukturou extended events, je tedy velmi rychlý a nezatěžuje systém.Více na: http://www.zive.cz/clanky/audit-na-microsoft-sql-serveru/sc-3-a-167449/default.aspx#utm_medium=selfpromo&utm_source=zive&utm_campaign=copylink