Güvenlik

Uygulama Güvenliği ve Kendini Virüslerden Koruyabilen Yazılımlar


Bilgisayar güvenliği, ilk virüs yazılımlarının ortaya çıkması ile birlikte önem kazanmıştır. Başlangıçta her virüs için ayrı yöntemler geliştirilirken, şu anda bu işi merkezi bir uygulama ile yapan yazılımlar hayatımıza girmiştir.


 


Gelişen programlama teknikleri, karmaşık işlemcilerin kullanılmaya başlanması ve en önemliside gelişen bu teknolojilere uygun virüsler yazılması, merkezden kontrol sistemi ile çalışan güvenlik yazılımlarının yetersiz ve hantal hale getirmiştir. Bu gelişmeler,  yazılımcıları yeni nesil güvenlik programları geliştirmek zorunda bırakmakta ve yeni arayışlara sürüklemektedir.


 


Bu konuyu tahlil ettiğimizde sorunun merkezden bileşenlere doğru denetim yerine, her bileşenin kendi kendisini koruyarak tüm sistemi güvenliğe alması gerektiği sonucu çıkartılabilir. Aynı zamanda bu bileşenlerin açık kapılar bırakmaması için tersine mühendisliğin de önüne geçilmesini sağlayacak bir teknoloji üzerinde çalışmaya başladık. Bu düşündüklerimiz, dünyada başka yazılımcıların da kurguladığı hatta 1996 yılından beri üzerinde çalışma yürüttükleri bir konuydu.


 


Uygulama (Nesne) Güvenliği


 


Eğer ki bir sistemde bulunan ve çalışan uygulamalara kendi farkındalıklarını öğreteceksek nereden ve nasıl başlamalıyız? Bu konu üzerinde uzun yıllar Ar-Ge çalışması yaptıktan sonra temel bileşenlerin her noktasını şifreleyecek, uygulamayı önce kendi üzerinde denetleyebilecek, gerektiğinde onarabilecek ve daha sonrada bunu kullanıcının yönetimine bırakacak sistemi geliştirdik.


 


Kendini Koruyan Programlar Hazır! Ama Nasıl?


 


Evet, kendi kendini koruyan yazılımlar hazır. Bunun nasıl gerçekleştirildiğine buyrun beraber bakalım.


 


Eklendiği uygulamaya, kendi kendini virüslere karşı koruma, anti-crack, anti-hack, anti-tracing, anti-debug ve anti-disassamler özellikler katan bu teknolojiye “Antijen” ismini verdik.


 


Antijen; hedef programa bir “ekleyici” sayesinde enjekte edilir. Bu işlem birkaç yüz mili saniyeden daha uzun sürmez. Ekleme işleminden hemen sonra koruma başlamış olur. Program çalıştırılmak istenildiğinde Antijen, uygulamadan önce kontrolleri devralır, gerekli denetimleri yapar ve bir sorun oluştuğunda türüne göre gerekli onarım/engelleme işlemlerini başlatır. Bu işlemlerin donanım ve yazılım kaynakları üzerinde fazladan hiçbir yükü de yoktur.


 


“Antijen gibi bir uygulamaya neden ihtiyaç duyulur?” diye düşündüğümüzde aklımıza ilk gelenleri söyleyelim; Antijen; yapı ve nitelik bakımından ele alındığında son kullanıcıdan ziyade yazılım geliştiriciler için tasarlanmıştır. Bir yazılım geliştiricinin en büyük korkusu ürününün içerisinde barındırdığı yöntemlerin başkaları tarafından öğrenilerek rakiplerinin oluşması ya da bu yol ile maddi yönden zarara uğramaktır. Hiçbir uygulama bunlara karşı geliştirilmiş yöntemler içermezler. Antijen; yazılım geliştiricilerin her türlü seçme, ekleme, çıkarma yoluyla uygulama bilgileri değiştirmenin engellenmesi ihtiyaçları düşünülerek tasarlanmıştır ve şu ihtiyaçlara tam cevap verir:


 



