LLM’lerin sahneye çıkışıyla birlikte uygulama güvenliği dünyasında da köklü bir dönüşüm başladı. Özellikle SAST tarafında, yalnızca kodu tarayan değil, bulguyu anlayan ve yorumlayan LLM tabanlı yaklaşımlar öne çıkıyor.
OpenText’in Aviator modeli bu dönüşümün somut örneklerinden biri. SAST sonuçlarının en büyük problemi olan false positive yükünü azaltmak için Aviator, tespit edilen zafiyetleri bağlamı içinde ele alabiliyor; zafiyetli olduğu iddia edilen kodu yorumlayarak gerçek bir risk olup olmadığını değerlendirebiliyor. Özellikle custom fonksiyonlar gibi klasik SAST araçlarının zorlandığı alanlarda elde edilen yüksek başarı oranı, LLM’lerin SAST’te yalnızca yardımcı değil, aktif bir karar mekanizması olarak konumlanmaya başladığını gösteriyor.
SAST Süreçlerine Entegrasyon
OpenText’in fcli aracı, Aviator entegrasyonunun temelini oluşturan açık kaynaklı bir CLI bileşenidir. Fortify ekosistemindeki farklı servislerin tek bir komut satırı üzerinden yönetilmesini sağlayan fcli, Aviator’ın SSC ile entegrasyonunu da doğal bir şekilde bu yapı içine alır.
İlk adımda fcli aracı indirilir ve Aviator tenant bilgileri tanımlanır. Bu aşamada private key kullanımı, servisler arası iletişimin güvenli bir şekilde kurulmasını sağlar:
java -jar fcli.jar aviator admin-config create \
--url https://ams.aviator.fortify.com \
--tenant customer_tenant \
--private-key private_key.pem
Ardından Aviator üzerinde, SAST değerlendirmelerinin ilişkilendirileceği bir uygulama oluşturulur:
java -jar fcli.jar aviator app create "SAST Aviator Demo"
Aviator servislerine erişim için token tabanlı bir kimlik doğrulama mekanizması kullanılır. Bu yaklaşım, özellikle CI/CD ve otomasyon senaryolarında kullanıcı-parola bağımlılığını ortadan kaldırır:
java -jar fcli.jar aviator token create \
--email appsec@customer.com \
--name appsec \
--save-token appsec.json
Token oluşturulduktan sonra Aviator oturumu fcli üzerinden başlatılır:
java -jar fcli.jar aviator session login \
--url https://ams.aviator.fortify.com \
--token appsec.json
Aynı şekilde Fortify SSC tarafında da bir oturum açılır. Bu adım, Aviator’ın mevcut SAST bulgularına erişebilmesi için gereklidir:
java -jar fcli.jar ssc session login \
--url http://192.168.68.8:8080/ssc \
-u admin -p
Tüm oturumlar aktif hale geldikten sonra, belirli bir SSC uygulama ve versiyonu Aviator’a bağlanarak audit işlemi başlatılır:
java -jar fcli.jar aviator ssc audit \
--av "webgoat:dev" \
--app "SAST Aviator Demo"
Bu komutla birlikte Aviator, SSC’deki mevcut SAST bulgularını alır ve her bir bulguyu kod bağlamı içinde değerlendirir. Daha sonra sonuçları yeni bir FPR dosyası olarak geri gönderir.

Aviator Yorumları ve Aksiyonları
Yapılan konfigürasyona bağlı olarak Aviator yorum yapıp, analiz sonucunu işaretleyebilir veya doğrudan bulguyu “suppress” edebilir. Şimdi örnek bulgular üzerinden yorum ve aksiyonları inceleyelim.

Aviator, sabit bir string olarak tanımlanan PASSWORD değerinin gerçek bir kimlik bilgisi değil, kod içinde parametre adı olarak kullanıldığını bağlamdan çıkararak bunun hardcoded password zafiyeti olmadığını değerlendirmiş. Kodun sömürülebilir bir risk üretmediğini belirterek bulguyu false positive olarak sınıflandırmış.

Aviator, XSS şüphesini yalnızca ilgili satıra bakarak değil, başka bir dosyada tanımlı custom convertMetachars() fonksiyonunu da analiz ederek değerlendirmiş ve girdinin uygun şekilde escape edildiğini tespit etmiş. Bu bulguyu FP olarak değerlendirmiş.

Aviator, XML girdisinin kullanıcıdan alındığını ve XMLReader’ın güvensiz varsayılan ayarlarla kullanıldığını tespit ederek bunun sömürülebilir bir XXE zafiyeti olduğunu belirlemiş. İlgili dosya ve satırlar için doğrudan uygulanabilir güvenli kod değişikliğini de net şekilde önermiş. □