Güvenli Yazılımlar ve Dikkat Edilmesi Gereken Konular

Daha Güvenli Yazılımlar İçin Dikkat Edilmesi Gereken Konular

Profesyonel ve Korsan Yazılımlar    Türkiye şartları ele alındığında, pek çok kullanıcı korsan yazılım kullanmanın suç olduğunu bildiği halde çeşitli nedenlerle bu yazılımları yasal yollardan elde etmemektedir. Yazılım ücretlerini pahalı bulmanın yanında, bu iş için nasıl bir emek sarf edildiğini bilmemekte bunun nedenlerinden biri olabilmektedir.    ICD-BSA araştırma raporundan elde edilen bilgilere göre;    “Bugün açıklanan çalışmanın sonuçlarına göre, Türkiye’de %66 oranında olan korsan yazılım kullanımının %56’ya çekilmesi, bilişim teknolojileri sektöründe ek 3.000, tüm sektörlerde ek 36.000 istihdamın açılmasına, ekonominin 4 yıllık bir süreçte 1 milyar dolar büyümesine ve yıllık 600 milyon dolar ek vergi kazancının elde edilmesine katkıda bulunur.

    Yine aynı raporda Türkiye’de korsan yazılım ile ilgili olarak ciddi bir saptama da aşağıdaki şekildedir;    “IDC’nin bulgularına göre 2.4 milyar dolar değerindeki Türkiye’deki bilişim teknolojileri sektörü, şu anda 6.600 kuruluşu içermekte, 50.000 kadar insana iş imkanı sağlamakta ve vergi gelirlerine yıllık 650 milyon dolar katkıda bulunmaktadır. Çalışmanın sonuçlarına göre Türkiye’deki korsan yazılım kullanımında 2006-2009 yılları arasında yüzde onluk bir düşme aşağıdaki sonuçlara yol açabilecektir:

Türkiye’deki bilişim teknolojileri sektöründe öngörülen büyümenin 2009’da %105’ten %120’ye yükselmesiyle sektörün 5.3 milyar dolarlık değere ulaşması, Bilişim teknolojileri sektöründe ek 3.000 yüksek gelirli istihdam olanağı, Toplam 4 yılda Türkiye’nin gayrisafi milli hâsılasına 1 milyar dolar ek katkı, İhtiyaç duyulan devlet hizmetlerini destekleyecek yıllık 600 milyon dolar ek vergi geliri.

