Ana içeriğe geç

Fluentd

Fluentd açık kaynaklı, çok yönlü ve hafif veri toplayıcı (aggregator) ve taşıma aracı olarak hizmet veren bir veri toplama yazılım aracıdır. Wallarm'ı, Wallarm Console'da uygun bir entegrasyon oluşturarak tespit edilen olayların bildirimlerini Fluentd'ye gönderecek şekilde yapılandırabilirsiniz.

Bildirim Formatı

Wallarm, bildirimleri JSON formatında webhooks aracılığıyla Fluentd'ye gönderir. JSON nesnelerinin seti, Wallarm'ın bildirdiği olaya bağlı olarak değişir.

Yeni bir hit tespit bildirimine örnek:

[
    {
        "summary": "[Wallarm] New hit detected",
        "details": {
        "client_name": "TestCompany",
        "cloud": "EU",
        "notification_type": "new_hits",
        "hit": {
            "domain": "www.example.com",
            "heur_distance": 0.01111,
            "method": "POST",
            "parameter": "SOME_value",
            "path": "/news/some_path",
            "payloads": [
                "say ni"
            ],
            "point": [
                "post"
            ],
            "probability": 0.01,
            "remote_country": "PL",
            "remote_port": 0,
            "remote_addr4": "8.8.8.8",
            "remote_addr6": "",
            "tor": "none",
            "request_time": 1603834606,
            "create_time": 1603834608,
            "response_len": 14,
            "response_status": 200,
            "response_time": 5,
            "stamps": [
                1111
            ],
            "regex": [],
            "stamps_hash": -22222,
            "regex_hash": -33333,
            "type": "sqli",
            "block_status": "monitored",
            "id": [
                "hits_production_999_202010_v_1",
                "c2dd33831a13be0d_AC9"
            ],
            "object_type": "hit",
            "anomaly": 0
            }
        }
    }
]

Gereksinimler

Fluentd yapılandırması aşağıdaki gereksinimleri karşılamalıdır:

  • POST veya PUT isteklerini kabul etmelidir

  • HTTPS isteklerini kabul etmelidir

  • Genel (public) URL'ye sahip olmalıdır

Fluentd yapılandırma örneği:

<source>
  @type http # HTTP ve HTTPS trafiği için giriş eklentisi
  port 9880 # gelen istekler için port
  <transport tls> # bağlantı yönetimi için yapılandırma
    cert_path /etc/ssl/certs/fluentd.crt
    private_key_path /etc/ssl/private/fluentd.key
  </transport>
</source>
<match **>
  @type copy
  <store>
     @type stdout # komut satırında Fluentd günlüklerini yazdırmak için çıkış eklentisi
     output_type json # komut satırında yazdırılan günlüklerin formatı
  </store>
</match>

Daha fazla detayı official Fluentd documentation adresinde bulabilirsiniz.

Entegrasyon Kurulumu

  1. Wallarm Console → IntegrationsFluentd bölümünden Fluentd entegrasyon kurulumuna geçin.

  2. Entegrasyon adını girin.

  3. Hedef Fluentd URL'sini (Webhook URL) belirtin.

  4. Gerekirse, gelişmiş ayarları yapılandırın:

    • Request method: POST or PUT. By default, POST requests are sent.
    • Request header and its value if the server requires a non-standard header to execute the request. The number of headers is not limited.
    • CA certificate: certificate of CA that signed a server certificate. If CA is publicly trusted, this field is optional. If a server certificate is self-signed, this field is required and must contain a certificate of your own CA that signed a server certificate.
    • Verify TLS certificate: this setting allows to disable verification of the specified server certificate. By default, Wallarm verifies whether a server certificate is signed by a publicly trusted CA. We do not recommend disabling the verification of production server certificates. If your server uses a self-signed TLS certificate, you can add a self-signed CA certificate to allow sending requests to this server.
    • Request timeout, in seconds: if the server does not respond to the request within the specified time, the request fails. By default: 15 seconds.
    • Connection timeout, in seconds: if the connection to the server cannot be established during the specified time, the request fails. By default: 20 seconds.
    • Wallarm data format: either a JSON Array (default) or a New Line Delimited JSON (NDJSON).
  5. Bildirimleri tetiklemek için olay türlerini seçin.

    Fluentd entegrasyonu

    Mevcut olaylarla ilgili detaylar:

  6. Yapılandırmanın doğruluğunu, Wallarm Cloud'un kullanılabilirliğini ve bildirim formatını kontrol etmek için Test integration seçeneğine tıklayın.

    Test Fluentd günlük örneği:

    [
        {
            summary:"[Test message] [Test partner(US)] New vulnerability detected",
            description:"Notification type: vuln
    
                        New vulnerability was detected in your system.
    
                        ID: 
                        Title: Test
                        Domain: example.com
                        Path: 
                        Method: 
                        Discovered by: 
                        Parameter: 
                        Type: Info
                        Threat: Medium
    
                        More details: https://us1.my.wallarm.com/object/555
    
    
                        Client: TestCompany
                        Cloud: US
                        ",
            details:{
                client_name:"TestCompany",
                cloud:"US",
                notification_type:"vuln",
                vuln_link:"https://us1.my.wallarm.com/object/555",
                vuln:{
                    domain:"example.com",
                    id:null,
                    method:null,
                    parameter:null,
                    path:null,
                    title:"Test",
                    discovered_by:null,
                    threat:"Medium",
                    type:"Info"
                }
            }
        }
    ]
    
  7. Add integration seçeneğine tıklayın.