1. Tersine mühendisliğin engellenmesi (reverse engineering),


2. Yazılım kodlarının elde edilmesinin engellenmesi (disassembly),


3. Herhangi bir şekilde yapılacak yönlendirme ve değişikliklerin engellenmesi (crack, patch),


4. Uygulamanın adım adım çalıştırılarak incelenmesinin engellenmesi (tracing),


5. Çalışma anında inceleme ile çözümlemenin engellenmesi (debugging).


6. Virüsler gibi zararlıların uygulama bütünlüğüne yönelik tehditlerinin engellenmesidir.


 


Antijen ve Uygulamayı Koruması Hakkında Teknik Detaylar


 


Yukarıda okuduklarımızın teknik açıklamalarını sanırım merak ediyorsunuzdur. Şimdi size, bugün var olan ve gelecekte yazılabilecek her virüse karşı kendi kendini hiçbir güvenlik yazılımı olmadan koruyabilecek “Antijen” teknolojisinin teknik anlatımını sunuyoruz. 


 


Antijen Teknolojisi


 


Bu teknoloji ekleyicisi sayesinde sonradan uygulamalarla bütünleştirilmektedir. Bütünleştirme işlemi oldukça karmaşık bir çok işlemden oluşmaktadır. Çünkü: derlenmiş uygulamalar kaynak kod haline hiç benzememektedir ve bir bütünlük sergilemektedir. Bu bütünlüğü etkileyecek herşey uygulamanın bozulmasına sebep olacaktır. Antijen; benzer uygulamaların kullandığı yöntemlerden farklı olarak ne uygulama verilerini kapsamaktadır ne de sonuna eklenip yordam giriş noktasını etkilemektedir. Bu yöntemler etkili gibi görülseler de uygulamaların özgün yapısıyla tam bütünleşememektedirler. Oysa Antijen, uygulamaların ilk bölümüne yerleşerek tam bütünleşmeyi sağlamaktadır.


 


 


image001


Antijen Ekleyici Mimarisi


 


Diğer ekleyiciler virüslü uygulamalara da uygulanabilirken Antijen Ekleyici sahip olduğu zararlıların tespitini sağlayan Yapay Zeka sayasinde bu sakıncaları da tamamen önlemektedir. Böylelikle; benzer koruma yazılımlarının anti-virüsler tarafından zararlı olarak algılanma sakıncasını taşımamaktadır.


 


image002


Yapay Zeka Mimarisi


 


Antijen; yazılım geliştiricilere geliştirilebilir işlevler sunarak etkinliğini artırmayı amaçlayan yazılım ortamı da sunar. Böylelikle yazılım geliştiriciler kendi tecrübe ve bilgilerini mevcut Antijen güvenliği ile birleiştirierek çok da ha etkili güvenlik yöntemleri geliştirebilirler.


 


Antijen; uygulamayı oluşturan her yordam ve alt yordamlarının “Antijen Vekil” adı verilen bir simulator üzerinde çalıştırılmasını sağlayarak hem şifreli verilerin daha güvenilir olmasını sağlamakta hem de aynı anda yalnızca bir tane yordam ve alt yordamının çözümlenmesini sağlayarak güvenilirliğini artırmaktadır. Bu simülatör üzerinde yordamların güvenliğini sağlamak amacıyla bir çok denetim ve düzeltme işlemleri de bulunmaktadır. Bu sayade uygulama güvenliği üst seviyeye çıkarılmıştır.


 


Antijen Uygulamaları Nasıl Koruyor?: Uygulamalar farklı işlevleri ve anlamları olan bazı bölümlerden oluşur. Bu bölümler hemen her uygulama için aynı olmakla birlikte amacına yönelik farklı bölümler de içerir. Şimdi bu bölümleri ve Antijen’in nasıl koruduğunu tek tek inceleyelim:




Kod Blokları Bölümü (Code Section): Uygulamaların çalıştırılabilir verilerinin bulunduğu bölümdür.


 


