bg-blog-articles

Kod İmzalama En İyi Uygulamaları: Yazılım Geliştiriciler için Temel Güvenlik Yönergeleri

Kod imzalama, yazılımınızın dijital pasaportu olarak hizmet vermek için açık anahtar altyapısından (PKI) yararlanır. Dijital imzalar aracılığıyla kriptografik özgünlük ve bütünlük kanıtı oluşturur. Yayıncı olarak kimliğinizi doğrular ve kodunuzun yayınladığınızdan bu yana değiştirilmediğini kanıtlayarak kod bütünlüğünü sağlar.

Kod İmzalama En İyi Uygulamaları

Kullanıcılar yazılımınızı indirdiklerinde, sistem güvenlikleri konusunda size güvenmiş olurlar. Bu güveni bir kez kırarsanız, işiniz biter.


İçindekiler

  1. Donanım Güvenlik Modülleri ile Özel Anahtarları Koruyun
  2. Kod İmzalama Anahtarları için Sıkı Erişim Kontrolleri Uygulayın
  3. İmzalama Süreci Sırasında Kodunuza Zaman Damgası Vurun
  4. Test-İmzalama ile Serbest Bırakma-İmzalama Ortamlarını Ayırın
  5. İmzalamadan Önce Kod Kimlik Doğrulaması ve Bütünlük Doğrulaması Uygulayın
  6. İmzalamadan Önce Kod Üzerinde Virüs Taraması Gerçekleştirin
  7. Anahtarları Döndürün ve Birden Fazla Sertifika Kullanın
  8. Sertifika İptalini Ciddiye Alın
  9. Genişletilmiş Doğrulama Kod İmzalama Sertifikalarından Yararlanma
  10. Kod İmzalama Yönetimini Otomatikleştirin ve Merkezileştirin
  11. Yazılım Tedarik Zincirinizi SSL Dragon ile Güvence Altına Alın

SolarWinds ihlali, kritik yazılım tedarik zinciri açıklarını ortaya çıkardıktan sonra riskler gerçek oldu ve tehlikeye atılan imzalama anahtarlarının meşru yazılım güncellemelerini nasıl silah haline getirebileceğini ve binlerce kuruluşu nasıl tehlikeye atabileceğini gösterdi. Kod imzalamanın en iyi uygulamalarını takip etmek artık her zamankinden daha fazla isteğe bağlı değil; kullanıcılarınızı ve itibarınızı korumak için çok önemli.

Yazılım tedarik zincirinin korunması her ölçekten kuruluş için en önemli öncelik haline gelmiştir. Bu yönergeler, ister tek başına bir geliştirici olun ister kurumsal DevOps boru hatlarını yönetiyor olun, önemli güvenlik önlemlerini uygulamanıza yardımcı olacaktır. İster Windows yürütülebilir dosyalarını, macOS uygulamalarını, Linux paketlerini, ister iOS ve Android için mobil uygulamaları imzalıyor olun, bu ilkeler tüm platformlar için geçerlidir.

Donanım Güvenlik Modülleri ile Özel Anahtarları Koruyun

Senin özel anahtar kod imzalamada her şeydir. Bunu tehlikeye atarsanız saldırganlar kimliğinizle kötü amaçlı yazılım imzalayabilir. Sertifikanız iptal edilir, müşterileriniz güvenini kaybeder ve markanız telafi edemeyeceğiniz bir darbe alır.

Özel Anahtar Güvenliği Neden Kritiktir?

Özel anahtarınızı yazılımınızın güvenilirliğinin ana anahtarı olarak düşünün; kimliğinizi kanıtlayan dijital imzaları oluşturur. Birisi bunu çalarsa, sizden gelmiş gibi görünen kötü amaçlı kodlar dağıtabilir. Sertifikanızı iptal etmeniz, yayınladığınız her şeyi yeniden imzalamanız ve müşterilerinizin virüslü yazılımı yüklemeden önce farkı fark etmelerini ummanız gerekir.

Anahtarları sabit disklerde saklamaya veya sunucular oluşturmaya yönelik geleneksel yaklaşım sorunlara davetiye çıkarmaktadır. Geliştirici makineleri tehlikeye girer. Derleme sunucuları ihlal edilir. Normal donanım üzerinde şifrelenmiş depolama bile anahtarları çıkarılmaya karşı savunmasız bırakır.

