Klasik ADC ve firewall ACL mantığı uzun süre IP, subnet, port ve protokol üzerine kuruldu. Bu model basit ağ erişim kontrolü için yeterlidir; fakat modern web, API, bot ve WAAP trafiği bu kadar basit değildir.
Bugün bir karar verirken yalnızca "kaynak IP nedir?" diye sormak yetmez. İstek hangi ülkeden geliyor? Hangi ASN'den geliyor? Hangi path'e gidiyor? Hangi cookie var? JWT içinde hangi role yazıyor? Header seti gerçek tarayıcıya benziyor mu? TLS fingerprint şüpheli mi? WAAP bu isteğe kaç skor verdi? Bot motoru bu kullanıcıyı nasıl sınıflandırdı?
Çoğu üründe bu sinyaller ayrı ayrı yerlerde yaşar. Routing kuralı başka yerde, WAAP skoru başka yerde, bot kararı başka yerde, header rewrite başka yerde, rate-limit başka yerde tanımlanır. Bu da operasyonu karmaşıklaştırır ve tutarsız kararlar üretir.
Daha büyük sorun, karmaşık koşulların çoğu zaman kod gerektirmesidir. "Şu header varsa, şu cookie yoksa, path /api/ ile başlıyorsa, WAAP skoru 5'in üzerindeyse, ama kaynak bilinen bot değilse" gibi bir kural yazmak için birçok üründe script, özel policy dili veya vendor'a özgü programlama gerekir.
TR7 ADC'nin Smart ACL Conditions katmanı bu problemi çözer: trafik kararları 60+ kriter, Smart Function zinciri ve AND/OR/NOT gruplarıyla UI'dan tanımlanır. Kural yalnızca IP listesi değil, trafiğin anlamını okuyan karar yapısı haline gelir.
TR7, ACL koşullarını ağ adresi filtresinin değil, uygulama ve güvenlik kararının temel birimi olarak ele alır.
Smart ACL motoru IP ve port seviyesinin çok ötesine geçer. Kaynak IP, ülke, şehir, hedef IP, hedef port, HTTP method, URL, path, query, header, cookie, request body, response body, TLS SNI, TLS cipher, TLS protokolü, JA3 fingerprint, WAAP attack ID, WAAP attack group, bot sınıfı, blacklist kategorisi ve cache state gibi sinyaller koşul olarak kullanılabilir. Bu, güvenlik ve trafik yönlendirme kararlarını gerçek uygulama bağlamıyla vermeyi sağlar.
Bir ACL tek başına kullanılabilir veya başka ACL'lerle mantıksal gruplar halinde birleştirilebilir. İç grup AND veya OR ile çalışır; koşul ters çevrilerek NOT davranışı verilebilir. Örneğin: "Path /login ile başlıyor" VE "Kaynak ülke izinli listede değil" VE "Bot skoru yüksek" AMA "Bilinen bot değil" — bu yapı karmaşık güvenlik politikalarını okunabilir hale getirir.
TR7 Smart Functions, ham trafik değerlerini işlenebilir hale getirir. Base64 decode, JSON path query, JWT header/payload parse, XML query, regex match, string replace, lowercase/uppercase, digest, IP mask, IP-to-country, map/list lookup gibi işlemler zincirlenebilir. Bu sayede ACL yalnızca "header değeri eşit mi?" diye bakmaz; header içindeki JSON'u parse eder, JWT claim'ini çıkarır, body içindeki alanı sorgular.
Sık kullanılan koşullar bir kez tanımlanır ve farklı kurallarda tekrar kullanılır. Örneğin "statik dosya uzantısı mı?", "auth cookie var mı?", "cache hit mi?", "WAAP tarafından bloklanmış mı?" gibi built-in veya özel ACL'ler birçok kuralda ortak kullanılabilir. Bu yapı kural tekrarını azaltır, değişiklikleri merkezi hale getirir ve operasyonel hatayı düşürür.
Smart ACL Conditions, trafik sinyallerini 60'tan fazla kritere yayılan okunabilir koşullara ve uygulanabilir aksiyonlara dönüştürür.
TR7, path, path+query, tam URL ve HTTP method üzerinden koşul yazabilir. Eşleşme türü başlangıç, bitiş, içerir veya regex olabilir. /api/ ile başlayan istekler, /admin path'i, POST method'u veya query içeren belirli URL yapıları tek ACL tanımıyla ifade edilir.
İstek header'ları, yanıt header'ları, kullanıcı cookie'leri ve kurum servisinden gelen cookie'ler ACL içinde kullanılabilir. X-Tenant-ID header'ına göre route seçimi, session_id cookie'si yoksa login'e yönlendirme, User-Agent içeriğine göre bot kontrolü ve response cookie'sine göre özel güvenlik davranışı bu katmanda yazılır.
ACL kriterleri kaynak IP veya CIDR ile sınırlı değildir. Ülke, şehir ve ASN tabanlı koşullar da tanımlanabilir. Sadece belirli ülkelerden erişim, belirli şehirlerden gelen kullanıcılar için özel routing, belirli ASN'lerden gelen trafiğe ek doğrulama veya veri merkezi ASN'lerine daha agresif bot politikası uygulanabilir.
TLS SNI, TLS cipher, TLS protokolü, SNI varlığı ve JA3 fingerprint gibi sinyaller koşullara dahil edilebilir. TLS 1.0 kullanan istemciye düşük güven skoru, SNI olmayan bağlantıyı reddetme, bilinen bot JA3 fingerprint listesiyle eşleşen trafiği CAPTCHA'ya alma ve weak cipher kullanan istemciyi izleme moduna alma gibi kararlar yazılabilir.
ACL, request veya response gövdesinden örneklenmiş içerik üzerinde çalışabilir. Body içinde string veya regex eşleşmesi yapılabilir. JSON body içinde yüksek tutarlı işlem kontrolü, form alanında belirli pattern yakalama, response body'de belirli marker varsa header ekleme veya API payload içeriğine göre rate-limit uygulanabilir.
Smart Functions ile JSON, XML ve JWT içeriği ACL koşuluna dönüştürülebilir. JWT payload.role == "admin", JSON body'de transaction.amount > 10000, XML içinde belirli path var mı veya JWT header'daki algoritma beklenen değer mi gibi koşullar API güvenliği ve erişim politikalarında büyük esneklik sağlar.
Smart ACL motoru WAAP kararlarını da koşul olarak kullanabilir: WAAP attack ID, WAAP attack group, WAAP skoru, WAAP tarafından bloklandı mı, WAAP saldırısı olarak işaretlendi mi. WAAP skoru 5+ ise CAPTCHA, SQL injection grubuna giren istekleri özel log formatına alma veya monitor moddaki WAAP bulgularını ayrı kurum servisine yönlendirme örnek senaryolardır.
Tarayıcı, mobil, bot ve kullanıcı ajanı sınıflandırmaları ACL içinde kullanılabilir. Mobil kullanıcıyı mobil kurum servisine yönlendirme, bot olarak işaretlenen trafiğe düşük rate-limit, bilinen arama motorlarına istisna ve tarayıcı olmayan istemciler için farklı güvenlik profili tanımlanabilir.
ACL motoru trafik yoğunluğu ve boyut sinyallerini kullanabilir: request size, response size, frontend connection count, request rate, session rate, response time, backend canlı sunucu sayısı ve HTTP status code. Backend canlı sayısı 1'e düştüğünde yeni trafiği yedek havuza alma veya response time yükselirse belirli endpoint'i cache'e alma bu kriterlerle kurgulanır.
Map ve list tabanlı eşleşmeler desteklenir. Büyük IP listeleri, domain listeleri, URL listeleri, müşteri ID listeleri veya özel anahtar-değer tabloları için kullanılır. VIP müşteri listesine göre farklı routing, kara listedeki IP'leri engelleme veya partner domain listesine göre CORS politikası bu yapıyla yönetilir.
IP itibarı veya blacklist kategorileri koşullara dahil edilebilir. Botnet, proxy, Tor, malware veya spam kategorileri farklı davranışlara bağlanabilir. Open proxy kategorisindeki IP'ye CAPTCHA, Tor çıkış noktalarını izleme moduna alma veya malware kategorisindeki IP'yi doğrudan reddetme örnek kullanımlardır.
TR7 bazı yaygın ACL'leri hazır sunar: statik dosya uzantısı mı, auth cookie var mı, cache hit mi, WAAP tarafından bloklandı mı. Bu hazır ACL'ler, operatörün en sık kullandığı koşulları tekrar yazmasını engeller ve kural setlerini daha sade tutar.
Standart UI kriterlerinin yetmediği uç durumlarda uzman kullanıcı manuel koşul yazabilir. Bu, TR7'nin görsel kural motorunu korurken edge-case esnekliği sağlar. Bu mod günlük kullanım için değil, ileri seviye operasyon ve özel entegrasyonlar içindir.
Kullanıcı bazlı request rate, connection rate ve error rate değerleri ACL içinde kullanılabilir. JWT claim, cookie, header veya kullanıcı ID'siyle birlikte çalıştırıldığında tenant veya kullanıcı bazlı rate-limit politikaları kurulabilir.
İstek veya yanıt cache hit durumuna göre farklı davranışlar tetiklenebilir. Auth cookie varlığı veya HTTP auth bilgisi de ACL motorunda kullanılabilir. Bu, AAM ve ADC davranışlarını aynı kural mantığı altında birleştirir.
Smart ACL Conditions yalnızca kural yazımı değil; koşul grubu yapısı, eşleşme türleri, update modeli ve body örnekleme sınırıyla birlikte düşünülür.
Smart ACL koşulları gruplar halinde tanımlanır. Grup içinde koşullar AND veya OR ile birleşir. Koşul ters çevrilerek NOT davranışı verilir. Dış gruplar daha geniş bir mantıksal yapı oluşturur. Bu yapı karmaşık politikaları küçük, okunabilir parçalara böler.
Her ACL benzersiz bir ID ile tanımlanır. Kurallar bu ID'ye referans verir. Aynı ACL farklı trafik kurallarında, rate-limit politikalarında, redirect kurallarında veya güvenlik aksiyonlarında tekrar kullanılabilir. ACL değiştiğinde bağlı tüm kurallara otomatik yayılır.
Metin tabanlı koşullarda farklı eşleşme türleri desteklenir: başında eşleşme, sonunda eşleşme, içinde eşleşme, regex eşleşme ve büyük/küçük harf duyarlı veya duyarsız eşleşme. Bu esneklik hem basit hem karmaşık kural yapılarını kapsar.
Smart Function'lar tek başına veya zincir halinde kullanılabilir. Örneğin: JWT payload parse et, içinden role alanını çıkar, lowercase yap, belirli listeyle karşılaştır. Bu, ham trafik verisini anlamlı karar girdisine çevirir.
Request ve response body inspection belirli bir örnek boyutu üzerinden çalışır. Bu, performans ile içerik farkındalığı arasında dengeli bir model sağlar. Çok büyük body'ler için özel body modification veya masking yetenekleri ayrıca kullanılır.
Smart ACL koşulları farklı katmanlarda kullanılabilir. L7 tarafındaki kurallar yapılandırma değişikliğine göre soft-reload gerektirebilir. L3 firewall tarafındaki kurallar ise kendi firewall sync döngüsüyle uygulanır. Her değişiklik aynı mekanizmayla uygulanmaz; katmana göre güncelleme modeli vardır.
Statik içerik tespiti için yaygın uzantılar hazır gelir: .css, .js, .jpg, .png, .svg, .woff, .pdf, .mp4, .webp, .docx, .xlsx ve benzeri dosya tipleri. Bu, cache, log azaltma ve rate-limit istisnası gibi senaryolarda sık kullanılır.
Bazı Smart Function'lar doğrudan yerleşik trafik motoru ile çalışır; bazı özel fonksiyonlar ek dönüştürücü katmanla yürütülür. Bu sayede JSON, XML, JWT veya özel string işlemleri daha geniş bir ifade alanı kazanır.
Bir API katmanında admin kullanıcılar daha yüksek limit, normal kullanıcılar daha düşük limit alır. Smart ACL, JWT payload içinden role alanını okur ve rate-limit politikasını buna göre seçer. JWTPAYLOAD(role) == admin → yüksek rate-limit; değilse standart rate-limit uygulanır.
Bir istek WAAP tarafından şüpheli bulunur ama doğrudan bloklanacak kadar net değildir. Smart ACL, WAAP skorunu ve bot sınıfını birlikte değerlendirir. wafScore >= 5 AND NOT knownBot koşulu sağlandığında CAPTCHA gösterilir.
Mobil kullanıcılar farklı, desktop kullanıcılar farklı kurum servisine yönlendirilir. Smart ACL kullanıcı ajanı ve mobil sınıflandırma sinyalini kullanır. mobile == true → mobil kurum servisi, mobile == false → masaüstü kurum servisi.
Bilinen kötü amaçlı istemci fingerprint listesi custom map olarak tanımlanır. Gelen TLS fingerprint bu listeyle eşleşirse trafik engellenir veya CAPTCHA'ya alınır. ja3 in bad_fingerprint_list → deny / captcha.
Finansal API'de transfer tutarı JSON body içinden okunur. Tutar belirli eşiğin üzerindeyse AAM tarafında ek MFA tetiklenir veya işlem ayrı bir kurum servisine yönlendirilir. JSONQUERY(transaction.amount) > 10000 → step-up MFA.
Belirli ülkelerden gelen trafik normalde izinlidir; ancak aynı trafik hosting ASN'inden geliyor ve WAAP skoru yüksekse ek kontrol uygulanır. country in allowedCountries AND asn in hostingProviders AND wafScore >= 4 → challenge.
60+ kriter, Smart Function zinciri ve AND/OR/NOT gruplarıyla güvenlik, routing ve rate-limit aynı kural motorunda. Kendi ortamınızda canlı kurulumu birlikte gezdirelim.