FreeBSD Denetim (Audit) Sistemi*
13 pages
Turkish

FreeBSD Denetim (Audit) Sistemi*

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
13 pages
Turkish
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

FreeBSD Denetim (Audit)  Sistemi*Metin KAYAEnderUNIX ÜyesiEndersys Yazılım Mühendisimetin at enderunix.orgmetin.kaya at endersys.com.trhttp://www.enderunix.orghttp://www.endersys.com.tr30 Nisan 2008 Pazar EEST 23:23:34*  Robert N. M. Watson  ve Wayne Salamon ‘un  http://www.trustedbsd.org/20060303­ukuug2006lisa­audit.pdf  adresli makalesinden birebir  çeviridir.ÖZETBu   makale,   TrustedBSD   projesi   tarafından   FreeBSD   işletim   sistemine   eklenen   güvenlik  olaylarının  denetlendiği mekanizmanın gerçeklenmesi üzerinedir. Denetim, işletim  sistemi güvenliğinde ve işlemlerinde çok önemlidir; ancak her iki konuda da çok fazla karmaşıklık  meydana getirir. Makalede denetim mekanizmasının gereksinimleri, FreeBSD çekirdeğinde nasıl gerçeklendiği, OpenSolaris BSM ‘den alınan dosya biçimi, denetim izlerinin incelenme  biçimi,   OpenBSM   kütüphanesi   ve   araçları  üzerinde   durulacaktır.   Denetim   kayıtlarının içeriğinin yanında bu kayıtların sırası ve yazılması da  çok önemlidir.1. GirişBu   makale   FreeBSD   [12]   işletim   sistemi   için   TrustedBSD   projesi   tarafından   geliştirilen güvenlik denetim sisteminden bahseder. Güvenlik denetim sistemi, güvenlikle ilgili olayların güvenilir ve detaylı biçimde kayıt edilmesi demektir ve güvenliğin hassas olduğu sistemlerde çok önemlidir.Güvenlik   denetiminin   işlemleri,   standart   ihtiyaçları,   tasarım   ve   gerçeklemesi,   denetim kayıtlarının   yönetimi   ve   bu   kayıtların   ...

Informations

Publié par
Nombre de lectures 92
Langue Turkish

Extrait