FIPS 140-2 Sertifikalı Donanım Çözümleri

Donanım Güvenlik Modülleri (HSM’ler) özel anahtarları kurcalamaya dayanıklı donanımda saklayarak bu sorunu çözer. PKI altyapınızın temel taşı olan HSM’ler, sertifika tabanlı güvenin gerektirdiği güvenlik temelini sağlar. Bu cihazlar, anahtarları sisteminize hiç göstermeden dahili olarak üretir ve kullanır. Bir HSM’yi fiziksel olarak kurcalamaya çalıştığınızda anahtarlar yok olur.

FIPS 140-2 sertifikası burada önemlidir. Seviye 2 fiziksel kurcalama kanıtı gerektirirken, Seviye 3 birisi içeri girmeye çalıştığında anahtarları sıfırlayan aktif kurcalama yanıtı ekler. Çoğu kuruluş için Seviye 2 sağlam bir koruma sağlar. Bu donanım çözümleri Windows, macOS ve Linux geliştirme ortamlarıyla sorunsuz bir şekilde entegre olarak, derleme platformunuz ne olursa olsun anahtarlarınızı korur. Devlet kurumları ve yüksek güvenlikli uygulamalar Seviye 3’ü dikkate almalıdır.

USB tokenlar taşınabilir bir HSM alternatifi sunar. Bunlar yanınızda taşıyabileceğiniz FIPS sertifikalı kriptografik donanımlardır ve bulundurma yoluyla fiziksel güvenlik sağlarlar. Başlıca sertifika yetkilileri, kod imzalama sertifikaları için hem HSM hem de USB token uygulamalarını desteklemektedir.

Ancak, CA politikaları farklılık gösterir ve bunlara göre plan yapmanız gerekir. DigiCert ve GoGetSSL yalnızca 1 yıllık kod imzalama sertifikaları verir ve CA tarafından sağlanan bir HSM ya da kendi donanımınızı kullanabilirsiniz.

Sectigo (Comodo) 3 yıla kadar çok yıllı sertifikalar sunar, ancak daha katı kuralları vardır. Eğer 2 veya 3 yıllık bir sertifika seçerseniz, kendi HSM’nizi kullanmanız gerekir. CA tarafından sağlanan donanım yalnızca 1 yıllık siparişler için kullanılabilir.

Kod imzalamak mı istiyorsunuz? Belirtece ihtiyacınız var. Belirteç yoksa imzalama da olmaz – birisi tüm ağınızı ele geçirse bile.

Veri Güvenliği Hiyerarşisi

Kod İmzalama Anahtarları için Sıkı Erişim Kontrolleri Uygulayın

Ekibinizdeki herkesin üretim imzalama anahtarlarına erişmesi gerekmez. Aslında, çoğu kişi buna sahip olmamalıdır.

Prensip basittir: erişimi olan daha az kişi, daha az saldırı vektörü anlamına gelir. İmzalama izinlerini belirli rollerle sınırlayan rol tabanlı erişim denetimi (RBAC) kurun. QA ekibinizin üretim imzalama erişimine ihtiyacı yoktur. Kıdemsiz geliştiricilerinizin de muhtemelen ihtiyacı yoktur.

Üretim sürümleri için birden fazla imza gerektiren onay iş akışları oluşturun. Bir kişi imzalanması için kodu gönderir, diğeri onaylar ve ancak o zaman gerçek imzalama gerçekleşir. Bu görev ayrımı hataları yakalar ve içeriden gelebilecek tehditleri önler.

Kapsamlı denetim günlükleri tutun. Kimin neyi imzaladığını, ne zaman imzaladığını ve hangi sistemden imzaladığını kaydedin. CA Güvenlik Konseyi’nin Kod İmzalama En İyi Uygulamaları teknik incelemesi, ayrıntılı günlük kaydının olay müdahalesi ve adli soruşturma için gerekli olduğunu vurgulamaktadır. Bir şeyler ters gittiğinde -ve eninde sonunda bir şeyler hep ters gider- tam olarak ne olduğunu bilmeniz gerekir.

