Skip to content
Smarter by Design.Simpler for Business

SIEM Integration ​

SIEM Integration Nedir? ​

SIEM Integration, Bot/DDoS korumasının bir istek için verdiği kararı, HTTP erişim loguna tek bir JSON nesnesi olarak ekler ve bu logu syslog üzerinden SIEM sistemine taşır. Nesne, %THREAT_INFO değişkeniyle (arayüzdeki adı Bot/DDoS Protection Detail) log profiline eklenir ve her istekte aynı şekilde üretilir: hangi korumanın karar verdiği, uygulanan aksiyon, bot skoru ve sınıfı, tetiklenen L7 DDoS kuralı ve ölçülen değer, IP itibar kategorisi, istemcinin TLS ve User-Agent kimliği, muafiyetler ve karantina bilgisi aynı nesnede yer alır.

Böylece SIEM tarafında Bot/DDoS olayları, erişim logunun geri kalanıyla (zaman, istemci adresi, istek, yanıt kodu) aynı satırda okunur; ayrıca bir olay kaynağı tanımlamak ya da TR7 arayüzündeki Event Logs ekranını dışa aktarmak gerekmez.

Tek Değişken
%THREAT_INFO
Bütün Bot/DDoS kararı tek bir JSON nesnesinde
Sabit Şekil
Her istekte aynı
Bütün anahtarlar her zaman bulunur; boş olanlar da yazılır
Tipli Değerler
Sayı ve bayrak
Sayılar JSON sayısı ya da null, bayraklar true/false
summary
Tek cümlelik özet
Kararın İngilizce tek cümlelik açıklaması

Her istekte üretilir

Nesne, log profili %THREAT_INFO kullanan vService'lerde her istek için üretilir; yalnız engellenen istekler için değil, geçirilen, izlenen ve muaf tutulan istekler için de yazılır. vService'te Bot/DDoS koruması yoksa ya da istek Bot/DDoS dışı bir kuralla düşürülürse değişken oluşmaz. Event Logs ekranındaki tekrar sınırlaması (aynı olayın seyreltilmesi) bu değişkene uygulanmaz.

Nasıl Kurulur? ​

1
Adım 1 Log profilini oluştur

Load Balancer → Profiles → Logs ekranında yeni bir log profili eklenir ya da mevcut bir profil düzenlenir. Line Format alanında üç Manual biçimden biri seçilir: Manual JSON Format, Manual CEF Format ya da Manual Log Line Format. SIEM'de alanların doğrudan ayrıştırılabilmesi için Manual JSON Format önerilir; diğer iki biçimde nesne metin olarak yazılır (bkz. Log Biçimlerine Göre Çıktı). Profilin genel alanları için Logs sayfasına bakılır.

2
Adım 2 %THREAT_INFO değişkenini ekle

Manual JSON Format ve Manual CEF Format biçimlerinde Manual Log Entries tablosuna bir satır eklenir ve Key alanına SIEM tarafında kullanılacak anahtar adı (ör. Bot-DDOS) yazılır. Yeni satırın Value hücresi, listede henüz kullanılmayan ilk değişkenle dolu gelir. Hücredeki değişken etiketine tıklandığında Edit Variable penceresi açılır; Variable Name listesine Bot/DDoS yazılarak liste süzülür ve Client Info - Bot/DDoS Protection Detail seçeneği seçilir.

Manual Log Line Format biçiminde değişken, satır şablonunun istenen yerine eklenir: şablon alanının sağındaki fx butonu Add Variable penceresini açar ve değişken aynı listeden seçilir. Şablona elle yazılan %THREAT_INFO metni de yazım bittikten kısa süre sonra değişken etiketine dönüşür. Ayrıntı için Smart Variables sayfasına bakılır.

Erişim logunun diğer alanları (zaman, istemci adresi, host, istek, yanıt kodu, User-Agent başlığı) ayrı değişkenlerle eklenir; %THREAT_INFO bu bilgileri taşımaz.

3
Adım 3 Log sunucusunu tanımla

Profilin log adresi alanına SIEM'in syslog alıcısının adresi ve portu (IP:Port) girilir; iletim protokolü (UDP ya da TCP) ve log standardı seçilir. Her kaydın SIEM'e ulaşması isteniyorsa Sampling kapalı bırakılır; açıkken kayıtların yalnızca bir kısmı gönderilir.

