Geri Dön

Obfuscated JavaScript detection using syntactically and lexically enhanced machine learning

Perdelenmiş JavaScript kodlarının sözdizimsel ve anlamsal yönden iyileştirilmiş makina öğrenmesi ile tespiti

  1. Tez No: 866235
  2. Yazar: EREN KILIÇ
  3. Danışmanlar: DR. ÖĞR. ÜYESİ MEHMET TAHİR SANDIKKAYA
  4. Tez Türü: Yüksek Lisans
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 2023
  8. Dil: İngilizce
  9. Üniversite: İstanbul Teknik Üniversitesi
  10. Enstitü: Lisansüstü Eğitim Enstitüsü
  11. Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Bilgisayar Mühendisliği Bilim Dalı
  13. Sayfa Sayısı: 73

Özet

Son yıllarda internetin yaygın kullanımıyla birlikte web tabanlı saldırılar önemli bir güvenlik sorunu haline gelmiştir. Bu tür saldırılar, kötü niyetli kişilerin web uygulamalarını hedef alarak, kullanıcıların verilerine ve bilgilerine izinsiz erişim sağlamalarını ve çeşitli zararlı faaliyetlerde bulunmalarını amaçlamaktadır. Bu saldırılar hem bireysel kullanıcılar hem de kurumlar için ciddi sonuçlara yol açabilir. Kişisel bilgilerin çalınması, finansal kayıplar, kimlik avıyla dolandırıcılık, itibar kaybı ve hatta hukuki sorunlar gibi birçok zararlı etkisi olabilir. Bu nedenle web saldırılarına karşı güvenlik önlemleri almak ve güvenlik bilincini arttırmak son derece önemli hale gelmiştir. Yazılım güvenliği alanında çalışan uzmanlar ve yazılımcılar zararlı yazılım tespit etme ve önleme sistemleri gerçekleyerek olası problemlerin önüne geçmeyi hedeflemektedirler. Ayrıca antivirüs programları da hem kullanıcıları hem de kurumları kötü amaçlı yazılımlara (virüsler, trojanlar, solucanlar, casus yazılımlar, fidye yazılımları vs.) karşı koruma niyetiyle tasarlanmış araçlardır. Özellikle JavaScript programlama dilinin web yazılım geliştirmesinde son dönemde yakaladığı yükseliş ve popülariteden ötürü JavaScript atakları bilgisayar korsanları tarafından sıklıkla tercih edilen bir yöntem haline gelmiştir. Bu tür atakların, saldırı tespiti ve önleme sistemi tarafından fark edilme ihtimaline karşı, saldırganların zararlı yazılımlarının kaynak kodlarını perdeleme (obfuskasyon) yöntemiyle değiştirildiği geçmişte yapılan siber saldırılarda gözlemlenmiştir. Bilgisayar korsanları kötü amaçlı JavaScript kodlarını çeşitli perdeleme yöntemleri kullanarak karışık hale getirip okunmasını ve anlaşılmasını zorlaştırırlar. Yazılımdaki değişken ve fonksiyon isimlerinin karışık halde yeniden adlandırılması, gereksiz kod satırları ekleme, mantıksal akışı değiştirme, opak ön koşul, dize kodlaması ve anti hata ayıklama gibi teknikler perdeleme işleminde sıklıkla kullanılır. Bu teknikler kullanılarak perdelenen bir zararlı JavaScript yazılımı, güvenlik sistemleri tarafından masum görülebilir ve saldırganın kötü amaçlarını yerine getirmesine vesile olur. Bu yüzden perdelenmiş bir JavaScript kaynak kodu, potansiyel olarak tehlikeli olabilir. Bu durum, JavaScript kodlarının perdelenmiş ya da açık diye sınıflandırma işlemini önemli bir hale getirerek, güvenlik sistemleri tarafından kritik bir görev olarak desteklenmesi gerektiğini vurgulamaktadır.Bu tez çalışması perdelenmiş JavaScript kodlarının sözdizimsel ve anlamsal açıdan analizlerle iyileştiren bir ikili sınıflandırma yapan makina öğrenmesi modeli önerisi içermektedir. Bu bağlamda, çalışmanın daha kolay anlaşılması için öncelikle JavaScript güvenliğinden ve çeşitli ataklarından kapsamlı bir şekilde bahsedilmiştir. Daha sonra, perdeleme kavramı köken olarak incelenip, amaçlarıyla beraber açıklanmıştır. Bunun yanı sıra, litaratürdeki perdeleme yöntemi kullanılarak yapılan JavaScript ataklarıyla ilgili çalışmalar ele alınmıştır. Daha sonra, yaygın olarak kullanılan perdeleme teknikleri detaylı bir şekilde örnekler verilerek incelenmiştir. Bunlara ek olarak, perdelenmiş JavaScript kaynak kodlarının tespitiyle ilgili litaratürdeki çalışmalar avantajları ve sınırlamarıyla beraber tartışılmıştır. Çalışmada makina öğrenmesi yaklaşımı ele alındığı için makina öğrenmesi, ikili sınıflandırma algoritmaları ve doğal dil işleme gibi konular hakkında da bilgi verilmiştir.Çalışmada önerilen model, metodolojik açıdan geniş bir şekilde aşama aşama incelenmiştir. Metodoloji bölümünde ilk olarak Tellenbach vd.'nin çalışmasında sunulan JavaScript perdeleme tespiti modelinden bahsedilmiştir. Bu model 45 farklı öznitelik kullanılarak inşa edilmiştir. Bu özniteliklerden bazıları (betikteki toplam satır sayısı, karakter sayısı binden fazla olan satırların tüm satırlara oranı, toplam karakter sayısı gibi) basit bir dize operasyonuyla, bazıları ise (betikteki fonksiyonlardaki ortalama argüman sayısı, ortalama dize uzunluğu, betikteki toplam dizi erişimi sayısının toplam karaktere oranı gibi) soyut sözdizimi ağacı inşa ederek hesaplanmıştır. Önceki çalışmada önerilen model tanıtıldıktan sonra ilgili modelin üzerine iyileştirme önerilmiştir. Bu iyileştirme temel olarak doğal dil işleme yaklaşımlarına dayanan iki özniteliğin modele dahil edilmesine dayanır. İlk öznitelik JavaScript'de geçen tüm kelimelerin doğal dillerde anlamlı olup olmadığıyla ilgilidir. Temiz kodlama prensiplerine göre yazılım geliştiricileri değişken, fonksiyon ve sınıf isimlerini, kodun takibi ve anlaşılabilirliğini arttırmak için doğal dilde anlamlı sözcükler kullanarak oluşturur. Bu nedenle açık (perdelenmemiş) yazılımlar, perdelenmiş yazılamlara göre doğal dillerdeki anlamlı kelimeleri içermeye daha yatkındır. Bu varsayımın üzerine JavaScript kaynak kodundaki kelimelere yazım denetimi yapılıp, geçerli kelimelerin sayısı toplam kelime sayısına orantılanmıştır. Bu yazım denetiminde özellikle sık konuşulan ve teknolojik açıdan gelişmiş ülkelerin ana dilleri olan İngilizce, Almanca ve Fransızca sözlükler kullanılmıştır. İkinci öznitelikte ise n-gram kelimelerin oranını hesaplanmıştır. N-gramlar, metinleri veya kelimeleri analiz etmek ve dil modelleri oluşturmak için kullanılan bir yöntemdir ve bir metin içerisinde ardışık olarak bulunan n tane kelime veya karakter grubunu ifade eder. Önceki modele yenilik olarak ilave edilen öznitelikler anlamsal analizlere dayalıdır. Ayrıca önceki modelden gelen bazı özellikler sözdizimsel analizlerle ortaya çıktığı için, bu tez çalışmasında önerilen iyileştirilmiş model hem sözdizimsel hem de anlamsal özellikler barındırır. Yenilik olarak sunulan bu modelin oluşturulma adımlarından tez çalışmasında bahsedilmiştir. Bu adımlar veri seti seçimi, veri ön işlemesi, öznitelik çıkarımı ve modelin eğitilmesiyle ilgilidir. Çalışmada ilgili etikleriyle beraber hem perdelenmiş hem de açık JavaScript kaynak kodları içeren, erişime açık bir veri seti kullanılmıştır. Bu veri seti üzerinde daha sonra ön işleme yapılıp, öznitelikler çıkarılmıştır. Bazı öznitelikler soyut sözdizimi ağaçlarıyla, bazıları dizi operasyonlarıyla, yeni eklenen ilk özellik açık kaynak bir sözlük kütüphanesiyle ve son özellik doğal dil işleme modülüyle çıkarılmıştır. Çıkarılan özellikler ilgili etiketleriyle uygun formatta bir dosyaya kaydedilip, bir makina öğrenmesi paket yazılımı kullanılarak eğitilmiştir. Bu paket yazılım, hem kayıtlı dosya formatını desteklediği hem de çeşitli makina öğrenmesi sınıflandırma algoritmaları içerdiği için deney ve sonuçların elde edilmesinde oldukça faydalı olmuştur.Tez çalışması boyunca esas olarak iki farklı deney yapılmıştır. Bu deneylerden ilki yeni eklenen özelliklerden n-gram kelimelerin oranındaki N sayısının seçim problemini çözmek üzere gerçekleşmiştir. Bu deneyde N sayısı parametre olarak kullanılarak parametre optimizasyonu yapılması amaçlanmıştır. Yani, modeldeki bütün öznitelikler sabit tutulup, N sayısı farklı sayı kombinasyonları verilmiştir. Bu kombinasyonlar sırasıyla 3, 4, 5, 3-4, 4-5 ve 3-4-5 gruplarını içermektedir. Deney sonucunda ilgili makina öğrenmesi algoritmasıyla en yüksek doğruluğu 3-gram kelimeler sağlamıştır. Bu yüzden modelin eğitilmesinde yer alan n-gram kelimelerin oranı özniteliğinde, trigram kelimelerin oranının hesaplanması gerektiği ortaya çıkmıştır. Tez çalışmasında sunulan iyileştirilmiş makina öğrenmesi sınıflandırma modelinin performansını ölçmek için, ikinci deney yapılmıştır. Bu deneyde önceki çalışmada sunulan modelle, bu tez çalışmasında sunulan modelin kıyaslanması hedeflenmiştir. Böylelikle modele yeni eklenen özniteliklerin etkisi ortaya çıkmış ve değerlendirmeye hazır hale gelmiştir. Deneyde önceki çalışmada kullanılan veri setine erişilemediği için değerlendirmede daha önce bahsedilen erişime açık veri seti kullanılmıştır. Bu deneyde çeşitli makina öğrenmesi sınıflandırma algoritmaları kullanılmıştır. Algoritmaların bazıları önceki çalışmada kullanılanlarla ortak olmasına rağmen bazılarına ilk kez bu çalışmada yer verilmiştir. Tez çalışmasında kullanılan makina öğrenmesi paket yazılımı, önceki çalışmada kullanılan algoritmaların bazılarını içermediğinden, önceki çalışmada ele alınan bazı algoritmalar bu çalışmada ortaklanamamıştır. Önceki çalışmadaki öznitelikler kullanılarak çeşitli makina öğrenmesi sınıflandırma algoritmalarıyla eğitilen model üzerinde k katmanlı çapraz doğrulama yaklaşımıyla testler yapılmıştır. Aynı prosedür tez çalışmasında önerilen özellikleri içeren modellerle de tekrarlanmıştır. Böylece iki farklı çalışmadaki modeller (45 ve 47 öznitelikli modeller) karşılaştırılabilir hale getirilmiştir. Çalışma boyunca elde edilen bulgular, önerilen iyileştirmelerin perdelenmiş JavaScript kaynak kodlarının tespit edilme doğruluğunun yüzdesini arttırdığını göstermiştir. Bu durum sekiz farklı makina öğrenmesi sınıflandırma algoritması için de geçerli olmuştur. Buna ek olarak, önerilen model; makina öğrenmesi algoritmalarının birçoğunda çok yüksek doğrulukta (\%99'dan fazla) sınıflandırma yapabilmiştir. Ayrıyeten, kullanılan tüm algoritmalara ait önceki ve mevcut önerilen modellerin hata matrislerine (karışıklık matrisleri) tez çalışmasında yer verilmiştir. Bu matrisler yapılan testlerdeki kaç verinin yanlış pozitif, doğru pozitif, yanlış negatif ve doğru negatif olarak sınıflandırıldığını gösterir. İlgili matrisler incelendiğine, tüm algoritmalarda önerilen modelin önceki modelden üstün olduğu ve bir algoritma hariç daha düşük yanlış negatif sayısına sahip olduğu gözlemlenmiştir. Bunun yanı sıra, makina öğrenmesi sınıflandırma modellerinin değerlendirilmesinde sıklıkla kullanılan kesinlik, duyarlılık ve F1-skoru değerleri hesaplanıp, iki model kıyaslanmıştır. Kullanılan algoritmaların büyük çoğunluğunda çalışmada önerilen model daha yüksek kesinlik, duyarlılık ve F1-skoru değeri elde etmiştir. Son olarak, tez çalışmasındaki bölümler kısaca açıklanıp, perdelenmiş JavaScript programlarını tespit eden iyileştirilmiş makina öğrenmesi modeli genel olarak değerlendirilmiştir. Ayrıca gelecekte yapılabilecek potansiyel iyileştirmelere değinilmiştir. Bu iyileştirmelerden bazıları perdeleme tabanlı saldırıları inceleyerek modeli yeni öznitelikler eklemeyerek inşa etme ve sözcük denetimi yaparken farklı dilleri de dahil edip çeşitli sözlükler kullanmaktır. Yapılan bu tavsiyelerle çalışma sonuçlandırılmıştır.

Özet (Çeviri)

Web-based attacks have always been a critical security concern over the past few decades. Since JavaScript is the most widely used programming language in web application development for years, JavaScript attacks have become increasingly popular among malicious actors. These attacks can lead to significant outcomes, such as gaining unauthorized access, stealing personal information, exposing data, causing financial damage, and disrupting services. Attackers frequently provide various obfuscation techniques to modify and obscure their malicious source code in order to make it more challenging to understand and evade detection by intrusion prevention and detection systems. This situation makes obfuscated JavaScript source codes potentially harmful and highlights the importance of obfuscation detection, which should be supported by security systems as a critical task. Identification of obfuscated JavaScript source codes is difficult, as numerous obfuscation techniques are employed by intruders. In this thesis paper, a literature review and background information about JavaScript attacks, obfuscation, obfuscation techniques, obfuscation detection, machine learning, and natural language processing are given. The existing obfuscation methods, including static and dynamic analysis, are reviewed with their advantages and limitations. Moreover, a novel machine learning model which is built using syntactic and lexical-based analysis features is proposed in this thesis study. This approach presents two novel features that benefit from natural language processing techniques and contributes to the model discussed in previous work. The first feature is the proportion of meaningful words from natural languages like English to the total number of words in the script. Due to the clean coding principles, such as using descriptive names for variables and functions that are easy to follow and understand, non-obfuscated JavaScript source code is likely to have a greater number of meaningful words from real-world languages. Thus, this feature can help to classify obfuscated and non-obfuscated JavaScript. The second feature is related to the n-gram words ratio in the script. N-grams are contiguous sequences of n items (characters or tokens in the JavaScript in this study). By analysing the ratio of n-gram words, the structure and composition of the code can be quantitatively measured to compare obfuscated JavaScript source codes against non-obfuscated ones. Finally, the effectiveness of the proposed model is evaluated and compared with the model in the previous work. For this, a labelled data set having obfuscated and non-obfuscated real-world JavaScript source codes are preprocessed and used. The proposed and previous models are trained with various binary classification algorithms. The results demonstrate that the proposed model in this thesis study achieves a very high level of accuracy for all machine learning algorithms in detecting obfuscated JavaScript and outperforms the previous model in terms of accuracy, precision, recall and F1-score rates. Thus, this model can be used as a consistent binary feature in malware detection models.

Benzer Tezler

  1. Classification and static detection of obfuscated web application backdoors

    Kamufle edilmiş web uygulama arka kapılarının sınıflandırmasıve statik tespiti

    FURKAN PALIGU

    Yüksek Lisans

    İngilizce

    İngilizce

    2018

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Şehir Üniversitesi

    Bilgi Güvenliği Mühendisliği Ana Bilim Dalı

    PROF. DR. ENSAR GÜL

    DR. FERHAT ÖZGÜR ÇATAK

  2. Detecting malicious behavior in binary programs using dynamic symbolic execution and API call sequences

    Dinamik sembolik uygulama ve API çağrı sıralamaları kullanarak ikili programlarda zararlı davranış tespiti

    FATİH TAMER TATAR

    Yüksek Lisans

    İngilizce

    İngilizce

    2021

    Bilim ve TeknolojiOrta Doğu Teknik Üniversitesi

    Bilişim Sistemleri Ana Bilim Dalı

    DOÇ. DR. AYSU BETİN CAN

  3. Automated analysis approach for the detection of high survivable ransomwares

    Sinsi fidye yazılımlarının tespiti için otomatik analiz yaklaşımı

    YAHYE ABUKAR AHMED AHMED

    Doktora

    İngilizce

    İngilizce

    2020

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolSelçuk Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. BARIŞ KOÇER

    DR. SHAMSUL HUDA

  4. Makine öğrenmesi yaklaşımı ile android uygulamalarının güvenlik analizi

    Security analysis of android applications with machine learning approach

    GÖKHAN ÖZOĞUR

    Doktora

    Türkçe

    Türkçe

    2023

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Üniversitesi-Cerrahpaşa

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. MUHAMMED ALİ AYDIN

    DR. ÖĞR. ÜYESİ MEHMET ALİ ERTÜRK

  5. Anlamsal konum bilgilerinin yayınlanmasında mahremiyetin sağlanması

    Preserving privacy when sharing sensitive semantic locations

    EMRE YİĞİTOĞLU

    Yüksek Lisans

    Türkçe

    Türkçe

    2012

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolTOBB Ekonomi ve Teknoloji Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    YRD. DOÇ. OSMAN ABUL