TCP Trafik Aynalama Analizi için Node Dağıtımı¶
Wallarm, TCP trafik aynalama analizi için özel olarak tasarlanmış filtreleme nodunun dağıtımı için bir artefakt sunar. Bu kılavuz, bu form faktöründeki Wallarm filtreleme nodunun nasıl dağıtılacağını ve yapılandırılacağını açıklar.
Kullanım durumları¶
Tüm desteklenen out-of-band deployment options arasında, bu çözüm aşağıdaki senaryolar için önerilir:
-
Ağ katmanında aynalanan TCP trafiğini yakalamayı tercih ediyor ve bu belirli trafiği analiz edecek bir güvenlik çözümüne ihtiyaç duyuyorsanız.
-
NGINX veya Envoy tabanlı dağıtım artefaktları mevcut değil, çok yavaş çalışıyor veya çok fazla kaynak tüketiyorsa. Bu durumda, HTTP trafik aynalama analizi gerçekleştirmek kaynak yoğun olabilir. TCP trafik aynalama analizi, web sunucularından bağımsız olarak çalıştığından bu sorunların önüne geçer.
-
Yanıt verilerini temel alan vulnerability detection ve API discovery gibi özelliklere ihtiyaç duyuyorsanız; bu özellikler yanıt verilerine dayalı olarak çalışır.
Nasıl Çalışır¶
Bu çözüm, web sunucuları (örneğin, NGINX) gibi sunuculardan bağımsız olarak, ağ arayüzünden doğrudan aynalanan TCP trafiğini yakalayan out-of-band (OOB) modunda çalışır. Yakalanan trafik daha sonra ayrıştırılır, yeniden birleştirilir ve tehditlere karşı analiz edilir.
Çözüm, bir ayna hedefi olarak çalışır ve birden fazla trafik kaynağı arasında sorunsuzca geçiş yapar. Çözüm, VLAN (802.1q), VXLAN veya SPAN ile etiketlenmiş trafiği destekler.
Ayrıca, çözüm, yanıt aynalama ayrıştırmasını etkinleştirerek, yanıt verilerine dayalı Wallarm özelliklerini sunar. Bu özellikler arasında vulnerability detection, API discovery ve daha fazlası bulunur.
Gereksinimler¶
-
US Cloud veya EU Cloud için Wallarm Console'da Administrator rolüne sahip bir hesaba erişim.
-
Node çalıştırılması planlanan makinenin aşağıdaki kriterlere uygun olması gerekir:
- Linux OS
- x86_64/ARM64 mimarisi
- Tüm komutların süper kullanıcı (örneğin,
root
) olarak yürütülmesi. - Wallarm yükleyicisini indirmek için
https://meganode.wallarm.com
adresine giden izinli dış bağlantılar - US Wallarm Cloud ile çalışmak için
https://us1.api.wallarm.com
veya EU Wallarm Cloud ile çalışmak içinhttps://api.wallarm.com
adresine giden izinli dış bağlantılar -
Saldırı tespit kuralları ve API specifications güncellemelerini indirmek, ayrıca allowlisted, denylisted, or graylisted ülkeler, bölgeler veya veri merkezleri için kesin IP'leri almak amacıyla aşağıdaki IP adreslerine izinli dış bağlantılar
-
Trafik ve yanıt aynalama, hem kaynak hem de hedef yapılandırması ile yapılandırılmalı ve ayna hedefi olarak seçilmiş hazır bir örnek kullanılmalıdır. Trafik aynalama yapılandırmaları için belirli protokollerin izin verilmesi gibi spesifik ortam gereksinimleri karşılanmalıdır.
-
Aynalanan trafik, VLAN (802.1q), VXLAN veya SPAN ile etiketlenir.
Adım 1: Wallarm token'ını Hazırlayın¶
Node'u yüklemek için Wallarm Cloud'a node kaydı yaptırmak amacıyla bir token gereklidir. Bir token hazırlamak için:
-
Wallarm Console → Settings → API tokens bölümünü US Cloud veya EU Cloud üzerinden açın.
-
Deploy
source rolüne sahip API token'ı bulun veya oluşturun. -
Bu token'ı kopyalayın.
Adım 2: Wallarm Yükleyicisini İndirin¶
Wallarm, aşağıdaki işlemciler için yükleme önerir:
-
x86_64
-
ARM64
Wallarm yükleme betiğini indirmek ve çalıştırılabilir hale getirmek için aşağıdaki komutları kullanın:
Adım 3: Yapılandırma Dosyasını Hazırlayın¶
Örnekteki içeriğe sahip wallarm-node-conf.yaml
dosyasını örnekte belirtilen instance üzerinde oluşturun. Çözüm, ağ arayüzünü ve trafik formatını (örneğin, VLAN, VXLAN) belirlemek için uygun yapılandırmayı gerektirir. Dosyanın örnek içeriği:
Makale'de daha fazla desteklenen yapılandırma parametresinin listesini bulabilirsiniz.
Modu Ayarlama (gerekli)¶
TCP trafik aynalama analizi için çözümü çalıştırmak adına ilgili parametrede tcp-capture
modunun belirtilmesi gerekmektedir.
Dinleme için Ağ Arayüzü Seçimi¶
Trafiği yakalamak için ağ arayüzünü belirtmek amacıyla:
-
Host üzerinde mevcut ağ arayüzlerini kontrol edin:
-
filter
parametresinde ağ arayüzünü belirtin.Değerin, ağ arayüzü ve portun iki nokta (
:
) ile ayrılması gerektiğine dikkat edin. Filtre örnekleri arasındaeth0:
,eth0:80
veya:80
(tüm arayüzlerde belirli bir portu yakalamak için) bulunmaktadır, örneğin:
VLAN Yakalama¶
Aynalanan trafik VLAN içerisinde paketlenmişse, ek argümanlar sağlayın:
version: 3
mode: tcp-capture
goreplay:
filter: <your network interface and port, e.g. 'lo:' or 'enp7s0:'>
extra_args:
- -input-raw-vlan
- -input-raw-vlan-vid
# VLAN'iniz için VID, örneğin:
# - 42
VXLAN Yakalama¶
Aynalanan trafik VXLAN içerisinde (AWS gibi ortamlar için yaygın) paketlenmişse, ek argümanlar sağlayın:
version: 3
mode: tcp-capture
goreplay:
filter: <your network interface and port, e.g. 'lo:' or 'enp7s0:'>
extra_args:
- -input-raw-engine
- vxlan
# Özel VXLAN UDP portu, örneğin:
# - -input-raw-vxlan-port
# - 4789
# Belirli VNI (varsayılan olarak tüm VNI'lar yakalanır), örneğin:
# - -input-raw-vxlan-vni
# - 1
Orijinal İstemci IP Adresinin Belirlenmesi¶
Varsayılan olarak, Wallarm kaynak IP adresini ağ paketlerinin IP başlıklarından okur. Ancak, proxy'ler ve yük dengeleyiciler kendi IP'lerini değiştirebilir.
Gerçek istemci IP'sini korumak için, bu ara katmanlar genellikle orijinal istemci IP'sini çıkarmak amacıyla bir HTTP başlığı ekler (örneğin, X-Real-IP
, X-Forwarded-For
). real_ip_header
parametresi, Wallarm'ın orijinal istemci IP'sini çıkarmak için hangi başlığı kullanacağını belirtir, örneğin:
Adım 4: Wallarm Yükleyicisini Çalıştırın¶
TCP trafik aynalama analizi için Wallarm node'unu yüklemek adına, aşağıdaki komutu çalıştırın:
# US Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.11.0.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.11.0.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.11.0.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.11.0.aarch64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com
-
WALLARM_LABELS
değişkeni, node'un Wallarm Console arayüzünde mantıksal gruplama için ekleneceği grubu belirler. -
<API_TOKEN>
,Deploy
rolü için oluşturulan API token'ını belirtir. -
<PATH_TO_CONFIG>
, daha önce hazırlanan 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, yükleme tamamlandıktan sonra kopyalanan dosyada değişiklik yapabilirsiniz. Değişiklikleri uygulamak için Wallarm servisini sudo systemctl restart wallarm
komutu ile yeniden başlatmanız gerekir.
Adım 5: Çözümü Test Edin¶
Ayna kaynak adresine gerçek IP adress veya DNS adı ile <MIRROR_SOURCE_ADDRESS>
yerine değiştirerek test Path Traversal saldırısını gönderin:
TCP trafik aynalama analizi için Wallarm çözümü out-of-band olarak çalıştığından saldırıları engellemez, sadece kaydeder.
Saldırının kaydedildiğini kontrol etmek için Wallarm Console → Events bölümüne gidin:
Node İşleyişini 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:
-
Node'un trafiği tespit ettiğini doğrulamak için logları kontrol edebilirsiniz:
- Native Node logları varsayılan olarak
/opt/wallarm/var/log/wallarm/go-node.log
dosyasına yazılır. - Wallarm Cloud'a veri gönderilip gönderilmediği, saldırıların tespit edilip edilmediği gibi Standard logs filtreleme nodu logları
/opt/wallarm/var/log/wallarm
dizininde bulunur.
- Native Node logları varsayılan olarak
Ek hata ayıklama için, log.level
parametresini debug
olarak ayarlayın.
Yükleyici Başlatma Seçenekleri¶
-
All-in one script indirildikten hemen sonra, aşağıdaki komut ile yardım alabilirsiniz:
-
Yükleyiciyi etkileşimli modda çalıştırabilir ve 1. adımda
tcp-capture
modunu seçebilirsiniz: -
Node'u API Discovery-only modunda kullanabilirsiniz (0.11.0 sürümünden beri mevcut). Bu modda, Node'un yerleşik mekanizmalarıyla tespit edilen saldırılar ve ek yapılandırma gerektiren saldırılar (örneğin, credential stuffing, API specification violation girişimleri ve brute force) tespit edilir ve yerel olarak logged edilir ancak Wallarm Cloud'a aktarılmaz. Bulutta saldırı verisi olmadığından Threat Replay Testing çalışmaz.
Bu arada, API Discovery, API session tracking ve security vulnerability detection eksiksiz olarak çalışır; ilgili güvenlik varlıklarını tespit eder ve görselleştirme için Cloud'a yükler.
Bu mod, önce API envanterinizi gözden geçirmek ve hassas verileri tanımlamak, ardından kontrollü saldırı veri aktarımı planlamak isteyenler için tasarlanmıştır. Ancak, saldırı verisi aktarımını devre dışı bırakmak nadir bir durumdur, çünkü Wallarm saldırı verilerini güvenli bir şekilde işler ve gerektiğinde sensitive attack data masking sağlar.
API Discovery-only modunu etkinleştirmek için:
-
/etc/wallarm-override/env.list
dosyasını oluşturun veya düzenleyin:Aşağıdaki değişkeni ekleyin:
-
node kurulum prosedürünün 1. adımını uygulayın.
-
Yükseltme ve Yeniden Kurulum¶
-
Node'u yükseltmek için talimatları takip edin.
-
Yükseltme veya yeniden kurulum sürecinde bir sorun oluşursa:
-
Mevcut kurulumu kaldırın:
-
Yukarıdaki kurulum adımlarını takip ederek node'u yeniden yükleyin.
-
Kısıtlamalar¶
-
Trafiği gerçek akıştan bağımsız olarak analiz eden out-of-band (OOB) çalışması nedeniyle, çözümün bazı doğal kısıtlamaları vardır:
- Kötü niyetli istekleri anında engellemez. Wallarm saldırıları sadece gözlemler ve Wallarm Console’daki detayları sunar.
- Hedef sunucular üzerindeki yükü sınırlamak 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, halen HTTP keep-alive bağlantıları üzerinden gelen yanıtları ayrıştırmayı desteklememektedir.