15/05/2013 Protokol Tarihli ve NKUBAP.00.17.AR.13.08 Protokol Numaralı BAP projesi Sonuç Raporu
Projemizin konusu “Farklı İşletim Sistemlerine Sahip Tabletlerin Güvenlik Açısından Karşılaştırılması” ve projenin amacı da bu karşılaştırmadan elde edilecek sonuçlar doğrultusunda hangi işletim sisteminin daha güvenli olduğunun saptanmasıdır. Proje kapsamında üç farklı işletim sistemine sahip 4 tablet bilgisayar Namık Kemal Üniversitesi Bilimsel Araştırma Projeleri Birimi tarafından temin edilerek tarafımıza ulaştırıldı. Alınan bu tablet bilgisayarların tablo 1’de işletim sistemleri gösterilmiştir.
Tablet 1 Windows 7 Tablet 2 Android 4.2 Tablet 3 iOS 6.1
Tablo 1 Tabletler ve İşletim Sistemleri
Proje uygulamaya konulma aşamasında bazı problemlerle karşılaşılmıştır. Bu problemlerden en önemlisi özellikle IOS ve Android işletim sistemi için sıklıkla güncelleme yayınlanmasıdır. Yayınlanan çoğu güncelleme sistemlerin güvenlik açıkları ile ilgili ve bu açıkların kapatılması ile ilgilidir. Bu açıkların kapatılması işlemi ise projemizle doğrudan ya da dolaylı bir şekilde ilgilidir. İşletim sistemindeki açıkların kapatılması doğrudan projemiz konusu ile ilgiliyken, yüklenmiş uygulama zafiyetlerinin giderilmesi de projede üretilecek uygulamalar üzerinde dolaylı etkiler yapabilmektedir. Tablo 2’de iOS işletim sistemi için ortaya konmuş zafiyetlerin çeşitlerinin yıllara göre dağılımları mevcuttur.
Tablo 2 iOS için Yıllara Göre Dağılmış Zafiyet Türleri ve Sayıları
Şekil 1 ve Şekil 2’de ise Tablo 2’deki dağılımların sırasıyla yıllara ve zafiyet tiplerine göre grafikleri yer almaktadır.
Zaman İçinde Zaafiyet Eğilimleri
Yıl Zaafiyet
Sayısı DoS Kod
ÇalıştırmaTaşma Bellek Bozulumu
Sql
Ekleme/Değiştirme XSS Dizin Ayrılığı
Http Yanıt
Bölme Bypass Bilgi Ele Geçirme
Ayrıcalık Ele
Geçirme CSRF Dosya EkiSuistimal Sayısı
2007 1 1 1
2008 9 3 2 1 2
2009 27 10 6 2 4 2 3 7 3
2010 32 14 14 9 6 5 3 2 3
2011 37 13 10 5 6 3 2 11 1
2012 112 74 69 63 60 7 13 9 1
2013 90 52 44 36 41 4 17 9 1
2014 120 48 50 35 33 1 1 20 25 4
2015 324 191 177 148 165 4 39 56 9 1 1
Toplam 752 405 373 299 316 17 5 99 122 18 1 7
% Tamamı 53.9 49.6 39.8 42.0 0.0 2.3 0.7 0.0 13.2 16.2 2.4 0.1 0.0
1 9 27 32 37
112 90 120
324
2007 2008 2009 2010 2011 2012 2013 2014 2015 Şekil 1 Yıllara Göre Zafiyetlerin Dağılımı
37
3 29
9
40 5
31 6
12 2
17 99
18 5 1
Kod Çalıştırma Taşma
DoS
Bellek Bozulumu Bilgi Ele Geçirme XSS
Bypass Ayrıcalık Ele Geçirme
Dizin Ayrılığı CSRF
Şekil 2 Tiplere Göre Zafiyetler
Tablo 3’te Android İşletim Sistemi için yıllara göre dağılımı yapılmış zafiyetler sunulmaktadır.
Tablo 3 Android İşletim Sistemi için Yıllara Göre Dağılmış Zafiyet Türleri ve Sayıları
Zaman İçinde Zaafiyet Eğilimleri
Yıl Zaafiyet
Sayısı DoS Kod
Çalıştırma Taşma Bellek Bozulumu
Sql
Ekleme/DeğiştirmeXSS Dizin Ayrılığı
Http Yanıt
Bölme BypassBilgi Ele Geçirme
Ayrıcalık Ele
Geçirme CSRF Dosya Eki Suistimal Sayısı
2009 5 3 1
2010 1 1 1
2011 9 1 1 1 3 2 3
2012 8 5 4 2 1 1
2013 7 1 2 2 2 1 1 3
2014 11 1 4 1 1 1 2 1
2015 107 49 65 58 40 16 12 10 1
Toplam 148 61 77 63 43 1 22 18 17 1 1
% Tamamı 41.2 52.0 42.6 29.1 0.7 0.0 0.0 0.0 14.9 12.2 11.5 0.7 0.0
Şekil 3 ve Şekil 4 Tablo 3’te yer alan dağılımların sırasıyla yıllara ve zafiyet tiplerine göre oluşturulmuş grafikleri verilmektedir.
5 1 9 8 7 11
107
2009 2010 2011 2012 2013 2014 2015
Şekil 3 Yıllara Göre Zafiyetlerin Dağılımı
61
22 77
43
18 17
63
1 1
DoS Bypass Kod Çalıştırma Bellek Bozulumu Bilgi Elde Geçirme
Ayrıcalık Ele Geçirme Taşma
Sql Ekleme/Çıkarma CSRF
Şekil 4 Tiplere Göre Zafiyetler
Tablo 4’te Windows İşletim Sistemi için yıllara göre dağılımı yapılmış zafiyetler sunulmaktadır.
Tablo 4 Windows İşletim Sistemi için Yıllara Göre Dağılmış Zafiyet Türleri ve Sayıları
Zaman İçinde Zaafiyet Eğilimleri
Yıl Zaafiyet
Sayısı DoS Kod
Çalıştırma Taşma Bellek Bozulumu
Sql
Ekleme/Değiştirme XSS Dizin Ayrılığı
Http Yanıt
Bölme Bypass Bilgi Ele Geçirme
Ayrıcalık Ele
Geçirme CSRF Dosya EkiSuistimal Sayısı
2009 15 3 10 2 6 1
2010 64 16 29 15 9 1 2 1 22 4
2011 102 14 18 9 8 2 4 2 65 3
2012 44 4 14 6 2 3 22
2013 100 16 19 24 6 1 3 2 67 4
2014 36 6 12 5 3 6 5 12 4
2015 136 10 46 10 7 1 24 23 54 1
Toplam 497 69 148 71 39 3 2 41 36 242 17
% Tamamı 13.9 29.8 14.3 7.8 0.0 0.6 0.4 0.0 8.2 7.2 48.7 0.0 0.0
Şekil 5 ve Şekil 6 Tablo 4’te yer alan dağılımların sırasıyla yıllara ve zafiyet tiplerine göre oluşturulmuş grafikleri verilmektedir. [1]
15 64
102
44
100
36
136
2009 2010 2011 2012 2013 2014 2015
Şekil 5 Yıllara Göre Zafiyetlerin Dağılımı
69
148 71
39 3 41 36
242
2
DoS
Kod Çalıştırma Taşma
Bellek Bozulumu XSS
Bypass
Bilgi Ele Geçirme Ayrıcalık Ele Geçirme Dizin Ayrılığı
Şekil 6 Tiplere Göre Zafiyetler
Tablolarda yer alan zafiyet türlerini kısaca açıklamak gerekirse:
• DoS (Denial of Service): DoS saldırısı belirli kaynaklara (işlemci, bellek) yüklenmeyi artırarak kaynakların devre dışı kalmasını sağlayan saldırı tipidir. [2]
• Kod Çalıştırma (Code Execution): Saldırganın hedef makinede ya da hedef işlemde istediği zararlı yazılımı çalıştırmasıdır. [3]
• Taşma (overflow): Taşma saldırıları bir işlemin değiştirilmemesi gereken bellek bölgeleri üzerine yazma işlemidir.[4]
• Bellek Bozulumu (Memory Corruption): Bellek bozulumu bir programın bellek yerleşim bölgeleri içindeki içeriğin programlama hataları sonucunda bozulması anlamını taşır. [5]
• SQL Ekleme/Değiştirme (SQL Injection): Saldırganın bir web uygulamasının sunucusunu kontrol etmek amacıyla zararlı SQL ifadelerini uygulamaya gömmesidir. [6]
• XSS (Cross-site Scripting): Güvenilir sitelere zararlı script’lerin gömülmesi ile oluşmaktadır. XSS saldırıları saldırganın tarayıcı tabanlı bir scripti farklı bir kullanıcıya göndermek için bir web uygulaması kullanmasıyla oluşur. [7]
• Dizin Ayrılığı (Directory Traversal): Saldırganın sınırlı erişimli dosya ve dizinlere izinsiz erişimler yapmasını sağlayan bir HTTP suistimalidir. [8]
• HTTP Yanıt Bölme (HTTP Response Splitting): HTTP yanıt bölme genellikle verinin bir web uygulamasına HTTP isteği gibi güvenli olmayan bir kaynak yoluyla girmesi veya bir HTTP yanıt başlığındaki verinin web kullanıcısına zararlı karakterleri doğrulamadan gönderilmesiyle oluşur. [9]
• Bypass (Bypass Something): Güvenlik alanında bypass etmek, saldırganın ağ ya da sistem erişimini elde etmek için güvenlik sisteminin kenarından geçebilecek açıklara sahip olması demektir. [10]
• Bilgi Ele Geçirme (Gain Information): Saldırganın sisteme ya da ağa erişebileceği bilgileri ele geçirmesi anlamına gelmektedir.
• Ayrıcalık Ele Geçirme (Gain Privilage): Saldırganın ağ ya da sistem üzerinde değişiklikler yapabilecek şekilde yetki elde edebileceği tip saldırılardır.
• CSRF (Cross-Site Request Forgery): Saldırgan sisteme giriş yapmış yasal bir kullanıcıyı onayı ya da bilgisi olmadan önemli bir hareket yapmaya zorlar. Saldırı yasal bir kullanıcıdan gelmiş olduğundan, saldırı arkasında iz bırakmaz.[11]
• Dosya Eki (File Inclusion): Saldırganın “include” fonksiyonelliğini kullanarak web sunucusundaki hassas ya da erişim yasaklı dosyalara erişmesini ya da web sunucusunda kötü amaçlı dosya çalıştırmasını sağlayan saldırı tipidir.[12]
Yayınlanan güncellemeler ile bu tip saldırılara göre önlemler alınarak, tüm işletim sistemleri için saldırılar etkisiz hale getirilmiştir. Güncellemelerin yanı sıra üretici firmalar işletim sistemlerinde de sürüm ve çeşit değişikliklerine de gitmişlerdir. Bu sürüm değişiklikleri de zafiyetlerin giderilmesini sağlamıştır. Örneğin projemizin başlangıç esnasında tablet bilgisayarlarında IOS 6.x kullanan üretici önce IOS 7.x, daha sonra IOS 8.x ve son olarak da iOS 9.x sürümlerine geçiş yaparken, benzer şekilde Windows 7 kullanan üretici de Windows 8 çeşidini, arkasından da Windows 10 sürümünü kullanmaya başlamıştır. Android işletim sistemi için ise 4.x platformundan 5.x platformuna, ondan sonra da Android 6.x platformuna geçiş yapılmış hatta bu geçiş esnasında birden fazla ara sürüm üretilmiştir. Bununla beraber önümüzdeki günlerde bu değişikliklerin devam edeceği öngörülmektedir. Proje kabul tarihinden itibaren tablet bilgisayar işletim sistemlerindeki değişiklikler Tablo 5, Tablo 6 ve Tablo 7’de verilmiştir.
iOS İşletim Sistemi Versiyonları Versiyon Çıkış Tarihi iOS 6.1.1 06.02.2013 iOS 6.1.2 19.02.2013 iOS 6.1.3 19.03.2013 iOS 6.1.4 02.05.2013 iOS 6.1.5 14.11.2013 iOS 7 18.09.2013 iOS 7.0.2 26.09.2013 iOS 7.0.3 22.10.2013 iOS 7.0.4 14.11.2013 iOS 7.0.5 29.01.2014 iOS 7.0.6 26.02.2014 iOS 7.1 10.03.2014 iOS 8.0 17.09.2014 iOS 8.1 20.10.2014 iOS 8.2 09.03.2015 iOS 8.3 08.04.2015 iOS 8.4 30.06.2015 iOS 8.4.1 13.08.2015 iOS 9.0 16.09.2015
Tablo 5 iOS sürümleri listesi[13]
Android İşletim Sistemi Versiyonları Versiyon Çıkış Tarihi Android 4.2 13.11.2012 Android 4.2.1 27.11.2012 Android 4.2.2 11.02.2013 Android 4.3 24.07.2013 Android 4.4 31.10.2013 Android 4.4.1 5.12.2013 Android 4.4.2 9.12.2013 Android 4.4.3 14.07.2014 Android 4.4.4 23.06.2014 Android 5.0 17.10.2014 Android 5.0.1 2.12.2014 Android 5.0.2 19.12.2014 Android 5.1.0 10.03.2015 Android 6.0 05.10.2015
Tablo 6 Android İşletim Sistemi Sürümleri Listesi[14]
Windows İşletim Sistemi Versiyonları
Versiyon Çıkış Tarihi
Windows 7 22.10.2009
Windows 8 26.10.2012
Windows Phone 8 18.10.2013
Windows 8.1 18.10.2013
Windows 8.1 Update 1 08.04.2014
Windows 10 29.07.2015
Tablo 7 Windows İşletim Sistemi Sürümleri Listesi [15]
Tablo 2, Tablo 3 ve Tablo 4’te yer alan tüm zafiyetler için güncellemeler yayınlanmış ve bu zafiyetler kapatılmıştır. Zafiyetlerin kapanması çoğunlukla bir gün ya da birkaç gün sürmüştür. Bu süreler bir takım saldırıları gerçekleştirmek için oldukça kısa sürelerdir ve sürümün güncellenmesi ertelense bile yapılan saldırının ya da zafiyetin kullanılmasının – hakkında güncelleme yayınlandığı için – bir değerinin olmadığı kanaati hakimdir.
Sonuç olarak yapılan tüm bu değişiklikler projenin ilk gününden itibaren ani değişimlere sebep olmakta ve uygulama yönünden zorluklar ortaya çıkarmaktadır. Dolayısıyla güncellemelerin ve işletim sistemi sürümlerinin bu değişim hızı karşısında projede varılmak istenen noktaya varılamamıştır. Özetle projede amaçladığımız güvenlik kriterini tablet bilgisayarlar için fiyat, performans vb. kriterlere eklemek mümkün olamamıştır.
KAYNAKLAR
[1] www.cvedetails.com
[2] http://www.testingsecurity.com/how-to-test/dos-vulnerabilities [3] https://en.wikipedia.org/wiki/Arbitrary_code_execution
[4] https://www.owasp.org/index.php/Buffer_overflow_attack
[5] “Memory Errors: the Past, the Present, and the Future”, Victor van der Veen vd.
[6] https://www.acunetix.com/websitesecurity/sql-injection/
[7] https://www.owasp.org/index.php/Cross-site_Scripting_(XSS) [8] http://www.veracode.com/security/directory-traversal [9] https://www.owasp.org/index.php/HTTP_Response_Splitting [10] http://searchsecurity.techtarget.com/definition/bypass
[11] https://www.tinfoilsecurity.com/blog/what-is-cross-site-request-forgery-csrf [12] http://resources.infosecinstitute.com/file-inclusion-attacks/,
[13] http://ipod.about.com/od/iphonesoftwareterms/a/firmw_history.htm [14] https://tr.wikipedia.org/wiki/Android_(i%C5%9Fletim_sistemi)
[15] https://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx