Mac OS X tabanlı sistemlerde meydana gelen olayların loglandığı ve bir adli bilişim incelemesinde mutlaka analiz edilmesi gereken dosyalardır audit dosyaları. Bu dosyalar Sun tarafından geliştirilen Basic Security Module formatında dosyalar olup ikili formattadır. BSM formatı hakkında detaylı bilgiye https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/audit.log.5.html adresinden ulaşabilirsiniz. Bir Mac OS X tabanlı sistemde log dosyaları /private/var/audit dizininde saklanır. Aşağıdaki ekran görüntüsünde örnek bir Mac OS X sistemde yer alan audit log dosyaları gösterilmiştir.

Yukarıdaki ekran görüntüsünde sonu crash_recovery olarak biten audit log dosyalarını da görüyorsunuz. Bu dosyalar sistemin crash olması sonrasında kurtarılan audit dosyalarıdır. Bunun haricinde uzantısı tarih formatında olan dosyalar ise auditd prosesi tarafından normal şekilde sonlandırılmış audit dosyalarıdır. Bu dosyaların isim formatları log_dosyasının_baslangıc_zamanı.log_dosyasının_bitis_zamanı şeklindedir.

Auditd deamon’u /etc/security/audit_control dosyasındaki tanımlar çerçevesinde olayları loglar. Bu dosyaya ilişkin örnek bir içerik aşağıda gösterilmiştir.

dir değişkeni ile audit dosyalarının nereye kaydedileceği belirlenirken flags değişkeni ile hangi olayların loglanacağı belirlenir. Flags değişkeninde iki harfle belirtilen olayların neler olabileceğine ilişkin liste aşağıda gösterilmiştir.
no = no_class – Null value for turning off event preselection
fr = file_read – Read of data, open for reading
fw = file_write – Write of data, open for writing
fa = file_attr_acc – Access of file attributes: stat, pathconf
fm = file_attr_mod – Change of file attributes: chown, chmod, flock
fc = file_creation – Creation of file
fd = file_deletion – Deletion of file
cl = file_close – File being closed after reading or writing
pc = process – Process operations: fork, exec, exit
nt = network – Network events: bind, connect, accept
ip = ipc – System V IPC operations
na = non_attrib – Nonattributable events
ad = administrative – Administrative actions
lo = login_logout – Login and logout events
ap = application – Application-defined event
io = ioctl – ioctl system call
ex = exec – program execution
to = other – Miscellaneous
all = all – All flags set
Bununla birlikte iki harfle gösterilen loglanacak olay kategorilerinin başında yer alan işaretlerin de bir anlamı var. Bu işaretlerin ne anlama geldiğini aşağıdaki listede bulabilirsiniz.
- (none) : Başarılı ve başarısız bütün olayları kaydet.
- + : Başarılı olayları kaydet.
- – : Başarısız olayları kaydet.
- ^ : Başarılı yada başarısız hiç bir olayı kaydetme.
- ^+:Başarılı olayları kaydetme.
- ^– : Başarısız olayları kaydetme.
Bu bilgiler ışığında yukarıdaki ekran görüntüsünde yer alan flags değişkenini okursak, ilgili sistem üzerinde login_logout ve administrative türündeki bütün olaylar loglanacak, bütün kategorilere ilişkin başarısız olaylar kaydedilecek, dosyaların özelliklerine erişimlerde, dosya oluşturmada ve dosyaların kapatılmasında sadece başarılı olaylar loglanacak şekilde tanım yapıldığını görürüz. minfree değişkeni sabit diskte minimum ne kadarlık alanın (yüzde olarak) boş kalması gerektiğini belirtir. Bu değer özellikle log dosyalarının sabit diski doldrmasının önüne geçmek adına önemlidir. Bu değere ulaşılırsa sistemin ne yapacağını /etc/security/audit_warn dosyasındaki tanımlar belirler.
Audit dosyaları ikili formatta oldukları için bu dosyaların içeriğini okumak için bir text editörle değil, özel geliştirilmiş araçlara ihtiyaç duyarız. Bu araçların başında Mac OS X ile birlikte gelen ve konsol üzerinden çalıştırılan praudit uygulaması gelir. Örnek kullanımı aşağıda gösterilmiştir.

