Security Think Tank: Kodu etkili bir şekilde güvence altına almak için her adımda doğrulayın



Herhangi bir gerçek kodlama yapalı epey zaman oldu ve makine düzeyinde kodlama yaparken, başlangıçta bana her ikisi de yüksek düzeyli diller olan Algol ve Fortran öğretildi.

Bilgi güvenliği ve güvencesinde geçirdiğim 20 yılı aşkın süre içinde güvenli kodlama konusunun önemi arttı. Pek çok başarılı güvenlik ihlali, zayıf kodlama ve temizlik prosedürleri nedeniyle meydana gelmiştir, ancak operasyonel ortamın rolü ve arka planda herhangi bir temizlik işlevi göz ardı edilmemelidir, bunlar gerçekten kritik olabilir.

Güvenli kodlamanın büyük bir kısmı, bir kod parçasına yapılan herhangi bir girdinin yalnızca bilinen – doğrulanmış – bir kaynaktan gelmesine izin verilmesini ve girdinin sıkı sınır ve içerik denetimine tabi tutulmasını ve girdinin uygun olmaması durumunda, bu veriler tamamen yok edilir.

Benzer şekilde, bir kod parçasının çıktısı yalnızca kodun içinden gelmeli ve bilinen – doğrulanmış – hedeflere gönderilmelidir ve tahsis edilenin dışında bellek kullanmasına izin verilmemelidir. Kodun kendisi yalnızca ayrılmış bellek konumlarına ve sistem G/Ç’ye erişmeli ve bunları kullanmalıdır, temizlik işlevleri de kullanımdan sonra geçici bellek konumlarını temizlemelidir.

Herhangi bir kodun altında çalıştığı işletim sistemi, bir kod parçasının diğer kod parçalarına ayrılan belleği ihlal etmesini önlemek için bellek kullanımını ayırmalı, izlemeli ve kontrol etmelidir.

İşletim sistemi yalnızca doğrulanmış (sertifikalı veya işaretli) kodun çalışmasına izin vermeli, doğrulanmamış kod izole edilmeli, çalışması engellenmeli ve bir hata çıktısı alınmalıdır.

Bunun, örneğin, bir dizi sanal ana bilgisayarı çalıştıran veya birkaç kapsayıcıyı destekleyen bir ana sisteminiz ve işletim sisteminizin olduğu çok düzeyli bir işlem olabileceğine dikkat edilmelidir – sanal bir ana bilgisayarın da çalışıyor olabileceğini unutmamak gerekir. çok karmaşık bir ortam oluşturan bir dizi kapsayıcı.

Piyasada oldukça az sayıda yazılım, kapsayıcı ve işletim sistemi test aracı vardır, ancak kuruluşunuzun kod geliştiren, bakımını yapan ve dağıtan kendi BT departmanı yoksa, muhtemelen gerekli test ve inceleme çalışmalarını yetkin bir kuruma yaptırmayı düşünebilirsiniz.



Uygulama güvenliği ve kodlama gereksinimleri hakkında daha fazlasını okuyun




Source link