Bu bilgileri göz önüne alırsak, güvenlik ile ilgili bilgileri ele almadan önce, korsan yazılımlar hakkında bazı detayları ele almak çok daha iyi olacaktır.    Çeşitli bölgelere göre farklılık göstermekle birlikte bugün Avrupa’daki kullanıcıların neredeyse yarısının korsan yazılımlar kullandığını söylemek mümkündür. Hatta Asya’daki yazılımların neredeyse %90’ı korsan yazılımlardır. Bu yüksek oranları göze aldığımızda dünya çapındaki yazılım üreticilerinin her geçen gün güvenliğe önem vermesinin ve korsan yazılımlar konusunda çeşitli girişimler yapmasının nedeni kolayca anlayabiliriz.    Aynı zamanda yazılım geliştirmek, ciddi bir zaman, ekip çalışması, çeşitli test ve kontrol süreçleri gibi aşamalar gerektirdiğinden dolayı maliyetli bir iş olarak değerlendirilebilir. Bu nedenle korsan yazılım kullanımı yazılımların maliyetlerini de arttırmaktadır. Yapılan istatistikler sonucu ucuz yazılımların yasa dışı kopyalanmadığını (kopyalansa dahi çok küçük miktarlarda olduğunu) göstermektedir.    Aynı zamanda bir şeyi baştan kabul etmek gerekir ki, hiçbir yazılım tamamen güvenli değildir. Nasıl ki, her kapı bir şekilde açılabiliyorsa, her yazılım veya her kod da bir şekilde kırılabilecektir. Kaldı ki, buraya kadar ele aldıklarımın işin sadece yazılım ile alakalı olan kısmıdır. Ancak güvenlik kavramı değerlendirildiğinde, donanımın da güvenli olmasının yanında onu izinsiz kopyalamaya veya kullanmaya karşı korumak yetmemektedir. Tüm bunların haricinde, kaynak kodunuz diğer kişi veya kurumlar tarafından elde edilememeli, güvenlik mekanizması bir şekilde aşılsa dahi ihtiva ettiği bilgiler anlaşılamamalı (veya anlaşılır bir hale gelmesi için uzun zaman gerekmesi), TCG tarafından konmuş Güvenilir Bilişim kavramına göre; bütünlük, erişilebilirlik, gizlilik ve kurtarılabilirlik gibi esaslara sahip olmalıdır.    Bu esasları incelediğimizde;    Uygulamanın bir değişime uğramadığını yani kendi standart halini koruduğunu ve veriye sadece yetkisi olan kişi tarafından erişim sağlanması, erişimi olmayan kişinin bu veriye kesinlikle erişememesini, ayrıca uygulamanın tamamının veya bir kısmının istenildiği zaman kullanılabilir olması gerektiğini ve veri kayıplarında verilerinin kurtarılması, düzenli olarak yedeklenmesi gibi diğer durumları içermesi gerektiğini görmekteyiz.    Ayrıca profesyonel yazılımlar incelendiğinde; yazılım üreten ekip hakkında bilgiler, teknik destek ve yardım seçenekleri, kurulum ile ilgili bilgiler, sistem gereksinimleri, lisans sözleşmesi ve lisanslamanın nasıl yapılacağı, uygulamanın sürüm bilgileri gibi çeşitli bilgilerde yer almaktadır.    Güvenlik Uygulamalarına İlişkin Yöntemler    Mevcut yapılar incelendiğinde lisanslama için oldukça farklı seçeneklerin kullanıldığı ve bu lisanslama işlemlerinin dışında korsan yazılım kullanımını engellemeye yönelik olarak ise bazı tedbirler alındığı görülmektedir. Lisanslama kısmını bir kenara bırakacak olursak, yazılımların korsan olarak kullanımı için aşağıdaki 3 seçeneğin en sık olarak karşımıza çıkanlar olduğunu görmekteyiz.

Lisans Anahtarı Lisans Anahtarı – Ürün Kimliği İlişkisi Program Aktivasyonu

1-Lisans Anahtarı:    Bu yöntemde genellikle ürünle birlikte, ürünü tam sürüm olarak kullanabilmeniz için bir Lisans Anahtarı sağlanmaktadır. Bu anahtar programa tanıtılmadığı sürece, yazılım ya hiç çalışmamakta ya da çalışsa dahi bazı özellikleri kısıtlı tutularak tam kullanımı engellenmektedir. Microsoft Office gibi programları bu sınıfa dâhil edebiliriz. Ancak bu işlem programın illegal olarak kopyalanmasını ve kullanılmasını engellememekten uzaktır. Yazılımı içeren CD kopyalandığı ve Lisans Anahtarı da bilindiği sürece uygulama tam sürüm olarak kullanılabilmektedir.

2-Lisans Anahtarı – Ürün Kimliği İlişkisi:    1. yöntem göstermektedir ki, lisans işlemi için daha kişiye özel bir yöntem kullanılmalıdır. Bu yöntem incelendiğinde Ürün Kimliğine karşılık gelecek bir anahtar ile kişinin bilgisayarında değişmez (ya da değişme olasılığı çok az olan) bilgiler ile eşleşmesi istenmektedir. Örneğin NET’in bize sağladığı Systemm.Management namespace‘ini kullanarak o bilgisayara ait HDD Seri Numarası, MAC Adresi, Ses Kartı, Ana Kart gibi çeşitli bilgilere ulaşabiliriz. Başka bir deyişle uygulamayı kullanan bilgisayar değiştiğinde, Lisans Anahtarı’da değişeceğinden dolayı yeniden lisanslama gerekecektir.