Uygulamaların kalbi de denilebilir ve tehditlerin doğrudan hedefidir. Bu bölüm güvenliğinin sağlanması amacıyla Antijen tarafından şifrelenir. Gereksinim duyulduğunda Antijen “Vekil Çalıştırıcısı” adını verdiğimiz simülatör devreye girer. Gerekli denetimler yapılarak şifreler çözülür ve burada işletilir. Bu işlem sırasında gerekli denetimler yapılarak güvenlik sağlanır. Çalıştırma işlemi bittikten sonra çalıştırılabilir bölümler silinir. Böylece fiziki veriler hiç çözümlenmeden işlem anında dinamik olarak oluşturulup çalıştırılırlar.



 


image003


Antijen Mimarisi




Veri Blokları Bölümü (Data Section): Uygulamanın veri yapısını içeren bölümüdür. Uygulama tarafından tanımlanmış ve uygulamaların çalışmasını etkileyecek bütün veriler bu bölümde bulunur. Uygulama veri blokları Antijen tarafından tamamen şifrelenmiştir. Bu bölümlerin çözümlenmesinden Antijen Veri Yöneticisi sorumludur. Bu işlemler sırasında gerekli denetimler de yapılarak veri güvenliği sağlanmaktadır.


 


image004


 


Antijen Veri Güvenliği Mimarisi



Arabirim Bağlantı Bölümü (Import): Uygulamaların en önemli bölümüdür. Arabirim bağlantı; uygulamanın dış ortamlarla yönlendirilerek bütünleşmesinin sağlandığı alandır. Veri ve uygulama güvenliğini etkileyecek birçok değişiklik bu alanda yapılacak değişikliklerle sağlanmaktadır. Bu bölüm durağan ya da devingen değiştirme ve yönlendirme yöntemlerine tamamen açık olduğundan ve uygulamanın çalışmasını doğrudan etkilediğinden çok önemlidir. Antijen teknolojisi bunları önlemek için bu alanı tamamen denetimine alır. Uygulamanın ihtiyacı olan dış ortam bileşenleri ve taşıdığı yordamlara erişimi denetleyerek güvenliği sağlar. İşlemin her anında gerek değişiklikler gerekse durağan ya da devinden değiştirme ve yönlendirme yöntemlerini anında fark ederek gerekli işlemleri başlatır. Ayrıca dahil edilen yöntemlerin çalıştırılmasını doğrudan kendi üzerine yönlendirerek (Antijen simülatörü) her işlemlerin anının denetimini ve güvenirliğini artırır.


 


image005


Antijen Arabirim Bağlantı Güvenliğ Mimarisi


Uygulama Kaynakları Bölümü (Resource): Uygulamanın kaynaklarını içeren bölümler tamamen şifrelenmiştir. Bu bölümlerin çözümlenmesinden ve doğruluğunun denetlenmesinden Antijen Kaynak Yöneticisi sorumludur. Bu işlemler sırasında gerekli denetimler de yapılarak veri güvenliği sağlanmaktadır.

 


image006


 


Antijen Kaynak Yöneticisi Mimarisi


 


Uygulamanın Kendini Onarması: Antijen denetimlerı sırasında herhangi bir bozulma ve değişiklik algıladığında devreye girmektedir. Bu işlem karmaşık bir çok işlemden oluşmaktadır, devreye girdiğinden herhangi başka bir işlem ya da uygulama (debugger) tarafından fark edilemez ve önlenemez.


Antijen’in çalışma mantığı ve teknik anlatımlarında gördüğünüz gibi bu tür güvenlik sistemleri çok yakında mantar gibi türeyecektir. Kendi kendini koruyan ve kendisinin incelenmesine izin vermeyen akıllı yazılımlar zaman içerisinde geliştirilerek basitten karmaşığa, özelden genele, nesneden sisteme doğru yayılacaktır. Bu konuda da çalışmalarımız devam etmektedir ve testlerimiz bittikten sonra onları da sizlerle paylaşacağız.

 

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu