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

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.

Wazuh Server

Alarm Yönetimi

/var/ossec/logs/alerts/alerts.logUyarı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 3veya daha yüksek olan uyarıları tetikler.

Yapılandırma

/var/ossec/etc/ossec.confUyarı 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ğer 3'dür . İzin verilen değer, kurallar sınıflandırma kılavuzunda belirtildiği gibi 1 ila 16 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 'dir 12. İzin verilen değer, 1'den 'e kadar herhangi bir tam sayıdır 16. Bu ayar, ayrıntılı e-posta uyarısı yapılandırmasını geçersiz kılar. Ancak, bireysel kurallar içindeki alert_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.confSyslog çı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, 9Wazuh sunucusunun uyarıları yalnızca uyarı seviyesi 'den yüksekse syslog sunucusuna ilettiğini gösterir 9. 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.241Yapı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önderir 192.168.1.240.

  • İkinci blok , yalnızca uyarı seviyesi 'den yüksekse <syslog_output>syslog sunucusuna uyarılar gönderir .192.168.1.2419

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 553tetiklendiğ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_levelbir 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 526ancak 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.comBu 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_locationseç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.comBu 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_idseç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.comkurallar tetiklendiğinde bir e-posta göndermesine olanak tanır .515516

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.comBu yapılandırma, Wazuh yöneticisinin, grubun parçası olan herhangi bir kural pci_dss_10.6.1herhangi 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.comHerhangi bir uyarı tetiklendiğinde endpoint1e -posta adresinize gönderilecek endpoint2.

  • is@test.comUyarıların dosyadan gelip gelmediğine dair bir e-posta /log/secure.

  • bob@test.comUyarıların ağdaki herhangi bir uç noktadan gelip gelmediğine dair bir e-posta 192.168.0.0/24.

  • david@test.comUyarıların seviyesi eşit veya daha yüksekse e-posta gönderilecektir 12.

Bir Uyarıyı E-postayla İletmeyi Zorla

E-posta yoluyla uyarı göndermek için minimum önem seviyesi 12varsayı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_emailher zaman e-posta ile uyarmak.

  • no_email_alertasla e-posta yoluyla uyarıda bulunmayın.

  • no_logBu uyarının kaydedilmemesi için.

