|
Solucanlar ve virüsler, günümüz bilgi sistemlerini farklı açılardan tehdit etmektedir. Bilgi sistemi verimliliğinin azalması, veri casusluğu, haksız rekabet, ucuz reklam, bilgi suçlarının işlenmesi gibi birçok amaçla günümüzde bu tür yazılımlar internet ortamında bulunmaktadır. Kullanıcı etkileşimi gerektirmemesi ve gerçek bir açıklığı kullanarak kendi kendine hızlı şekilde yayılabilmesi dolayısıyla solucanlar virüslere göre daha tehlikeli olarak değerlendirilmektedir. Polimorfik solucanlar, her örneğinde solucan kodunun görüntüsünü değiştirmesi dolayısıyla bilinen imza tanıma yöntemleriyle tespit etmesi oldukça güç olan özel bir solucan alt kümesidir. Bu makalede polimorfik solucanların tespitine yönelik ağ tabanlı imza oluşturmayı hedefleyen çalışmalar anlatılmıştır.
POLİMORFİK SOLUCAN TANIMI
İşletim sistemi ve uygulama yazılımı açıklıkları Truva atları, virüs, solucan(worm) gibi zararlı yazılımlar tarafından kullanıldığında sistemlere ciddi zararlar verebilmektedir. Symantec tarafından yayınlanan yıllık tehdit raporuna göre bu zararlı yazılımlar arasından solucanlar 2006 yılının birinci ve ikinci yarısında toplam zararlı yazılımların %52 ve %75'ini oluşturmuştur. Solucanlar, kendi kendine yayılma özelliği olan, virüslerin aksine kendisini başka bir programa eklemesi gerekmeyen ve yayılmak için kullanıcı etkileşimine ihtiyaç duymayan yazılımlardır. Bu sebeple virüslere göre çok daha hızlı yayılabilmektedir. Bu sebepledir ki Nimda, CodeRed ve daha birçok solucan 15 dakika gibi kısa bir sürede internet sistemindeki milyonlarca konağa yayılabilmiştir. Solucanlar işletim sistemi ve uygulama yazılımı açıklıklarını kullanarak sistemlere nüfus etmektedir. Nüfus edilen sistemin ağ kaynakları kullanılarak diğer sistemlere yayılmaktadır. Polimorfik solucanlar, solucan ailesinin özel bir kümesidir. Polimorfik kod genel olarak, çalışan yazılımın aynı tutulmasına karşılık her kopyada farklı görüntüye sahip yazılım olarak tanımlanmaktadır. Benzer olarak polimorfik solucan, her solucan kopyasında farklı bir örüntüye sahip olan solucandır. Bu sebeple polimorfik solucanların basit örüntü tanıma yöntemleriyle başarılı şekilde tespit edilmesi mümkün değildir. Öte taraftan her polimorfik solucan örneğinde aynı olan kod parçaları da bulunmaktadır.
Şifreleme, polimorfik kod oluşturmak için kullanılan en yaygın yöntemdir. Önceden de bahsedildiği gibi tüm solucan kodunun şifrelenmesi mümkün değildir. Solucan kodunun çalışabilmesi için değişmeden bırakılması gereken parçalar mevcuttur. Bu değişmeyen parçalar genel olarak polimorfik kodun şifresini çözmek için kullanılacak program parçası ve bulaşılan sistemi şifre çözme programına yönlendirmek için kullanılan açıklık bilgisidir.
Polimorfik solucanlar ve polimorfik virüsler, kendi amaçlarına yönelik zararlı kod yazıp yaymaya çalışanlar için heyecan veren bir konudur. Tespit edilmesi ve engellenmesi zor olduğu için işin uzmanları tarafından tercih edilmektedir. Bilgi sistemlerinde büyük risk oluşturan bu tehdidin tespit edilmesi ve engellenmesi de aynı şekilde bilgi güvenliği araştırıcıların dikkatini çekmiştir.
Tipik bir polimorfik solucanın mantıksal yapısı dört bölümden oluşmaktadır. Bunlar aşağıda görüldüğü gibi; şifre çözme programı, şifre çözme anahtarı, şifrelenmiş solucan programı ve açıklık kullanma bölümleridir.
|
Şifre çözme programı
|
Şifre çözme anahtarı
|
Şifrelenmiş solucan programı
|
Açıklık kullanma
|
Şekil 1 - Polimorfik solucan mantıksal yapısı
Polimorfik solucan öncelikle ilgili açıklık sayesinde bulaşacağı sistem üzerinde şifre çözme anahtarını ve şifre çözme programını kullanarak şifrelenmiş solucan programını çözmelidir. Her yeni polimorfik solucan örneğinde farklı bir şifreleme anahtarı kullanılmaktadır. Bu bilgiler ışığında şifre çözme anahtarı ve şifrelenmiş solucan programı kısımlarının her örnekte farklı olacağı açıktır. Şaşırtma(obfuscation) yöntemleri kullanılarak şifre çözme programı da her solucan örneğinde farklı görünecek şekilde oluşturulabilmektedir. Bu durumda solucanın yapısında değişmeden kalan tek parça olarak açıklı bilgisi bulunmaktadır. Mantıksal yapı bu şekilde olsa da, kullanılan protokol ve paket bilgilerinin incelenmesi durumunda her solucan örneğinde aynı olan başka parçalar da bulunabilmektedir. Bu bilgiler kullanılarak imza oluşturulması mümkündür.
ADMmutate[5] ve Clet[6], kullanıma hazır polimorfik kod motorlarıdır. Bu yazılımlar sayesinde istenilen bir kod şifrelenip, şaşırtılmış şifre çözme programı ve şifre çözme anahtarı da eklenebilmektedir. Üretilen her örnekte farklı bir şifreleme anahtarı kullanılmakta ve şifre çözme programı da şaşırtılmaktadır. Yapılan çalışmalar[3] göstermiştir ki Clet, ADMmutate'e göre değişmeyen parçası daha az olan örnekler üretmektedir. Bu polimorfik kod motorları birçok polimorfik tehdit(solucan, virüs) tarafından kullanılmıştır. Bu iki polimorfik kod motoru da şaşırtma tekniğindeki eksikliklerden ötürü farklı örnekler arasında değişmeyen parçalar üretebilmektedir. Pratik olarak henüz gerçekleşmiş olmamasına karşın kusursuz şaşırtmanın yapıldığı varsayımıyla polimorfik solucanlara karşı en kötü durumda bile bir savunma mekanizması geliştirilmesinin hedeflenmesi doğru olacaktır.
Solucan tespitine yönelik farklı yaklaşımlar bulunmaktadır. Solucan saldırıları ağ üzerinden geçen paket bilgisi veya son sistem hafızasında çalışan süreç bilgisi kullanılarak yapılabilmektedir. Aynı zamanda imza tabanlı sistemler olabileceği gibi davranış tabanlı tespit sistemleri de bulunmaktadır. Bu makalede ağırlıklı olarak ağ üzerinden geçen paket bilgisini kullanan imza tabanlı çözümlere yoğunlaşılmıştır.
BAŞLICA AKADEMİK ÇALIŞMALAR
Honeycomb[7], Autograph[8], EarlyBird[9] otomatik solucan imzaları üretmektedir fakat bu ve benzeri tüm çalışmalar, solucanı tekil olarak tanımlamaya yetecek büyüklükte ayırt edici örüntü bulunduğunu varsaymaktadır. Solucan örneklerinde bulunabilecek tek bir özelliğin kullanımı polimorfik solucanlar için uygun değildir. Polimorfik solucan tespit çalışmaları içerik(imza) tabanlı ve davranış tabanlı olarak ikiye ayrılabilir. İmza tabanlı solucan tespit çalışmaları ([3], [4], [10], [12], [13]) solucan paketi içeriğini kullanarak solucan paketlerini tanımaya çalışmaktadır. Davranış tabanlı yaklaşımlar ise ([14], [15], [16]) solucan paketi içerisindeki bilgiyle ilgilenmemektedir. Bu yaklaşımlarda solucanın ağ ve bulaşılan sistem üzerindeki davranışı dikkate alınmaktadır. Ağ üzerindeki anormal davranışlar takip edilmektedir. Solucan tespiti daha önceden belirtildiği gibi ağ tabanlı veya sistem tabanlı yapılabilmektedir. Ağ tabanlı teknikler([3], [4], [15]) solucan henüz son sisteme ulaşmadan uygulanmaktadır. Sistem tabanlı teknikler([10], [12], [13], [14], [16]) ise solucanın bulaşması beklenen son sistemler üzerinde uygulanmaktadır.
İçerik tabanlı saldırı tespit sistemleri genel olarak daha önceden tanımlanmış saldırı imzalarının aranması yoluyla tehditleri tespit etmektedir. Solucan örneklerinde bulunabilecek tek bir ortak imzanın kullanımı polimorfik solucanların tespiti için uygun değildir.([3], [4]) Bu sebeple polimorfik solucanları başarılı şekilde tespit etmek için solucan paketi içerisinde kullanılabilecek tüm bilgileri tespit edip bu bilgilerin ilişkilendirilmesi yoluyla iyi imzalar üretilmelidir.
Polygraph[3] polimorfik solucan tespiti için imza oluşturmayı hedefleyen bir mekanizmadır. Polygraph üç imza ailesi tanımlamıştır. Bunlar birleşim(conjunction), sıralı-jeton(token-subsequence) ve bayes imzalarıdır. Solucan paketi içerisinden imza oluşturulurken kullanılan dizilim parçaları jeton(token) olarak isimlendirilmektedir. Birleşim imzalarında, tanımlı olan imza jetonlarının hepsinin solucan paketi içerisinde sıra önemli olmadan bulunup bulunmadığı kontrol edilmektedir. Sıralı-jeton imzalarında ise, tanımlı olan imza jetonlarının hepsinin solucan paketi içerisinde sıralı bir şekilde bulunup bulunmadığı kontrol edilmektedir. Bayes imzalarında, her jeton için hesaplanmış bir skor değeri bulunmaktadır. Ayrıca karar verme aşamasında kullanılmak üzere tanımlanmış eşik değer(threshold) bilgisi vardır. Diğer iki imza yönteminden farklı olarak bayes imzaları ilgili paketin solucan olma olasılığıyla ilgili bilgi vermektedir. Herhangi bir ağ akışı verildiğinde, paketler içerisinde bulunan jetonlara atanmış değerler toplanmakta ve eşik değer ile karşılaştırılmaktadır. Eğer toplam değer, eşik değerden büyük çıkıyor ise ilgili ağ akışı solucan olarak değerlendirilmektedir.
Hamsa[4], saldırıya karşı koruma, verimlilik ve doğruluk açısından Polygraph'a göre daha iyi sonuç verdiğini iddia etmektedir. Hamsa polimorfik solucanlar için otomatik imza oluşturmayı amaçlayan ağ tabanlı bir sistemdir. Hamsa içeriğe bağlı imzalar oluşturmaktadır. Kullanılan veri parçaları, Polygraph'a benzer olarak protokol çerçevesi bilgisi(ε), açıklık bilgisi(γ) ve solucan içeriği(π)'dir. Suffix array tabanlı bir algoritma kullanılarak, şüpheli akış havuzu içerisinde en az λ oranında bulunması koşuluyla jetonlar tespit edilir. Hamsa solucan imzası, bu jetonların tüm solucan örneklerinde sıra gözetmeksizin bulunan bir alt kümesi olarak tanımlanmıştır. Solucan imzasında bulunmak üzere seçilen ilk jeton, tüm jetonlar arasında yanlış-olumlu (false-positive) oranı en düşük olandır. İlk seçilen jetonla birlikte sıra gözetmeksizin arandığında en düşük yanlış-olumlu değere sahip olan jeton, solucan imzasında bulunacak ikinci jeton olarak seçilmektedir. Diğer jetonlar da benzer şekilde seçilmekte ve solucan imzası oluşturulmaktadır. Bu greedy yaklaşımının, protokol çerçevesi bilgisi(ε) ve açıklık bilgisi(γ) bölümlerinin solucan yazarının kontrolü altında olmadığı varsayımıyla iyi imzalar oluşturduğu ifade edilmiştir.
PADS([12], [13]) içerik tabanlı polimorfik solucan tespit sistemlerine başka bir örnektir. Expectation Maximization[17] ve Gibbs Sampling[18] tabanlı iki algoritma geliştirilmiştir. Hamsa ve Polygrpah polimorfik solucanların değişmeyen parçalarıyla ilgilenirken PADS buna ek olarak belirli bir dağılıma uygun davranan değişken parçaları da dikkate almaktadır.
Polygraph incelendiği zaman görülmektedir ki sıralı-jeton imzaları ortaya koyulan üç imza mekanizması arasında en düşük yanlış-olumlu ve yanlış-olumsuz cevabı vermektedir. Sıralı-jeton imzalarının birleşim imzalarına göre daha düşük yanlış-olumlu oranına sahip olması, jetonlar arasındaki sıranın önemli bir bilgi olduğunu göstermektedir. Diğer tarafta başka polimorfik solucan örneklerinde bu yöntemin kurallarının katı olması dolayısıyla küçük jeton değişikliklerinde yanlış-olumsuz oranının yükselmesi mümkündür. Bayes imzaları her jetonla bağımsız olarak ilgilendiği için diğer iki yönteme göre çok daha esnektir. Solucan içerisinde bulunan jetonlara ait bayes değerlerinin toplamının tanımlanan eşik değerden yüksek olması yeterli olmaktadır. Yapılan test sonuçlarını incelediğimizde söz konusu jetonlarda sadece bir tanesinin söz konusu eşik değerden yüksek olduğu ve diğer jetonların herhangi bir şekilde neticeye katkıda bulunmadığı göze çarpmaktadır. Halbuki bayes değeri küçük de olsa jetonlar arasındaki sıralama da bizim için bilgi taşımaktadır. Verilen sonuçlarda görülmüştür ki bayes imzaları, makale tarafından kötü olarak tanımlanan "en iyi alt dizilim" (best substring) imzasıyla aynı sonuçları vermektedir. Hamsa, Polygraph'da tanımlanan birleşim imzası oluşturma yönteminde değişiklik yapmıştır. En düşük yanlış-olumlu oranına sahip jeton ilk olarak seçilmiş sonra bu jetonla birleşimi durumunda en düşük yanlış-olumlu orana sahip olan jeton seçilmiştir. Diğer jetonlar da benzer şekilde seçilip daha sonra birleşim imzası oluşturulmuştur. Bu Greedy yaklaşım her zaman en düşük yanlış-olumlu orana sahip jetonların seçilmesi esasına dayanmaktadır. Ayrıca birleşim imzası kullandığı için yukarıda bahsedilen jeton sırasının kontrol edilmesinden kaynaklanan yanlış-olumlu performansındaki iyileştirmenin sağlanamaması söz konusudur.
SONUÇ
Polimorfik solucanların tespiti, günümüz saldırı tespit sistemleri için büyük bir tehdittir. Halihazırda kullanılan polimorfik kod geliştirme motorlarının bazı eksikleri dolayısıyla belirli oranda tespit edilebilmelerine rağmen geliştirilmesine kesin gözüyle bakılan mükemmel polimorfik kod geliştirme motorlarıyla beraber bu tehdidin tespit edilmesi daha zor olacaktır. Dolayısıyla özel olarak polimorfik solucanların tespitine yönelik yöntemlerin kullanılması gerekecektir. Bilgi sistemlerinin giderek yeteneklerini artırdığı günümüz ortamında bu bilgi sistemlerini tehdit eden virüs, solucan gibi tehditler de kendilerini geliştirmektedir. Bilgilerimizi korumak adına kullandığımız şifreleme vb. teknolojiler aynı zamanda bilgi sistemlerine saldırmayı amaçlayan kişilerin de işini kolaylaştıracak şekilde kullanılmaktadır. Bilgi sistemlerini tehdit eden virüs ve solucanlardan, kullanıcı etkileşimine ihtiyaç duymayan ve gerçek bir açıklığı kullanarak kendi kendine yayılabilen solucanlar çok daha tehlikelidir.
REFERANSLAR
[1] Symantec Internet Security Threat Report , Trends for July-December 06, Volume XI, Mart 2007
[2] Symantec Internet Security Threat Report , Trends for January 06 - June 06, Volume X, Eylül 2006
[3] J. Newsome, B. Karp, and D. Song, Polygraph: Automatically generating signatures for polymorphic worms, IEEE Security and Privacy Symposium, 2005.
[4] Zhichun Li Manan Sanghi Yan Chen Ming-Yang Kao Chavez, Hamsa: fast signature generation for zero-day polymorphic worms with provable attack resilience. Northwestern Univ., Evanston, IL, USA;
[5] The ADMmutate polymorphic engine. http://www.ktwo.ca/ADMmutate-0.8.4.tar.gz
[6] The CLET polymorphism engine. http://www.phrack.org/show.php?p=61&a=9
[7] C. Kreibich and J. Crowcroft., Honeycomb - creating intrusion detection signatures using honeypots., In Proceedings of the Second Workshop on Hot Topics in Networks (HotNets-II), November 2003.
[8] H.-A. Kim and B. Karp, Autograph: toward automated, distributed worm signature detection., In Proceedings of the 13th USENIX Security Symposium, August 2004.
[9] S. Singh, C. Estan, G. Varghese, and S. Savage, Automated worm fingerprinting, In Proceedings of the 6th ACM/USENIX Symposium on Operating System Design and Implementation (OSDI), Dec. 2004.
[10] V. Yegneswaran, J. Giffin, P. Barford, and S. Jha, An architecture for generating semantic-aware signatures, In USENIX Security Symposium, 2005.
[11] G. Manzini and P. Ferragina, Engineering a lightweight suffix array construction algorithm, Algorithmica, 40(1), 2004.
[12] Y. Tang and S. Chen., Defending against internet worms: A signature-based approach, In Proc. of Infocom, 2003.
[13] Y. Tang and S. Chen, An Automated Signature-Based Approach against Polymorphic Internet Worms, IEEE Transactions on Parallel and Distributed Systems, 2007
[14] M. Christodorescu, S. Jha, et al, Semantics-aware malware detection, In IEEE Symposium on Security and Privacy, 2005.
[15] C. Kruegel, E. Kirda, et al, Polymorphic worm detection using structural information of executables, In Proc. Of Recent Advances in Intrusion Detection (RAID), 2005.
[16] Z. Liang and R. Sekar, Fast and automated generation of attack signatures: A basis for building self-protecting servers, In Proc. of ACM CCS, 2005.
[17] C. E. Lawrence and A. A. Reilly, An Expectation Maximization (EM) Algorithm for the Identification and Characterization of Common Sites in Unaligned Biopolymer Sequences, PROTEINS:Structure, Function and Genetics, vol. 7, pp. 41-51, 1990.
[18] C. E. Lawrence, S. F. Altschul, M. S. Boguski, J. S. Liu, A. F. Neuwald, and J. C. Wootton, Detecting Subtle Sequence Signals: A Gibbs Sampling Strategy for Multiple Alignment, Science, vol. 262, pp. 208-214, Oct. 1993.
[19] R. Perdisci, D. Dagon, Misleading worm signature generators using deliberate noise injection, W. Lee, et al. In IEEE Security and Privacy Symposium, 2006.
Favori olarak ekle (0) | Görüntüleme sayısı: 2677
Sadece kayıtlı kullanıcılar yorum yazabilir. Lütfen sisteme giriş yapın veya kayıt olun. |