Microsoft SQL Serverin audit lokit Splunkiin

SQL Serverin audit lokien seuranta

Tarve tallettaa ja seurata tietokannan käyttö- ja muutoslokeja (audit) lisääntyy koko ajan. Esimerkiksi GDPR voi tuottaa vaatimuksen tietokannan audit lokien seurantaan. Myös tietoturvan kehittäminen voi edellyttää audit lokien keräämistä ja seuraamista.

 

Microsoftin SQL Serverin audit lokien tuottaminen Splunkkiin ei ole suoraviivainen toimenpide. Vaatimus, jossa halutaan tallettaa ja seurata ”SQL Serverin audit lokeja” on laaja käsite. Ei ole olemassa katkaisijaa, jolla kääntää lokit päälle ja ottaa ne seurantaan. Lähtökohdaksi pitää ottaa vaatimus mitä käyttö- ja muutostapahtumia halutaan tallettaa ja seurata, ja tarvitseeko seurannan toimia reaaliaikaisesti.

 

Splunkin dokumentaatio ohjeistaa luomaan halutut audit objektit, joiden tuottama data ohjautuu tiedostoon. Tämän tiedoston sisältö voidaan lukea Splunkin DB Connect sovelluksen avulla käyttäen systeemifunktiota sys.fn_get_audit_file. Tämä tiedoston luvun ongelman on se, että DB Connectissa ei voi tällöin asentaa ns. ”rising column:ia”. Eli tiedostosta luettujen tapahtumien talletuksen seuraaminen on mahdotonta. Data tuosta tiedostosta on haettava Batch:na, eli kaikki kerralla. Jos ja kun tiedoston sisältö muuttuu, niin Splunkkiin tallentuu koko tiedoston sisältö sellaisenaan ja täten vanhat tapahtumat tallentuvat Splunkkiin useana samana tapahtumana. Yksi ratkaisu on pyytää tietokannan ylläpitäjää rakentamaan proseduuri, jossa ajastetusti audit tiedostoon kirjoittaminen lopetetaan, tiedosto suljetaan ja siirretään toisaalle. Siirtohakemistossa jo olevat tiedostot voidaan tarvittaessa versioida. Uusi audit loki syntyy uudestaan siirron jälkeen alkuperäiseen paikkaan. Siirron jälkeen Splunkin DB Connect sovellus lukee ajastetusti siirretyn audit lokitiedoston siirtohakemistosta sellaisenaan. Tällä keinolla saadaan halutut audit lokit Splunkkiin valitun aikataulun mukaisesti. Ja vain yksi esiintymä kustakin audit tapahtumasta talletetaan Splunkkiin. Audit lokit eivät täten ole käytettävissä täysin reaaliaikaisesti.

 

Tarve lähes reaaliaikaiselle audit lokien seurantaan johtaa ratkaisuun, jossa audit tapahtumat talletetaan proseduurin avulla erikseen luotuun tietokantatauluun tai -näkymään, josta DB Connect sovellus niitä lukee tietyin väliajoin. Tällöin voidaan käyttää normaalia ”Rising column” metodia datan lukemiseen taulusta tai näkymästä.