Örneğin, aşağıdaki kural tanımı, 502minimum ö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.

  1. 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.

    CentOS

    yum update && yum install postfix mailx cyrus-sasl cyrus-sasl-plain


    Ubuntu

    apt-get update && apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules

  2. Postfix'i yapılandırmak için bu satırları dosyaya ekleyin /etc/postfix/main.cf. Eksikse dosyayı oluşturun.

    CentOS

    relayhost = [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


    Ubuntu


    relayhost = [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

  3. Gönderenin kimlik bilgilerini dosyaya ayarlayın /etc/postfix/sasl_passwdve 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.

     


  4. Parola DB dosyanızı yalnızca rootkullanıcının tam okuma ve yazma erişimine sahip olması için güvenceye alın. Bunun nedeni /etc/postfix/sasl_passwdve /etc/postfix/sasl_passwd.dbdosyaları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
  5. Yapılandırma değişikliklerini gerçekleştirmek için Postfix'i yeniden başlatın:

    Systemd

    systemctl restart postfix


    SysV Başlatma

    service postfix restart

  6. 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 ve Test 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 default MD5 hashing function to SHA-256:

    # 

    /var/log/maillog dosyasında fatal: tls_fprint: error computing md5 message digest hata mesajı alırsanız , Postfix'i varsayılan MD5 karma işlevinden SHA-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
  7. <global>Wazuh sunucusunun /var/ossec/etc/ossec.confdosyası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.

  8. Değişiklikleri uygulamak için Wazuh yöneticisini yeniden başlatın:

    Systemd

    systemctl restart wazuh-manager


    SysV Başlatma

    service 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.

  1. Veritabanı sistemi için geliştirme kütüphanelerini yükleyin:

    • MySQL için :

      Yum

      yum install mysql-devel


      APT

      apt-get install libmysqlclient-dev

    • PostgreSQL için :

      Yum

      yum install postgresql-devel


      APT

      apt-get install libpq-dev

  2. Bağımlılıkları, bağımlılıkları yükleme bölümünde açıklandığı şekilde yükleyin.

  3. 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
  4. 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şkeni mysql veya pgsql 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.

     
  5. 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
  6. Script size ne tür bir kurulum istediğinizi sorduğunda managerWazuh 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 modunu manager 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.

     


  7. Kurulum programı kurulumun sonunda Wazuh'u başlatmak isteyip istemediğinizi sorar. Eğer istemezseniz, aşağıdaki komutla daha sonra başlatabilirsiniz:

    Systemd

    systemctl restart wazuh-manager


    SysV Başlatma

    service 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_dbdkaynak 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.

  1. 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_DByukarıdaki yapılandırmada belirtildiği gibi.

    • <type>veritabanının türünü belirtir (MySQL veya PostgreSQL). İzin verilen değerler mysqlveya pgsql.


  2. Değişiklikleri uygulamak için Wazuh yönetici hizmetini yeniden başlatın:

    Systemd

    systemctl restart wazuh-manager

     

    SysV Başlatma

    service wazuh-manager restart

  3. 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
    Output
    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.

Wazuh Server

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

/var/ossec/logs/ossec.log

Dahili

Wazuh sunucusu tarafından oluşturulan tüm bilgi düzeyindeki günlükleri depolar.

/var/ossec/logs/api.log

Dahili

Wazuh uygulamasının Wazuh sunucu API'leriyle etkileşimi sırasında oluşturulan günlükleri depolar.

/var/ossec/logs/cluster.log

Dahili

Wazuh kümesinin faaliyetleri tarafından oluşturulan günlükleri depolar.

/var/ossec/logs/integrations.log

Dahili

Üçüncü taraf uygulamalar ve sistemlerle arayüz oluştururken Wazuh entegrasyon modülü tarafından oluşturulan günlükleri depolar.

/var/ossec/logs/active-responses.log

Dahili

Wazuh Active Response modülü tarafından oluşturulan günlükleri depolar.

/var/ossec/logs/firewall/firewall.log

Dahili

Güvenlik duvarı tarafından oluşturulan günlükleri depolar.

/var/ossec/logs/archives/archives.log

Harici

Üçüncü taraf uygulama ve sistemlerden alınan günlükleri düz metin olarak depolar.

/var/ossec/logs/archives/archives.json

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 :

Örneğin, /var/ossec/logs/archives/archives.logsı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/
Output
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.logve 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.

  1. Wazuh yöneticisi yapılandırma dosyasını düzenleyin /var/ossec/etc/ossec.confve aşağıda vurgulanan alanların değerini şu şekilde ayarlayın yes:

    <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ğerler yesve ' dir no.

    • <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ğerler yesve ' dir no.

    İ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.

  2. 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.jsonoluş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

  1. Filebeat yapılandırma dosyasını düzenleyin ve from /etc/filebeat/filebeat.ymldeğerini şu şekilde değiştirin :archives: enabledfalsetrue

    archives:
     enabled: true
  2. Yapılandırma değişikliklerini uygulamak için Filebeat'i yeniden başlatın:

    systemctl restart filebeat

Wazuh Dashboard

  1. 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 listesinde timestampayarlayın .

    Aşağıdaki GIF, endeks deseninin nasıl oluşturulacağını göstermektedir.

    wazuh-archives-* dizin deseninin oluşturulması
  2. 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-*.

    Gösterge tablosunda etkinlikleri görüntüleyin

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.exeuygulama 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.

  1. Sysmon'ı Microsoft Sysinternals sayfasından indirin .

  2. Sysmon yapılandırma dosyasını indirin: sysmonconfig.xml .

  3. İndirilen yapılandırma dosyasıyla PowerShell'i yönetici olarak kullanarak Sysmon'u yükleyin:

    > .\sysmon64.exe -accepteula -i .\sysmonconfig.xml
    
  4. 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>
    
  5. 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.

  1. 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
    
  2. 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
    
  3. Fonksiyonu kullanmak için ART modülünü içe aktarın Invoke-AtomicTest:

    > Import-Module "C:\AtomicRedTeam\invoke-atomicredteam\Invoke-AtomicRedTeam.psd1" -Force
    
  4. Invoke-AtomicTestTekniğin ayrıntılarını göstermek için fonksiyonu kullanın T1218.010:

    > Invoke-AtomicTest T1218.010 -ShowDetailsBrief
    
    Output
    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.

  1. 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
    
    Output
    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.

  1. 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.idagent.ipveya kullanarak belirli Windows uç noktasından günlükleri görüntülemek için filtre uygulayın agent.name.

    Zaman aralığı filtresi uygulanıyor


    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.

    Hesap makinesi yumurtlama olayı
  2. regsvr32Olaylarla ilgili işlemleri kolaylaştırmak ve araştırmak için arama çubuğuna yazın regsvr32.

    Filtre regsvr32
  3. İlgili alanları görüntülemek için herhangi bir olayı genişletin.

    Etkinlikleri genişlet
  4. Arşivlenmiş günlüklerin JSON formatını görüntülemek için JSON sekmesine tıklayın.

    JSON sekmesi


    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"
            }
          }
        },
    
  5. data.win.eventdata.ruleName:technique_id=T1218.010,technique_name=Regsvr32Teknik kimliğini görmek için aşağıda gösterilen filtreyi uygulayın.

    Filtre T1218.010 tekniği
  6. İlgili alanları görüntülemek için olayı genişletin.

    Filtre T1218.010 tekniği
  7. Arşivlenmiş günlüklerin JSON formatını görüntülemek için JSON sekmesine tıklayın.

    JSON sekmesi


    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.

Wazuh Server

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:

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:

  1. 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 .

  2. Aşağıdaki yapılandırmayı /var/ossec/etc/ossec.confWazuh 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.

     

  3. Değişiklikleri uygulamak için Wazuh yöneticisini yeniden başlatın:

    Systemd

    systemctl restart wazuh-manager



    SysV Başlatma

    service wazuh-manager restart

Yapılandırma tamamlandıktan sonra seçili kanalda uyarılar gösterilmeye başlanır.

Seçili Slack kanalındaki uyarılar

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:

  1. Yeni bir PagerDuty servisi oluşturarak Events API v2 entegrasyon anahtarınızı edinin .

  2. Aşağıdaki yapılandırmayı /var/ossec/etc/ossec.confWazuh sunucusundaki dosyaya ekleyin. PAGERDUTY_API_KEYPagerDuty 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.

     

  3. Değişiklikleri uygulamak için Wazuh yöneticisini yeniden başlatın:

    Systemd

    systemctl restart wazuh-manager



    SysV Başlatma

    service wazuh-manager restart