3-Aktivasyon:    Bu yöntemde ise, kişi ürününü tam sürüm olarak kullanabilmek için üretici firmanın web sitesi, müşteri hizmetleri merkezi gibi çeşitli yollarla ürününü aktive etmesi gerekmektedir. Örneğin Internet Explorer 7.0 sürümünün kurulum dosyasını bir şekilde temin etseniz dahi kurulum işlemi sırasın Microsoft Web Sitesi aracılığı ile kullandığınız Windows kopyasının lisanslı olup olmadığı bilgisi sorgulanmaktadır. Eğer lisansız Windows kullanıyorsanız bu kuruluma devam etmeniz engellenmektedir. Bu yöntem korsan yazılımı büyük ölçüde engellese ve müşteri takip kabiliyetini arttırsa bile, özellikle web sitesi aktivasyonu gibi yöntemler kırılabilmektedir.

Daha Fazla Ne Yapılabilir?

Lisans Anahtarı için karmaşık matematiksel fonksiyonlar kullanın Uygulamanız için bir aktivasyon sistemi (örnek: W.G.U) geliştirin IF yapısını kullanarak Lisans Anahtarının doğru olup olmadığını kontrol etmekten kaçının (pek çok uygulama bu şekilde kırılabilmektedir. Basit bir Assembly editörü ile bu işlem ters çevrilebilmektedir) Bunun yerine kullandığınız programlama dilinin desteklediği farklı bir karar yapısını kullanın Kontrol edeceğiniz Lisans Anahtarını RAM’de bekletmeyin (Lisans Anahtarının girileceği form açıkken girilmesi gereken anahtarı hesaplayıp bir değişkende tutmayın) RAM okuyan bazı programlar ile buradaki lisans anahtarı kolayca görüntülenebilir Aynı aktivasyon kontrolünü yapacak birden fazla fonksiyon yazın ve bunları rasgele zamanlarda kullanın Sonuçta ürün lisanslansa bile buna ait bilgi bilgisayarda herhangi bir yerde depolanmalıdır. Ürünün lisanslı olduğuna dair bilgiyi parçalayarak bilgisayarın farklı bölümlerinde barındırın (bir kısmı Registry üzerinde dururken, bir kısmının File System’de yer alması gibi) Doğrulama algoritmanızı belirli aralıklar ile değiştirin Sürüm bilgilerini mutlaka kontrol edin Lisans kontrolü genellikle uygulama çalışmadan önce yapılır (eğer lisanslı ise uygulama çalışır) Bu kontrolü başlangıçta yapmak zorunda değilsiniz. Bunu rasgele zamanlarda yapın. Örnek bir seferinde program çalıştıktan 2sn sonra kontrol ederken, başka bir seferde program çalıştıktan 3dk sonra gibi Çeşitli Disassembler, Reverse Engineering gibi tekniklerin olduğunu unutmayın. NET dilleri derleme esnasında MSIL denilen ara dile çevrilmektedir. Uygulamanızın dağıtımını yapmadan önce kodlarınızı Thinstall gibi 3rd Party araçlar ile anlaşılması zor hale getirin. Yazılımınızın dağıtımını yapmadan önce bunu tescil ettirin. Unutmayın ki, uygulamanızı tescil ettirebilmek için yazılımınızı yasal yollardan elde ettiğiniz editör ile üretmek zorundasınız SNK gibi lisans dosyaları oluşturun Eğer imkânınız varsa, yazılımınızdaki muhtemel açıkları bulabilmesi için bir arkadaşınızdan (veya konuyu bilen birinden) yardım alın Olası mantık hatalarını en az seviyeye indirmek için kodlarını sistematik olarak küçük parçalara bölün

Tekrar hatırlatmak gerekirse hiç bir yazılım için tam anlamıyla güvenli diyemezsiniz. Ancak bu yazılımınızı sokaktan geçen adamın görebilmesi anlamına gelmemektedir. Yazılımlarını daha zor kırılabilir (hatta kötü niyetli kişinin kırmaya çalışırken sıkılması ve vazgeçmesi sağlayabilirsiniz J) hale getirebiliriz.

The Kaos

Döküman Arama

Başlık :

Kapat