Bu uygulamanın çıktısında her biri header ile başlayan ve trailer ile biten kayıtları görürsünüz. Header ile gösterilen satırda olayın ne zaman gerçekleştiği bilgisi yer alırken, subject kısmında olayın hangi kullanıcı tarafından gerçekleştirildiği ve kullanıcı işlemi uzaktan gerçekleştirmişse işlemin gerçekleştirildiği IP adresi bilgisi bulunur. Text kısmında olay ile alakalı açıklayıcı bilgiler yer alırken, return kısmında olayın başarılı bir şekilde gerçekleşip gerçekleşmediği gösterilir. Burada yer alan alanlar hakkında detaylı bilgiye https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/audit.log.5.html adresinden ulaşabilirsiniz.
Audit kayıtları arasında gezinmeye başladığınızda çok fazla olayın olduğunu ve bu olaylar arasında filtreleme yapmanın analiz işleminin süresini ciddi oranda kısaltacağını fark edeceksiniz. İşte bu ihtiyacı karşılama için kullanabileceğimiz bir uygulamamız daha var. auditreduce isimli bu uygulamayı kullanarak sadece belirli kriterlere uyan olayların görüntülenmesini sağlayabiliriz. Bu uygulamada kullanabileceğimiz parametreler ve örnek bir kullanımı aşağıdaki ekran görüntüsünde gösterilmiştir.

Yukarıdaki örneğimizde auditreduce uygulaması sadece halilozturkci isimli kullanıcıya ilişkin olayların görüntülenmesini sağlayacak şekilde çalıştırılmış ve çıktısı praudit uygulamasına girdi olarak verilmiştir. Bu sayede geçmiş olaylar üzerinde bir filtrelem işlemi gerçekleştirebilirsiniz.
Praudit uygulaması ile gerçek zamanlı olarak da logları izleyebilirsiniz. Bunun için çalıştırmanız gereken komut aşağıda gösterilmiştir.
praudit /dev/auditpipe
Audit loglarını analiz etmek için kullanabileceğimiz grafik arayüzlü bir uygulamamız daha var. Fakat bu uygulama built-in gelen bir uygulama değil, ayrıca satın alınması gereken bir uygulama. Uygulamanın adı Audit Explorer ve fiyatı 1,79 TL. https://itunes.apple.com/tr/app/audit-explorer/id429353921?mt=12 adresinden indirilebilir. Uygulamayı indirdikten sonra File menüsünden Open BSM File seçeneğini seçip audit dosyasını gösteriyoruz. Dosyayı okumaya başlayan uygulama farklı kategorilere göre bu dosyanın içeriği ayırıyor ve her bir kategoriye ilişkin olayı o kategoriye ilişkin taba tıklandığında karşımıza çıkacak ekranda gösteriyor. Aşağıda örnek bir BSM dosyası üzerinde yapılan analize ilişkin ekran görüntüsü yer almaktadır.

Yukarıdaki ekran görüntüsünde BSM dosyasında yer alan ve ilgili Mac OS X’de çalıştırılan proseslere ilişkin kayıtlar listelenmiştir. Bu kayıtlardan örnek olarak seçilen kayda çift tıklayarak aşağıda örneği gösterilen detay penceresini açıyoruz.

Bu detay penceresinde ilgili olaya ilişkin daha dataylı bilgiler yer alıyor. Bizim örneğimizde incelediğimiz BSM dosyası bir APT saldırısına bulaştığı şüphelenilen bir kullanıcının bilgisayarından alınmış bir BSM dosyası. Seçtiğimiz olayın detaylarını incelediğimizde bob isimli kullanıcının 22 Mart 2011 tarihinde saat 03:23:24′de cp /Users/bob/Documents/PacFleet/OperationPlan.pages OperationPlan.pages komutunu çalıştırarak /Users/bob/Documents/PacFleet/OperationPlan.pages isimli dosyayı /Users/bob/.transfers/ isimli gizli dizin altına OperationPlan.pages ismiyle kopyaladığını görebiliyoruz.