Yapılandırma tamamlandıktan sonra Pagerduty panosunda uyarılar gösterilmeye başlar.

PagerDuty'deki uyarı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:

  1. API anahtarınızı VirusTotal API anahtarı sayfasından alın.

  2. /var/ossec/etc/ossec.confWazuh 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>
    
  3. Değişiklikleri uygulamak için Wazuh yöneticisini yeniden başlatın:

    Systemd

    systemctl restart wazuh-manager



    SysV Başlatma

    service 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:

  1. Shuffle'a gidin, E-posta uygulamasını kullanarak bir İş Akışı oluşturun ve sürümü seçin.

  2. E-posta yapılandırmasında Alıcıları ve Konuyu ayarlayın . $execUyarı bilgilerini eklemek için Gövde'ye koyun.

  3. İş Akışına bir webhook ekleyin.

  4. Webhook'u başlatın ve webhook URL'sini kopyalayın.

  5. /var/ossec/etc/ossec.confWazuh sunucusunda düzenleme yapın ve aşağıdaki gibi bir yapılandırma bloğu ekleyin.

  6. 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.

     

  7. Değişiklikleri uygulamak için Wazuh yöneticisini yeniden başlatın:

    Systemd

    systemctl restart wazuh-manager



    SysV Başlatma 

    service wazuh-manager restart

Yapılandırma tamamlandıktan sonra e-posta gelen kutunuzda uyarılar gösterilmeye başlar.

Shuffle'daki uyarı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:

  1. API anahtarınızı Maltiverse sayfasından alın.

  2. /var/ossec/etc/ossec.confWazuh 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>
    
  3. Değişiklikleri uygulamak için Wazuh yöneticisini yeniden başlatın:

    Systemd

    systemctl restart wazuh-manager



    SysV Başlatma

    service wazuh-manager restart

Yapılandırma tamamlandıktan sonra, varsa zenginleştirilmiş uyarılar Wazuh Pano'sunda gösterilmeye başlar.

Wazuh panosunda zenginleştirilmiş uyarı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.confAş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:

Entegrasyon Betiği Oluşturma

Entegrasyon betiği oluştururken aşağıdaki talimatları izlemeniz önerilir:

  1. /var/ossec/integrations/Yapılandırma bloğunda belirtilen adla aynı adı taşıyan betiği Wazuh sunucusundaki dizinde oluşturun .

  2. Komut dosyası yürütme izinleri içermeli ve rootgrubun kullanıcısına ait olmalıdır wazuh. Aşağıdaki komutlar /var/ossec/integrations/custom-scriptkomut dosyasına izinler ve sahiplik atar.

    chmod 750 /var/ossec/integrations/custom-script
    chown root:wazuh /var/ossec/integrations/custom-script
  3. 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
  4. 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.jsonWazuh 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.

  5. İ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.jsonEntegrasyon betiğinin geliştirilmesine başlamadan önce, yorumlanacak uyarıların formatını bulmak için dosyayı kontrol etmenizi öneririz .

Wazuh Server

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ır 127.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 'dir https. İzin verilen değerler httpve 'dir https.

  • <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ğer true.

  • <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ğer wazuh.

  • <setup.ilm.overwrite>olarak ayarlandığında true, yaşam döngüsü ilkesi başlangıçta üzerine yazılır. Varsayılan değer 'dir true.

  • <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 'dir false. Olası geçerli değerler trueve ' dir false.

  • <filebeat.modules>Filebeat'in kullanacağı modülleri belirtir.

  • <module>kullanılacak modülü tanımlar. Varsayılan değer wazuh.

  • <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>trueuyarı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, infobilgi günlüklerini temsil eder. Diğer günlük düzeyleri debugerror, ve 'dir warning.

  • <logging.to_files>dosyalara günlük kaydını etkinleştirir veya devre dışı bırakır. Varsayılan değer 'dir true. olarak ayarlandığında true, 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 ad filebeat.

  • <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 ve 7arasında bir tam sayıdır .11024

  • <logging.files.permissions>günlük dosyaları için dosya izinlerini ayarlar. Varsayılan değer 'dir 0644, 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 'dir true. Olası değerler trueve ' dir false.

  • <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 biri namesyürütüldüğünde gerçekleştirilecek eylemi belirtir. Varsayılan değer 'dir allow. Diğer değerler errnotracetrapkill_threadkill_process, ve 'dir log.

  • <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'dir yesnoDeğer, yesWazuh dizinleyici bağlayıcısını etkinleştirir ve nodevre dışı bırakır. Varsayılan değer 'dir yes.

  • <hosts>bağlanılacak Wazuh dizinleyici düğümlerinin bir listesini belirtir. hostHer 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.11veya 192.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. caHer 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

ELK Stack

Wazuh yöneticisi uyarılarını Logstash kullanarak ELK Stack'e iletme.

OpenSearch

Wazuh yöneticisi uyarılarını Logstash kullanarak OpenSearch'e iletme.

