Sistem yöneticileri, destek grubu personeli olarak veya sadece kuruluşun hem sunucu hem de istemci bilgisayarlarının en iyi kontrol seviyelerini sağlamanın bir ölçüsü olarak, oluşabilecek arızalardan bir adım önde olmak için işletim sistemini sürekli olarak denetlemektedir. ve böylece sistemin bütünlüğünü ve kullanılabilirliğini, ayrıca içinde depolanan rollerini, hizmetlerini ve öğelerini korur.
Linux denetimi nedirLinux ortamında bir denetleme sisteminden bahsettiğimizde, söz konusu işletim sistemindeki güvenlikle ilgili bilgileri izlemenin bir yolunu sağlayan bir mekanizmadan bahsediyoruz.
Denetim, o sistemi oluşturan çeşitli bölümlerin eleştirel bir değerlendirme ile özel olarak incelenmesi ve gerekirse farklı ilgi alanlarında test edilmesinden oluşur.
Bu konsepte dayanarak, bugün Solvetic, Linux'taki denetim süreci için en iyi iki aracı analiz edecek: auditd ve ausearch.
Denetimin işletim sistemine ek güvenlik sağlamadığını, ancak sistemde kullanılan güvenlik ilkelerinin ihlallerini keşfetmek için kullanılabileceğini ve dolayısıyla bunlar hakkında yeterli bilgiye sahip olunabileceğini açıklığa kavuşturmak önemlidir.
DenetlenmişAuditd, günlük girişleri oluşturmak için önceden yapılandırılmış kurallara dayanan ve böylece sistemde meydana gelen olaylar hakkında mümkün olduğunca fazla bilgi depolayan Linux denetim sistemidir.
Toplanan bu bilgiler, güvenlik politikasını ihlal edenleri ve yaptıkları eylemleri belirlemek ve böylece kuruluşta oluşturulan tüm güvenlik eylemlerinin ve yeni politikaların tüm çalışma ortamını iyileştirmeye odaklanmasını sağlamak için kritik görev ortamları için çok önemlidir.
Auditd aşağıdaki günlük dosyalarını kaydedebilir
- Bir olayın tarihi, saati, türü ve sonucu.
- Konu ve nesne duyarlılığı etiketleri.
- Bir olayın, olayı yürüten kullanıcının kimliğiyle ilişkilendirilmesi.
- Tüm değişiklikleri denetleme yapılandırmasına dağıtın ve denetim günlüğü dosyalarına erişmeye çalışın.
- SSH, Kerberos ve diğerleri gibi kimlik doğrulama mekanizmalarının tüm kullanımlarını saklayın.
- / etc / passwd gibi herhangi bir güvenilir veritabanına geçiş yapmak mümkündür.
- Sisteme veya sistemden bilgi alma veya verme girişimini kaydeder.
- Kullanıcı kimliğine, konu ve nesne etiketlerine ve diğer niteliklere göre olayları dahil eder veya hariç tutar.
GereksinimlerAynı şekilde denetim sisteminin kullanılması da güvenlikle ilgili bir dizi sertifika için bir noktada gerekliyse gerekli bir gerekliliktir. Denetim, aşağıdaki dünya çapındaki uyumluluk yönergelerinin veya sertifikalarının gereksinimlerini karşılamak veya aşmak üzere tasarlanmıştır:
- Kontrollü Erişim Koruma Profili (CAPP)
- Etiketli Güvenlik Koruma Profili (LSPP)
- Kural Kümesi Temel Erişim Kontrolü (RSBAC)
- Ulusal Endüstriyel Güvenlik Programı Kullanım Kılavuzu (NISPOM)
- Federal Bilgi Güvenliği Yönetim Yasası (FISMA)
- Ödeme Kartı Sektörü - Veri Güvenliği Standardı (PCI-DSS)
- Güvenlik Teknik Uygulama Kılavuzları (STIG)
Ek yararlarLinux denetim sistemini kullanmanın ek faydalarından bazıları şunlardır:
- Kendi kendine yeten bir sistem üzerinde çalışması için harici programlara veya işlemlere ihtiyaç duymaz.
- Son derece yapılandırılabilir, bu yüzden sistemin istediğimiz herhangi bir çalışmasını görmemizi sağlar.
- Bir sistemin güvenlik seviyesindeki olası tehlikeleri tespit etmeye veya analiz etmeye yardımcı olur.
- Bağımsız bir algılama sistemi olarak işlev görebilir.
- İzinsiz giriş tespitini sağlamak için izinsiz giriş tespit sistemleri ile birlikte çalışabilir.
- Adli soruşturma denetimi için hayati bir araçtır.
Bazı terimler garip gelse de, eğer güvenliğe bağlıysak, şüphesiz bu en iyi seçeneklerden biridir.
1. Linux denetimli denetim sistemi bileşenleri
Denetim sisteminin iki temel bileşeni vardır:
- Kullanıcı uygulamaları ve yardımcı programlar veya araçlar
- Kullanıcı alanı uygulamalarından gelen sistem çağrılarını kabul eden ve bunları üç tür filtreden geçiren çekirdek düzeyinde sistem çağrısı işleme: kullanıcı, görev, çıkış veya hariç tutma.
/var/log/audit/audit.logBuna ek olarak, audispd, auditd ile etkileşime giren ve olayları gerçek zamanlı olay işleme yapmak isteyen diğer programlara gönderen bir olay çoklayıcıdır.
Denetim sisteminden bilgi almak ve yönetmek için birkaç kullanıcı alanı aracı vardır ve bunlar:
AuditctlÇekirdek denetim sistemini kontrol etmek için bir yardımcı programdır.
AusearchBelirli olaylar için denetim günlüğü dosyalarını aramak için bir yardımcı programdır.
AureportKaydedilen olayların raporlarını oluşturmak için bir yardımcı programdır.
Bu analiz için CentOS 7 kullanacağız.
2. Denetimi CentOS 7'ye kurun ve yapılandırın
İlk adım, rpm komutunu ve aşağıdaki gibi grep yardımcı programını kullanarak denetim aracının sistemde kurulu olduğundan emin olmaktır:
rpm -qa | grep denetimiSonuç:
Denetim paketlerinin olmaması durumunda root kullanıcı olarak aşağıdaki komutu çalıştırmalıyız:
yum yükleme denetimiKurulduktan sonra, denetimin etkin olup olmadığını yapılandırmamız gerekir, bunun için aşağıdaki komutlardan herhangi birini sırayla uygulayacağız:
CentOS veya RHEL 7'de
systemctl etkindir auditdsystemctl status auditdsystemctl start auditd (hizmeti başlatır) systemctl enable auditd (hizmeti etkinleştirir)
CentOS veya RHEL 6'da
hizmet denetimi statusservice denetimi başlat (hizmeti başlatır) chkconfig denetimi açık (hizmeti etkinleştirir)
Durumunun aktif olduğunu görebiliriz.
3. Denetlenen yapılandırma
Auditd'yi yapılandırmak için /etc/audit/auditd.conf ana yapılandırma dosyasını kullanmalıyız çünkü orada günlük dosyasının konumu, maksimum günlük dosyası sayısı, kayıt biçimi gibi hizmetin nasıl çalıştığını kontrol etmek mümkün olacaktır. , tam disklerin nasıl işleneceği, kayıt döndürme ve daha fazla seçenek.
Bunun için tercih edilen düzenleyiciyi kullanacağız:
nano /etc/audit/auditd.confOrada şunları göreceğiz:
Her satırın belirli bir eylemi belirtmemize izin verdiğini görebilir ve gerektiğinde değiştirebiliriz.
4. Linux'ta denetim kuralları
Yukarıda belirtildiği gibi, denetim, çekirdekten belirli bilgileri toplamak için kuralları kullanır. Bu kurallar temel olarak /etc/audit/rules.d/audit.rules dosyasında önceden yapılandırılabilen auditctl seçenekleridir.
Tanımlanabilecek üç tür denetim kuralı vardır:
Kontrol kurallarıBunlar, denetim sisteminin davranışını ve bazı ayarlarını değiştirmeye izin verir.
Dosya sistemi kurallarıBu kurallar, belirli bir dosyaya veya dizine erişimin denetlenmesine izin verir.
Sistem çağrısı kurallarıBunlar, herhangi bir program tarafından yapılan sistem çağrılarının kaydedilmesine izin verir.
Bu kurallara erişmek için istenen düzenleyiciyi kullanarak aşağıdaki rotaya gideceğiz:
nano /etc/audit/rules.d/audit.rulesAşağıdakileri göreceğiz:
Bu dosyada ilk bölümde kontrol kuralları eklemeliyiz. Ardından, orta bölüme denetim kurallarını ekleyin ve son olarak son bölüm, aynı zamanda kontrol kuralları olan değişmezlik parametrelerini içerir.
Bu kurallara bazı örnekler:
Önceki tüm kuralları kaldır
-NS
Tampon boyutunu tanımlayın
-b 3074
Başarısızlık panik seçeneği yaratır
-f4
Saniyede maksimum 120 denetim mesajı oluşturun
-r 120
Bir kuralın örneği aşağıdaki gibidir:
Orada aşağıdakilere sahibiz:
İzlenecek bir dosya veya dizini belirtmek için kullanılır.
-w
izinlerKaydedilecek izinler, r - okuma erişimi, w - yazma erişimi, x - yürütme erişimi ve - dosya veya yönetici niteliği değişikliği için izinlerdir.
-P
Kural kümesini tanımlayınBelirli bir kayıt defteri girdisini hangi kuralın (veya bir dizi kural) oluşturduğunu belirlemek için isteğe bağlı bir zincir ayarlamanıza olanak tanır.
-k
Kurallar tanımlandıktan sonra, dosyayı kaydetmek için Ctrl + O ve çıkmak için Ctrl + X tuş kombinasyonunu kullanırız. Aşağıdaki satırları root olarak çalıştırarak örnektekileri alarak bu kuralları ekleyeceğiz:
auditctl -w / etc / passwd -p wa -k passwd_changesauditctl -w / etc / group -p wa -k group_changesauditctl -w / etc / sudoers -p wa -k sudoers_changesMevcut kuralları görmek için aşağıdakileri uygulayacağız:
sudo denetimctl -l
Bu şekilde auditd, CentOS 7'de değerli bir denetim aracı haline gelir.
5. Arama Linux
ausearch yardımcı programı, olay tanımlayıcısı, anahtar tanımlayıcısı, CPU mimarisi, komut adı, ana bilgisayar adı, grup adı veya Grup Kimliği gibi olaylara ve farklı arama kriterlerine dayalı olarak belirli olaylar için denetim günlüğü dosyalarının aranmasına izin verecek şekilde tasarlanmıştır.
Varsayılan olarak ausearch, /var/log/audit/audit.log dosyasına bakar. ausearch options -if filename komutunu kullanarak farklı bir dosya belirtebilirsiniz. Bir ausearch komutunda birden çok seçenek sağlamak, AND operatörünü kullanmaya eşdeğerdir.
Varsayılan değeri kullanmak ve mevcut günlükleri görmek için aşağıdaki komutlardan birini uygulayacağız:
cat /var/log/audit/audit.logcat /var/log/audit/audit.log | az
Gördüğümüz gibi, burada sunulan veriler kafa karıştırıcı olabilir, bu nedenle ausearch, bu sonuçları filtrelemek ve yönetilmesi çok daha kolay bir vizyon elde etmek için ausearch sözdizimini (seçenek) kullanır.
Aşağıdaki gibi seçeneklerimiz var:
İşlem günlüklerinin yürütülmesini kontrol edinOrada belirli bir sonuç elde etmek için -p parametresini artı PID'yi kullanabiliriz:
ausearch -p 579
Oturum açma girişimleri için denetim günlüğü dosyasını kontrol etmeBu durumda, belirli mesajları tanımlamak için -m parametresini ve başarılı sonuçları tanımlamak için -sv parametresini kullanmamız gerekir.
ausearch -m USER_LOGIN -sv hayır
Auditd günlük dosyasında kullanıcı etkinliğini bulunBu sonuç için -ua parametresini artı kullanıcı adını kullanacağız:
ausearch -ua Solvetic
Kullanıcılar, gruplar ve rollerdeki değişiklikleri bulunBu seçenek ile kullanıcı hesapları, grupları ve rolleri ile kullanılan tüm sistem değişikliklerini incelemek mümkün olacaktır; Virgülle ayrılmış birkaç tür mesaj belirtebiliriz:
ausearch -m ADD_USER, DEL_USER, USER_CHAUTHTOK, ADD_GROUP, DEL_GROUP, CHGRP_ID, ROLE_ASSIGN, ROLE_REMOVE -iAşağıdakileri göreceğiz:
Arama yardımına bakınBu yardımcı programın farklı seçeneklerini görmek için aşağıdakileri uygulayacağız:
adam ausearch
Böylece CentOS veya RedHat'ta eksiksiz ve etkili bir denetim gerçekleştirirken çeşitli seçenekleri görebiliriz.