Kodlama uygulamaları: Güvenli programlama dillerinin rolü


Güvenlik ve kalite, test yoluyla eklenebilecek özellikler değildir; tasarımın ayrılmaz bir parçası olmalıdırlar. Uygulama sırasında daha güvenli veya daha emniyetli bir dil veya dil alt kümesi seçmek, tüm güvenlik açığı kategorilerini ortadan kaldırabilir.

güvenli programlama dilleri

Ulusal Standartlar ve Teknoloji Enstitüsü’ndeki (NIST) Yazılım ve Sistemler Bölümü, Daha Güvenli Diller listesi yayınladı. Aşağıdakileri vurguladılar:

Profesyoneller güvenli programlama dilleri hakkında ne düşünüyor? Güvenli sistem tasarımıyla ilgilenen bir CEO’dan ve deneyimli bir yazılım mühendisinden güvenli programlama dilleri ve NIST listesi hakkında konuşmalarını istedik.

güvenli programlama dilleri

Steve Sarakas, CEO, Callplex

Rust’ı bellek güvenliği dışında birkaç nedenden dolayı kullanıyoruz – yerel çıktı ve sıkı kargo derleyicisi. Büyük bir uygulamamız WASM PWA’larımızdır. Ortam başlangıçta çok kısıtlayıcıdır. Çalışma zamanı yok, çöp toplayıcı yok ve çalışma zamanı kök araçları konusunda daha az endişeliyiz.

NIST listesiyle ilgili birçok sorun var, ayrıca CISA yorumları da var. Ada’nın listede olmasının tek nedeni savunma müteahhitleri. Bir programlama dili “güvenli” olarak adlandırılmalı çünkü güvenli sistemlerin uygulanmasını sağlıyor.

“Güvenli kod” diye bir şey yoktur. Herhangi bir kod, kim tarafından iyi taranıp incelenirse incelensin, her an raydan çıkabilir. Bozuk bir sürücü yükleyin ve tüm bahisler iptal olsun. Bu yüzden odak noktasının sihirli değnekler değil, güvenli sistem tasarımı olması gerekir.

güvenli programlama dilleri

Marin Sablić, Yazılım Mühendisi, Porsche Digital Hırvatistan

Güvenli veya emniyetli bir programlama dili tanımlamaya gelince, akla gelen birçok olası konu vardır, en bariz olanlardan başlayarak – tür güvenliği, bellek güvenliği, iş parçacığı güvenliği, vb. Bu ilkeler çoğunlukla bir dilin nasıl kurulduğuna ve nihayetinde nasıl kullanıldığına atıfta bulunsa da, bunlar geliştirmenin bir başka önemli bölümünü de etkileyebilir – uygulama güvenliğinin kendisi.

Uygulama güvenliği ve güvenli bir platformun sürdürülmesinden bahsederken, öncelikle dikkate alınması gereken bazı önemli şeyler daha var.

Genel olarak konuşursak, bir dil ne kadar olgun ve sağlamsa, daha emniyetli öyledir. Olgun, güvenilir ve yaygın olarak kullanılan bir programlama diline sahip olduğunuzda, aynı zamanda arkasında çok güçlü bir topluluk ve destek, ayrıca en iyi çerçeveler ve kütüphaneler de olma eğilimindedir.

Bu neden önemli? Hadi birkaç önemli noktaya bakalım:

  • Sıfırıncı gün zafiyetleri – Büyük ve güçlü bir topluluk ve büyük kuruluşların desteğiyle, güvenlik açıklarını daha erken tespit etme ve düzeltme eğilimi vardır.
  • Daha iyi destek – Çok sayıda dokümantasyon, nasıl yapılır ve destek, daha dayanıklı ve güvenlik yeteneğine sahip kaliteli kod üretmeyi kolaylaştırır. Daha fazla uzman, daha fazla kod üretilmesi, daha fazla uç durumun keşfedilmesi ve işlenmesi anlamına gelir, yani… Anladınız.
  • Olgun çerçeveler ve kütüphaneler – Olgun bir dil ile birlikte, daha kapsamlı bir şekilde test edilen ve kullanılan olgun çerçeveler ve kütüphaneler gelir ve bu da istikrarlı ve güvenli kod tabanlarıyla sonuçlanır. Sık güncellemeler ve güvenlik yamaları onları oyunun bir adım önünde tutar. Yerleşik çerçeveler ve kütüphaneler sıklıkla güvenlik denetimlerinden geçer.
  • En iyi uygulamalar

Destek kısmında da belirttiğim gibi, kaliteli kod = daha iyi uygulama. Bir uygulamanın dayanıklı olması için en iyi uygulamaları kullanmak gerekir ve iyi kurulmuş kodlama kuralları bunu etkiler.

Olgun ekosistemler, ürettiğiniz kodu büyük ölçüde etkileyebilecek test, CI/CD ve statik kod analizi için daha iyi araçlar sağlar.

Burada sınırlandırılmış dillere bazı örnekler:

1. Python – Popüler, hızlı, basit ve çok yönlü, Python’u yeni başlayanlar için uygun hale getiren ve aynı zamanda hemen hemen her uygulama için güçlü kılan özelliklerden bazılarıdır. Django ve Flask gibi bazı harika çerçevelerle birlikte zengin standart kütüphane.

2. Java – Kişisel favorim ve bir Java geliştiricisi olarak önyargılı olsam da, kurumsal desteği ve harika topluluğu, kaliteli kod oluşturmayı ve öğrenmeyi ve kullanmayı çok daha basit bir görev haline getiriyor. Java kullanan kurumsal uygulama sayısı çok şey anlatıyor.

3. JavaScript – En sevmediğim dil, ancak tarihi güvenlik sorunlarıyla ilgili kötü şöhretine rağmen oldukça büyüdü. Büyük bir toplulukla, güvenlik açıkları hızla çözülüyor ve dil sürekli olarak gelişiyor.

Elbette, her konuda olduğu gibi bazı uyarılar var. Bir dil ne kadar popülerse, potansiyel saldırganlar için o kadar büyük bir hedeftir. Eski kod da, doğru şekilde bakımı yapılmazsa bir sorun teşkil edebilir. Sürekli güncellemeler ve güvenlik açıklarının değerlendirilmesi için daha fazla çaba gerekir. Ve benzeri, benzeri…

Günün sonunda, önemli olan sizin özel gereksinimlerinizdir, bunlar nihayetinde seçiminizi belirleyecektir. Aksi takdirde, yeni diller yaratılmazdı ve bu hiç eğlenceli olmazdı.



Source link