Splunk

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 Server

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 'dir no. İzin verilen değerler yesve 'dir no.

  • <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 'dir yes. İzin verilen değerler yesve 'dir no.

  • <port>Bağlantıları dinlemek için TCP bağlantı noktası numarasını belirtir. Varsayılan değer 'dir . İzin verilen değer ve 1515arasındaki herhangi bir bağlantı noktası numarasıdır .065535

  • <use_source_ip>istemcinin kaynak IP adresinin mi yoksa "herhangi biri"nin mi kullanılacağını tanımlar. İzin verilen değerler ve'dir yesnoDeğ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ımlar force:

    • <enabled>yinelenen bir ad veya IP adresi varsa bir Wazuh aracısının eklenmesinin zorlanıp zorlanmayacağını belirtir. Eğer öyleyse enabled, aynı ad veya IP adresine sahip eski Wazuh aracısını kaldıracaktır. Varsayılan değer 'dir yes. Olası değerler yesve 'dir no.

    • <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ğer 1h(bir saat)'tir. İzin verilen değer sıfırdan büyük veya sıfıra eşit herhangi bir sayıdır. shm, ve gibi soneklerin dsaniye, saat, dakika ve günü temsil etmesine izin verir. Öznitelik ayarı enabledvarsayılan değerine sahiptir yes, yani değiştirme yalnızca belirtilen bağlantı kesme süresi aşıldıktan sonra gerçekleşir. Etkin özniteliğin yesve olmak üzere iki olasılığı vardır no.

    • <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 'dir 1h. İzin verilen değer sıfırdan büyük veya ona eşit herhangi bir sayıdır. shm, ve gibi soneklerin dsaniye, 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 'dir yes. Olası değerler yesve 'dir no.

  • <purge>Wazuh aracıları kaldırıldığında istemci anahtarlarının silinip silinmeyeceğini belirtir. Değer olduğunda no, kaldırılan Wazuh aracıları kaldırılmış olarak işaretlenen istemci anahtarları dosyasında kalır. Değer olarak ayarlandığında yes, istemci anahtarları dosyası temizlenir. Varsayılan değer 'dir yes. Olası değerler yesve 'dir no.

  • <use_password>paylaşımlı parola kimlik doğrulamasının kullanımını belirler. Değer olduğunda no, bu seçenek devre dışıdır. Değer olarak ayarlandığında yes, 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.logWazuh sunucusundaki dosyada saklanır. 

  • <ciphers>SSL kullanarak ağ iletişimi için şifrelerin listesini ayarlar. Varsayılan değer HIGH:!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 'dir no. İzin verilen değerler yesve 'dir no.

  • <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ığında yes, 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 'dir no. İzin verilen değerler yesve 'dir no.

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 TCPWazuh 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ğerler secureve ' dir syslog.

  • <port>olayları dinlemek için kullanılacak portu belirtir. Varsayılan port değeri 1514güvenli bağlantı ve syslog bağlantısı içindir . İzin verilen değer ve 514arasındaki herhangi bir port numarasıdır .165535

  • <protocol>bağlantı için kullanılacak protokolü belirtir. Varsayılan değer 'dir tcp. İzin verilen değerler tcpve 'dir udp.

  • <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 ile 131072arası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 .1262144

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:

  1. 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
    
    Output
    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.125IP adresine sahip Windows uç noktasının bir TCP paketi gönderdiğini ve porttaki SYN_SENTIP adresine sahip Wazuh sunucusuyla bağlantı kurmayı beklediğini görebiliyoruz .192.168.71.2031514

  2. netstatWazuh sunucusunun Windows 10 uç noktasıyla ne zaman bağlantı kurduğunu görüntülemek için komutu çalıştırın.

    netstat
    Output
    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.125IP adresine sahip Wazuh sunucusuna bağlı olduğunu görebiliyoruz .192.168.71.2031514

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:

    1. /var/ossec/bin/wazuh-logtestWazuh sunucusunda komut satırından çalıştırın

    2. 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.xmlWazuh 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ü sshdprogram adıyla eşleşirken sshd, kod çözücü örnek günlükten , , ve ssh-successöğelerini çıkarır .Stephen192.168.1.13349765

    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:

    1. /var/ossec/bin/wazuh-logtestWazuh sunucusunda from komut satırını çalıştırın .

    2. 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. 5715Aşağıdaki kural, önceki bölümdeki örnek günlükle eşleşir. Bu kural, /var/ossec/ruleset/rules/0095-sshd_rules.xmlWazuh 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ğini 5715ve kural düzeyini olarak belirtir 3. 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ığı belirtir 5700. Kural yalnızca daha önce eşleşmişse değerlendirilecektir 5700.

  • <match>^Accepted|authenticated.$</match>ile başlayan Acceptedveya biten herhangi bir günlük girişiyle eşleşir authenticated..

  • <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_successve pci_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.

Wazuh Server

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

  1. 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ışır secure.

     


  2. 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_poolAş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-remotedAşağıdaki adımları izleyerek istatistiksel bilgileri sorgulayabilirsiniz :

  1. Wazuh panosunda Araçlar'a ve ardından API Konsolu'na gidin .

  2. 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
    
  3. Sorgu sonucu aşağıdaki ekran görüntüsünün sol tarafında gösterilmektedir.

    Wazuh-uzaktan istatistiklerini gösteren Wazuh daemon'larının istatistiksel sorgusu.

Sorgu, kuyruk boyutu değerini, tarafından işlenen olay sayısını wazuh-remotedve atılan olay sayısını döndürür.

Aracı İletişim İstatistiksel Durum Dosyası