Fiziksel güvenlik de önemlidir:

  • USB jetonlarını masaların üzerinde bırakmayın.
  • HSM erişim kimlik bilgilerini düz metin dosyalarında saklamayın.
  • PIN kodlarını yapışkan notlara yazmayın.

Bunlar kulağa çok açık geliyor, ancak normalde sağlam olan güvenliği zayıflatan yaygın sorunlardır.


İmzalama Süreci Sırasında Kodunuza Zaman Damgası Vurun

Burada bir sorun var: kod imzalama sertifikalarının süresi genellikle bir ila üç yıl sonra doluyor. Zaman damgası olmadan, sertifikanızın süresi dolduğunda imzanız geçersiz hale gelir. Kullanıcılar, kodunuzda hiçbir değişiklik olmamasına rağmen güvenilmeyen yazılımla ilgili uyarı mesajları görmeye başlar.

Zaman damgası, imzalama işlemi sırasında bir sertifika yetkilisinin zaman damgası sunucusundan güvenilir bir zaman damgası ekleyerek bunu düzeltir. Bu zaman damgası, sertifikanız hala geçerliyken kodu imzaladığınızı kanıtlar. İmza, sertifikanızın süresi dolduktan veya iptal edildikten sonra bile güvenilir kalır.

Bunu tarihi olan bir noter damgası olarak düşünün. Noter emekli olabilir veya dükkanı kapatabilir, ancak 2020’den kalma belgenizdeki damgası, belgenin 2020’de var olduğunu ve doğrulandığını kanıtlar.

Teknik süreç basittir. İmzalama sırasında, aracınız sertifika yetkiliniz tarafından çalıştırılan bir zaman damgası sunucusuyla bağlantı kurar. Sunucu, kodunuzun imzasına gömülen imzalı bir zaman damgası döndürür. Kullanıcılar herhangi bir platformda (Windows, macOS, Linux, iOS veya Android) imzanızı doğrularken hem imzalama sertifikanızı hem de zaman damgasını kontrol ederler. Bu doğrulama işlemi, sertifikaların süresi dolsa ve güvenlik standartları gelişse bile kod bütünlüğünü zaman içinde korur.

Bu paradan da tasarruf sağlar. Zaman damgası olmadan, sertifikanızı her yenilediğinizde tüm dağıtılmış yazılımlarınızı yeniden imzalamanız gerekir. Zaman damgası ile eski sürümler süresiz olarak güvenilir kalır.


Save 10% on SSL Certificates when ordering from SSL Dragon today!

Fast issuance, strong encryption, 99.99% browser trust, dedicated support, and 25-day money-back guarantee. Coupon code: SAVE10

A detailed image of a dragon in flight

Test-İmzalama ile Serbest Bırakma-İmzalama Ortamlarını Ayırın

Test ortamınız üretim ile aynı imzalama anahtarlarını kullanmamalıdır. Asla.

Test sertifikaları ya kendi kendine imzalanmalı ya da üretim sertifikalarınızdan farklı bir köke zincirlenen dahili bir test sertifikası yetkilisi tarafından verilmelidir. Bu mimari ayrım, test imzalı kodun sürüme hazır yazılımla karıştırılmasını önler.

Her ortam için ayrı imzalama altyapısı kurun. Test imzalama işleminiz daha erişilebilir ve daha az kısıtlayıcı olabilir; geliştiricilerin hızlı bir şekilde yineleme yapması gerekir. Ancak üretim imzalama, bahsettiğimiz tüm güvenlik önlemleriyle sıkı bir şekilde kilitlenmelidir.

Test paketlerini açıkça işaretleyin. Dosya adlarına “TEST” veya “BETA” ekleyin. Farklı ürün tanımlayıcıları kullanın. Test imzalı kodun yanlışlıkla müşterilere dağıtılmasını imkansız hale getirin.

Erişim kontrolleri de önemli ölçüde farklılık göstermelidir. Geliştiricilerin test imzalamaya doğrudan erişimi olabilir. Üretim imzalama için onay iş akışları ve muhtemelen tamamen farklı kimlik bilgileri gerekir.