Wallarm Cloud IP addresses

To provide Wallarm Cloud access to your system, you may need a list of its public IP addresses:

35.235.66.155
34.102.90.100
34.94.156.115
35.235.115.105
34.94.85.217
34.94.51.234
34.102.59.122
34.94.238.72
34.141.230.156
34.91.138.113
34.90.114.134
35.204.127.78

Ek Uyarıların Ayarlanması

Besides the notifications you have already set up through the integration card, Wallarm triggers allow you to select additional events for notifications:

For condition detailing, you can add one or more filters. As soon, as condition and filters are set, select the integration through which the selected alert should be sent. You can select several integrations simultaneously.

Choosing an integration

Fluentd'yi Orta Düzey Veri Toplayıcı Olarak Kullanma

The most common logging scheme in complex systems consists of the following components:

  • Data collector: accepts logs from several sources and forwards logs to the SIEM system

  • SIEM system or log management systems: used to analyze logs and monitor the system status

Örneğin:

Webhook akış şeması

Bu şemayı kullanarak Wallarm olaylarını kaydetmek için:

  1. Gelen webhooks'u okuyup günlükleri bir sonraki sisteme iletecek şekilde veri toplayıcıyı yapılandırın. Wallarm, olayları webhooks aracılığıyla veri toplayıcılara gönderir.

  2. Veri toplayıcıdan günlükleri alıp okuyacak şekilde bir SIEM sistemini yapılandırın.

  3. Wallarm'ı, günlükleri veri toplayıcıya gönderecek şekilde yapılandırın.

    Wallarm, webhooks aracılığıyla herhangi bir veri toplayıcıya günlük gönderebilir.

    Wallarm'ı Fluentd veya Logstash ile entegre etmek için, Wallarm Console UI'de ilgili entegrasyon kartlarını kullanabilirsiniz.

    Wallarm'ı diğer veri toplayıcılarıyla entegre etmek için Wallarm Console UI'de bulunan webhook integration card kartını kullanabilirsiniz.

Popüler veri toplayıcılara günlük ileten SIEM sistemleri ile entegrasyon nasıl yapılandırılır örneklerini aşağıda açıkladık:

Entegrasyonu Devre Dışı Bırakma ve Silme

You can delete or temporarily disable the integration. While deleting stops sending notificatioins and completely deletes all configuration, disabling just stops sending notifications which you can at any moment re-enable with the same settings.

If for the integration the System related events are selected to trigger notifications, Wallarm will notify about both of these actions.

Sistem Kullanılamazlığı ve Yanlış Entegrasyon Parametreleri

Notifications to the system are sent via requests. If the system is unavailable or integration parameters are configured incorrectly, the error code is returned in the response to the request.

If the system responds to Wallarm request with any code other than 2xx, Wallarm resends the request with the interval until the 2xx code is received:

  • The first cycle intervals: 1, 3, 5, 10, 10 seconds

  • The second cycle intervals: 0, 1, 3, 5, 30 seconds

  • The third cycle intervals: 1, 1, 3, 5, 10, 30 minutes

If the percentage of unsuccessful requests reaches 60% in 12 hours, the integration is automatically disabled. If you receive system notifications, you will get a message about automatically disabled integration.