Nightshade, Midnight'in Compact sözleşmelerine güvenlik analizini getiriyor

Geliştirici Dickson Wu, açık kaynaklı aracı bilerek yerleştirilen hatalara ve kamuya açık 300 sözleşmeye karşı test etti.

By SongMarketCap

Midnight News - Nightshade, Midnight'in Compact sözleşmelerine güvenlik analizini getiriyor

Nightshade, geliştiricilerin Midnight üzerinde uygulamalar oluşturmak için kullanılan programlama dili Compact ile yazılmış akıllı sözleşmeleri gözden geçirmesine yardımcı olmak üzere tasarlanmış bir statik analiz aracıdır.

Wu tarafından 29 Ekim'de Midnight Forum'da tanıtılan araç, kaynak kodunu 96 kurala göre denetler ve daha yakından incelenmesini gerektirebilecek kalıpları işaretler. Bulguları ilgili kod satırını belirtir ve geliştiricilerin sorunu araştırmasına yardımcı olmaya yönelik bilgiler içerir.

Nightshade Compact Kodunu Güvenlik Kalıpları İçin Denetliyor

Statik analiz, sözleşmenin çalıştırılmasını gerektirmeden kaynak kodu inceler. Nightshade bu yaklaşımı, gizlilik, yetkilendirme ve bir sözleşmenin mantığının diğer kısımlarıyla ilgili kalıpları aramak için kullanır.

Wu'nun belirttiği bir örnek, bir yetkilendirme kontrolünde kullanıldıktan sonra özel bir sırrın deftere yayımlanmasını içerir. Bir geliştirici, temel değeri gizli tutarken bir kullanıcının iznini doğrulamak için bu sırrı kullanmayı amaçlayabilir. Bunu sonradan yayımlamak, korunması amaçlanan bilgileri açığa çıkarabilir.

Diğer denetimler, atılan imza doğrulama sonuçlarını ve tanık değerlerinin kimliğin kanıtı olarak kabul edildiği durumları arar. Araç ayrıca zincir zamanına dayalı bir sınır olmaksızın çağıran tarafından sağlanan zamanı içeren kalıpları ve üyelik açısından kontrol edilmeyen Merkle kanıtlarını da işaretler.

Wu'ya göre Nightshade, her bulgu için ilgili kaynak satırını, verinin izlediği yolu ve önerilen bir düzeltmeyi sağlar. Bu, bir geliştiriciye bir değerin sözleşme boyunca nasıl hareket ettiğini ve işaretlenen davranışın nerede gerçekleştiğini incelemek için bir başlangıç noktası verir.

Bir uyarı tek başına bir sözleşmenin istismar edildiğini ya da bilgilerin ifşa edildiğini ortaya koymaz. Benzer şekilde, tamamlanmış bir analiz de bir sözleşmenin güvenli olduğunun garantisi değildir.

Dickson Wu Nightshade Test Sonuçlarını Paylaşıyor

Wu, bilerek yerleştirilmiş hatalar içeren test vakalarına karşı Nightshade'i değerlendirdi. Değerlendirmede ele alınan 266 olumlu vakanın 263'ünü aracın tespit ettiğini bildirdi.

Geliştirici bu vakaların düzeltilmiş sürümlerini de test etti. Nightshade, 242 düzeltilmiş sürümün 240'ı için uyarı üretmedi, diğer ikisi için ise bulgular verdi. Bu sonuçlar, söz konusu değerlendirmede kullanılan test vakalarını açıklar ve olası her güvenlik sorunu için bir tespit oranı ortaya koymaz.

Ardından Wu, aracı 144 depodan 300 kamuya açık Compact sözleşmesine karşı çalıştırdı. Çalışma sırasında çökme yaşanmadığını bildirdi ve tam bir analiz alan 258 sözleşmeyi belirledi.

Bu ayrım önemlidir çünkü bir taramayı tamamlamak ile sorun bulmamak ayrı sonuçlardır. Wu'ya göre, tam analiz almayan sözleşmeler temiz kabul edilmek yerine eksik olarak raporlandı.

Geliştirici, raporlanan sonuçların nasıl elde edildiğinin başkaları tarafından incelenebilmesine olanak tanıyarak değerlendirme yöntemini ve test sayılarını araçla birlikte yayımladı.

[NEWSBREAK]

Çevrimdışı Analiz ve Geliştirici Entegrasyonu

Nightshade yerel olarak çalışır ve Wu'ya göre kaynak kodu taramak için internet bağlantısı veya bir Compact derleyicisi gerektirmez. Araç, Compact derleyici sürümlerini 0.28'den 0.35'e kadar destekler.

Geliştiriciler bulguları metin olarak görüntüleyebilir veya JSON ve SARIF biçimlerinde dışa aktarabilir. Önerilen kod değişikliklerinin gözden geçirilmesi sırasında sonuçları göstermek için bir GitHub Action da mevcuttur, bulguları geliştiricilerin güncellemeleri incelemek için halihazırda kullanıyor olabilecekleri bir iş akışının içine yerleştirir.

Araç, Apache 2.0 açık kaynak lisansı altında yayımlandı. Wu 0.1.1 sürümünü tanıttı ve geliştiricileri geri bildirim paylaşmaya, yanlış pozitifleri bildirmeye ve ek kurallar önermeye davet etti.