Test ve Üretim Ortamları

İmzalamadan Önce Kod Kimlik Doğrulaması ve Bütünlük Doğrulaması Uygulayın

Kod imzalama, kod kimlik doğrulaması sağlar – yazılımı kimin yayınladığını teyit eder. Yazılımın güvenli olduğunu teyit etmez.

Bu ayrım önemlidir çünkü tamamını siz yazmamış olsanız bile imzaladığınız her şeyden nihai olarak siz sorumlu olursunuz. Doğrulamadığınız bir kodu imzalamak, borçlunun mali durumunu kontrol etmeden bir krediye ortak imza atmak gibidir.

Herhangi bir şey imzalanmadan önce gönderim ve onay süreçlerini uygulayın. Birinin imzalanan şeyi incelemesini sağlayın. Derleme sunucunuzdaki kodu kaynak kodu deponuzla karşılaştırın. Tam olarak eşleştiklerinden emin olun.

SolarWinds ihlali bize saldırganların derleme işlem hatlarına kötü amaçlı kod enjekte edebileceğini öğretti. Bu saldırı, yazılım tedarik zinciri güvenliğinin önemini vurguladı; her bileşen, bağımlılık ve derleme adımı potansiyel bir saldırı vektörünü temsil ediyor. Doğrulama yapmadan imzalarsanız, altyapınızın her parçasına ve dış kaynaklardan gelen her kod parçasına güvenmiş olursunuz. Bu, yapmak isteyeceğiniz bir bahis değildir.

Mümkün olan yerlerde otomatik kontroller ayarlayın. Geliştiricilerin deponuza kontrol ettiği kod üzerindeki dijital imzaları doğrulayın. Statik analiz araçlarını çalıştırın. Onaylanmış yapıların sağlama toplamlarını oluşturun ve imzalamadan önce bunları doğrulayın.

Her şeyi kaydedin. Birisi imzalanması için kod gönderdiğinde, neyin gönderildiğini, kimin gönderdiğini, kimin onayladığını ve neyin imzalandığını kaydedin. Olayları araştırırken bu denetim izleri çok önemli hale gelir.


İmzalamadan Önce Kod Üzerinde Virüs Taraması Gerçekleştirin

Kod imzalama, yazılımı yayınladığınızı kanıtlar. Kullanıcılar kötü amaçlı yazılım yayınlamayacağınıza güvenir, ancak kod imzalama sertifikaları güvenliği doğrulamaz.

Bu, açık kaynak kütüphaneleri, üçüncü taraf bileşenleri, yüklenici katkıları gibi harici kaynaklardan kod eklediğinizde önemlidir. Hepsini kendi adınız altında imzalıyorsunuz.

İmzalamadan önce her şeyi tarayın. Mümkünse birden fazla antivirüs motoru kullanın. Bilinen kötü amaçlı yazılım imzalarını, şüpheli kalıpları ve olası güvenlik açıklarını kontrol edin. Bu, Windows çalıştırılabilir dosyaları, macOS uygulamaları, Linux paketleri veya iOS ve Android için mobil uygulamalar hazırlıyor olsanız da geçerlidir.

İmzalamadan önce yanlışlıkla kötü amaçlı bir eklentiyi yakalamak kullanıcılarınızı ve itibarınızı korur. İmzalı kötü amaçlı yazılım dağıttıktan sonra bunu bulmak ise sertifika iptali, müşteri bildirimi ve hasar kontrolü anlamına gelir.

Tarama, derleme sürecinize minimum zaman ekler ancak kod bütünlüğü ve özgünlüğü için temel koruma sağlar. İsteğe bağlı değil, zorunlu hale getirin.


Anahtarları Döndürün ve Birden Fazla Sertifika Kullanın

Tüm yumurtalarınızı tek bir sepete koymayın. Her şey için tek bir kod imzalama sertifikası kullanmak tek bir hata noktası oluşturur.

Farklı ürün grupları veya ana sürümler için farklı sertifikalar kullanmayı düşünün. Bir sertifikanın nasıl yönetildiğine dair bir güvenlik açığı keşfederseniz, yalnızca söz konusu sertifikayı iptal etmeniz gerekir. Diğer ürünleriniz güvenilir kalmaya devam eder.