4
Adım 4 Profili vService'e ata

Profil, HTTP vService'in düzenleme formunda log profili olarak seçilir. Adımlar Logs sayfasının vService'e Nasıl Eklenir? bölümünde anlatılır.

5
Adım 5 SIEM tarafında ayrıştır

Manual JSON Format'ta SIEM'de log satırı JSON olarak ayrıştırılır; Bot/DDoS bilgileri ikinci adımda verilen anahtarın (ör. Bot-DDOS) altında iç içe bir nesne olarak okunur. Log standardı olarak syslog başlığı ekleyen bir standart seçildiyse, SIEM'in JSON'dan önce bu başlığı ayırması gerekir.

Dış anahtarın adı kullanıcıya aittir

Nesnenin hangi anahtarın altında yer alacağı Key alanında belirlenir. Bu sayfadaki örneklerde Bot-DDOS kullanılmıştır; SIEM'deki alan adlandırma düzenine uygun herhangi bir ad verilir.

Value alanında yalnızca %THREAT_INFO bulunmalıdır

Değerin JSON nesnesi olarak yazılması için Value hücresinde %THREAT_INFO dışında hiçbir şey bulunmamalıdır. Değişkene bir metin ya da dönüştürücü eklenirse çıktı iç içe nesne yerine, içinde kaçış karakterli JSON bulunan bir metin olarak yazılır ve SIEM'de ikinci kez ayrıştırma gerekir.

Log Biçimlerine Göre Çıktı ​

%THREAT_INFO yalnızca HTTP vService'lerde ve üç Manual biçimin üçünde de kullanılır; biçimler yalnızca çıktının şeklinde ayrışır. Sabit biçimli log formatları bu değişkeni taşımaz.