Bu istatistiksel dosya, wazuh-remotedkuyruk 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:

  1. Wazuh panosunda Araçlar'a ve ardından API Konsolu'na gidin .

  2. 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
    
  3. wazuh-analysisdAş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 .

    Wazuh-analysisd istatistiklerini gösteren Wazuh daemon'larının istatistiksel sorgusu

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.confWazuh 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, 201ile arasındaki ID'lerle tanımlanmış olup Wazuh sunucusundaki dosyada 205mevcuttur ./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, 201olay kuyruğu için temel kuraldır.

  • Kural Kimliği, 202olay kuyruğu seviyesi %90'a ulaştığında tetiklenir.

  • Kural kimliği, 203olay kuyruğu dolduğunda tetiklenir.

  • 204Olay kuyruğu dolduğunda kural kimliği tetiklenir.

  • Kural Kimliği, 205bir 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

Wazuh Server API

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 systemctlveya 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 adminkullanı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 .

Pano üzerinden Wazuh sunucu API konsoluna erişin


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.

API isteğini yürüt

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:

  1. 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:
    SSLAPI'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 -kkullanmanızı öneririz raw=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 'dir wazuh:wazuh. Ancak Wazuh dağıtımı kurulum betiği kullanılarak gerçekleştirildiyse, Wazuh API kullanıcısı 'dir ve ' komutunu çalıştırarak wazuhparolayı çıkarabilirsiniz .wazuh-install-files.tartar -axf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt -O | grep -P "\'wazuh\'" -A 1

    Eğer wazuh şifrenizi geri alamazsanız, kullanıcı şifresini sıfırlayabilirsiniz .

  2. Jetonun oluşturulduğunu doğrulayın:

    echo $TOKEN

    Çıktı aşağıdakine benzer uzun bir dize olmalıdır:

    Output
    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.

  3. 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"
    Output
    {
        "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, $TOKENelde 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 ( truerawparametrelerini göstererek gerçek dünya uygulamalarını sergilemeyi amaçlamaktadır. rawParametre, 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, rawparametre 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.pybir 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 requestsmodülünü kurun:

python3 -m pip install requests

Not:  Python modülü urllib3sü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.
- urllib3Mevcut 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
Output
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.shbir 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
Output
- 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

-X GET/POST/PUT/DELETE

HTTP sunucusuyla iletişim kurarken kullanılacak bir istek yöntemi belirtin.

http://<WAZUH_MANAGER_IP>:55000/<ENDPOINT> https://<WAZUH_MANAGER_IP>:55000/<ENDPOINT>

Kullanılacak API URL'si. API'de SSL'nin aktif olup olmadığına bağlı olarak httpbelirtin .https

-H "Authorization: Bearer <YOUR_JWT_TOKEN>"

JWT'yi belirtmek için isteğe ek bir başlık ekleyin.

-k

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 200, yanıtın tamamlanmış ( 0), başarısız ( 1) veya kısmi ( 2) olup olmadığını belirler. HTTP 4xxveya 5xxyanıtları için, başarısızlıkla ilgili hata kodunu belirler.

  • 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 offsetve 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.limitlimit

  • 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/authenticatePOST /security/user/authenticate/run_aspretty

  • Wazuh sunucu API'si, seçilen günlük biçimine bağlı olarak günlükleri api.logveya api.jsondosyaları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ır gzip.

  • request_timeoutSunucu 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_timeoutdeğeri güncelleyin./var/ossec/api/configuration/api.yaml

Hata içermeyen örnek yanıt (HTTP durum kodu 200):

Output
{
  "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):

Output
{
  "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):

Output
{
  "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):

Output
{
  "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:

Output
{
  "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"
Output
{
    "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_userve 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\"}"
Output
{
  "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"
Output
{
  "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 requestsmodülünü kurun:

python3 -m pip install requests

Not:  Python modülü urllib3sü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.
- urllib3Mevcut 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
Output
{
    "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
Output

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}}
Wazuh Server API

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.yamlWazuh 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 wazuh.

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 /var/ossec/api/configuration/ssl.

sertifika

Herhangi bir metin dizesi

sunucu.crt

Sertifikanın adı. Şurada saklanır /var/ossec/api/configuration/ssl: .

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 /var/ossec/api/configuration/ssl.

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 http://client.example.org.

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.

block_time

 

300

Oturum açma isteklerini denemek için belirlenen zaman aralığı (saniye cinsinden). Belirlenen istek sayısı ( max_login_attempts) bu zaman sınırı içinde aşılırsa, IP adresi blok zaman aralığının sonuna kadar engellenir.

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 0bu özelliği devre dışı bırakır. İstekler için, etkili değer 30'dan büyük değerler içindir.POST /events30

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 falseyüklenmesini engeller .ossec.conf<command>

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 allow.

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 false yüklenmesini engeller. ossec.conf<limits><eps>

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 falseyüklenmesini engeller .ossec.conf<allow_higher_versions>yes

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ı false, yükleme sırasında dizinleyici yapılandırmasının güncellenmesini önler ossec.conf.

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ı false, yükleme sırasında entegrasyonların Virus Total yapılandırmasının güncellenmesini önler ossec.conf.

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_timeoutGüvenlik yapılandırmasını ve rbac_modeayarları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_timeoutBir kimlik doğrulama belirtecinin süresi dolmadan ve yenilenmesi gerekmeden önceki saniye cinsinden süreyi tanımlar. rbac_modeKullanı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

Yapılandırmayı Değiştir

Yapılandırmayı Geri Yükle

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:

  1. Anahtar ve sertifika isteğini oluşturun ( opensslpaket 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ı.

  2. (İ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 Server API

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 dağıtımı kurulum yardımcısı betiği kullanılarak gerçekleştirildiyse, Wazuh API kullanıcı adı şudur wazuhve 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 wazuhaşağıdaki wazuh-wuiWazuh 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 :

  1. 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"
  2. İ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, hostolarak 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_minuteVarsayı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.

Wazuh Server API

Rol Tabanlı Erişim Kontrolü

Wazuh Server API

Wazuh Sorgu Dili (WQL) Kullanılarak Verilerin Filtrelenmesi

Wazuh API'sinin sorgularını kullanarak gelişmiş filtreleme mümkündür. Sorgular qparametre kullanılarak belirtilir. Bir sorgunun yapısı şu şekildedir:

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"
Output

{
   "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"
Output
{
   "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"
Output
{
   "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 wazve 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"
Output
{
   "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"
Output
{
   "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
}
Wazuh Server API

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"

Output
{
   "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
}

webBelirli bir ölçüte uyan hangi kuralların mevcut olduğunu bilmek de faydalı olabilir. Örneğin, PCI etiketiyle 10.6.1ve kelimeyi içeren gruptaki tüm kuralları failuresaş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"
Output
{
  "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\"}"
Output
{
  "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, .pyaracı 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"

Output
{
  "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"
Output
{
  "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"
Output
{
  "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"
Output
{
  "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&section=global" -H  "Authorization: Bearer $TOKEN"
Output
{
  "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"
Output
{
  "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\"}"
Output
{
  "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\"}"]}'
Output
{
  "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 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

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:

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.

  1. Filebeat hizmetini durdurun:

    systemctl stop filebeat
  2. 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
  3. Ş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.

  4. 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önetimiadmin: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
    Output
    {"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ın my-custom-alerts-*.

     

     

  5. Wazuh uyarı yapılandırma dosyasını /usr/share/filebeat/module/wazuh/alerts/manifest.ymlve isteğe bağlı olarak arşiv dosyasını açın /usr/share/filebeat/module/wazuh/archives/manifest.ymlve 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._-+

     

     

  6. (İsteğe bağlı) Yeni dizin desenini varsayılan olarak kullanmak istiyorsanız, dosyayı açın /usr/share/wazuh-dashboard/data/wazuh/config/wazuh.ymlve 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.

  7. 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

  1. Wazuh kontrol panelinin sol üst menüsünde ☰ , Dizin Yönetimi > Dizin Yönetimi'ne gidin.

    Endeks yönetimi menü seçeneği
  2. Endekslere tıklayın.

    Endeks yönetimi endeksleri seçeneği


    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ı olarak timestamp kullandığınızdan emin olun .

    Özel uyarı dizini deseni oluşturma

Wazuh Indexer API'sini Kullanma

Wazuh gösterge panelinden veya Wazuh sunucusundan Wazuh indeksleyici API'sini kullanarak endeks bilgilerini sorgulayabilirsiniz.

Wazuh Dashboard 
  1.  > Dizinleyici yönetimi > Geliştirme Araçları'na gidin :

    GET /_cat/indices/wazuh-*?v
    


    Dev Tools endeksleri listesi

Komut Satırı Arayüzü

  1. 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.

     


  2. 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
    Output
    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.jsonve 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.17ve wazuh-alerts-4.x-2023.03.18sı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.jsonWazuh 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_namealana 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 gelir
w- hafta anlamına gelir
d- günü temsil eder

wazuh‑archives-* Endeksleri

/var/ossec/logs/alerts/alerts.jsonve 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.jsonVarsayı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:

  1. Alana gidin date_index_name.

  2. Anahtarı bulun date_roundingve 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

  1. /var/ossec/etc/ossec.confWazuh 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>
    
  2. Değişikliğin etkili olması için Wazuh yöneticisini yeniden başlatın.

    systemctl restart wazuh-manager

    veya

    service wazuh-manager restart
  3. Arşiv eşlemesinde düzenleme yapın /etc/filebeat/filebeat.ymlve değiştirin enabledtrueBu, olayların Wazuh dizinleyicisine iletilmesini sağlar.

    filebeat.modules:
     - module: wazuh
      alerts:
       enabled: true
      archives:
       enabled: true
    
  4. Değişikliği uygulamak için Filebeat hizmetini yeniden başlatın:

    systemctl restart filebeat
  5. Filebeat hizmetinin düzgün çalıştığını test edin:

    filebeat test output
    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

  1. 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 .

  2. Dizin deseni oluştur'a tıklayın .

  3. 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 .

  4. Zaman alanı için zaman damgasını seçin. 

  5. 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

  1. Sol üst menüde Keşfet'e  tıklayın ve ardından Keşfet'e tıklayın .

  2. Etkinlikleri görüntülemek için wazuh-archives-* öğesini seçin .

    Wazuh arşiv etkinlikleri

wazuh-monitoring-* Endeksleri

Kayıtlı bir Wazuh temsilcisinin herhangi bir andaki bağlantı durumu aşağıdakilerden biridir:

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.

Temsilciler panosundaki durum ve evrim

Wazuh panosu yapılandırma dosyasında , aşağıdakileri yapmak için ayarları değiştirebilirsiniz:

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.

İstatistik analiz motoru panosu

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.

Wazuh, güvenlik açıkları endekslerini belirtiyor
Wazuh, güvenlik açıkları endekslerini belirtiyor
Wazuh Indexer

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

  1. Sol üst menüye ☰ tıklayın ve Indexer yönetimine, ardından da Dev Tools'a gidin .

  2. Aşağıdaki API çağrısını, my-source-indexkaynak dizin deseniyle ve my-destination-indexhedef 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"
       }
    }
    
    Output
    {
      "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"
   }
}'
Output
{"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":[]}
Wazuh Indexer

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

  1. 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.

    Devlet yönetim politikaları
    Görsel düzenleyici yapılandırma yöntemi
  2. 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 .

    Politika oluştur
  3. 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

  4. Dizin silme için bir durum oluşturmak üzere Durum ekle'ye tıklayın . . gibi bir ad girin delete_alerts.

  5. 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 .

  6. Başlangıç ​​durumunu oluşturmak için tekrar Durum ekle'ye tıklayın . . gibi bir ad girin initial.

  7. Sipariş sekmesinden Önce Ekle'yi seçin ve delete_alerts seçeneğini seçin .

  8. Geçiş ekle'ye tıklayın ve Hedef durumu olarak delete_alerts'i seçin .

  9. 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 .

  10. Geçiş Ekle'ye tıklayın . Durumu Kaydet'e tıklayın. Oluştur'a tıklayın .

  11. Başlangıç ​​Durumunu Başlangıç ​​olarak değiştirin.

    ISM Politika Devletleri

JSON Editor Kullanma

  1. 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.

    JSON düzenleyici yapılandırma yöntemi
  2. 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.

    JSON politika tanımı
  3. 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”

  4. Oluştur'a tıklayın .

Saklama Politikasının Uyarı Dizinine Uygulanması

  1. Sol üst menüye tıklayın ☰ , Indexer yönetimine gidin ve Index Yönetimi'ni seçin . Indexes'i seçin .

  2. Politikayı eklemek istediğiniz endeksi veya endeksleri seçin.

  3. Eylemler > Politikayı uygula'ya tıklayın.

    Politikayı endekslere uygula
  4. Ö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 tempilgili 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.

  1. tempDaha önce atanan niteliklerin uygulandığını onaylayın :

    GET _cat/nodeattrs?v&h=node,attr,value
    
  2. 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_ageayarlayı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_ageKoş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

  1. Endeks Yönetimi'nde Endeksleri seçin .

  2. Politikayı eklemek istediğiniz endeksi veya endeksleri seçin.

  3. Eylemler > Politikayı uygula'ya tıklayın .

  4. hot-warm Politika Kimliği'nde politikayı seçin .

  5. Politikayı seçili endekslere eklemek için Uygula'ya tıklayın.

    ISM politikasını endekslere uygulayın
Wazuh Indexer

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.

  1. /etc/wazuh-indexer/opensearch.ymlBellek kilitlemeyi etkinleştirmek için Wazuh indeksleyicisindeki yapılandırma dosyasına aşağıdaki satırı ekleyin :

    bootstrap.memory_lock: true
    
  2. 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

    1. Sistem sınırlarını belirten dosya için yeni bir dizin oluşturun:

      mkdir -p /etc/systemd/system/wazuh-indexer.service.d/
    2. 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

    1. Sistem sınırlarını belirten dosya için yeni bir dizin oluşturun:

      mkdir -p /etc/init.d/wazuh-indexer.service.d/
    2. 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



  3. Dosyayı düzenleyin /etc/wazuh-indexer/jvm.optionsve 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ı, OutOfMemoryWazuh 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.

     


  4. Wazuh dizinleyici hizmetini yeniden başlatın:

    systemctl daemon-reload
    systemctl restart wazuh-indexer
  5. Ayarın başarıyla değiştirildiğini doğrulamak için aşağıdaki komutu çalıştırarak mlockalldeğerin şu şekilde ayarlandığını kontrol edin true:

    curl -k -u <INDEXER_USERNAME>:<INDEXER_PASSWORD> "https://<INDEXER_IP_ADDRESS>:9200/_nodes?filter_path=**.mlockall&pretty"
    Output
    {
      "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:

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 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çalar ve kopyalar diyagramıyla Wazuh dizinleyici kümesi

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.

  1. 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
  2.  

    index.number_of_shards öğesini 1 olarak ayarlamak için w-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,
        ...
    
  3. 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>
    Output
    {"acknowledged":true}
    
  4. 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>
    Output
    {
      "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.ymlfarklı 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"
  }
}

persistentya da ayarlarını kullanabilirsiniz transient. Ayarı kullanmanızı öneririz persistentçünkü küme yeniden başlatma sırasında kalıcıdır. transientAyar 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_managerAş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.rolesboş bir liste ayarlayın:

node.roles: []
Wazuh Indexer

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:

  1. Anlık görüntü deposu için şu dizinde bir hedef /mnt dizinİ oluşturun :

    mkdir /mnt/snapshots
  2. Aşağıdaki komutları çalıştırarak NFS'yi yükleyin:

    Yum

    yum update
    yum install -y nfs-utils
    yum install exportfs
    systemctl enable nfs-server
    systemctl start nfs-server


    APT

    apt -y install nfs-kernel-server
    systemctl start nfs-kernel-server.service

  3. 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.

  4. 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.

  1. Anlık görüntü deposu için şu dizinde bir hedef /mnt dizin oluşturun :

    mkdir /mnt/snapshots
  2. NFS istemcisini yükleyin:

    Yum 

    yum -y install nfs-utils


    APT

    apt -y install nfs-common
  3. Paylaşılan dizini /mnt/snapshotsWazuh 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
  4. wazuh-indexerKullanıcıya dizinin sahipliğini verin /mnt/snapshots:

    chown wazuh-indexer:wazuh-indexer /mnt/snapshots
  5. 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
    
  6. 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:

  1. 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.

  2. Bir depo adı girin, depo türünü Paylaşılan dosya sistemi olarak seçin , depo konumunu girin /mnt/snapshotsve yeni deponun kaydını yapmak için Ekle'yi seçin.

    Anlık görüntü deposu oluştur

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

  1. 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 .

  2. Anlık görüntü al'ı seçin ve bir Anlık Görüntü adı girin.

  3. Kaynak dizin desenlerini seçin veya girin.

  4. Anlık görüntüleri depolamak için daha önce oluşturulan depoları seçin.

  5. Gelişmiş seçenekleri seçin ve Anlık görüntülere küme durumunu dahil et seçeneğini işaretleyin.

    Anlık görüntülere küme durumunu dahil et seçeneği
  6. 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ü dosyası kaydedildi

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 .

  1. 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
  2. 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/snapshotshedef Wazuh kümesinin panosunda gösterilecektir.

  3. Anlık görüntüyü seçin ve Geri Yükle'yerestored_ 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.

  4. Gelişmiş seçenekleri seçin ve tüm seçeneklerin işaretli olmadığından emin olun.

    Anlık görüntü gelişmiş seçeneklerini geri yükle
  5. Göç sürecini tamamlamak için Anlık görüntüyü geri yükle'yi seçin.

    Anlık görüntüyü geri yükle


Wazuh Indexer Kümesi

Wazuh Dashboard

Wazuh Dashboard

Wazuh Dashboard Ayarları

Wazuh Dashboard

Sertifika Dağıtımı

Wazuh Agent

Wazuh Agent

Wazuh Agent Kayıt

Veri Analizi

Veri Analizi

MITRE ATT&CK Framework

Veri Analizi

CDB Listelerini Kullanma

Veri Analizi

Kurallar

Veri Analizi

Decoders

Veri Analizi

Kod Çözücüleri ve Kuralları Test Etme

Kullanıcı Yönetimi

Kullanıcı Yönetimi

Şifre Yönetimi

Yetenekler

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.

Yetenekler

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.

Yetenekler

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 .

Yetenekler

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:

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:

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.

Yetenekler

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.

Yetenekler

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.

Yetenekler

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:

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.

Dosya Bütünlüğü İzleme

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.

  1. 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>
    
  2. 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

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.

Envanter


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.

Giriş detayları

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:

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.

Gösterge Paneli


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.

FIM tarama sonuçlarına genel bakış

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.

Olaylar


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

Genişletilmiş uyarı girişi

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.realtimeyesno

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.

  1. 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>
    
  2. 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

check_all

Evet

evet hayır

Aşağıdaki tüm özniteliklerin değerlerini kaydeder.

check_sum

Evet

evet hayır

Dosyaların MD5, SHA-1 ve SHA-256 karmalarını kaydeder. Aynı anda check_md5sum="yes"check_sha1sum="yes", ve kullanmakla aynıdır.check_sha256sum="yes"

check_sha1sum

Evet

evet hayır

Dosyaların SHA-1 karma değerini kaydeder.

check_md5sum

Evet

evet hayır

Dosyaların MD5 hash'ini kaydeder.

check_sha256sum

Evet

evet hayır

Dosyaların SHA-256 karma değerini kaydeder.

check_size

Evet

evet hayır

Dosyaların boyutunu kaydeder.

check_owner

Evet

evet hayır

Linux'ta dosyaların sahiplerini kaydeder.

check_group

Evet

evet hayır

Dosyaların/dizinlerin grup sahibini kaydeder. Windows'ta gidher zaman 0'dır ve grup adı boştur.

check_perm

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.

check_attrs

Evet

evet hayır

Windows'daki dosyaların özniteliklerini kaydeder.

check_mtime

Evet

evet hayır

Bir dosyanın değiştirilme zamanını kaydeder.

check_inode

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.

  1. 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>
    
  2. 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 .

  1. 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>
    
  2. 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.

  3. 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>
    
  4. 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.yesno

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.

  1. 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>
    
  2. 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_changesAş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.txtdeğiştirin .<FILEPATH_OF_MONITORED_DIRECTORY>

    Seçeneği kullanırken , bir istisna oluşturmak için nodiffreport_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.

  3. 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>
    
  4. 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ı .logve . için regex eşleşmesini de yoksayar. Kendi dosya yollarınızla .tmpdeğiştirin .<FILEPATH_OF_MONITORED_FILE>

  1. 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>
    
  2. 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ı
  1. Wazuh aracı yapılandırma dosyasına aşağıdaki ayarları ekleyin /var/ossec/etc/ossec.conf:

    <syscheck>
       <directories>/var/www/htdocs</directories>
    </syscheck>
    
  2. 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
  1. Wazuh sunucusundaki dizinde fim_ignore.xmldosyayı oluşturun :/var/ossec/etc/rules/

    touch /var/ossec/etc/rules/fim_ignore.xml
  2. 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.htmldosya için FIM uyarısını susturur.

  1. Yapılandırma değişikliklerini uygulamak için Wazuh yöneticisini yeniden başlatın:

    systemctl restart wazuh-manager

Yetenekler

İ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.

Yetenekler

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.

Yetenekler

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.

Yetenekler

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.

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.

Referans

Referans

Merkezi Yapılandırma (agent.conf)

Referans

Yerel Yapılandırma (ossec.conf)