Anahtarları düzenli olarak döndürmek de maruz kalmayı sınırlar. Birisi altı ay önce anahtarınızı ele geçirdiyse ancak o zamandan beri yeni bir sertifikaya geçtiyseniz, mevcut kodu sizin gibi imzalayamazlar. Hasar eski sürümlerle sınırlı kalır.

Bazı kuruluşlar farklı DevOps ekiplerine veya sürüm şubelerine benzersiz sertifikalar atar. Bu, riski dağıtır ve tehlikenin araştırılmasını kolaylaştırır. Bir şeyler ters gittiğinde, tam olarak hangi sertifikanın dahil olduğunu ve hangi sürümlerin etkilendiğini bilirsiniz.

Güvenlik ile operasyonel ek yükü dengeleyen bir rotasyon programı oluşturun. Yıllık veya iki yılda bir rotasyon birçok kuruluş için işe yarar. Yüksek güvenlikli ortamlar üç ayda bir rotasyon yapabilir.


Sertifika İptalini Ciddiye Alın

Sertifika iptali nükleer bir seçenektir, ancak bazen gereklidir.

Özel anahtarınız ele geçirilirse hemen iptal edin. Hasarı değerlendirmek için beklemeyin. Kimsenin fark etmemesini ummayın. İptal edin, sertifika yetkilinizi bilgilendirin ve kontrol altına almaya başlayın.

İptal, bu sertifika ile imzalanmış tüm kodları etkiler. Kullanıcılar uyarılar görecektir. Otomatik sistemler kurulumu engelleyebilir. Zaman damgasının kritik olmasının nedeni budur; zaman damgasından sonra ancak iptalden önce imzalanan koda verilen zararı sınırlar.

Sertifikalarınızı PKI altyapınız içinde dikkatle takip edin. Nerede olduklarını, kimin erişimi olduğunu, sürelerinin ne zaman dolduğunu ve hangi kodu imzaladıklarını bilin. Ölçek büyüttükçe sertifika yaşam döngüsü yönetimi çok önemli hale gelir.

Tehlikeleri prosedürlerine göre sertifika yetkilinize bildirin. İptal konusunda yardımcı olacaklardır ve bildirim gereklilikleri konusunda rehberlik edebilirler.

İhtiyaç duymadan önce bir iptal planına sahip olmak süreci daha az kaotik hale getirir. Adımları belgeleyin, sorumlulukları atayın ve prosedürü uygulayın.


Genişletilmiş Doğrulama Kod İmzalama Sertifikalarından Yararlanma

Genişletilmiş Doğrulama (EV) kod imzalama sertifikaları, standart sertifikalardan daha yüksek güvence sağlayan X.509 dijital sertifikalarıdır. Sertifika yetkilisi bunları vermeden önce daha titiz bir kimlik doğrulaması gerçekleştirir.

EV sertifikaları, FIPS 140-2 Seviye 2 veya daha yüksek standartları karşılayan donanım depolaması gerektirir. Bir EV sertifikası alıp bunu sabit diskinizde saklayamazsınız. Bu zorunlu donanım koruması, anahtarın tehlikeye girme riskini azaltır.

Çoğu EV sertifikası PIN korumalı USB belirteçleri ile birlikte gelir. Kodu imzalamak için hem fiziksel belirtece hem de PIN’e ihtiyacınız vardır. Bu iki faktörlü yaklaşım, yetkisiz imzalamayı zorlaştırır.

Georgia Tech’in Cyber Forensics Innovation Lab tarafından yapılan araştırma, EV imzalı yürütülebilir dosyaların test edilen kimlik avı saldırılarının %99,99’una karşı koyduğunu, standart imzaların ise %90’ına karşı koyduğunu ortaya koymuştur. Windows, macOS gibi işletim sistemleri ile iOS ve Android gibi mobil platformlar EV imzalarını tanır ve kullanıcılara gelişmiş güven göstergeleri gösterir. Gelişmiş güven göstergeleri ve titiz inceleme ölçülebilir bir fark yaratmaktadır.

