Tüylenme nedir?

tüylenme nedir

Giriş: Fuzzing nedir?

2014 yılında Çinli bilgisayar korsanları Topluluk Sağlık Sistemlerine hacklendi, kar amacı gütmeyen bir ABD hastane zinciri ve 4.5 milyon hastanın verilerini çaldı. Bilgisayar korsanları, saldırıdan birkaç ay önce OpenSSL şifreleme kitaplığında keşfedilen Heartbleed adlı bir hatadan yararlandı.

Heartbleed, saldırganların ön kontrolleri geçmek için yeterince geçerli hatalı biçimlendirilmiş istekler göndererek bir hedefe erişmesine izin veren bir saldırı vektörü sınıfı örneğidir. Bir uygulamanın farklı bölümlerinde çalışan profesyoneller, güvenliğini sağlamak için ellerinden gelenin en iyisini yaparken, bir uygulamayı bozabilecek veya geliştirme sırasında savunmasız bırakabilecek tüm köşe durumlarını düşünmek imkansızdır.

İşte burada 'kabartma' devreye giriyor.

Fuzzing Saldırısı nedir?

Fuzzing, fuzz testi veya fuzzing saldırısı, bir programa rastgele, beklenmeyen veya geçersiz verileri (fuzz adı verilir) beslemek için kullanılan otomatik bir yazılım test tekniğidir. Program, arabellek taşmaları, çökmeler, bellek sızıntıları, iş parçacığı askıda kalmaları ve okuma/yazma erişimi ihlalleri gibi olağandışı veya beklenmeyen davranışlar açısından izlenir. Bulanıklaştırma aracı veya fuzzer daha sonra olağandışı davranışın nedenini ortaya çıkarmak için kullanılır.

Fuzzing, tüm sistemlerin keşfedilmeyi bekleyen hatalar içerdiği ve bunu yapmak için yeterli zaman ve kaynak verilebileceği varsayımına dayanır. Çoğu sistemin çok iyi ayrıştırıcıları veya giriş doğrulaması vardır. siber suçluların bir programdaki herhangi bir varsayımsal hatayı kullanmaktan. Ancak, yukarıda da belirttiğimiz gibi, geliştirme sırasında tüm köşe durumlarını kapsamak zordur.

Fuzzers, yapılandırılmış girdi alan veya bir tür güven sınırı olan programlarda kullanılır. Örneğin, PDF dosyalarını kabul eden bir program, dosyanın bir .pdf uzantısına ve PDF dosyasını işlemek için ayrıştırıcıya sahip olduğundan emin olmak için bazı doğrulamalara sahip olacaktır.

Etkili bir fuzzer, bu sınırları aşmaya yetecek kadar geçerli, ancak programın daha aşağılarında beklenmeyen davranışlara neden olacak kadar geçersiz girdiler üretebilir. Bu önemlidir, çünkü doğrulamaları geçebilmek, daha fazla zarara yol açmazsa pek bir anlam ifade etmez.

Fuzzers, SQL enjeksiyonu, siteler arası komut dosyası çalıştırma, arabellek taşması ve hizmet reddi saldırılarına çok benzeyen saldırı vektörlerini keşfeder. Tüm bu saldırılar, bir sisteme beklenmeyen, geçersiz veya rastgele verilerin beslenmesinin bir sonucudur. 

 

Fuzzer Çeşitleri

Fuzzers, bazı özelliklere göre sınıflandırılabilir:

  1. Saldırı hedefleri
  2. Tüy oluşturma yöntemi
  3. Girdi yapısının farkındalığı
  4. Program yapısının farkındalığı

1. Saldırı Hedefleri

Bu sınıflandırma, fuzzer'ın test etmek için kullanıldığı platform türüne göre yapılır. Fuzzers, ağ protokolleri ve yazılım uygulamaları ile yaygın olarak kullanılır. Her platformun aldığı belirli bir girdi türü vardır ve bu nedenle farklı türde bulanıklaştırıcılar gerektirir.

Örneğin, uygulamalarla uğraşırken, tüm bulanıklaştırma girişimleri, uygulamanın kullanıcı arabirimi, komut satırı terminali, formlar/metin girişleri ve dosya yüklemeleri gibi çeşitli giriş kanallarında gerçekleşir. Dolayısıyla fuzzer tarafından üretilen tüm girdiler bu kanallarla eşleşmelidir.

İletişim protokolleri ile uğraşan fuzzers, paketlerle uğraşmak zorundadır. Bu platformu hedefleyen Fuzzer'lar, sahte paketler oluşturabilir ve hatta ele geçirilen paketleri değiştirmek ve onları yeniden oynatmak için proxy işlevi görebilir.

2. Tüy Oluşturma Yöntemi

Fuzzer'lar, fuzz yapmak için nasıl veri oluşturduklarına göre de sınıflandırılabilir. Tarihsel olarak, fuzzers, sıfırdan rastgele veriler üreterek fuzz yarattı. Bu tekniği başlatan Profesör Barton Miller bunu başlangıçta böyle yaptı. Bu tip fuzzer'a bir nesil tabanlı fuzzer.

Bununla birlikte, teorik olarak bir güven sınırını atlayacak veriler üretilebilirken, bunu yapmak önemli ölçüde zaman ve kaynak gerektirecektir. Bu nedenle, bu yöntem genellikle basit giriş yapılarına sahip sistemler için kullanılır.

