Pysa, Facebook tarafından sunulan Python için statik bir analizci

Facebook, "Pysa" adlı açık kaynaklı bir statik analizci»(Python Static Analyzer) olan Python kodundaki olası güvenlik açıklarını belirlemek için tasarlanmıştır.

Pısa veri akışı analizi sağlar kod yürütmenin bir sonucu olarak birçok potansiyel güvenlik açığını ve sorunu belirlemenize olanak tanır Verilerin görünmemesi gereken yerlerde kullanımıyla ilgili gizlilik.

Örneğin, Pysa aramalarda ham harici verilerin kullanımını takip edebilir dosya işlemlerinde ve SQL yapılarında harici programları çalıştıran.

Bugün, Python kodundaki güvenlik ve gizlilik sorunlarını tespit etmek ve önlemek için geliştirdiğimiz açık kaynaklı bir statik analiz aracı olan Pysa ile ilgili ayrıntıları paylaşıyoruz. Geçen yıl, 100 milyon satırdan fazla hack kodunu analiz etmemize yardımcı olan ve mühendislerin binlerce potansiyel güvenlik problemini önlemesine yardımcı olan statik bir analiz aracı olan Zoncolan'ı nasıl yarattığımızı paylaşmıştık. Bu başarı, Python Static Analyzer'ın kısaltması olan Pysa'yı geliştirmemiz için bize ilham verdi.

Pysa aynı algoritmaları kullanır statik analiz yapmak ve hatta kodu paylaşmak için zoncolan. Zoncolan gibi, Pysa bir programdaki veri akışlarını izler.

Kullanıcı kaynakları (önemli verilerin geldiği yerler) yanı sıra havuzları (kaynak verilerin bitmemesi gereken yerleri) tanımlar.

Güvenlik uygulamaları için en yaygın kaynak türleri, Django sözlüğü gibi kullanıcı kontrollü verilerin uygulamaya girdiği yerlerdir.

Alıcılar çok daha çeşitli olma eğilimindedir, ancak aşağıdakiler gibi kod çalıştıran API'leri içerebilir: evalveya dosya sistemine erişen API'ler, örneğinos.open

Pysa, özetler oluşturmak için yinelemeli analiz turları gerçekleştiriyor hangi işlevlerin bir kaynaktan veri döndürdüğünü ve hangi işlevlerin sonunda bir havuza çarpan parametrelere sahip olduğunu belirlemek için. Pysa, bir kaynağın sonunda bir havuza bağlandığını tespit ederse, bir sorun bildirir. 

Analizör çalışması gelen veri kaynaklarını tanımlamaya indirgiyor ve orijinal verilerin kullanılmaması gereken tehlikeli çağrılar.

Pysa, işlev çağrıları zinciri boyunca veri geçişini izler ve orijinal verileri koddaki potansiyel olarak tehlikeli yerlerle ilişkilendirir.

Kendi ürünlerimiz için Django ve Tornado gibi açık kaynaklı Python sunucu çerçevelerini kullandığımız için Pysa, bu çerçeveleri kullanan projelerde ilk çalıştırmadan itibaren güvenlik sorunları ile karşılaşmaya başlayabilir. Henüz kapsamına sahip olmadığımız çerçeveler için Pysa'yı kullanmak, genellikle Pysa'ya verilerin sunucuya nereden geldiğini söylemek için birkaç yapılandırma satırı eklemek kadar basittir.

Pysa tarafından tespit edilen yaygın bir güvenlik açığı, Zulip mesajlaşma platformundaki küçük resimleri görüntülerken temiz olmayan harici parametrelerin iletilmesinden kaynaklanan açık yeniden yönlendirme sorunudur (CVE-2019-19775).

Pysa'nın veri akışı izleme yetenekleri, ek çerçevelerin kullanımını doğrulamak ve kullanıcı veri kullanım ilkelerine uygunluğu belirlemek için kullanılabilir.

Örnek Ek yapılandırmalar olmadan Pysa, çerçeveleri kullanarak projeleri doğrulamak için kullanılabilir Django ve Tornado. Pysa, SQL ikamesi ve siteler arası komut dosyası oluşturma (XSS) gibi web uygulamalarındaki yaygın güvenlik açıklarını da belirleyebilir.

Facebook'ta, analizör Instagram hizmetinin kodunu doğrulamak için kullanılır. 2020'nin ilk çeyreğinde Pysa, Facebook mühendisleri tarafından Instagram'ın sunucu tarafı kod tabanında bulunan tüm sorunların% 44'ünün belirlenmesine yardımcı oldu.

Süreçte toplam 330 sorun tespit edildi Pysa kullanılarak yapılan otomatik değişiklik doğrulamasının 49'u (% 15) önemli olarak değerlendirildi ve 131'i (% 40) tehlikeli değildi. 150 vakada (% 45) sorunlar yanlış pozitiflere atfedildi.

Yeni ayrıştırıcı, Pyre türü doğrulama araç setine bir eklenti olarak tasarlanmıştır ve deponuza yerleştirilir. Kod, MIT lisansı altında yayınlandı.

Nihayet bunun hakkında daha fazla bilgi edinmek istiyorsanız, orijinal gönderideki ayrıntıları kontrol edebilirsiniz. Bağlantı bu.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.