Ürün güvenliğinde kötü uygulamalar
(cisa.gov)Ürünün kendisinde
Bellek güvenli olmayan diller (C, C++ vb.)
Mümkün olduğunca bellek güvenli diller kullanılmalı ve bu nitelikte olmayan mevcut programlar 2025 sonuna kadar kademeli olarak değiştirilmelidir.
SQL komutlarının doğrudan çalıştırılması
Parametreli sorgular, önceden tanımlı ifadeler veya ORM kullanın.
İşletim sistemi komutlarının doğrudan çalıştırılması
Kullanıcının gireceği içerik komutun kendisi olmamalıdır. Komutu doğrudan çalıştırmak yerine yerleşik kütüphane işlevlerini kullanmalı veya girdiye yalnızca İngilizce harf/rakam/alt çizgi izin verecek şekilde tasarlamalısınız.
Aşırı derecede yaygın parolaların kullanılması
Aşağıdaki yöntemlerle bundan mümkün olduğunca kaçınılması sağlanmalıdır.
- Başlangıçtan itibaren benzersiz bir parola sağlayın.
- Kurulum sırasında kullanıcının güçlü bir parola oluşturmasını zorunlu kılın.
- MFA gibi, parola için süre sınırı belirleyin.
- Güvenilir kimlik doğrulama için fiziksel erişim gerektirin.
- Farkındalık kampanyaları yürütün veya mevcut yöntemden daha güvenli bir kimlik doğrulama yöntemine geçin.
Bilinen zafiyetlerin göz ardı edilmesi
İlgili sayfada yer alan zafiyetlerin "tamamı" önlenmelidir. Yeni bir zafiyet raporlandığında bu sorun zamanında giderilmeli ve düzeltilmiş sürüme güncelleme yapmayan kullanıcılara uyarı verilmelidir.
Zafiyet içeren açık kaynak kütüphaneler
Kullandığınız kütüphanelerle ilgili olarak durumu sorumlu biçimde bildirip katkıda bulunmalısınız. Buna şu önlemler de dahildir.
- SBOM hazırlama: yazılımın hangi kütüphaneleri kullandığını gösterir.
- Bağımlı olunan açık kaynak kütüphaneler için uygulanacak hususlar
- Güvenlik incelemeleri gerçekleştirin.
- Sürekliliği olan, iyi korunan ve iyi bakım yapılan kaliteli projeleri seçin. Bu güvenlik ilkelerine uymak da faydalıdır.
- Bilinen zafiyetler olup olmadığı düzenli olarak araştırılmalıdır.
- Kopyaları üretici önceden elinde bulundurmalı ve doğrulanmamış yerlerden güncelleme yapılmamalıdır.
- Yeni ana sürüme geçmenin veya güvenlik yaması almanın maliyeti hesaba katılmalıdır.
Eğer bir zafiyet ürünü etkilemiyorsa, neden etkilemediği kamuya açık şekilde belirtilmelidir.
Zafiyetli veya bilinmeyen kriptografik algoritmalar (TLS 1.0/1.1, DES, MD5 vb.)
Güncel algoritmalar kullanılmalıdır. Ayrıca NIST rehberine uygun olarak standartlaştırılmış kuantum sonrası kriptografi algoritmalarına da hazırlıklı olunmalıdır.
Kaynak kodunda yer alan gizli anahtarlar
Programın gizli anahtarları güvenli biçimde alabilmesi için Secret Manager kullanılmalıdır. Ayrıca kaynak kodunda gizli anahtar bulunup bulunmadığı da denetlenmelidir.
Güvenlik özelliklerinde
MFA desteğinin olmaması (yalnızca passkey desteklemek de buna dahildir)
Acil servis tıbbi cihazları gibi gecikmenin tehlikeli olduğu durumlar dışında, varsayılan olarak MFA doğrudan sağlanmalı veya harici kimlik doğrulayıcı kullanımına izin verilmelidir. Bu yöneticiler için zorunlu olmalı, yöneticiler de bunu kuruluş içindeki kullanıcılar için zorunlu kılmalıdır.
İhlal kanıtı sunulmaması
- En temel işlev olarak, ayarların değiştirilmesi veya görüntülenmesi, oturum açma geçmişi ve bilgi erişimiyle ilgili günlükler üretilmelidir.
- Bulut sağlayıcıları ise, ek ücret almadan bu günlükleri en az 6 ay boyunca saklamalı ve kullanıcının görebilmesini sağlamalıdır.
Kurumsal süreçler ve politikalarda
CVE yayımlanmaması
Kritik veya büyük etki yaratabilecek zafiyetler derhal açıklanmalıdır.
Zafiyet açıklama yönteminin (VDP) yayımlanmaması
Aşağıdaki gibi politikalar yayımlanmalıdır.
- Kamuya açık test izni
- İyi niyetle çaba gösteren kişiler hakkında hukuki işlem başlatılmayacağına dair taahhüt
- Raporlama için açık bir kanal
- CVD (Coordinated Vulnerability Disclosure) en iyi uygulamaları ve uluslararası standartlar
Raporlanan zafiyetler, risk düzeyine göre önceliklendirilerek zamanında düzeltilmelidir.
(On-premise durumunda) belirsiz destek süresi
Destek süresi açıkça bildirilmeli ve bu süre boyunca güvenlik güncellemeleri sağlanmalıdır.
- KakaoTalk'ta tek tıklamalı exploit
- GN⁺: NIST (ABD Ulusal Standartlar ve Teknoloji Enstitüsü), parolalarda belirli karakter bileşimi zorunluluğunu yasaklıyor
- Beyaz Saray, geliştiricilere C ve C++'tan kaçınmaları ve 'bellek güvenli' diller kullanmaları çağrısında bulundu
- Arabamı hacklemek: Hyundai Ioniq: kaynak kodunda Google ile aranabilir RSA şifresi bulundu
7 yorum
Güvenlik, bir anlık dalgınlık işidir,,! (bunu galiba askerde görmüştüm)
Asla pes etme!
Yine ORM kullanmayalım diye bir muhabbet dönüyordu..
ORM yerine Prepared Statement kullanmanız yeterli.
zzz
Neyin olursa olsun, ilkeler vardır; sadece onlara uymak zordur...
Katılıyorum, beğendim
Kullanıcıdan güçlü bir parola oluşturmasını istemek != özel karakter, büyük-küçük İngilizce harf ve sayı zorunlu olmalı
Sadece yeterince uzun olması bile güçlü bir paroladır.