Kullanım Kılavuzu
Wazuh kullanıcı kılavuzuna hoş geldiniz. Temel Wazuh kurulumunuz hazır olduğunda bunu referans kütüphaneniz olarak kullanın. Bu bölümde, Wazuh sunucu yönetimi, Wazuh aracı kaydı, Wazuh yetenekleri ve aşağıda listelenen diğer birçok konu hakkında içerik bulacaksınız.
- Wazuh Server
- Alarm Yönetimi
- Olay Günlüğü Tutma
- Harici API entegrasyonu
- Indexer Entegrasyonu
- Wazuh Yöneticisi
- Sıraya Girme Mekanizmaları
- Wazuh Server API
- Başlarken
- Yapılandırma
- Wazuh Sunucu API'sini Güvence Altına Alma
- Rol Tabanlı Erişim Kontrolü
- Wazuh Sorgu Dili (WQL) Kullanılarak Verilerin Filtrelenmesi
- Kullanım Örnekleri
- Wazuh Server Kümesi
- Wazuh Indexer
- Wazuh Indexer Endeksleri
- Yeniden İndeksleme
- Index Yaşam Döngüsü Yönetimi
- Wazuh Indexer Ayarı
- Wazuh Endekslerinin Taşınması
- Wazuh Indexer Kümesi
- Wazuh Dashboard
- Wazuh Agent
- Veri Analizi
- MITRE ATT&CK Framework
- CDB Listelerini Kullanma
- Kurallar
- Decoders
- Kod Çözücüleri ve Kuralları Test Etme
- Kullanıcı Yönetimi
- Yetenekler
- Günlük Veri Toplama
- Ajansız İzleme
- Konteyner Güvenliği
- Aktif Tepki
- Sistem Envanteri
- Malware (Kötü Amaçlı Yazılım) Tespiti
- Dosya Bütünlüğünün İzlenmesi
- İzleme Sistemi Çağrıları
- Komut İzleme
- Güvenlik Yapılandırma Değerlendirmesi
- Güvenlik Açığı Tespiti
- Referans
Wazuh Server
Wazuh sunucusu, ajanlardan, harici API'lerden ve ağ cihazlarından aldığı verileri analiz eden Wazuh merkezi bileşenidir. Alınan verileri, güvenlik izleme ve yönetimi için uyarılar üretmek üzere önceden tanımlanmış bir kural kümesiyle ilişkilendirerek ve eşleştirerek analiz eder. Wazuh sunucusu iki ana bileşenden oluşur; Wazuh yöneticisi ve Filebeat . Wazuh yöneticisi veri analizi ve uyarılardan sorumludur, dizinleyici entegrasyonu ise analiz edilen verileri Wazuh dizinleyicisine iletir. Nasıl kurulacağı ve ayarlanacağı hakkında bilgi için Wazuh sunucusu kurulum belgelerine bakın.
Alarm Yönetimi
/var/ossec/logs/alerts/alerts.log
Uyarılar, Wazuh aracılarından ve aracısız aygıtlardan alınan olayları işledikten sonra Wazuh yöneticisi tarafından oluşturulan bildirimlerdir. Varsayılan olarak, uyarılar ve dosyalarında saklanır /var/ossec/logs/alerts/alerts.json
.
Varsayılan olarak, Wazuh sunucusu, oluşturulan uyarıları dizinleme için Wazuh dizinleyicisine iletmek için Filebeat'i kullanır. Ek olarak, Wazuh yöneticisini syslog sunucuları, e-posta sistemleri ve veritabanlarını içeren diğer sistemlere uyarıları iletecek şekilde yapılandırabilirsiniz.
Uyarı Eşiği
Uyarı eşiği, bir uyarının tetiklenmesi için aşılması gereken en düşük önem seviyesidir. Wazuh yöneticisi, kurallar kümesindeki eşleşen kurala göre izlenen uç noktalardan gelen her olaya bir önem seviyesi atar. Varsayılan olarak, yalnızca önem seviyesi 3
veya daha yüksek olan uyarıları tetikler.
Yapılandırma
/var/ossec/etc/ossec.conf
Uyarı eşiği , Wazuh sunucusundaki yapılandırma dosyasında XML etiketi içerisinde yapılandırılır <alerts>
.
Aşağıdaki kod bloğu, olaylar ve uyarıların e-posta yoluyla iletilmesi için varsayılan uyarı eşiği yapılandırmasını gösterir:
<ossec_config> <alerts> <log_alert_level>3</log_alert_level> <email_alert_level>12</email_alert_level> </alerts> </ossec_config>
Nerede:
-
<log_alert_level>
etiket ,/var/ossec/logs/alerts/alerts.log
ve/veya/var/ossec/logs/alerts/alerts.json
dosyada depolanan uyarıları tetiklemek için minimum önem seviyesini ayarlar . Varsayılan değer3
'dür . İzin verilen değer, kurallar sınıflandırma kılavuzunda belirtildiği gibi1
ila16
arasında herhangi bir tam sayıdır -
Etiket
<email_alert_level>
, bir uyarının e-posta bildirimi oluşturması için minimum önem seviyesini ayarlar. Varsayılan değer 'dir12
. İzin verilen değer,1
'den 'e kadar herhangi bir tam sayıdır16
. Bu ayar, ayrıntılı e-posta uyarısı yapılandırmasını geçersiz kılar. Ancak, bireysel kurallar içindekialert_by_email
seçenek , bir e-posta uyarısını tetiklemek için hem genel hem de ayrıntılı uyarı düzeyi eşiklerini geçersiz kılabilir.
Uyarı eşiği yapılandırma hakkında ayrıntılı bilgi için uyarı başvuru kılavuzuna bakın.
Not: Yapılandırma dosyasında herhangi bir değişiklik yaptığınızda Wazuh yöneticisini yeniden başlatın. Bu eylem değişikliklerin etkili olmasını sağlar.
Aşağıdaki komutla komut satırı arayüzü üzerinden Wazuh yöneticisini yeniden başlatın:
Systemd
systemctl restart wazuh-manager
SysV Başlatma
service wazuh-manager restart
Uyarıları İletme
Wazuh yöneticisi, dizinleme ve analiz yetenekleri için uyarıları varsayılan olarak Wazuh dizinleyicisine iletir. Ayrıca, Wazuh yöneticisi, analiz ve yedekleme için uyarıları yapılandırma ve diğer sistemlere iletme yeteneği sağlar.
Syslog Çıktısını Yapılandırma
Syslog_output seçeneğini kullanarak Wazuh sunucusunu bir syslog sunucusuna uyarılar gönderecek şekilde yapılandırabilirsiniz . Uyarıları bir syslog sunucusuna iletmek, merkezi izleme ve özel raporlama için yararlı olabilir.
Yapılandırma
/var/ossec/etc/ossec.conf
Syslog çıktısı, blok içindeki Wazuh sunucu yapılandırma dosyasında yapılandırılır . Varsayılan olarak, Wazuh yöneticisi uyarıları UDP protokolü üzerinden <ossec_config>
port kullanarak syslog sunucularına iletir .514
Aşağıdaki kod bloğu, uyarıları bir syslog sunucusuna iletmek için örnek bir yapılandırmayı göstermektedir:
<ossec_config> <syslog_output> <level>9</level> <server>192.168.1.241</server> </syslog_output> </ossec_config>
Yapılandırma seçenekleri aşağıdaki şekilde tanımlanmıştır:
-
Etiket
<level>
, syslog sunucusuna iletilecek uyarıların minimum önem seviyesini ayarlar. Örnek değer,9
Wazuh sunucusunun uyarıları yalnızca uyarı seviyesi 'den yüksekse syslog sunucusuna ilettiğini gösterir9
. Bu seçenek tanımlanmamışsa, Wazuh sunucusu tüm uyarıları syslog sunucusuna iletir. -
Etiket
<server>
, uyarıları iletmek için syslog sunucusunun IP adresini veya ana bilgisayar adını ayarlar.192.168.1.241
Yapılandırmadaki IP adresi bir örnek olarak kullanılır.
Değişikliklerin her yapılandırmadan sonra uygulanması için Wazuh yönetici hizmetini yeniden başlatın:
Systemd
systemctl restart wazuh-manager
SysV Başlatma
service wazuh-manager restart
Yapılandırma dosyasında blok <syslog_output>
içerisinde birden fazla blok tanımlayarak uyarıları birden fazla syslog sunucusuna iletebilirsiniz .<ossec_config>
/var/ossec/etc/ossec.conf
<ossec_config> <syslog_output> <server>192.168.1.240</server> </syslog_output> <syslog_output> <level>9</level> <server>192.168.1.241</server> </syslog_output> </ossec_config>
Yukarıdaki yapılandırmada,
-
İlk
<syslog_output>
blok tüm uyarıları filtrelemeden IP adresine sahip syslog sunucusuna gönderir192.168.1.240
. -
İkinci blok , yalnızca uyarı seviyesi 'den yüksekse
<syslog_output>
syslog sunucusuna uyarılar gönderir .192.168.1.241
9
E-posta Uyarılarını Yapılandırma
Wazuh, bir Wazuh sunucusunda oluşturulduğunda e-posta sistemlerine uyarılar göndermek için bir özellik sunar. Kurallar tetiklendiğinde veya özelleştirilmiş ayarlara göre bir veya daha fazla e-posta adresine e-posta uyarıları göndermek üzere yapılandırabilirsiniz. Bu yapılandırma günlük olay raporları ve daha fazlası için size yardımcı olabilir.
Kural kimliği 553
tetiklendiğinde Wazuh tarafından gönderilen örnek bir e-posta aşağıda gösterilmektedir:
Wazuh Notification. 2024 Apr 29 08:58:30 Received From: wazuh-server->syscheck Rule: 553 fired (level 7) -> "File deleted." Portion of the log(s): File '/var/ossec/test_dir/somefile. txt' deleted Mode: realtime Attributes: - Size: 0 - Permissions: rw-r--r-- - Date: Mon Apr 29 08:46:12 2024 - Inode: 841858 - User: root (0) - Group: root (0) - MD5: d41d8cd98f00b204e9800998ecf8427e - SHA1: da39a3ee5e6b4b0d3255bfef95601890afd80709 - SHA256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 --END OF NOTIFICATION
Genel E-posta Seçenekleri
Wazuh'un e-posta uyarıları göndermesini yapılandırmak için /var/ossec/etc/ossec.conf
dosyanın <global>
bölümündeki e-posta seçeneklerini yapılandırıyoruz .
E-posta adresine uyarı göndermek için örnek bir e-posta yapılandırması me@test.com
aşağıda gösterilmektedir:
<ossec_config> <global> <email_notification>yes</email_notification> <email_to>me@test.com</email_to> <smtp_server>mail.test.com</smtp_server> <email_from>wazuh@test.com</email_from> </global> ... </ossec_config>
Yukarıdakiler yapılandırıldıktan sonra, email_alert_level
bir e-postayı tetiklemek için seçeneğin minimum uyarı seviyesine ayarlanması gerekir. Varsayılan olarak, bu seviye olarak ayarlanır 12
.
Aşağıdaki örnek yapılandırma, e-posta uyarılarının gönderileceği minimum seviyeyi belirler 10
:
<ossec_config> <alerts> <email_alert_level>10</email_alert_level> </alerts> ... </ossec_config>
Değişikliklerin her yapılandırmadan sonra uygulanması için Wazuh yönetici hizmetini yeniden başlatın:
Systemd
systemctl restart wazuh-manager
SysV İnit
service wazuh-manager restart
Uyarı: Wazuh SMTP kimlik doğrulamasını işlemez. E-posta servisiniz bunu kullanıyorsa, bir sunucu rölesi yapılandırmanız gerekir .
Ayrıntılı E-posta Seçenekleri
Wazuh, e-posta uyarıları için ayrıntılı yapılandırma seçeneklerine izin verir. Bu ayar, dosyanın bölümünde yapılandırılan genel e-posta seçeneklerini genişletir. Ayrıntılı e-posta yapılandırmaları, dosyanın etiketi içinde tanımlanır .<global>
/var/ossec/etc/ossec.conf
<email_alerts>
/var/ossec/etc/ossec.conf
Uyarı: Bölümde yapılandırılan minimum önem düzeyi <alerts>
bu ayrıntılı e-posta yapılandırmalarına uygulanır ve bunları geçersiz kılar. Örneğin, Wazuh yöneticisini kural tetiklendiğinde bir e-posta gönderecek şekilde yapılandırırsanız 526
ancak kuralın düzeyi bölümde belirtilen minimum düzeyden düşükse <alerts>
uyarı gönderilmez.
Seviyeye Göre E-posta Uyarısı
Bu seçenek, Wazuh yöneticisini, önem düzeyi ayarlanan değere eşit veya daha büyük olduğunda e-posta uyarıları gönderecek şekilde yapılandırır. Bu seçenek aşağıdaki şekilde yapılandırılır:
<email_alerts> <email_to>you@example.com</email_to> <level>4</level> <do_not_delay/> </email_alerts>
you@example.com
Bu yapılandırma, Wazuh yöneticisinin , seviyesi eşit veya daha büyük olan herhangi bir kural tetiklendiğinde bir e-posta göndermesine olanak tanır 4
.
Not: Buradaki önem seviyesi <alerts>
bölümde yapılandırılan email_alert_level
önem seviyesinden daha düşükse , e-posta gönderilmeyecektir.
Etkinlik Lokasyonuna Göre E-posta Uyarısı
Bu event_location
seçenek, olayın kaynaklandığı konuma göre e-posta uyarıları göndermeyi içerir. Oluşturulan uyarı, e-posta yoluyla iletilmek üzere olay konumuyla eşleşmelidir. Bu seçenek için izin verilen değerler Wazuh aracı adı, ana bilgisayar adı, IP adresi veya günlük dosyasıdır.
Bu seçenek aşağıdaki şekilde yapılandırılır:
<email_alerts> <email_to>you@example.com</email_to> <event_location>server1</event_location> <do_not_delay/> </email_alerts>
you@example.com
Bu yapılandırma, Wazuh yöneticisinin uyarıları oluşturan olayların Wazuh adlı aracıda kaynaklandığı zaman adresine bir e-posta göndermesine olanak tanır server1
.
Kural Kimliğine Dayalı E-posta
Bu rule_id
seçenek, kural kimliklerine dayalı uyarı e-postaları göndermek için kullanılır. Bu seçenek, yalnızca belirli tanımlanmış kurallar tetiklendiğinde e-postaların gönderilmesini sınırlar.
Bu seçenek aşağıdaki şekilde yapılandırılır:
<email_alerts> <email_to>you@example.com</email_to> <rule_id>515, 516</rule_id> <do_not_delay/> </email_alerts>
Bu yapılandırma , Wazuh yöneticisinin you@example.com
kurallar tetiklendiğinde bir e-posta göndermesine olanak tanır .515
516
Kural Grubuna Dayalı E-posta
Seçenek group
, uyarıların ait olduğu bir veya daha fazla kural grubuna göre e-posta göndermek üzere yapılandırılabilir.
Bu seçenek aşağıdaki şekilde yapılandırılır:
<email_alerts> <email_to>you@example.com</email_to> <group>pci_dss_10.6.1,</group> </email_alerts>
you@example.com
Bu yapılandırma, Wazuh yöneticisinin, grubun parçası olan herhangi bir kural pci_dss_10.6.1
herhangi bir Wazuh izlenen uç noktasında tetiklendiğinde bir e-posta göndermesine olanak tanır.
Birden Fazla Seçenek ve Birden Fazla E-posta
E-posta uyarıları, her biri benzersiz kriterlere sahip birden fazla e-posta adresine gönderilebilir.
Aşağıdaki örnek yapılandırma, birden fazla kritere sahip e-posta uyarılarının birden fazla e-posta adresine nasıl gönderileceğini gösterir:
<ossec_config> <email_alerts> <email_to>alice@test.com</email_to> <event_location>endpoint1|endpoint2</event_location> </email_alerts> <email_alerts> <email_to>is@test.com</email_to> <event_location>/log/secure$</event_location> </email_alerts> <email_alerts> <email_to>bob@test.com</email_to> <event_location>192.168.</event_location> </email_alerts> <email_alerts> <email_to>david@test.com</email_to> <level>12</level> </email_alerts> </ossec_config>
Bu yapılandırma şunları gönderir:
-
alice@test.com
Herhangi bir uyarı tetiklendiğindeendpoint1
e -posta adresinize gönderilecekendpoint2
. -
is@test.com
Uyarıların dosyadan gelip gelmediğine dair bir e-posta/log/secure
. -
bob@test.com
Uyarıların ağdaki herhangi bir uç noktadan gelip gelmediğine dair bir e-posta192.168.0.0/24
. -
david@test.com
Uyarıların seviyesi eşit veya daha yüksekse e-posta gönderilecektir12
.
Bir Uyarıyı E-postayla İletmeyi Zorla
E-posta yoluyla uyarı göndermek için minimum önem seviyesi 12
varsayılan olarak. Wazuh yöneticisini yapılandırılmış minimum önem seviyesinin altında bir e-posta uyarısı göndermek üzere yapılandırabilirsiniz. Bunu yapmak için aşağıdaki kural seçeneklerinden birini kullanmanız gerekir:
-
alert_by_email
her zaman e-posta ile uyarmak. -
no_email_alert
asla e-posta yoluyla uyarıda bulunmayın. -
no_log
Bu uyarının kaydedilmemesi için.
Örneğin, aşağıdaki kural tanımı, 502
minimum önem düzeyi ne olarak ayarlanmış olursa olsun, kural her tetiklendiğinde bir e-posta gönderir:
<rule id="502" level="3"> <if_sid>500</if_sid> <options>alert_by_email</options> <match>Ossec started</match> <description>Ossec server started.</description> </rule>
Kimlik Doğrulamalı SMTP Sunucusu
Wazuh e-posta uyarıları, Gmail gibi kimlik doğrulaması olan SMTP sunucularını desteklemez. Ancak, bu e-postaları Postfix gibi bir sunucu rölesi aracılığıyla gönderebilirsiniz.
Postfix'i Gmail ile yapılandırmak için aşağıdaki adımları röle sunucunuzda gerçekleştirin.
-
Gerekli paketleri yüklemek için bu komutu çalıştırın. Posta sunucusu yapılandırma türü hakkında sorulursa Yapılandırma yok'u seçin.
CentOSyum update && yum install postfix mailx cyrus-sasl cyrus-sasl-plain
Ubuntuapt-get update && apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules
-
Postfix'i yapılandırmak için bu satırları dosyaya ekleyin
/etc/postfix/main.cf
. Eksikse dosyayı oluşturun.
CentOSrelayhost = [smtp.gmail.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt smtp_use_tls = yes
Ubunturelayhost = [smtp.gmail.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt smtp_use_tls = yes smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination
-
Gönderenin kimlik bilgilerini dosyaya ayarlayın
/etc/postfix/sasl_passwd
ve Postfix için bir veritabanı dosyası oluşturun.<USERNAME>
ve<PASSWORD>
değişkenlerini sırasıyla gönderenin e-posta adresi kullanıcı adı ve parolasıyla değiştirin.echo [smtp.gmail.com]:587 <USERNAME>@gmail.com:<PASSWORD> > /etc/postfix/sasl_passwd postmap /etc/postfix/sasl_passwd
Not: Şifre bir Uygulama Şifresi olmalıdır . Uygulama Şifreleri yalnızca 2 Adımlı Doğrulama özelliği açık olan hesaplarda kullanılabilir.
-
Parola DB dosyanızı yalnızca
root
kullanıcının tam okuma ve yazma erişimine sahip olması için güvenceye alın. Bunun nedeni/etc/postfix/sasl_passwd
ve/etc/postfix/sasl_passwd.db
dosyalarının düz metin kimlik bilgilerine sahip olmasıdır.chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
-
Yapılandırma değişikliklerini gerçekleştirmek için Postfix'i yeniden başlatın:
Systemdsystemctl restart postfix
SysV Başlatmaservice postfix restart
-
Yapılandırmayı test etmek için aşağıdaki komutu çalıştırın:
echo "Test mail from postfix" | mail -s "Test Postfix" -r "<CONFIGURED_EMAIL>" <RECEIVER_EMAIL>
Yer değiştirmek:
-
<CONFIGURED_EMAIL>
Yapılandırılmış e-posta adresinizle. -
<RECEIVER_EMAIL>
Alıcının e-posta adresiyle birlikte.
Komut, alıcının e-postasına
Test Postfix
konu veTest mail from postfix
gövdeyi içeren bir e-posta gönderir.If you get the error message
fatal: tls_fprint: error computing md5 message digest
in the/var/log/maillog
file, run the following commands to switch Postfix from the defaultMD5
hashing function toSHA-256
:#
/var/log/maillog
dosyasındafatal: tls_fprint: error computing md5 message digest
hata mesajı alırsanız , Postfix'i varsayılanMD5
karma işlevindenSHA-256
'ya geçirmek için aşağıdaki komutları çalıştırın :postconf -e smtp_tls_fingerprint_digest=sha256 postconf -e smtpd_tls_fingerprint_digest=sha256
-
-
<global>
Wazuh sunucusunun/var/ossec/etc/ossec.conf
dosyasının etiketi içerisinde e-posta bildirimlerini aşağıdaki şekilde yapılandırın:<global> <email_notification>yes</email_notification> <smtp_server>localhost</smtp_server> <email_from><USERNAME>@gmail.com</email_from> <email_to><RECEIVER_EMAIL></email_to> </global>
Nerede:
-
<email_notification>
e-posta uyarılarının kullanımını değiştirir. -
<smtp_server>
uyarıları iletmek için kullanılacak SMTP sunucusunu tanımlar. -
<email_from>
yapılandırılmış gönderenin e-posta adresini belirtir.<USERNAME>
E-posta adresinizin yapılandırılmış kullanıcı adınızla değiştirin. -
<email_to>
uyarıların alıcısının e-posta adresini belirtir.<RECEIVER_EMAIL>
Alıcının e-posta adresiyle değiştirin.
-
-
Değişiklikleri uygulamak için Wazuh yöneticisini yeniden başlatın:
Systemdsystemctl restart wazuh-manager
SysV Başlatmaservice wazuh-manager restart
Veritabanı Çıktısını Yapılandırma
Wazuh, uyarıları veritabanı sistemlerine iletmeyi destekler. Wazuh yöneticisini, oluşturulan uyarıları bir veritabanına çıktı olarak verecek şekilde yapılandırabilirsiniz. Bu yapılandırmayı elde etmek için, Wazuh yöneticisini kullanmak istediğiniz veritabanı türündeki kaynaklardan derlemelisiniz. Wazuh şu anda MySQL ve PostgreSQL veritabanlarını destekler.
Not: Bu kılavuz, MySQL veya PostgreSQL'i zaten kurduğunuzu ve kullanıcıları ve veritabanlarını nasıl oluşturacağınızı bildiğinizi varsayar.
Ön Koşullar
Yapılandırmak istediğiniz veritabanı sistemine ait geliştirme kütüphanelerini kurmanız ve Wazuh yöneticisini gerekli veritabanı sistemini kullanacak şekilde derlemeniz gerekmektedir.
-
Veritabanı sistemi için geliştirme kütüphanelerini yükleyin:
-
MySQL için :
Yumyum install mysql-devel
APTapt-get install libmysqlclient-dev
-
PostgreSQL için :
Yumyum install postgresql-devel
APTapt-get install libpq-dev
-
-
Bağımlılıkları, bağımlılıkları yükleme bölümünde açıklandığı şekilde yükleyin.
-
Wazuh'un son sürümünü indirin ve çıkarın:
curl -Ls https://github.com/wazuh/wazuh/archive/v4.9.2.tar.gz | tar zx
-
Wazuh dizinine geçmek için aşağıdaki komutları çalıştırın ve kullanılacak veritabanı türünü belirtin,
<DATABASE_TYPE>
değişkenimysql
veyapgsql
ile değiştirin :cd wazuh-4.9.2/src make deps && make TARGET=server DATABASE=<DATABASE_TYPE>
Not: Sistem özelliklerinize bağlı olarak derleme işlemi biraz zaman alabilir.
-
Betiği çalıştırın
install.sh
. Wazuh kaynaklarını kullanarak kurulum sürecinde size rehberlik edecek bir sihirbaz görüntüler:cd .. ./install.sh
-
Script size ne tür bir kurulum istediğinizi sorduğunda
manager
Wazuh yöneticisini kurmak için şunu yazın:1- What kind of installation do you want (manager, agent, local, hybrid, or help)? manager
Not: Kurulum sırasında kurulum yoluna karar verebilirsiniz.
install.sh
dosyasını çalıştırın ve dili seçin, kurulum modunumanager
olarak ayarlayın, ardından kurulum yolunu ayarlayın (Choose where to install Wazuh [/var/ossec]
/var/ossec
). Varsayılan kurulum yolu /var/ossec'tir. Yaygın olarak kullanılan özel bir yol/opt
olabilir.Uyarı: Varsayılandan farklı bir yol seçerseniz kritik bir kurulum dizini seçmemeye son derece dikkat edin. Dizin zaten mevcutsa, yükleyici dizini silmenizi veya Wazuh'u içine kurarak devam etmenizi isteyecektir.
-
Kurulum programı kurulumun sonunda Wazuh'u başlatmak isteyip istemediğinizi sorar. Eğer istemezseniz, aşağıdaki komutla daha sonra başlatabilirsiniz:
Systemdsystemctl restart wazuh-manager
SysV Başlatmaservice wazuh-manager restart
Veritabanı Yapılandırması
Veritabanı sisteminize göre yeni bir veritabanı oluşturun, veritabanı kullanıcısını ayarlayın ve src/os_dbd
kaynak kodun bulunduğu dizinde bulunan şemayı aşağıdaki komutlarla ekleyin:
-
MySQL için :
mysql -u root -p
mysql> CREATE DATABASE Alerts_DB; Query OK, 1 row affected (2.34 sec) mysql> CREATE USER '<DATABASE_USER>'@'<DATABASE_SERVER_IP>' IDENTIFIED BY '<DATABASE_USER_PASSWORD>'; Query OK, 0 rows affected (0.00 sec) mysql> GRANT INSERT,SELECT,UPDATE,CREATE,DELETE,EXECUTE on Alerts_DB.* to '<DATABASE_USER>'@'<DATABASE_SERVER_IP>'; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) mysql> quit;
Yukarıdaki komutlarda aşağıdaki değişkenleri değiştirin:
-
<DATABASE_USER>
Veritabanı sunucusu için oluşturmak istediğiniz kullanıcıyla. -
<DATABASE_SERVER_IP>
veritabanı sunucusunun IP adresi ile. -
<DATABASE_USER_PASSWORD>
veritabanı sunucusuna erişmek için kullanıcı şifresi ile.
mysql -u root -p Alerts_DB < src/os_dbd/mysql.schema
-
-
PostgreSQL için :
sudo -u postgres createuser -P <DATABASE_USER> sudo -u postgres createdb -O <DATABASE_USER> Alerts_DB psql -U <DATABASE_USER> -d Alerts_DB -f src/os_dbd/postgresql.schema
<DATABASE_USER>
Veritabanı sunucusu için oluşturmak istediğiniz kullanıcıyla değiştirin .
Not: Kullanıcıyı oluştururken iki kez parola girmeniz istenecektir. Wazuh yöneticisini yapılandırırken gerekli olduğundan bu parolayı not edin.
Wazuh Yöneticisi Yapılandırması
Wazuh yöneticisini veritabanı sistemine uyarılar ve diğer verileri gönderecek şekilde yapılandırmak için aşağıdaki adımları izleyin.
-
Wazuh sunucusundaki dosya
<ossec_config>
bloğunun içine aşağıdaki kod bloğunu ekleyin :/var/ossec/etc/ossec.conf
-
MySQL için :
<database_output> <hostname><DATABASE_SERVER_IP></hostname> <username><DATABASE_USER></username> <password><DATABASE_USER_PASSWORD></password> <database>Alerts_DB</database> <type>mysql</type> </database_output>
-
PostgreSQL için :
<database_output> <hostname><DATABASE_SERVER_IP></hostname> <username><DATABASE_USER></username> <password><DATABASE_USER_PASSWORD></password> <database>Alerts_DB</database> <type>postgresql</type> </database_output>
Nerede:
-
<hostname>
veritabanı sunucusunun IP adresini belirtir.<DATABASE_SERVER_IP>
Veritabanı sunucusunun IP adresini değiştirin. -
<username>
veritabanına erişecek kullanıcıyı belirtir.<DATABASE_USER>
Yukarıda oluşturulan veritabanı kullanıcısıyla değiştirin. -
<password>
veritabanına erişmek için kullanıcı parolasını belirtir.<DATABASE_USER_PASSWORD>
Yukarıda oluşturulan kullanıcı parolasıyla değiştirin. -
<database>
uyarıların depolanacağı veritabanının adını belirtir. Örneğin,Alerts_DB
yukarıdaki yapılandırmada belirtildiği gibi. -
<type>
veritabanının türünü belirtir (MySQL veya PostgreSQL). İzin verilen değerlermysql
veyapgsql
.
-
-
Değişiklikleri uygulamak için Wazuh yönetici hizmetini yeniden başlatın:
Systemdsystemctl restart wazuh-manager
SysV Başlatma
service wazuh-manager restart
-
Wazuh yöneticisinin veritabanına bağlı olduğunu doğrulamak için aşağıdaki komutu çalıştırın:
grep wazuh-dbd /var/ossec/logs/ossec.log
2024/06/24 14:49:11 wazuh-dbd: INFO: Connected to database 'Alerts_DB' at '127.0.0.1'.
Veritabanı artık Wazuh yöneticisinden veri almaya başlayacaktır.
Olay Günlüğü Tutma
Günlükler, Wazuh aracılarından, harici API'lerden ve ağ cihazlarından alınan ham olaylardır. Wazuh sunucusu tüm günlükleri süresiz olarak depolar. Alan optimizasyonunu en üst düzeye çıkarmak için Wazuh yöneticisi günlük dosyalarını otomatik olarak sıkıştırır.
Wazuh, iki tür günlüğü yönetir, Wazuh sunucusundan gelen dahili günlükler ve izlenen uç noktalardan gelen harici günlükler. Bu günlükler /var/ossec/logs/
Wazuh sunucusunun dizininde süresiz olarak saklanır.
Aşağıdaki tabloda Wazuh sunucusundaki günlük dosyaları ve bunların saklanma yerleri açıklanmaktadır.
Günlük depolama dosyası |
Günlük kaynağı |
Tanım |
---|---|---|
|
Dahili |
Wazuh sunucusu tarafından oluşturulan tüm bilgi düzeyindeki günlükleri depolar. |
|
Dahili |
Wazuh uygulamasının Wazuh sunucu API'leriyle etkileşimi sırasında oluşturulan günlükleri depolar. |
|
Dahili |
Wazuh kümesinin faaliyetleri tarafından oluşturulan günlükleri depolar. |
|
Dahili |
Üçüncü taraf uygulamalar ve sistemlerle arayüz oluştururken Wazuh entegrasyon modülü tarafından oluşturulan günlükleri depolar. |
|
Dahili |
Wazuh Active Response modülü tarafından oluşturulan günlükleri depolar. |
|
Dahili |
Güvenlik duvarı tarafından oluşturulan günlükleri depolar. |
|
Harici |
Üçüncü taraf uygulama ve sistemlerden alınan günlükleri düz metin olarak depolar. |
|
Harici |
Üçüncü taraf uygulamalardan ve sistemlerden alınan günlükleri JSON biçiminde depolar. |
Günlük Sıkıştırma ve Döndürme
Günlük dosyaları bir sistemde önemli disk alanı biriktirebilir ve tüketebilir. Bunu önlemek için Wazuh yöneticisi, günlükleri döndürme işlemi sırasında sıkıştırarak disk kullanımını verimli bir şekilde yönetmeye ve sistem performansını korumaya yardımcı olur. Wazuh yöneticisi günlük dosyalarını günlük olarak veya belirli bir eşiğe (dosya boyutu, yaş, zaman ve daha fazlası) ulaştıklarında sıkıştırır ve arşivler. Günlük döndürme işleminde Wazuh, sürekli olarak yeni olaylar yazmak için orijinal adla yeni bir günlük dosyası oluşturur.
/var/ossec/logs/
Günlük dosyaları günlük olarak sıkıştırılır ve MD5, SHA1 ve SHA256 karma algoritmaları kullanılarak dijital olarak imzalanır. Sıkıştırılmış günlük dosyaları, aşağıdaki biçime göre isimler taşıyan iç içe dizinler içindeki dizinde saklanır :
-
Orijinal günlük dosyasının adını belirten .
log file name
-
year
İçinde bulunulan yılın adını belirten . -
month
Yılın o anki ayının adını belirten .
Örneğin, /var/ossec/logs/archives/archives.log
sıkıştırılmış bir dosya dizinde saklanır . Aşağıdaki komutu çalıştırarak dizinin içeriğini görebilirsiniz:13th APR, 2024
…/archives/2024/Apr/
ls -la /var/ossec/logs/archives/2024/Apr/
total 0 drwxr-x--- 2 wazuh wazuh 62 Apr 17 08:15 . drwxr-x--- 4 wazuh wazuh 28 Apr 12 07:30 .. -rw-r----- 1 wazuh wazuh 0 Apr 13 00:00 ossec-archive-13.log.gz -rw-r----- 1 wazuh wazuh 0 Apr 13 00:00 ossec-archive-13.log.sum
Yukarıdaki çıktıda görüldüğü gibi, sıkıştırılmış dosyanın adına ve onun sağlama toplamına sırasıyla dize ve sonek eklenir.
Yukarıdaki çıktıda görüldüğü gibi, sıkıştırılmış dosyanın adının ve sağlama toplamının başına ossec
dizesi ve day of the current month
son eki sırasıyla eklenir ve eklenir.
İhtiyaçlarınıza bağlı olarak, sıkıştırılmış dosyaları belirli bir süre sonra kaldırılmak üzere yapılandırabilirsiniz. Ayrıca, daha uzun süreli saklama için günlük yönetim sistemlerine, yedekleme sunucularına veya bulut tabanlı depolama aygıtlarına taşıyabilirsiniz.
Olay Günlüklerinin Arşivlenmesi
Olaylar, uygulamalar, uç noktalar ve ağ cihazları tarafından oluşturulan günlüklerdir. Wazuh sunucusu, bir kuralı tetikleyip tetiklemediklerine bakılmaksızın aldığı tüm olayları depolar. Bu olaylar, /var/ossec/logs/archives/archives.log
ve adresinde bulunan Wazuh arşivlerinde depolanır /var/ossec/logs/archives/archives.json
. Güvenlik ekipleri, güvenlik olaylarının geçmiş verilerini incelemek, eğilimleri analiz etmek ve tehditleri avlamak için raporlar oluşturmak amacıyla arşivlenmiş günlükleri kullanır.
Varsayılan olarak, Wazuh arşivleri devre dışıdır çünkü günlükleri Wazuh sunucusunda süresiz olarak depolar. Etkinleştirildiğinde, Wazuh yöneticisi uyumluluk ve adli amaçlar için güvenlik verilerini depolamak ve saklamak üzere arşivlenmiş dosyalar oluşturur.
Not
Wazuh arşivleri, izlenen tüm uç noktalardan toplanan günlükleri tutar, bu nedenle zamanla Wazuh sunucusunda önemli depolama kaynakları tüketir. Bu nedenle, bunları etkinleştirmeden önce disk alanı ve performans üzerindeki etkiyi göz önünde bulundurmak önemlidir.
Arşivlemeyi Etkinleştirme
Wazuh sunucunuzda arşivlemeyi etkinleştirmek için aşağıdaki adımları izleyin.
-
Wazuh yöneticisi yapılandırma dosyasını düzenleyin
/var/ossec/etc/ossec.conf
ve aşağıda vurgulanan alanların değerini şu şekilde ayarlayınyes
:<ossec_config> <global> <jsonout_output>yes</jsonout_output> <alerts_log>yes</alerts_log> <logall>yes</logall> <logall_json>yes</logall_json> ... </ossec_config>
Nerede:
-
<logall>
tüm günlük iletilerinin arşivlenmesini etkinleştirir veya devre dışı bırakır. Etkinleştirildiğinde, Wazuh sunucusu günlükleri bir syslog biçiminde depolar. İzin verilen değerleryes
ve ' dirno
. -
<logall_json>
olayların günlüğe kaydedilmesini etkinleştirir veya devre dışı bırakır. Etkinleştirildiğinde, Wazuh sunucusu olayları bir JSON biçiminde depolar. İzin verilen değerleryes
ve ' dirno
.
İstediğiniz biçime bağlı olarak, vurgulanan alanlardan bir veya her iki değeri de olarak ayarlayabilirsiniz
yes
. Ancak, yalnızca bu<logall_json>yes</logall_json>
seçenek Wazuh panosundaki olayları görselleştirmek için kullanılabilecek bir dizin oluşturmanıza olanak tanır. -
-
Yapılandırma değişikliklerini uygulamak için Wazuh yöneticisini yeniden başlatın:
systemctl restart wazuh-manager
Seçtiğiniz formata bağlı olarak, dosya archives.log
, , veya her ikisi de Wazuh sunucusundaki dizinde archives.json
oluşturulacaktır ./var/ossec/logs/archives/
Wazuh varsayılan bir günlük döndürme politikası kullanır. Günlükleri günlük, aylık ve yıllık bazda döndürerek ve sıkıştırarak kullanılabilir disk alanının korunmasını sağlar.
Dashboard'daki Olayların Görselleştirilmesi
-
Filebeat yapılandırma dosyasını düzenleyin ve from
/etc/filebeat/filebeat.yml
değerini şu şekilde değiştirin :archives: enabled
false
true
archives: enabled: true
-
Yapılandırma değişikliklerini uygulamak için Filebeat'i yeniden başlatın:
systemctl restart filebeat
Wazuh Dashboard
-
Ana menüyü açmak için sol üst menü simgesine tıklayın. Pano yönetimi'ni genişletin ve Pano yönetimi > Dizin desenleri'ne gidin . Sonra, Dizin deseni oluştur'a tıklayın . Dizin deseni adı olarak kullanın
wazuh-archives-*
ve Zaman alanı açılır listesindetimestamp
ayarlayın .Aşağıdaki GIF, endeks deseninin nasıl oluşturulacağını göstermektedir.
-
Gösterge tablosundaki etkinlikleri görüntülemek için sol üst menü simgesine tıklayın ve Keşfet'e gidin . Dizin desenini olarak değiştirin
wazuh-archives-*
.
Use Case: İmzalanmış İkili Proxy Yürütmeyi Algılama
T1218.010
İmzalanmış ikili proxy yürütme, tehdit aktörlerinin kötü amaçlı kod çalıştırmak için güvenilir ikili dosyaları kullanarak uygulama beyaz listesini atlatmak için kullandıkları bir tekniktir. Bu teknik , MITRE ATT&CK çerçevesine dayalı olarak tanımlanmıştır .
Bu kullanım örneğinde, regsvr32.exe
uygulama denetimlerini atlatmak için Windows yardımcı programı 'nın nasıl kötüye kullanılacağını gösteriyoruz. Daha sonra bu teknikle ilgili şüpheli etkinliği tespit etmek için Wazuh arşivlerindeki olayları analiz ediyoruz.
Windows 11 Yapılandırması
Windows 11 uç noktasına Sysmon ve Atomic Red Team'i (ART) yüklemek ve imzalanmış ikili proxy yürütme tekniğini taklit etmek için aşağıdaki adımları uygulayın.
Sysmon Entegrasyonu
Windows 11 uç noktasına Sysmon'ı yüklemek ve yapılandırmak için aşağıdaki adımları uygulayın.
-
Sysmon yapılandırma dosyasını indirin: sysmonconfig.xml .
-
İndirilen yapılandırma dosyasıyla PowerShell'i yönetici olarak kullanarak Sysmon'u yükleyin:
> .\sysmon64.exe -accepteula -i .\sysmonconfig.xml
-
Sysmon günlüklerinin toplanacağı konumu belirtmek için
<ossec_config>
Wazuh aracı dosyasına blok içinde aşağıdaki yapılandırmayı ekleyin :C:\Program Files (x86)\ossec-agent\ossec.conf
<localfile> <location>Microsoft-Windows-Sysmon/Operational</location> <log_format>eventchannel</log_format> </localfile>
-
Değişiklikleri uygulamak için Wazuh aracısını yeniden başlatın ve aşağıdaki PowerShell komutunu yönetici olarak çalıştırın:
> Restart-Service -Name Wazuh
Atomic Red Team Kurulumu
PowerShell'i yönetici olarak kullanarak Windows 11 uç noktasına Atomic Red Team PowerShell modülünü yüklemek için aşağıdaki adımları uygulayın.
-
Varsayılan olarak, PowerShell çalışan betiklerin yürütülmesini kısıtlar. Varsayılan yürütme politikasını şu şekilde değiştirmek için aşağıdaki komutu çalıştırın
RemoteSigned
:> Set-ExecutionPolicy RemoteSigned
-
ART yürütme çerçevesini yükleyin:
> IEX (IWR 'https://raw.githubusercontent.com/redcanaryco/invoke-atomicredteam/master/install-atomicredteam.ps1' -UseBasicParsing); > Install-AtomicRedTeam -getAtomics
-
Fonksiyonu kullanmak için ART modülünü içe aktarın
Invoke-AtomicTest
:> Import-Module "C:\AtomicRedTeam\invoke-atomicredteam\Invoke-AtomicRedTeam.psd1" -Force
-
Invoke-AtomicTest
Tekniğin ayrıntılarını göstermek için fonksiyonu kullanınT1218.010
:> Invoke-AtomicTest T1218.010 -ShowDetailsBrief
PathToAtomicsFolder = C:\AtomicRedTeam\atomics T1218.010-1 Regsvr32 local COM scriptlet execution T1218.010-2 Regsvr32 remote COM scriptlet execution T1218.010-3 Regsvr32 local DLL execution T1218.010-4 Regsvr32 Registering Non DLL T1218.010-5 Regsvr32 Silent DLL Install Call DllRegisterServer
Saldırı Emülasyonu
Windows 11 uç noktasında imzalı ikili proxy yürütme tekniğini taklit edin.
-
Testi gerçekleştirmek için aşağıdaki komutu Powershell'i yönetici olarak çalıştırın
T1218.010
:> Invoke-AtomicTest T1218.010
PathToAtomicsFolder = C:\AtomicRedTeam\atomics Executing test: T1218.010-1 Regsvr32 local COM scriptlet execution Done executing test: T1218.010-1 Regsvr32 local COM scriptlet execution Executing test: T1218.010-2 Regsvr32 remote COM scriptlet execution Done executing test: T1218.010-2 Regsvr32 remote COM scriptlet execution Executing test: T1218.010-3 Regsvr32 local DLL execution Done executing test: T1218.010-3 Regsvr32 local DLL execution Executing test: T1218.010-4 Regsvr32 Registering Non DLL Done executing test: T1218.010-4 Regsvr32 Registering Non DLL Executing test: T1218.010-5 Regsvr32 Silent DLL Install Call DllRegisterServer Done executing test: T1218.010-5 Regsvr32 Silent DLL Install Call DllRegisterServer
Exploitin başarılı bir şekilde yürütülmesinin ardından birkaç hesap makinesi örneği açılacaktır.
Wazuh Dashboard
Wazuh arşivlerini, avlanan teknikle ilgili olayları sorgulamak ve görüntülemek için kullanın. Arşivlere danışırken bazı olayların Wazuh panosunda uyarı olarak yakalanmış olabileceğini unutmamak önemlidir. Algılama yapılmayan uyarılar ve olaylar dahil olmak üzere Wazuh arşivlerinden gelen bilgileri kullanarak özel gereksinimlerinize göre özel kurallar oluşturabilirsiniz.
-
Testin gerçekleştirildiği son beş dakika içinde meydana gelen olayları görüntülemek için bir zaman aralığı filtresi uygulayın.
agent.id
,agent.ip
veya kullanarak belirli Windows uç noktasından günlükleri görüntülemek için filtre uygulayınagent.name
.
Daha önceki saldırı emülasyonuyla bir korelasyon belirlemek için inceleyebileceğiniz birden fazla isabet vardır. Örneğin, test sırasında Windows uç noktasında gözlemlenene benzer bir hesap makinesi oluşturma olayı fark edebilirsiniz. -
regsvr32
Olaylarla ilgili işlemleri kolaylaştırmak ve araştırmak için arama çubuğuna yazınregsvr32
. -
İlgili alanları görüntülemek için herhangi bir olayı genişletin.
-
Arşivlenmiş günlüklerin JSON formatını görüntülemek için JSON sekmesine tıklayın.
Komutlar, hizmetler, yollar ve daha fazlası gibi etkinliklere ilişkin belirli ayrıntıları JSON günlüğünden çıkarabilir ve doğrulayabilirsiniz. Aşağıda, ilk işlem oluşturmayı ve yürütülen komutla ilgili öznitelikleri tanımlayabilirsiniz:"data": { "win": { "eventdata": { "originalFileName": "REGSVR32.EXE", "image": "C:\\\\Windows\\\\SysWOW64\\\\regsvr32.exe", "product": "Microsoft® Windows® Operating System", "parentProcessGuid": "{45cd4aff-35fc-6463-6903-000000001300}", "description": "Microsoft(C) Register Server", "logonGuid": "{45cd4aff-2ce5-6463-2543-290000000000}", "parentCommandLine": "C:\\\\Windows\\\\system32\\\\regsvr32.exe /s /i C:\\\\AtomicRedTeam\\\\atomics\\\\T1218.010\\\\bin\\\\AllTheThingsx86.dll", "processGuid": "{45cd4aff-35fc-6463-6a03-000000001300}", "logonId": "0x294325", "parentProcessId": "7652", "processId": "4064", "currentDirectory": "C:\\\\Users\\\\THECOT~1\\\\AppData\\\\Local\\\\Temp\\\\", "utcTime": "2023-05-16 07:51:24.512", "hashes": "SHA1=8E2C6B7F92A560E0E856F8533D62A1B10797828F,MD5=5F7264BD237FAEA46FB240785B78AFAC,SHA256=D9BE711BE2BF88096BB91C25DF775D90B964264AB25EC49CF04711D8C1F089F6,IMPHASH=73F03653209E82368127EB826216A6AD", "parentImage": "C:\\\\Windows\\\\System32\\\\regsvr32.exe", "ruleName": "technique_id=T1117,technique_name=Regsvr32", "company": "Microsoft Corporation", "commandLine": " /s /i C:\\\\AtomicRedTeam\\\\atomics\\\\T1218.010\\\\bin\\\\AllTheThingsx86.dll", "integrityLevel": "High", "fileVersion": "10.0.22621.1 (WinBuild.160101.0800)", "user": "Windows11\\\\Testuser", "terminalSessionId": "2", "parentUser": "Windows11\\\\Testuser" }, "system": { "eventID": "1", "keywords": "0x8000000000000000", "providerGuid": "{5770385f-c22a-43e0-bf4c-06f5698ffbd9}", "level": "4", "channel": "Microsoft-Windows-Sysmon/Operational", "opcode": "0", "message": "\"Process Create:\r\nRuleName: technique_id=T1117,technique_name=Regsvr32\r\nUtcTime: 2023-05-16 07:51:24.512\r\nProcessGuid: {45cd4aff-35fc-6463-6a03-000000001300}\r\nProcessId: 4064\r\nImage: C:\\Windows\\SysWOW64\\regsvr32.exe\r\nFileVersion: 10.0.22621.1 (WinBuild.160101.0800)\r\nDescription: Microsoft(C) Register Server\r\nProduct: Microsoft® Windows® Operating System\r\nCompany: Microsoft Corporation\r\nOriginalFileName: REGSVR32.EXE\r\nCommandLine: /s /i C:\\AtomicRedTeam\\atomics\\T1218.010\\bin\\AllTheThingsx86.dll\r\nCurrentDirectory: C:\\Users\\THECOT~1\\AppData\\Local\\Temp\\\r\nUser: Windows11\\Testuser\r\nLogonGuid: {45cd4aff-2ce5-6463-2543-290000000000}\r\nLogonId: 0x294325\r\nTerminalSessionId: 2\r\nIntegrityLevel: High\r\nHashes: SHA1=8E2C6B7F92A560E0E856F8533D62A1B10797828F,MD5=5F7264BD237FAEA46FB240785B78AFAC,SHA256=D9BE711BE2BF88096BB91C25DF775D90B964264AB25EC49CF04711D8C1F089F6,IMPHASH=73F03653209E82368127EB826216A6AD\r\nParentProcessGuid: {45cd4aff-35fc-6463-6903-000000001300}\r\nParentProcessId: 7652\r\nParentImage: C:\\Windows\\System32\\regsvr32.exe\r\nParentCommandLine: C:\\Windows\\system32\\regsvr32.exe /s /i C:\\AtomicRedTeam\\atomics\\T1218.010\\bin\\AllTheThingsx86.dll\r\nParentUser: Windows11\\Testuser\"", "version": "5", "systemTime": "2023-05-16T07:51:24.5131006Z", "eventRecordID": "88509", "threadID": "3960", "computer": "Windows11", "task": "1", "processID": "3156", "severityValue": "INFORMATION", "providerName": "Microsoft-Windows-Sysmon" } } },
Diğer ilgili olaylar üzerinde daha fazla araştırma yaparak, regsvr32 yardımcı programı tarafından oluşturulan bir işlem enjeksiyon olayını ve yüklenen görüntüyü görebilirsiniz:
"data": { "win": { "eventdata": { "originalFileName": "mscoree.dll", "image": "C:\\\\Windows\\\\SysWOW64\\\\regsvr32.exe", "product": "Microsoft® Windows® Operating System", "signature": "Microsoft Windows", "imageLoaded": "C:\\\\Windows\\\\SysWOW64\\\\mscoree.dll", "description": "Microsoft .NET Runtime Execution Engine", "signed": "true", "signatureStatus": "Valid", "processGuid": "{45cd4aff-35fc-6463-6a03-000000001300}", "processId": "4064", "utcTime": "2023-05-16 07:51:24.774", "hashes": "SHA1=52A6AB3E468C4956C00707DF80C7609EEE74D9AD,MD5=BEE4D173DA78E4D3AC9B54A95C6A464A,SHA256=36B0BA10BBB6575CA4A4CBDE585F6E19B86B3A80014B3C3D8335F861D8AEBFAB,IMPHASH=47F306C12509ADBBC266F7DA43529A4D", "ruleName": "technique_id=T1055,technique_name=Process Injection", "company": "Microsoft Corporation", "fileVersion": "10.0.22621.1 (WinBuild.160101.0800)", "user": "Windows11\\\\Testuser" }, "system": { "eventID": "7", "keywords": "0x8000000000000000", "providerGuid": "{5770385f-c22a-43e0-bf4c-06f5698ffbd9}", "level": "4", "channel": "Microsoft-Windows-Sysmon/Operational", "opcode": "0", "message": "\"Image loaded:\r\nRuleName: technique_id=T1055,technique_name=Process Injection\r\nUtcTime: 2023-05-16 07:51:24.774\r\nProcessGuid: {45cd4aff-35fc-6463-6a03-000000001300}\r\nProcessId: 4064\r\nImage: C:\\Windows\\SysWOW64\\regsvr32.exe\r\nImageLoaded: C:\\Windows\\SysWOW64\\mscoree.dll\r\nFileVersion: 10.0.22621.1 (WinBuild.160101.0800)\r\nDescription: Microsoft .NET Runtime Execution Engine\r\nProduct: Microsoft® Windows® Operating System\r\nCompany: Microsoft Corporation\r\nOriginalFileName: mscoree.dll\r\nHashes: SHA1=52A6AB3E468C4956C00707DF80C7609EEE74D9AD,MD5=BEE4D173DA78E4D3AC9B54A95C6A464A,SHA256=36B0BA10BBB6575CA4A4CBDE585F6E19B86B3A80014B3C3D8335F861D8AEBFAB,IMPHASH=47F306C12509ADBBC266F7DA43529A4D\r\nSigned: true\r\nSignature: Microsoft Windows\r\nSignatureStatus: Valid\r\nUser: Windows11\\Testuser\"", "version": "3", "systemTime": "2023-05-16T07:51:24.7768916Z", "eventRecordID": "88510", "threadID": "3960", "computer": "Windows11", "task": "7", "processID": "3156", "severityValue": "INFORMATION", "providerName": "Microsoft-Windows-Sysmon" } } },
-
data.win.eventdata.ruleName:technique_id=T1218.010,technique_name=Regsvr32
Teknik kimliğini görmek için aşağıda gösterilen filtreyi uygulayın. -
İlgili alanları görüntülemek için olayı genişletin.
-
Arşivlenmiş günlüklerin JSON formatını görüntülemek için JSON sekmesine tıklayın.
Aşağıdaki kayıttan, olayı analiz etmeyi kolaylaştıran daha yapılandırılmış ayrıntılar çıkarabilirsiniz:"data": { "win": { "eventdata": { "destinationPort": "443", "image": "C:\\\\Windows\\\\System32\\\\regsvr32.exe", "sourcePort": "63754", "initiated": "true", "destinationIp": "1.1.123.23", "protocol": "tcp", "processGuid": "{45cd4aff-36b5-645a-9e07-000000000e00}", "sourceIp": "192.168.43.16", "processId": "4704", "utcTime": "2023-05-09 21:19:25.361", "ruleName": "technique_id=T1218.010,technique_name=Regsvr32", "destinationIsIpv6": "false", "user": "Windows11\\\\Testuser", "sourceIsIpv6": "false" }, "system": { "eventID": "3", "keywords": "0x8000000000000000", "providerGuid": "{5770385f-c22a-43e0-bf4c-06f5698ffbd9}", "level": "4", "channel": "Microsoft-Windows-Sysmon/Operational", "opcode": "0", "message": "\"Network connection detected:\r\nRuleName: technique_id=T1218.010,technique_name=Regsvr32\r\nUtcTime: 2023-05-09 21:19:25.361\r\nProcessGuid: {45cd4aff-36b5-645a-9e07-000000000e00}\r\nProcessId: 4704\r\nImage: C:\\Windows\\System32\\regsvr32.exe\r\nUser: Windows11\\Testuser\r\nProtocol: tcp\r\nInitiated: true\r\nSourceIsIpv6: false\r\nSourceIp: 192.168.43.16\r\nSourceHostname: -\r\nSourcePort: 63754\r\nSourcePortName: -\r\nDestinationIsIpv6: false\r\nDestinationIp: 185.199.108.133\r\nDestinationHostname: -\r\nDestinationPort: 443\r\nDestinationPortName: -\"", "version": "5", "systemTime": "2023-05-09T12:04:07.0231156Z", "eventRecordID": "63350", "threadID": "3096", "computer": "Windows11", "task": "3", "processID": "3156", "severityValue": "INFORMATION", "providerName": "Microsoft-Windows-Sysmon" } } },
Algılama mantığını geliştirmek ve özel kod çözücüler ve kurallar yazmak için Wazuh arşivlerinden gelen olayları kullanabilirsiniz. Ayrıca wazuh-logtest
, kuralları sağlanan günlüklere göre test etmek ve doğrulamak için hazır aracı da kullanabilirsiniz.
Harici API entegrasyonu
Wazuh Integrator modülü, Wazuh'un Slack , PagerDuty , VirusTotal , Shuffle ve Maltiverse gibi harici API'lere ve uyarı araçlarına bağlanmasını sağlar . Integrator modülünü diğer yazılımlara bağlanacak şekilde de yapılandırabilirsiniz. Bu entegrasyonlar, güvenlik yöneticilerinin orkestrasyonu geliştirmesini, yanıtları otomatikleştirmesini ve siber tehditlere karşı savunmalarını güçlendirmesini sağlar.
Yapılandırma
Bir entegrasyonu yapılandırmak için Wazuh sunucusundaki /var/ossec/etc/ossec.conf
dosyasındaki <ossec_config>
içindeki aşağıdaki yapılandırmayı ekleyin :
<integration> <name> </name> <hook_url> </hook_url> <!-- Required for Slack, Shuffle, and Maltiverse --> <api_key> </api_key> <!-- Required for PagerDuty, VirusTotal, and Maltiverse --> <alert_format>json</alert_format> <!-- Required for Slack, PagerDuty, VirusTotal, Shuffle, and Maltiverse --> <!-- Optional filters --> <rule_id> </rule_id> <level> </level> <group> </group> <event_location> </event_location> <options> </options> </integration>
Nerede:
-
<name>
entegre edilecek hizmetin adını belirtir. İzin verilen değerlerslack
,pagerduty
,virustotal
,shuffle
, ' dirmaltiverse
. Özel entegrasyonlar için, ad ile başlayan herhangi bir dize olmalıdırcustom-
. -
<hook_url>
entegre edilen yazılımla iletişim için kullanılan URL'dir. Slack, Shuffle ve Maltiverse entegrasyonları için zorunludur. -
<api_key>
PagerDuty, VirusTotal veya Maltiverse API'sinden almış olacağınız anahtardır. Bu PagerDuty, VirusTotal ve Maltiverse için zorunludur. -
<alert_format>
uyarı dosyasını JSON biçiminde yazar. Integrator modülü, alan değerlerini almak için bu uyarı dosyasını kullanır. İzin verilen değerjson
. -
<rule_id>
kural kimliğine göre uyarıları filtreler. İzin verilen değerler virgülle ayrılmış kural kimlikleridir. -
<level>
0
uyarıları kural düzeyine göre filtreler, böylece yalnızca belirtilen düzey veya üstündeki uyarılar gönderilir. İzin verilen değer, ile arasındaki herhangi bir uyarı düzeyidir16
. -
<group>
uyarıları kural grubuna göre filtreler. VirusTotal entegrasyonu için yalnızca syscheck grubundan kurallar kullanılabilir. İzin verilen değerler herhangi bir kural grubu veya virgülle ayrılmış kural gruplarıdır. -
<event_location>
uyarıları olayın nereden kaynaklandığına göre filtreler. İzin verilen değer herhangi bir sregex ifadesidir. -
<options>
JSON nesnesinde sağlanan bilgilere göre önceki alanların üzerine yazar veya özelleştirme alanları ekler. İzin verilen değer json'dur.
Not: Yapılandırma dosyasında herhangi bir değişiklik yaptığınızda Wazuh yöneticisini yeniden başlatın. Bu, değişikliklerin etkili olmasını sağlayacaktır.
Aşağıdaki komutla komut satırı arayüzü üzerinden Wazuh yöneticisini yeniden başlatın:
Systemd
systemctl restart wazuh-manager
SysV Başlatma
service wazuh-manager restart
İsteğe Bağlı Filtreler
Wazuh Integrator modülü, hangi uyarıların harici platformlara gönderileceğini belirlemek için isteğe bağlı filtre alanlarını kullanır. Yalnızca filtre koşullarını karşılayan uyarılar gönderilir. Hiçbir filtre belirtilmezse, tüm uyarılar gönderilir.
Filtreler ayarlanırken aşağıdaki hususlara dikkat edilmelidir:
-
Virgülle ayrılmış liste etiketini kullanarak birden fazla grup adı belirtmek mümkündür
<group>
. Uyarının grubu listedeki gruplardan herhangi biriyle eşleşirse uyarı gönderilir, aksi takdirde yok sayılır. -
Virgülle ayrılmış liste etiketini kullanarak birden fazla kural kimliği belirtmek mümkündür
<rule_id>
. Uyarı, uyarının kural kimliği listedeki herhangi bir kimlikle eşleşirse gönderilir, aksi takdirde yok sayılır. -
Daha önce açıklanan alanları birlikte belirtmek mümkündür. Uyarı, hem uyarının kural kimliği hem de grubu listelerdeki kimliklerden ve gruplardan herhangi biriyle eşleşirse gönderilir, aksi takdirde yok sayılır.
Not: Yukarıda belirtilen grup ve kural tanımlayıcılarının dikkatlice kontrol edilmesi önerilir, çünkü bunların yanlış tanımlanması entegrasyona beklenen uyarıların gönderilmemesine neden olacaktır.
Slack
Slack, kuruluşlar içinde iletişimi ve ekip çalışmasını kolaylaştıran bulut tabanlı bir işbirliği platformudur. Bu entegrasyon, Slack gelen webhook'larını kullanır ve güvenlik uzmanlarının gerçek zamanlı uyarıları doğrudan belirlenmiş kanallar içinde almalarını sağlar.
Bu entegrasyonu kurmak için aşağıdaki adımları izleyin:
-
Gelen webhook'ları etkinleştirin ve Slack kanalınız için bir tane oluşturun. Bunun için gelen webhook'lar hakkındaki Slack rehberini izleyin .
-
Aşağıdaki yapılandırmayı
/var/ossec/etc/ossec.conf
Wazuh sunucusundaki dosyaya ekleyin.<WEBHOOK_URL>
Gelen webhook'unuzla değiştirin.<ossec_config> <integration> <name>slack</name> <hook_url><SLACK_WEBHOOK_URL></hook_url> <!-- Replace with your Slack hook URL --> <alert_format>json</alert_format> </integration> </ossec_config>
Not: Seçenekler etiketini kullanarak özelleştirme alanlarıyla bir JSON nesnesi ayarlayabilirsiniz . Kullanılabilir özelleştirme alanları hakkında bilgi için Slack API referansını ziyaret edin.
-
Değişiklikleri uygulamak için Wazuh yöneticisini yeniden başlatın:
Systemdsystemctl restart wazuh-manager
SysV Başlatmaservice wazuh-manager restart
Yapılandırma tamamlandıktan sonra seçili kanalda uyarılar gösterilmeye başlanır.

PagerDuty
PagerDuty, BT departmanları için uygun bir SaaS olay müdahale platformudur. PagerDuty, programlara ve yükseltme politikalarına göre uyarıları doğru kişilere veya ekiplere yükselterek olay müdahale iş akışlarını yürütür. PagerDuty entegrasyonu, Wazuh uyarılarını Olay Pano'suna iletmek için PagerDuty API'sini kullanır.
Bu entegrasyonu kurmak için aşağıdaki adımları izleyin:
-
Yeni bir PagerDuty servisi oluşturarak Events API v2 entegrasyon anahtarınızı edinin .
-
Aşağıdaki yapılandırmayı
/var/ossec/etc/ossec.conf
Wazuh sunucusundaki dosyaya ekleyin.PAGERDUTY_API_KEY
PagerDuty entegrasyon anahtarınızla değiştirin. Kural düzeyi filtresi isteğe bağlıdır ve bunu kaldırabilir veya entegrasyon için başka bir düzey değeri ayarlayabilirsiniz.<ossec_config> <integration> <name>pagerduty</name> <api_key><PAGERDUTY_API_KEY></api_key> <!-- Replace with your PagerDuty API key --> <level>10</level> <alert_format>json</alert_format> <!-- New mandatory parameter since v4.7.0 --> </integration> </ossec_config>
Not: Seçenekler etiketini kullanarak özelleştirme alanlarıyla bir JSON nesnesi ayarlayabilirsiniz . Kullanılabilir özelleştirme alanları hakkında bilgi için PagerDuty API referansını ziyaret edin.
-
Değişiklikleri uygulamak için Wazuh yöneticisini yeniden başlatın:
Systemdsystemctl restart wazuh-manager
SysV Başlatmaservice wazuh-manager restart
Yapılandırma tamamlandıktan sonra Pagerduty panosunda uyarılar gösterilmeye başlar.

VirusTotal
VirusTotal , virüsleri, solucanları, truva atlarını ve diğer kötü amaçlı içerikleri tespit etmek için dosyaları ve URL'leri analiz eden bir çevrimiçi hizmettir. Bu entegrasyon, VirusTotal veritabanını kullanarak kötü amaçlı dosyaların incelenmesine olanak tanır. Bununla ilgili daha fazla bilgiyi VirusTotal entegrasyon bölümünde bulabilirsiniz.
Bu entegrasyonu kurmak için şu adımları izleyin:
-
API anahtarınızı VirusTotal API anahtarı sayfasından alın.
-
/var/ossec/etc/ossec.conf
Wazuh sunucusunda düzenleme yapın ve aşağıdaki gibi bir yapılandırma bloğu ekleyin.<VIRUSTOTAL_API_KEY>
VirusTotal API anahtarınızla değiştirin.<integration> <name>virustotal</name> <api_key><VIRUSTOTAL_API_KEY></api_key> <!-- Replace with your VirusTotal API key --> <group>syscheck</group> <alert_format>json</alert_format> </integration>
-
Değişiklikleri uygulamak için Wazuh yöneticisini yeniden başlatın:
Systemdsystemctl restart wazuh-manager
SysV Başlatmaservice wazuh-manager restart
Shuffle
Shuffle, SOAR'ın açık kaynaklı bir yorumudur. Tak ve çalıştır uygulamalarıyla kuruluş genelinde veri aktarımı yapar. Shuffle entegrasyonu, bir webhook kullanarak Wazuh uyarılarının bir Shuffle İş Akışına iletilmesine olanak tanır .
Bu entegrasyonu kurmak için aşağıdakileri yapın:
-
Shuffle'a gidin, E-posta uygulamasını kullanarak bir İş Akışı oluşturun ve sürümü seçin.
-
E-posta yapılandırmasında Alıcıları ve Konuyu ayarlayın .
$exec
Uyarı bilgilerini eklemek için Gövde'ye koyun. -
İş Akışına bir webhook ekleyin.
-
Webhook'u başlatın ve webhook URL'sini kopyalayın.
-
/var/ossec/etc/ossec.conf
Wazuh sunucusunda düzenleme yapın ve aşağıdaki gibi bir yapılandırma bloğu ekleyin. -
Shuffle webhook ID ile değiştirin
<SHUFFLE_WEBHOOK_ID>
. Kural düzeyi filtresi isteğe bağlıdır. Bunu kaldırabilir veya entegrasyon için başka bir düzey değeri ayarlayabilirsiniz.<integration> <name>shuffle</name> <hook_url>https://shuffler.io/api/v1/hooks/<SHUFFLE_WEBHOOK_ID></hook_url> <!-- Replace with your Shuffle hook URL --> <level>3</level> <alert_format>json</alert_format> </integration>
Not: Seçenekler etiketini kullanarak özelleştirme alanlarıyla bir JSON nesnesi ayarlayabilirsiniz . Kullanılabilir özelleştirme alanları hakkında bilgi için Shuffle API referansını ziyaret edin.
-
Değişiklikleri uygulamak için Wazuh yöneticisini yeniden başlatın:
Systemdsystemctl restart wazuh-manager
SysV Başlatmaservice wazuh-manager restart
Yapılandırma tamamlandıktan sonra e-posta gelen kutunuzda uyarılar gösterilmeye başlar.

Maltiverse
Maltiverse, Tehlike Göstergelerini (IoC'ler) dizinlemek ve aramak için açık kaynaklı ve işbirlikçi bir platformdur. Yüzden fazla genel, özel ve topluluk tehdit istihbarat kaynağından bilgi toplar.
Bu entegrasyon, Maltiverse API aracılığıyla Wazuh uyarılarındaki IoC'leri tanımlar. Maltiverse verileriyle zenginleştirilmiş yeni uyarılar üretir. Maltiverse veri alanları, ECS standardının (Elastic Common Schema) tehdit sınıflandırmasına dayanır.
Bu entegrasyonu kurmak için aşağıdaki adımları izleyin:
-
API anahtarınızı Maltiverse sayfasından alın.
-
/var/ossec/etc/ossec.conf
Wazuh sunucusunda düzenleme yapın ve aşağıdaki gibi bir yapılandırma bloğu ekleyin.<MALTIVERSE_API_KEY>
Maltiverse API anahtarınızla değiştirin. Kural düzeyi filtresi isteğe bağlıdır. Bunu kaldırabilir veya entegrasyon için başka bir düzey değeri ayarlayabilirsiniz.<integration> <name>maltiverse</name> <hook_url>https://api.maltiverse.com</hook_url> <level>3</level> <api_key><MALTIVERSE_API_KEY></api_key> <!-- Replace with your Maltiverse API key --> <alert_format>json</alert_format> </integration>
-
Değişiklikleri uygulamak için Wazuh yöneticisini yeniden başlatın:
Systemdsystemctl restart wazuh-manager
SysV Başlatmaservice wazuh-manager restart
Yapılandırma tamamlandıktan sonra, varsa zenginleştirilmiş uyarılar Wazuh Pano'sunda gösterilmeye başlar.

Özel Entegrasyon
Wazuh Integrator modülü, Wazuh'u diğer harici yazılımlarla bağlar. Bu, Wazuh uyarı sisteminin entegrasyon betikleri aracılığıyla yazılım ürünlerinin API'leriyle entegre edilmesiyle elde edilir.
/var/ossec/etc/ossec.conf
Aşağıda özel entegrasyon için dosyadaki bir yapılandırma bloğunun örneği verilmiştir .
<!--Custom external Integration --> <integration> <name>custom-integration</name> <hook_url><WEBHOOK></hook_url> <level>10</level> <group>multiple_drops,authentication_failures</group> <api_key><API_KEY></api_key> <!-- Replace with your external service API key --> <alert_format>json</alert_format> <options>{"data": "Custom data"}</options> <!-- Replace with your custom JSON object --> </integration>
Yer değiştirmek:
-
<WEBHOOK>
harici uygulamanın webhook URL'si ile. -
<API_KEY>
harici uygulamanın API anahtarı ile.
Entegrasyon Betiği Oluşturma
Entegrasyon betiği oluştururken aşağıdaki talimatları izlemeniz önerilir:
-
/var/ossec/integrations/
Yapılandırma bloğunda belirtilen adla aynı adı taşıyan betiği Wazuh sunucusundaki dizinde oluşturun . -
Komut dosyası yürütme izinleri içermeli ve
root
grubun kullanıcısına ait olmalıdırwazuh
. Aşağıdaki komutlar/var/ossec/integrations/custom-script
komut dosyasına izinler ve sahiplik atar.chmod 750 /var/ossec/integrations/custom-script chown root:wazuh /var/ossec/integrations/custom-script
-
Entegrasyon betiğinin ilk satırı yorumlayıcısını belirtmelidir, aksi takdirde Wazuh betiği nasıl okuyacağını ve çalıştıracağını bilemez. Aşağıdaki örnek satır Python yorumlayıcısını belirtir:
#!/usr/bin/env python
-
Komut dosyası aşağıdaki argümanları kontrol eder çünkü onlardan yapılandırma seçenekleri alacaktır.
-
İlk parametre uyarıyı içeren dosyanın konumunu içerir. Parametre
/logs/alerts/alerts.json
Wazuh Integrator modülünde varsayılan olarak geçirilen dosyadır:alert_file = open(sys.argv[1])
-
api_key
İkinci parametre, blokta tanımlanan seçenek olan API anahtarını içerir<integration>
:api_key = sys.argv[2]
-
hook_url
Üçüncü parametre, blokta tanımlanan seçenek olan webhook URL'sini içerir<integration>
:hook_url = sys.argv[3]
Yukarıdakilerden hiçbiri belirtilmezse parametreler boş alınacaktır.
-
-
İlk parametrede belirtilen dosyanın içeriğini okuyun ve uyarıdan entegrasyon için ilgili alanları çıkarın. Seçenekte JSON kullanılmışsa
alert_format
, bilginin bir JSON nesnesi olarak yüklenmesi gerekir.alert_level = alert_json['rule']['level'] ruleid = alert_json['rule']['id'] description = alert_json['rule']['description'] agentid = alert_json['agent']['id'] agentname = alert_json['agent']['name'] path = alert_json['syscheck']['path']
/logs/alerts/alerts.json
Entegrasyon betiğinin geliştirilmesine başlamadan önce, yorumlanacak uyarıların formatını bulmak için dosyayı kontrol etmenizi öneririz .
Indexer Entegrasyonu
Dizinleyici entegrasyonu, verileri Wazuh yöneticisinden Wazuh dizinleyicisine veya üçüncü taraf dizinleyicilere ileten veri ileticilerini tanımlar.
Wazuh Indexer
Bu entegrasyon, Wazuh yöneticisi ile Wazuh dizinleyicisi arasında bir köprü sağlar. Verileri dizinleme için Wazuh yöneticisinden Wazuh dizinleyicisine iletir. Wazuh dizinleyici entegrasyonu iki ileticiden oluşur: Filebeat ve Wazuh dizinleyici bağlayıcısı .
Filebeat
Bu bileşen, Wazuh yöneticisi tarafından işlenen uyarıları ve arşivlenmiş olayları indeksleme ve depolama için Wazuh indeksleyicisine güvenli bir şekilde iletmek üzere tasarlanmış hafif bir veri taşıyıcısıdır. Wazuh analiz motorunun çıktısını okur ve olayları gerçek zamanlı olarak gönderir.
Yapılandırma
Aşağıdaki kod bloğu, Wazuh sunucu dosyasındaki varsayılan Filebeat yapılandırmasını gösterir /etc/filebeat/filebeat.yml
. Bu yapılandırma dosyası, adım adım Wazuh sunucu kurulumu gerçekleştirilirken indirilir. Filebeat'i nasıl indireceğinizi, yapılandıracağınızı ve yükleyeceğinizi öğrenmek için, belgelerdeki Filebeat'i yapılandırma bölümüne bakın.
# Wazuh - Filebeat configuration file output.elasticsearch.hosts: - 127.0.0.1:9200 # - <elasticsearch_ip_node_2>:9200 # - <elasticsearch_ip_node_3>:9200 output.elasticsearch: protocol: https username: ${username} password: ${password} ssl.certificate_authorities: - /etc/filebeat/certs/root-ca.pem ssl.certificate: "/etc/filebeat/certs/wazuh-server.pem" ssl.key: "/etc/filebeat/certs/wazuh-server-key.pem" setup.template.json.enabled: true setup.template.json.path: '/etc/filebeat/wazuh-template.json' setup.template.json.name: 'wazuh' setup.ilm.overwrite: true setup.ilm.enabled: false filebeat.modules: - module: wazuh alerts: enabled: true Archives: logging.level: info logging.to_files: true logging.files: path: /var/log/filebeat name: filebeat keepfiles: 7 permissions: 0644 logging.metrics.enabled: false seccomp: default_action: allow syscalls: - action: allow names: - rseq
Nerede:
-
<output.elasticsearch.hosts>
bağlanılacak Wazuh dizinleyici düğümlerinin listesini belirtir. IP adreslerini veya ana bilgisayar adlarını kullanabilirsiniz. Varsayılan olarak, ana bilgisayar localhost, olarak ayarlanmıştır127.0.0.1:9200
. Bunu uygun şekilde Wazuh dizinleyici adresinizle değiştirin. Birden fazla Wazuh dizinleyici düğümünüz varsa adresleri virgül kullanarak ayırabilirsiniz. -
<protocol>
bağlantı için kullanılacak protokolü belirtir. Varsayılan değer 'dirhttps
. İzin verilen değerlerhttp
ve 'dirhttps
. -
<username>
ve<password>
Wazuh indeksleyicisine güvenli bir şekilde kimlik doğrulaması yapmak için kullanılan ortam değişkenini belirtir. -
<ssl.certificate_authorities>
HTTPS sunucu doğrulamaları için kök sertifikalarına giden yolu belirtir. Varsayılan değer 'dir/etc/filebeat/certs/root-ca.pem
. Olası değer herhangi bir geçerli yoldur -
<ssl.certificate>
Filebeat SSL sertifikasına giden yolu belirtir. Varsayılan değer 'dir/etc/filebeat/certs/wazuh-server.pem
. Olası değer herhangi bir geçerli yoldur. -
<ssl.key>
Filebeat tarafından kullanılan SSL anahtarının yolunu belirtir. Varsayılan değer 'dir/etc/filebeat/certs/wazuh-server-key.pem
. Olası değer herhangi bir geçerli yoldur. -
<setup.template.json.enabled>
özel şablonların kullanımını etkinleştirir veya devre dışı bırakır. Varsayılan değertrue
. -
<setup.template.json.path>
şablon JSON dosyasına giden dosya yolunu belirtir. Varsayılan değer 'dir/etc/filebeat/wazuh-template.json
. Olası değer herhangi bir geçerli yoldur. -
<setup.template.json.name>
şablonun adını tanımlar. Varsayılan değerwazuh
. -
<setup.ilm.overwrite>
olarak ayarlandığındatrue
, yaşam döngüsü ilkesi başlangıçta üzerine yazılır. Varsayılan değer 'dirtrue
. -
<setup.ilm.enabled>
oluşturulan herhangi bir yeni endekste endeks yaşam döngüsü yönetimini etkinleştirir veya devre dışı bırakır. Varsayılan değer 'dirfalse
. Olası geçerli değerlertrue
ve ' dirfalse
. -
<filebeat.modules>
Filebeat'in kullanacağı modülleri belirtir. -
<module>
kullanılacak modülü tanımlar. Varsayılan değerwazuh
. -
<alerts>
uyarıların Wazuh dizinleyicisine iletilmesini etkinleştirir veya devre dışı bırakır. Yapılandırma seçeneği olarak ayarlandığında<enabled>
,true
uyarılar Wazuh dizinleyicisine iletilir. -
<archives>
Arşiv günlüklerinin işlenip işlenmeyeceğini ve iletileceğini belirleyen yapılandırmaları belirtir. -
<logging.level>
günlük düzeyini tanımlar. Varsayılan değer,info
bilgi günlüklerini temsil eder. Diğer günlük düzeyleridebug
,error
, ve 'dirwarning
. -
<logging.to_files>
dosyalara günlük kaydını etkinleştirir veya devre dışı bırakır. Varsayılan değer 'dirtrue
. olarak ayarlandığındatrue
, filebeat tüm günlükleri bir dosyaya yazar. -
<logging.files.path>
günlük dosyalarının saklanacağı dizini belirtir. Varsayılan günlük yolu/var/log/filebeat
. -
<logging.files.name>
günlüklerin depolandığı dosyanın adını belirtir. Varsayılan adfilebeat
. -
<logging.files.keepfiles>
saklanacak yakın zamanda döndürülen günlük dosyalarının sayısını belirtir. Varsayılan değer 'dir . İzin verilen değer ve7
arasında bir tam sayıdır .1
1024
-
<logging.files.permissions>
günlük dosyaları için dosya izinlerini ayarlar. Varsayılan değer 'dir0644
, bu da günlük dosyalarının sahibinin bunları okuyabileceği ve yazabileceği, diğerlerinin ise yalnızca okuyabileceği anlamına gelir. -
<logging.metrics.enabled>
dahili ölçümlerin günlüğe kaydedilmesini etkinleştirir veya devre dışı bırakır. Varsayılan değer 'dirtrue
. Olası değerlertrue
ve ' dirfalse
. -
<seccomp>
filebeat işleminin yapabileceği sistem çağrılarının sayısını kısıtlayan bir secomp (güvenli bilgi işlem modu) politikası belirtir. -
<default_action>
sistem çağrıları için varsayılan eylemi izin verecek şekilde ayarlar. Bu, syscalls listesinde açıkça belirtilmeyen herhangi bir sistem çağrısına varsayılan olarak izin verileceği anlamına gelir. -
<syscalls>
sistem çağrısı adlarının ve karşılık gelen eylemlerin bir listesini tanımlar. -
<action>
listelenen sistem çağrılarından herhangi birinames
yürütüldüğünde gerçekleştirilecek eylemi belirtir. Varsayılan değer 'dirallow
. Diğer değerlererrno
,trace
,trap
,kill_thread
,kill_process
, ve 'dirlog
. -
<names>
sistem çağrısı adlarının bir listesini tanımlar. Listede en az bir sistem çağrısı tanımlanmalıdır.rseq
(yeniden başlatılabilir diziler) sistem çağrısı, birden fazla iş parçacığında paylaşılan bellekte kullanıcı alanı işlemlerini hızlandırmak için kullanılır.rseq
Sistem çağrısına bu yapılandırmada izin verilir.
Wazuh Indeksleyici Bağlayıcısı
Wazuh dizinleyici bağlayıcısı şu anda Wazuh yöneticisinden güvenlik açığı verilerini alıyor ve güvenli bir şekilde Wazuh dizinleyicisine iletiyor. Güvenlik açığı verilerini Elastic Common Schema'yı (ECS) takip eden JSON formatında alıyor ve veri tutarlılığı ve güvenilirliğini sağlamak için durumunu Wazuh dizinleyicisiyle senkronize ediyor. Wazuh dizinleyici bağlayıcısı Wazuh yöneticisiyle birlikte gönderilir.
/var/ossec/etc/ossec.conf
İndeksleyici bağlayıcısı için standart yapılandırma , Wazuh sunucusundaki dosyada aşağıda gösterildiği gibi belirtilmiştir :
<ossec_config> <indexer> <enabled>yes</enabled> <hosts> <host>https://127.0.0.1:9200</host> </hosts> <ssl> <certificate_authorities> <ca>/etc/filebeat/certs/root-ca.pem</ca> </certificate_authorities> <certificate>/etc/filebeat/certs/filebeat.pem</certificate> <key>/etc/filebeat/certs/filebeat-key.pem</key> </ssl> </indexer> </ossec_config>
Nerede:
-
<indexer>
Wazuh indeksleyici bağlayıcısı için yapılandırma seçeneklerini belirtir. -
<enabled>
Wazuh dizinleyici bağlayıcısını etkinleştirir veya devre dışı bırakır. Bu seçenek için izin verilen değerler ve'diryes
.no
Değer,yes
Wazuh dizinleyici bağlayıcısını etkinleştirir veno
devre dışı bırakır. Varsayılan değer 'diryes
. -
<hosts>
bağlanılacak Wazuh dizinleyici düğümlerinin bir listesini belirtir.host
Her düğüm bağlantısını ayarlamak için seçeneği kullanın. -
<host>
bağlanılacak Wazuh dizinleyici düğüm URL'sini veya IP adresini belirtir. Örneğin,http://172.16.1.11
veya192.168.3.2:9230
. Varsayılan olarak, değer localhost ana bilgisayarına ayarlanır:https://127.0.0.1:9200
. -
<ssl>
SSL parametreleri için yapılandırma seçeneklerini belirtir. -
<certificate_authorities>
doğrulama için kök sertifika dosya yollarının bir listesini belirtir.ca
Her CA sertifika dosya yolunu ayarlamak için seçeneği kullanın. -
<ca>
HTTPS sunucu doğrulamaları için kök CA sertifikasını belirtir. Varsayılan değer 'dir/etc/filebeat/certs/root-ca.pem
. Olası değer herhangi bir geçerli CA sertifikasıdır. -
<certificate>
Filebeat SSL sertifikasına giden yolu belirtir. Varsayılan değer 'dir/etc/filebeat/certs/filebeat-key.pem
. Olası değer herhangi bir geçerli anahtardır. -
<key>
kimlik doğrulama için kullanılan sertifika anahtarını belirtir. Varsayılan değer 'dir/etc/filebeat/certs/filebeat-key.pem
. Olası değer herhangi bir geçerli anahtardır.
Referans kılavuzunun dizinleyici bölümünde mevcut yapılandırma seçenekleri hakkında daha fazla bilgi edinebilirsiniz .
Üçüncü Taraf Indexer
Wazuh yöneticisi uyarıları üçüncü taraf dizinleyicilere iletebilir. Wazuh yöneticilerini yalnızca günlük analizi için kullanıyorsanız ve uyarıları dizinleme ve depolama için üçüncü taraf çözümlere iletmek istiyorsanız, alternatif seçenekler mevcuttur. Wazuh, uyarıları istediğiniz çözüme aktarmak için her Wazuh yönetici düğümüne istediğiniz veri ileticisini yüklemenize olanak tanır. Şu anda Wazuh, aşağıdaki üçüncü taraf çözümler için belgeler sunmaktadır:
Çözüm |
Tanım |
---|---|
Wazuh yöneticisi uyarılarını Logstash kullanarak ELK Stack'e iletme. |
|
Wazuh yöneticisi uyarılarını Logstash kullanarak OpenSearch'e iletme. |
|
Wazuh yöneticisi uyarılarını Logstash kullanarak Splunk'a iletme. |
|
Splunk Evrensel Yönlendiriciyi kullanarak Wazuh sunucu uyarılarını Splunk'a iletme. |
Bu seçenekler, Wazuh'u mevcut izleme ve analiz altyapınızla entegre etmede esneklik sağlar.
Wazuh Yöneticisi
Wazuh yöneticisi veri analizi ve uyarılardan sorumludur. Uyarıları syslog, e-postalar veya entegre harici API'ler aracılığıyla iletebilir. Wazuh'un veri analizini nasıl gerçekleştirdiği hakkında daha fazla bilgi için veri analizi belgelerine bakın.
Wazuh yöneticisi, çeşitli işlevlerden sorumlu olan çeşitli hizmetler ve bileşenlerden oluşur. Bunlara yeni Wazuh aracılarını kaydetme, güvenlik olaylarını toplama, günlükleri kod çözme, kuralları değerlendirme ve uyarı verme dahildir. Ayrıca Wazuh aracısının kimliklerini doğrulama ve Wazuh aracısı ile Wazuh sunucusu arasındaki iletişimleri şifreleme gibi diğer işlevlerden de sorumludur.
Acente Kayıt Hizmeti
Temsilci kayıt hizmeti, Wazuh temsilcilerini Wazuh yöneticisine kaydetmek için kullanılır. Kayıt hizmeti, Wazuh temsilcilerinin kaydını basitleştirir ve Wazuh yöneticisiyle güvenli bir şekilde iletişim kurmak üzere doğru bir şekilde kimlik doğrulaması yapılıp yapılandırılmalarını sağlar.
Bir uç noktaya bir Wazuh aracı yüklendiğinde ve başlatıldığında, kayıt sürecini başlatmak için otomatik olarak Wazuh yöneticisiyle iletişime geçer. Wazuh yöneticisi, Wazuh aracısıyla iletişimini şifreleyen benzersiz bir kimlik doğrulama anahtarı üretir. Kayıt süreci için parola kimlik doğrulaması, Wazuh yöneticisi kimlik doğrulaması ve Wazuh aracı kimlik doğrulaması gibi ek güvenlik önlemleri yapılandırabilirsiniz. Kayıt süreci hakkında daha fazla bilgi için Wazuh aracı kaydıyla ilgili belgelere bakın.
Yapılandırma
Aşağıdaki blok , Wazuh sunucusunun dosyasındaki <auth>
varsayılan aracı kayıt hizmeti yapılandırmasıdır :/var/ossec/etc/ossec.conf
<auth> <disabled>no</disabled> <remote_enrollment>yes</remote_enrollment> <port>1515</port> <use_source_ip>no</use_source_ip> <force> <enabled>yes</enabled> <disconnected_time enabled="yes">1h</disconnected_time> <after_registration_time>1h</after_registration_time> <key_mismatch>yes</key_mismatch> </force> <purge>yes</purge> <use_password>no</use_password> <ciphers>HIGH:!ADH:!EXP:!MD5:!RC4:!3DES:!CAMELLIA:@STRENGTH</ciphers> <!-- <ssl_agent_ca></ssl_agent_ca> --> <ssl_verify_host>no</ssl_verify_host> <ssl_manager_cert>etc/sslmanager.cert</ssl_manager_cert> <ssl_manager_key>etc/sslmanager.key</ssl_manager_key> <ssl_auto_negotiate>no</ssl_auto_negotiate> </auth>
Nerede:
-
<disabled>
Wazuh aracısının Wazuh yöneticisine kaydolma ve kimlik doğrulama işlemini etkinleştirir veya devre dışı bırakır. Varsayılan değer 'dirno
. İzin verilen değerleryes
ve 'dirno
. -
<remote_enrollment>
Wazuh yöneticisinin varsayılan olarak 1515 numaralı bağlantı noktasında TLS şifrelemesi kullanarak yeni Wazuh aracılarından gelen bağlantıları kabul etmesini sağlar. Varsayılan değer 'diryes
. İzin verilen değerleryes
ve 'dirno
. -
<port>
Bağlantıları dinlemek için TCP bağlantı noktası numarasını belirtir. Varsayılan değer 'dir . İzin verilen değer ve1515
arasındaki herhangi bir bağlantı noktası numarasıdır .0
65535
-
<use_source_ip>
istemcinin kaynak IP adresinin mi yoksa "herhangi biri"nin mi kullanılacağını tanımlar. İzin verilen değerler ve'diryes
.no
Değer hayır olduğunda, kayıt için kullanılan kaynak IP değişse bile Wazuh aracısı Wazuh yöneticisine bağlanabilir. Ancak değer evet olduğunda, kaynak IP adresi değişse bile Wazuh aracısı Wazuh yöneticisine bağlanamaz. -
<force>
Wazuh aracısının etiketi içinde yeniden kaydı için yapılandırılacak seçenekleri belirtir. Yeniden kaydın başarılı olması için tüm koşulların karşılanması gerekir. Aşağıdaki seçenekler, seçeneğin ayarlarını tanımlarforce
:-
<enabled>
yinelenen bir ad veya IP adresi varsa bir Wazuh aracısının eklenmesinin zorlanıp zorlanmayacağını belirtir. Eğer öyleyseenabled
, aynı ad veya IP adresine sahip eski Wazuh aracısını kaldıracaktır. Varsayılan değer 'diryes
. Olası değerleryes
ve 'dirno
. -
<disconnected_time>
yalnızca ayarda yapılandırılan değerden daha uzun süre bağlantısı kesilmiş olan Wazuh aracıları için bir değiştirme yapılıp yapılmayacağını belirtir. Varsayılan değer1h
(bir saat)'tir. İzin verilen değer sıfırdan büyük veya sıfıra eşit herhangi bir sayıdır.s
,h
,m
, ve gibi soneklerind
saniye, saat, dakika ve günü temsil etmesine izin verir. Öznitelik ayarıenabled
varsayılan değerine sahiptiryes
, yani değiştirme yalnızca belirtilen bağlantı kesme süresi aşıldıktan sonra gerçekleşir. Etkin özniteliğinyes
ve olmak üzere iki olasılığı vardırno
. -
<after_registration_time>
Wazuh aracısı değişiminin yalnızca Wazuh aracısı kaydının ayarda yapılandırılan değerden büyük olması durumunda gerçekleştirileceğini belirtir. Varsayılan değer 'dir1h
. İzin verilen değer sıfırdan büyük veya ona eşit herhangi bir sayıdır.s
,h
,m
, ve gibi soneklerind
saniye, saat, dakika ve günü temsil etmesine izin verir. -
<key_mismatch>
Wazuh aracısının elinde tuttuğu anahtar, yönetici tarafından kaydedilen anahtardan farklı olduğunda Wazuh aracısının değiştirilmesinin gerçekleştiğini tanımlar. Varsayılan değer 'diryes
. Olası değerleryes
ve 'dirno
.
-
-
<purge>
Wazuh aracıları kaldırıldığında istemci anahtarlarının silinip silinmeyeceğini belirtir. Değer olduğundano
, kaldırılan Wazuh aracıları kaldırılmış olarak işaretlenen istemci anahtarları dosyasında kalır. Değer olarak ayarlandığındayes
, istemci anahtarları dosyası temizlenir. Varsayılan değer 'diryes
. Olası değerleryes
ve 'dirno
. -
<use_password>
paylaşımlı parola kimlik doğrulamasının kullanımını belirler. Değer olduğundano
, bu seçenek devre dışıdır. Değer olarak ayarlandığındayes
, dosyadan paylaşımlı bir parola okunur/var/ossec/etc/authd.pass
. Bu dosya mevcut değilse, rastgele bir parola oluşturulur ve/var/ossec/logs/ossec.log
Wazuh sunucusundaki dosyada saklanır. -
<ciphers>
SSL kullanarak ağ iletişimi için şifrelerin listesini ayarlar. Varsayılan değerHIGH:!ADH:!EXP:!MD5:!RC4:!3DES:!CAMELLIA:@STRENGTH
. -
<ssl_agent_ca>
istemcileri doğrulamak için kullanılan CA sertifikasına giden yolu belirtir. Wazuh kurulum dizini altındaki bağıl yol veya tam yol olarak adlandırılabilir. Olası değer herhangi bir geçerli yoldur. -
<ssl_verify_host>
CA sertifikası belirtildiğinde kaynak ana bilgisayar doğrulamasını açar ve kapatır. İstemci kaynak IP adresi Ortak Ad alanı kullanılarak doğrulanacaktır. Varsayılan değer 'dirno
. İzin verilen değerleryes
ve 'dirno
. -
<ssl_manager_cert>
sunucu SSL sertifikasına giden yolu belirtir. Wazuh kurulum dizinindeki bağıl yol veya tam yol olarak adlandırılabilir. Varsayılan değer etc/sslmanager.cert'dir. Olası değer herhangi bir geçerli yoldur. -
<ssl_manager_key>
sunucunun SSL anahtarına giden yolu belirtir. Wazuh kurulum dizininin altındaki bağıl yol veya tam yol olarak adlandırılabilir. Varsayılan değer etc/sslmanager.key'dir. Olası değer herhangi bir geçerli yoldur. -
<ssl_auto_negotiate>
SSL/TLS yönteminin otomatik olarak seçilip seçilmeyeceğini değiştirir. Varsayılan olarak yalnızca TLS v1.2'ye izin verilir. olarak ayarlandığındayes
, sistem istemciyle en güvenli ortak yöntemi müzakere eder. Yöneticinin TLS v1.2'yi desteklemediği eski sistemlerde, bu seçenek otomatik olarak etkinleştirilir. Varsayılan değer 'dirno
. İzin verilen değerleryes
ve 'dirno
.
Yapılandırma dosyasında değişiklik yaptığınızda, aşağıdaki komutu kullanarak komut satırı arayüzü üzerinden Wazuh yöneticisini yeniden başlatın:
Systemd
systemctl restart wazuh-manager
SysV Başlatma
service wazuh-manager restart
Ajan Bağlantı Hizmeti
Aracı bağlantı hizmeti, kalıcı ve güvenli bir iletişim kanalı kurmak ve sürdürmek için Wazuh aracılarından gelen olayları dinler. Wazuh aracısı, güvenlik verilerini analiz için Wazuh yöneticisine göndermek için bu güvenli kanalı kullanır. Varsayılan olarak, hizmet TCP
Wazuh aracısı ile Wazuh yöneticisi arasındaki iletişimi güvence altına almak için protokolü kullanır.
Yapılandırma
Aşağıdaki blok Wazuh sunucu yapılandırma dosyasındaki varsayılan bağlantı hizmeti yapılandırmasıdır /var/ossec/etc/ossec.conf
:
<ossec_config> <remote> <connection>secure</connection> <port>1514</port> <protocol>tcp</protocol> <queue_size>131072</queue_size> </remote> </ossec_config>
Nerede:
-
<connection>
kabul edilecek gelen bağlantının türünü belirtir. Varsayılan değer güvenlidir. İzin verilen değerlersecure
ve ' dirsyslog
. -
<port>
olayları dinlemek için kullanılacak portu belirtir. Varsayılan port değeri1514
güvenli bağlantı ve syslog bağlantısı içindir . İzin verilen değer ve514
arasındaki herhangi bir port numarasıdır .1
65535
-
<protocol>
bağlantı için kullanılacak protokolü belirtir. Varsayılan değer 'dirtcp
. İzin verilen değerlertcp
ve 'dirudp
. -
<queue_size>
Uzak daemon kuyruğunun kapasitesini Wazuh aracı olaylarının sayısı olarak ayarlamanıza olanak tanır. Varsayılan değer 'dir . İzin verilen değer ile131072
arasında bir tam sayıdır . Uzak kuyruk yalnızca Wazuh aracı olayları için kullanılabilir, syslog olayları için kullanılamaz. Bu seçenek yalnızca bağlantı güvenli olarak ayarlandığında çalışır. Bu yapılandırma ayarı hakkında daha fazla bilgi edinmek için Wazuh kuyruğu ile ilgili belgelerimize bakın .1
262144
Değişiklikler yapıldıysa, değişiklikleri uygulamak için aşağıdaki komutla Wazuh yöneticisini komut satırı arayüzü üzerinden yeniden başlatın:
Systemd
systemctl restart wazuh-manager
SysV Başlatma
service wazuh-manager restart
Örneğin, bir Windows uç noktasındaki (IP adresi 192.168.71.125) bir Wazuh yöneticisine (IP adresi 192.168.71.203) bir Wazuh aracısının kaydı sırasında netstat kullanarak bağlantı hizmetinin çalışmasını doğrulayabilirsiniz. Ayrıca, herhangi bir Wazuh destekli uç noktada çalışan bir Wazuh aracısı, güvenlik olaylarını port üzerindeki Wazuh yöneticisine iletir . Yukarıdaki aracı bağlantı hizmeti yapılandırma1514
bölümünde ayrıntılı olarak açıklanan yapılandırmayı kullanır .
Wazuh yöneticisi ile Wazuh aracısı arasındaki bağlantı hizmetinin çalışmasını doğrulamak için aşağıdaki adımları gerçekleştirin:
-
Windows uç noktasında komut istemini başlatın ve uç noktadaki bağlantıları listelemek için şu komutları çalıştırın:
netstat -a
netstat -a
C:\Users\Tony>netstat -a Active Connections Proto Local Address Foreign Address State TCP 192.168.71.125:51787 a23-53-42-162:https ESTABLISHED TCP 192.168.71.125:51788 a-0003:https ESTABLISHED TCP 192.168.71.125:51789 a-0003:https ESTABLISHED TCP 192.168.71.125:51790 a23-53-42-162:https ESTABLISHED TCP 192.168.71.125:51791 192.168.71.203:1514 SYN_SENT
192.168.71.125
IP adresine sahip Windows uç noktasının bir TCP paketi gönderdiğini ve porttakiSYN_SENT
IP adresine sahip Wazuh sunucusuyla bağlantı kurmayı beklediğini görebiliyoruz .192.168.71.203
1514
-
netstat
Wazuh sunucusunun Windows 10 uç noktasıyla ne zaman bağlantı kurduğunu görüntülemek için komutu çalıştırın.netstat
Active Connections Proto Local Address Foreign Address State TCP 192.168.71.125:3389 192.168.71.1:25743 ESTABLISHED TCP 192.168.71.125:51572 a23-64-12-19:https CLOSE_WAIT TCP 192.168.71.125:51573 192.229.221.95:http CLOSE_WAIT TCP 192.168.71.125:51694 192.168.71.203:1514 ESTABLISHED TCP 192.168.71.125:51699 192.168.20.103:ms-do SYN_SENT TCP 192.168.71.125:51701 192.168.20.101:ms-do SYN_SENT TCP 192.168.71.125:51703 20.231.121.79:http SYN_SENT TCP 192.168.71.125:51704 192.168.20.125:ms-do SYN_SENT
IP adresine sahip Windows uç noktasının , port üzerindeki
192.168.71.125
IP adresine sahip Wazuh sunucusuna bağlı olduğunu görebiliyoruz .192.168.71.203
1514
Analiz Motoru
Wazuh analiz motoru, Windows olayları, SSH günlükleri, web sunucusu günlükleri ve diğerleri gibi çeşitli günlük türlerindeki verileri analiz eder. İşlenen bilgi türünü belirlemek için kod çözücüleri ve kod çözülen olaydaki belirli kalıpları belirlemek için kuralları kullanır. Bu kurallar, bir IP adresini engelleme ve kötü amaçlı yazılımları kaldırma gibi uyarıları ve yanıt eylemlerini tetikleyebilir.
Veri Kaynakları
Wazuh, çeşitli kaynaklardan günlükler toplayarak BT altyapınızın tüm yönlerinin kapsamlı bir şekilde izlenmesine olanak tanır. Bu, Wazuh'un karmaşık tehditleri tespit etmesini, güvenlik açığı riskini azaltmasını, güvenlik politikalarına uyumu sağlamasını ve belirlenen güvenlik olaylarına hızla yanıt vermesini sağlar. Aşağıda Wazuh tarafından desteklenen bazı yaygın veri kaynakları verilmiştir:
-
İşletim sistemi günlükleri : Wazuh, Windows , Linux ve macOS gibi çeşitli işletim sistemleri tarafından oluşturulan günlükleri toplar . Syslog, auditd, uygulama günlükleri ve diğerleri dahil olmak üzere Linux uç noktalarından çeşitli günlükler toplayabilir. Windows uç noktalarında, Wazuh varsayılan olarak Sistem, Uygulamalar ve Güvenlik olay kanallarından Windows olay günlüklerini toplar. Wazuh, macOS birleşik günlük sistemi (ULS) kullanarak macOS uç noktalarındaki günlükleri toplar. macOS ULS, tüm sistem düzeylerinde günlüklerin yönetimini ve depolanmasını merkezileştirir.
-
Syslog olayları : Wazuh , Linux/Unix sistemleri ve Wazuh aracısı kurulumu gerektirmeyen ağ aygıtları da dahil olmak üzere çeşitli syslog özellikli aygıtlardan günlükleri toplar.
-
Aracısız izleme : Wazuh aracısız izleme yeteneği, aracı kurulumunu desteklemeyen uç noktaları izler. Uç nokta ile Wazuh sunucusu arasında bir SSH bağlantısı gerektirir. Bu yetenek, dosyaların, dizinlerin veya yapılandırmaların izlenmesini ve uç noktada komutların çalıştırılmasını sağlar.
-
Bulut sağlayıcı günlükleri : Wazuh, AWS , Azure , Google Cloud ve Office 365 gibi bulut hizmet sağlayıcılarından doğrudan günlükleri ve olayları toplayarak bulut altyapısını izler . Bunlara EC2 örnekleri, S3 kovaları, Azure VM'leri ve daha fazlası gibi bulut hizmetlerinden gelen günlükler dahildir.
-
Özel günlükler : Wazuh'u VirusTotal , Windows Defender , ClamAV ve daha fazlası dahil olmak üzere çeşitli uygulamalardan ve üçüncü taraf güvenlik araçlarından günlükleri toplayacak ve ayrıştıracak şekilde yapılandırabilirsiniz .
Kod Çözme
Kod çözme, farklı veri kaynaklarından gelen günlükler gibi yapılandırılmış veya yapılandırılmamış verileri, izleme ve uyarı için kullanılabilecek anlamlı bilgiler çıkarmak için analiz etme sürecidir. Wazuh'ta kod çözmenin temel amacı, ham verileri Wazuh yöneticisinin yorumlayabileceği ve işleyebileceği bir biçime dönüştürmektir. İki süreci içerir:
-
Ön kod çözme aşaması : Bu aşamada, günlük analiz motoru günlük başlığından zaman damgası, ana bilgisayar adı ve program adı gibi syslog benzeri bilgileri çıkarır. Ön kod çözme aşaması günlük yapısını basitleştirir ve daha ileri analiz için hazırlar. Ön kod çözme sürecini göstermek için aşağıdaki örnek günlük girişini göz önünde bulundurun:
Feb 14 12:19:04 192.168.1.1 sshd[25474]: Accepted password for Stephen from 192.168.1.133 port 49765 ssh2
Ön kod çözme aşamasını göstermek için Wazuh Logtest aracını kullanıyoruz. Wazuh sunucusunda aşağıdaki adımları gerçekleştirin:
-
/var/ossec/bin/wazuh-logtest
Wazuh sunucusunda komut satırından çalıştırın -
Yukarıdaki örnek günlüğü kopyalayıp yapıştırın ve enter'a basın.
Ön kod çözme aşaması sonrasında elde edilen bilgiler aşağıda gösterilmektedir:
Starting wazuh-logtest v4.8.0 Type one log per line Feb 14 12:19:04 192.168.1.1 sshd[25474]: Accepted password for Stephen from 192.168.1.133 port 49765 ssh **Phase 1: Completed pre-decoding. full event: 'Feb 14 12:19:04 192.168.1.1 sshd[25474]: Accepted password for Stephen from 192.168.1.133 port 49765 ssh' timestamp: 'Feb 14 12:19:04' hostname: '192.168.1.1' program_name: 'sshd'
-
-
Kod çözme : Bu aşamada, Wazuh analiz motoru günlükle eşleşen bir kod çözücü uygular. Kod çözücüler, günlüklerde bulunan kullanıcı adları, IP adresleri, hata kodları, URL'ler ve diğer ilgili bilgiler gibi alanları ayıklar. Aşağıdaki kod çözücüler örnek günlükle eşleşir. Bu kod çözücüler
/var/ossec/rulesets/decoders/0310-ssh_decoders.xml
Wazuh sunucusundaki dosyadadır:<decoder name="sshd"> <program_name>^sshd</program_name> </decoder> <decoder name="sshd-success"> <parent>sshd</parent> <prematch>^Accepted</prematch> <regex offset="after_prematch">^ \S+ for (\S+) from (\S+) port (\S+)</regex> <order>user, srcip, srcport</order> <fts>name, user, location</fts> </decoder>
Kod çözücü
sshd
program adıyla eşleşirkensshd
, kod çözücü örnek günlükten , , vessh-success
öğelerini çıkarır .Stephen
192.168.1.133
49765
Kod çözme aşamasını göstermek için Wazuh Logtest aracını kullanıyoruz. Wazuh sunucusunda aşağıdaki adımları gerçekleştirin:
-
/var/ossec/bin/wazuh-logtest
Wazuh sunucusunda from komut satırını çalıştırın . -
Yukarıdaki örnek günlüğü kopyalayıp yapıştırın ve enter'a basın.
Kod çözme aşaması sonucunda elde edilen bilgiler aşağıda gösterilmektedir:
Starting wazuh-logtest v4.7.5 Type one log per line Feb 14 12:19:04 192.168.1.1 sshd[25474]: Accepted password for Stephen from 192.168.1.133 port 49765 ssh **Phase 1: Completed pre-decoding. full event: 'Feb 14 12:19:04 192.168.1.1 sshd[25474]: Accepted password for Stephen from 192.168.1.133 port 49765 ssh' timestamp: 'Feb 14 12:19:04' hostname: '192.168.1.1' program_name: 'sshd' **Phase 2: Completed decoding. name: 'sshd' parent: 'sshd' dstuser: 'Stephen' srcip: '192.168.1.133' srcport: '49765'
-
Kural Değerlendirmesi ve Uyarı
Günlük çözüldükten sonra, Wazuh yöneticisi bunu bir kural setiyle karşılaştırır. Wazuh kural setleri XML dosyalarında tanımlanır ve farklı izleme ihtiyaçlarına uyacak şekilde özelleştirilebilir. Bu kurallar, karşılandığında uyarıları tetikleyen koşulları belirtir. 5715
Aşağıdaki kural, önceki bölümdeki örnek günlükle eşleşir. Bu kural, /var/ossec/ruleset/rules/0095-sshd_rules.xml
Wazuh sunucusundaki dosyadadır.
<rule id="5715" level="3"> <if_sid>5700</if_sid> <match>^Accepted|authenticated.$</match> <description>sshd: authentication success.</description> <group>authentication_success,pci_dss_10.2.5,</group> </rule>
Nerede:
-
<rule id="5715" level="3">
kural kimliğini5715
ve kural düzeyini olarak belirtir3
. Kural kimliği kural için benzersiz bir tanımlayıcıdır, düzey ise kural eşleştiğinde olayın önem düzeyini temsil eder. -
<if_sid>5700</if_sid>
ID'li başka bir kurala bağımlılığı belirtir5700
. Kural yalnızca daha önce eşleşmişse değerlendirilecektir5700
. -
<match>^Accepted|authenticated.$</match>
ile başlayanAccepted
veya biten herhangi bir günlük girişiyle eşleşirauthenticated.
. -
<description>sshd: authentication success.</description>
kuralın neyi algıladığını açıklar. Bu durumda, başarılı bir SSH kimlik doğrulamasını gösterir. -
<group>authentication_success,pci_dss_10.2.5,</group>
kuralıauthentication_success
vepci_dss_10.2.5
gruplarına atar.
Varsayılan olarak, Wazuh sunucusu 2'nin üzerinde bir seviyeye sahip herhangi bir kural için uyarılar üretir. Bu senaryoda, kural seviyesi 3 olduğu için günlük bir uyarıyı tetikler ve bu Wazuh panosunda görünür olacaktır.
Varsayılan olarak desteklenmeyen günlükleri analiz etmek için özel kod çözücüler ve kurallar oluşturabilirsiniz. Özel kurallar ve kod çözücülerin nasıl oluşturulacağını öğrenmek için özel kurallar ve özel kod çözücüler belgelerine bakın.
Sıraya Girme Mekanizmaları
Wazuh sunucusu, izlenen uç noktalardan olay toplanmasını kolaylaştıran bir kuyruk mekanizması içerir. Wazuh ajanlarından, syslog uç noktalarından ve ajansız cihazlardan Wazuh sunucusuna sürekli veri akışı sağlayarak olay taşmasını önler. Wazuh sunucu kuyruğu İlk Giren İlk Çıkar (FIFO) metodolojisini kullanır; bu nedenle, ilk kuyruğa alınan olay kuyruktan ilk kaldırılan ve işlenen olaydır. Dağıtılmış işleme dayalıdır ve günlük analiz görevlerinin paralel hale getirilmesine olanak tanır. Bu, günlük işleme hattının ölçeklenebilirliğini ve performansını iyileştirerek Wazuh'un büyük hacimli günlük verilerini etkili bir şekilde işlemesini sağlar.
Wazuh sunucusunda olay akışlarını yönetmek için iki yerel kuyruk bulunur:
Wazuh aracısı, olay tıkanıklığını önlemek için Wazuh aracı kuyruğunu (queue_ad) kullanır . Bu kuyruk, Wazuh aracısının Wazuh sunucusunun işleyebileceğinden daha hızlı olay göndermemesini sağlar.
Wazuh Agent İletişim Kuyruğu (queue_rd)
Kuyruk queue_rd
, sunucu tarafı aracı iletişim hizmetinde bulunur . Wazuh aracılarından olayları alır ve olay kod çözme ve kural eşleştirme için Wazuh analiz motoruna gönderir .
Wazuh Agent İletişim Kuyruğu Nasıl Yapılandırılır
-
Wazuh sunucusundaki
/var/ossec/etc/ossec.conf
dosyasının<queue_size>
uzak bölümünde düzenleme yaparak Wazuh aracı iletişim kuyruğunu yapılandırın:<remote> <connection>secure</connection> <port>1514</port> <protocol>tcp,udp</protocol> <queue_size>131072</queue_size> <rids_closing_time>5m</rids_closing_time> <connection_overtake_time>600</connection_overtake_time> <agents> <allow_higher_versions>no</allow_higher_versions> </agents> </remote>
Değişken
<queue_size>
, Wazuh aracı iletişim kuyruğunun kuyruk kapasitesini ayarlar. Aşağıdaki tablo<queue_size>
değişkenin yapılandırmasını gösterir.Varsayılan değer
İzin verilen değerler
131072
1 ile 262144 arasında herhangi bir sayı.
Not: Wazuh aracı iletişim kuyruğu (
queue_rd
) yalnızca Wazuh aracı olayları için kullanılabilir, uzak syslog olayları için kullanılamaz. Bu seçenek yalnızca bağlantı olarak ayarlandığında çalışırsecure
. -
Değişiklikleri uygulamak için Wazuh yönetici hizmetini yeniden başlatın.
systemctl restart wazuh-manager
Olay düşüşleri gözlemlendiğinde /var/ossec/etc/ossec.conf
dosyasının <remote>
bloğundaki queue_size
değerini ve /var/ossec/etc/internal_options.conf
dosyasındaki worker_pool
boyutunu artırabilirsiniz.
worker_pool
Aşağıdaki tablo Wazuh sunucusundaki boyut yapılandırmasını göstermektedir .
uzaktan.çalışan_havuzu |
Tanım |
Yük alımını işleyen iş parçacığı sayısı |
Varsayılan değer |
4 |
|
İzin verilen değer |
1 ile 16 arasında herhangi bir tam sayı |
Wazuh sunucu API'sini wazuh-remoted
sorgulayarak veya daemon istatistiksel durum dosyasını okuyarak olay düşüşlerini izleyebilirsiniz .
Wazuh Sunucu API'sini Sorgulama
wazuh-remoted
Aşağıdaki adımları izleyerek istatistiksel bilgileri sorgulayabilirsiniz :
-
Wazuh panosunda Araçlar'a ve ardından API Konsolu'na gidin .
-
API konsoluna aşağıdakileri ekleyin ve Wazuh sunucusu API'sine sorgu göndermek için yeşil oka tıklayın:
GET /manager/daemons/stats
-
Sorgu sonucu aşağıdaki ekran görüntüsünün sol tarafında gösterilmektedir.
Sorgu, kuyruk boyutu değerini, tarafından işlenen olay sayısını wazuh-remoted
ve atılan olay sayısını döndürür.
Aracı İletişim İstatistiksel Durum Dosyası
Bu istatistiksel dosya, wazuh-remoted
kuyruk boyutu, atılan mesajlar, uzak bağlantı sayısı ve diğer önemli bilgiler gibi uzak daemon ile ilgili verileri sunar.
Dosyayı okumak için Wazuh sunucusunda aşağıdaki komutu çalıştırın:
cat /var/ossec/var/run/wazuh-remoted.state
Aşağıda dosyanın içeriğine dair bir örnek verilmiştir wazuh-remoted.state
:
# State file for wazuh-remoted # THIS FILE WILL BE DEPRECATED IN FUTURE VERSIONS # Updated every 5 seconds. # Queue size queue_size='0' # Total queue size total_queue_size='131072' # TCP sessions tcp_sessions='1' # Events sent to Analysisd evt_count='126714' # Control messages received ctrl_msg_count='2637' # Discarded messages discarded_count='0' # Total number of bytes sent sent_bytes='4434745' # Total number of bytes received recv_bytes='93866086' # Messages dequeued after the agent closes the connection dequeued_after_close='0'
Wazuh Analiz Motoru Kuyruğu (queue_and)
Sıra Wazuh analiz motorunda queue_and
bulunur ve olayların alınmasını kolaylaştırır. Wazuh analiz motoru daha sonra alınan günlükleri Wazuh sunucusundaki kurallarla eşleştirir.
Wazuh Analiz Motoru Kuyruğu Nasıl Yapılandırılır
Wazuh analiz motoru kuyruğu, queue_and
kuyruğu kullanarak analiz için Wazuh ajanlarından günlükleri alır. Gelen tüm günlük mesajları kategorilere ayrılır ve aşağıdaki kategorilerde sıraya alınır:
-
Dosya bütünlüğü izleme olayı kod çözücü kuyruğu.
-
Syscollector olay kod çözücü kuyruğu.
-
Kök denetimi olayı kod çözücü kuyruğu.
-
Ana bilgisayar bilgisi olay kod çözücü kuyruğu.
-
Olay kod çözücü kuyruğu.
-
Windows olay kod çözücü kuyruğu.
Her kuyruk kategorisinin İlk Giren İlk Çıkar (FIFO) olay yönetiminden sorumlu bir dizi iş parçacığı vardır. İş parçacığı sayısı, /var/ossec/etc/internal_options.conf
Wazuh sunucusundaki dosya aracılığıyla olay türüne göre ayrı ayrı yapılandırılabilir.
Not: Yükseltmelerin kuyruk yapılandırmalarını geçersiz kılmamasını sağlamak için /var/ossec/etc/local_internal_options.conf
dosyası yerine /var/ossec/etc/internal_options.conf
dosyasını kullanın.
Aşağıdaki tabloda Wazuh analiz motoru kuyruğu ( queue_and
) için kullanılabilen yapılandırma seçenekleri gösterilmektedir.
Kuyruklar (wazuh-analysisd.state) |
Ayar (local_internal_options.conf) |
Varsayılan |
Dakika |
Maksimum |
---|---|---|---|---|
syscheck_queue_kullanımı |
analizd.decode_syscheck_queue_size |
16384 |
128 |
2000000 |
syscollector_kuyruğu_kullanımı |
analizd.decode_syscollector_queue_size |
16384 |
128 |
2000000 |
kök_kontrolu_kuyruk_kullanımı |
analizd.decode_rootcheck_queue_size |
16384 |
128 |
2000000 |
sca_queue_kullanımı |
analizd.decode_sca_queue_size |
16384 |
128 |
2000000 |
hostinfo_kuyruk_kullanımı |
analiz.decode_hostinfo_queue_size |
16384 |
128 |
2000000 |
winevt_kuyruk_kullanımı |
analizd.decode_winevt_kuyruk_boyutu |
16384 |
128 |
2000000 |
dbsync_kuyruk_kullanımı |
analizd.dbsync_queue_size |
16384 |
128 |
2000000 |
yükseltme_kuyruğu_kullanımı |
analizd.yükseltme_kuyruğu_boyutu |
16384 |
128 |
2000000 |
olay_kuyruğu_kullanımı |
analizd.decode_event_queue_size |
16384 |
128 |
2000000 |
kural_eşleşen_kuyruk_kullanımı |
analizd.decode_output_queue_size |
16384 |
128 |
2000000 |
uyarılar_kuyruğu_kullanımı |
analizd.uyarılar_kuyruk_boyutu |
16384 |
128 |
2000000 |
güvenlik_kuyruğu_kullanımı |
analizd.firewall_queue_size |
16384 |
128 |
2000000 |
istatistiksel_kuyruk_kullanımı |
analizd.istatistiksel_kuyruk_boyutu |
16384 |
128 |
2000000 |
arşiv_kuyruğu_kullanımı |
analizd.arşivler_kuyruğu_boyutu |
16384 |
128 |
2000000 |
analizd.fts_kuyruk_boyutu |
16384 |
128 |
2000000 |
|
analizd.fts_liste_boyutu |
32 |
12 |
512 |
|
analysisd.fts_min_size_for_str |
14 |
6 |
128 |
|
analizd.decoder_order_size |
256 |
32 |
1024 |
Wazuh analiz motorunda "olay düşüşleri" gözlemlendiğinde kuyruk ayarları ayarlanmalıdır. Wazuh sunucu API'sini sorgulayarak veya daemon istatistiksel durum dosyasını okuyarak wazuh-analysisd'deki olay düşüşlerini izleyebilirsiniz .
Wazuh Sunucu API'sini Sorgulama
Wazuh analiz motorundan istatistiksel bilgileri kontrol etmek için günlük kategorisi durumu Wazuh sunucu API'si kullanılarak sorgulanabilir. Yeni istatistikler, alınan veya düşürülen olayların olay türüne göre dökümünü gösterir. Bu, yalnızca düşürmeyi gösteren kuyruk boyutlarını ayarlamak için hayati önem taşır.
Aşağıdaki adımları izleyerek Wazuh analiz motorunun istatistiksel bilgilerini sorgulayabilirsiniz:
-
Wazuh panosunda Araçlar'a ve ardından API Konsolu'na gidin .
-
Konsola aşağıdakileri ekleyin ve Wazuh sunucu API'sine sorgu göndermek için yeşil oka tıklayın:
GET /manager/daemons/stats
-
wazuh-analysisd
Aşağıdaki ekran görüntüsünde sağ tarafta gösterilen sorgu sonucunun bulunduğu bölüme doğru aşağı kaydırın .
Sorgu, kuyruk boyutu değerini, Wazuh analiz motoru tarafından işlenen olay sayısını ve atılan olay sayısını döndürür.
/var/ossec/etc/internal_options.conf
Wazuh analiz motoru kuyruğu , Wazuh sunucusundaki dosya aracılığıyla olay türüne göre yapılandırılabilir .
Not: Yükseltmelerin kuyruk yapılandırmalarını geçersiz kılmamasını sağlamak için /var/ossec/etc/local_internal_options.conf
dosyası yerine /var/ossec/etc/internal_options.conf
dosyasını kullanın.
Wazuh Analiz Motoru İstatistiksel Durum Dosyası
Wazuh analiz motoru için istatistiksel dosya şu adreste bulunur /var/ossec/var/run/wazuh-analysisd.state
. Dosya, Wazuh sunucusundaki olay işleme sorunlarını araştırırken yararlı olabilir.
Dosyayı okumak için Wazuh sunucusunda aşağıdaki komutu çalıştırın:
cat /var/ossec/var/run/wazuh-analysisd.state
Aşağıda wazuh-remoted.state dosyasının içeriğine dair bir örnek verilmiştir:
# State file for wazuh-analysisd # THIS FILE WILL BE DEPRECATED IN FUTURE VERSIONS # Total events decoded total_events_decoded='137726' # Syscheck events decoded syscheck_events_decoded='3935' # Syscollector events decoded syscollector_events_decoded='2590' # Rootcheck events decoded rootcheck_events_decoded='37' # Security configuration assessment events decoded sca_events_decoded='8991' # Winevt events decoded winevt_events_decoded='87993' # Database synchronization messages dispatched dbsync_messages_dispatched='26004' # Other events decoded other_events_decoded='8176' # Events processed (Rule matching) events_processed='112252' # Events received events_received='138283' # Events dropped events_dropped='0' # Alerts written to disk alerts_written='6707' # Firewall alerts written to disk firewall_written='0' # FTS alerts written to disk fts_written='0' # Syscheck queue syscheck_queue_usage='0.00' # Syscheck queue size syscheck_queue_size='16384' # Syscollector queue syscollector_queue_usage='0.00' # Syscollector queue size syscollector_queue_size='16384' # Rootcheck queue rootcheck_queue_usage='0.00' # Rootcheck queue size rootcheck_queue_size='16384' # Security configuration assessment queue sca_queue_usage='0.00' # Security configuration assessment queue size sca_queue_size='16384' # Hostinfo queue hostinfo_queue_usage='0.00' # Hostinfo queue size hostinfo_queue_size='16384' # Winevt queue winevt_queue_usage='0.00' # Winevt queue size winevt_queue_size='16384' # Database synchronization message queue dbsync_queue_usage='0.00' # Database synchronization message queue size dbsync_queue_size='16384' # Upgrade module message queue upgrade_queue_usage='0.00' # Upgrade module message queue size upgrade_queue_size='16384' # Event queue event_queue_usage='0.00' # Event queue size event_queue_size='16384' # Rule matching queue rule_matching_queue_usage='0.00' # Rule matching queue size rule_matching_queue_size='16384' # Alerts log queue alerts_queue_usage='0.00' # Alerts log queue size alerts_queue_size='16384' # Firewall log queue firewall_queue_usage='0.00' # Firewall log queue size firewall_queue_size='16384' # Statistical log queue statistical_queue_usage='0.00' # Statistical log queue size statistical_queue_size='16384' # Archives log queue archives_queue_usage='0.00' # Archives log queue size archives_queue_size='16384'
Wazuh Agent Kuyruğu (queue_ad)
Sıra queue_ad
, aracı tarafı aracı bağlantı hizmetinde bulunur ve Wazuh aracısından Wazuh sunucusuna olay iletimini yönetir. Sıra, Wazuh sunucusuna iletmeden önce sistem olayları ve güvenlik yapılandırması değerlendirme çıktıları gibi günlükleri toplar. Ayrıca, yapılandırılabilir parametrelere göre olay iletimini kısıtlayan ve Wazuh sunucusunun işleme kapasitesini aşma riskini azaltan bir anti-flooding mekanizması içerir.
Wazuh Kuyruk Çözücü ve Kuralları
Wazuh, olay sel çıkışını analiz etmek ve Wazuh panosunda uyarılar oluşturmak için kullanıma hazır bir kod çözücü ve kurallar sağlar.
Decoder
Kod çözücü Wazuh sunucusundaki dosyada mevcuttur /var/ossec/ruleset/decoders/0005-wazuh_decoders.xml
. Kod çözücü Wazuh sunucusundaki flood olaylarını analiz etmekten sorumludur.
<decoder name="agent-buffer"> <parent>wazuh</parent> <prematch offset="after_parent">^Agent buffer:</prematch> <regex offset="after_prematch">^ '(\S+)'.</regex> <order>level</order> </decoder>
Kurallar
Aşağıda görüldüğü gibi kurallar, 201
ile arasındaki ID'lerle tanımlanmış olup Wazuh sunucusundaki dosyada 205
mevcuttur ./var/ossec/ruleset/rules/0016-wazuh_rules.xml
<!-- Agent buffer rules --> <rule id="201" level="0"> <if_sid>200</if_sid> <match>^wazuh: Agent buffer: </match> <description>Agent event queue rule</description> <group>agent_flooding,</group> </rule> <rule id="202" level="7"> <if_sid>201</if_sid> <field name="level">%</field> <description>Agent event queue is $(level) full.</description> <group>agent_flooding,pci_dss_10.6.1,gdpr_IV_35.7.d,</group> </rule> <rule id="203" level="9"> <if_sid>201</if_sid> <field name="level">full</field> <description>Agent event queue is full. Events may be lost.</description> <group>agent_flooding,pci_dss_10.6.1,gdpr_IV_35.7.d,</group> </rule> <rule id="204" level="12"> <if_sid>201</if_sid> <field name="level">flooded</field> <description>Agent event queue is flooded. Check the agent configuration.</description> <group>agent_flooding,pci_dss_10.6.1,gdpr_IV_35.7.d,</group> </rule> <rule id="205" level="3"> <if_sid>201</if_sid> <field name="level">normal</field> <description>Agent event queue is back to normal load.</description> <group>agent_flooding,</group> </rule>
Nerede:
-
Kural Kimliği,
201
olay kuyruğu için temel kuraldır. -
Kural Kimliği,
202
olay kuyruğu seviyesi %90'a ulaştığında tetiklenir. -
Kural kimliği,
203
olay kuyruğu dolduğunda tetiklenir. -
204
Olay kuyruğu dolduğunda kural kimliği tetiklenir. -
Kural Kimliği,
205
bir su baskını olayından sonra olay kuyruğu normale döndüğünde tetiklenir.
Wazuh Server API
Wazuh sunucu API'si, bir web tarayıcısından, cURL gibi bir komut satırı aracından veya web istekleri yapabilen herhangi bir betik veya programdan Wazuh yöneticisiyle etkileşime izin veren açık kaynaklı bir RESTful API'dir. Wazuh panosu, Wazuh sunucu altyapısını uzaktan yönetmek için Wazuh sunucu API'sine güvenir. Wazuh sunucu API'sini, aracı ekleme, yöneticiyi veya aracıyı yeniden başlatma veya Dosya Bütünlüğü İzleme (FIM) hakkında ayrıntılara bakma gibi genel görevleri gerçekleştirmek için kullanabilirsiniz. Wazuh sunucusu API yeteneklerinin listesi şu şekildedir: - Wazuh acente yönetimi - Wazuh yönetici kontrolü ve genel bakışı - Küme denetimi ve genel bakış - Dosya bütünlüğü izleme denetimi ve araması - MITRE ATT&CK genel bakış - Kural seti bilgisi - Kuralların ve kod çözücülerin test edilmesi ve doğrulanması - Syscollector bilgisi - Rol Tabanlı Erişim Kontrolü (RBAC) - API yönetimi (HTTPS, yapılandırma) - Kullanıcı yönetimi - İstatistiksel bilgiler - Hata işleme - Uzaktan yapılandırmayı sorgula
Başlarken
Bu kılavuz, Wazuh sunucu API'sini kullanmak için gereken temel bilgileri sağlar.
Wazuh Sunucu API'sini Başlatma ve Durdurma
Wazuh yöneticisini yüklediğinizde, Wazuh sunucu API'si de sürecin bir parçası olarak varsayılan olarak yüklenir. Wazuh yönetici hizmetiyle systemctl
veya komutlarını yürüterek Wazuh sunucu API'sini yönetebilir veya izleyebilirsiniz:service
Systemd
systemctl start/status/stop/restart wazuh-manager
SysV Başlatma
service wazuh-manager start/status/stop/restart
Wazuh Dashboard Aracılığıyla Wazuh Sunucu API'sini Kullanma
Wazuh panosu aracılığıyla Wazuh sunucu API'siyle etkileşim kurabilirsiniz. Bunu yapmak için, yönetici ayrıcalıklarına sahip bir kullanıcıyla Wazuh panosuna giriş yapmanız gerekir. Örneğin, varsayılan admin
kullanıcı yönetici ayrıcalıklarına sahiptir. Panodaki Wazuh sunucu API konsoluna erişmek için menü simgesine tıklayın ve Araçlar > API Konsolu'na gidin .

API Konsolu'nda yöntemi , istek uç noktasını ve herhangi bir sorgu parametresini girin, ardından isteği yürütmek için oynat düğmesine tıklayın. Temel kavramlar hakkında daha fazla bilgi edinmek için Wazuh sunucusu API isteğini ve yanıtını anlama bölümüne bakın.

Komut Satırı Aracılığıyla Wazuh Sunucu API'sine Giriş Yapma
Güvenli erişimi sağlamak için tüm Wazuh sunucu API uç noktaları kimlik doğrulaması gerektirir. Kullanıcılar her istekte bir JSON Web Token (JWT) eklemelidir. JWT, taraflar arasında bilgileri bir JSON nesnesi olarak güvenli bir şekilde iletmek için kompakt ve kendi kendine yeten bir yöntem tanımlayan açık bir standarttır (RFC 7519). POST /security/user/authenticate kullanarak Wazuh sunucu API'sine giriş yapmak ve API uç noktalarına erişmek için gerekli bir belirteç edinmek için aşağıdaki adımları izleyin:
-
Wazuh sunucu API'sine bir kullanıcı kimlik doğrulama POST isteği göndermek ve döndürülen JWT'yi değişkende depolamak için aşağıdaki komutu çalıştırın
TOKEN
.<WAZUH_API_USER>
ve'yi<WAZUH_API_PASSWORD>
kimlik bilgilerinizle değiştirin.TOKEN=$(curl -u <WAZUH_API_USER>:<WAZUH_API_PASSWORD> -k -X POST "https://localhost:55000/security/user/authenticate?raw=true")
Not:
-SSL
API'de (HTTPS) etkinleştirilmişse ve varsayılan kendi kendine imzalanmış sertifikaları kullanıyorsa, sunucu bağlantı doğrulamasını önlemek için parametreyi eklemeniz gerekir . cURL komutları aracılığıyla kimlik doğrulaması yaparken sorgu parametresini-k
kullanmanızı öneririzraw=true
, çünkü belirteci düz metin olarak döndürerek işlemeyi basitleştirir, özellikle uzun JWT'ler için yararlıdır.
Varsayılan Wazuh sunucusu API kimlik bilgisi 'dirwazuh:wazuh
. Ancak Wazuh dağıtımı kurulum betiği kullanılarak gerçekleştirildiyse, Wazuh API kullanıcısı 'dir ve ' komutunu çalıştırarakwazuh
parolayı çıkarabilirsiniz .wazuh-install-files.tar
tar -axf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt -O | grep -P "\'wazuh\'" -A 1
Eğerwazuh
şifrenizi geri alamazsanız, kullanıcı şifresini sıfırlayabilirsiniz . -
Jetonun oluşturulduğunu doğrulayın:
echo $TOKEN
Çıktı aşağıdakine benzer uzun bir dize olmalıdır:
eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA3ODk4NTEzLCJleHAiOjE3MDc4OTk0MTMsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJ3aGl0ZSJ9.ACcJ3WdV3SnTOC-PV2oGZGCyH3GpStSOu161UHHT7w6eUm_REOP_g8SqqIJDDW0gCcQNJTEECortIuI4zj7nybNhACRlBrDBZoG4Re4HXEpAchyFQXwq0SsZ3HHSj7eJinBF0pJDG0D8d1_LkcoxaX3FpxpsCZ4xzJ492CpnVZLT8qI4
Kimlik doğrulama başarısız olursa, çıktı bir hata mesajı görüntüler veya boş kalır. Bu gibi durumlarda, kullanıcı kimlik bilgilerinizi iki kez kontrol edin ve Wazuh sunucu API'sine ağ bağlantınız olduğundan emin olun.
-
Her şeyin beklendiği gibi çalıştığını doğrulamak için bir API isteği gönderin:
curl -k -X GET "https://localhost:55000/" -H "Authorization: Bearer $TOKEN"
{ "data": { "title": "Wazuh API REST", "api_version": "4.7.4", "revision": 40717, "license_name": "GPL 2.0", "license_url": "https://github.com/wazuh/wazuh/blob/master/LICENSE", "hostname": "wazuh-master", "timestamp": "2024-05-14T21:34:15Z"}, "error": 0 }
Giriş yaptıktan sonra, aşağıdaki yapıyı kullanarak herhangi bir API uç noktasına erişebilirsiniz.
<METHOD>
İstediğiniz yöntemle ve<ENDPOINT>
erişmek istediğiniz uç noktaya karşılık gelen dizeyle değiştirin. Bir ortam değişkeni kullanmıyorsanız,$TOKEN
elde edilen JWT ile değiştirin.curl -k -X <METHOD> "https://localhost:55000/<ENDPOINT>" -H "Authorization: Bearer $TOKEN"
Scriptler Aracılığıyla Wazuh Sunucu API'sine Giriş Yapma
Bu bölüm, Wazuh sunucusuyla etkileşimleri otomatikleştirmek için temel bir adım olan komut dosyalarını kullanarak Wazuh sunucusu API'sine giriş yapma sürecini ayrıntılı olarak açıklar. Sağlanan örnekler, hem varsayılan ( false
) hem de düz metin ( true
) raw
parametrelerini göstererek gerçek dünya uygulamalarını sergilemeyi amaçlamaktadır. raw
Parametre, olarak ayarlandığında true
, yanıtın düz metin veya asgari düzeyde işlenmiş bir biçimde olması gerektiği anlamına gelir. Tersine, raw
parametre olduğunda false
, yanıt ayrıştırma ve entegrasyonu kolaylaştırmak için daha yapılandırılmış bir JSON biçimindedir. Bu komut dosyaları, otomasyon yoluyla operasyonel verimliliğini artırmak isteyen veya özel entegrasyonlar için Wazuh sunucusu API'sine programlı olarak nasıl erişileceğini anlamak isteyen kullanıcılar için tasarlanmıştır.
Python Scriptiyle Oturum Açma
Python betiği kullanarak Wazuh sunucu API'sine kimlik doğrulaması yapabilirsiniz. Aşağıdaki betik, wazuh_api_authenticator.py
bir JWT elde etmek için Wazuh sunucu API'siyle kimlik doğrulaması yapar. Daha sonra Wazuh aracılarının durumlarının bir özetini almak için istek başlığındaki belirteci kullanır.
#!/usr/bin/env python3 import json import requests import urllib3 from base64 import b64encode # Disable insecure https warnings (for self-signed SSL certificates) urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) # Configuration protocol = 'https' host = 'localhost' port = 55000 user = '<WAZUH_API_USER>' password = '<WAZUH_API_PASSWORD>' login_endpoint = 'security/user/authenticate' login_url = f"{protocol}://{host}:{port}/{login_endpoint}" basic_auth = f"{user}:{password}".encode() login_headers = {'Content-Type': 'application/json', 'Authorization': f'Basic {b64encode(basic_auth).decode()}'} print("\nLogin request ...\n") response = requests.post(login_url, headers=login_headers, verify=False) token = json.loads(response.content.decode())['data']['token'] print(token) # New authorization header with the JWT we got requests_headers = {'Content-Type': 'application/json', 'Authorization': f'Bearer {token}'} print("\n- API calls with TOKEN environment variable ...\n") print("Getting API information:") response = requests.get(f"{protocol}://{host}:{port}/?pretty=true", headers=requests_headers, verify=False) print(response.text) print("\nGetting agents status summary:") response = requests.get(f"{protocol}://{host}:{port}/agents/summary/status?pretty=true", headers=requests_headers, verify=False) print(response.text) print("\nEnd of the script.\n")
<WAZUH_API_USER>
ve <WAZUH_API_PASSWORD>
ifadelerini doğru bilgilerle değiştirin .
Python requests
modülünü kurun:
python3 -m pip install requests
Not: Python modülü urllib3
sürüm 2.0 ve üzeri yalnızca OpenSSL sürüm 1.1.1 veya üzerini destekler. Sisteminizde daha eski bir OpenSSL sürümü varsa, şunlardan birini yapmanız gerekir:
- OpenSSL'i 1.1.1 veya daha üst bir sürüme yükseltin.
- urllib3
Mevcut OpenSSL sürümünüzle uyumlu bir sürüme geçin .
Uyumluluk sorunlarını önlemek için lütfen yazılım bağımlılıklarınızın düzgün bir şekilde hizalandığından emin olun.
Python betiğini çalıştırın wazuh_api_authenticator.py
:
python3 wazuh_api_authenticator.py
Login request ... eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNjAyMjMxNjU2LCJleHAiOjE2MDIyMzUyNTYsInN1YiI6IndhenVoIiwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJ3aGl0ZSJ9.V60_otHPaT4NTkrS6SF3GHva0Z9r5p4mqe5Cn0hk4o4 - API calls with TOKEN environment variable ... Getting API information: { "data": { "title": "Wazuh API REST", "api_version": "4.7.4", "revision": 40717, "license_name": "GPL 2.0", "license_url": "https://github.com/wazuh/wazuh/blob/master/LICENSE", "hostname": "wazuh-master", "timestamp": "2024-05-14T21:34:15Z" }, "error": 0 } Getting agents status summary: { "data": { "connection": { "active": 1, "disconnected": 0, "never_connected": 0, "pending": 0, "total": 1 }, "configuration": { "synced": 1, "not_synced": 0, "total": 1 } }, "error": 0 } End of the script.
Bash Script Oturum Açma
Ayrıca bir Bash betiği kullanarak Wazuh sunucu API'sine kimlik doğrulaması yapabilirsiniz. Aşağıdaki betik, wazuh_api_authenticator.sh
bir JWT elde etmek için Wazuh sunucu API'siyle kimlik doğrulaması yapar. Daha sonra Wazuh aracıları tarafından kullanılan işletim sistemlerinin bir özetini almak için istek başlığındaki belirteci kullanır.
#!/bin/bash echo -e "\n- Getting token...\n" TOKEN=$(curl -u <WAZUH_API_USER>:<WAZUH_API_PASSWORD> -k -X POST "https://localhost:55000/security/user/authenticate?raw=true") echo -e "\n- API calls with TOKEN environment variable ...\n" echo -e "Getting default information:\n" curl -k -X GET "https://localhost:55000/?pretty=true" -H "Authorization: Bearer $TOKEN" echo -e "\n\nGetting /agents/summary/os:\n" curl -k -X GET "https://localhost:55000/agents/summary/os?pretty=true" -H "Authorization: Bearer $TOKEN" echo -e "\n\nEnd of the script.\n"
<WAZUH_API_USER>
ve <WAZUH_API_PASSWORD>
öğesini doğru kimlik bilgileriyle değiştirin
Bash betiğini çalıştırın wazuh_api_authenticator.sh
:
bash wazuh_api_authenticator.sh
- Getting token... Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 3059 100 3059 0 0 17089 0 --:--:-- --:--:-- --:--:-- 17089 - API calls with TOKEN environment variable ... Getting default information: { "data": { "title": "Wazuh API REST", "api_version": "4.7.4", "revision": 40717, "license_name": "GPL 2.0", "license_url": "https://github.com/wazuh/wazuh/blob/master/LICENSE", "hostname": "wazuh-master", "timestamp": "2024-05-14T21:34:15Z" }, "error": 0 } Getting /agents/summary/os: { "data": { "affected_items": [ "windows" ], "total_affected_items": 1, "total_failed_items": 0, "failed_items": [] }, "message": "Showing the operative system of all specified agents", "error": 0 } End of the script.
Wazuh Sunucusu API İsteğini ve Yanıtını Anlama
Standart bir Wazuh sunucusu API isteği üç temel bileşenden oluşur: istek yöntemi (GET, POST, PUT veya DELETE), erişilen uç noktayı belirten API URL'si ve yetkilendirme başlığı. Bu başlık, isteği doğrulamak ve yetkilendirmek için bir JWT içermelidir. Aşağıda bir cURL isteği örneği verilmiştir:
curl -k -X GET "https://localhost:55000/agents/summary/os?pretty=true" -H "Authorization: Bearer $TOKEN"
Her istek için cURL komutu aşağıdaki alanları içerir:
Alan |
Tanım |
---|---|
|
HTTP sunucusuyla iletişim kurarken kullanılacak bir istek yöntemi belirtin. |
|
Kullanılacak API URL'si. API'de SSL'nin aktif olup olmadığına bağlı olarak |
|
JWT'yi belirtmek için isteğe ek bir başlık ekleyin. |
|
SSL sertifika hatalarını bastırın (yalnızca varsayılan kendi kendine imzalı sertifikaları kullanıyorsanız). |
Tüm yanıtlar JSON formatındadır ve çoğu şu yapıyı takip eder:
Alan |
İsteğe bağlı alt alanlar |
Tanım |
---|---|---|
veri |
etkilenen_öğeler |
İstekte başarıyla etkilenen öğelerin her birini listeleyin. |
toplam_etkilenen_öğeler |
Başarıyla etkilenen öğelerin toplam sayısı. |
|
başarısız_öğeler |
İstekteki başarısız olan her öğeyi içeren liste. |
|
toplam_başarısız_öğeler |
Başarısız olan öğelerin toplam sayısı. |
|
mesaj |
Sonuç açıklaması. |
|
hata |
HTTP yanıtları için |
-
Varsayılan olarak, veri koleksiyonları içeren yanıtlar en fazla 500 öğe döndürür. Büyük koleksiyonlar arasında yineleme yapmak için
offset
ve parametrelerini kullanabilirsiniz . Parametre 100.000 öğeye kadar izin verse de, zaman aşımı ve aşırı büyük yanıtlar gibi beklenmeyen davranışları önlemek için varsayılan 500 öğe sınırını aşmamanızı öneririz. Dikkatli kullanın.limit
limit
-
Tüm yanıtlar bir HTTP durum kodu içerir: 2xx (başarılı), 4xx (istemci hatası), 5xx (sunucu hatası), vb.
-
Tüm istekler ( ve hariç) JSON yanıtını daha okunabilir bir biçime dönüştürmek için parametreyi kabul eder .
POST /security/user/authenticate
POST /security/user/authenticate/run_as
pretty
-
Wazuh sunucu API'si, seçilen günlük biçimine bağlı olarak günlükleri
api.log
veyaapi.json
dosyalarında depolar. Bu günlük dosyaları Wazuh sunucusunda bulunur . Wazuh API yapılandırma dosyasında/var/ossec/logs/
ayrıntı düzeyini değiştirebilirsiniz . -
Wazuh API günlükleri varsayılan olarak zamana göre döndürülür. Döndürme yalnızca günlüğe yeni bir giriş eklendikten sonra gerçekleşir. Örneğin, zaman tabanlı döndürme, her gece yarısı olmasa da farklı bir günde yeni bir giriş eklendiğinde tetiklenir. Döndürülmüş günlükler .
/var/ossec/logs/api/<year>/<month>/
kullanılarak depolanır ve sıkıştırılırgzip
. -
request_timeout
Sunucu API yapılandırma dosyasının alanında tanımlanan zaman süresinden sonra yanıt alınmazsa tüm Wazuh sunucu API istekleri iptal edilir/var/ossec/api/configuration/api.yaml
. Bu zaman aşımını devre dışı bırakmak için parametreyi kullanabilirsiniz ; bu, özellikle PUT /agents/upgradewait_for_complete
gibi beklenen süreyi aşabilecek çağrılar için yararlıdır .
Not: Maksimum API yanıt süresini ayarlamak için Wazuh sunucusundaki dosyadaki request_timeout
değeri güncelleyin./var/ossec/api/configuration/api.yaml
Hata içermeyen örnek yanıt (HTTP durum kodu 200):
{ "data": { "affected_items": [ "master-node", "worker1" ], "total_affected_items": 2, "failed_items": [], "total_failed_items": 0 }, "message": "Restart request sent to all specified nodes", "error": 0 }
Hatalı örnek yanıt (HTTP durum kodu 200):
{ "data": { "affected_items": [], "total_affected_items": 0, "total_failed_items": 4, "failed_items": [ { "error": { "code": 1707, "message": "Cannot send request, agent is not active", "remediation": "Please, check non-active agents connection and try again. Visit https://documentation.wazuh.com/current/user-manual/registering/index.html and https://documentation.wazuh.com/current/user-manual/agents/agent-connection.html to obtain more information on registering and connecting agents" }, "id": [ "001", "002", "009", "010" ] }, ] }, "message": "Restart command was not sent to any agent", "error": 1 }
Kısmi yanıt örneği (HTTP durum kodu 200):
{ "data": { "affected_items": [ { "ip": "10.0.0.9", "id": "001", "name": "Carlos", "dateAdd": "2020-10-07T08:14:32Z", "node_name": "unknown", "registerIP": "10.0.0.9", "status": "never_connected" } ], "total_affected_items": 1, "total_failed_items": 1, "failed_items": [ { "error": { "code": 1701, "message": "Agent does not exist", "remediation": "Please, use `GET /agents?select=id,name` to find all available agents" }, "id": [ "005" ] } ] }, "message": "Some agents information was not returned", "error": 2 }
Yetkisiz bir isteği bildirmek için örnek yanıt (HTTP durum kodu 401):
{ "title": "Unauthorized", "detail": "The server could not verify that you are authorized to access the URL requested. You either supplied the wrong credentials (e.g. a bad password), or your browser doesn't understand how to supply the credentials required.", }
İzin reddedildi hatasını (HTTP durum kodu 403) bildirmek için örnek yanıt:
{ "title": "Permission Denied", "detail": "Permission denied: Resource type: *:*", "remediation": "Please, make sure you have permissions to execute the current request. For more information on how to set up permissions, please visit https://documentation.wazuh.com/current/user-manual/api/rbac/configuration.html", "error": 4000, "dapi_errors": { "unknown-node": { "error": "Permission denied: Resource type: *:*" } } }
Wazuh Sunucu API Kullanımına İlişkin Pratik Örnekler
Bu bölümde, cURL, Python betikleri ve PowerShell betikleri kullanarak Wazuh sunucu API'sine çeşitli istek türlerinin nasıl gönderileceğini gösteriyoruz. Bu örnekler, öngörebileceğiniz daha gelişmiş kullanım durumları için temel bilgi görevi görür.
CURL
cURL, HTTP/HTTPS istekleri ve komutları göndermek için bir komut satırı aracıdır. Birçok Linux ve macOS uç noktasına önceden yüklenmiş olarak gelir ve kullanıcıların Wazuh sunucu API'siyle doğrudan komut satırından etkileşim kurmasını sağlar. Herhangi bir uç noktayı yürütmeden önce bir JWT edinmeniz gerektiğini unutmayın. Aşağıdaki örneklerde, belirteci almak ve onu bir ortam değişkeni ( $TOKEN
) olarak kaydetmek için ham seçeneğini kullanıyoruz. JWT edinmeyle ilgili ayrıntılı talimatlar için lütfen başlarken bölümüne bakın.
GET
Aşağıdaki GET isteği, Wazuh sunucu API'si hakkında başlık, sürüm, revizyon, lisans, ana bilgisayar adı ve geçerli zaman damgası gibi temel bilgileri alır:
# curl -k -X GET "https://localhost:55000/" -H "Authorization: Bearer $TOKEN"
{ "data": { "title": "Wazuh API", "api_version": "4.7.4", "revision": 40717, "license_name": "GPL 2.0", "license_url": "https://github.com/wazuh/wazuh/blob/master/LICENSE", "hostname": "wazuh-master", "timestamp": "2024-05-14T21:34:15Z" }, "error": 0 }
POST
Wazuh sunucusu API'sine yapılan aşağıdaki POST isteği, istek gövdesinde kullanıcı adı test_user
ve parola belirtilerek Wazuh sunucusunda yeni bir kullanıcı oluşturur .Test_user1
curl -k -X POST "https://localhost:55000/security/users" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d "{\"username\":\"test_user\",\"password\":\"Test_user1\"}"
{ "data": { "affected_items": [ { "username": "test_user", "roles": [] } ], "total_affected_items": 1, "total_failed_items": 0, "failed_items": [] }, "message": "User was successfully created", "error": 0 }
DELETE
Wazuh sunucusu API'sine gönderilen aşağıdaki DELETE isteği, Wazuh sunucusundaki tüm aracı gruplarını siler.
curl -k -X DELETE "https://localhost:55000/groups?pretty=true&groups_list=all" -H "Authorization: Bearer $TOKEN"
{ "data": { "affected_items": [ "group1", "group2", "group3" ], "total_affected_items": 3, "total_failed_items": 0, "failed_items": [], "affected_agents": [ "001", "002", "003", "005", "006", "007", "008", "009", "010" ] }, "message": "All selected groups were deleted", "error": 0 }
Python
Bağlantısı kesilen aracılar hakkında, son canlı tutma süreleri ve kimlikleri dahil olmak üzere bilgi almak için bir Python betiği kullanabilirsiniz. Bunu yapmak için, betik önce bir taşıyıcı belirteci almak için temel kimlik doğrulamasını kullanarak Wazuh sunucu API'siyle kimlik doğrulaması yapar, ardından gerekli bilgileri almak için bir GET isteği yapar.
Aşağıdaki Python betiğini şu şekilde kaydedin get_agent_keep_alive.py
:
#!/usr/bin/env python3 import json from base64 import b64encode import requests # To install requests, use: pip install requests import urllib3 # Configuration endpoint = '/agents?select=lastKeepAlive&select=id&status=disconnected' protocol = 'https' host = '<WAZUH_SERVER_API_IP>' port = '<WAZUH_SERVER_API_PORT>' user = '<WAZUH_API_USER>' password = '<WAZUH_API_PASSWORD>' # Disable insecure https warnings (for self-signed SSL certificates) urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) # Functions def get_response(request_method, url, headers, verify=False, body=None): """Get API result""" if body is None: body = {} request_result = getattr(requests, request_method.lower())(url, headers=headers, verify=verify, data=body) if request_result.status_code == 200: return json.loads(request_result.content.decode()) else: raise Exception(f"Error obtaining response: {request_result.json()}") # Variables base_url = f"{protocol}://{host}:{port}" login_url = f"{base_url}/security/user/authenticate" basic_auth = f"{user}:{password}".encode() headers = { 'Authorization': f'Basic {b64encode(basic_auth).decode()}', 'Content-Type': 'application/json' } headers['Authorization'] = f'Bearer {get_response("POST", login_url, headers)["data"]["token"]}' # Request response = get_response("GET", url=base_url + endpoint, headers=headers) # WORK WITH THE RESPONSE AS YOU LIKE print(json.dumps(response, indent=4, sort_keys=True))
Aşağıdaki değişkenleri değiştirin:
-
<WAZUH_SERVER_API_IP>
Wazuh sunucunuzun IP adresi ile. -
<WAZUH_SERVER_API_PORT>
Wazuh sunucusu API port numarasıyla (varsayılan olarak port 5500). -
<WAZUH_API_USER>
ve<WAZUH_API_PASSWORD>
doğru belgelerle.
Python requests
modülünü kurun:
python3 -m pip install requests
Not: Python modülü urllib3
sürüm 2.0 ve üzeri yalnızca OpenSSL sürüm 1.1.1 veya üzerini destekler. Sisteminizde daha eski bir OpenSSL sürümü varsa, şunlardan birini yapmanız gerekir:
- OpenSSL'i 1.1.1 veya daha üst bir sürüme yükseltin.
- urllib3
Mevcut OpenSSL sürümünüzle uyumlu bir sürüme geçin.
Uyumluluk sorunlarını önlemek için lütfen yazılım bağımlılıklarınızın düzgün bir şekilde hizalandığından emin olun.
Bağlantısı kesilen aracılar hakkında bilgi almak için Python betiğini çalıştırın:
python3 get_agent_keep_alive.py
{ "data": { "affected_items": [ { "id": "009", "lastKeepAlive": "2020-05-23T12:39:50Z" }, { "id": "010", "lastKeepAlive": "2020-05-23T12:39:50Z" } ], "failed_items": [], "total_affected_items": 2, "total_failed_items": 0 }, "message": "All selected agents information was returned", "error": 0 }
Güç Kabuğu
Bağlantısı kesilen aracıların son canlı tutma süreleri ve kimlikleri dahil olmak üzere ayrıntıları almak için bir PowerShell betiği de kullanabilirsiniz. Bunu yapmak için, betik önce bir taşıyıcı belirteci almak için temel kimlik doğrulamasını kullanarak Wazuh sunucu API'siyle kimlik doğrulaması yapar, ardından gerekli bilgileri almak için bir GET isteği yapar.
Aşağıdaki PowerShell betiğini şu şekilde kaydedin get_agent_keep_alive.ps1
:
function Ignore-SelfSignedCerts { add-type @" using System.Net; using System.Security.Cryptography.X509Certificates; public class PolicyCert : ICertificatePolicy { public PolicyCert() {} public bool CheckValidationResult( ServicePoint sPoint, X509Certificate cert, WebRequest wRequest, int certProb) { return true; } } "@ [System.Net.ServicePointManager]::CertificatePolicy = new-object PolicyCert } # Configuration $endpoint = "/agents?select=lastKeepAlive&select=id&status=disconnected" $method = "get" $protocol = "https" $host_name = "<WAZUH_SERVER_API_IP>" $port = "<WAZUH_SERVER_API_PORT>" $username = "<WAZUH_API_USER>" $password = "<WAZUH_API_PASSWORD>" # Variables $base_url = $protocol + "://" + $host_name + ":" + $port $login_url = $base_url + "/security/user/authenticate" $endpoint_url = $base_url + $endpoint $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password))) $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]" $headers.Add("Content-Type", 'application/json') $headers.Add("Authorization", "Basic " + $base64AuthInfo) Ignore-SelfSignedCerts $token_response = Invoke-RestMethod -Uri $login_url -Headers $headers $headers["Authorization"] = "Bearer " + $token_response.data.token # Request try{ $response = Invoke-RestMethod -Method $method -Uri $endpoint_url -Headers $headers }catch{ $response = $_.Exception.Response } # WORK WITH THE RESPONSE AS YOU LIKE Write-Output $response.data
Aşağıdaki değişkenleri değiştirin:
-
<WAZUH_SERVER_API_IP>
Wazuh sunucunuzun IP adresi ile. -
<WAZUH_SERVER_API_PORT>
Wazuh sunucusu API port numarasıyla (varsayılan olarak port 5500). -
<WAZUH_API_USER>
ve<WAZUH_API_PASSWORD>
doğru belgelerle.
Bağlantısı kesilen aracılar hakkında bilgi almak için Windows uç noktasında PowerShell betiğini çalıştırın:
powershell .\get_agent_keep_alive.py
affected_items total_affected_items total_failed_items failed_items -------------- -------------------- ------------------ ------------ {@{lastKeepAlive=2020-05-23T12:39:50Z; id=009}, 2 0 {} @{lastKeepAlive=2020-05-23T12:39:50Z; id=010}}
Yapılandırma
Not: Wazuh sunucu API'sini nasıl koruyacağınız hakkında daha fazla bilgi için lütfen Wazuh sunucu API'sini güvence altına alma bölümünü inceleyin.
Wazuh Sunucu API Yapılandırma Dosyası
/var/ossec/api/configuration/api.yaml
Wazuh sunucusu API yapılandırması Wazuh sunucusundaki dosyada bulunur . Varsayılan olarak, tüm ayarlar yorum satırına alınır. Farklı bir yapılandırma uygulamak için, yorum satırını kaldırın ve istediğiniz satırı düzenleyin.
Yapılandırma dosyası için tüm kullanılabilir ayarlar şunlardır /var/ossec/api/configuration/api.yaml
. Her bir ayar hakkında daha fazla bilgi için yapılandırma seçeneklerini kontrol edin:
host: ['0.0.0.0', '::'] port: 55000 drop_privileges: yes experimental_features: no max_upload_size: 10485760 intervals: request_timeout: 10 https: enabled: yes key: "server.key" cert: "server.crt" use_ca: False ca: "ca.crt" ssl_protocol: "auto" ssl_ciphers: "" logs: level: "info" format: "plain" max_size: enabled: false cors: enabled: no source_route: "*" expose_headers: "*" allow_headers: "*" allow_credentials: no access: max_login_attempts: 50 block_time: 300 max_request_per_minute: 300 upload_configuration: remote_commands: localfile: allow: yes exceptions: [] wodle_command: allow: yes exceptions: [] limits: eps: allow: yes agents: allow_higher_versions: allow: yes indexer: allow: yes integrations: virustotal: public_key: allow: yes minimum_quota: 240
Uyarı: Bir Wazuh sunucu kümesi çalıştırıldığında, ana düğüm yerel Wazuh sunucu API yapılandırma dosyasını otomatik olarak çalışan düğümlere göndermez. Her düğüm kendi Wazuh sunucu API yapılandırmasını korur. Bu nedenle, ana düğümdeki yapılandırma dosyasında herhangi bir değişiklik yapılırsa, tutarlılığı sağlamak için her çalışan düğümünde yapılandırmayı manuel olarak güncellemelisiniz. Her çalışanın yerel yapılandırmasında IP adresinin ve bağlantı noktasının üzerine yazılmadığından emin olun.
Yapılandırma dosyasını düzenledikten sonra Wazuh yönetici servisini kullanarak Wazuh sunucu API'sini yeniden başlattığınızdan emin olun:
Systemd
systemctl restart wazuh-manager
SysV Başlatma
service wazuh-manager restart
API Yapılandırma Seçenekleri
home
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|
Geçerli IP adresleri veya ana bilgisayar adlarının listesi |
['0.0.0.0', '::'] |
Wazuh sunucu API'sinin çalıştığı Wazuh yöneticisinin IP adresleri veya ana bilgisayar adları. |
port
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|
1 ile 65535 arasındaki herhangi bir değer |
55000 |
Wazuh sunucu API'sinin dinleyeceği port. |
use_only_authd
4.3.0 sürümünden itibaren kullanımdan kaldırılmıştır.
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|
evet, doğru, hayır, yanlış |
YANLIŞ |
Ajanları kaydederken ve kaldırırken wazuh-authd kullanımını zorunlu kılın. |
drop_privileges
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|
evet, doğru, hayır, yanlış |
doğru |
Wazuh-api işlemini kullanıcı olarak çalıştırın |
experimental_features
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|
evet, doğru, hayır, yanlış |
YANLIŞ |
Geliştirme aşamasındaki özellikleri etkinleştirin |
max_upload_size
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|
Herhangi bir pozitif tam sayı |
10485760 |
API'nin kabul edebileceği maksimum gövde boyutunu bayt cinsinden ayarlayın (0 -> sınırsız) |
intervals (aralıklar)
Alt alanlar |
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|---|
request_timeout |
10 |
Her API isteği için maksimum yanıt süresini (saniye cinsinden) ayarlayın |
https
Alt alanlar |
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|---|
enabled |
evet, doğru, hayır, yanlış |
doğru |
Wazuh sunucu API'sinde SSL'yi (https) etkinleştirin veya devre dışı bırakın. |
key |
Herhangi bir metin dizesi |
sunucu.anahtar |
Özel anahtarın adı. İçinde saklanır |
sertifika |
Herhangi bir metin dizesi |
sunucu.crt |
Sertifikanın adı. Şurada saklanır |
use_ca |
evet, doğru, hayır, yanlış |
YANLIŞ |
Bir Sertifika Yetkilisinden alınan sertifikanın kullanılıp kullanılmayacağı. |
ca |
Herhangi bir metin dizesi |
yaklaşık.krt |
Sertifika Yetkilisinin (CA) sertifikasının adı. İçinde saklanır |
ssl_protocol |
TLS, TLSv1, TLSv1.1, TLSv1.2, otomatik |
4.8.0 sürümündeki yenilikler. otomatik |
SSL protokolüne izin vermek için. Değeri büyük/küçük harfe duyarlı değildir. |
ssl_ciphers |
Herhangi bir metin dizesi |
Hiçbiri |
SSL şifrelerine izin verilir. Değeri büyük/küçük harfe duyarlı değildir. |
logs
Alt alanlar |
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|---|
level |
devre dışı, bilgi, uyarı, hata, hata ayıklama, debug2 (her seviye bir önceki seviyeyi içerir) |
bilgi |
Wazuh sunucusu API günlüklerinin ayrıntı düzeyini ayarlayın. |
path |
Herhangi bir metin dizesi. |
günlükler/api.log |
4.3.0 sürümünden itibaren kullanımdan kaldırılmıştır. Wazuh sunucusu API kayıtlarının kaydedileceği yol. |
format |
ova |
4.4.0 sürümündeki yenilikler. Wazuh sunucusu API günlüklerinin biçimini ayarlayın. |
max_size
4.6.0 sürümündeki yenilikler.
Alt alanlar |
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|---|
enabled |
evet, doğru, hayır, yanlış |
YANLIŞ |
Zaman tabanlı ve boyut tabanlı Wazuh API günlük döndürme arasında geçiş yapın. Bu seçeneği etkinleştirmek zaman tabanlı döndürmeyi devre dışı bırakır ve bunun yerine dosya boyutuna dayalı döndürmeyi etkinleştirir. |
size |
Geçerli bir birimden sonra gelen herhangi bir pozitif sayı. Kilobayt için K/k, megabayt için M/m. |
1M |
Boyut tabanlı günlük döndürmeyi tetiklemeyecek şekilde maksimum dosya boyutunu ayarlayın. 1 M'den düşük değerler 1 M olarak kabul edilir. |
cors
Alt alanlar |
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|---|
enabled |
YANLIŞ |
Wazuh sunucu API'sinde CORS kullanımını etkinleştirin veya devre dışı bırakın. |
|
source_route |
Herhangi bir metin dizesi |
|
Kaynakların mevcut olacağı kaynaklar. Örneğin |
expose_headers |
Herhangi bir metin dizesi |
|
Hangi başlıkların yanıtın bir parçası olarak açığa çıkarılabileceği. |
allow_headers |
|
Gerçek istek sırasında hangi HTTP başlıklarının kullanılabileceği. |
|
allow_credentials |
evet, doğru, hayır, yanlış |
YANLIŞ |
Tarayıcılara yanıtın ön uç JavaScript'e açılıp açılmayacağını söyleyin. |
access (erişim)
Alt alanlar |
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|---|
max_login_attempts |
Herhangi bir pozitif tam sayı |
50 |
Belirtilen saniye sayısı içerisinde yapılabilecek maksimum oturum açma girişimi sayısını ayarlayın |
block_time |
300 |
Oturum açma isteklerini denemek için belirlenen zaman aralığı (saniye cinsinden). Belirlenen istek sayısı ( |
|
max_request_per_minute |
Herhangi bir pozitif tam sayı |
300 |
Dakikada izin verilen maksimum istek sayısı. Kimlik doğrulama istekleri hariç tüm Wazuh sunucu API uç noktaları için geçerlidir. Bu sınıra bir dakikadan kısa sürede ulaşılması, kalan süre boyunca herhangi bir kullanıcıdan gelen tüm istekleri engeller. Bir değeri |
upload_configuration
4.4.0 sürümündeki yenilikler.
remote_commands (yerel_dosya ve wodle "komut")
Alt alanlar |
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|---|
allow |
evet, doğru, hayır, yanlış |
doğru |
Wazuh sunucu API'si aracılığıyla uzaktan komutlarla yapılandırmaların yüklenmesine izin verin. Bu seçeneğin ayarlanması, wodle "command" seçeneğini veya localfile etiketi içindeki seçeneği içeren dosyaların |
exceptions |
komut listesi |
[ ] |
API aracılığıyla yüklenmesine izin verilen komutların bir listesini ayarlayın. Bu istisnalar yapılandırmadan bağımsız olarak her zaman yüklenebilir |
sınırlar
eps
4.4.0 sürümündeki yenilikler.
Alt alanlar |
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|---|
allow |
evet, doğru, hayır, yanlış |
doğru |
Wazuh sunucu API'si aracılığıyla değiştirilmiş EPS limitleriyle yapılandırmaların yüklenmesine izin verin. Bu seçeneğin ayarlanması, genel etiketin içindeki bölüm değiştiyse dosyaların |
agents
allow_higher_versions
4.6.0 sürümündeki yenilikler.
Alt alanlar |
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|---|
allow |
evet, doğru, hayır, yanlış |
doğru |
Wazuh sunucu API'si aracılığıyla daha yüksek aracı sürümlerini kabul eden yapılandırmaların yüklenmesine izin verin. Bu seçeneğin ayarlanması, auth veya remote etiketleri içindeki değere sahip bölümü içeren dosyaların |
indexer
4.8.0 sürümündeki yenilikler.
Alt alanlar |
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|---|
allow |
evet, doğru, hayır, yanlış |
doğru |
Wazuh sunucu API'si aracılığıyla güncellenmiş bir dizinleyici yapılandırma bölümünün yüklenmesine izin verir . Bu seçeneğin ayarlanması |
entegrasyonlar
4.8.0 sürümündeki yenilikler.
virüstotal (public_key)
Alt alanlar |
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|---|
allow |
evet, doğru, hayır, yanlış |
doğru |
Wazuh sunucu API'si aracılığıyla genel bir API anahtarı kullanılarak güncellenmiş bir Virus Total entegrasyon yapılandırma bölümünün yüklenmesine izin verir . Bu seçeneğin ayarlanması |
minimum_quota |
Herhangi bir pozitif tam sayı |
240 |
Virus Total genel API anahtarı için minimum kota değeri. |
Wazuh Sunucu API Güvenlik Yapılandırması
auth_token_exp_timeout
Güvenlik yapılandırmasını ve rbac_mode
ayarlarını yalnızca Wazuh sunucu API uç noktaları aracılığıyla sorgulayabilir ve değiştirebilirsiniz : GET /security/config , PUT /security/config ve DELETE /security/config . auth_token_exp_timeout
Bir kimlik doğrulama belirtecinin süresi dolmadan ve yenilenmesi gerekmeden önceki saniye cinsinden süreyi tanımlar. rbac_mode
Kullanıcı rollerine ve izinlerine göre kaynaklara ve uç noktalara erişimi genel olarak izin vermek veya kısıtlamak üzere yapılandırılabilen Rol Tabanlı Erişim Kontrol sisteminin genel davranışını belirler. Daha fazla ayrıntı için Rol Tabanlı Erişim Kontrol belgelerine bakın. Yapılandırma, geçerliyse bir kümedeki her Wazuh sunucu API'sine uygulanır.
Her bir ayar hakkında daha fazla bilgi için lütfen güvenlik yapılandırma seçeneklerini kontrol edin .
auth_token_exp_timeout: 900 rbac_mode: white
Uyarı: Güvenlik nedenleriyle, güvenlik yapılandırmasını değiştirmek tüm JWT'leri iptal eder. Değişiklikten sonra oturum açmanız ve yeni bir token edinmeniz gerekecektir.
Güvenlik Yapılandırma Seçenekleri
auth_token_exp_timeout
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|
Herhangi bir pozitif tam sayı |
900 |
JWT token'larının süresinin dolmasının kaç saniye süreceğini ayarlayın. |
rbac_mode
İzin verilen değerler |
Varsayılan değer |
Tanım |
---|---|---|
siyah, beyaz |
beyaz |
RBAC davranışını ayarlayın. Varsayılan olarak, siyah modda her şeye izin verilirken beyaz modda her şey reddedilir. İstenen RBAC altyapısına daha uygun olan rbac_mode'u seçin. Siyah modda, sadece bazı politikalarla birkaç belirli eylem-kaynak çiftini reddetmek çok kolaydır, beyaz mod ise daha güvenlidir ve sıfırdan oluşturulmasını gerektirir. |
Yapılandırma Endpoints
Wazuh sunucu API'sinin geçerli yapılandırmasını sorgulamaya izin veren birkaç uç noktası vardır. Genel API yapılandırmasını değiştirmek için dosyayı Wazuh sunucu API yapılandırma dosyası /var/ossec/api/configuration/api.yaml
bölümünde ayrıntılı olarak açıklandığı şekilde düzenleyin .
Yapılandırmayı Al
-
GET /manager/api/config : Yerel Wazuh sunucusunun API yapılandırmasının tamamını alın.
-
GET /cluster/api/config : Tüm küme düğümlerinin (veya bir listesinin) Wazuh sunucusu API yapılandırmasının tamamını alın.
-
GET /security/config : Mevcut güvenlik yapılandırmasını alın.
Yapılandırmayı Değiştir
-
PUT /security/config : Güvenlik yapılandırmasını değiştirin.
Yapılandırmayı Geri Yükle
-
DELETE /security/config : Varsayılan güvenlik yapılandırmasını geri yükler.
SSL sertifikası
Not: Bu işlem Wazuh sunucu API'si ilk kez çalıştırıldığında otomatik olarak gerçekleştirilir.
SSL sertifikası, Wazuh sunucu API'si ile istemcileri arasında güvenli iletişimi sağlar. Sertifika dosyaları dizinde saklanır /var/ossec/api/configuration/ssl/
.
Wazuh sunucu API'si için yeni sertifikalar oluşturmak üzere aşağıdaki adımları izleyin:
-
Anahtar ve sertifika isteğini oluşturun (
openssl
paket gereklidir):cd /var/ossec/api/configuration/ssl openssl req -newkey rsa:2048 -new -nodes -x509 -days 365 -keyout server.key -out server.crt
Varsayılan olarak, anahtarın parolası sunucu her çalıştırıldığında girilmelidir. Anahtar Wazuh sunucu API'si veya yukarıdaki komut tarafından üretilmişse, parolası olmazdı.
-
(İsteğe bağlı) Anahtarı bir parola ile güvenceye alın:
ssh-keygen -p -f server.key
Yeni şifreyi girmeniz ve onaylamanız istenecektir.
Wazuh Sunucu API'sini Güvence Altına Alma
Wazuh panosu ile Wazuh sunucu API'si arasındaki iletişim varsayılan olarak HTTPS ile şifrelenir. Wazuh sunucu API'si, kullanıcılar bunları sağlamazsa ilk çalıştırma sırasında kendi özel anahtarını ve sertifikasını oluşturur. Ek olarak, Wazuh sunucu API'si OVA kurulumuyla birlikte kurulduğunda aşağıdaki kullanıcı adı-şifre çiftini otomatik olarak oluşturur:
-
wazuh:wazuh
-
wazuh-wui:wazuh-wui
Wazuh dağıtımı kurulum yardımcısı betiği kullanılarak gerçekleştirildiyse, Wazuh API kullanıcı adı şudur wazuh
ve aşağıdaki komutu çalıştırarak parolayı çıkarabilirsiniz:
tar -axf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt -O | grep -P "\'wazuh\'" -A 1
Bu nedenle Wazuh yöneticisini kurduktan sonra Wazuh sunucu API'sinin güvenliğini sağlamak büyük önem taşımaktadır.
Uyarı: Wazuh sunucu API'si tarafından oluşturulan sertifikanın kendi imzalı olması nedeniyle varsayılan şifreleri değiştirmenizi ve kendi sertifikanızı kullanmanızı şiddetle öneririz.
Wazuh Sunucu API'sini Güvence Altına Almak İçin Önerilen Değişiklikler
1. HTTPS Parametrelerini Değiştirin
Wazuh sunucu API'si varsayılan olarak HTTPS'yi etkinleştirmiştir. Eğer içinde kullanılabilir bir sertifika yoksa /var/ossec/api/configuration/ssl/
, Wazuh sunucusu başlatıldığında özel anahtarı ve kendi kendine imzalanmış bir sertifikayı üretecektir. Eğer durum buysa ve API günlük biçimi olarak ayarlanmışsa plain
, aşağıdaki satırlar görünecektir /var/ossec/logs/api.log
:
INFO: HTTPS is enabled but cannot find the private key and/or certificate. Attempting to generate them. INFO: Generated private key file in WAZUH_PATH/api/configuration/ssl/server.key. INFO: Generated certificate file in WAZUH_PATH/api/configuration/ssl/server.crt.
Bu HTTPS seçeneklerini, durumlarını veya sertifika yolunu da içerecek şekilde, şu adreste bulunan Wazuh sunucu API yapılandırma dosyasını düzenleyerek değiştirebilirsiniz /var/ossec/api/configuration/api.yaml
:
https: enabled: yes key: "server.key" cert: "server.crt" use_ca: False ca: "ca.crt" ssl_protocol: "auto" ssl_ciphers: ""
Değişiklikleri uygulamak için Wazuh yönetici hizmetini kullanarak Wazuh sunucu API'sini yeniden başlatın:
Systemd
systemctl restart wazuh-manager
SysV Başlatma
service wazuh-manager restart
2. Yönetici Kullanıcıları İçin Varsayılan Parolayı Değiştirin
Yönetici kullanıcıları için varsayılan şifreyi değiştirmek için wazuh
aşağıdaki wazuh-wui
Wazuh sunucu API isteğini kullanabilirsiniz: PUT /security/users/{user_id} .
Not: Kullanıcıların şifresi 8 ile 64 karakter arasında olmalıdır. En az bir büyük harf, küçük harf, rakam ve sembol içermelidir.
Aşağıda curl kullanarak şifre değiştirmenin bir örneğini gösteriyoruz :
-
Kullanıcıların kullanıcı kimlikleriyle birlikte bir listesini alın:
curl -k -X GET "https://localhost:55000/security/users?pretty=true" -H "Authorization: Bearer $TOKEN"
-
İstenilen kullanıcının şifresini değiştirin:
curl -k -X PUT "https://localhost:55000/security/users/<USER_ID>" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d '{"password": "<NEW_PASSWORD>"}'
<USER_ID>
Kullanıcının ID'si ve<NEW_PASSWORD>
yeni şifre ile değiştirin.Uyarı:
wazuh-wui
kullanıcı parolasını değiştirmek Wazuh panosunu etkileyecektir. Yeni kimlik bilgileriyle/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml
yapılandırma dosyasını uygun şekilde güncellemeniz gerekecektir. Daha fazla bilgi edinmek için Wazuh gösterge tablosu yapılandırma dosyası belgesine bakın.
3. Varsayılan Host ve Portu Değiştirin
Varsayılan olarak, host
olarak ayarlanır ve Wazuh sunucu API'sinin tüm kullanılabilir ağ arayüzlerinde gelen bağlantıları kabul etmesine olanak tanır. Erişimi kısıtlamak için, Wazuh sunucu API yapılandırmasını şurada düzenleyin :['0.0.0.0', '::']
/var/ossec/api/configuration/api.yaml
host: ['0.0.0.0', '::']
Varsayılan portu da değiştirebilirsiniz:
port: 55000
Bu parametreleri yapılandırdıktan sonra, Systemd veya SysV init ile Wazuh yönetici servisini kullanarak Wazuh sunucu API'sini yeniden başlatın:
Systemd
systemctl restart wazuh-manager
SysV Başlatma
service wazuh-manager restart
4. Dakika Başına Maksimum İstek Sayısını Ayarlayın
Wazuh sunucu API'sinin aşırı yüklenmesini önlemek için, API'nin dakikada işleyebileceği maksimum istek sayısını belirlemek için hız sınırlaması uygulayabilirsiniz. Bu sınır aşılırsa, API geri kalan süre boyunca herhangi bir kullanıcıdan gelen diğer istekleri reddeder.
max_request_per_minute
Varsayılan sınır dakikada 300 istektir. Bunu, içindeki ayarı değiştirerek ayarlayın /var/ossec/api/configuration/api.yaml
.
Not: Hız sınırlamasını devre dışı bırakmak için değerini 0 olarak ayarlayın.
5. Maksimum Oturum Açma Girişimi Sayısını Ayarlayın
Kaba kuvvet saldırılarına karşı korunmak için, belirli bir zaman dilimi içinde aynı IP adresinden gelen oturum açma girişimlerini sınırlayabilirsiniz. Bu sınırın aşılması, IP adresini o süre boyunca engeller.
Varsayılan olarak, 300 saniyelik periyotta 50 oturum açma girişimine izin verilir. Bu sınırları ayarlamak için max_login_attempts
ve/veya block_time
ayarlarını /var/ossec/api/configuration/api.yaml
'da düzenleyin.
Rol Tabanlı Erişim Kontrolü
Wazuh Sorgu Dili (WQL) Kullanılarak Verilerin Filtrelenmesi
Wazuh API'sinin sorgularını kullanarak gelişmiş filtreleme mümkündür. Sorgular q
parametre kullanılarak belirtilir. Bir sorgunun yapısı şu şekildedir:
-
Alan adı : Filtrelenecek alan adı. Yanlış bir alan adı kullanılırsa, bir hata oluşacaktır.
-
- Operatör : Filtreleme yapılacak operatör:
-
-
=
: eşitlik. -
!=
: eşitlik değil. -
<
: daha küçük. -
>
: daha büyük. -
~
: gibi. -
()
: gruplama operatörleri.
-
-
Değer : Filtrelenecek değer.
-
- Ayırıcı : Birden fazla "sorguyu" birleştirmek için kullanılan operatör:
-
-
,
: bir . temsil ederOR
. -
;
: bir . temsil ederAND
.
-
Not: Ayrılmış karakterlerin, özellikle noktalı virgüllerin ( ;
→ %3B
) yüzde kodlu olması gerekir . İşlemi kolaylaştırmak için cURL içinde --data-urlencode
kullanabilirsiniz.
Örnekler
Örneğin, 18'den yüksek sürüme sahip Ubuntu aracılarını filtrelemek için aşağıdaki sorgu kullanılır. q parametresinin değerinin şu şekilde kodlandığını unutmayın --data-urlencode
:
curl -G --data-urlencode "q=os.name=ubuntu;os.version>18" -k -X GET "https://localhost:55000/agents?limit=500&pretty=true&select=id,name,os.name,os.version,os.codename,os.major" -H "Authorization: Bearer $TOKEN"
{ "data": { "affected_items": [ { "os": { "codename": "Bionic Beaver", "major": "18", "name": "Ubuntu", "version": "18.04.4 LTS" }, "name": "wazuh-master", "id": "000" }, { "os": { "codename": "Bionic Beaver", "major": "18", "name": "Ubuntu", "version": "18.04.4 LTS" }, "name": "wazuh-agent4", "id": "004" }, { "os": { "codename": "Bionic Beaver", "major": "18", "name": "Ubuntu", "version": "18.04.4 LTS" }, "name": "wazuh-agent5", "id": "005" }, { "os": { "codename": "Bionic Beaver", "major": "18", "name": "Ubuntu", "version": "18.04.4 LTS" }, "name": "wazuh-agent6", "id": "006" }, { "os": { "codename": "Bionic Beaver", "major": "18", "name": "Ubuntu", "version": "18.04.4 LTS" }, "name": "wazuh-agent7", "id": "007" }, { "os": { "codename": "Bionic Beaver", "major": "18", "name": "Ubuntu", "version": "18.04.4 LTS" }, "name": "wazuh-agent8", "id": "008" }, { "os": { "codename": "Bionic Beaver", "major": "18", "name": "Ubuntu", "version": "18.04.2 LTS" }, "name": "wazuh-agent9", "id": "009" }, { "os": { "codename": "Bionic Beaver", "major": "18", "name": "Ubuntu", "version": "18.04.2 LTS" }, "name": "wazuh-agent10", "id": "010" } ], "total_affected_items": 8, "total_failed_items": 0, "failed_items": [] }, "message": "All selected agents information was returned", "error": 0 }
Daha doğru bir sonuç elde etmek için aynı alan birden fazla kez kullanılabilir. Örneğin, Ubuntu 18'den daha yüksek ancak Ubuntu 18.04.4'ten daha düşük bir sürüme sahip filtreleme ajanları:
curl -G --data-urlencode "q=os.name=ubuntu;os.version>18;os.version<18.04.4" -k -X GET "https://localhost:55000/agents?limit=500&pretty=true&select=id,name,os.name,os.version,os.codename,os.major" -H "Authorization: Bearer $TOKEN"
{ "data": { "affected_items": [ { "os": { "codename": "Bionic Beaver", "major": "18", "name": "Ubuntu", "version": "18.04.2 LTS" }, "name": "wazuh-agent9", "id": "009" }, { "os": { "codename": "Bionic Beaver", "major": "18", "name": "Ubuntu", "version": "18.04.2 LTS" }, "name": "wazuh-agent10", "id": "010" } ], "total_affected_items": 2, "total_failed_items": 0, "failed_items": [] }, "message": "All selected agents information was returned", "error": 0 }
OR ( ,
) operatörü ve LIKE AS ( ~
) operatörünün kullanımına bir örnek, işletim sistemi adı windows veya centosiçeren ajanları filtrelemek olabilir .
curl -G --data-urlencode "q=os.name~centos,os.name~windows" -k -X GET "https://localhost:55000/agents?limit=500&pretty=true&select=id,name,os.name,os.version,os.codename,os.major" -H "Authorization: Bearer $TOKEN"
{ "data": { "affected_items": [ { "os": { "major": "6", "name": "Microsoft Windows 7 Ultimate Edition Professional Service Pack 1", "version": "6.1.7601" }, "name": "jmv74211-PC", "id": "013" } ], "total_affected_items": 1, "total_failed_items": 0, "failed_items": [] }, "message": "All selected agents information was returned", "error": 0 }
Kimliği 0'dan farklı ve 4'ten küçük olan, adı alt dizeyi içeren waz
ve ana sürümü 16 veya 18 olan Ubuntu ajanlarını elde etmek, aynı anda birden fazla operatörü içeren bir örnektir:
curl -G --data-urlencode "q=id!=0;id<4;name~waz;(os.major=16,os.major=18)" -k -X GET "https://localhost:55000/agents?limit=500&pretty=true&select=id,name,os.name,os.version,os.codename,os.major" -H "Authorization: Bearer $TOKEN"
{ "data": { "affected_items": [ { "os": { "codename": "Xenial Xerus", "major": "16", "name": "Ubuntu", "version": "16.04.6 LTS" }, "name": "wazuh-agent1", "id": "001" }, { "os": { "codename": "Xenial Xerus", "major": "16", "name": "Ubuntu", "version": "16.04.6 LTS" }, "name": "wazuh-agent2", "id": "002" }, { "os": { "codename": "Xenial Xerus", "major": "16", "name": "Ubuntu", "version": "16.04.6 LTS" }, "name": "wazuh-agent3", "id": "003" } ], "total_affected_items": 3, "total_failed_items": 0, "failed_items": [] }, "message": "All selected agents information was returned", "error": 0 }
Windows'ta007
çalışan veya işletim sistemi ana sürümü 14 veya 18 olanlardan daha yüksek bir ID'ye sahip aracıları elde etmek :
curl -G --data-urlencode "q=id>007;(os.name~windows,(os.major=14,os.major=18))" -k -X GET "https://localhost:55000/agents?limit=500&pretty=true&select=id,name,os.name,os.version,os.codename,os.major" -H "Authorization: Bearer $TOKEN"
{ "data": { "affected_items": [ { "os": { "codename": "Bionic Beaver", "major": "18", "name": "Ubuntu", "version": "18.04.4 LTS" }, "name": "wazuh-agent8", "id": "008" }, { "os": { "codename": "Bionic Beaver", "major": "18", "name": "Ubuntu", "version": "18.04.2 LTS" }, "name": "wazuh-agent9", "id": "009" }, { "os": { "codename": "Bionic Beaver", "major": "18", "name": "Ubuntu", "version": "18.04.2 LTS" }, "name": "wazuh-agent10", "id": "010" }, { "os": { "major": "6", "name": "Microsoft Windows 7 Ultimate Edition Professional Service Pack 1", "version": "6.1.7601" }, "name": "jmv74211-PC", "id": "013" } ], "total_affected_items": 4, "total_failed_items": 0, "failed_items": [] }, "message": "All selected agents information was returned", "error": 0 }
Kullanım Örnekleri
Bu bölüm, Wazuh sunucu API'sinin bazı potansiyellerini göstermek için çeşitli kullanım örnekleri sunar. Tüm olası API istekleri hakkında ayrıntıları referans bölümünde bulabilirsiniz .
Kural Setini Keşfetmek
Genellikle bir uyarı ateşlendiğinde, kuralın kendisi hakkında ayrıntıları bilmek faydalıdır. Aşağıdaki istek kuralın niteliklerini sıralar 1002
:
curl -k -X GET "https://localhost:55000/rules?rule_ids=1002&pretty=true" -H "Authorization: Bearer $TOKEN"# curl -k -X GET "https://localhost:55000/rules?rule_ids=1002&pretty=true" -H "Authorization: Bearer $TOKEN"
{ "data": { "affected_items": [ { "filename": "0020-syslog_rules.xml", "relative_dirname": "ruleset/rules", "id": 1002, "level": 2, "status": "enabled", "details": { "match": { "pattern": "core_dumped|failure|error|attack| bad |illegal |denied|refused|unauthorized|fatal|failed|Segmentation Fault|Corrupted" } }, "pci_dss": [], "gpg13": [ "4.4" ], "gdpr": [], "hipaa": [], "nist_800_53": [], "groups": [ "syslog", "errors" ], "description": "Unknown problem somewhere in the system." } ], "total_affected_items": 1, "total_failed_items": 0, "failed_items": [] }, "message": "All selected rules were returned", "error": 0 }
web
Belirli bir ölçüte uyan hangi kuralların mevcut olduğunu bilmek de faydalı olabilir. Örneğin, PCI etiketiyle 10.6.1
ve kelimeyi içeren gruptaki tüm kuralları failures
aşağıdaki komutla görüntüleyebilirsiniz :
curl -k -X GET "https://localhost:55000/rules?pretty=true&limit=500&search=failures&group=web&pci_dss=10.6.1" -H "Authorization: Bearer $TOKEN"
{ "data": { "affected_items": [ { "filename": "0260-nginx_rules.xml", "relative_dirname": "ruleset/rules", "id": 31316, "level": 10, "status": "enabled", "details": { "frequency": "8", "timeframe": "240", "if_matched_sid": "31315", "same_source_ip": "", "mitre": "\n " }, "pci_dss": [ "10.6.1", "10.2.4", "10.2.5", "11.4" ], "gpg13": [ "7.1" ], "gdpr": [ "IV_35.7.d", "IV_32.2" ], "hipaa": [ "164.312.b" ], "nist_800_53": [ "AU.6", "AU.14", "AC.7", "SI.4" ], "groups": [ "authentication_failures", "tsc_CC7.2", "tsc_CC7.3", "tsc_CC6.1", "tsc_CC6.8", "nginx", "web" ], "description": "Nginx: Multiple web authentication failures." } ], "total_affected_items": 1, "total_failed_items": 0, "failed_items": [] }, "message": "All selected rules were returned", "error": 0 }
Test Kuralları ve Kod Çözücüler
Wazuh sunucu API'sini kullanarak bir wazuh-logtest oturumu başlatabilir veya özel veya varsayılan kuralları ve kod çözücüleri test etmek ve doğrulamak için mevcut bir oturumu kullanabilirsiniz. Aşağıdaki istek bir logtest oturumu oluşturur ve sağlanan günlük için eşleşen kuralları ve kod çözücüleri görüntüler. Ayrıca diğer bilgilerin yanı sıra ön kodlama aşamasını da ortaya çıkarır.
curl -k -X PUT "https://localhost:55000/logtest" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d "{\"event\":\"Jun 29 15:54:13 focal multipathd[557]: sdb: failed to get sysfs uid: No data available\",\"log_format\":\"syslog\",\"location\":\"user->/var/log/syslog\"}"
{ "error": 0, "data": { "token": "bc3ca27a", "messages": [ "WARNING: (7309): 'null' is not a valid token", "INFO: (7202): Session initialized with token 'bc3ca27a'" ], "output": { "timestamp": "2020-10-15T09:40:53.630+0000", "rule": { "level": 0, "description": "FreeIPA messages grouped", "id": "82202", "firedtimes": 1, "mail": false, "groups": [ "freeipa" ] }, "agent": { "id": "000", "name": "wazuh-master" }, "manager": { "name": "wazuh-master" }, "id": "1602754853.1000774", "cluster": { "name": "wazuh", "node": "master-node" }, "full_log": "Jun 29 15:54:13 focal multipathd[557]: sdb: failed to get sysfs uid: No data available", "predecoder": { "program_name": "multipathd", "timestamp": "Jun 29 15:54:13", "hostname": "focal" }, "decoder": { "name": "freeipa" }, "location": "user->/var/log/syslog" }, "alert": false, "codemsg": 1 } }
Bir Wazuh Aracısının Dosya Bütünlüğü İzleme (FIM) Veritabanının Analiz Edilmesi
Wazuh FIM modülü tarafından izlenen tüm dosyalar hakkında bilgi görüntülemek için Wazuh sunucu API'sini kullanabilirsiniz. Aşağıdaki örnek, .py
aracı kimliğine sahip izlenen bir uç noktaya yüklenen Python dosyalarıyla ilişkili tüm olayları gösterir 001
:
curl -k -X GET "https://localhost:55000/syscheck/001?pretty=true&search=.py" -H "Authorization: Bearer $TOKEN"
{ "data": { "affected_items": [ { "file": "/etc/python2.7/sitecustomize.py", "perm": "rw-r--r--", "sha1": "67b0a8ccf18bf5d2eb8c7f214b5a5d0d4a5e409d", "changes": 1, "md5": "d6b276695157bde06a56ba1b2bc53670", "inode": 29654607, "size": 155, "uid": "0", "gname": "root", "mtime": "2020-04-15T17:20:14Z", "sha256": "43d81125d92376b1a69d53a71126a041cc9a18d8080e92dea0a2ae23be138b1e", "date": "2020-05-25T14:28:41Z", "uname": "root", "type": "file", "gid": "0" }, { "file": "/etc/python3.6/sitecustomize.py", "perm": "rw-r--r--", "sha1": "67b0a8ccf18bf5d2eb8c7f214b5a5d0d4a5e409d", "changes": 1, "md5": "d6b276695157bde06a56ba1b2bc53670", "inode": 29762235, "size": 155, "uid": "0", "gname": "root", "mtime": "2020-04-18T01:56:04Z", "sha256": "43d81125d92376b1a69d53a71126a041cc9a18d8080e92dea0a2ae23be138b1e", "date": "2020-05-25T14:28:41Z", "uname": "root", "type": "file", "gid": "0" } ], "total_affected_items": 2, "total_failed_items": 0, "failed_items": [] }, "message": "FIM findings of the agent were returned", "error": 0 }
Bir dosyayı SHA1 veya MD5 karma değerini kullanarak bulabilirsiniz. Aşağıdaki örneklerde, dosyayı hem SHA1 hem de MD5 karma değerini kullanarak alıyoruz:
curl -k -X GET "https://localhost:55000/syscheck/001?pretty=true&hash=bc929cb047b79d5c16514f2c553e6b759abfb1b8" -H "Authorization: Bearer $TOKEN"
{ "data": { "affected_items": [ { "file": "/sbin/swapon", "perm": "rwxr-xr-x", "sha1": "bc929cb047b79d5c16514f2c553e6b759abfb1b8", "changes": 1, "md5": "085c1161d814a8863562694b3819f6a5", "inode": 14025822, "size": 47184, "uid": "0", "gname": "root", "mtime": "2020-01-08T18:31:23Z", "sha256": "f274025a1e4870301c5678568ab9519152f49d3cb907c01f7c71ff17b1a6e870", "date": "2020-05-25T14:29:44Z", "uname": "root", "type": "file", "gid": "0" } ], "total_affected_items": 1, "total_failed_items": 0, "failed_items": [] }, "message": "FIM findings of the agent were returned", "error": 0 }
curl -k -X GET "https://localhost:55000/syscheck/001?pretty=true&hash=085c1161d814a8863562694b3819f6a5" -H "Authorization: Bearer $TOKEN"
{ "data": { "affected_items": [ { "file": "/sbin/swapon", "perm": "rwxr-xr-x", "sha1": "bc929cb047b79d5c16514f2c553e6b759abfb1b8", "changes": 1, "md5": "085c1161d814a8863562694b3819f6a5", "inode": 14025822, "size": 47184, "uid": "0", "gname": "root", "mtime": "2020-01-08T18:31:23Z", "sha256": "f274025a1e4870301c5678568ab9519152f49d3cb907c01f7c71ff17b1a6e870", "date": "2020-05-25T14:29:44Z", "uname": "root", "type": "file", "gid": "0" } ], "total_affected_items": 1, "total_failed_items": 0, "failed_items": [] }, "message": "FIM findings of the agent were returned", "error": 0 }
Yönetici Hakkında Bilgi Edinme
Wazuh sunucusu API'si aracılığıyla Wazuh yöneticisi hakkında çeşitli ayrıntıları alabilirsiniz. Bu ayrıntılar yapılandırma, durum, günlükler ve daha fazlasını içerir. Aşağıdaki örnek her Wazuh daemon'unun durumunun nasıl alınacağını gösterir:
curl -k -X GET "https://localhost:55000/manager/status?pretty=true" -H "Authorization: Bearer $TOKEN"
{ "data": { "affected_items": [ { "wazuh-agentlessd": "running", "wazuh-analysisd": "running", "wazuh-authd": "running", "wazuh-csyslogd": "running", "wazuh-dbd": "stopped", "wazuh-monitord": "running", "wazuh-execd": "running", "wazuh-integratord": "running", "wazuh-logcollector": "running", "wazuh-maild": "running", "wazuh-remoted": "running", "wazuh-reportd": "stopped", "wazuh-syscheckd": "running", "wazuh-clusterd": "running", "wazuh-modulesd": "running", "wazuh-db": "running", "wazuh-apid": "stopped" } ], "total_affected_items": 1, "total_failed_items": 0, "failed_items": [] }, "message": "Processes status were successfully read in specified node", "error": 0 }
Aşağıdaki istekle Wazuh yöneticisinin mevcut yapılandırmasını boşaltabilirsiniz (cevap, kısa olması için kısaltılmıştır):
curl -k -X GET "https://localhost:55000/manager/configuration?pretty=true§ion=global" -H "Authorization: Bearer $TOKEN"
{ "data": { "affected_items": [ { "global": { "jsonout_output": "yes", "alerts_log": "yes", "logall": "no", "logall_json": "no", "email_notification": "yes", "email_to": "me@test.example", "smtp_server": "mail.test.example", "email_from": "wazuh@test.example", "email_maxperhour": "12", "email_log_source": "alerts.log", "white_list": [ "127.0.0.1", "^localhost.localdomain$", "8.8.8.8", "8.8.4.4" ] } } ], "total_affected_items": 1, "total_failed_items": 0, "failed_items": [] }, "message": "Configuration was successfully read in specified node", "error": 0 }
Wazuh Agent Yönetimini Keşfetme
Wazuh ajanlarını yönetmek için Wazuh sunucu API'sini kullanabilirsiniz.
Aşağıdaki istek iki etkin etkeni sıralıyor:
curl -k -X GET "https://localhost:55000/agents?pretty=true&offset=1&limit=2&select=status%2Cid%2Cmanager%2Cname%2Cnode_name%2Cversion&status=active" -H "Authorization: Bearer $TOKEN"
{ "data": { "affected_items": [ { "node_name": "worker2", "status": "active", "manager": "wazuh-worker2", "version": "Wazuh v4.7.4", "id": "001", "name": "wazuh-agent1" }, { "node_name": "worker2", "status": "active", "manager": "wazuh-worker2", "version": "Wazuh v4.7.4", "id": "002", "name": "wazuh-agent2" } ], "total_affected_items": 9, "total_failed_items": 0, "failed_items": [] }, "message": "All selected agents information was returned", "error": 0 }
API isteği göndererek ajan adını ve IP adresini kullanarak yeni bir Wazuh ajanı ekleyin:
curl -k -X POST "https://localhost:55000/agents?pretty=true" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d "{\"name\":\"NewHost\",\"ip\":\"10.0.10.11\"}"
{ "data": { "id": "013", "key": "MDEzIE5ld0hvc3RfMiAxMC4wLjEwLjEyIDkzOTE0MmE4OTQ4YTNlMzA0ZTdiYzVmZTRhN2Q4Y2I1MjgwMWIxNDI4NWMzMzk3N2U5MWU5NGJiMDc4ZDEzNjc=" }, "error": 0 }
Güvenlik Olaylarını İçe Aktarın
4.6.0 sürümündeki yenilikler.
Güvenlik olaylarını analiz için Wazuh yöneticisine aktarmak amacıyla Wazuh sunucu API'sini kullanabilirsiniz.
Dakikada 30 istek ve istek başına 100 olay sınırı vardır. Bu sınır, uç noktaların büyük miktarda veriyi çok hızlı bir şekilde almasını önler. Bu sınırı daha da düşürmek veya özelliği devre dışı bırakmak için max_request_per_minute'i işaretleyin.
curl -k -X POST "https://localhost:55000/events" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d '{"events": ["Event value 1", "{\"someKey\": \"Event value 2\"}"]}'
{ "data": { "affected_items": [ ], "total_affected_items": 2, "total_failed_items": 0, "failed_items": [] }, "message": "All events were forwarded to analisysd", "error": 0 }
Çözüm
Sonuç olarak, bu örnekler Wazuh API'nin yeteneklerini sergiliyor. Mevcut Wazuh sunucu API isteklerinin tam aralığını keşfetmek için referans belgesini inceleyin.
Wazuh Server Kümesi
Wazuh Sunucu Kümesi
Wazuh Indexer
Wazuh dizinleyicisi, güvenlik verileri için gerçek zamanlı, tam metin arama ve analiz motorudur. Wazuh sunucusuna alınan günlük verileri analiz edilir ve dizinleme ve depolama için dizinleyiciye iletilir. Bu olaylar daha sonra Wazuh panosunda sorgulanır. Wazuh dizinleyicisi verileri JSON belgeleri olarak depolar. Her belge, bir dizi anahtarı, alan adını veya özniteliği, karakterler, sayılar, boole değerleri, tarihler, değer dizileri, coğrafi konumlar veya diğer veri türleri olabilen karşılık gelen değerleriyle ilişkilendirir. Wazuh dizinleyicisi, ölçeklenebilirlik ve yüksek kullanılabilirlik sağlayan tek düğümlü veya çok düğümlü bir küme olarak yapılandırılabilir. Belgeleri, shard olarak bilinen farklı kapsayıcılara dağıtır. Sırayla, bu shard'ları küme düğümlerine dağıtır. Belgeleri birden fazla shard'a ve bu shard'ları birden fazla düğüme dağıtarak, Wazuh dizinleyicisi yedekliliği garanti eder. Yedeklilik, bir arıza durumunda Wazuh dizinleyicisinin kullanılabilirliğini garanti eder ve küme düğümleri arasında sorgu kapasitesini artırır.
Wazuh Indexer Endeksleri
Bir dizin, birbirleriyle ilişkili belgelerin bir koleksiyonudur. Wazuh dizinleyicisi, hızlı erişim için güvenlik verilerini depolamak ve düzenlemek için dizinleri kullanır. Wazuh, bu verileri depolamak için aşağıdaki dizin desenlerini kullanır:
-
wazuh‑alerts-* : Bu, Wazuh sunucusu tarafından oluşturulan uyarılar için dizin desenidir.
-
wazuh‑archives-* : Bu, Wazuh sunucusuna gönderilen tüm olaylar için dizin desenidir.
-
wazuh‑monitoring-* : Bu, Wazuh aracılarının durumu için endeks desenidir.
-
wazuh‑statistics-* : Bu, Wazuh sunucusunun istatistiksel bilgilerine ait dizin desenidir.
-
wazuh-states-vulnerabilities-* : - Bu, izlenen uç noktalarda tespit edilen güvenlik açıkları hakkındaki bilgilere yönelik dizin desenidir.
Uyarılar için dizin desenini daha da özelleştirmek için özel bir dizin deseni oluşturabilirsiniz.
Özel İzin Deseni Oluşturma
my-custom-alerts-*
Bu bölümde , varsayılan desen olan . ile birlikte örneğin . gibi özel bir dizin deseninin nasıl oluşturulacağı açıklanmaktadır. wazuh-alerts-*
Kök kullanıcıya geçin ve aşağıdaki adımları uygulayın.
-
Filebeat hizmetini durdurun:
systemctl stop filebeat
-
Wazuh şablonunu indirin ve bir dosyaya kaydedin (örneğin,
template.json
):curl -so template.json https://raw.githubusercontent.com/wazuh/wazuh/v4.9.2/extensions/elasticsearch/7.x/wazuh-template.json
-
Şablon dosyasını açın ve dosyanın başında şu satırı bulun:
"index_patterns": [ "wazuh-alerts-4.x-*", "wazuh-archives-4.x-*" ],
Özel deseninizi şu şekilde görünecek şekilde ekleyin:
"index_patterns": [ "wazuh-alerts-4.x-*", "wazuh-archives-4.x-*", "my-custom-alerts-*" ],
Dizin desenlerindeki yıldız karakteri (
*
) önemlidir çünkü Filebeat, Wazuh panosundaki uyarıları görselleştirmek için doğru formatı uygulamak için gerekli olan bu deseni izleyen bir ad kullanarak dizinler oluşturacaktır. -
Değişiklikleri kaydedin ve yeni şablonu Wazuh indeksleyicisine ekleyin. Bu, mevcut şablonu değiştirecektir:
curl -XPUT -k -u <INDEXER_USERNAME>:<INDEXER_PASSWORD> 'https://<INDEXER_IP_ADDRESS>:9200/_template/wazuh' -H 'Content-Type: application/json' -d @template.json
Yer değiştirmek:
-
<INDEXER_IP_ADDRESS>
Wazuh dizinleyicinizin IP adresiyle -
<INDEXER_USERNAME>
ve<INDEXER_PASSWORD>
Wazuh dizinleyici kullanıcı adı ve parolasıyla. Yeni dağıtımlar için Wazuh dizinleyici kimlik bilgilerini şu komutu kullanarak alabilirsiniz:
Not: Wazuh OVA kullanıyorsanız varsayılan kimlik bilgilerini kullanın veya parola yönetimi
admin:admin
bölümüne bakın .tar -axf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt -O | grep -P "\'admin\'" -A 1
{"acknowledged":true}
Not:
{"acknowledged":true}
şablonun doğru şekilde eklendiğini gösterir.Uyarı:
wazuh-alerts-*
5. adımı yalnızca varsayılan uyarı dizini modelini ve/veya varsayılan arşiv dizini modelini .wazuh‑archives-*
ile değiştirmek istiyorsanız uygulayınmy-custom-alerts-*
. -
-
Wazuh uyarı yapılandırma dosyasını
/usr/share/filebeat/module/wazuh/alerts/manifest.yml
ve isteğe bağlı olarak arşiv dosyasını açın/usr/share/filebeat/module/wazuh/archives/manifest.yml
ve dizin adını değiştirin.Örneğin, şuradan:
- name: index_prefix default: wazuh-alerts-
Buna:
- name: index_prefix default: my-custom-alerts-
Not: Dizin adı
#
,\
,/
,*
,?
,"
,<
,>
,|
, karakterlerini içermemeli ve , , veya,
ile başlamamalıdır . Ayrıca, tüm harfler küçük harf olmalıdır._
-
+
-
(İsteğe bağlı) Yeni dizin desenini varsayılan olarak kullanmak istiyorsanız, dosyayı açın
/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml
ve aşağıdaki yapılandırmayı ekleyin:pattern: my-custom-alerts-*
Bu, Wazuh sunucusunun yeni endeks desenini otomatik olarak oluşturmasını ve/veya seçmesini sağlayacaktır.
-
Filebeat'i ve Wazuh sunucu bileşenlerini yeniden başlatın:
systemctl restart filebeat systemctl restart wazuh-manager systemctl restart wazuh-indexer systemctl restart wazuh-dashboard
Uyarı: Önceki adla oluşturulmuş dizinleriniz varsa, bunlar değiştirilmeyecektir. Bunları görmek için yine de önceki dizin düzenine geçebilir veya mevcut dizinleri yeniden adlandırmak için yeniden dizinleme yapabilirsiniz.
Endeks Bilgilerinin Kontrol Edilmesi
Wazuh endeksleri hakkında bilgiye iki şekilde ulaşabilirsiniz.
-
Web kullanıcı arayüzünü kullanma.
-
Wazuh indeksleyici API'sine bir istekte bulunuluyor.
Web Kullanıcı Arayüzünü Kullanma
-
Wazuh kontrol panelinin sol üst menüsünde ☰ , Dizin Yönetimi > Dizin Yönetimi'ne gidin.
-
Endekslere tıklayın.
Desen Wazuh panosunda mevcut değilse,my-custom-alerts-*
şablonda kullanılan dizin desenini kullanarak yeni bir tane oluşturun ve Zaman Filtresi alan adı olaraktimestamp
kullandığınızdan emin olun .
Wazuh Indexer API'sini Kullanma
Wazuh gösterge panelinden veya Wazuh sunucusundan Wazuh indeksleyici API'sini kullanarak endeks bilgilerini sorgulayabilirsiniz.
Wazuh Dashboard
-
☰ > Dizinleyici yönetimi > Geliştirme Araçları'na gidin :
GET /_cat/indices/wazuh-*?v
Komut Satırı Arayüzü
-
Aşağıdaki komutu kullanarak yeni dağıtımlar için Wazuh dizinleyici kullanıcı adı ve parolasını edinin:
tar -axf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt -O | grep -P "\'admin\'" -A 1
Not: Wazuh OVA kullanıyorsanız varsayılan kimlik bilgilerini admin:admin olarak kullanın veya parola yönetimi bölümüne bakın.
-
Dizin durumunuzu sorgulamak için aşağıdaki komutu çalıştırın. ve'yi elde edilen kullanıcı adı ve parola ile değiştirin. Wazuh dizinleyici IP adresiniz veya FQDN'nizle değiştirin
<INDEXER_USERNAME>
. Sorgunuz için daha belirli bir desenle değiştirebilirsiniz, örneğin .<INDEXER_PASSWORD>
<INDEXER_IP_ADDRESS>
wazuh-*
wazuh-alerts-*
curl -k -u <INDEXER_USERNAME>:<INDEXER_PASSWORD> https://<INDEXER_IP_ADDRESS>:9200/_cat/indices/wazuh-*?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green open wazuh-statistics-2023.30w xtHZtGqBR0WNJWbs5sjrnQ 1 0 2394 0 1.2mb 1.2mb green open wazuh-alerts-4.x-2023.07.28 VbBfAasJTsiqw3lwRhY5sg 3 0 513 0 1.9mb 1.9mb green open wazuh-alerts-4.x-2023.07.27 7s2x8INqRVmtz5uqMDuA7Q 3 0 515 0 2mb 2mb green open wazuh-alerts-4.x-2023.07.05 0h4cyLJoQYiMvMnqyLDnag 3 0 49 0 370.4kb 370.4kb green open wazuh-alerts-4.x-2023.07.07 kp_N4c7RRuOE91KkuqPuAw 3 0 98 0 397.7kb 397.7kb green open wazuh-alerts-4.x-2023.07.29 rbAC4befS7epxOjiSzFRQQ 3 0 1717 0 3.9mb 3.9mb green open wazuh-monitoring-2023.31w 1WwxsGQHRfG1_DOIZD-Lag 1 0 954 0 771.9kb 771.9kb green open wazuh-alerts-4.x-2023.07.20 SQbaQC24SgO9eWO_AsBI_w 3 0 1181 0 2.8mb 2.8mb green open wazuh-statistics-2023.28w jO52bS6eRamtB2YNmfGzIA 1 0 676 0 501.1kb 501.1kb
wazuh‑alerts-* Endeksleri
Wazuh sunucusu izlenen uç noktalardan alınan olayları analiz eder ve olaylar bir algılama kuralıyla eşleştiğinde uyarılar üretir. Bu uyarılar dizinler kullanılarak kaydedilir wazuh-alerts-*
.
Wazuh sunucusu uyarı verilerini varsayılan olarak /var/ossec/logs/alerts/alerts.json
ve dosyalarına kaydeder. Dosyaya kaydedildikten sonra, JSON uyarı belgesini indeksleme için Wazuh indeksleyici API'sine iletir. İndekslenen dosyalar Wazuh indeksleyicisinin dizininde saklanır./var/ossec/logs/alerts/alerts.log
/var/ossec/logs/alerts/alerts.json
/var/lib/wazuh-indexer/nodes/0/indices
Wazuh dizinleyicisine uyarıları iletirken, Wazuh sunucusu geçerli tarihi bir dizin adına biçimlendirir. Örneğin, Wazuh sunucusu dizin adlarını wazuh-alerts-4.x-2023.03.17
ve wazuh-alerts-4.x-2023.03.18
sırasıyla 17 ve 18 Mart uyarılarını tanımlar. Wazuh dizinleyicisi daha sonra tanımlanan wazuh‑alerts-*
dizin adlarını kullanarak uyarı dizinleri oluşturur.
/usr/share/filebeat/module/wazuh/alerts/ingest/pipeline.json
Wazuh sunucusunun dosyasındaki varsayılan dizin adını değiştirebilirsiniz . Bunu yapmak için, dosyadaki varsayılan dizin adı biçimlendirmesini değiştirmek için date_index_name
alana ve anahtara gidin :date_rounding
/usr/share/filebeat/module/wazuh/alerts/ingest/pipeline.json
{ "description": "Wazuh alerts pipeline", "processors": [ { "json" : { "field" : "message", "add_to_root": true } }, { "geoip": { "field": "data.srcip", "target_field": "GeoLocation", "properties": ["city_name", "country_name", "region_name", "location"], "ignore_missing": true, "ignore_failure": true } }, { "geoip": { "field": "data.win.eventdata.ipAddress", "target_field": "GeoLocation", "properties": ["city_name", "country_name", "region_name", "location"], "ignore_missing": true, "ignore_failure": true } }, { "geoip": { "field": "data.aws.sourceIPAddress", "target_field": "GeoLocation", "properties": ["city_name", "country_name", "region_name", "location"], "ignore_missing": true, "ignore_failure": true } }, { "geoip": { "field": "data.gcp.jsonPayload.sourceIP", "target_field": "GeoLocation", "properties": ["city_name", "country_name", "region_name", "location"], "ignore_missing": true, "ignore_failure": true } }, { "geoip": { "field": "data.office365.ClientIP", "target_field": "GeoLocation", "properties": ["city_name", "country_name", "region_name", "location"], "ignore_missing": true, "ignore_failure": true } }, { "date": { "field": "timestamp", "target_field": "@timestamp", "formats": ["ISO8601"], "ignore_failure": false } }, { "date_index_name": { "field": "timestamp", "date_rounding": "d", "index_name_prefix": "{{fields.index_prefix}}", "index_name_format": "yyyy.MM.dd", "ignore_failure": false } }, { "remove": { "field": "message", "ignore_missing": true, "ignore_failure": true } }, { "remove": { "field": "ecs", "ignore_missing": true, "ignore_failure": true } }, { "remove": { "field": "beat", "ignore_missing": true, "ignore_failure": true } }, { "remove": { "field": "input_type", "ignore_missing": true, "ignore_failure": true } }, { "remove": { "field": "tags", "ignore_missing": true, "ignore_failure": true } }, { "remove": { "field": "count", "ignore_missing": true, "ignore_failure": true } }, { "remove": { "field": "@version", "ignore_missing": true, "ignore_failure": true } }, { "remove": { "field": "log", "ignore_missing": true, "ignore_failure": true } }, { "remove": { "field": "offset", "ignore_missing": true, "ignore_failure": true } }, { "remove": { "field": "type", "ignore_missing": true, "ignore_failure": true } }, { "remove": { "field": "host", "ignore_missing": true, "ignore_failure": true } }, { "remove": { "field": "fields", "ignore_missing": true, "ignore_failure": true } }, { "remove": { "field": "event", "ignore_missing": true, "ignore_failure": true } }, { "remove": { "field": "fileset", "ignore_missing": true, "ignore_failure": true } }, { "remove": { "field": "service", "ignore_missing": true, "ignore_failure": true } } ], "on_failure" : [{ "drop" : { } }] }
Değerlerin olduğu yer:
M
- ay anlamına gelirw
- hafta anlamına gelird
- günü temsil ederwazuh‑archives-* Endeksleri
/var/ossec/logs/alerts/alerts.json
ve dosyalarına uyarıları kaydetmenin yanı sıra /var/ossec/logs/alerts/alerts.log
, Wazuh arşivlerini Wazuh sunucusunun aldığı tüm olayları kaydetmesi ve dizine eklemesi için etkinleştirebilirsiniz. Bu, Wazuh tarafından analiz edilen olayları ve uyarıları tetiklemeyen olayları içerir.
Tüm olayları depolamak ve dizinlemek daha sonraki analiz ve uyumluluk gereksinimleri için yararlı olabilir. Ancak, tüm olayların günlüğe kaydedilmesini ve dizinlenmesini etkinleştirmenin Wazuh sunucusundaki depolama gereksinimini artıracağını göz önünde bulundurmalısınız.
/usr/share/filebeat/module/wazuh/archives/ingest/pipeline.json
Varsayılan olarak, Wazuh dizinleyici her benzersiz gün için olay dizinleri oluşturur. Wazuh sunucusunun dosyasındaki varsayılan dizin adını değiştirebilirsiniz . Bunu yapmak için:
-
Alana gidin
date_index_name
. -
Anahtarı bulun
date_rounding
ve dosyadaki varsayılan dizin adı biçimlendirmesini değiştirin/usr/share/filebeat/module/wazuh/archives/ingest/pipeline.json
.
Aşağıdaki bölümlerde wazuh arşivlerinin nasıl etkinleştirileceği ve endekslerin nasıl ayarlanacağı hakkında ayrıntılar verilmektedir wazuh-archives-*
.
Wazuh Arşivlerini Etkinleştirme
-
/var/ossec/etc/ossec.conf
Wazuh sunucusunda düzenleme yapın ve<logall_json>
satırı . olarak ayarlayın. Bu, tüm olayların archives.jsonyes
dosyasına kaydedilmesini sağlar . Wazuh dizinleyicisine iletmek, tüm olayların JSON formatında kaydedilmesini gerektirir.<logall_json>yes</logall_json>
-
Değişikliğin etkili olması için Wazuh yöneticisini yeniden başlatın.
systemctl restart wazuh-manager
veya
service wazuh-manager restart
-
Arşiv eşlemesinde düzenleme yapın
/etc/filebeat/filebeat.yml
ve değiştirinenabled
.true
Bu, olayların Wazuh dizinleyicisine iletilmesini sağlar.filebeat.modules: - module: wazuh alerts: enabled: true archives: enabled: true
-
Değişikliği uygulamak için Filebeat hizmetini yeniden başlatın:
systemctl restart filebeat
-
Filebeat hizmetinin düzgün çalıştığını test edin:
filebeat test output
elasticsearch: https://127.0.0.1:9200... parse url... OK connection... parse host... OK dns lookup... OK addresses: 127.0.0.1 dial up... OK TLS... security: server's certificate chain verification is enabled handshake... OK TLS version: TLSv1.2 dial up... OK talk to server... OK version: 7.10.2
Endeks Pattern Tanımlama
-
Wazuh kontrol panelinin sol üst menüsünde ☰ , Kontrol Paneli yönetimi > Kontrol Paneli Yönetimi'ne gidin ve Endeks Desenleri'ne tıklayın .
-
Dizin deseni oluştur'a tıklayın .
-
Dizin desen adı
wazuh-archives-*
olarak ayarlayın . Bu, iletilen ve dizine eklenen olaylarla eşleşecek dizin desenini tanımlar. Sonraki adım'a tıklayın . -
Zaman alanı için zaman damgasını seçin.
-
Dizin deseni oluştur'a tıklayın.
Not: @timestamp yerine timestamp seçeneğini seçmeye dikkat edin .
Endeks Pattern Görüntüleme
-
Sol üst menüde Keşfet'e ☰ tıklayın ve ardından Keşfet'e tıklayın .
-
Etkinlikleri görüntülemek için wazuh-archives-* öğesini seçin .
wazuh-monitoring-* Endeksleri
Kayıtlı bir Wazuh temsilcisinin herhangi bir andaki bağlantı durumu aşağıdakilerden biridir:
-
Aktif
-
Bağlantısı kesildi
-
Askıda olması
-
Hiç bağlanmadı
Wazuh, tüm aracılarının bağlantı durumlarının geçmişini depolar. Varsayılan olarak, aracı bağlantı durumunu wazuh‑monitoring-*
dizinleri kullanarak dizinler. Wazuh dizinleyicisi varsayılan olarak haftada bir bu dizinlerden birini oluşturur. Özel oluşturma aralıkları hakkındaki belgeleri kontrol edin . Bu dizinler varsayılan olarak tüm aracıların bağlantı durumunu her 15 dakikada bir depolar. API isteklerinin sıklığı hakkındaki belgeleri kontrol edin .
Wazuh panosu, aracı durumu hakkında bilgi görüntülemek için bu endekslere ihtiyaç duyar. Örneğin, ☰ > Sunucu yönetimi > Uç Nokta Özeti'ne tıklayarak , Wazuh aracısının bağlantı durumu ve belirlenen zaman dilimlerindeki geçmiş evrimi gibi bilgileri görebilirsiniz.

Wazuh panosu yapılandırma dosyasında , aşağıdakileri yapmak için ayarları değiştirebilirsiniz:
-
Aracılar için bağlantı durumu verilerinin eklenmesini ve gösterilmesini devre dışı bırakın. Bunu başarmak için wazuh.monitoring.enabled'ı değiştirin.
-
Aracılar için bağlantı durumu verilerinin ekleme sıklığını değiştirin. Bunu başarmak için wazuh.monitoring.frequency'yi değiştirin.
Wazuh-istatistik-* Endeksleri
Wazuh panosu, wazuh‑statistics-*
Wazuh sunucu kullanımı ve performansı hakkında istatistikleri görüntülemek için endeksleri kullanır. Görüntülenen bilgiler arasında kod çözülen olay sayısı, alınan baytlar ve TCP oturumları bulunur.
Wazuh panosu, kullanımla ilgili bilgileri sorgulamak için Wazuh yönetici API'sine istekler çalıştırır. wazuh‑statistics-*
Toplanan bilgilerden endekslere veri ekler. Wazuh endeksleyicisi wazuh‑statistics-*
varsayılan olarak haftada bir endeks oluşturur. İstatistik oluşturma aralığı hakkındaki belgeleri kontrol edin. Bu endeksler varsayılan olarak Wazuh sunucusu istatistiklerini her 5 dakikada bir depolar. Görev yürütme sıklığı hakkındaki belgeleri kontrol edin .
Bu bilgileri Wazuh panosunda görüntülemek için Sunucu yönetimi > İstatistikler bölümüne gidin.

wazuh-states-vulnerabilities-* Endeksleri
Dizin deseni, wazuh-states-vulnerabilities-*
izlenen varlıkların güvenlik açığı durumuyla ilgili verileri depolamak için Wazuh'ta kullanılır. Bu dizin genellikle izlenen sistemlerde tespit edilen güvenlik açıkları hakkında bilgi içerir; bu bilgiler arasında ciddiyet, durum, etkilenen yazılım ve güvenlik açığı referansı gibi ayrıntılar bulunur. *
Dizin deseninin sonunda, benzer adlara sahip, zamana veya diğer faktörlere göre bölümlere ayrılmış birden fazla dizinin oluşturulmasına olanak tanır. Bu, güvenlik açığı verilerinin zaman içinde verimli bir şekilde depolanmasını ve alınmasını sağlar.
Bu bilgileri Wazuh panosunda görüntülemek için Wazuh panosu ana sayfasından Güvenlik Açığı Tespiti'ne tıklayın.


Yeniden İndeksleme
Dizinin veri şemasında değişiklikler yapıldığında, bu değişiklikleri yansıtmak için verileri yeniden dizinlemek gerekir. Mevcut veriler yeniden dizinleme yapılmadan güncellenen şemayla eşleşmeyebilir ve bu da sorgular sırasında veri tutarsızlıklarına veya hatalara yol açabilir. Yeniden dizinleme, verilerinizin tamamını veya bir alt kümesini bir kaynak dizinden hedef dizine kopyalamanıza olanak tanır.
Mevcut bir dizini yeniden dizinlemek için Wazuh panosunda veya Wazuh sunucusunda aşağıdaki adımları uygulayın.
Wazuh Dashboard
-
Sol üst menüye ☰ tıklayın ve Indexer yönetimine, ardından da Dev Tools'a gidin .
-
Aşağıdaki API çağrısını,
my-source-index
kaynak dizin deseniyle vemy-destination-index
hedef dizin deseniyle değiştirerek girin.POST /_reindex { "source":{ "index":"my-source-index" }, "dest":{ "index":"my-destination-index" } }
Örneğin:
POST /_reindex { "source":{ "index":"wazuh-alerts-*" }, "dest":{ "index":"example-alerts" } }
{ "took": 23655, "timed_out": false, "total": 26849, "updated": 0, "created": 26849, "deleted": 0, "batches": 27, "version_conflicts": 0, "noops": 0, "retries": { "bulk": 0, "search": 0 }, "throttled_millis": 0, "requests_per_second": -1, "throttled_until_millis": 0, "failures": [] }
Komut Satırı Arayüzü
Wazuh API'sine kimlik doğrulaması yapmasına izin verilen herhangi bir Wazuh merkezi bileşeninde aşağıdaki komutu çalıştırın. <INDEXER_USERNAME>
ve'yi <INDEXER_PASSWORD>
dizinleyici kullanıcı adı ve parolasıyla değiştirin:
curl -k -u "<INDEXER_USERNAME>:<INDEXER_PASSWORD>" -XPOST "https://<INDEXER_IP_ADDRESS>:9200/_reindex" -H 'Content-Type: application/json' -d' { "source":{ "index":"my-source-index" }, "dest":{ "index":"my-destination-index" } }'
Örneğin:
root@wazuh-server:~$ curl -k -u "INDEXER_USERNAME:INDEXER_PASSWORD" -XPOST "https://<INDEXER_IP_ADDRESS>:9200/_reindex" -H 'Content-Type: application/json' -d' { "source":{ "index":"wazuh-alerts-*" }, "dest":{ "index":"example-alerts" } }'
{"took":18025,"timed_out":false,"total":26854,"updated":26854,"created":0,"deleted":0,"batches":27,"version_conflicts":0,"noops":0,"retries":{"bulk":0,"search":0},"throttled_millis":0,"requests_per_second":-1.0,"throttled_until_millis":0,"failures":[]}
Index Yaşam Döngüsü Yönetimi
Dizin yaşam döngüsü yönetimi, bir dizinin yaşam döngüsünü kontrol ederek Wazuh dizinleyici kümesi performansını optimize etmeye yardımcı olur. Dizin devretme ve silme gibi periyodik işlemler gerçekleştirebilirsiniz. Bu periyodik işlemler Dizin Durumu Yönetimi (ISM) politikaları kullanılarak yapılandırılır.
Dizin Durumu Yönetimi (ISM), bu operasyonel görevleri otomatikleştirmenizi sağlar. ISM kullanarak verileriniz için saklama politikaları gibi yaşam döngüsü politikalarını uygulayabilirsiniz. ISM, politikalarınıza ve dizin yaşı, boyutu ve belge sayısında algılanan değişikliklere göre dizin işlemlerini otomatik olarak tetikler.
Bu bölümde, Wazuh dizinleyici depolama alanının optimizasyonu için dizin yaşam döngüsünü yönetmek üzere bazı yapılandırma seçenekleri ele alınmaktadır.
Index Tutma
Güvenlik standartları, verilerin denetimler için asgari bir süre boyunca erişilebilir tutulmasını gerektirir. Bu saklama süresinden daha eski veriler için, depolama alanından tasarruf etmek amacıyla verileri silmek isteyebilirsiniz.
Silme işlemlerini otomatik olarak işlemek için belirli politikalar tanımlayabilirsiniz. Bu politikaları dizin geçişleri için de yararlı bulabilirsiniz.
Bir Saklama Politikası Oluşturma
Görsel Düzenleyiciyi Kullanma
-
Sol üst menüye tıklayın ☰ , Indexer yönetimine gidin ve Index Yönetimi'ni seçin. Durum yönetimi politikalarını seçin ve Politika oluştur'a tıklayın . Görsel düzenleyiciyi seçin ve Devam'a tıklayın.
-
Politika bilgisi bölümüne benzersiz bir Politika Kimliği girin . Örneğin,
wazuh-alert-retention-policy
. İsteğe bağlı olarak politikayı Açıklama alanında tanımlayabilirsiniz . -
ISM şablonları altında Şablon ekle'ye tıklayın ve bu politikayı gelecekteki uyarı dizinlerine otomatik olarak uygulamak gibi bir dizin deseni girin . Öncelik varsayılan değerine ayarlanır ve başka herhangi bir değere ayarlanabilir. Öncelik değeri daha yüksek olan dizin önce işlenir.
wazuh-alerts-*
1
-
Dizin silme için bir durum oluşturmak üzere Durum ekle'ye tıklayın . . gibi bir ad girin
delete_alerts
. -
Eylem ekle'ye tıklayın ve Eylem türünde Sil'i seçin . Eylem ekle'ye tıklayın . Ardından Durumu kaydet'e tıklayın .
-
Başlangıç durumunu oluşturmak için tekrar Durum ekle'ye tıklayın . . gibi bir ad girin
initial
. -
Sipariş sekmesinden Önce Ekle'yi seçin ve delete_alerts seçeneğini seçin .
-
Geçiş ekle'ye tıklayın ve Hedef durumu olarak delete_alerts'i seçin .
-
Condition'da Minimum Endeks Yaşını seçin . Minimum Endeks Yaşına örneğin 90 gün için 90d gibi tutma değerini girin .
-
Geçiş Ekle'ye tıklayın . Durumu Kaydet'e tıklayın. Oluştur'a tıklayın .
-
Başlangıç Durumunu Başlangıç olarak değiştirin.
JSON Editor Kullanma
-
Sol üst menüye tıklayın ☰ , Indexer yönetimine gidin ve Index Yönetimi'ni seçin. Durum yönetimi politikalarını seçin ve Politika oluştur'a tıklayın . JSON düzenleyicisini seçin ve Devam'a tıklayın.
-
Politika bilgisi bölümüne benzersiz bir Politika Kimliği girin . Örneğin,
wazuh-alert-retention-policy
. İsteğe bağlı olarak JSON politika tanımınıza bir açıklama girebilirsiniz. -
Define policy bölümünde , içeriği JSON policy tanımınızla değiştirin. Tanımınız buna benzer görünmelidir.
{ "policy": { "policy_id": "wazuh-alert-retention-policy", "description": "Wazuh alerts retention policy", "schema_version": 17, "error_notification": null, "default_state": "retention_state", "states": [ { "name": "retention_state", "actions": [], "transitions": [ { "state_name": "delete_alerts", "conditions": { "min_index_age": "90d" } } ] }, { "name": "delete_alerts", "actions": [ { "retry": { "count": 3, "backoff": "exponential", "delay": "1m" }, "delete": {} } ], "transitions": [] } ], "ism_template": [ { "index_patterns": [ "wazuh-alerts-*" ], "priority": 1 } ] } }
Minimum endeks tutma için tercih ettiğiniz gün sayısına göre
“min_index_age”:
ayarlayın .“90d”
-
Oluştur'a tıklayın .
Saklama Politikasının Uyarı Dizinine Uygulanması
-
Sol üst menüye tıklayın ☰ , Indexer yönetimine gidin ve Index Yönetimi'ni seçin . Indexes'i seçin .
-
Politikayı eklemek istediğiniz endeksi veya endeksleri seçin.
-
Eylemler > Politikayı uygula'ya tıklayın.
-
Önceki adımlarda oluşturulan politikayı Politika Kimliği menüsünden seçin. Uygula'ya tıklayın .
Sıcak-ılık Mimarisini Kurun
Bu bölüm, sıcak ve ılık düğümlerde depolanacak dizinlerin nasıl yapılandırılacağını gösterir. Sıcak-ılık bir mimari, aşağıdaki özelliklere sahip sıcak ve ılık düğümlerden oluşur:
-
Sıcak düğümler, yüksek bilgi işlem kaynaklarına sahip olmaları nedeniyle genellikle hızlı ve pahalıdır.
-
Sıcak bir düğüm, daha düşük bilgi işlem kaynaklarına ihtiyaç duyması nedeniyle daha yavaş ve daha ucuzdur.
Verilerinizi önce sıcak düğümlere dizinlediğiniz ve belirli bir süre sonra sıcak düğümlere taşıdığınız sıcak-ılık bir mimari tasarlayabilirsiniz. Bu mimari, sık sık sorgulamadığınız eski verileriniz varsa sizin için uygundur. Eski veriler, daha yavaş ve daha az maliyetli bir donanımda depolanmak üzere taşınır. Bu mimari, bilgi işlem maliyetlerinden tasarruf etmenize yardımcı olur.
Sıcak düğüm sayısını artırmak yerine, sık erişmediğiniz veriler için sıcak düğümler ekleyebilirsiniz.
Sıcak-ılık depolama mimarisini yapılandırmak için temp
ilgili düğümlere nitelikler ekleyin.
Not: Tüm sıcak ve ılık düğümleriniz için tutarlı olduğu sürece, öznitelik adını ve değerini istediğiniz şekilde ayarlayabilirsiniz.
Sıcak (Hot) Bir Düğüm Yapılandırın
Sıcak bir düğümü yapılandırmak için dosyaya aşağıdaki yapılandırmayı ekleyin /etc/wazuh-indexer/opensearch.yml
:
node.attr.temp: hot
Wazuh dizinleyici hizmetini yeniden başlatın:
# systemctl restart wazuh-indexer
Sıcak (Worm) Bir Düğüm Yapılandırın
Sıcak bir düğüm yapılandırmak için dosyaya aşağıdaki yapılandırmayı ekleyin /etc/wazuh-indexer/opensearch.yml
:
node.attr.temp: warm
Wazuh dizinleyici hizmetini yeniden başlatın:
systemctl restart wazuh-indexer
Dizinleyici Durum Yönetimi Politikası Oluştur
Wazuh gösterge paneli konsolunda aşağıdaki adımları uygulayın.
-
temp
Daha önce atanan niteliklerin uygulandığını onaylayın :GET _cat/nodeattrs?v&h=node,attr,value
-
wazuh-alerts-4.x-*
Sıcak düğümlere dizin örüntüsünü kullanarak dizinler atamak ve belirli bir süre sonra bunları sıcak düğümlere taşımak için bir ISM politikası oluşturun :PUT _plugins/_ism/policies/hot_warm { "policy": { "description": "Send shards from hot to warm nodes", "schema_version": 17, "error_notification": null, "default_state": "hot", "states": [ { "name": "hot", "actions": [], "transitions": [ { "state_name": "warm", "conditions": { "min_index_age": "30d" } } ] }, { "name": "warm", "actions": [ { "retry": { "count": 3, "backoff": "exponential", "delay": "1m" }, "replica_count": { "number_of_replicas": 0 } }, { "retry": { "count": 3, "backoff": "exponential", "delay": "1m" }, "allocation": { "require": { "temp": "warm" }, "include": {}, "exclude": {}, "wait_for": false } } ], "transitions": [] } ], "ism_template": [ { "index_patterns": [ "wazuh-alerts-*" ], "priority": 1 } ] } }
Sıcak düğümde endeksleri depolamak için minimum gün sayısını tanımlamak için, tercih ettiğiniz gün sayısına
min_index_age
ayarlayın .30d
Artık dizin deseni kullanılarak oluşturulan tüm gelecekteki dizinler wazuh-alerts-4.x-*
sıcak bir düğüme tahsis edilecektir. min_index_age
Koşul karşılandıktan sonra, dizinler sıcak bir düğüme taşınır ve tüm kopyalar kaldırılır. Kopyaların kaldırılması, veriler sık sık sorgulanmayacağı için depolamanın sıcak düğümde yönetilmesini sağlar.
ISM Politikasını Mevcut Endekslere Uygulayın
-
Endeks Yönetimi'nde Endeksleri seçin .
-
Politikayı eklemek istediğiniz endeksi veya endeksleri seçin.
-
Eylemler > Politikayı uygula'ya tıklayın .
-
hot-warm
Politika Kimliği'nde politikayı seçin . -
Politikayı seçili endekslere eklemek için Uygula'ya tıklayın.
Wazuh Indexer Ayarı
Bu kılavuz, Wazuh dizinleyici performansını optimize etmek için ayarların nasıl değiştirileceğini gösterir. Wazuh dizinleyici parolasını değiştirmek için Parola yönetimi bölümüne bakın.
Bellek Kilitleme
Sistem belleği takas ederken, Wazuh dizinleyicisi beklendiği gibi çalışmayabilir. Bu nedenle, Wazuh dizinleyici düğümünün sağlığı için Java Sanal Makinesi'nin (JVM) hiçbir zaman diske takas edilmemesi önemlidir. Herhangi bir Wazuh dizinleyici belleğinin takas edilmesini önlemek için, Wazuh dizinleyicisini işlem adres alanını RAM'e kilitlemek üzere aşağıdaki gibi yapılandırın.
Not: Aşağıda açıklanan komutları çalıştırmak için kök kullanıcı ayrıcalıklarına ihtiyacınız var.
-
/etc/wazuh-indexer/opensearch.yml
Bellek kilitlemeyi etkinleştirmek için Wazuh indeksleyicisindeki yapılandırma dosyasına aşağıdaki satırı ekleyin :bootstrap.memory_lock: true
-
Sistem kaynaklarının sınırını değiştirin. Sistem ayarlarını yapılandırmak Wazuh dizinleyici kurulumunun işletim sistemine bağlıdır.
Systemd-
Sistem sınırlarını belirten dosya için yeni bir dizin oluşturun:
mkdir -p /etc/systemd/system/wazuh-indexer.service.d/
-
Yeni sistem sınırı eklenerek yeni oluşturulan dizinde
wazuh-indexer.conf
dosyayı oluşturmak için aşağıdaki komutu çalıştırın :# cat > /etc/systemd/system/wazuh-indexer.service.d/wazuh-indexer.conf << EOF [Service] LimitMEMLOCK=infinity EOF
SysV Başlatma-
Sistem sınırlarını belirten dosya için yeni bir dizin oluşturun:
mkdir -p /etc/init.d/wazuh-indexer.service.d/
-
Yeni sistem sınırı eklenerek yeni oluşturulan dizinde
wazuh-indexer.conf
dosyayı oluşturmak için aşağıdaki komutu çalıştırın :# cat > /etc/init.d/wazuh-indexer.service.d/wazuh-indexer.conf << EOF [Service] LimitMEMLOCK=infinity EOF
-
-
Dosyayı düzenleyin
/etc/wazuh-indexer/jvm.options
ve JVM bayraklarını değiştirin. Bellek kullanımını sınırlamak için bir Wazuh dizinleyici yığın boyutu değeri ayarlayın. JVM yığın sınırları,OutOfMemory
Wazuh dizinleyicisi önceki adımdaki yapılandırma nedeniyle kullanılabilir olandan daha fazla bellek ayırmaya çalışırsa istisnayı önler. Önerilen değer sistem RAM'inin yarısıdır. Örneğin, 8 GB RAM'li bir sistem için boyutu aşağıdaki gibi ayarlayın.-Xms4g -Xmx4g
Toplam yığın alanı:
-
-Xms4g
- Başlangıç boyutu 4Gb RAM olarak ayarlandı. -
-Xmx4g
- Maksimum boyut 4Gb RAM'dir.
Uyarı: Çalışma zamanında JVM yığın yeniden boyutlandırması nedeniyle performans düşüşünü önlemek için, minimum (Xms) ve maksimum (Xmx) boyut değerlerinin aynı olması gerekir.
-
-
Wazuh dizinleyici hizmetini yeniden başlatın:
systemctl daemon-reload systemctl restart wazuh-indexer
-
Ayarın başarıyla değiştirildiğini doğrulamak için aşağıdaki komutu çalıştırarak
mlockall
değerin şu şekilde ayarlandığını kontrol edintrue
:curl -k -u <INDEXER_USERNAME>:<INDEXER_PASSWORD> "https://<INDEXER_IP_ADDRESS>:9200/_nodes?filter_path=**.mlockall&pretty"
{ "nodes" : { "sRuGbIQRRfC54wzwIHjJWQ" : { "process" : { "mlockall" : true } } } }
Çıktı ise
false
, istek başarısız olmuş ve dosyada aşağıdaki satır görünür/var/log/wazuh-indexer/wazuh-indexer.log
:Unable to lock JVM Memory
Parçalar ve Kopyalar
Wazuh dizinleyicisi, bir dizini shard adı verilen birden fazla parçaya bölme olanağı sunar. Her shard, Wazuh dizinleyici kümesindeki herhangi bir düğümde barındırılabilen tamamen işlevsel ve bağımsız bir "indekstir". Bölme iki ana nedenden dolayı önemlidir:
-
Yatay ölçekleme.
-
Parçalar arası dağıtım ve paralelleştirme işlemleri, performans ve verimi artırır.
Ayrıca, Wazuh dizinleyicisi kullanıcıların dizin parçacıklarının bir veya daha fazla kopyasını, kısaca replikalar veya replikalar olarak adlandırılan şekilde oluşturmasına olanak tanır. Replikasyon iki nedenden dolayı önemlidir:
-
Bir parçanın veya düğümün arızalanması durumunda yüksek erişilebilirlik sağlar.
-
Aramalar tüm replikalarda paralel olarak yürütülebildiğinden arama hacminin ve veriminin ölçeklenmesine olanak tanır.
Bir Index İçin Parça Sayısı
İlk dizini oluşturmadan önce, kaç tane parçaya ihtiyaç duyulacağını dikkatlice düşünün. Parça sayısını yeniden dizinlemeden değiştirmek mümkün değildir.
Optimum performans için gereken parça sayısı, Wazuh dizinleyici kümesindeki düğüm sayısına bağlıdır. Genel bir kural olarak, parça sayısı düğüm sayısıyla aynı olmalıdır. Örneğin, üç düğümü olan bir kümenin üç parçası olmalı, yalnızca bir düğümü olan bir kümenin ise yalnızca bir parçaya ihtiyacı olacaktır.
Bir Index İçin Kopya Sayısı
Kopyaların sayısı, dizinler için kullanılabilir depolama alanına bağlıdır. İşte üç düğüm ve üç parçadan oluşan bir Wazuh dizinleyici kümesinin nasıl kurulabileceğine dair bir örnek.
-
Kopya yok : Her düğümün bir parçası vardır. Bir düğüm çökerse, yalnızca iki parçadan oluşan eksik bir dizin kullanılabilir.
-
Bir kopya : Her düğümün bir parçası ve bir kopyası vardır. Bir düğüm çökerse, tam bir dizin hala kullanılabilir.
-
İki replika : Her düğümün bir parça ve iki replika ile tam dizini vardır. Bu kurulumla, iki düğüm çökse bile küme çalışmaya devam eder. Bu en iyi çözüm gibi görünse de depolama gereksinimlerini artırır.
Aşağıdaki görüntü, her biri birincil parça ve iki kopya parça içeren üç düğümden oluşan bir Wazuh dizinleyici kümesini göstermektedir.

Parça Sayısını Ayarlama
Uyarı: Parça ve replika sayısı, dizin oluşturma sırasında dizin başına tanımlanır. Dizin oluşturulduktan sonra, replika sayısı dinamik olarak değiştirilebilse de, parça sayısı yeniden dizinleme yapılmadan değiştirilemez .
Wazuh dizinleyici düğümünün varsayılan kurulumu her dizini üç birincil parça ve hiçbir kopya olmadan oluşturur. Wazuh API'sini kullanarak yeni bir şablon yükleyerek birincil parça ve kopya sayısını değiştirebilirsiniz.
Aşağıdaki örnekte, tek düğümlü bir Wazuh dizinleyicisi için parçacık sayısını 1 olarak ayarladık. Wazuh API'sini kullanarak kimlik doğrulaması yapmasına izin verilen Wazuh dizinleyici düğümünde veya herhangi bir merkezi bileşende aşağıdaki adımları uygulayın.
-
Wazuh indeksleyici şablonunu indirin:
curl https://raw.githubusercontent.com/wazuh/wazuh/v4.9.2/extensions/elasticsearch/7.x/wazuh-template.json -o w-indexer-template.json
-
index.number_of_shards
öğesini1
olarak ayarlamak içinw-indexer-template.json
dosyasını düzenleyin. Filebeat'in mevcut şablonun üzerine yazmasını önlemek için sırayı 1 olarak ayarlayın. Aynı sırada birden fazla eşleşen şablon, deterministik olmayan bir birleştirme sırasına neden olur.{ "order": 1, "index_patterns": [ "wazuh-alerts-4.x-*", "wazuh-archives-4.x-*" ], "settings": { "index.refresh_interval": "5s", "index.number_of_shards": "1", "index.number_of_replicas": "0", "index.auto_expand_replicas": "0-1", "index.mapping.total_fields.limit": 10000, ...
-
Yeni ayarları yükleyin.
curl -X PUT "https://<INDEXER_IP_ADDRESS>:9200/_template/wazuh-custom" -H 'Content-Type: application/json' -d @w-indexer-template.json -k -u <INDEXER_USERNAME>:<INDEXER_PASSWORD>
{"acknowledged":true}
-
Yapılandırmanın başarıyla güncellendiğini onaylayın.
curl "https://<INDEXER_IP_ADDRESS>:9200/_template/wazuh-custom?pretty&filter_path=wazuh-custom.settings" -k -u <INDEXER_USERNAME>:<INDEXER_PASSWORD>
{ "wazuh-custom" : { "settings" : { "index" : { "mapping" : { "total_fields" : { "limit" : "10000" } }, "refresh_interval" : "5s", "number_of_shards" : "1", "auto_expand_replicas" : "0-1", "number_of_replicas" : "0", ...
Eğer indeks daha önceden oluşturulmuşsa yeniden indekslenmesi gerekir .
Kopyaların Sayısını Ayarlama
Kopya sayısı, Wazuh dizinleyici API'si kullanılarak dinamik olarak değiştirilebilir. Tek düğümlü bir kümede, kopya sayısı sıfıra ayarlanmalıdır. Bu, Wazuh dizinleyici düğümünde veya Wazuh API'si kullanılarak kimlik doğrulaması yapılmasına izin verilen herhangi bir merkezi bileşende aşağıdaki komutu çalıştırarak gerçekleştirilir:
curl -k -u "<INDEXER_USERNAME>:<INDEXER_PASSWORD>" -XPUT "https://<INDEXER_IP_ADDRESS>:9200/wazuh-alerts-" -H 'Content-Type: application/json' -d' { "settings": { "index": { "number_of_replicas": 0 } } }'
Parça Tahsis Farkındalığını veya Zorunlu Farkındalığı Yapılandırın
Bu, Wazuh indeksleyici düğümlerinin coğrafi olarak dağınık bölgelere yayıldığı durumlarda en çok uygulanabilir.
Farkındalığı yapılandırmak için, /etc/wazuh-indexer/opensearch.yml
farklı bölgeler için Wazuh dizinleyici düğümlerindeki dosyaya bölge niteliklerini ekleyin.
/etc/wazuh-indexer/opensearch.yml
Örneğin: A ve B bölgesi adında iki bölgeniz var. Aşağıdaki yapılandırmayı sırasıyla A ve B bölgesindeki her Wazuh dizinleyici düğümüne dosyaya ekleyeceksiniz :
node.attr.zone: zoneA
node.attr.zone: zoneB
Tahsis farkındalığı, A ve B bölgesindeki Wazuh dizinleyici düğümlerindeki depolama %50'den az kullanılıyorsa en iyi şekilde kullanılır. Bu, bölgedeki replikaları tahsis etmek için yeterli depolama kapasitesi sağlar.
Hem A hem de B bölgesindeki Wazuh dizinleyici düğümlerinin tüm birincil ve kopya parçacıklarını depolamak için yeterli kapasitesi yoksa, zorunlu farkındalık bir seçenektir. Bu, bir bölge arızası olması durumunda Wazuh dizinleyicisinin kalan bölgenizi aşırı yüklememesini ve kümenizin depolama yetersizliği nedeniyle kilitlenmesini önler.
Tahsis farkındalığı veya zorunlu farkındalığı seçmek, birincil ve kopya parçalarınızı dengelemek için her bölgede ne kadar alanınız olduğuna bağlıdır.
Parça Tahsisi Farkındalığı
Parça tahsisi farkındalığı, birincil ve replika parçaları birden fazla bölgeye yaymaya çalışır. Bir replika parçayı birincil bölgesinden farklı bir bölgeye tahsis etmek için kullanılır.
Bir bölge içinde düğüm arızası durumunda, replika parçalarınızın kalan bölgeleriniz arasında dağıtıldığından emin olabilirsiniz. Bu, hata toleransını artırarak verilerinizi bölge arızalarına ve bireysel düğüm arızalarına karşı korur.
Parça tahsis farkındalığını yapılandırmak için küme ayarlarını güncelleyin:
PUT _cluster/settings { "persistent": { "cluster.routing.allocation.awareness.attributes": "zone" } }
persistent
ya da ayarlarını kullanabilirsiniz transient
. Ayarı kullanmanızı öneririz persistent
çünkü küme yeniden başlatma sırasında kalıcıdır. transient
Ayar küme yeniden başlatma sırasında kalıcı değildir.
Not: Yalnızca bir bölge mevcutsa (örneğin bölge arızalarından sonra), Wazuh dizinleyicisi çoğaltma parçalarını yalnızca kalan bölgeye tahsis eder.
Zorla Farkındalık
Zorunlu farkındalığın kullanılması, birincil ve kopya parçaların asla aynı bölgeye tahsis edilmediği anlamına gelir.
Zorunlu farkındalığı yapılandırmak için bölge nitelikleriniz için tüm olası değerleri belirtin:
PUT _cluster/settings { "persistent": { "cluster.routing.allocation.awareness.attributes": "zone", "cluster.routing.allocation.awareness.force.zone.values":["zoneA", "zoneB"] } }
Başka bölgeler varsa, diğer bölgeleri cluster.routing.allocation.awareness.force.zone.values
alanına ekleyin .
Uyarı: Bir düğüm başarısız olursa, zorunlu farkındalık replikaları aynı bölgedeki başka bir düğüme tahsis etmez. Bunun yerine, küme sarı bir duruma girer ve yalnızca diğer bölgedeki(bölgelerdeki) düğümler çevrimiçi olduğunda replikaları tahsis eder.
Tahsis Filtreleme
Bu, bir düğümün parça tahsisinden hariç tutulmasına olanak tanır. Yaygın bir kullanım durumu, bir bölge içindeki bir düğümü devre dışı bırakmak istediğiniz zamandır.
Bir düğümü devre dışı bırakmadan önce parçaları taşımak için, düğümü IP adresini kullanarak hariç tutan bir filtre oluşturun. Bu, kapatılmadan önce o düğüme tahsis edilen tüm parçaları taşıyacaktır. Ayrıca, *
bir IP aralığında devre dışı bırakılacak birden fazla düğümün olduğu bir durumda joker karakter kullanabilirsiniz.
PUT _cluster/settings { "persistent": { "cluster.routing.allocation.exclude._ip": "192.168.0.*" } }
Bir Kümedeki Her Düğüm İçin Düğüm Niteliklerini Ayarlayın
Varsayılan olarak, her Wazuh dizinleyici düğümü bir ana uygun, veri, alım ve koordinasyon düğümüdür. Düğüm sayısına karar vermek, düğüm türlerini atamak ve her düğüm türü için donanımı seçmek kullanım durumunuza bağlıdır.
Küme Yöneticisi Düğümleri
Küme yöneticisi düğümleri, düğümlere parça ekleme, kaldırma ve tahsis etme, ayrıca dizin ve alan oluşturma ve silme dahil olmak üzere küme genelindeki tüm yapılandırmaları ve değişiklikleri yönetir.
Dağıtılmış bir fikir birliği tekniği, küme yöneticisi uygun düğümleri arasından tek bir küme yöneticisi düğümü seçmek için kullanılır. Bu küme yöneticisi düğümü, mevcut düğüm başarısız olursa yeniden seçilir.
Varsayılan olarak zaten yapılmış olsa da, bir Wazuh dizinleyici düğümünün küme yöneticisi düğümü olduğunu belirtebilirsiniz.
cluster_manager
Aşağıdaki yapılandırmayı dosyaya ekleyerek bir Wazuh dizinleyici düğümü rolü ayarlayın /etc/wazuh-indexer/opensearch.yml
:
node.roles: [ cluster_manager ]
Veri Düğümleri
Veri düğümü, verileri depolamak ve aramaktan sorumludur. Yerel parçalarda tüm veriyle ilgili işlemleri (indeksleme, arama, toplama) gerçekleştirir. Bunlar Wazuh dizinleyici kümenizin çalışan düğümleridir ve diğer tüm düğüm türlerinden daha fazla disk alanına ihtiyaç duyarlar.
Aşağıdaki yapılandırmayı dosyaya ekleyerek bir Wazuh dizinleyici düğümü rolünü veri düğümü olarak ayarlayın /etc/wazuh-indexer/opensearch.yml
:
node.roles: [ data, ingest ]
Veri düğümleri eklerken bunları bölgeler arasında dengeli tutmak önemlidir. Örneğin, üç bölgeniz varsa, her bölge için bir veri düğümü ekleyin. Depolama ve RAM ağırlıklı düğümler kullanmanızı öneririz.
Koordinasyon Düğümleri
Koordinasyon düğümü, istemci isteklerini veri düğümlerindeki parçalara devreder, sonuçları toplar ve tek bir nihai sonuçta birleştirir ve bunu Wazuh panosuna geri gönderir.
Her düğüm varsayılan olarak bir koordinasyon düğümüdür, ancak bir düğümü özel bir koordinasyon düğümü yapmak için node.roles
boş bir liste ayarlayın:
node.roles: []
Wazuh Endekslerinin Taşınması
Bu bölümde, anlık görüntüleri kullanarak Wazuh dizinlerini taşımaya odaklanıyoruz. Bu, orijinal zaman damgasını kaybetmeden uyarıları bir Wazuh dizinleyici kümesinden diğerine geri yüklemeye yardımcı olur.
Paylaşımlı Dosya Sistemini Kurun
Anlık görüntü deposu için paylaşımlı bir dosya sistemi oluşturmak amacıyla bir Ağ Dosya Sistemi (NFS) kullanılmasını öneririz.
NFS Sunucusu
Adanmış bir sunucuda NFS'yi kurmak için aşağıdaki adımları uygulayın:
-
Anlık görüntü deposu için şu dizinde bir hedef
/mnt
dizinİ oluşturun :mkdir /mnt/snapshots
-
Aşağıdaki komutları çalıştırarak NFS'yi yükleyin:
Yumyum update yum install -y nfs-utils yum install exportfs systemctl enable nfs-server systemctl start nfs-server
APTapt -y install nfs-kernel-server systemctl start nfs-kernel-server.service
-
Aşağıdaki komutu kullanarak
/mnt/snapshots
dizinini/etc/exports
dosyasına ekleyin.<NETWORK_ADDRESS/CIDR>
değişkenini ağ adresinizle değiştirin.echo "/mnt/snapshots <NETWORK_ADDRESS/CIDR>(rw,sync,no_root_squash,no_subtree_check)" | sudo tee -a /etc/exports
Nerede:
-
rw
- Paylaşılan dizine hem okuma hem de yazma erişimi sağlar. -
sync
- NFS sunucusunun değişiklikleri hemen diske yazmasını zorlar ve dosya sistemini senkron hale getirir. -
no_root_squash
- NFS istemci sistemindeki "root" kullanıcısının NFS sunucusundaki dosyalara tam ve kısıtlanmamış erişime sahip olmasını sağlar. -
no_subtree_check
- Büyük dizin ağaçları için performansı artırabilen alt ağaç denetimini devre dışı bırakır.
-
-
NFS yapılandırmasını uygulayın:
exportfs -a
Wazuh Indexer
Paylaşımlı dosya sistemi kurulumunu tamamlamak için Wazuh dizinleyici düğümünde (düğümlerinde) aşağıdaki adımları gerçekleştirin.
-
Anlık görüntü deposu için şu dizinde bir hedef
/mnt
dizin oluşturun :mkdir /mnt/snapshots
-
NFS istemcisini yükleyin:
Yumyum -y install nfs-utils
APTapt -y install nfs-common
-
Paylaşılan dizini
/mnt/snapshots
Wazuh dizinleyici düğümüne(düğümlerine) bağlayın.<NFS_SERVER_IP>
Değişkeni NFS sunucusunun IP adresiyle değiştirin:mount -t nfs <NFS_SERVER_IP>:/mnt/snapshots /mnt/snapshots
-
wazuh-indexer
Kullanıcıya dizinin sahipliğini verin/mnt/snapshots
:chown wazuh-indexer:wazuh-indexer /mnt/snapshots
-
Yapılandırmayı ekleyin:
path.repo:/mnt/snapshots
depo yolunu belirtmek için/etc/wazuh-indexer/opensearch.yml
dosyasına:network.host: "127.0.0.1" node.name: "node-1" cluster.initial_master_nodes: - "node-1" cluster.name: "wazuh-cluster" node.max_local_storage_nodes: "3" path.data: /var/lib/wazuh-indexer path.logs: /var/log/wazuh-indexer path.repo: /mnt/snapshots plugins.security.ssl.http.pemcert_filepath: /etc/wazuh-indexer/certs/wazuh-indexer.pem plugins.security.ssl.http.pemkey_filepath: /etc/wazuh-indexer/certs/wazuh-indexer-key.pem plugins.security.ssl.http.pemtrustedcas_filepath: /etc/wazuh-indexer/certs/root-ca.pem plugins.security.ssl.transport.pemcert_filepath: /etc/wazuh-indexer/certs/wazuh-indexer.pem plugins.security.ssl.transport.pemkey_filepath: /etc/wazuh-indexer/certs/wazuh-indexer-key.>plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/wazuh-indexer/certs/root-ca.pem plugins.security.ssl.http.enabled: true plugins.security.ssl.transport.enforce_hostname_verification: false plugins.security.ssl.transport.resolve_hostname: false plugins.security.ssl.http.enabled_ciphers: - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" - "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" - "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" - "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" plugins.security.ssl.http.enabled_protocols: - "TLSv1.2" plugins.security.authcz.admin_dn: - "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US" plugins.security.check_snapshot_restore_write_privileges: true plugins.security.enable_snapshot_restore_privilege: true plugins.security.nodes_dn: - "CN=indexer,OU=Wazuh,O=Wazuh,L=California,C=US" plugins.security.restapi.roles_enabled: - "all_access" - "security_rest_api_access" plugins.security.system_indices.enabled: true plugins.security.system_indices.indices: [".opendistro-alerting-config", ".opendistro-alert> ### Option to allow Filebeat-oss 7.10.2 to work ### compatibility.override_main_response_version: true
-
Yapılandırma değişikliklerini uygulamak için Wazuh dizinleyicisini yeniden başlatın:
systemctl restart wazuh-indexer
Uyarı: ll
yardımcı programını kullanarak /mnt/snapshots
dizininin Wazuh dizinleyici düğümlerinde wazuh-indexer:wazuh-indexer
sahipliğine sahip olduğunu doğruladığınızdan emin olun.
NFS paylaşım dizini /mnt/snapshots
'ı anlık görüntü deposu olarak kullanmak için hedef Wazuh dizinleyici(ler)de Paylaşılan dosya sistemini kur > Wazuh dizinleyici adımlarını tekrarlayın.
Anlık Görüntü Deposunu Kurun
Wazuh kontrol panelinde aşağıdaki adımları uygulayın:
-
Sol üst menüye ☰ tıklayın , Indexer yönetimi > Anlık Görüntü Yönetimi > Depolar'a gidin ve yeni bir anlık görüntü deposu oluşturmak için Depo oluştur'u seçin.
-
Bir depo adı girin, depo türünü Paylaşılan dosya sistemi olarak seçin , depo konumunu girin
/mnt/snapshots
ve yeni deponun kaydını yapmak için Ekle'yi seçin.
Benzer bir anlık görüntü deposu kurmak için yukarıdaki adımları hedef Wazuh kümesinde tekrarlayın.
Anlık Görüntüler Alın
-
Sol üst menüye ☰ tıklayın ve Indexer yönetimi > Anlık Görüntü Yönetimi > Anlık Görüntüler bölümüne gidin .
-
Anlık görüntü al'ı seçin ve bir Anlık Görüntü adı girin.
-
Kaynak dizin desenlerini seçin veya girin.
-
Anlık görüntüleri depolamak için daha önce oluşturulan depoları seçin.
-
Gelişmiş seçenekleri seçin ve Anlık görüntülere küme durumunu dahil et seçeneğini işaretleyin.
-
Yeni bir anlık görüntü oluşturmak için Ekle'yi seçin .
Anlık görüntü dosyaları /mnt/snapshots
depolama konumuna kaydedilir .

Anlık Görüntüleri Geri Yükle
Wazuh dizin geçiş adımlarını tamamlamak için eski Wazuh dizinleyicilerinden alınan anlık görüntüleri hedef Wazuh dizinleyicilerine geri yükleyin. Hedef Wazuh dizinleyicisinde aşağıdaki adımları gerçekleştirin.
Not
Anlık görüntüleri geri yükleme işlemine geçmeden önce hedef Wazuh kümesinde Paylaşımlı dosya sistemini kur ve Anlık görüntü deposunu kur bölümlerindeki adımların gerçekleştirilmesi gerekir .
-
Anlık görüntü dosyalarını yüklemek için hedef Wazuh kümesindeki Wazuh dizinleyici düğümlerini şu komutu kullanarak yeniden başlatın:
systemctl restart wazuh-indexer
-
Sol üst menüye ☰ tıklayın , Indexer yönetimi > Anlık Görüntü Yönetimi > Anlık Görüntüler'e gidin ve Anlık Görüntüler sayfasını yenileyin. Depo konumundaki anlık görüntüler
/mnt/snapshots
hedef Wazuh kümesinin panosunda gösterilecektir. -
Anlık görüntüyü seçin ve Geri Yükle'ye
restored_
tıklayın. Dizinleri orijinal adlarına geri yüklemek için öneki silin .restored_
Önek, çakışan dizin adlarını önlemek için vardır. -
Gelişmiş seçenekleri seçin ve tüm seçeneklerin işaretli olmadığından emin olun.
-
Göç sürecini tamamlamak için Anlık görüntüyü geri yükle'yi seçin.
Wazuh Indexer Kümesi
Wazuh Dashboard
Wazuh Dashboard Ayarları
Sertifika Dağıtımı
Wazuh Agent
Wazuh Agent Kayıt
Veri Analizi
MITRE ATT&CK Framework
CDB Listelerini Kullanma
Kurallar
Decoders
Kod Çözücüleri ve Kuralları Test Etme
Kullanıcı Yönetimi
Şifre Yönetimi
Yetenekler
Günlük Veri Toplama
Günlük veri toplama, bir ağ içindeki farklı günlük kaynaklarından günlükleri toplamayı ve birleştirmeyi içerir. Günlük veri toplama, güvenlik ekiplerinin düzenleyici uyumluluğu karşılamalarına, tehditleri tespit edip düzeltmelerine ve uygulama hatalarını ve diğer güvenlik sorunlarını belirlemelerine yardımcı olur.
Wazuh, uç noktalardan, ağ aygıtlarından ve uygulamalardan günlükleri toplar, analiz eder ve depolar. İzlenen bir uç noktada çalışan Wazuh aracısı, analiz için sistem ve uygulama günlüklerini toplar ve Wazuh sunucusuna iletir. Ayrıca, syslog veya üçüncü taraf API entegrasyonları aracılığıyla günlük mesajlarını Wazuh sunucusuna gönderebilirsiniz.
Ajansız İzleme
Wazuh sunucusu, uç noktalardaki güvenlik olaylarını ve vakalarını izlemek, tespit etmek ve bunlara ilişkin uyarıları tetiklemek için Wazuh ajanlarından aldığı verileri analiz eder. Ancak bazı uç noktalarda Wazuh ajanının kurulumunu engelleyen sınırlamalar olabilir. Wazuh, ajansız izleme yeteneğini kullanarak bu sorunu çözer.
Aracısız izleme, bir aracı veya yazılım yüklemeyi gerektirmeyen bir uç nokta izleme türünü ifade eder. Bu yaklaşım, izlenen uç noktadan bilgi edinmek ve toplamak için mevcut protokolleri kullanır.
Wazuh ajansız izleme yeteneği, olayları uç noktalardan Wazuh sunucusuna toplamak ve aktarmak için SSH (Güvenli Kabuk) protokolünü kullanır. Desteklenen platformlar arasında yönlendiriciler, güvenlik duvarları, anahtarlar ve Linux/BSD sistemleri bulunur. Yazılım yükleme kısıtlamaları olan uç noktaların güvenlik ve uyumluluk gereksinimlerini karşılamasını sağlar.
Konteyner Güvenliği
Konteyner güvenliği, konteynerlerin ve içerdikleri uygulamaların korunmasını ve kullanılabilirliğini sağlamak için önlemler ve uygulamalar uygulamayı içerir, böylece bütünlükleri ve gizlilikleri güvence altına alınır. Wazuh, kuruluşların konteyner ortamlarını güvence altına almalarına yardımcı olmak için merkezi günlük kaydı, gerçek zamanlı izleme, güvenlik açığı taraması ve olay yanıt otomasyonu gibi çeşitli yetenekler ve özellikler sunar.
Wazuh, kullanıcıların Docker gibi konteyner platformlarını etkili bir şekilde izlemesini sağlayarak konteyner sağlığının izlenmesi de dahil olmak üzere konteyner kaynaklarına kapsamlı görünürlük sağlar . Ayrıca Wazuh, konteyner güvenliği ve izlemesine bütünsel bir yaklaşım sağlayarak Kubernetes altyapısını denetleme olanağı sunar .
Aktif Tepki
Güvenlik ekipleri, yüksek öneme sahip olayları zamanında ele almak veya tam azaltma eylemleri sağlamak gibi olay yanıtlarında sıklıkla sorunlarla karşılaşırlar. Gerçek zamanlı olarak ilgili bilgileri toplamakta zorlanabilirler, bu da bir olayın tam kapsamını anlamayı zorlaştırır. Bu sorunlar, bir siber saldırının etkisini sınırlama ve azaltma zorluğunu artırır.
Wazuh SIEM ve XDR platformu, olaylara müdahaleyi şu şekilde iyileştirir:
-
Güvenlik olaylarına ilişkin gerçek zamanlı görünürlük sağlamak.
-
Uyarı yorgunluğunun azaltılması.
-
Tehditlere karşı yanıt eylemlerinin otomatikleştirilmesi.
-
Hazır yanıt senaryoları sağlamak.
Wazuh, güvenlik ekiplerinin belirli tetikleyicilere dayalı yanıt eylemlerini otomatikleştirmesine yardımcı olan ve güvenlik olaylarını etkili bir şekilde yönetmelerini sağlayan bir Active Response modülüne sahiptir.
Yanıt eylemlerinin otomatikleştirilmesi, yüksek öncelikli olayların zamanında ve tutarlı bir şekilde ele alınmasını ve düzeltilmesini sağlar. Bu, özellikle güvenlik ekiplerinin kaynaklarının kısıtlı olduğu ve yanıt çabalarını önceliklendirmeleri gereken ortamlarda değerlidir.
Ek olarak, modül tehditlere yanıt vermeye ve bunları azaltmaya yardımcı olan bir dizi kullanıma hazır yanıt betiği içerir. Örneğin, bazı betikler kötü amaçlı ağ erişimini engeller ve izlenen uç noktalardaki kötü amaçlı dosyaları siler. Bu eylemler güvenlik ekiplerinin iş yükünü azaltır ve olayları etkili bir şekilde yönetmelerini sağlar.
Wazuh Active Response modülü, belirli bir kural kimliği, seviyesi veya kural grubu uyarısı tetiklendiğinde izlenen uç noktalarda bu betikleri yürütür. Bir tetikleyiciye yanıt olarak başlatılacak herhangi bir sayıda betik ayarlayabilirsiniz; ancak bu yanıtları dikkatlice değerlendirmelisiniz. Kuralların ve yanıtların kötü uygulanması, bir uç noktanın savunmasızlığını artırabilir.
Aşağıdaki görsel Active Response iş akışını göstermektedir.

Aktif yanıt türleri
Aktif bir yanıt şunlardan biri olabilir:
-
Vatansız
-
Durum bilgisi
Durumsuz etkin yanıtlar, onları geri döndürmek veya durdurmak için bir olay tanımı olmayan tek seferlik eylemlerdir. Durumlu yanıtlar, eylemlerini bir süre sonra geri döndürür veya durdurur.
Sistem Envanteri
Sistem envanteri, bir BT altyapısındaki donanım ve yazılım varlıkları hakkında bilgi içeren bir kaynaktır. Tüm varlıkların envanterini tutmak, kuruluşların ortamlarındaki donanım ve yazılım görünürlüğünü en üst düzeye çıkarmalarına yardımcı olur. Güncel bir sistem envanteri, bir kurumsal ağ içinde iyi bir BT hijyeni sağlamak için olmazsa olmazdır.
Merkezi bir sistem envanteri tutmak için Wazuh aracıları izlenen uç noktalardan sistem bilgilerini toplar ve bunları Wazuh sunucusuna gönderir. Wazuh Syscollector modülü, bu tür verileri her bir aracıdan toplamaktan sorumludur. Wazuh aracısının topladığı veriler arasında donanım ve işletim sistemi bilgileri, yüklü yazılım ayrıntıları, ağ arayüzleri, bağlantı noktaları ve çalışan işlemler bulunur. Wazuh aracısı ayrıca Windows uç noktalarından Windows güncelleştirmeleri hakkında veri toplayabilir. Syscollector modülünün ne tür bilgileri toplamasını veya yoksaymasını istediğinizi yapılandırabilirsiniz.
Kullanıcılar, tehdit avı ve BT hijyeni egzersizleri sırasında değerli kaynaklar olabilecek Wazuh panosundan sistem envanter raporları oluşturabilir. Raporda yer alan bilgiler, istenmeyen uygulamaları, süreçleri, hizmetleri ve kötü amaçlı eserleri tanımlamak için kullanılabilir.
Malware (Kötü Amaçlı Yazılım) Tespiti
Kötü amaçlı yazılım tespiti, kötü amaçlı yazılım ve dosyaların varlığı açısından bir bilgisayar sistemini veya ağını analiz etme sürecini ifade eder. Güvenlik ürünleri, bilinen kötü amaçlı yazılımların imzalarını kontrol ederek kötü amaçlı yazılımları tespit edebilir. Güvenlik araçları ayrıca yazılım etkinliğinden şüpheli davranışları tespit ederek kötü amaçlı etkinliği tespit edebilir. Kötü amaçlı yazılım bir sistemi enfekte ettiğinde, tespitten kaçınmak için çeşitli teknikler kullanarak sistemi değiştirebilir. Wazuh, kötü amaçlı dosyaları ve kötü amaçlı yazılımın varlığını gösteren anormal kalıpları tespit etmek için bu tekniklere karşı koymak amacıyla geniş spektrumlu bir yaklaşım kullanır.
Wazuh dosya bütünlüğü izleme (FIM) modülü, izlenen uç noktalardaki kötü amaçlı dosyaları tespit etmeye yardımcı olur. FIM modülü kendi başına kötü amaçlı dosyaları tespit edemez. Ancak, FIM modülünü tehdit tespit kuralları ve tehdit istihbarat kaynaklarıyla birleştirerek kötü amaçlı yazılımları tespit edebilirsiniz. Wazuh'u, dosya karmaları içeren VirusTotal ve CDB listeleri ve kötü amaçlı yazılımları tespit etmek için YARA taramaları gibi tehdit istihbarat kaynaklarıyla FIM olaylarını kullanacak şekilde yapılandırabilirsiniz.
Wazuh, Rootcheck modülünü kullanarak izlenen uç noktalardaki rootkit davranışını algılar . Rootcheck, uç noktaları sürekli olarak izler ve herhangi bir anormallik algıladığında uyarılar üretir. Anormallik izleme, Wazuh'un imza tabanlı tekniklerin kaçırmış olabileceği kötü amaçlı yazılımları algılamasını sağlar. Rootcheck ayrıca izlenen uç noktalardaki varlıklarını algılamak için bilinen rootkit ve truva atı imzalarını kullanır. Wazuh'un esnekliği, kullanıcıların bu rootkit imzalarını kendilerinin güncelleyebilmesini sağlar.
Wazuh günlük toplama yeteneği, üçüncü taraf kötü amaçlı yazılım tespit yazılımlarından günlükleri toplamanıza olanak tanır. Bu yeteneği kullanarak Wazuh, Windows Defender ve ClamAV gibi çeşitli kötü amaçlı yazılım tespit yazılımlarından günlükleri toplar ve analiz eder.
Dosya Bütünlüğünün İzlenmesi
Dosya Bütünlüğü İzleme (FIM), sistem ve uygulama dosyalarının bütünlüğünü izlemek için kullanılan bir güvenlik işlemidir. FIM, hassas varlıkları izleyen her kuruluş için önemli bir güvenlik savunma katmanıdır. Hassas veriler, uygulama ve cihaz dosyalarını izleyerek, düzenli olarak tarayarak ve bütünlüklerini doğrulayarak koruma sağlar. Kuruluşların sistemlerindeki kritik dosyalardaki değişiklikleri tespit etmelerine yardımcı olarak verilerin çalınması veya tehlikeye atılması riskini azaltır. Bu işlem, kaybedilen üretkenlik, kaybedilen gelir, itibar hasarı ve yasal ve düzenleyici uyumluluk cezalarında zamandan ve paradan tasarruf sağlayabilir.
Wazuh, dosya bütünlüğü izleme için yerleşik bir yeteneğe sahiptir. Wazuh FIM modülü dosyaları ve dizinleri izler ve bir kullanıcı veya işlem izlenen dosyaları oluşturduğunda, değiştirdiğinde ve sildiğinde bir uyarı tetikler. İzlenen dosyaların kriptografik toplam kontrolünü ve diğer özniteliklerini depolayan bir temel tarama çalıştırır. Bir kullanıcı veya işlem bir dosyayı değiştirdiğinde, modül toplam kontrolünü ve özniteliklerini temelle karşılaştırır. Bir uyumsuzluk bulursa bir uyarı tetikler. FIM modülü, aracılar ve yönetici için FIM yapılandırmasına bağlı olarak gerçek zamanlı ve zamanlanmış taramalar gerçekleştirir.
Wazuh FIM yeteneğinin bazı faydaları şunlardır: değişiklik yönetimi, tehdit tespiti ve yanıtlama ve düzenlemelere uyum.
Değişim Yönetimi
Wazuh FIM yeteneği, değişiklik yönetimi süreçlerinin doğru çalıştığını doğrulamak için olmazsa olmaz bir araçtır. Bu Wazuh yeteneği, dosyaların değişip değişmediğini, nasıl ve ne zaman değiştiğini ve kimin veya neyin onları değiştirdiğini görmek için incelemenize olanak tanır. Wazuh FIM modülü, temel bilgileri dosyanın en son sürümündeki bilgilerle karşılaştırır. Bu karşılaştırma, kritik dosyalardaki değişikliklere ve güncellemelere ilişkin görünürlük sağlar. Örneğin, bunu uygulamalardaki yanlış güncellemeleri veya yapılandırma dosyalarında yapılan yetkisiz değişiklikleri tespit etmek için kullanabilirsiniz.
Tehdit Tespiti ve Yanıtlama
FIM'i tehdit algılama ve yanıtlama için diğer Wazuh yetenekleriyle birleştirebilirsiniz. FIM yeteneği dosya bütünlüğünü izler, izin değişikliklerini algılar ve kullanıcı ve dosya etkinliklerini izler. Algılanan tehditlere hızlı yanıtlar için ayrıntılı uyarılar sağlar.
Mevzuata Uygunluk
FIM yeteneği, kuruluşların veri güvenliği, gizlilik ve veri saklama için düzenleyici gereklilikleri karşılamalarına yardımcı olur. Kritik dosyaları değişiklikler açısından izlemek, PCI DSS, HIPAA ve GDPR gibi düzenlemeler için önemli bir gerekliliktir.
Nasıl Çalışır?
FIM modülü belirli yollarda periyodik taramalar çalıştırır ve gerçek zamanlı olarak belirli dizinlerdeki değişiklikleri izler. Wazuh aracılarının ve yöneticisinin yapılandırmasında hangi yolların izleneceğini ayarlayabilirsiniz.
FIM, dosyaların toplam kontrol değerlerini ve diğer özniteliklerini yerel bir FIM veritabanında depolar. Bir tarama sırasında, Wazuh aracısı, FIM modülünün izlenen yollarda bulduğu tüm değişiklikleri Wazuh sunucusuna bildirir. FIM modülü, bir dosyanın toplam kontrol değerlerini, depolanan toplam kontrol değerleri ve öznitelik değerleriyle karşılaştırarak dosya değişikliklerini arar. Tutarsızlıklar bulursa bir uyarı oluşturur.
Wazuh FIM modülü, dosya oluşturma, değiştirme ve silme verileri gibi FIM olay verilerini toplamak için iki veritabanı kullanır. Biri, verileri şurada depolayan izlenen uç noktadaki yerel bir SQLite tabanlı veritabanıdır:
-
C:\Program Files (x86)\ossec-agent\queue\fim\db
Windows'ta. -
/var/ossec/queue/fim/db
Linux'ta. -
/Library/Ossec/queue/fim/db
macOS'ta.
Diğeri Wazuh sunucusundaki bir aracı veritabanıdır. Wazuh-db . daemon, Wazuh sunucusundaki her bir aracı için bir veritabanı oluşturur ve yönetir. Veritabanını tanımlamak için aracının kimliğini kullanır. Bu hizmet veritabanlarını . adresinde depolar /var/ossec/queue/db
.

FIM modülü, Wazuh aracısını ve Wazuh sunucu veritabanlarını birbirleriyle senkronize tutar. Wazuh sunucusundaki dosya envanterini her zaman Wazuh aracısının erişebildiği verilerle günceller. Güncel bir Wazuh sunucu veritabanı, FIM ile ilgili API sorgularının servis edilmesini sağlar. Senkronizasyon mekanizması, Wazuh sunucusunu yalnızca Wazuh aracılarından gelen, kontrol toplamları ve değişen dosya öznitelikleri gibi bilgilerle günceller.
Wazuh aracısı ve yöneticisi varsayılan olarak FIM modülünü etkinleştirmiş ve önceden yapılandırmıştır . Ancak, izlenen yollar gibi FIM ayarlarını ortamınıza göre uyarladığınızdan emin olmak için uç noktalarınızın yapılandırmasını gözden geçirmenizi öneririz.
FIM Modülü Nasıl Yapılandırılır
FIM modülü Windows, Linux ve macOS işletim sistemlerinde taramalar çalıştırır. Hem genel ayarlar hem de uç noktanın işletim sistemine özgü ayarlar vardır. Bu ayarları ve desteklenen işletim sistemlerini bu kılavuzun Temel ayarlar bölümünde ele alıyoruz.
FIM modülünün dosyaların oluşturulmasını, değiştirilmesini ve silinmesini izlemesi gereken dizinleri belirtmeli veya izlemeniz gereken belirli dosyaları yapılandırmalısınız. Wazuh sunucusunda ve Wazuh aracı yapılandırma dosyalarında izlenecek dosyayı veya dizini belirtebilirsiniz. Ayrıca bu özelliği merkezi yapılandırma dosyasını kullanarak uzaktan da yapılandırabilirsiniz .
İzlenecek dosyaları ve dizinleri dizin seçenekleriyle ayarlamanız gerekir . Virgülle ayrılmış girdiler kullanarak veya birden fazla satıra girdiler ekleyerek birden fazla dosya ve dizin ekleyebilirsiniz. FIM dizinlerini, bir kabukta veya Komut İstemi (cmd) terminalinde kullandığınız şekilde * ve ? joker karakterlerini kullanarak yapılandırabilirsiniz. Örneğin, C:\Users\*\Downloads
.
FIM modülü bir tarama çalıştırdığında, değiştirilmiş dosyalar bulursa ve değiştirilen dosya özniteliklerine bağlı olarak uyarıları tetikler. Bu uyarıları Wazuh panosunda görüntüleyebilirsiniz.
Aşağıda, FIM modülünün bir dosyayı ve dizini izlemek için nasıl yapılandırılacağını görebilirsiniz. <FILEPATH_OF_MONITORED_FILE>
ve'yi <FILEPATH_OF_MONITORED_DIRECTORY>
kendi dosya yollarınızla değiştirin.
-
Aşağıdaki ayarları Wazuh aracı yapılandırma dosyasına ekleyin ve dizin değerlerini kendi dosya yollarınızla değiştirin:
-
Linux:
/var/ossec/etc/ossec.conf
-
Pencereler:
C:\Program Files (x86)\ossec-agent\ossec.conf
-
macOS:
/Library/Ossec/etc/ossec.conf
<syscheck> <directories><FILEPATH_OF_MONITORED_FILE></directories> <directories><FILEPATH_OF_MONITORED_DIRECTORY></directories> </syscheck>
-
-
Herhangi bir yapılandırma değişikliğini uygulamak için Wazuh aracısını yönetici ayrıcalığıyla yeniden başlatın:
-
Linux:
systemctl restart wazuh-agent
-
Pencereler:
Restart-Service -Name wazuh
-
macOS:
/Library/Ossec/bin/wazuh-control restart
Not: Hem merkezi yapılandırmada hem de Wazuh aracısının yapılandırma dosyasında bir dizin belirtirseniz , merkezi yapılandırma öncelik kazanır ve yerel yapılandırmayı geçersiz kılar.
-
FIM modül analizinin yorumlanması
FIM analiz sonuçları, izlenen dosyalarda bir ekleme, değişiklik veya silme olduğunda Wazuh panosunda görünür. FIM sonuçlarını panonun üç farklı bölümünde görüntüleyebilirsiniz. FIM modülünden sonuçları görüntülemek için Wazuh panosunda Dosya Bütünlüğü İzleme'ye gidin . Sonuçlar aşağıdaki bölümlerdedir:
-
Envanter
-
Gösterge Paneli
-
Olaylar
Envanter
Bu bölüm, FIM modülünün dizinlediği tüm dosyaların envanterini görüntüler. FIM veritabanı, dosya adı, son değişiklik tarihi, kullanıcı, kullanıcı kimliği, grup ve dosya boyutu dahil olmak üzere envanter bilgilerini içerir. Aşağıdaki görüntü, bir Ubuntu 22.04 uç noktasının dosya envanterini gösterir.

FIM modülünün dosyayı en son ne zaman analiz ettiği ve dosya öznitelikleri gibi giriş ayrıntılarını görüntülemek için bir dosya girişine tıklayabilirsiniz. Ayrıca dosyayla ilgili FIM uyarılarını da görüntüleyebilirsiniz. Aşağıdaki görüntü dosya için bu bilgileri gösterir /etc/resolv.conf
.

Dashboard
Gösterge paneli bölümü, Wazuh FIM modülünün aşağıdakilere ilişkin analiz sonuçlarına genel bir bakış sunar:
-
Bir altyapı içindeki tüm etkenler.
-
Bir altyapı içerisinde seçilmiş bir ajan.
Aşağıdaki görüntüde, izlenen tüm uç noktalar için FIM tarama sonuçlarının genel görünümüne ilişkin bir örnek görebilirsiniz.

Aşağıdaki görüntüde Ubuntu uç noktası için FIM tarama sonuçlarının genel görünümüne dair bir örnek görebilirsiniz.

Events
Bu bölüm Wazuh FIM modülünün tetiklediği uyarıları gösterir. Burada, aracı adı, izlenen dosyanın dosya yolu, FIM olayının türü, uyarının açıklaması ve uyarının kural düzeyi gibi ayrıntıları görebilirsiniz.

Ayrıca, uyarıyı tetikleyen olay hakkında ek bilgileri görüntülemek için her uyarı girişini genişletebilirsiniz.

Temel Ayarlar
FIM yeteneğini Wazuh sunucusunda ve Wazuh aracısında yapılandırabilirsiniz. Hem Wazuh sunucusunda hem de Wazuh aracısında varsayılan bir FIM yapılandırması mevcuttur. Bu ayarları ihtiyaçlarınıza göre değiştirebilirsiniz.
FIM modülünü Wazuh sunucusunda ve Wazuh aracı yapılandırma dosyasında yapılandırabilirsiniz . Ayrıca bu yeteneği merkezi yapılandırma dosyasını kullanarak uzaktan da yapılandırabilirsiniz . Tüm FIM yapılandırma seçeneklerinin listesi syscheck bölümünde mevcuttur.
Bu kılavuzda, Wazuh FIM modülünün desteklediği farklı yapılandırma seçeneklerini gösteriyoruz.
Gerçek Zamanlı İzleme
Bu realtime
özellik yalnızca Windows ve Linux uç noktalarındaki dizinlerin gerçek zamanlı/sürekli izlenmesini sağlar.
Dosyaları gerçek zamanlı olarak izlemek için FIM modülünü dizinler realtime
seçeneğinin niteliğiyle yapılandırın. Nitelik için izin verilen değerler ve'dir ve yalnızca dizinlerle çalışır, tek tek dosyalarla değil. Gerçek zamanlı değişiklik algılama, zamanlanmış FIM modülü taramaları sırasında duraklatılır ve bu taramalar tamamlanır tamamlanmaz yeniden etkinleştirilir.realtime
yes
no
Aşağıda, FIM modülünün bir dizini gerçek zamanlı olarak nasıl izleyeceğini görebilirsiniz. <FILEPATH_OF_MONITORED_DIRECTORY>
Kendi dosya yolunuzla değiştirin.
Not: Gerçek zamanlı izleme için bir dizin belirtirken, Wazuh aracısını yeniden başlatmadan önce mevcut olmalıdır. Aksi takdirde, modül Wazuh aracısının sonraki yeniden başlatılmasında bulana kadar dizini yoksayar.
-
Wazuh aracı yapılandırma dosyasına aşağıdaki ayarları ekleyin:
-
Linux:
/var/ossec/etc/ossec.conf
-
Pencereler:
C:\Program Files (x86)\ossec-agent\ossec.conf
<syscheck> <directories realtime="yes"><FILEPATH_OF_MONITORED_DIRECTORY></directories> </syscheck>
-
-
Herhangi bir yapılandırma değişikliğini uygulamak için Wazuh aracısını yönetici ayrıcalığıyla yeniden başlatın:
-
Linux:
systemctl restart wazuh-agent
-
Pencereler:
Restart-Service -Name wazuh
-
Kayıt Dosyası Öznitelikleri
FIM modülünü belirli dosyaları ve dizinleri izleyecek şekilde yapılandırdığınızda, dosyaların meta verilerini kaydeder ve izler. FIM modülünün toplaması ve yoksayması gereken belirli dosya meta verilerini ayarlamak için dizinler seçeneğini kullanabilirsiniz. Dizinler seçeneği çeşitli öznitelikleri destekler.
Aşağıdaki tabloda FIM modülünün kaydettiği desteklenen öznitelikler açıklanmaktadır.
Bağlanmak |
Varsayılan değer |
İzin verilen değerler |
Tanım |
---|---|---|---|
|
Evet |
evet hayır |
Aşağıdaki tüm özniteliklerin değerlerini kaydeder. |
|
Evet |
evet hayır |
Dosyaların MD5, SHA-1 ve SHA-256 karmalarını kaydeder. Aynı anda |
|
Evet |
evet hayır |
Dosyaların SHA-1 karma değerini kaydeder. |
|
Evet |
evet hayır |
Dosyaların MD5 hash'ini kaydeder. |
|
Evet |
evet hayır |
Dosyaların SHA-256 karma değerini kaydeder. |
|
Evet |
evet hayır |
Dosyaların boyutunu kaydeder. |
|
Evet |
evet hayır |
Linux'ta dosyaların sahiplerini kaydeder. |
|
Evet |
evet hayır |
Dosyaların/dizinlerin grup sahibini kaydeder. Windows'ta |
|
Evet |
evet hayır |
Dosyaların/dizinlerin izinlerini kaydeder. Windows'ta, her kullanıcı veya grup için reddedilen ve izin verilen izinlerin bir listesi kaydedilir. NTFS bölümleriyle Linux ve Windows'ta çalışır. |
|
Evet |
evet hayır |
Windows'daki dosyaların özniteliklerini kaydeder. |
|
Evet |
evet hayır |
Bir dosyanın değiştirilme zamanını kaydeder. |
|
Evet |
evet hayır |
Linux'ta dosya inode'unu kaydeder. |
Aynı özniteliği değiştiren seçenekler arasında bir çakışma olduğunda, yapılandırılan sonuncu öncelik kazanır. Örneğin, aşağıdaki yapılandırma seçeneği check_mtime
şu şekilde ayarlar yes
:
<directories check_all="no" check_mtime="yes">/etc</directories>
Aşağıdaki yapılandırma, değişiklik zamanı kontrolü dahil tüm özniteliklerin kaydedilmesini devre dışı bırakır.
<directories check_mtime="yes" check_all="no">/etc</directories>
Aşağıda izlenen bir dosyanın SHA-1 karmasının kaydının nasıl devre dışı bırakılacağına dair bir yapılandırma örneğini görebilirsiniz. <FILEPATH_OF_MONITORED_FILE>
Kendi dosya yolunuzla değiştirin.
-
Wazuh aracı yapılandırma dosyasına aşağıdaki ayarları ekleyin:
-
Linux:
/var/ossec/etc/ossec.conf
-
Pencereler:
C:\Program Files (x86)\ossec-agent\ossec.conf
-
macOS:
/Library/Ossec/etc/ossec.conf
<syscheck> <directories check_sha1sum="no"><FILEPATH_OF_MONITORED_FILE></directories> </syscheck>
-
-
Herhangi bir yapılandırma değişikliğini uygulamak için Wazuh aracısını yönetici ayrıcalığıyla yeniden başlatın:
-
Linux:
systemctl restart wazuh-agent
-
Pencereler:
Restart-Service -Name wazuh
-
macOS:
/Library/Ossec/bin/wazuh-control Restart
-
Not: İlk FIM taramasından sonra oluşturulan belirtilen dosyalar veya dizinler, bir sonraki planlanmış tarama sırasında izlenmek üzere eklenecektir.
Planlanmış Taramalar
FIM modülü taramalarının zamanlamasını değiştirmek için <frequency>
Wazuh FIM modülünün seçeneğini yapılandırabilirsiniz. Bu seçenek, FIM taramaları arasındaki süreyi tanımlar. Alternatif olarak, scan_time ve scan_day seçeneklerini kullanarak taramaları haftanın belirli bir saatinde ve gününde çalışacak şekilde yapılandırabilirsiniz . Zamanlanmış taramalar, günlük dosyaları gibi sık güncellenen dosyaları izlerken uyarı taşmasını önler.
FIM modülü varsayılan olarak her 12 saatte bir (43200 saniye) tarama çalıştırır. Aşağıdaki yapılandırma örneğinde, FIM modülünün her 15 dakikada bir (900 saniye) tarama çalıştıracak şekilde nasıl ayarlanacağını görebilirsiniz .
-
Wazuh aracı yapılandırma dosyasına aşağıdaki ayarları ekleyin:
-
Linux:
/var/ossec/etc/ossec.conf
-
Pencereler:
C:\Program Files (x86)\ossec-agent\ossec.conf
-
macOS:
/Library/Ossec/etc/ossec.conf
<syscheck> <frequency>900</frequency> </syscheck>
-
-
Herhangi bir yapılandırma değişikliğini uygulamak için Wazuh aracısını yönetici ayrıcalığıyla yeniden başlatın:
-
Linux:
systemctl restart wazuh-agent
-
Pencereler:
Restart-Service -Name wazuh
-
macOS:
/Library/Ossec/bin/wazuh-control restart
Alternatif olarak, scan_time ve scan_day seçeneklerini kullanarak taramaları planlayabilirsiniz . Bu seçenekleri kullanarak FIM'i yapılandırmak, FIM taramalarını iş saatleri dışında ayarlamanıza yardımcı olur.
Aşağıdaki yapılandırma örneği, belirtilen dizinlerin taramalarının her cumartesi saat 22:00'da nasıl çalıştırılacağını göstermektedir.
-
-
Wazuh aracı yapılandırma dosyasına aşağıdaki ayarları ekleyin:
-
Linux:
/var/ossec/etc/ossec.conf
-
Pencereler:
C:\Program Files (x86)\ossec-agent\ossec.conf
-
macOS:
/Library/Ossec/etc/ossec.conf
<syscheck> <scan_time>10pm</scan_time> <scan_day>saturday</scan_day> </syscheck>
-
-
Herhangi bir yapılandırma değişikliğini uygulamak için Wazuh aracısını yönetici ayrıcalığıyla yeniden başlatın:
-
Linux:
systemctl restart wazuh-agent
-
Pencereler:
Restart-Service -Name wazuh
-
macOS:
/Library/Ossec/bin/wazuh-control restart
-
Dosya Değerlerindeki Değişiklikleri Bildir
Öznitelik report_changes
, FIM modülünün bir metin dosyasında değiştirilen tam içeriği bildirmesine olanak tanır. Bu, izlenen bir dosyaya eklenen veya silinen metni kaydeder. Bu işlevi, dizinreport_changes
seçeneklerinin özniteliğini etkinleştirerek yapılandırabilirsiniz . Bu öznitelik için izin verilen değerler ve'dir . Windows, macOS ve Linux uç noktalarında hem dizinlerle hem de tek tek dosyalarla çalışır.yes
no
Bu seçeneği etkinleştirdiğinizde özniteliği dikkatli kullanmalısınız report_changes
. Wazuh, izlenen her dosyayı özel bir konuma kopyalayarak depolama kullanımını artırır. Dosyaların kopyasını şu adreste bulabilirsiniz:
-
/var/ossec/queue/diff/local/
Linux'ta. -
Library/Ossec/queue/diff/local/
macOS'ta. -
C:\Program Files (x86)\ossec-agent\queue\diff\local\
Windows'ta.
Aşağıda, FIM modülünün dosya değişikliklerini bildirecek şekilde nasıl yapılandırılacağını görebilirsiniz. <FILEPATH_OF_MONITORED_FILE>
Kendi dosya yolunuzla değiştirin.
-
Wazuh aracı yapılandırma dosyasına aşağıdaki ayarları ekleyin:
-
Linux:
/var/ossec/etc/ossec.conf
-
Pencereler:
C:\Program Files (x86)\ossec-agent\ossec.conf
-
macOS:
/Library/Ossec/etc/ossec.conf
<syscheck> <directories check_all="yes" report_changes="yes"><FILEPATH_OF_MONITORED_FILE></directories> </syscheck>
-
-
Yapılandırma değişikliklerini uygulamak için Wazuh aracısını yönetici ayrıcalığıyla yeniden başlatın:
-
Linux:
systemctl restart wazuh-agent
-
Pencereler:
Restart-Service -Name wazuh
-
macOS:
/Library/Ossec/bin/wazuh-control restart
report_changes
Aşağıdaki yapılandırma örneğinde, dizindeki tüm dosyalar için özniteliğin nasıl kullanılacağını görebilirsiniz<FILEPATH_OF_MONITORED_DIRECTORY>
. FIM modülünün dosyaya tam içerik değişikliklerini bildirmesini nasıl önleyeceğinizi görebilirsiniz . Kendi dosya yolunuzla<FILEPATH_OF_MONITORED_DIRECTORY>/private.txt
değiştirin .<FILEPATH_OF_MONITORED_DIRECTORY>
Seçeneği kullanırken , bir istisna oluşturmak için nodiff
report_changes
seçeneğini kullanabilirsiniz . Bu seçenek dosyanın değişikliklerini uyarır ancak Wazuh FIM modülünün bir metin dosyasında değiştirilen tam içeriği bildirmesini engeller. nodiff seçeneğini kullanmak, dosya içeriği değişikliklerini uyarılar aracılığıyla göndererek oluşabilecek veri sızıntısını önler. -
-
Wazuh aracı yapılandırma dosyasına aşağıdaki ayarları ekleyin:
-
Linux:
/var/ossec/etc/ossec.conf
-
Pencereler:
C:\Program Files (x86)\ossec-agent\ossec.conf
-
macOS:
/Library/Ossec/etc/ossec.conf
<syscheck> <directories check_all="yes" report_changes="yes"><FILEPATH_OF_MONITORED_DIRECTORY></directories> <nodiff><FILEPATH_OF_MONITORED_DIRECTORY>/private.txt</nodiff> </syscheck>
-
-
Yapılandırma değişikliklerini uygulamak için Wazuh aracısını yönetici ayrıcalığıyla yeniden başlatın:
-
Linux:
systemctl restart wazuh-agent
-
Pencereler:
Restart-Service -Name wazuh
-
macOS:
/Library/Ossec/bin/wazuh-control restart
-
Hariç Tutmaların Eklenmesi
FIM modülünü, aşağıdaki iki yöntemden birini kullanarak belirli dosya ve dizinlere ilişkin uyarıları yoksayacak şekilde yapılandırabilirsiniz:
Yoksay Seçeneğini Kullanma
Bir yolu yoksaymak için yoksay seçeneğini kullanabilirsiniz . Satır başına bir dosya veya dizin girişine izin verir. Ancak, birden fazla yol için dışlamalar eklemek için birden fazla satır kullanabilirsiniz.
Bu örnekte, FIM modülünün bir dosya yolunu yoksayacak şekilde nasıl yapılandırılacağını görebilirsiniz. Bu ayrıca dosya uzantıları .log
ve . için regex eşleşmesini de yoksayar. Kendi dosya yollarınızla .tmp
değiştirin .<FILEPATH_OF_MONITORED_FILE>
-
Wazuh aracı yapılandırma dosyasına aşağıdaki ayarları ekleyin:
-
Linux:
/var/ossec/etc/ossec.conf
-
Pencereler:
C:\Program Files (x86)\ossec-agent\ossec.conf
-
macOS:
/Library/Ossec/etc/ossec.conf
<syscheck> <ignore><FILEPATH_OF_MONITORED_FILE></ignore> <ignore type="sregex">.log$|.tmp$</ignore> </syscheck>
-
-
Herhangi bir yapılandırma değişikliğini uygulamak için Wazuh aracısını yönetici ayrıcalığıyla yeniden başlatın:
-
Linux:
systemctl restart wazuh-agent
-
Pencereler:
Restart-Service -Name wazuh
-
macOS:
/Library/Ossec/bin/wazuh-control restart
-
Özel Kuralları Kullanma
Alternatif bir yöntem, uyarı seviyesi 0 kurallarını kullanmaktır. Bu yöntem, FIM modülü tarafından taranan belirli dosya ve dizinlerin uyarılarını yok sayar. Seviye 0 kuralları için uyarılar sessizdir ve Wazuh sunucusu bunları bildirmez.
/var/www/htdocs/
Aşağıdaki yapılandırma örneğinde, bir Linux uç noktasındaki dizinin nasıl izleneceğini ve dosya için sessiz uyarıların nasıl kullanılacağını görebilirsiniz /var/www/htdocs/private.html
.
Linux Uç Noktası
-
Wazuh aracı yapılandırma dosyasına aşağıdaki ayarları ekleyin
/var/ossec/etc/ossec.conf
:<syscheck> <directories>/var/www/htdocs</directories> </syscheck>
-
Herhangi bir yapılandırma değişikliğini uygulamak için Wazuh aracısını yönetici ayrıcalığıyla yeniden başlatın:
systemctl restart wazuh-agent
Wazuh Sunucusu
-
Wazuh sunucusundaki dizinde
fim_ignore.xml
dosyayı oluşturun :/var/ossec/etc/rules/
touch /var/ossec/etc/rules/fim_ignore.xml
-
Dosyaya aşağıdaki kuralları ekleyin
fim_ignore.xml
:<group name="syscheck"> <rule id="100345" level="0"> <if_group>syscheck</if_group> <field name="file">/var/www/htdocs/private.html</field> <description>Ignore changes to $(file)</description> </rule> </group>
Kural,
/var/www/htdocs/private.html
dosya için FIM uyarısını susturur.
-
Yapılandırma değişikliklerini uygulamak için Wazuh yöneticisini yeniden başlatın:
systemctl restart wazuh-manager
İzleme Sistemi Çağrıları
Linux uç noktalarındaki sistem çağrılarını izlemek, güvenlik denetimi amaçları için bilgi sağlar. Sistem çağrısı verilerini toplamak ve analiz etmek, güvenlik ekiplerinin şüpheli davranış kalıplarını belirlemesine ve olası güvenlik olaylarını zamanında araştırmasına yardımcı olur.
Linux Denetim sistemi, Linux uç noktalarındaki güvenlik ve güvenlik dışı olayları toplamak için güçlü bir araçtır. Ancak denetim günlükleri tarafından oluşturulan verilerin hacmi, sistem yöneticilerinin potansiyel güvenlik tehditlerini ve ihlallerini belirlemesini zorlaştırabilir.
Wazuh, Linux uç noktalarındaki sistem çağrılarını izlemek için Linux Denetim sistemini kullanır. Wazuh aracısı, sistem çağrısı olaylarını toplamak ve analiz için Wazuh sunucusuna göndermek üzere izlenen uç noktalara denetim kurallarını yükler ve yapılandırır. Bu denetim kuralları, güvenlik izlemeyle ilgili olayları yakalar. Wazuh, dosya erişimi, komut yürütme, ayrıcalık yükseltme, kötü amaçlı yazılım ve daha fazlası dahil olmak üzere birden fazla etkinliği algılamak için sistem çağrısı olaylarını kullanan kullanıma hazır algılama kuralları sağlar. Güvenlik ekipleri, bu kuralları belirli güvenlik gereksinimlerini veya uyumluluk standartlarını karşılayacak şekilde özelleştirebilir ve böylece olası güvenlik olaylarına ilişkin gerçek zamanlı içgörüler elde edebilir.
Wazuh, denetim olaylarının merkezi bir görünümünü sağlayarak sistem etkinliklerini izleme görevini basitleştirir ve kuruluşların düzenleyici gerekliliklere uymasına yardımcı olur. Genel olarak, Wazuh denetim yeteneği, Linux sistemleri için sağlam ve kapsamlı bir güvenlik izleme çözümü sunarak kuruluşların güvenlik duruşlarını iyileştirmelerine ve siber tehditlere karşı korunmalarına yardımcı olur.
Komut İzleme
Wazuh komut izleme yeteneği, belirli komutların çıktısını izlemenize ve çıktıyı günlük içeriği olarak ele almanıza olanak tanır. Komut izleme, disk alanı kullanımı, yük ortalaması, ağ dinleyicilerindeki bir değişiklik ve tüm önemli işlemlerin çalıştığından emin olmak için çalışan işlemler gibi çeşitli şeyleri izlemek için kullanılabilir.
Komut izleme, çeşitli anormallikleri ve tehditleri tespit etmek için kullanılabilir. Örneğin, komutun çıktısında bir değişiklik olup olmadığını izlemek için kullanabilirsiniz netstat
; bu, yeni bir ağ dinleyicisinin eklendiğini veya kaldırıldığını gösterir. Ayrıca, komutun çıktısında belirli dizelerin varlığını izlemek için de kullanabilirsiniz ps
; bu, kötü amaçlı bir işlemin çalıştığını gösterebilir.
Güvenlik Yapılandırma Değerlendirmesi
Güvenlik Yapılandırma Değerlendirmesi (SCA), tüm sistemlerin yapılandırma ayarları ve onaylı uygulama kullanımıyla ilgili önceden tanımlanmış bir dizi kurala uyduğunu doğrulama sürecidir. Uç noktaları güvence altına almanın en kesin yollarından biri, güvenlik açığı yüzeylerini azaltmaktır. Bu süreç genellikle güçlendirme olarak bilinir. Yapılandırma değerlendirmesi, uç noktalarınızdaki zayıflıkları belirlemenin ve saldırı yüzeyinizi azaltmak için bunları yamamanın etkili bir yoludur.
Wazuh SCA modülü, izlenen uç noktalardaki yanlış yapılandırmaları ve ifşaları tespit etmek ve düzeltme eylemleri önermek için taramalar gerçekleştirir. Bu taramalar, uç noktaların yapılandırmasını, uç noktanın gerçek yapılandırmasına karşı test edilecek kuralları içeren politika dosyalarını kullanarak değerlendirir. SCA politikaları, dosyaların, dizinlerin, kayıt defteri anahtarlarının ve değerlerinin, çalışan işlemlerin varlığını kontrol edebilir ve dizinlerin içindeki dosyaların varlığını yinelemeli olarak test edebilir.
Örneğin, SCA modülü parola ile ilgili yapılandırmanın değiştirilmesinin, gereksiz yazılımların kaldırılmasının, gereksiz hizmetlerin devre dışı bırakılmasının veya TCP/IP yığın yapılandırmasının denetlenmesinin gerekli olup olmadığını değerlendirebilir.
SCA modülü için politikalar YAML'de yazılmıştır. Bu format, insan tarafından okunabilir ve anlaşılması kolay olduğu için seçilmiştir. Kendi SCA politikalarınızı kolayca yazabilir veya mevcut olanları ihtiyaçlarınıza uyacak şekilde genişletebilirsiniz. Ayrıca, Wazuh çoğunlukla uç nokta güçlendirme için yerleşik bir standart olan CIS kıyaslamalarına dayalı bir dizi kullanıma hazır politika ile dağıtılır.
Güvenlik Açığı Tespiti
Güvenlik açıkları, tehdit aktörlerinin bu sistemlere yetkisiz erişim elde etmek için istismar edebileceği bilgisayar sistemlerindeki güvenlik kusurlarıdır. İstismardan sonra, kötü amaçlı yazılımlar ve tehdit aktörleri uzaktan kod yürütme, veri sızdırma ve diğer kötü amaçlı faaliyetleri gerçekleştirebilir. Bu nedenle, kuruluşların kötü aktörler istismar etmeden önce ağlarındaki güvenlik açıklarını derhal tespit eden stratejilere veya güvenlik çözümlerine sahip olması gerekir. Bir ağdaki güvenlik açıklarının derhal tespit edilmesi ve düzeltilmesi, genel güvenlik duruşunun güçlendirilmesine yardımcı olur.
Wazuh Vulnerability Detection modülü, kullanıcıların izlenen uç noktalara yüklenen işletim sistemi ve uygulamalardaki güvenlik açıklarını keşfetmelerine yardımcı olur. Modül, aşağıdaki güvenlik açığı kaynaklarından birini kullanarak çalışır.
-
Siber Tehdit İstihbaratı (CTI) platformumuzdaki Wazuh zafiyet deposu.
-
Çevrimdışı yerel güvenlik açıkları deposu.
Güvenlik açığı bilgilerini sağlamak için Canonical, Debian, Red Hat, Arch Linux, Amazon Linux Advisories Security (ALAS), Microsoft ve National Vulnerability Database (NVD) tarafından dizinlenen harici güvenlik açığı kaynaklarından güvenlik açığı verilerini topluyoruz. Çözümün en son CVE'leri kontrol etmesini sağlayarak bu bilgileri güncel tutuyoruz.