TCP Trafik Yansıtma Analizi için Düğüm Dağıtımı¶
Wallarm, TCP trafik yansıtma analizine özel tasarlanmış filtreleme düğümünü dağıtmak için bir artefakt sağlar. Bu kılavuz, Wallarm filtreleme düğümünün bu form faktörde nasıl dağıtılacağını ve yapılandırılacağını açıklar.
Kullanım senaryoları¶
Desteklenen tüm out-of-band dağıtım seçenekleri arasında, bu çözüm aşağıdaki senaryolar için önerilir:
-
Ağ katmanında yansıtılan TCP trafiğini yakalamayı tercih ediyor ve bu trafiği analiz edecek bir güvenlik çözümüne ihtiyaç duyuyorsunuz.
-
NGINX tabanlı dağıtım artefaktları kullanılamıyor, çok yavaş veya çok fazla kaynak tüketiyor. Bu durumda, HTTP trafik yansıtma analizi uygulaması kaynak yoğun olabilir. TCP trafik yansıtma analizi ise web sunucularından bağımsız çalışır ve bu sorunlardan kaçınır.
-
Yanıtlara da ayrıştırma uygulayan, buna bağlı olarak security vulnerability detection ve API Discovery gibi yanıt verisine dayanan özellikleri etkinleştiren bir güvenlik çözümüne ihtiyaç duyuyorsunuz.
Nasıl çalışır¶
Bu çözüm bant dışı (OOB) modda çalışır, NGINX gibi web sunucularından bağımsız olarak yansıtılan TCP trafiğini doğrudan ağ arayüzünden yakalar. Yakalanan trafik daha sonra ayrıştırılır, yeniden birleştirilir ve tehditler için analiz edilir.
Bir yansı hedefi olarak çalışır ve birden çok trafik kaynağı arasında sorunsuzca geçiş yapar. Çözüm VLAN (802.1q), VXLAN veya SPAN ile etiketlenmiş trafiği destekler.
Ek olarak, çözüm yanıt yansımasını ayrıştırmayı da etkinleştirir ve yanıt verisine dayanan Wallarm özelliklerini sağlar. Bu özellikler arasında security vulnerability detection, API Discovery ve daha fazlası bulunur.
Gereksinimler¶
-
US Cloud veya EU Cloud için Wallarm Console’da Administrator rolüne sahip hesaba erişim.
-
Düğümü çalıştırmayı planladığınız makine aşağıdaki kriterleri karşılamalıdır:
- Linux OS
- x86_64/ARM64 mimarisi
- Tüm komutların süper kullanıcı (ör.
root
) olarak çalıştırılması - Wallarm yükleyicisini indirmek için
https://meganode.wallarm.com
adresine giden bağlantılara izin verilmesi - US Wallarm Cloud ile çalışmak için
https://us1.api.wallarm.com
, EU Wallarm Cloud ile çalışmak içinhttps://api.wallarm.com
adreslerine giden bağlantılara izin verilmesi -
Saldırı tespit kurallarına ve API specifications güncellemelerini indirmek, ayrıca allowlisted, denylisted, or graylisted ülke, bölge veya veri merkezlerinizin kesin IP’lerini almak için aşağıdaki IP adreslerine giden bağlantılara izin verilmesi
-
Trafik ve yanıt yansıtma hem kaynak hem hedef ile yapılandırılmış olmalı ve hazırlanan örnek yansı hedefi olarak seçilmelidir. Trafik yansıtma yapılandırmaları için belirli protokollere izin verilmesi gibi belirli ortam gereksinimleri karşılanmalıdır.
-
Yansıtılan trafik VLAN (802.1q), VXLAN veya SPAN ile etiketlenmiş olmalıdır.
Adım 1: Wallarm token’ını hazırlayın¶
Düğümü kurmak için, düğümü Wallarm Cloud’a kaydetmek üzere bir token gereklidir. Bir token hazırlamak için:
-
Wallarm Console → Settings → API tokens bölümünü US Cloud veya EU Cloud içinde açın.
-
Kullanım türü
Node deployment/Deployment
olan bir API token’ı bulun veya oluşturun. -
Bu token’ı kopyalayın.
Adım 2: Wallarm yükleyicisini indirin¶
Wallarm aşağıdaki işlemciler için yüklemeler sunar:
-
x86_64
-
ARM64
Wallarm yükleme betiğini indirmek ve çalıştırılabilir yapmak için şu komutları kullanın:
Adım 3: Yapılandırma dosyasını hazırlayın¶
Örnekte wallarm-node-conf.yaml
dosyasını oluşturun. Çözümün ağ arayüzünü ve trafik biçimini (ör. VLAN, VXLAN) tanımlayabilmesi için uygun yapılandırma gereklidir. Dosyanın örnek içeriği:
Makale içinde desteklenen diğer yapılandırma parametrelerinin listesini bulabilirsiniz.
Modun ayarlanması (zorunlu)¶
TCP trafik yansıtma analizi için çözümü çalıştırmak üzere ilgili parametreye tcp-capture
modunu belirtmek zorunludur.
Dinleme için bir ağ arayüzü seçme¶
Trafiğin yakalanacağı ağ arayüzünü belirtmek için:
-
Ana makinede mevcut ağ arayüzlerini kontrol edin:
-
filter
parametresinde ağ arayüzünü belirtin.Değerin, ağ arayüzü ve portun iki nokta üst üste (
:
) ile ayrılmış hali olması gerektiğini unutmayın. Filtre örneklerieth0:
,eth0:80
veya (tüm arayüzlerde belirli bir portu yakalamak için):80
şeklindedir, örneğin:
VLAN yakalama¶
Yansıtılan trafik VLAN içinde kapsüllenmişse, ek argümanlar sağlayın:
version: 4
mode: tcp-capture
goreplay:
filter: <ağ arayüzü ve portunuz, ör. 'lo:' veya 'enp7s0:'>
extra_args:
- -input-raw-vlan
- -input-raw-vlan-vid
# VLAN'ınızın VID değeri, ör.:
# - 42
VXLAN yakalama¶
Yansıtılan trafik VXLAN içinde kapsüllenmişse (AWS’de yaygın), ek argümanlar sağlayın:
version: 4
mode: tcp-capture
goreplay:
filter: <ağ arayüzü ve portunuz, ör. 'lo:' veya 'enp7s0:'>
extra_args:
- -input-raw-engine
- vxlan
# Özel VXLAN UDP portu, ör.:
# - -input-raw-vxlan-port
# - 4789
# Belirli VNI (varsayılan olarak tüm VNI'lar yakalanır), ör.:
# - -input-raw-vxlan-vni
# - 1
Özgün istemci IP’sini ve host başlıklarını belirleme¶
Trafik proxy’lerden veya yük dengeleyicilerden geçtiğinde, bunlar genellikle özgün istemci IP adresini ve Host
başlığını kendi değerleriyle değiştirir. Özgün bilgiyi korumak için bu tür aracı bileşenler genellikle X-Forwarded-For
, X-Real-IP
veya X-Forwarded-Host
gibi HTTP başlıkları ekler.
Native Node’un özgün istemciyi ve hedef host’u doğru şekilde tanımlaması için proxy_headers
yapılandırma bloğunu kullanın, ör.:
version: 4
mode: tcp-capture
proxy_headers:
# Kural 1: Şirket içi proxy’ler
- trusted_networks:
- 10.0.0.0/8
- 192.168.0.0/16
original_host:
- X-Forwarded-Host
real_ip:
- X-Forwarded-For
# Kural 2: Harici edge proxy’ler (ör., CDN, ters proxy)
- trusted_networks:
- 203.0.113.0/24
original_host:
- X-Real-Host
real_ip:
- X-Real-IP
Adım 4: Wallarm yükleyicisini çalıştırın¶
TCP trafik yansıtma analizi için Wallarm düğümünü kurmak üzere aşağıdaki komutu çalıştırın:
# US Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=<PATH_TO_CONFIG> --host us1.api.wallarm.com
# EU Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com
# US Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=<PATH_TO_CONFIG> --host us1.api.wallarm.com
# EU Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com
-
WALLARM_LABELS
değişkeni düğümün ekleneceği grubu ayarlar (Wallarm Console UI içinde düğümlerin mantıksal gruplandırılması için kullanılır). -
<API_TOKEN>
,Node deployment/Deployment
kullanım türü için oluşturulan API token’ını belirtir. -
<PATH_TO_CONFIG>
, önceden hazırlanmış yapılandırma dosyasının yolunu belirtir.
Sağlanan yapılandırma dosyası şu yola kopyalanacaktır: /opt/wallarm/etc/wallarm/go-node.yaml
.
Gerekirse, kurulum tamamlandıktan sonra kopyalanan dosyayı değiştirebilirsiniz. Değişiklikleri uygulamak için sudo systemctl restart wallarm
komutuyla Wallarm servisini yeniden başlatmanız gerekir.
Adım 5: Çözümü test edin¶
Test amaçlı Dizin Geçişi saldırısını, <MIRROR_SOURCE_ADDRESS>
değerini örneğin gerçek IP adresi veya DNS adıyla değiştirerek yansı kaynağı adresine gönderin:
Wallarm’ın TCP trafik yansıtma analizi çözümü bant dışı çalıştığından, saldırıları engellemez, yalnızca kaydeder.
Saldırının kaydedildiğini doğrulamak için Wallarm Console → Events bölümüne gidin:
Düğümün çalışmasını doğrulama¶
-
Yakalamaya çalıştığınız ağ arayüzünde trafik olup olmadığını kontrol etmek için makinenizde aşağıdaki komutu çalıştırın:
-
Düğümün trafiği tespit ettiğini doğrulamak için günlükleri kontrol edebilirsiniz:
- Native Node günlükleri varsayılan olarak
/opt/wallarm/var/log/wallarm/go-node.log
dosyasına yazılır. - Verilerin Wallarm Cloud’a gönderilip gönderilmediği, tespit edilen saldırılar vb. gibi filtreleme düğümünün standart günlükleri
/opt/wallarm/var/log/wallarm
dizininde bulunur.
- Native Node günlükleri varsayılan olarak
Ek hata ayıklama için log.level
parametresini debug
olarak ayarlayın.
Yükleyici başlatma seçenekleri¶
-
Hepsi bir arada betiği indirdikten sonra, bununla ilgili yardımı şu şekilde alabilirsiniz:
-
Yükleyiciyi etkileşimli modda da çalıştırabilir ve 1. adımda
tcp-capture
modunu seçebilirsiniz: -
Düğümü yalnızca API Discovery modunda kullanabilirsiniz (sürüm 0.12.1’den itibaren mevcuttur). Bu modda, düğümün yerleşik mekanizmalarıyla veya ek yapılandırma gerektirenlerle (ör., kimlik bilgisi doldurma, API spesifikasyonu ihlali girişimleri ve brute force) tespit edilen saldırılar yerel olarak loglanır ancak Wallarm Cloud’a aktarılmaz. Cloud’da saldırı verisi olmadığından Threat Replay Testing çalışmaz.
Bu sırada, API Discovery, API session tracking ve security vulnerability detection tamamen işlevseldir; ilgili güvenlik varlıklarını tespit eder ve görselleştirme için Cloud’a yükler.
Bu mod, önce API envanterlerini gözden geçirmek ve hassas verileri belirlemek isteyenler ve buna göre kontrollü saldırı verisi aktarımı planlayanlar içindir. Ancak saldırı verisi aktarımını devre dışı bırakmak nadirdir, çünkü Wallarm saldırı verisini güvenle işler ve gerekirse sensitive attack data masking sağlar.
Yalnızca API Discovery modunu etkinleştirmek için:
-
/etc/wallarm-override/env.list
dosyasını oluşturun veya düzenleyin:Aşağıdaki değişkeni ekleyin:
-
Yükseltme ve yeniden kurulum¶
-
Düğümü yükseltmek için talimatları izleyin.
-
Yükseltme veya yeniden kurulum sürecinde bir sorun varsa:
-
Mevcut kurulumu kaldırın:
-
Yukarıdaki kurulum adımlarını izleyerek düğümü her zamanki gibi kurun.
-
Sınırlamalar¶
-
Trafiği gerçek akıştan bağımsız analiz eden bant dışı (OOB) çalışma nedeniyle, çözümün bazı doğal sınırlamaları vardır:
- Kötü amaçlı istekleri anında engellemez. Wallarm yalnızca saldırıları gözlemler ve size Wallarm Console’daki ayrıntıları sağlar.
- Hedef sunuculardaki yükü sınırlandırmak mümkün olmadığından Rate limiting desteklenmez.
- IP adreslerine göre filtreleme desteklenmez.
-
Çözüm yalnızca ham TCP üzerinden şifrelenmemiş HTTP trafiğini analiz eder, şifrelenmiş HTTPS trafiğini analiz etmez.
-
Çözüm henüz HTTP keep-alive bağlantıları üzerindeki yanıtların ayrıştırılmasını desteklemez.