ABD Ulusal Güvenlik Ajansı (NSA), dünyanın her yerindeki geliştiricilerden kaçınmalarını istedi
C++ dilindeki sorun nedir?
İhtiyacınız olan koddaki talimatları yürütmek içinsistem kaynakları, özellikle bellek. Bazı eski programlama dillerindeki sorun, geliştiricilerin manuel olarak hareket etmesine izin vermeleridir. Sonuç olarak bellek yönetiminin sorumluluğu geliştiriciye aittir. Programcıların yaptığı basit hatalar sistemin "çökmesine" ve güvenlik sorunlarının ortaya çıkmasına neden olur.
Bu özgürlük bazı riskleri de beraberinde getiriyor.Bu bellek güvenliği hataları, basit yazım hatalarından ve unutulmuş kod satırlarından ya da karmaşık bellek yapılarından ve beklenmedik etkileşimlerden kaynaklanabilir.
Atlantik Konseyi'nin Kuzey Atlantik Antlaşması Örgütü'ne yaptığı açıklama
Bazı durumlarda, bir saldırgan sisteme erişmek veya kötü amaçlı kod yürütmek için bu hataları kullanabilir.
Böylece yaygın olarak kullanılan dillerC ve C++ gibi, bellek yönetiminde daha fazla özgürlük ve esneklik sağlamakla kalmaz, aynı zamanda bu konuda programcıya "güvenir". NSA, bunun bilgisayar korsanlarına güvenlik açıklarından kendi amaçları doğrultusunda yararlanma fırsatı verdiğine inanıyor.
Bilişim devlerinin görüşü
Teknoloji şirketlerine göre payC ve C++ gibi eski diller tüm hataların %65'ini oluşturur. Böylece Microsoft, Google ve diğer BT devleri, bellek güvenliğiyle ilgili sorunlar nedeniyle kodlarındaki güvenlik açıklarına dikkat çekiyor.
Hangi diller güvenli?
Python gibi yeni programlama dilleri,Java* ve Rust, belleği otomatik olarak ayırır. Birçoğu güvenlik hatalarını ya neredeyse tamamen ortadan kaldırıyor ya da imkansız hale getiriyor. NSA yetkilileri C#, Go ve Swift'i "güvenli listeye" ekledi.
C ve C++'ın "kurucu babası"nın yanıtı
C++ programlama dilinin yaratıcısı BjörnStroustrup, NSA'nın, bellek yönetimi sorumluluğunun geliştiriciye ait olduğu eski programlama dillerinin kullanımından vazgeçme çağrısına yanıt verdi.
Yayımlanan açık mektubundaStroustrup, open-std.org'da ajansın tutumuyla ilgili anlaşmazlığını dile getirdi. Dillerin son 30 yılda bağımsız olarak gelişmesine rağmen temsilcilerinin C ve C++'yı "bir araya getirdiğini" belirtti. Aynı zamanda geliştiricileri "kod güvenliğini radikal bir şekilde artırabilecek dilde yapılan değişiklikleri genellikle görmezden gelmekle" suçladı.
Aslında ona göre C++, C#, Go, Java, Ruby, Rust ve Swift gibi modern sözde güvenli dillerden hiçbir şekilde aşağı değildir.
Uzman görüşü
Hi-Tech, NSA'nın uyarısının ne kadar ciddiye alınması gerektiğini anlamak için Sphere yazılım üretim platformunun önde gelen satış öncesi mimarı Andrei Naichenko ile görüştü.
Bu yasağın tehlikesine inanıyorpazar için ve kodlayıcılar fazla tahmin edilmemelidir. Uzman, "Uygulama sistemlerinin C++ ile geliştirildiği zamanlar geçmişte kaldı ve önerilen dillere (C#, Go, Java, Ruby ve Swift) geçiş çoğu geliştirici tarafından zaten tamamlandı" diye açıklıyor.
Bugünkü C++ kullanımıişletim sistemleri, oyun geliştirme ve oyun motorları (Unreal Engine, Unity), GPU hesaplama (kripto para birimi, derin öğrenme), yüksek yüklü ve yüksek performanslı algoritmaların geliştirilmesi alanındaki niş çözümlerle sınırlıdır. Geliştirilen kodun hacmi ve uzman sayısı göz önüne alındığında, bu alanlardaki diğer dillere geçişin yakın gelecekte gerçekleşmesi pek mümkün görünmüyor. Pazarın geri kalan (ana) kısmı için NSA'nın bu tavsiyesi hiçbir şeyi tehdit etmiyor.
Bu kararın geçerliliğine ilişkinAndrey Naichenko, C++ dilinin yaratıcısı Bjarne Stroustrup'u destekledi. Uzman, "Standardın modern basımlarındaki C++ dili, bellekle güvenli çalışma sorunlarını başarılı bir şekilde çözmenize olanak tanıyan geniş ve olgun bir araç seti sağlar" diye açıkladı.
NSA kararı Rusya'yı nasıl etkileyecek?
NSA raporunda tanımlanan sorunların daha muhtemel olduğuToplamda, erken dil standartlarına uygulanan çözümlerde bulundular. Sonuçta NSA'nın kararının Rusya pazarını hedefleyen yazılım geliştiricileri üzerinde önemli bir etkisi olmayacak.
Daha fazla oku:
Bilim adamları, yaşlı insanların hafızasını "kurtarmanın" en iyi 6 yolunu seçtiler
Yeraltındaki gizemli bir iz bilim adamlarını şaşırttı. 1000 yaşından büyük
Sahte olduğu sanılan kılıcın 3 bin yıllık Tunç Çağı eseri olduğu ortaya çıktı
*Java yeni bir dil olarak sınıflandırılmasına rağmen oldukça eski bir programlama dilidir (not - “Yüksek teknoloji”)