Bu soruna bir çözüm, bir güven sınırını geçecek kadar geçerli, ancak sorunlara yol açacak kadar geçersiz veriler oluşturmak için geçerli olduğu bilinen verileri değiştirmektir. Bunun iyi bir örneği bir DNS belirsizleştirici bir alan adını alır ve daha sonra, belirtilen etki alanının sahibini hedef alan potansiyel olarak kötü niyetli etki alanlarını tespit etmek için geniş bir alan adları listesi oluşturur.

Bu yaklaşım öncekinden daha akıllıdır ve olası permütasyonları önemli ölçüde daraltır. Bu yöntemi kullanan fuzzer'lara denir. mutasyona dayalı bulanıklaştırıcılar

Güvenlik açıklarının kökünü kazımak için gereken en uygun belirsiz veride bir araya gelmek için genetik algoritmalardan yararlanan üçüncü bir daha yeni yöntem var. Bir programa beslendiğinde her bir test verisinin performansını göz önünde bulundurarak bulanık verilerini sürekli olarak iyileştirerek çalışır. 

En kötü performans gösteren veri kümeleri veri havuzundan çıkarılırken en iyileri mutasyona uğrar ve/veya birleştirilir. Yeni nesil veriler daha sonra tekrar bulanıklık testi için kullanılır. Bu fuzzers olarak adlandırılır evrimsel mutasyona dayalı bulanıklaştırıcılar.

3. Girdi Yapısı Farkındalığı

Bu sınıflandırma, bir fuzzer'ın bir programın girdi yapısını bilip bilmemesine ve aktif olarak fuzz verisi üretmede kullanıp kullanmamasına bağlıdır. A aptal aptal (bir programın giriş yapısından habersiz bir fuzzer) çoğunlukla rasgele bir şekilde tüylenme üretir. Bu, hem nesil hem de mutasyona dayalı bulanıklaştırıcıları içerebilir. 


Bir fuzzer'a bir programın girdi modeli sağlanırsa, fuzzer sağlanan girdi modeliyle eşleşecek şekilde verileri üretmeye veya değiştirmeye çalışabilir. Bu yaklaşım, geçersiz veriler oluşturmak için harcanan kaynak miktarını daha da azaltır. Böyle bir fuzzer denir akıllı fuzzer.

4. Program Yapısının Farkındalığı

Fuzzer'lar ayrıca, fuzz'ladıkları programın iç işleyişinin farkında olup olmadıklarına ve bu farkındalığı fuzz verisi oluşturmaya yardımcı olmak için kullanıp kullanmadıklarına göre de sınıflandırılabilir. Fuzzers, bir programı iç yapısını anlamadan test etmek için kullanıldığında, buna kara kutu testi denir. 

Kara kutu testi sırasında oluşturulan bulanıklık verileri, bulanıklaştırıcı, bulanıklaştırmanın etkisini izleyerek ve bunu kullanarak 'öğrendiği' evrimsel mutasyon tabanlı bir bulanıklaştırıcı olmadığı sürece genellikle rastgeledir. bilgi bulanık veri setini iyileştirmek için.

Öte yandan, beyaz kutu testi belirsiz veriler oluşturmak için programın iç yapısının bir modelini kullanır. Bu yaklaşım, bir fuzzer'ın bir programdaki kritik konumlara ulaşmasını ve onu test etmesini sağlar. 

Popüler Bulanıklaştırma Araçları

Birçok tüylenme var araçlar dışarıda kalem testçileri tarafından kullanılır. En popüler olanlardan bazıları:

Tüylenme Sınırlamaları

Fuzzing gerçekten yararlı bir pen-test tekniği olsa da, hatasız değildir. Bunlardan bazıları:

  • Koşmak oldukça uzun zaman alıyor.
  • Bir programın kara kutu testi sırasında bulunan çökmeler ve diğer beklenmedik davranışların analiz edilmesi veya hatalarının ayıklanması imkansız değilse bile zor olabilir.
  • Akıllı mutasyon tabanlı bulanıklaştırıcılar için mutasyon şablonları oluşturmak zaman alıcı olabilir. Bazen, girdi modelinin tescilli olması veya bilinmemesi nedeniyle mümkün bile olmayabilir.

 

Yine de, hataları kötü adamlardan önce keşfetmek isteyenler için oldukça yararlı ve gerekli bir araçtır.

Sonuç

Fuzzing, yazılımdaki güvenlik açıklarını ortaya çıkarmak için kullanılabilecek güçlü bir pen-test tekniğidir. Pek çok farklı türde fuzzer vardır ve sürekli olarak yeni fuzzer'lar geliştirilmektedir. Bulanıklaştırma inanılmaz derecede faydalı bir araç olsa da sınırlamaları vardır. Örneğin, fuzzers yalnızca çok fazla güvenlik açığı bulabilir ve oldukça kaynak yoğun olabilir. Ancak, bu harika tekniği kendiniz denemek isterseniz, platformumuzda kullanabileceğiniz ücretsiz DNS Fuzzer API. 

Ne bekliyorsun 

Bugün tüylenmeye başlayın!

Google ve Gizli Efsane

Google ve Gizli Efsane

Google ve Gizli Mod Efsanesi 1 Nisan 2024'te Google, Gizli moddan toplanan milyarlarca veri kaydını yok ederek bir davayı çözüme kavuşturmayı kabul etti.

Devamı »