EV sertifikalarını seçin Maksimum güvene ihtiyaç duyduğunuzda – amiral gemisi ürünler, yaygın olarak dağıtılan yazılımlar veya hassas verileri işleyen uygulamalar. Ekstra maliyet ve yönetim yükü, gelişmiş güvenilirlik ve güvenlikle karşılığını verir.


Kod İmzalama Yönetimini Otomatikleştirin ve Merkezileştirin

Manuel sertifika yönetimi, birden fazla ekibin sürekli olarak kod gönderdiği DevOps ortamlarında ölçeklenemez.

Sertifika yaşam döngüsü yönetimi (CLM) çözümleri, CI/CD işlem hatlarıyla entegre olurken kontrolü merkezileştirir. Sectigo Certificate Manager ve AppViewX CERT+ gibi platformlar, özellikle kod imzalama iş akışları için tasarlanmış kurumsal düzeyde CLM özellikleri sağlar. Geliştiriciler, doğrudan anahtar erişimi olmadan dijital imzalar oluşturmak için self servis erişim elde eder. Güvenlik ekipleri, tüm imzalama faaliyetlerinde görünürlüğü korur ve politikaları uygular.

Bu platformlar sertifika envanterini, son kullanma tarihlerini ve kullanım modellerini takip eder. Merkezi yönetim, özellikle kod tabanınıza birden fazla ekip ve yüklenici katkıda bulunduğunda, yazılım tedarik zinciri güvenliği için gerekli hale gelir. Yenilemeleri otomatikleştirir ve denetimi kolaylaştırır. Hangi sertifika ile neyin imzalandığını bilmeniz gerektiğinde, bilgiler oradadır.

Derleme sistemleriyle entegrasyon, geliştiricilerin sertifika ayrıntıları hakkında düşünmesine gerek olmadığı anlamına gelir. Kod gönderirler, işlem hattı uygun sertifikayı kullanarak imzalama işlemini otomatik olarak gerçekleştirir ve imzalı yapı diğer uçtan çıkar.

Önceden tanımlanmış iş akışları güvenlik politikalarınızı uygular. Onay olmadan kod imzalanamaz. Test sertifikaları üretim için kullanılamaz. Bir iş birimindeki geliştiriciler başka bir birimin imzalama anahtarlarına erişemez.

Merkezileştirme, geliştiricilerin hayatını zorlaştırmadan güvenliği basitleştirir. İhtiyacınız olan denge budur – geliştirme sürecinize karşı değil, onunla birlikte çalışan güçlü güvenlik.


Yazılım Tedarik Zincirinizi SSL Dragon ile Güvence Altına Alın

SSL Dragon, DigiCert ve Sectigo gibi önde gelen sertifika yetkililerinden kod imzalama sertifikaları sağlar. İster dahili uygulamalar için standart kod imzalamaya, ister yaygın olarak dağıtılan yazılımlar için EV sertifikalarına ihtiyacınız olsun, doğru çözümü seçmenize yardımcı olacağız.

Ekibimiz yazılım geliştiricilerin karşılaştığı güvenlik zorluklarının farkındadır. Kod imzalama altyapınızın sektördeki en iyi uygulamalara uygun olmasını sağlamak için sertifika seçimi, uygulaması ve yönetimi konusunda size rehberlik edebiliriz.

SSL Dragon’un kod imzalama sertifikalarını keşfedin veya yazılım geliştirme ve güvenlik gereksinimlerinize en uygun çözümü görüşmek için ekibimizle iletişime geçin. Yazılım tedarik zincirinizi koruyun; kullanıcılarınız buna güveniyor.

Bugün SSL Dragon’dan sipariş vererek SSL Sertifikalarında %10 indirimden yararlanın!

Hızlı düzenleme, güçlü şifreleme, %99,99 tarayıcı güvenilirliği, özel destek ve 25 günlük para iade garantisi. Kupon kodu: SAVE10

A detailed image of a dragon in flight
Tarafından yazıldı

SSL Sertifikaları konusunda uzmanlaşmış deneyimli içerik yazarı. Karmaşık siber güvenlik konularını açık, ilgi çekici içeriğe dönüştürmek. Etkili anlatımlar yoluyla dijital güvenliğin geliştirilmesine katkıda bulunun.