ağaç dışı v1.0.0 - açıklardan yararlanan yazılımları ve Linux çekirdek modüllerini geliştirmeye ve test etmeye yönelik araçlar


ağaç dışı v1.0.0 - açıklardan yararlanan yazılımları ve Linux çekirdek modüllerini geliştirmeye ve test etmeye yönelik araçlar

Açıklardan yararlanmaların ve Linux çekirdek modüllerinin geliştirilmesi ve test edilmesine yönelik bir araç seti olan ağaç dışı yazılımın ilk (v1.0.0) sürümü yayımlandı.

Ağaç dışı, çekirdek modüllerinde ve açıklardan yararlanmada hata ayıklamak, yararlanma güvenilirliği istatistikleri oluşturmak için ortamlar oluşturmak üzere bazı rutin eylemleri otomatikleştirmenize olanak tanır ve ayrıca CI'ya (Sürekli Entegrasyon) kolayca entegre olma yeteneği sağlar.

Her bir çekirdek modülü veya istismar, gerekli ortam hakkındaki bilgileri ve (eğer bu bir istismar ise) belirli güvenlik azaltımlarının varlığında operasyona ilişkin kısıtlamaları belirten bir .out-of-tree.toml dosyasıyla tanımlanır.

Araç seti aynı zamanda bir güvenlik açığından etkilenen belirli çekirdek sürümlerini belirlemenize de olanak tanır (--guess komutunu kullanarak) ve ayrıca belirli bir işleme yönelik ikili aramaları basitleştirmek için de kullanılabilir.

Aşağıda v0.2 sürümünden bu yana yapılan değişikliklerin bir listesi bulunmaktadır.

Katma

  • —max= kullanarak oluşturulan (ağaç dışı çekirdek otojeni) çekirdek sayısını (.out-of-tree.toml'deki açıklamaya göre) sınırlama ve çalıştırmaları (ağaç dışı sıra) kontrol etme yeteneği uygulandı. X parametresi.

  • Belirli bir dağıtım ve sürüm için tüm çekirdekleri oluşturmanıza olanak tanıyan yeni genel komut.

  • Tüm günlükler artık sqlite3 veritabanında saklanıyor. Sıklıkla ihtiyaç duyulan basit sorguların yanı sıra verileri json ve markdown'a aktarmaya yönelik komutlar uygulandı.

  • Başarılı operasyon olasılığının hesaplaması uygulandı (önceki lansmanlara dayanarak).

  • Derleme sonuçlarını kaydetme yeteneği (ağaç dışı pew komutu için yeni --dist parametresi)

  • Ana bilgisayar sisteminde yüklü olan çekirdekler için meta veriler oluşturmanın yanı sıra doğrudan ana bilgisayarda oluşturma desteği.

  • Üçüncü taraf çekirdekler için destek.

  • Ağaç dışı hata ayıklama ortamı artık ana sistemdeki hata ayıklama sembollerini otomatik olarak arar.

  • Hata ayıklama sırasında KASLR, SMEP, SMAP ve KPTI işaretlerini etkinleştirme/devre dışı bırakmayla güvenlik azaltımlarını yönetme yeteneği eklendi.

  • Açıklardan yararlanmaların ve çekirdek modüllerinin oluşturulacağı/çalıştırılacağı ve test edileceği iş parçacığı sayısını belirtmek için kullanılabilecek ağaç dışı pew test komutuna --threads=N parametresi eklendi.

  • Günlüğe kaydedilecek ve daha sonra istatistikleri hesaplamak için kullanılabilecek bir etiket belirleme yeteneği.

  • Düzenli ifadeler kullanmadan çekirdek sürümünü belirtme yeteneği eklendi.

  • Alt dizinlerdeki açıklardan yararlanmaların ve çekirdek modüllerinin toplu testi için kullanılan yeni paket komutu.

  • Yararlanma ve çekirdek modülünün yapılandırmasına (.out-of-tree.toml), KASLR, SMEP, SMAP ve KPTI'yi devre dışı bırakma ve gerekli çekirdek ve bellek sayısını belirtme yeteneği eklendi.

  • Artık çekirdek autogen çalışırken görüntüler (rootfs) otomatik olarak yükleniyor. bootstrap'a artık gerek yok.

  • CentOS çekirdekleri için destek.

Değişiklikler

  • Artık dağıtımın gerekli sürümü için görüntü (rootfs) yoksa, ağaç dışı en yakın sürümün görüntüsünü kullanmaya çalışacaktır. Örneğin Ubuntu 18.04 için Ubuntu 18.10 görüntüsü.

  • Artık çekirdek modülleri için yapılan testler, eksik olmaları durumunda başarısızlık olarak kabul edilmeyecektir (test yok - hata yok!).

  • Artık çekirdeklerden herhangi birinde en az bir aşama (derleme, başlatma veya test) başarısız olursa ağaç dışı, negatif bir hata kodu döndürecektir.

  • Projede Go modülleri kullanılmaya başlandı, artık GO111MODULE=on ile bina yapılması tercih ediliyor.

  • Varsayılan testler eklendi.

  • ${TARGET__test içindeki derleme Makefile'da uygulanmadıysa artık varsayılan olarak Test.sh kullanılacaktır.

  • Çekirdek günlüğü artık bir çekirdek modülü çalıştırılmadan veya yararlanmadan önce temizlenmiyor. Açıklardan bazıları, KASLR'yi atlamak için dmesg'de bir çekirdek tabanı sızıntısı kullanıyor, dolayısıyla temizleme, açıktan yararlanmanın uygulanan mantığını bozabilir.

  • qemu/kvm artık ana bilgisayar işlemcisinin tüm yeteneklerini kullanıyor.

Kaldırıldı

  • Çekirdek Fabrikası Artımlı olarak güncellenen Docker dosyalarına dayalı çekirdek oluşturmanın uygulanması nedeniyle tamamen kaldırıldı.

  • bootstrap başka bir şey yapmaz. Komut bir sonraki sürümde kaldırılacaktır.

sabit

  • MacOS'ta GNU coreutils'in çalıştırılması artık gerekli değildir.

  • Bazı sistemlerde docker içindeki montaj hataları nedeniyle geçici dosyalar ~/.out-of-tree/tmp/ dizinine taşındı.

Kaynak: linux.org.ru

Yorum ekle