← man/system_diagnostics
eslogger — man eslogger — 80×24
ugur@toprak:~/man/system_diagnostics$man eslogger
Bölüm 1 Sistem Tanılama

eslogger

Endpoint Security olaylarını günlüğe kaydeder

Sözdizimi

     eslogger [--oslog] [--format format] [--oslog-subsystem subsystem] [--oslog-category category]
	      event [...]
     eslogger --list-events

Açıklama

eslogger, olayları standart çıktıya veya birleşik günlük sistemine (unified logging system) kaydetmek için Endpoint Security ile arayüz oluşturur.

Tüm Endpoint Security istemcileri gibi eslogger da süper kullanıcı olarak çalıştırılmalıdır ve sorumlu sürecin TCC Tam Disk Erişimi (Full Disk Access) yetkisine sahip olmasını gerektirir. Aşağıdaki TCC YETKİLENDİRMESİ bölümüne bakın. Kabuk boru hatları (shell pipelines) kullanarak çıktıyı filtrelerken geri besleme döngülerini (feedback loops) önlemek için eslogger, kendi süreç grubunun bir parçası olan tüm süreçler için olayları otomatik olarak bastırır.

eslogger uygulamalar tarafından kullanılmak üzere tasarlanmamıştır. Endpoint Security API'si ile yerel olarak arayüz oluşturmanın sağladığı aynı işlevselliği, performansı ve şema kararlılığını sağlamayı amaçlamaz. Sistem Uzantılarına (System Extensions) verilen bütünlük korumasını sağlayamaz. Uygulamalar EndpointSecurity(7) ile yerel olarak arayüz oluşturmaya devam etmelidir.

ÖNEMLİ: eslogger hiçbir şekilde bir API DEĞİLDİR. YAYILAN yapıya veya bilgilere HERHANGİ BİR nedenle GÜVENMEYİN. Sürümler arasında herhangi bir uyarı yapılmaksızın değişebilir.

Seçenekler

  • --format format: Kullanılacak günlük biçimi. Varsayılan ve şu anda desteklenen tek biçim json'dır. Aşağıdaki BİÇİMLER bölümüne bakın.

  • --list-events: Desteklenen olayları standart çıktıda listeler ve çıkar.

  • --oslog: Olay verilerini standart çıktı yerine birleşik günlük sistemine yayar. Birleşik günlük sisteminin yapılandırılması ve kullanılması hakkında log(1) sayfasına bakın. Varsayılan alt sistem ve kategori, aşırı boyutlu (oversize) mesajlar için yapılandırılmıştır ve bu durum 32k'lık bir mesaj boyutu sınırıyla sonuçlanır. Daha büyük mesajlar kırpılacaktır.

  • --oslog-subsystem subsystem: --oslog ile kullanılacak günlük alt sistemi (subsystem). Varsayılan değer com.apple.eslogger'dır. Alt sistemin değiştirilmesi, varsayılan günlük profilini etkisiz hale getirerek 1k'lık bir mesaj boyutu sınırı ile sonuçlanacaktır. --oslog-subsystem kullanırken aşırı boyutlu mesajlar için alt sistemin yapılandırılması önerilir.

  • --oslog-category category: --oslog ile kullanılacak günlük kategorisi. Varsayılan değer events'tir. Alt sistemin değiştirilmesi, varsayılan günlük profilini etkisiz hale getirerek 1k'lık bir mesaj boyutu sınırı ile sonuçlanacaktır. --oslog-category kullanırken aşırı boyutlu mesajlar için kategorinin yapılandırılması önerilir. eslogger, kritik hatalar gibi işlemsel günlük kayıtları için main kategorisini kullanır.

Olaylar

Olaylar exec veya exit gibi kısa adlarıyla belirtilir. Şu anda desteklenen olayları kısa adlarına göre listelemek için --list-events seçeneğini kullanın. eslogger, EndpointSecurity'nin desteklediği tüm bildirim (notify) olaylarını destekler. Tasarım gereği eslogger, herhangi bir yetkilendirme (auth) olayını desteklemez.

Yerel Endpoint Security API istemcilerinde bulunan bazı alanlar eslogger'da mevcut değildir. Şu anda bu şekildeki tek alan, yalnızca remote_thread_create olaylarında kullanılan es_thread_state_t yapısının bir parçası olan es_token_t state alanıdır.

Biçimler

Olay verileri için desteklenen tek biçim json'dır; bu biçim standart çıktıya yazılırken JSON Lines, birleşik günlük sistemine yazılırken ise JSON biçimindedir. Resmi bir şema sağlanmamış olsa da, veriler EndpointSecurity(7) tarafından sağlanan es_message_t yapısına göre modellenmiştir. Anlambilim (semantics), alan adları ve isteğe bağlılık durumları, SDK'deki libEndpointSecurity(3) üst bilgi (header) belgelerinde belgelendiği şekliyle C karşılıklarına uyar. Her olayla birlikte bir schema_version sağlanır. schema_version değişikliklerinde herhangi bir şema kararlılığı garantisi verilmemektedir. schema_version değeri yükseltilmeden yeni olaylar eklenebilir. schema_version, olayların JSON temsiline özgüdür. schema_version, EndpointSecurity(7) tarafından yayılan mesaj sürümünü belirten version alanından farklıdır.

Örnekler

     Süreç yaşam döngüsü olaylarına abone olun ve olay verilerini bir dosyanın sonuna ekleyin:

	   % sudo eslogger exec fork exit >>/tmp/proc.log

     Ekran paylaşımı olaylarına abone olun ve olay verilerini varsayılan alt sistem ve kategori ile birleşik günlük sistemine yazın:

	   % sudo eslogger --oslog screensharing_attach screensharing_detach

     Kullanılabilir olayları listeleyin:

	   % eslogger --list-events

     jq ile bir kabuk boru hattında çıktıyı son işlemden geçirin:

	   % sudo eslogger exec | jq -r 'select(.process.executable.path == \
	   "/bin/zsh")|"\(.process.audit_token.pid): \(.process.executable.path) -> \
	   \(.event.exec.target.executable.path)"'

Tcc Yetkilendirmesi

eslogger, sorumlu sürecin Tam Disk Erişimi (Full Disk Access) için yetkilendirilmiş olmasını gerektirir. eslogger'ı bir SSH oturumunda çalıştırmak için System Preferences > Sharing > Remote Login bölümünde "Allow full disk access for remote users" (Uzak kullanıcılar için tam disk erişimine izin ver) seçeneğini etkinleştirin. eslogger'ı Terminal.app veya üçüncü taraf bir terminal öykünücüsü dahil olmak üzere bir uygulamadan çalıştırmak, ilgili uygulamanın System Preferences > Security & Privacy > Privacy > Full Disk Access bölümünde Tam Disk Erişimi için yetkilendirilmesini gerektirir. eslogger'ı bir launch daemon olarak çalıştırmak, eslogger'ın kendisinin System Preferences > Security & Privacy > Privacy > Full Disk Access bölümünde Tam Disk Erişimi için yetkilendirilmesini gerektirir. MDM sunucuları, com.apple.TCC.configuration-profile-policy yük (payload) türü ve bunun servis sözlüğü anahtarı SystemPolicyAllFiles ile tanımlanan Privacy Preferences Policy Control yükünü kullanarak Tam Disk Erişimi yetkisi verebilir.

Ayrıca Bakınız

log(1), mdmclient(1), libEndpointSecurity(3), EndpointSecurity(7).

Darwin 22 Şubat 2022 Darwin