FreeBSD Denetim (Audit) Sistemi*
Metin KAYA
EnderUNIX Ü yesi Endersys Yazılım M ü hendisi metin at enderunix.org metin.kaya at endersys.com.tr http://www.enderunix.org http://www.endersys.com.tr
30 Nisan 2008 Pazar EEST 23:23:34
* Robert N. M. Watson ve Wayne Salamon ‘un http://www.trustedbsd.org/20060303-ukuug2006lisa-audit.pdf adresli makalesinden birebir ç eviridir.
Ö ZET
Bu makale, TrustedBSD projesi tarafından FreeBSD i ş letim sistemine eklenen g ü venlik olaylarının denetlendi ğ i mekanizmanın ger ç eklenmesi ü zerinedir. Denetim, i ş letim sistemi g ü venli ğ inde ve i ş lemlerinde ç ok ö nemlidir; ancak her iki konuda da ç ok fazla karma ş ıklık meydana getirir. Makalede denetim mekanizmasının gereksinimleri, FreeBSD ç ekirde ğ inde nasıl ger ç eklendi ğ i, OpenSolaris BSM ‘den alınan dosya bi ç imi, denetim izlerinin incelenme bi ç imi, OpenBSM k ü t ü phanesi ve ara ç ları ü zerinde durulacaktır. Denetim kayıtlarının i ç eri ğ inin yanında bu kayıtların sırası ve yazılması da ç ok ö nemlidir.
1. Giri ş
Bu makale FreeBSD [12] i ş letim sistemi i ç in TrustedBSD projesi tarafından geli ş tirilen g ü venlik denetim sisteminden bahseder. G ü venlik denetim sistemi, g ü venlikle ilgili olayların g ü venilir ve detaylı bi ç imde kayıt edilmesi demektir ve g ü venli ğ in hassas oldu ğ u sistemlerde ç ok ö nemlidir.
G ü venlik denetiminin i ş lemleri, standart ihtiya ç ları, tasarım ve ger ç eklemesi, denetim kayıtlarının y ö netimi ve bu kayıtların bi ç imini tanımlamalıyız. Denetim mekanizmasının ger ç eklenmesi FreeBSD ‘nin hem kullanıcı hem de ç ekirdek uzayındaki kodlarının de ğ i ş tirilmesini, ç ekirdek ve uygulamalara ili ş kin denetim verilerinin toplanması ve y ö netilmesini kapsar. Ticari UNIX sistemlerde, g ü venlik denetim mekanizması Common Criteria standartları uyarınca zaten mevcuttur; ancak ç ok sayıda tasarım hatası i ç ermekteler ve buradaki ö rnek ç alı ş mayla bu hataların giderilmesine yardım etmeyi umuyoruz.
FreeBSD i ş letim sistemindeki g ü venlik denetim mekanizması, Apple Computer 'ın Mac OS X [6] i ş letim sisteminden alınmı ş tır. Apple tarafından BSD lisansı altında ç ıkarılan Darwin [1] ç ekirde ğ i FreeBSD ‘ye katkıda bulunmaktadır. Hem FreeBSD hem de Darwin ‘deki g ü venlik denetim mekanizması, ç ok sayıda uygulamanın kullandı ğ ı ve gayr-i resmi standart haline gelen Solaris ‘in BSM projesinden b ü y ü k oranda etkilenmi ş tir.
2. G ü venlik Denetim Kayıtlarının Tutulması İç in Gerekenler
Modern ve g ü venilir bir i ş letim sistemi, g ü venli ğ in temel bile ş enlerini i ç erir. Bu bile ş enlerden biri olan g ü venlik denetim mekanizması ise sistem y ö neticilerine, kimli ğ i do ğ rulanmı ş  kullanıcıların, sistem g ü venli ğ ini etkileyen t ü m hareketlerini izleme olana ğ ı verir. İş letim sistemi a ç ısından “kullanıcı”, kullanıcı tarafından ç alı ş tırılan s ü re ç ler demektir. Kimli ğ i do ğ rulanmı ş  kullanıcıları sadece uid  ile takip etmek yetersiz olacaktır: setuid  programlarla normal kullanıcı gibi g ö r ü nmeye devam edebililer.
G ü venlik denetim mekanizması tasarımındaki en ö nemli konulardan biri hangi olayların denetlenece ğ idir. CAPP [7] koruma profiline g ö re a ş a ğ ıdaki sınıflara giren olaylar denetlenmelidir:
Kontrol Altındaki İş lemler: Kontrol altındaki dosyalara, a ğ  kaynaklarına ve di ğ er nesnelere eri ş imle ilgilidir. İ zin, sahiplik ve ayrıcalık kontrolleri gibi t ü m eri ş im kontrol kararları bu ba ğ lamdadır. Do ğ rulama:  Ba ş arılı ve ba ş arısız do ğ rulama i ş lemleri, g ü venlik servislerinin kullanımı v.s. UNIX kullanıcı uzayındaki sıradan yapılardır. G ü venlik Y ö netimi: Kullanıcı haklarında, denetim mekanizmasında ve UNIX /etc dizinindeki yapılandırma dosyalarında yapılan de ğ i ş ikliklerdir.
Saldırı giri ş imi tespit sistemleri, ö l ü mc ü l felaket sonrası analizleri ve sistemin genel i ş leyi ş iyle ilgili kayıtlar g ü venlik denetim mekanizmasının ilgilenmesi gereken noktalardır. Hem standartlar hem de pratik uygulamalar a ç ısından bir anahtar gereksinim, denetim mekanizmasının ç ok daha detaylı bilgi sunması m ü mk ü n iken bunun kısıtlanabilmesidir.
Dikkat edilmesi gereken noktalar genelde kimli ğ i do ğ rulanmı ş kullanıcılar, sahiplik, izin, tip ve metot gibi nesne ö zellikleri ve eri ş im kontrol kararlarının sonu ç ları ve do ğ ası gere ğ i yapılması gerekenlerdir. Takip edilen g ü venlik olaylarının detayının artması denetim kayıtlarının b ü y ü k disk alanı tutmasına neden olabilir. Bu nedenle sistem y ö neticileri izlenen olayların ç e ş itlerini – ö rne ğ in; sisteme girmeye ç alı ş an herkesin de ğ il sadece girebilmi ş  olanların izlenmesi – ve detay seviyesini g ö zden ge ç irebilir. Ö n se ç imler, nelerin izlenip izlenmeyece ğ ine karar verildi ğ inde belli olurken son se ç imler denetim kayıtları incelendikten sonra ortaya ç ıkar.
Denetleme sistemi kontrol edilen nesnelere eri ş mek isteyen s ü re ç lerle ilgili kayıtları tutar. Ç ekirdek olayları, eri ş im kontrollerine aracılık eden sistem ç a ğ rılarıdır; ancak bunun dı ş ında ç ok sayıda i ş lemin de kaydı tutulur: sistemin kapatılması, root  hakkının kullanılması ve denetim sistemiyle ilgili yapılandırma dosyalarının de ğ i ş tirilmesi.
Denetim kayıtlarını ç ekirdek sahiplenir ve bu kayıtları tek yazma yetkisi ç ekirdektedir. Ama g ü venlikle ilgili kayıtları tutmak i ç in pek ç ok yazılım ger ç eklendi. Mevcut syslog  [5] ö zelli ğ inin aksine, g ü venilmeyen s ü re ç lerin audit  kayıtlarına yazma yetkisi yoktur. Bu nedenle s ü re ç ler, kaydedilmesini istedikleri denetim kayıtlarını ç ekirde ğ e iletir. UNIX 'in klasik eri ş im kontrol mekanizması hem denetim kayıtlarını hem de yapılandırmasını korumak i ç in kullanılıyor.
Kaydı tutulabilir olayla ile denetim kaydının olu ş turulması arasında anahtar bir ili ş ki s ö z konusudur. Standartlarda bu konu a ç ık ç a ifade edilmi ş tir: e ğ er bir i ş lem kaydedilebilirse ve bu i ş lemin ger ç ekle ş mesine izin verildiyse bu olay kaydedilmelidir. Bu durum b ü y ü k bir riski beraberinde getiriyor – e ğ er diskte denetim kaydını yazacak yer kalmadıysa i ş lemin ger ç ekle ş mesine izin verilmeli mi? 2 sakıncalı se ç enek var: sistem diskte yer kalmadı ğ ı i ç in kendini tamamen kapatır veya bu i ş lemin kaydı d ü zg ü n tutulmadan ger ç ekle ş mesine izin verilir. Standartlarda denetim kaydının yazılmasında bir sorun oldu ğ unda sistem durdurulmalıdır; ancak bunun de ğ i ş tirilebilir bir davranı ş  olması gerekir. Harici bir sorun oldu ğ unda, ö rne ğ in elektrik kesintisi, denetim mekanizmasının tanımlı bir ü st limiti kayıp kayıtlar i ç in tanımlayabilmesi de gerekir. Bu limit genellikle yazılmayı bekleyen asenkron kayıtların sayısına e ş it olarak tanımlanır.
2.1. Genel Kriter (Common Criteria - CC) ve Kontrol Edilen Eri ş im Koruma Ş ekilleri (Controlled Access Protection Profiles - CAPP)
CAPP [7], bilgi g ü vencesi belgeleri olan CC [2] 'nin bir par ç asıdır. CC 'nin amacı, g ü venlik ö zellikleri etkin bilgi teknolojileri ü r ü nleri geli ş tirmek ve de ğ erlendirmektir. CC 'nin hedefinde gizlilik, b ü t ü nl ü k ve sistem tarafından olu ş turulan bilgilerin eri ş ilebilirli ğ i vardır. Bu nedenle insan hareketleri ve davranı ş ları ü zerinde yo ğ unla ş ş tır. FreeBSD denetim mekanizması da CC 'nin belirledi ğ i kriterler altında sistemdeki kritik izleme gereksinimlerini kar ş ılamayı hedefler.
Bir koruma ş ekli, sistemin yerine getirmesi gereken g ü venlik gereksinimlerinin tasarlanmasıdır. CC ç atısı altında ç ok sayıda koruma ş ekli tanımlanmı ş tır. CAPP ö zellikle kullanıcı verilerine aracılık yapan iste ğ e ba ğ lı eri ş im kontrolleriyle ilgilenir – bu yakla ş ık olarak TCSEC (Trusted Computer System Evaluation Criteria) 'in C2 sınıfına kar ş ılık d üş er.
CAPP mevcut ö zelliklerin yanında sisteme giri ş , sistemden ç ıkı ş , nesne-konu etkile ş imi, denetim mekanizmasının y ö netim ö zellikleri ve bunun gibi pek ç ok i ş lemin denetlenebilmesini gerektirir. Her ne kadar bu makalenin yazıldı ğ ı zaman resmi bir de ğ erlendirme yapılmamı ş olsa da FreeBSD denetim mekanizması bu gereksinimlerin hepsini kar ş ılamaktadır.
3. Denetim Mekanizmasının Ger ç eklenmesi
FreeBSD denetim mekanizması a ş a ğ ıdaki bile ş enlerden olu ş maktadır:
sys/security/audit : g ü venilir denetim kayıtları kuyru ğ u ve denetleyici sistem ç a ğ rıları contrib/openbsm : BSM k ü t ü phanesi, belgeleri ve denetim ara ç ları etc/security : yapılandırma dosyaları usr.sbin/auditd : denetim servisi
Denetim mekanizmasının kayıtları de ğ i ş tirlemez ve g ü venilir olmak zorunda oldu ğ undan kayıt kuyru ğ u ve denetlenebilen olayların yakalanması ç ekirdekte ger ç ekle ş tirilir. Ç ekirdekte ü retilen denetim kayıtlarına ek olarak g ü venilir s ü re ç lerin, denetim kayıtlarını audit()  sistem ç a ğ rısıyla ç ekirde ğ e bildirmeleri gerekmektedir. Denetim kayıtlarının g ö zden ge ç irilmesi ve y ö netilmesi denetim izlerine ve yapılandırmada belirtilen izinlere g ö re kullanıcı uzayındaki uygulamalarla yapılır.
3.1. BSM Denetim İ zi Bi ç imi
Ba ş lık S ö zc ü k S ö zc ü k Konu D ö n üş İ z Ş ekil 1: Denetim Kayıt Bi ç imi
Sun Microsystems, BSM (Basic Security Module) [11] kayıt bi ç imini tanımladı. Denetim kayıt bi ç iminin bu ş ekilde tasarlanmasının altında yatan neden mevcut i ş leme ve y ö netim ara ç larının kullanımına izin veren gayr-ı resmi denetim izi standardını olu ş turmaktı. Ayrıca,bu projede tanımlanan denetim kaydı bi ç imi, i ş lemci mimarisinden ba ğ ımsız olacak ş ekilde tasarlandı ve Solaris 'te ş u an bulunmayan ö zelliklerin FreeBSD 'de kolayca geli ş tirilmesini sa ğ ladı. Bir BSM g ü nl üğü , bir ya da daha fazla sayıda denetim kaydından olu ş ur. Her bir kayıt; ba ş lık, konu, d ö n üş ve iz gibi veri elemanlarını ta ş ıyan bir dizi s ö zc ü kt ü r. Tip ve uzunluk bilgileri her kayıtta yer aldı ğ ından ayrı ş tırıcılar (parser) tanımadıkları kayıtları es ge ç ebilirler. Denetim kaydı bi ç imi Ş ekil 1 'de g ö sterilmi ş tir. Denetim kaydındaki ba ş lık kısmı; toplam kayıt uzunlu ğ u, olay tipi ve zaman gibi denetim olayı hakkındaki genel bilgileri i ç erir. Konu alanında kullanıcının kimlik numaları, s ü re ç  numarası ve s ü re ç le ilgili di ğ er bilgiler yer alır. D ö n üş kısmında ise sistem ç a ğ rısının ba ş arılı ya da ba ş arısız oldu ğ unu g ö steren sonu ç bilgisi vardır. İ z kısmı, denetim kaydını sonlandırır ve t ü m kaydın toplam boyutunu g ö sterir.
Kullanılan nesnenin yapısına ba ğ lı olarak geli ş tirilmi ş  ç ok sayıda denetim kayıt bi ç imi vardır. Ö rne ğ in; dosya nesnesi 2 kısımla tanımlanır: path  kısmı ve dosya nesnesinin sahip ve izin bilgilerinin tutuldu ğ u attribute kısmı. Ş ekil 2 'de bir denetim kaydı tam olarak g ö sterilmi ş tir.
Ş ekil 2: Ö rnek Bir Denetim Kaydı
3.2. Denetim Olayları ve Sınıfları FreeBSD ç ekirde ğ inde denetim olayları, sistem ç a ğ rıları ile ili ş ilendirilmi ş tir. Hangi sistem ç a ğ rısının denetlendi ğ i ç e ş itli fakt ö rlere ba ğ lıdır. E ğ er sistem ç a ğ rısı korumalı bir nesneye eri ş mek istiyorsa, ayrıcalıklı haklar gerektiriyorsa veya denetim yapılandırması de ğ i ş tirildiyse bir denetim kaydı olu ş turulabilir. Pratikte sistem ç a ğ rılarının ç o ğ u ba ş ka s ü re ç lerle etkile ş imde bulundu ğ undan ve eri ş im kontrolleri gerektiren bir sistem yolunu kullanmak istedi ğ inden bir ö nceki c ü mlede anlatılan kategoriye girmektedir. Olay sınıfları, denetim ö n se ç iminin ilgili oldu ğ u di ğ er denetim olayları ile yapılandırılmasına izin verir. Denetim olayları 0 ya da daha fazla sayıda sınıfa atanmı ş tır: ö rnek sınıflar s ü re ç , a ğ  ve ilgili dosya eri ş imlerini i ç ermektedir. Olayların hangi sınıflarla ili ş kili oldu ğ u ç ekirdekteki dahili bir tabloda tutulur ve bu tablo auditon() sistem ç a ğ rısıyla de ğ i ş tirilebilir. Ba ş langı ç taki olay-sınıf ili ş kisi, denetim i ş lemi ba ş latıldı ğ ında bir yapılandırma dosyasından ç ekirde ğ e y ü klenir. Her kullanıcı adı, denetlenmek ü zere bir olay sınıfı k ü mesi ile ili ş kilendirilebilir. İ lgili kullanıcının s ü re ç lerini maskeleyen 2 denetim sınıf vardır: ba ş arılı olayları se ç en maske ve ba ş arısız olayları se ç en maske. Sistem y ö neticisi, denetim olay maskelerini kullanarak her kullanıcının olaylarını daha iyi denetleyebilir. Bu maskeler s ü re ç  kontrol blo ğ unun par ç ası olarak saklanır ve kullanıcı sisteme girdi ğ inde ayarlanır.
4. FreeBSD De ğ i ş iklikleri McAfee Research, Apple ile anla ş malı olarak Mac OS X 10.3 i ç in Darwin-7.X ç ekirde ğ ine denetim mekanizması deste ğ i ekledi. Ç ekirdek olay denetimi, kullanıcı uzayı programları ve login gibi ü zerinde de ğ i ş iklik yapılan programlar da dahil olmak ü zere yazılan kodun tamamı BSD a ç ık kod lisansı ile lisanslandı. Her ne kadar ilk ger ç eklemeden sonra ç ok b ü y ü k de ğ i ş iklikler yapılmı ş olsa da, Darwin kodu FreeBSD denetim mekanizmasının esas yapısını te ş kil eder. Yapılan de ğ i ş ikliklerden bir kısmı Darwin geli ş tiricilerine geri bildirilmektedir. FreeBSD i ç in yazılan denetim mekanizmasının kaynak kodunu y ö netmek ü zere TrustedBSD projesi altında 2 yeni proje ba ş latıldı. Bir proje ç ekirdekteki denetim mekanizmasının i ş levselli ğ ini ve kullanıcı uzayındaki programlarını y ö netir. Di ğ er proje, OpenBSM [8], ise
genel denetim tanımlarını ve denetim kayıtlarını okumak/yazmak i ç in kullanılan k ü t ü phaneleri y ö netir.
Bu b ö l ü mde denetim mekanizmasının ç ekirdekteki kaynak kodundan s ö z edilecektir. Burada denetim i ç in kullanılan ara ç lar ve uygulamalar 5. b ö l ü mde a ç ıklanacaktır. OpenBSM projesinden ve ilgili kodlardan 6. kısımda bahsedilecektir.
4.1. Ç ekirdek Denetim S ü reci
FreeBSD ç ekirde ğ inde yapılan de ğş iklikler 3 grupta incelenebilir: sistem ç a ğ rılarının denetimi, denetim kayıtlarının i ç y ö netimi ve denetim kayıtlarının dosya sistemine kullanıcı uzayındaki bilgilendirmelerle teslim edilmesi.
Ç ekirdekteki denetim kayıtlarının alaca ğ ı yerlerin merkez noktası sistem ç a ğ rıları tarafından belirlenir. Bunun nedeni ise kontrol edilen t ü m nesnelere sistem ç a ğ rıları ile eri ş ilir ve eri ş imlerden ö nce ilgili kontrollerin yapılması gereklidir. Bu olaylar i ç in olu ş turulan denetim kayıtları s ü recin sahibi (konu) ve davranı ş larıyla (sahiplik, v.s.) ilgili bilgileri i ç erecektir. Denetim olayı tanıtıcıları sistem ç a ğ rıları tablosundaki sistem ç a ğ rılarına atanmı ş tır. Aynı servis ü zerinde ç alı ş ılıyorsa bazı sistem ç a ğ rıları aynı olay tanıtıcılarını payla ş abilir. Do ğ al (native) sistem ç a ğ rılarında atama i ş lemi syscalls.master 'da yapılır; ABI em ü lasyonunda ise ABI 'nin ger ç eklemesindeki sistem ç a ğ rıları tablosunda yapılır.
Ş ekil 3 'te denetim kaydının ç ekirdekte nasıl olu ş turuldu ğ u g ö r ü lmektedir. Sistem ç a ğ rısı girdisinde ( audit_syscall_enter() ), s ü recin denetim maskeleri veya ö n tanımlı maskler ile denetim kaydının olu ş turulup olu ş turulmayaca ğ ına karar verilir. Bu durum; denetim kuyru ğ u ü st sınıra ula ş ğ ında veya denetim kaydını diske yazabilmek i ç in yeterli kaynak bulunmadı ğ ında denetim kaydı tutulacak olan s ü recin ç alı ş masını durdurabilmek i ç in b ü y ü k bir fırsattır. E ğ er denetim kaydı tutulacaksa denetim kaydının ç ekirdek bi ç imi s ü rece eklenir ve konu bilgisi yazılır.
Ş ekil 3: Denetim Kaydı Olu ş umunun Ç ekirdek Akı ş ı
Sistem ç a ğ rısı denetlenmek istendi ğ inde parametleri ve nesne bilgisi yakalanıp ç ekirdek denetim kaydında saklanır. Nesne bilgisi ç o ğ u kez sistem ç a ğ rısının ba ş langıcında alınır. Yol ismi (path name) aramalarında nesne bilgisi ( vnode ) yolun ç ekirde ğ e kopyalandı ğ ı yer olan merkezile ş tirilmi ş arama kodunda ( namei() , lookup() ) yakalanır.
Sistem ç a ğ rısı sonlanırken ( audit_syscall_exit() ) di ğ er ö n se ç imler, d ö n üş de ğ erine uygulanır ve kayıt ya kayıt kuyru ğ una teslim edilir ya da silinir. Daha sonra ise audit_worker  ç ekirdek ipli ğ ine (thread), kaydı asenkron olarak i ş lemesi i ç in sinyal verilir. audit() sistem ç a ğ rısı i ç in 2 denetim kaydı olu ş turulur: sistem ç a ğ rısının kendisini tanımlayan denetim kaydı ve kullanıcının sa ğ ladı ğ ı denetim kaydı.
Denetim kayıt kuyru ğ u, Ş ekil 4 'te g ö sterilen audit_worker  isimli ç ekirdek ipli ğ i tarafından i ş lenir.
Ş ekil 4: audit_worker 'ın Ç alı ş ma Ş ekli
Denetim kayıtları, dosya sisteminde yeterli miktarda bo ş alan olup olmadı ğ ını ve g ü nl ü klerin d ö nd ü r ü lebilirli ğ ini (rotation) kontrol eden audit_record_write()  tarafından silinir. Herhangi bir sınır de ğ ere ula ş ıldı ğ ında auditd tetiklenerek denetim kaydının uygun ş ekilde y ö netilmesi sa ğ lanır. Gerekirse denetim mekanizması askıya alınır ve ç ekirdek b ö yle yapılandırıldıysa, kaydı diske yazamayaca ğ ı i ç in panikleyecektir. Sistem, panik durumuna ge ç meden ö nce yeni bir denetim yapmanın m ü mk ü n olmadı ğ ı durumda sistemin sonlanmasını ö nlemek amacıyla olay kuyru ğ unda beklemede olan t ü m kayıtlar diske yazılır. Daha detaylı kurtarma davranı ş ı m ü mk ü n oldu ğ u m ü ddet ç e; muhtemel kurtarma i ş lemleri, denetim olmaksızın ç alı ş tırılmasına izin verilmeyen ayrıcalıklı eylemleri kullanır. Ö zellikle yapılandırılmadıysa ö n tanımlı olan, sistemdeki bo ş alan t ü kendi ğ inde denetim kaydını iptal etmektir.
Dosya kontrolleri ba ş arılı olursa kaudit_to_bsm() , denetim verilerini ç ekirde ğ in i ç  veri yapılarından denetim izine yazılabilir bi ç imde olan BSM kaydına d ö n üş t ü r ü r. D ö n üşü m i ş lemi sırasında olay tipi, nesne bilgisi ve ilgili di ğ er veriler de dahil olmak ü zere olayı tanımlayan BSM s ö zc ü kleri olu ş turulur. Son olarak da s ü reci tanımlayan konu kısmı, d ö n üş  kodu kısmı ve izleme kısmı olu ş turulur. Ş ekil 2 'de 2 arg ü man ve birer de ba ş lık, d ö n üş , yol ve izleme kısmı g ö sterilmi ş tir. T ü m kısımlar olu ş turulduktan sonra t ü m kayıt vn_rdwr()  ile dosya sistemine yazılır.
4.2. Denetimle İ lgili Sistem Ç a ğ rıları
auditon()  sistem ç a ğ rısı ç ekirde ğ in devreye alma/devreden ç ıkarma gibi denetim yapılandırmasını ve global de ğ erlerin ayarlanmasını kontrol eder. Ayrıca, denetim maskelerini
i ş ler, olay-sınıf ili ş kisini kurar ve denetim g ü nl ü k dosyasının azami de ğ erini d ü zenler. Bu sistem ç a ğ rısı ayrıca denetimde ba ş arısız olundu ğ unda g ö sterilecek davranı ş ın ne olaca ğ ını belirler: kaydı sil, devam et veya panikle.
Maskeleri ve di ğ er s ü re ç bilgilerini elde etmek, yeni de ğ er atamak amacıyla pek ç ok sistem ç a ğ rısı yazıldı. auditctl()  sistem ç a ğ rısı, denetim g ü nl ü k dosyasının adını d ü zenlemek i ç in kullanılırken audit() sistem ç a ğ rısı g ü nl ü kteki denetim kayıtlarını teslim etmede kullanılır.
4.3. Ç ekirdek ile Kullanıcı Uzayı Arasındaki İ leti ş im
Denetim servisinden ç ekirde ğ e sistem ç a ğ rılarıyla ba ğ lantı kurulurken, ç ekirdekten denetim servisine  /dev/audit  ö zel dosyası ü zerinden eri ş ilir. Bu ö zel dosya yazılabilir de ğ ildir ve sadece ç ekirdekten servise g ü nl ü k dosyası ç evrimi gibi olayları haber vermek i ç in kullanılır. Bir uygulama, denetim servisine bir sinyal ( ö rne ğ in; denetimi sonlandırma) g ö ndermek istedi ğ inde bu haber ç ekirdek ü zerinden y ö nlendirilir: uygulama auditon()  sistem ç a ğ rısını kullanılır, ç ekirdek de gerekli haberi g ö nderir.
G ü nl ü k dosyasına tek yazma hakkı ç ekirdekte oldu ğ undan, ç ekirdek g ü nl ü k dosyasını takip eder ve denetim servisini ne yapması gerekti ğ i konusunda bilgilendirir. G ü nl ü k dosyasının durumuna g ö re denetim servisine g ö nderilebilecek haberler ş unlardır:
OPEN NEW : Mevcut denetim g ü nl ü k dosyasının boyutu ü st sınıra ula ş tı demektir. Bu dosyanın boyutu parametrelerle yapılandırılabilir. Dosya boyutu ü st sınırı hafif bir kısıttır ve denetim i ş lemine devam edilir. LOW SPACE : G ü nl ü k dosyasının ü zerinde bulundu ğ u dosya sistemindeki bo ş alan azaldı demektir. En az bo ş alan miktarı da yapılandırılabilen bir de ğ erdir. Bu kısıt da hafiftir ve denetim i ş lemi devam ettirilir. NO SPACE : G ü nl ü k dosyasının ü zerinde bulundu ğ u dosya sistemindeki bo ş  alan t ü kenmi ş tir. Bu sert bir limittir: ya sistem panikler ya da denetim servisi durdurulur.
5. Kullanıcı Uzayı Bile ş enleri
Denetim ihtiya ç larını tamamen kar ş ılayabilmek i ç in FreeBSD 'de kullanıcı uzayında ç e ş itli uygulamalar geli ş tirildi. Esas uygulama, denetim yapılandırmasını ve denetim takip dosyasını y ö netmekle y ü k ü ml ü  olan denetim servisidir. Denetimi seyrelten ve g ü venlik bile ş enleri olarak kullanılan ç e ş itli y ö netim ara ç ları mevcuttur.
5.1. auditd Servisi
Denetim servisi, auditd , sistem a ç ılı ş ının hemen ba ş larında kullanıcıların sisteme giri ş lerine ö nc ü l ü k etmek i ç in ç alı ş maya ba ş lar. auditd 'nin yapması gereken ilk i ş denetim g ü nl ü klerini d ü zenlemektir. Ö te yandan bu servisin yapması gereken denetimi ba ş latma/sonlandırma gibi g ö revleri de vardır. auditd  servisi CAPP 'nin belirledi ğ i kurallar ç er ç evesinde her
a ç ılı ş /kapanı ş /g ü nl ü k d ö nd ü rme i ş lemlerinde denetim kayıtlarını sisteme teslim eder. B ö l ü m 4.3 'te bahsedilenlere ek olarak auditd servisine a ş a ğ ıdaki haberler de verilir:
READ FILE : auditd  servisi yapılandırma dosyalarını okuyup gerekli de ğ i ş iklikleri yapacaktır. CLOSE AND DIE : Denetim dosyasını kapat, denetimi devre dı ş ı bırak ve sonlan.
5.1.1. Denetimin Ba ş laması ve Sonlanması
Denetimin ba ş latılması ve sonlandırılması auditd  servisinin g ö revidir. Ba ş lama s ü resinde ç ekirdekte olay-sınıf ili ş kisi d ü zenlenir. Daha sonra auditctl()  sistem ç a ğ rısıyla ç ekirde ğ e denetim g ü nl ü k dosyasının adı belirtilir. Bu ç a ğ rı aynı zamanda denetimin ba ş lamasını da sa ğ lar. Kapanı ş  esnasında auditd  servisi ç ekirde ğ e denetimin devre dı ş ı bırakılmasını s ö yler ve mevcut g ü nl ü k dosyasını o anki zaman ile isimlendirir.
5.1.2. Denetim G ü nl üğü Y ö netimi
G ü nl ü k dosyası d ö nd ü r ü ld üğü nde yeni dosyanın ismi ç ekirde ğ e haber verilir ve ö nceki dosya yeniden isimlendirilir. Dosya isimleri, denetimin ba ş langı ç ve biti ş zamanını g ö sterir ve bu sayede denetim yapılan zaman aralıkları kolayca anla ş ılır. auditd  servisi diskteki mevcut g ü nl ü k dosyasının y ö netiminden de sorumludur; ancak bu dosyanın takibi b ö l ü m 4.3 'te anlatıldı ğ ı ü zere ç ekirdek tarafından yapılır.
5.2. Denetim Kontrol Dosyaları
/etc/security  dizininde bulunan birka ç dosya ile denetim sistemi yapılandırılır. Bu dosyalar denetim ara ç ları ve BSM k ü t ü phaneleri tarafından kullanılır. Ç ekirdek bu dosyaları do ğ rudan kullanmaz: auditd  servisi auditon()  sistem ç a ğ rısıyla ç ekirde ğ i mevcut yapılandırmadan haberdar edecektir. Yapılandırma dosyaları ş unlardır:
audit_class : Denetim olaylarının sınıflarını tanımlar. audit_control : Denetim g ü nl üğü dizinleri, ö n tanımlı denetim maskeleri ve g ü nl üğü n ü zerinde bulundu ğ u dosya sistemindeki en az bo ş alanın e ş ik de ğ eri burada belirtilir. _ t : Denet layl audit even im o arı ve sınıf atamaları. _ audit user : Kullanıcılara ö zel denetim maskeleri. audit warn : Denetim servisinden bir kullanıcı ç ıktı ğ ında ç a ğ rılan betiktir (script). _ Genellikle uyarıyı g ü nl üğ e ekler; ancak sistem y ö neticisine e-posta g ö nderecek ş ekilde de yapılandırılabilir. Denetim yapılandırma dosyaları son derece hassastır ve yalnızca sistem y ö neticisi tarafından de ğ i ş tirilebilir. audit_user  ve audit_control  dosyaları, CAPP kuralları gere ğ i normal
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents