Bilgiişlem ortamı sunan bulut hizmetlerinde kötücül davranışların saptanması
Classifying malicious behavior in paas services
Yazar: CEMİLE DİLER ÖZDEMİR
Danışman: DR. ÖĞR. ÜYESİ YUSUF YASLAN
İstanbul Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Derece: Yüksek Lisans, 2018
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Bulut bilişim kullanımı gittikçe artan bir bilgi teknolojisi alanıdır. Firmalar bulut bilişime geçerek sanal makinelerini, veri merkezlerini veya uygulamalarını müşterilerin hizmetine sunabilirler. Üç faklı bulut hizmeti bulunmaktadır. Bunlar; sanal makine sunan bulut (IaaS), bilgiişlem ortamı sunan bulut (PaaS) ve hazır yazılım sunan bulut (SaaS)'dur.

PaaS sağlayıcılar, bilgiişlem ortamlarını en yaygın kullanılan teknolojilere göre düzenleyerek, aynı anda birden çok müşteri uygulamasını bu ortamda çalıştırırlar. Bu durum PaaS sağlayıcısının maliyetlerini düşürmekle birlikte, bazı güvenlik risklerini de beraberinde getirmektedir. Çünkü farklı müşteri uygulamaları aynı ortamı paylaşmaktadırlar ve birbirlerini etkileme olasılıkları vardır. Uygulamaların ve bilgiişlem ortamının güvenliği için farklı uygulamalar arasında bir yalıtım mekanizması gerekmektedir.

Tez kapsamında aynı sanal makine üzerinde birden fazla uygulama çalıştıran PaaS sağlayıcıları için bir güvenlik ve yalıtım sistemi geliştirilmiştir. Önerilen sistemde izlekler üzerinden ölçümler yapılmış ve sonrasında makine öğrenmesi yöntemleriyle bulut uygulamalarına gelen isteklerdeki kötü amaçlı davranışlar saptanmıştır.

Önerilen sistem izlekler üzerinden, bulut uygulamasına gelen her istek için anlık CPU paylaşımı, toplam CPU paylaşımı değerlerini ölçer. Bununla birlikte CRUD işlemleriyle eşleştiren kaynak erişim tipi, kaynak erişim süresi ve sırasıyla hangi işlemlerin yapıldığı kaydedilen diğer üç değerdir. Bu değerler bütün olarak öznitelik vektörünü temsil ederler ve makine öğrenmesi sürecinde kullanılırlar.

Tez kapsamında ilk olarak Spring Boot ile bir web uygulaması yazılmış, PostgreSQL ilişkisel veritabanına bağlanmıştır. Bu uygulama basit bir e-ticaret uygulaması olarak da düşünülebilir. Uygulama Heroku PaaS sağlayıcısına yüklenerek, gerçekçi bulut uygulama verileri üzerinde çalışmak amaçlanmıştır. Sonrasında, yazılan uygulamaya önerilen güvenlik sistemi entegre edilmiş, uygulamaya güvenilir ve tehlikeli istekler gönderilerek, güvenlik sisteminin bu istekler üzerinden bulut ortamında ölçüm alması sağlanmıştır. 

Yapılan deneyde bulut uygulamasına 99000 güvenilir 1000 tehlikeli olmak üzere toplamda 100000 istek gönderilmiştir. Güvenilir istekler, e-ticaret uygulamalarının yaygın kullanım senaryolarını içerirken, tehlikeli istekler ise OWASP 2017 raporunda yer alan 2017 yılındaki en yaygın web uygulaması saldırı senaryolarıdır. 

Önerilen sistem tarafından ölçümler yapılıp, veritabanına kaydedildikten sonra, işlem sırası özniteliği üzerinde N-Gram algoritması çalıştırılmıştır. N-Gram işlemlerin sayısını ve işlemler arasındaki geçiş olasılıklarını hesaplayarak öznitelik vektörüne 57 adet yeni değer eklemiştir. Bu sayede zararlı davranışların saptanacağı makine öğrenmesi sürecinde başarıyı arttırarak amaçlanmıştır. 

Literatürde sıkça kullanılan topluluk sınıflandırması algoritmaları Random Forest, Bagging ve AdaBoost toplanan veri üstünde çalıştırılmış ve sonuçlar çapraz doğrulama tekniğiyle elde edilmiştir. N-Gram algoritması çalışmadan elde edilen sonuçlarda, en başarılı sınıflandırmayı Random Forest yapmış ve deneyde toplam 146 istek yanlış saptanmıştır. Bununla birlikte; N-Gram kullanılarak  yapılan deneyde, yine Random Forest en iyi sonucu elde etmiş fakat bu sefer yanlış saptanan istek sayısı 22'ye düşmüştür. Bu deneyde elde edilen duyarlılık doğrulu değeri, bulut uygulamasına gelen zararlı bir isteğin önerilen sistem tarafından saptanma olasılığının %98 olduğunu göstermektedir.

Abstract:
Cloud computing is a popular concept for companies to outsource their virtual machine, storage, application or data center over the Internet. Cloud computing services are classified into three types. First type of service is IaaS (Infrastructure-as-a-Service) which provides operating system on a system virtual machine to cloud customer. Other type is SaaS (Software-as-a-Service) model which provides ready to use software as Google Drive and Dropbox. Finally PaaS (Platform-as-a-Service) model is in the middle of the layers and provides the specific hardware and customized applications to their users. Moreover, different users can be build and run their applications in the same platform and this ability refers as multi-tenancy.

Multi-tenant structure of PaaS model comes with many advantages and disadvantages. Most of PaaS providers offer web application platforms to their tenants because it is expected that PaaS development will be web oriented. Since popular scripting languages such as Python and Ruby and virtualized platforms such as Java and .NET are commonly used in web development, providers build compatible servers with these technologies. Thus deploying many tenants' applications turns into an easy and cheap process for PaaS providers. However, different cloud customers share PaaS platform resources and it requires isolation between different applications.

In this work, a security framework is developed for PaaS providers that hosts customer web applications in the same process virtual machine. In this case, applications share the same address space and threads serve to cloud application during request-response life cycle. Proposed security framework for multi-tenant PaaS providers detects malicious behavior of threads using data mining techniques.

The main difference between the proposed system and the intrusion detection systems is proposed system measures thread metrics,it does not trace network activities or connections. In addition, the proposed system differs from virus scanners. It dynamically analyzes malicious behavior of threads without using a signature database. However, virus scanners statically detect malicious files or scripts.

Intelligent malware detection systems have already been proposed. Operating system API calls and machine instructions are the main features in previous work, these features are usually used with different classifiers in these systems. In addition, N-Gram algorithm is also applied to feature vector to get better result using sequence mining technique in the obtained data. However, this security systems runs on operation system level which is not manageable by PaaS web application. PaaS customer needs a runtime security system that needs access just application level metrics.

The measured features by the system  for each user request is instant CPU share, cumulative CPU share, resource access type (CRUD) and resource access duration. In addition, resource access type sequences are also recorded to detect pattern of sequence data. N-Gram algorithm is used to analyze sequences data to enhance prediction performance with the more and the better features. 

Fist, a Spring Boot web application is developed within this work. This application is a simple e-commerce web site and the functionality of the operation can be mapped to CRUD. PostgreSQL relational database is connected to application. Then, this web application is deployed to Heroku PaaS platform to get more realistic cloud data from the application. Second, proposed security  framework integrated into cloud application, which measures feature set of the user requests, collects them and builds a classification model from collected training data. Finally, experimental tests are running and their results are measured to evaluate system's accuracy.

100000 requests are sent to developed PaaS web application. 1% of requests are malicious and 99% of them are regular requests. Regular request scenarios are produced according to e-commerce customer regular usage of the web site. Requests mapped to CRUD operations can be illustrated with adding a product to basket, reading content of a product, updating quantity of a product in the basket or deleting an incorrect e-mail address from a user information. Malicious scenarios are implemented according to the Open Web Application Security Project (OWASP) top 10 application security risk report in 2017. After these, each risk is mapped to a CRUD operation in the scope of this work and attack scenarios are recorded. All the scenarios are running parallel using Apache JMeter. Meanwhile, proposed system measures the features and save them into the database.

After the data generation process, N-Gram module runs on the data to generate features according to operation sequences of the request. Frequencies, counts, and transitions between operations are evaluated by this module. In the end of the process, N-Gram module generates 57 more features to improve classification accuracy.

Ensemble learning algorithms; Random Forest, Bagging and Adaboost run on the two different data to obtain prediction results. The fist data does not contain sequence information and the N-Gram features, but the second data have them. Comparison of two different data results makes N-Gram module impacts measurable. 10 folds cross-validation technique is used in the test process. For each data and each classifier, an experiment is done to calculate misclassified instance percentage, precision, recall, f-measure and confusion matrix by Weka tool.

Without N-Gram module, Random Forest classifier gets the most accurate results. 146 instances are classified incorrectly and this experiment has 0.96 precision, 0.88 recall and 0.92 f-measure values. After N-Gram features are also added to feature vector, Random Forest still obtains the most accurate results. Only 22 instances out of 100000 are classified incorrectly, and this time the experiment has 0.99 precision, 0.98 recall and 0.98 f-measure values.

Experimental results show that N-Gram module improves the accuracy of the system for all classifiers. It is obvious that operation sequence data is valuable if it is processed with N-Gram algorithm. Also Random Forest algorithm has the best result not only for the N-Gram integrated system, but also for  the simple system that just have resource usages in the feature vector.

Proposed system can classify a malicious request correctly with the probability of 0.99 according to precision value. Recall value shows that a malicious request can be detected by the proposed system with the probability of 0.98. Finally, f-measure value, which is optimal at 1.0, shows the classifier accuracy for different classes. Since experiment has unbalanced classes with 9900 regular and 1000 malicious instances, f-measure is also evaluated. 0.98 value shows that the proposed system is accurate for both regular and malicious classes.

More precise measurements and more features and data can lead the system to have  better prediction results. New regular and malicious request scenarios can be run to enrich the data in the future.