29 Nisan 2017 Cumartesi

Kaynak kodun açık olması güvenliği nasıl etkiler?

Özgür yazılımla yeni tanışmış olanların aklına ilk gelen sorulardan biri kaynak kodun açık olmasının bir güvenlik sorunu oluşturup oluşturmayacağı oluyor. Madem programın kaynak kodu ortada saldırganlar bunu saldırı için de kullanabilirler, bu da olumlu bir şey değil diye düşünüyor büyük kalabalıklar. Güvenlikle ilgili neredeyse bütün yazılımların kaynak kodlarının açık olması, kullandığımız bütün şifreleme araçlarının kodlarının ortada olması içinizi rahatlatmıyorsa birlikte bakalım durum gerçekten böyle mi?

Algoritmayı gizleyerek güvenlik sağlanamaz

Kriptografi dersinin başlangıcında anlatılan konu budur: bir algoritmayı gizleyerek onu daha güvenli hale getiremezsiniz. Konuyla ilgisi yok ama gizlenmesi gereken şey algoritma değil anahtar olmalıdır. Eğer güvenlik için tek dayanağınız algoritmanın gizliliği olursa o sızdırıldığında (saklanmak isteyen her şey bir gün sızdırılacaktır) algoritmanın yenilenmesi gerekecektir. Bunun ne kadar büyük maliyetli bir iş olacağı düşünülünce açıklıktan başka alternatif olmadığı da görülecektir.

Hatasız yazılım olmaz!

Yazdığınız programın kaynak kodunu ister açın isterseniz kapalı tutun mutlaka hatalar/açıklar içerecektir. Yazılımı tek başınıza sizin yazmış olmanız veya bir grupla geliştirmiş olmanız bu gerçeği değiştirmeyecektir. Ne kadar kalabalık bir geliştirici topluluğunuz olursa hatalar da o kadar azalacaktır. Benzer şekilde test için projeye ayırabileceğiniz kaynak da hataların azaltılmasına olumlu katkıda bulunacaktır. Projenizin kaynak kodlarını geliştirici ekipten başka kimsenin görmesine izin vermezseniz bütün bu yük sizin üzerinizde olacaktır. Halbuki projenizi bir özgür yazılım veya açık kaynak lisansıyla lisanslarsanız kaynak kodlarınıza başkaları da bakıp hataları size bildirebilecek veya daha da iyisini yapıp iyileştirmeleri size gönderebilecektir. Eğer benim projeme kim bakacak diyorsanız kendi endişenizi kendiniz ortadan kaldırmışsınız demektir ama projenizi dışarıdan katkı almaya uygun bir şekilde lisanslarsanız projeye ayıracağınız bütçe ile bedelini ödeyemeyeceğiniz geliştiricilere ve testçilere kavuşabilirsiniz.

Özgür yazılımlara daha çok göz bakar

Yazılımın geliştiricisi değil de kullanıcısı iseniz daha çok kişi tarafından ortaklaşa geliştiriliyor olması ve daha fazla test edilmiş olması sizin için daha az hata barındıran bir yazılım anlamına gelecektir. Neden bir şirketin çalıştırabileceği sınırlı sayıda yazılım geliştiriciye güvenebilirken dünyanın dört bir tarafına dağılmış çok daha büyük kalabalıklara güvenmeyeceksiniz? Hangi şirket bir tarayıcı yaklaşık 5000 kişinin kod göndermesine, yani yazılımın kodlarını okumasına kaynak ayırabilir? Bunu ancak özgür yazılımın gücü sağlayabilir.

Yazılımların hataları çoğunlukla kod okuyarak bulunmaz

Bir projenin kaynak kodlarını okuyup hatasını bulmak tahmin edilenden çok daha zor bir iştir. Elbette yazılımların hataları, açıkları kodları da okunarak tespit edilebilir ama yukarıdaki örneğe bakarsanız yaklaşık 16 milyon satırlık bir projede bunun pek kolay bir iş olmayacağını tahmin edebilirsiniz. Peki yazılımların açıkları nasıl bulunuyor? Belirli koşullar altındaki davranışlarına bakılarak elbette. Neredeyse bütün GNU/Linux dağıtımlarının varsayılan olarak kullandığı kabuk olan bash'in 1989'dan bu yana içerdiği bir hata ancak 2014'de görülebildi. Eğer kodu okuyup açığı tespit etmek sanıldığı kadar kolay olsaydı bu 25 yıldan kısa sürerdi herhalde.

Özgür yazılımların açıkları çok hızlı kapatılabilir

Özgür yazılımlar kullanıcılarına yazılım üzerinde değişiklik yapma ve bu değişikliği dağıtma hakkı verdiklerinden bir yazılım için geçerli bir hata veya açık bulunduğunda onu mutlaka geliştiricinin düzeltmesi gerekmez. Yazılımın geliştiricisini veya ait olduğu firmayı beklemek zorunda kalmazsınız özgür yazılım kullanırken.

Yazılımın kaynak kodlarının açık olması elbette yukarıda saydığım avantajlar için yeterli değildir. Eğer kullanıcılar yazılımı istedikleri gibi çalıştıramıyorsa, değiştiremiyorsa, dağıtamıyorsa veya değiştirdiği halini dağıtamıyorsa yazılım bu getirilerden mahrum kalacaktır. Yani sadece kaynak kodun açık olmasından sihirli bir iyileştirme beklememek gerekir. Bu avantajları bize sağlayan şey özgür yazılımdır.

Hangi Masaüstü Ne Kadar Türkçe Konuşuyor? -10-

Dönem dönem düşen masaüstü ortamlarının çeviri oranlarının çok yükseldiği bir zamanda yazabildiğim için mutluyum. Aşağıdaki rakamlara bakınc...