sqlschool.gr logo

articles

Articles of SQLschool.gr Team

C2 Level Auditing with SQL Server

Antonios Chatzipavlis
Sunday 30 May 2010

Πριν από μερικές μέρες μου ήρθε ένα ερώτημα από ένα φίλο για το τι είναι το C2 Level Auditing στον SQL Server. Δράττω την ευκαιρία αυτή για να το εξηγήσω σε όλους όσους ενδιαφέρονται να παρακολουθήσουν στενότερα το περιβάλλον τους στον SQL Server.

Εδώ και πολλά χρόνια όπως ξέρουμε τεράστια ποσά έχουν δαπανηθεί στο να έχουμε ασφαλή συστήματα. Αυτό γίνεται με το να οροθετούνται συνεχώς νέα πρότυπα και standards. Οι λόγοι για κάτι τέτοιο είναι βέβαια προφανείς αλλά ποτέ κανείς δεν έπαθε τίποτα από την επανάληψη τους διότι όπως έλεγαν οι αρχαίοι (δυστυχώς μόνο αυτοί) πρόγονοι μας "Η επανάληψη είναι η μητέρα της μάθησης", έτσι θα τους επαναλάβω εν τάχει.

· Να εντοπισθεί η κακομεταχείριση του συστήματος και να αποτραπεί η συνέχεια αυτής.

· Να αποδοθούν οι συνέπειες σε αυτούς που είναι υπεύθυνοι για την κακομεταχείριση του συστήματος.

· Να γίνουν οι ενέργειες που θα φέρουν το σύστημα στην προγενέστερη κατάσταση του, πριν δηλαδή από την υφιστάμενη κακομεταχείριση του.

Τι είναι όμως το C2;

Το Υπουργείο Άμυνας των ΗΠΑ έχει ορίσει μια σειρά από επίπεδα για το security level των υπολογιστικών συστημάτων τα οποία βασίζονται στις δυνατότητες τους αλλά και στο πως αυτά προσπελάζονται.

Με βάση όλα αυτά από την έκδοση του SQL Server 2000 η Microsoft παρέχει την δυνατότητα να έχω C2 Level για το περιβάλλον του SQL Server. Εδώ θα πρέπει να πως ότι ο SQL Server είναι ήδη από τότε C2 Level certified (και μην με ρωτήσετε από πού, αυτό νομίζω ότι είναι προφανές). Για παράδειγμα θα πω ότι ο SQL Server ότι όλα τα δεδομένα τα οποία βγαίνουν από το C2 (files) βγαίνουν μόνο σε NTFS partitions.

To C2 δημιουργεί auditing records για όλα τα server level events του SQL Server όπως shutdown. restart, successful & failed login attempts. Επίσης παρέχει την δυνατότητα να παρακολουθεί τα permissions σε database objects σε DDL, DCL, DML statements.

Η πληροφορία που καταγράφεται περιέχει

  • timestamp
  • identifier για τον account το οποίο έκανε trigger το event
  • target server name
  • event type
  • success or failure outcome
  • application name
  • server process ID
  • database name

Πώς ενεργοποιώ το C2 Auditing Level;

Αυτό μπορώ να το κάνω με δύο τρόπους, ο πρώτος τρόπος είναι από το Server Properties windows (δεξί κλικ στο όνομα του server μέσα στο SSMS) όπως παρακάτω

clip_image002

Ο δεύτερος τρόπος είναι με T-SQL commands όπως παρακάτω

Code Snippet
  1. USE master
  2. GO
  3. sp_configure 'show advanced option', 1
  4. GO
  5. RECONFIGURE
  6. GO
  7. sp_configure 'c2 audit mode',1
  8. GO
  9. RECONFIGURE
  10. GO

Σε κάθε περίπτωση απαιτείται restart του SQL Server για την ενεργοποίηση του!

Από το σημείο αυτό και μετά στο data directory που έχουμε ορίσει για τον SQL Server Instance μας π.χ. C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA παράγονται αρχεία της μορφής audittraceΥΥΥΥΜΜDDHHMMSS.trc. Κάθε τέτοιο αρχείο μπορεί να φτάσει τα 200MB. Σε αυτή την περίπτωση δημιουργείται νέο αρχείο το οποίο περιέχει την συνέχεια. Επίσης θα πρέπει να τονίσω ότι στην περίπτωση που γεμίσει ο δίσκος που είναι τα C2 files τότε ο SQL Server σταματάει αυτόματα. Σε αυτή την περίπτωση θα πρέπει να ξεκινήσουμε το SQL Server service με το διακόπτη -f και μετά να ελευθερώσουμε χώρο στο δίσκο.

Τα αρχεία αυτά μπορούμε να τα διαβάσουμε με δύο τρόπους. Ο ένας τρόπος είναι χρησιμοποιώντας τον SQL Server Profiler. Ο άλλος τρόπος είναι να τα δούμε σε μορφή πίνακα ώστε να τα κάνουμε manipulate με queries όπως παρακάτω

Code Snippet
  1. SELECT *  FROM fn_trace_gettable('C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\audittrace20100530214218.trc', default)

Βέβαια έχω την δυνατότητα να δω μόνο αυτά που θέλω πχ θέλω μόνο τα failed logins π.χ

Code Snippet
  1. SELECT *  FROM fn_trace_gettable('C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\audittrace20100530214218.trc', default)
  2. WHERE TextData like '%Login failed%'

Μερικές χρήσιμες πληροφορίες

  • Υπάρχει όπως είναι κατανοητό κάποιο performance penalty, μιας και πρέπει να γράφονται πράγματα στο δίσκο. Σε αυτή την την περίπτωση καλό είναι να γράφονται σε ξεχωριστό φυσικό δίσκο (όχι partition).
  • Στην περίπτωση που δεν μπορεί να γίνει καταγραφή των συμβάντων ο SQL Server δεν ξεκινάει.
  • Στον SQL Server 2008 υπάρχει εναλλακτικός τρόπος για την καταγραφή των συμβάντων τόσο σε επίπεδο server όσο και σε επίπεδο database. (θα ασχοληθώ με αυτό σε άλλο post)

Antonios Chatzipavlis

Antonios Chatzipavlis

Antonios is a Data Solutions Consultant and Trainer. He has been working in IT since 1988. In his career, he has worked as senior developer, IT Manager, Solutions Architect and IT Consultant. Since 1995 he has been devoted on new technologies and software development tools, mainly by Microsoft, either by training company staff and colleagues or assisting them in design, development and implementation as a consultant or chief developer. He has focused in Databases and Data Science since 1995. He specialized in Microsoft SQL Server since version 6.0 in areas like SQL Server Internals, Database Design and Development, Business Intelligence and in 2010 he has started working with Azure Data Platform, NoSQL databases, Big Data Technologies and Machine Learning. He is an active member of many IT communities in Greece, answering colleagues' questions and writing articles in his web site. He is the owner of SQLschool.gr which is a community portal with a lot of information about Microsoft SQL Server. He has been a Microsoft Certified Trainer (MCT) since 2000. Microsoft honored him as MVP on Data Platform due to his activities in SQL Server since 2010. He holds a large number of Microsoft Certifications and Microsoft SQL Server Certifications since version 6.5.

Tip

What's New in SQL Server 2022 - Episodes

More Tips...

Become a member

If you want to receive updates from us become a member to our community.

Connect

Explore

Learn


sqlschool.gr © 2010-2024 All rights reserved

This site uses cookies for operational and analytics purposes only. By continuing to browse this site, you agree to their use.