Line Format%THREAT_INFO çıktısı
Manual JSON Formatİç içe JSON nesnesi. Değişken hiç oluşmamışsa (ör. vService'te Bot/DDoS koruması yoksa) anahtarın değeri null olur. Önerilen biçimdir.
Manual CEF FormatKaçış karakterli JSON metni; CEF kuralı gereği = karakterleri \= olarak yazılır. HTTP vService'lerde alan her zaman yazılır; değişkenin kullanılamadığı L7 TCP vService'lerde alan satıra hiç eklenmez.
Manual Log Line FormatJSON metni satırın içine olduğu gibi yazılır.
Standard Log Format, Apache Combined, Apache VHost, CEF Format, TR7 JSON Format, TR7 WAF LogDeğişken kullanılamaz.

Manual JSON'daki "bütün değerler metindir" kuralının istisnası

Manual JSON Format çıktısında değerler normalde çift tırnak içinde metin olarak basılır. Yalnızca %THREAT_INFO içeren bir satır bu kuralın dışındadır: değer nesne olarak yazılır ve nesnenin içindeki sayılar JSON sayısı, bayraklar true/false olarak gelir.

Örnek Kayıt ​

Aşağıdaki kayıt, Key alanı Bot-DDOS olan bir Manual JSON profilinden alınmıştır. L7 DDoS korumasının Source IP Request Protection kuralı Monitor modunda çalışırken bir kaynağın istek hızı limiti aşmış; koruma Enforce modunda olsaydı CAPTCHA gösterecekti.

SIEM'e ulaşan kayıt tek satırdır:

json
{"Bot-DDOS":{"action":"monitored","module":"","summary":"monitored: ddos would apply captcha","monitor":{"module":"ddos","action":"captcha"},"bot":{"score":23,"class":"clean","threshold":null,"factors":"secFetchAbsent;pathHammering;clientHintMismatch;"},"ddos":{"rule":"sR","observed":80,"limit":3},"ipReputation":{"category":""},"client":{"ja4":"","ja4Family":"","ja4Match":"","uaFamily":"chromium","networkType":""},"exempt":{"ddos":false,"bot":false,"ipReputation":false},"captchaFails":"","quarantinedBy":"","ceilingDrop":false}}

Aynı kayıt, okunurluk için girintili hâliyle:

json
{
  "Bot-DDOS": {
    "action": "monitored",
    "module": "",
    "summary": "monitored: ddos would apply captcha",
    "monitor": {
      "module": "ddos",
      "action": "captcha"
    },
    "bot": {
      "score": 23,
      "class": "clean",
      "threshold": null,
      "factors": "secFetchAbsent;pathHammering;clientHintMismatch;"
    },
    "ddos": {
      "rule": "sR",
      "observed": 80,
      "limit": 3
    },
    "ipReputation": {
      "category": ""
    },
    "client": {
      "ja4": "",
      "ja4Family": "",
      "ja4Match": "",
      "uaFamily": "chromium",
      "networkType": ""
    },
    "exempt": {
      "ddos": false,
      "bot": false,
      "ipReputation": false
    },
    "captchaFails": "",
    "quarantinedBy": "",
    "ceilingDrop": false
  }
}

Kayıt şöyle okunur:

  • action monitored: istek geçirildi, ancak bir koruma izleme modunda aksiyon uygulayacaktı. Uygulanan bir aksiyon olmadığı için module boştur.
  • monitor hangi korumanın neyi yapacağını belirtir: ddos korumasının captcha aksiyonu.
  • ddos tetikleyen kuralı ve değerleri verir: sR (Source IP Request Protection), ölçülen 80, limit 3.
  • bot aynı istek için bot skorunu taşır: 23, sınıf clean. Üç faktör tetiklenmiştir; hiçbir bot kuralı eşleşmediği için threshold null'dır.
  • client.uaFamily chromium: User-Agent başlığı bir Chromium tarayıcısını belirtir. JA4 alanları boştur: bağlantı TLS değildir ya da bu vService'te JA4 hesaplamasını gerektiren bir ayar yoktur.
  • exempt bayraklarının hepsi false: istemci hiçbir korumanın beyaz listesinde değildir.

Alan Açıklamaları ​

Nesnenin bütün anahtarları her kayıtta bulunur. Değeri oluşmayan metin alanları boş metin (""), sayı alanları null, bayraklar false olarak yazılır. Metin değerleri arayüzdeki etiketler değil, motorun kendi kodlarıdır; aşağıdaki tablolar kodların arayüzdeki karşılıklarını verir.

Karar Alanları ​

AlanTipAçıklama
actionmetinİsteğe olan biten. Hiçbir zaman boş değildir. Değerleri aşağıdaki tablodadır.
modulemetinKararı veren koruma: ddos, ipRep, bot ya da quarantine (istemci karantina kutusundaysa). Uygulanan bir aksiyon yoksa (monitored, whitelisted, trustedBot, passed) ve sert tavan düşürmesinde (ceilingDrop true) boştur. Arayüzdeki karşılığı Handled By'dır.
summarymetinKararın İngilizce tek cümlelik özeti. Şablonları aşağıdaki tablodadır.

action Değerleri ​

DeğerAnlamıEvent Logs'taki Action hücresi
blockİstek engellendi (yanıt kodu aksiyon kuralında tanımlıdır).Blocked
tarpitYanıt bekletilerek verildi.Tarpitted
redirectİstemci başka bir adrese yönlendirildi.Redirected
showContentÖzel içerik gösterildi.Content shown
captchaCAPTCHA doğrulaması gösterildi.CAPTCHA shown; doğrulama yanıtında Captcha solved ya da Captcha failed
silentDropBağlantı yanıtsız kapatıldı.Silently dropped
quarantineİstemci karantina kutusunda; istek kutudan geri çevrildi.Blocked by quarantine
monitoredKoruma izleme modunda bir aksiyon uygulayacaktı; istek geçirildi. Ayrıntısı monitor nesnesindedir.Would … (ör. Would show CAPTCHA) · Monitor
whitelistedİstemci bir korumanın beyaz listesinde; istek geçirildi. Hangi korumanın muaf tuttuğu exempt nesnesindedir.Allowed · Whitelist
trustedBotİstemci doğrulanmış bir bot (crawler); istek geçirildi.Allowed · Trusted bot
passedHiçbir koruma müdahale etmedi.Genellikle satır yazılmaz; skor tabanını aşan istekte Allowed · Insufficient score

summary Şablonları ​

Özet, action değerine ve kararı veren korumaya göre aşağıdaki şablonlardan biriyle üretilir; uygulanan aksiyonlarda korumaya göre sıra bot, L7 DDoS, IP itibarı, karantinadır. <action> yerine action alanının değeri, açılı ayraçlı diğer ifadelerin yerine ilgili alanların değerleri yazılır.

DurumŞablonÖrnek
Bot korumasının aksiyonu uygulandı<action>: bot score <skor> reached threshold <eşik>block: bot score 91 reached threshold 85
L7 DDoS hız/sayı kuralının ya da limitli ülke/ağ tipi satırının aksiyonu uygulandı<action>: ddos rule <kural> exceeded (<ölçülen>/<limit>)captcha: ddos rule sR exceeded (80/3)
L7 DDoS'ta limitsiz (yalnız üyelik) ülke ya da ağ tipi satırının aksiyonu uygulandı<action>: ddos rule <kural> matchedblock: ddos rule c0 matched
IP itibar korumasının aksiyonu uygulandı<action>: ip reputation category <kategori>block: ip reputation category hacking
İstemci karantina kutusunda<action>: source is in quarantinequarantine: source is in quarantine
Sert tavan aşıldısilentDrop: ceiling limit <kural> exceeded (<ölçülen>/<limit>)silentDrop: ceiling limit hardTotalReq exceeded (5200/5000)
Yukarıdakilerin dışında kalan uygulanan aksiyon<action>block
Koruma izleme modunda aksiyon uygulayacaktımonitored: <koruma> would apply <aksiyon>monitored: ddos would apply captcha
Beyaz liste muafiyetiwhitelisted: exempt by whitelist
Doğrulanmış bottrustedBot: verified crawler
Geçirildi, bot skoru varpassed: bot score <skor> (<sınıf>)passed: bot score 23 (clean)
Geçirildi, bot skoru yokpassed

monitor (İzleme Modu) ​

AlanTipAçıklama
monitor.modulemetinİzleme modunda aksiyon uygulayacak olan koruma: ddos, ipRep ya da bot.
monitor.actionmetinUygulanacak aksiyon; değerleri action tablosundaki uygulanan aksiyonlarla aynıdır (block, captcha, tarpit, redirect, showContent, silentDrop, quarantine).

Bir koruma Monitor modunda çalışırken kuralı eşleşirse bu nesne dolar; birden fazla koruma izleme modunda eşleşirse öncelik sırasına göre (ddos, ipRep, bot) ilk koruma yazılır. İzleme modunda eşleşme yoksa iki alan da boştur. Arayüzdeki karşılığı Monitor Mode'dur.

bot (Bot Protection) ​

AlanTipAçıklama
bot.scoresayı | nullİsteğin 0–100 arasındaki bot skoru. Bot Protection etkin değilse null.
bot.classmetinSkorun düştüğü sınıf (aşağıdaki tablo). Skor yoksa boştur.
bot.thresholdsayı | nullEşleşen bot aksiyon kuralının skor eşiği. Kural izleme modunda eşleştiyse de yazılır; bot kuralı eşleşmediyse ya da kararı (veya izleme kaydını) başka bir koruma verdiyse null.
bot.factorsmetinSkora katkı veren faktörlerin kodları, ; ile ayrılmış ve sonunda ; bulunan liste. Hiçbir faktör tetiklenmediyse boştur.
bot.classSkor aralığıArayüzdeki sınıf
clean0–39Clean
suspicious40–59Suspicious
likely_bot60–84Bot
bot85–100Bad Bot

bot kodu "Bad Bot" sınıfıdır

Kodlar ile arayüzdeki sınıf adları birebir eşleşmez: bot kodu arayüzde Bad Bot, likely_bot kodu ise Bot olarak görüntülenir. SIEM'de alarm kuralı yazılırken bu fark dikkate alınmalıdır.

bot.factors listesindeki kodlar, Factors sayfasındaki faktörlerin alt kalemleridir. Kodlar faktör gruplarına göre şöyledir:

Faktör grubuKodlar
Infrastructure & IP ReputationdatacenterIp, torExit, openProxy, badBot, attack, recon, spam, vpnIp, botnetHost, fraud, dnsAbuse, operatorBlacklist
Identity Spoofing DetectionbotUa, notBrowser, headlessBrowser, crawlerImpersonation
Network FingerprintingdeprecatedVersion, noAlpn, weakCipher, malwareJa3, botJa4, ja4ToolImpersonation
Protocol HygieneemptyHost, missingHeaders, secFetchAbsent, weirdAcceptHeader, httpVersion, protocolMismatch
Cross-Signal ConsistencytlsUaMismatch, httpCookieMismatch, clientHintMismatch
Behavioral AnalysispathHammering, rapidRequests, highNotFoundRate, noRefererOnMutation, scannerMethod, suspiciousPath
Client EvidenceceAutomationDeclared, ceAutomationInferred, ceEngineMismatch, ceFormTiming, ceBehavioral, ceTrapSprung
Human VerificationagsLoggedIn, captchaTicket, ceHumanInteraction

Human Verification grubundaki kodlar bot.score değerini değiştirmez; insan olduğu doğrulanmış istemci için aksiyon kararında kullanılan skora uygulanan indirimi gösterir. Listede Bot Protection ayarlarında seçili ve vService'in protokolüne uygun faktörler yer alır; Human Verification kodları ise seçimden bağımsız olarak, ilgili doğrulama gerçekleştiğinde yazılır.

ddos (L7 DDoS Protection) ​

AlanTipAçıklama
ddos.rulemetinTetiklenen L7 DDoS kuralının kodu (aşağıdaki tablo). Koruma Enforce ya da Monitor modunda olsun, kural tetiklendiyse yazılır; tetiklenen kural yoksa boştur. Kaynak, kaynak IP limitinin sert sınırını aşıp karantinaya girdiyse kararı karantina verir ve bu alan boş kalabilir.
ddos.observedsayı | nullKararın verildiği anda ölçülen değer.
ddos.limitsayı | nullKuralın limiti.

Limit tanımlanmamış (yalnız üyeliğe bakan) ülke ve ağ tipi satırları bir sayaç ölçmediği için bu satırlarda observed ve limit null'dır; limitli satırlarda iki alan da dolar. Arayüzdeki karşılıkları DDoS Rule ve Trigger (Value / Limit)'tır.

ddos.ruleKural
sRSource IP Request Protection
sCSource IP Connection Protection
errSource IP Error Protection
tRTotal Request Protection
tCTotal Connection Protection
tAActive Source-IP Protection
c0, c1, …Country Control kural satırı. Numara sıfırdan başlar: c0 arayüzdeki 1. satırdır.
n0, n1, …Network Type Group Control kural satırı. Numara sıfırdan başlar: n0 arayüzdeki 1. satırdır.
hardTotalReqTotal Request Protection'ın sert sınırı (arayüzde Hard Ceiling)
hardTotalConnTotal Connection Protection'ın sert sınırı (arayüzde Hard Ceiling)

ipReputation (IP Reputation Protection) ​

AlanTipAçıklama
ipReputation.categorymetinKaynak adresin bulunduğu IP itibar kategorisi; birden fazla kategorideyse aksiyon kurallarının sırasına göre ilk eşleşen yazılır. IP Reputation Protection Enforce ya da Monitor modundayken doldurulur; istek engellenmediğinde de (beyaz liste, doğrulanmış bot ya da eşleşen kural yoksa) yazılır. Adres, aksiyon kurallarında kullanılan hiçbir kategoride değilse boştur.
KodKategoriKodKategori
userUser BlacklistexternalExternal
dnsCompromiseDNS CompromisednsPoisoningDNS Poisoning
fraudOrdersFraud OrdersdDoSAttackDDoS Attack
ftpBruteForceFTP Brute-ForcepingOfDeathPing of Death
phishingPhishingfraudVoIpFraud VoIP
openProxyOpen ProxywebSpamWeb Spam
emailSpamEmail SpamblogSpamBlog Spam
vpnIpVPN IPportScanPort Scan
hackingHackingsqlInjectionSQL Injection
spoofingSpoofingbruteForceBrute-Force
badWebBotBad Web BotexploitedHostExploited Host
webAppAttackWeb App AttacksshSSH
ioTTargetedIoT Targeted

Kategorilerin açıklamaları IP Intelligence & Reputation sayfasındadır.

client (İstemci Kimliği) ​

AlanTipAçıklama
client.ja4metinİstemcinin ham JA4 TLS parmak izi. Yalnızca TLS bağlantılarında, cihazın JA4 desteği varken ve JA4 kullanan bir ayar (Bot Protection'ın JA4 faktörleri, JA4 beyaz liste girdisi ya da %JA4 değişkeni) bulunduğunda dolar. Arayüzdeki karşılığı JA4 (Raw)'dur.
client.ja4FamilymetinJA4 parmak izinin ait olduğu TLS yığını ailesi (aşağıdaki liste). Parmak izi tanınmazsa ya da cihazın JA4 desteği yoksa boştur. Arayüzdeki karşılığı TLS Fingerprint (JA4)'tür.
client.ja4MatchmetinAilenin hangi eşleşmeyle bulunduğu: e tam JA4 eşleşmesi, c şifre kümesi düzeyinde eşleşme. Eşleşme yoksa boştur. TLS ile User-Agent'ın tutarlı olup olmadığını göstermez; bu tutarsızlık tlsUaMismatch ya da ja4ToolImpersonation faktörüyle bildirilir.
client.uaFamilymetinUser-Agent başlığının iddia ettiği tarayıcı ya da araç ailesi (aşağıdaki liste). User-Agent hiçbir kalıba uymazsa ya da cihazın JA4 desteği yoksa boştur. Arayüzdeki karşılığı User-Agent Claim'dir.
client.networkTypemetinKaynak adresin ağ tipi grubu (aşağıdaki tablo). Adres sınıflandırılamazsa (ör. özel adres aralıkları) boştur. Arayüzdeki karşılığı Network Type'tır.

client.ja4Family değerleri: chromium, firefox, safari, curl, wget, python, go, java, node, postman, dotnet, ruby, php, rust, schannel, openssl, cfnetwork ve birden fazla aracın aynı parmak izini paylaştığı durumlarda kullanılan genel tool.

client.uaFamily değerleri: crawler, curl, wget, python, go, java, cfnetwork, node, postman, dotnet, ruby, php, rust, safari, chromium, firefox; User-Agent başlığı boşken ve Bot Protection'da tlsUaMismatch faktörü seçiliyken none.

client.networkTypeAğ tipiclient.networkTypeAğ tipi
awsAmazon AWSlinodeLinode
azureMicrosoft AzurevultrVultr
gcpGoogle CloudleasewebLeaseWeb
oracleOracle CloudscalewayScaleway
alibabaAlibaba CloudcontaboContabo
tencentTencent CloudhostingGeneric Hosting
huaweiHuawei CloudcdnCDN
ovhOVHverified_botVerified Bot
hetznerHetznertorTor Exit Node
digitaloceanDigitalOceanresidentialResidential
mobileMobile / CGNAT

Ağ tipi her istekte bakılır

client.networkType her istekte doldurulur; yalnızca ağ tipi veri tabanında sınıflandırılamayan adreslerde boş kalır.

exempt (Muafiyetler) ​

AlanTipAçıklama
exempt.ddostrue | falseİstemci L7 DDoS korumasının beyaz listesinde.
exempt.bottrue | falseİstemci Bot Protection'ın beyaz listesinde.
exempt.ipReputationtrue | falseİstemci IP Reputation Protection'ın beyaz listesinde.

Bayraklar korumanın kendi beyaz liste koşulu ya da girdileri eşleştiğinde true olur. L7 DDoS'taki ülke ve ağ tipi kural satırlarının kendi muafiyetleri exempt.ddos bayrağını değiştirmez.

Ek Alanlar ​

AlanTipAçıklama
captchaFailsmetinİzlenen süre içindeki başarısız CAPTCHA denemesi sayısı ve karantina eşiği, n/eşik biçiminde (ör. 2/3). Yalnızca CAPTCHA yanıtı başarısız olan istekte ve Captcha kartında başarısız çözümler karantinaya bağlıysa yazılır; diğer isteklerde boştur. Değer sayı değil metindir.
quarantinedBymetinİstemciyi bu istekle Quarantine kutusuna gönderen mekanizma (aşağıdaki tablo). Yalnızca kutuya giriş anındaki istekte yazılır; istemcinin kutudayken gönderdiği sonraki isteklerde boştur.
ceilingDroptrue | falseİstek, toplam istek ya da bağlantı hızının sert tavanı aşıldığı için yanıtsız düşürüldüyse true. Bu durumda action silentDrop olur. Sert tavan yalnızca koruma Enforce modundayken ve Total Request ya da Total Connection Protection'da sert sınır tanımlıyken uygulanır; L7 DDoS beyaz listesindeki istemcilere uygulanmaz.
quarantinedByMekanizma
ddosL7 DDoS kaynak limiti (DDoS Limit)
botBot skoru (Bot Score)
ipRepIP itibar kuralı (IP Reputation)
captchaBaşarısız CAPTCHA çözümleri (Failed Captcha)

Karar Mantığı ​

Bir istekte birden fazla koruma tetiklenebilir; nesneye yalnızca kazanan kararın aksiyonu yazılır. Değerlendirme şu sırayla yapılır:

01 · QuarantineKarantina kutusuKutudaki istemci doğrudan geri çevrilir
02 · ddosL7 DDoS ProtectionHacim ve ülke/ağ tipi kuralları
03 · ipRepIP Reputation ProtectionBilinen kötü adresler
04 · botBot ProtectionDavranışsal bot skoru
  • Önce gelen kazanır. Karantina kutusundaki bir istemcide kararı her zaman kutu verir ve module quarantine olur; korumalar yine çalışır ve ölçümlerini nesneye yazar. Bir kuralın istemciyi kutuya gönderdiği istekte de kararı kutu verir. Kutuda olmayan bir istekte L7 DDoS'un uyguladığı aksiyon, IP itibarının ve botun aksiyonunun önüne geçer. Kaybeden korumaların ölçümleri yine de nesneye yazılır: L7 DDoS kazansa bile bot.score ve ipReputation.category dolu gelebilir.
  • L7 DDoS içinde sıra: ülke kuralı, ağ tipi kuralı, kaynak IP istek ve bağlantı limitleri, hata limiti, toplam limitler, aktif kaynak sayısı.
  • İzleme modu kazanmaz. Monitor modundaki bir koruma aksiyon uygulamadığı için module alanına yazılmaz; yalnızca monitor nesnesini doldurur. Birden fazla koruma izleme modunda eşleşirse yalnızca öncelik sırasındaki ilk koruma yazılır.
  • Uygulanan aksiyon yoksa action şu sırayla belirlenir: monitored, whitelisted, trustedBot, passed.
  • Doğrulanmış bot: trustedBot, istemcinin ağ tipi verified_bot olduğunda ve korumalardan biri doğrulanmış botlara güvendiğinde yazılır. Varsayılan olarak Bot Protection ve IP Reputation Protection güvenir, L7 DDoS güvenmez.
  • Sert tavan bağımsızdır. Toplam istek ya da bağlantı hızının sert tavanı, hangi korumanın kazandığından bağımsız olarak uygulanır; aşıldığında ceilingDrop true, action silentDrop olur. L7 DDoS beyaz listesindeki istemcilere uygulanmaz.

Senaryo Örnekleri ​

Aşağıdaki kayıtlar okunurluk için kısaltılmıştır: yalnızca senaryoyu anlatan alanlar gösterilir, gerçek kayıtta bütün anahtarlar bulunur.

Bot Skoru Nedeniyle Engelleme ​

json
{
  "action": "block",
  "module": "bot",
  "summary": "block: bot score 91 reached threshold 85",
  "bot": {"score": 91, "class": "bot", "threshold": 85, "factors": "botUa;notBrowser;missingHeaders;rapidRequests;"},
  "client": {"uaFamily": "python", "networkType": "hosting"}
}

Bot skoru 91 ile Bad Bot sınıfındadır (bot kodu) ve eşiği 85 olan aksiyon kuralı eşleşmiştir. uaFamily ve networkType, isteğin bir barındırma sağlayıcısından çalışan bir Python betiğinden geldiğini gösterir.

L7 DDoS Limitinde CAPTCHA ​

json
{
  "action": "captcha",
  "module": "ddos",
  "summary": "captcha: ddos rule sR exceeded (240/100)",
  "ddos": {"rule": "sR", "observed": 240, "limit": 100}
}

Kaynak adresin istek hızı 240, Source IP Request Protection limiti 100'dür; kural Enforce modundadır ve CAPTCHA göstermiştir.

IP İtibarı Nedeniyle Karantina ​

json
{
  "action": "quarantine",
  "module": "quarantine",
  "summary": "quarantine: source is in quarantine",
  "ipReputation": {"category": "hacking"},
  "quarantinedBy": "ipRep"
}

Adres Hacking kategorisindedir ve IP itibar kuralı istemciyi karantinaya almıştır. Kutuya giriş anında da kararı kutu verdiği için module quarantine olur; istemciyi kutuya hangi korumanın gönderdiğini quarantinedBy gösterir. quarantinedBy yalnızca bu ilk istekte doludur; istemcinin kutudayken gönderdiği sonraki isteklerde aynı module ve summary ile boş gelir.

Beyaz Listedeki İstemci ​

json
{
  "action": "whitelisted",
  "module": "",
  "summary": "whitelisted: exempt by whitelist",
  "exempt": {"ddos": false, "bot": true, "ipReputation": false}
}

İstemci Bot Protection'ın beyaz listesindedir; istek geçirilmiştir. Bot skoru yine hesaplanır ve bot nesnesinde yer alabilir.

Doğrulanmış Bot ​

json
{
  "action": "trustedBot",
  "module": "",
  "summary": "trustedBot: verified crawler",
  "client": {"uaFamily": "crawler", "networkType": "verified_bot"}
}

Adres doğrulanmış bir botun (crawler) yayımladığı aralıktadır; istek geçirilmiştir.

SIEM'de Kullanım İpuçları ​

AmaçKullanılacak alanlar
Engellenen bütün istekleraction değeri block, captcha, tarpit, redirect, showContent, silentDrop ya da quarantine
Hangi korumanın ne kadar müdahale ettiğimodule alanına göre gruplama
Enforce moduna geçmeden önce etki ölçümüaction = monitored; monitor.module ve monitor.action alanlarına göre gruplama
Kötü bot yoğunluğubot.class = bot ya da likely_bot; client.networkType ile birlikte
L7 DDoS kural ayarıddos.rule, ddos.observed, ddos.limit (limitin ne kadar aşıldığı)
Karantinaya giren istemcilerquarantinedBy dolu kayıtlar (kutuya giriş anı); istemci adresiyle birlikte
Kapasite alarmıceilingDrop = true
Beyaz liste denetimiaction = whitelisted ve exempt bayrakları
Kimliğini taklit eden istemcilerbot.factors içinde tlsUaMismatch, ja4ToolImpersonation ya da crawlerImpersonation; client.ja4Family ile client.uaFamily karşılaştırması

Kapsam ve Sınırlar ​

INFO

  • %THREAT_INFO yalnızca HTTP vService'lerde ve yalnızca Manual biçimli log profillerinde kullanılır; L7 TCP ve Network vService'lerde üretilmez.
  • Değişken, log profili onu kullanan vService'lerde her istek için hesaplanır; istek başına işlemci maliyeti birkaç mikrosaniye düzeyindedir ve yalnızca bu vService'leri etkiler.
  • Nesne zaman, istemci adresi, host, istek satırı, yanıt kodu ve ham User-Agent başlığını taşımaz (yalnızca client.uaFamily ailesi bulunur); bunlar log profiline ayrı satırlar olarak eklenir.
  • Ağ katmanında, istek oluşmadan düşürülen trafik (ör. L4 DDoS Protection) HTTP erişim loguna girmediği için bu nesnede yer almaz.
  • ddos.observed ve ddos.limit yalnızca değerleri taşır; limitin ölçüldüğü zaman penceresi nesnede yoktur, kuralın kendi ayarından okunur.
  • bot.score ve bot.class skorun indirimsiz hâlini gösterir. İnsan doğrulaması (Human Verification faktörleri) aksiyon kararında skoru düşürür; bu nedenle geçirilmiş bir istekte en düşük aksiyon eşiğinin üzerinde bir skor görülebilir.
  • Karantina kutusundaki istemci için action quarantine olarak yazılır; kutunun yapılandırılmış yanıt biçimi bu alana yansımaz. Kutudaki istemci sert tavana takılırsa action silentDrop, ceilingDrop true olur.
  • Kayıtlar log profilinde tanımlı syslog adreslerine gönderilir; iletim ve biçim ayarları Logs profilinden yönetilir.