Ya sana söyleseydik Yeni yayınlanan API tarayıcısı Tek bir güvenlik açığı testi için 922 quintillion yükü var mı? Bir quintillion milyar milyar – geleneksel API güvenlik testinin sınırlamalarını vurgulayan muazzam bir sayı. İmzalara güvenme, güvenlik açığına özgü yükler veya sabit bir bulanık giriş kümesi gibi eski yöntemler, özellikle özel yapım yazılım ve benzersiz API uç noktalarıyla uğraşırken artık yeterli değildir.
Sabit bir yük seti yeni ve bilinmeyen güvenlik açıkları bulamaz. API güvenlik testinin geleceği (şimdi mevcut), hızlı enjeksiyon gibi yeni ve gelişen tehditlere ayak uydurmak için neredeyse sonsuz bir yük seti üretebilecek yeni bir yaklaşım gerektirir.
Güvenlik testinde, bir yük bir uygulamayla istenmeyen bir şekilde etkileşim kurmak için tasarlanmış belirli bir metin veya veri dizisidir. Örneğin, bir SQL enjeksiyon saldırısı için bir yük ‘veya 1 = 1– olabilirken, siteler arası bir komut dosyası (XSS) yükü olabilir . Hızlı bir enjeksiyon güvenlik açığı için bir yük şöyle görünebilir:
Geleneksel API güvenlik tarayıcıları, sınırlı sayıda bilinen yük içeren dosyalar olan statik kelime listeleri kullanır. Geleneksel tarayıcılar test ettikleri yüklerin hacmini sınırlar. Büyük bir yükü test etmeye çalışacaklarsa, satıcının yürütülmesi yavaş ve maliyetli olurdu. Bu kaba kuvvet yaklaşımı temelde sınırlıdır, çünkü sadece arayacağını bildiklerini bulabilir.
API Fuzzing’e daha gelişmiş bir yaklaşım (hatalı veya beklenmedik verilerin nasıl tepki verdiğini görmek için bir uygulamaya beslenmesini içeren bir güvenlik test tekniği) temel olarak “sonsuz” bir yük gövdesine dayanır. Sonlu bir listeye güvenmek yerine, güvenlik aracı anında neredeyse sınırsız sayıda benzersiz yük oluşturabilir. Ancak bu kadar büyük bir liste ile, bir test cihazı veya güvenlik tarayıcısı ne test edileceğini nasıl yönetir? Cevap yatıyor tohum numarası.
“Tohum numarası” konsepti nedir?
Oyundaki bir tohum gibi Minecraft benzersiz ve geniş bir dünya üretir, API bulanıklığı için bir tohum numarası, “sonsuz” bir listeden belirgin bir şekilde belirli bir yük alt kümesi oluşturur. Bu, aynı tohumun her zaman aynı yükleri üretmesini sağlar, bu da büyük bir kelime listesi saklamaya gerek kalmadan tekrarlanabilir ve yönetilebilir taramalara izin verir. Yeni API tarayıcısı, tek başına hızlı enjeksiyon için 922 quintillion’un üzerinde neredeyse sonsuz bir yük seti oluşturabilir, bu da tüm standart testleri çalıştırırken her tarama ile yeni şeyler denemesini sağlar.
Makine öğrenimi taramayı nasıl daha akıllı hale getirebilir?
Tohum numarası yaklaşımının gerçek gücü, makine öğrenimi ilkeleri ile birleştirildiğinde kaldırılır. Sistem geçmiş taramalardan öğrenebilir ve en etkili tohumlara öncelik verebilir. Yukarıdaki görsel örnekte, örneğin, tohum 5684 sürekli olarak çeşitli API’lerde hızlı enjeksiyon güvenlik açıkları bulursa, güvenlik aracı bu tohumun oldukça etkili olduğunu ve benzer hedeflerde gelecekteki taramalar için kullanmayı önceliklendirdiğini öğrenebilir.
- String Manipülasyonu: @#$, <> Gibi özel karakterleri eklemek veya hazırlamak.
- Veri Türü Bulanık: Bir tamsayı bir dize veya boolean ile bir sayı ile değiştirme.
- Dize saldırıları biçiminde: Biçim dize güvenlik açıklarını test etmek için %n, %s veya %x gibi format belirleyicilerin enjekte edilmesi.
Bu dinamik yaklaşım, statik bir kelime listesinin uygulamanın yanıtlarına göre gerçek zamanlı olarak yük üreterek asla tahmin edemeyeceği yeni güvenlik açıklarını bulabilir.
API güvenlik açığı tespiti nasıl çalışır?
Bakalım
Tespitin anahtarı yanıt karşılaştırmasıdır. Temiz bir istek öngörülebilir bir yanıt vermelidir, kötü niyetli veya bulanık bir istek beklenmedik bir değişikliği tetikleyebilir. Bu şu şekilde ortaya çıkabilir:
- 500 dahili sunucu hatası: Enjekte edilen bir yükün sunucuda zorlanmamış bir istisnaya neden olduğunu gösteren yaygın bir gösterge.
- 403 yasak veya 401 yetkisiz: Bir API bir istek için bu durum kodlarından birini döndürürse, bir kullanıcının gerekli izinlerden yoksun olduğunu gösterir. Amaç daha sonra bu yanıtı 200 OK’ye “çeviren” belirli bir yük göndermektir. Başarılı olursa, bir filtre, kimlik doğrulama veya yetkilendirme baypasının kanıtı vardır, bu da kırık bir erişim kontrolü güvenlik açığını teyit eder.
- Yanıt içeriğinde beklenmedik değişiklikler: Örneğin, enjekte edilen bir yük, sunucunun veritabanı hata mesajlarını veya sistem dosyası içeriğini döndürmesine veya sapkın bir içerik uzunluğu veya daha uzun yanıt süreleri kadar ince bir şey oluşturmasına neden olabilir.
Sistem bu değişiklikleri işaretler ve sunar. Bu basit, yanıt tabanlı mantık, API’nın iç işlerini derinlemesine anlamaya gerek kalmadan aracın son derece etkili ve doğru olmasını sağlar. Motor, yanlış pozitifleri azaltan ve yüksek maddi, eyleme geçirilebilir bulgular sağlayan güvenlik açığından gerçekten yararlanmaya çalışarak bunu bir adım daha ileri götürür.
Çözüm
API güvenliği statik, reaktif yöntemlerden ve proaktif, akıllı ve ölçeklenebilir bir modele doğru ilerliyor. Test etmek için neredeyse sınırsız bir saldırı yüzeyi üretebilen tohum sayısı ve mutasyon tabanlı bulanıklaştırma gibi kavramlar, bir güvenlik duruşunun kuruluşların karşılaştığı tehditler kadar dinamik olmasını sağlamaya yardımcı olur.
Sadece norm olarak kabul edilen şeyleri test etmeyi göze alamayız. Gerçekten etkili bir güvenlik aracı, çoğu tarayıcı tarafından fark edilmeyecek gizli parametreleri, alışılmadık yolları ve beklenmedik durumları bulmak için kendi yolundan çıkmalıdır.
Yeni API tarayıcımızı hareket halinde görmek için dinamik bulanıklarla deneyin. Bir Demo Rezervasyonu Burada.
SSS
S: Geleneksel API güvenlik tarayıcılarıyla ilgili temel sorun nedir? C: Ana sorunlardan biri, bilinen yüklerin statik, sonlu kelime listelerine güvenmeleridir, bu da onları saldırganların sürekli geliştiği yeni, mutasyona uğramış yüklere karşı etkisiz hale getirir.
S: Bir tohum numarası API bulanıklığına nasıl yardımcı olur? C: Bir tohum numarası, çok daha küçük bir listeden belirli, tekrarlanabilir benzersiz bir yük seti oluşturur ve büyük bir kelime listesi saklamaya gerek kalmadan yönetilebilir ve tekrarlanabilir taramalara izin verir. Bu nedenle yeni API tarayıcısı, tekrarlanabilir sonuçlar sağlayarak büyük bir ölçek elde edebilir.
S: Bir güvenlik açığını tespit etmek için neyi tespit eder? C: 500 dahili sunucu hatası, 403 yasak durumu veya yanıt içeriğinde temiz bir isteğe kıyasla beklenmedik değişiklikler gibi bulanık bir istekten sonra sunucunun yanıtındaki anormallikleri arar.