Sızma testi

Vikipedi, özgür ansiklopedi
Gezinti kısmına atla Arama kısmına atla

Sızma testi , sistemin güvenliğini değerlendirmek üzere bir bilgisayar sistemi üzerinde gerçekleştirilen yetkilendirilmiş temsili bir siber saldırıdır.[1][2] Test, yetkisiz kişilerin sistem özelliklerine ve verilerine[3][4] erişme potansiyelini içeren her iki zayıf noktayı (zafiyet olarak da bilinir) ve sistemin güçlü[5] yönlerini belirlemek ve tam bir risk değerlendirmesi sağlamak için yapılır.

Süreç tipik olarak hedef sistemleri ve belirli bir hedefi tanımlar, daha sonra mevcut bilgileri gözden geçirir ve bu hedefe ulaşmak için çeşitli yollar arar. Bir sızma testi hedefi beyaz kutu (arka plan ve sistem bilgisi sağlar) veya kara kutu (sadece temel bilgi sağlar veya şirket adı dışında bilgi sağlamaz) olabilir. Gri kutu sızma testi ise ikisinin bir birleşimidir (hedef hakkındaki sınırlı bilgiyi denetçi ile paylaşır)[6].Sızma testi, bir sistemin savunmalarının yeterli olması durumunda saldırılara açık olup olmadığını veya saldırıların hangi savunmayı aştığını belirlemeye yardımcı olabilir.[7][5]

Sızma testinin açığa çıkardığı güvenlik sorunları sistem sahibine rapor edilmelidir.[8] Sızma testi raporları ayrıca kurum üzerindeki potansiyel etkileri değerlendirebilir ve riski azaltmak için karşı önlemler önerebilir.

Ulusal Siber Güvenlik Merkezi sızma testini “bir saldırgan ile aynı araç ve teknikleri kullanarak bir BT sisteminin güvenliğinin bir kısmının veya tamamın ihlal edilmeye çalışılmasıyla sistemin güvenliğinin güvence altına alınması” olarak tanımlamaktadır.[9]

Sızma testinin amacı, kötü niyetli bir aktör tarafından sömürülebilecek güvenlik açıklarını bulmak ve bu güvenlik açıklarını müşteriye önerilen azaltma stratejileri ile birlikte sunmak üzerine yapılan sözleşme çeşidine göre değişiklik göstermektedir.[10]

Sızma testleri güvenlik denetimlerinin bir parçasıdır. Örneğin, Ödeme Kartı Sektörü Veri Güvenliği Standardı, düzenli aralıklarla ve sistem değiştikten sonra sızma testi gerektirir.[11]

Hata Hipotezi Metodolojisi bir sistem analizi ve sızma tahmin tekniğidir. Bir yazılım sistemindeki varsayılan hataların listesi, sistem spesifikasyonlarının ve dokümantasyonunun analizi yoluyla derlenir. Varsayılan hataların listesi daha sonra öngörülen hatanın gerçekten var olmasına ve onu kontrol veya uzlaşma derecesinde kullanma kolaylığı olmasına göre  önceliklendirir. Öncelikli liste, sistemin gerçek testini yönlendirmek için kullanılır.

Tarihçe[değiştir | kaynağı değiştir]

1960'lı yılların ortalarına gelindiğinde, kaynakları iletişim hatları üzerinden erişilebilir kılan zaman paylaşımlı bilgisayar sistemlerinin popülaritesinin artması yeni güvenlik kaygıları yarattı. Bilim adamları Deborah Russell ve G. T. Gangemi, Sr. nin ifade ettiği gibi “1960'lar bilgisayar güvenliği çağının asıl başlangıcına işaret etmektedir.”[12]

Örneğin, Haziran 1965’te, ülkenin önde gelen bilgisayar güvenliği uzmanlarından birkaçı, devlet müteahhidi olan System Development Corporation (SDC) tarafından ev sahipliği yapan, sistem güvenliği konusundaki ilk büyük konferanslardan birini düzenledi.Konferans sırasında bir SDC çalışanının SDC'nin AN / FSQ-32 zaman paylaşımlı bilgisayar sistemine eklenen çeşitli sistem korumalarını baltalayabildiği görüldü. Daha fazla sistem güvenliği çalışmasının faydalı olacağını uman katılımcılar “zaman paylaşımlı sistemde güvenlik korumasının ihlal edilmesi gibi alanlarda çalışmalar yapılmasını” istedi. Başka bir deyişle, konferans katılımcıları, bilgisayar penetrasyonunu sistem güvenliğini incelemek amacıyla bir araç olarak kullanmak için ilk resmi taleplerden birinde bulundu.[13]

1967 baharında, Ortak Bilgisayar Konferansı'nda, birçok önde gelen bilgisayar uzmanı, sistem güvenliği endişelerini tartışmak için bir araya geldi. Bu konferans sırasında, bilgisayar güvenlik uzmanları Willis Ware, Harold Petersen ve RAND Corporation'ın tümü Rein Tern ve Ulusal Güvenlik Ajansı'ndan Bernard Peters (NSA), bir bilgisayar sistemine yönelik bir saldırıyı tanımlamak için "sızma" ifadesini kullandılar. Bir makalede, Ware ordunun uzaktan erişilebilir zaman paylaşımlı sistemlerine atıfta bulundu ve “Bu tür bilgisayar sistemlerine sızma konusunda kasıtlı girişimler beklendiği” uyarısında bulundu. Meslektaşları Petersen ve Turn, çevrimiçi iletişim sistemlerinin "gizliliğe yönelik tehditlere karşı " "kasıtlı sızma" dahil olmak üzere savunmasız olduklarını gözlemleyerek aynı endişeleri paylaştı. NSA'dan Bernard Peters da aynı şekilde, bilgisayar girdi ve çıktılarının bir bilgisayar penetrasyonu konusunda büyük miktarlarda bilgi sağlayacağını dile getirdi. Konferans sırasında bilgisayar penetrasyonu, resmi olarak çevrimiçi bilgisayar sistemlerine karşı büyük bir tehdit olarak tanımlandı.[13]

Bilgisayar penetrasyonunun yarattığı tehdit, 1967 yılının sonlarında ABD Savunma Bakanlığı (DoD) tarafından düzenlenen büyük bir raporda ortaya kondu. DoD yetkilileri, zaman paylaşımlı bilgisayar sistemlerinin güvenliğini resmi olarak değerlendirmek üzere NSA, CIA, DoD, akademi ve sektör uzmanlarından oluşan bir görev gücüne liderlik etmek üzere Willis Ware'e başvurdu.1967 baharında yapılan Ortak Bilgisayar Konferansı sırasında sunulan birçok makaleye dayanarak, görev gücü, bilgisayar nüfuzunun yol açtığı sistem güvenliği tehdidini büyük ölçüde doğruladı. Ware'in raporu başlangıçta gizliydi, ancak ülkenin önde gelen bilgisayar uzmanlarının çoğu çalışmayı hızlı bir şekilde bilgisayar güvenliği konusunda kesin bir belge olarak tanımladı. Charles Babbage Enstitüsü'nden Jeffrey R. Yost, Ware raporunu daha yakın bir zamanda “... zamanının güvenli bilgisayar sistemleri ile ilgili teknik ve operasyonel konulardaki en önemli ve kapsamlı çalışması” olarak tanımladı.[14] Aslına bakılırsa Ware raporu, bilgisayar penetrasyonunun yeni çevrimiçi zaman paylaşımlı bilgisayar sistemlerine karşı yarattığı tehlikeyi tekrar teyit etmiş oldu.

Sistem zayıflıklarını daha iyi anlamak amacıyla, Federal hükümet ve müteahhitleri çok geçmeden, bilgisayar penetrasyonunu kullanarak sistem güvenliğini test etmek için kaplan takımları (tiger teams) olarak bilinen sızma ekiplerini organize etmeye başladılar. Deborah Russell ve G. T. Gangemi Sr. “kaplan takımlarının ilk kez 1970'lerde bilgisayar sahnesinde ortaya çıktığını,devlet ve sektör destekli bu takımların zafiyetleri açığa çıkarmak ve nihayetinde yama yapmak için bilgisayar sistemlerinin savunmasını yıkmayı amaçladıklarını“ belirtti.[12]

Bilgisayar güvenliği tarihinin önde gelen kişilerinden olan Donald MacKenzie, benzer şekilde, “RAND’ın , devlete[15][16] ait zaman paylaşımlı sistemlere sızmak için bazı çalışmalar yaptığını” ifade etti.Charles Babbage Enstitüsü'nden Jeffrey R. Yost, bilgisayar güvenliği konusundaki kendi çalışmasında, hem RAND Corporation'ın hem de SDC'nin, zaman paylaşımlı sistemlerin zafiyetlerini[14] test etmek için ilk sözde sızma çalışmalarını yürüttüğüne" değindi. Neredeyse tüm bu erken çalışmalarda, kaplan ekipleri, ülkenin zaman paylaşımlı sistemlerinin savunmaları zayıf olduğu için hedeflenen tüm bilgisayar sistemlerine başarıyla girdi.

İlk kaplan takımı eylemlerinin arasında RAND Corporation’ın, penetrasyonun sistem güvenliğinin değerlendirilmesinde bir araç olarak faydasını göstermekteki çabaları yer almıştır. Ek olarak, bazı RAND analistleri sızma testi egzersizlerinin kullanımın devam etmesini haklı kılan bazı faydalar sunduğunu vurguladı.Bir makalede “sistem zafiyet arayışında saldırgan bakış açısı kazanıldığı” belirtildi. Bu ve benzeri nedenlerle, RAND'daki birçok analist, sistem güvenliğinin değerlendirilmesinde penetrasyon tekniklerinin devam etmesini önermiştir.[13]

Belki de sızma testinin şekillendiği bu yıllara yön veren kişi sistem güvenliğini incelemek için NSA, RAND ve diğer devlet kurumları ile birlikte çalışan James P. Anderson'dır. 1971'in başlarında, ABD Hava Kuvvetleri, Pentagon'daki zaman paylaşımlı sisteminin güvenliğini incelemek için Anderson'un özel şirketiyle sözleşme yaptı. Anderson, çalışmasında bilgisayar penetrasyonuna dahil olan bir dizi ana faktörü ortaya koydu. Anderson, genel bir saldırı sırasını şu adımlarla açıkladı:

1.     İstismar edilebilir bir zafiyet bulun.

2.     Zafiyetin çevresinde bir saldırı tasarlayın.

3.     Saldırıyı test edin.

4.     Kullanılan bir hattı ele geçirin.

5.     Saldırıyı başlatın.

6.     İstismar ederek bilgileri ele geçirin.

Zaman içinde Anderson’un genel sızma testi adımları birçok siber güvenlik araştırmacısına yol gösterdi.[13]

İlerleyen yıllarda, güvenlik değerlendirmelerinde bilgisayar penetrasyonunun kullanılması daha incelikli ve karmaşık bir hale geldi. 1980'lerin başlarında, gazeteci William Broad, kaplan ekiplerinin devam eden sistem güvenliğini değerlendirme çabalarını kısaca özetledi. Broad'in bildirdiği gibi, DoD sponsorluğundaki Willis Ware'in raporu, “casusların bilgisayarlara nasıl aktif olarak girebileceğini, elektronik dosyaları çalabileceğini veya kopyalayabileceğini ve normalde çok gizli bilgileri koruyan cihazları altüst edebileceğini gösterdi.Çalışma, on yıldan uzun süredir devlet için çalışan bilgisayar bilimcilerinin hassas bilgisayarlara girmek için yürüttükleri sessiz faaliyetlere de değindi.Bunu her denemelerinde başardılar.”[17]

Bu çeşitli çalışmalar ABD’deki bilgisayar güvenliğinin büyük bir sorun olmaya devam ettiğini ileri sürse de, uzman Edward Hunt daha yakın bir zamanda, bilgisayar penetrasyonunun bir güvenlik aracı olarak kapsamlı bir şekilde araştırılması gerektiği hakkında önemli bir noktaya değindi.Hunt sızma testi tarihi üzerine yazdığı son makalesinde savunma kuruluşlarının detaylı araştırmalar yaparak modern siber savaşta kullanılmak üzere birçok araç geliştirdiğini belirtti.[13]

Araçlar[değiştir | kaynağı değiştir]

Ücretsiz test edilebilir yazılım, ücretsiz yazılım ve ticari yazılımlar dahil olmak üzere sızma testlerine yardımcı olmak için çok çeşitli[18] güvenlik değerlendirme araçları bulunmaktadır.

Özel İşletim Sistemi Dağıtımları[değiştir | kaynağı değiştir]

Birçok işletim sistemi dağıtımı sızma testine yöneliktir. Bu tür dağıtımlar tipik olarak önceden paketlenmiş ve önceden yapılandırılmış araç setleri içerir. Sızma testi uzmanı, derleme hataları, bağımlılık sorunları, konfigürasyon hataları gibi risk komplikasyonlarını artırabilecek her bir aracı aramak zorunda değildir.Ayrıca ilave araçlara sahip olmak mevcut şartlarda pratik olmayabilir.

Önemli sızma testi işletim sistemi örnekleri şunlardır:

Her biri belirli bir sızma testi alanına tahsis edilen diğer birçok işletim sistemi de sızma testini kolaylaştırmaktadır.

Hedef olarak kullanılabilecek birçok Linux dağıtımı, bilinen işletim sistemi ve uygulama zafiyetlerini barındırmaktadır. Bu tür sistemler, yeni güvenlik uzmanlarının laboratuar ortamında en son güvenlik araçlarını denemelerine yardımcı olur. Örnekler arasında Damn Vulnerable Linux (DVL), the OWASP Web Testing Environment (WTW) ve Metasploitable sayılabilir.

Yazılım Sistemleri[değiştir | kaynağı değiştir]

  • Burp Suite
  • Metasploit Project
  • Nessus
  • Nmap
  • OWASP ZAP
  • w3af

Sızma Testi Aşamaları[değiştir | kaynağı değiştir]

  1. Keşif: Hedef sistem hakkında önemli bilgilerin toplanmasıdır. Bu bilgi hedefe daha iyi saldırmak için kullanılabilir. Örneğin, açık kaynaklı arama motorları, bir sosyal mühendislik saldırısında kullanılabilecek verileri bulmak için kullanılabilir.
  2. Tarama: Saldırgan sistem hakkındaki bilgilerini ilerletmek için teknik araçlar kullanır. Örneğin, Nmap açık portları taramak için kullanılabilir.
  3. Erişim Kazanmak: Saldırgan keşif ve tarama aşamalarında toplanan verileri kullanarak, hedeflenen sistemden yararlanmak için bir payload(yük) kullanabilir. Örneğin, Metasploit bilinen güvenlik açıklarına yönelik saldırıları otomatikleştirmek için kullanılabilir.
  4. Erişimi Sürdürmek:Hedeften mümkün olduğunca çok veri toplamak için hedef sistemde sürekli kalmayı sağlayan adımlar atmayı gerektirir.
  5. İzleri Temizlemek:Saldırganın anonim kalabilmek için hedef sistemde bıraktığı tüm izleri silebilmesi gerekmektedir.(Örneğin kütük bilgileri)[19]

Saldırgan bir güvenlik açığından yararlandıktan sonra, diğer makinelere erişebilir, böylece işlem tekrarlanır, yani yeni güvenlik açıkları arar ve bunları kullanmaya çalışır. Bu süreç pivoting olarak adlandırılır.

Zafiyetler[değiştir | kaynağı değiştir]

Test yapan kişinin yasadışı bir işlem yapmasına izin veren yasal işlemler arasında kaçılmamış SQL komutları, kaynak tarafından görülebilen projelerdeki değişmeyen tuzlar, insan ilişkileri ve eski hash veya şifreleme fonksiyonları bulunur.Tek bir hata kritik bir istismarı sağlamayabilir.Çoğunlukla bilinen birçok hatadan yararlanmak ve payload’u geçerli bir operasyonmuş gibi göstermek gerekmektedir.Metasploit, bilinen görevler için bir ruby kütüphanesi bulundurur ve bilinen istismar kodlarının bulunduğu bir veritabanı içerir.

Bütçe ve zaman kısıtlamaları altında fuzzing, zafiyetleri keşfeden yaygın bir tekniktir. Rasgele girdi yoluyla işlenmemiş bir hata almayı hedefler.Test yapan kişi, daha az kullanılan kod yollarına erişmek için rasgele girdi kullanır. İyi kodlanmış kod yolları genellikle hatasızdır.Hatalar yararlıdır;çünkü HTTP sunucusunun çökmesi veya arabellek taşması gibi bilgileri açık edebilirler.

Bir web sitesinde 100 adet metin giriş kutusu bulunduğunu hayal edin. Bazıları, belirli dizgilerdeki SQL enjeksiyonlarına açıktır. Bu kutulara rastgele dizeleri bir süre göndermek eksik yapılandırılmış kod yolunu izleyebilir. Hata, kendini bir SQL hatası nedeniyle oluşturulmuş, bozuk bir HTML sayfası olarak gösterir. Bu durumda, yalnızca metin kutuları giriş akışları olarak değerlendirilmektedir. Ancak, yazılım sistemlerinin çerez ve oturum verileri, yüklenen dosya akışı, RPC kanalları veya bellek gibi birçok olası giriş akışı vardır. Bu girdi akışlarından herhangi birinde hatalar olabilir. Testin amacı, önce işlenmemiş bir hata elde etmek ve sonra başarısız olan test durumuna dayanarak hatayı anlamaktır. Testi yapan kişiler, hata hakkındaki anlayışlarını doğru olana kadar test etmek için otomatik bir araç yazar. Bundan sonra, hedef sistemin yürütmesini tetiklemesi için payload’un nasıl paketleneceği açıklığa kavuşabilir. Eğer bu mümkün değilse, fuzzer tarafından üretilen başka bir hatanın daha fazla meyve vermesi ümit edilebilir. Bir fuzzer kullanımı, istismarın muhtemel olmadığı durumlarda uygun kod yolunu kontrol etmeden zaman kazandırır.

Payload[değiştir | kaynağı değiştir]

İllegal operasyon veya Metasploit terminolojisiyle payload tuş vuruşlarını kaydetmek, ekran görüntüleri almak, reklam yazılımı yüklemek, kimlik bilgilerini çalmak, kabuk kodunu kullanarak arka kapı oluşturmak veya verileri değiştirmek için işlevleri içerebilir. Bazı şirketler bilinen açıklardan oluşan büyük veritabanlarını tutar ve hedef sistemleri güvenlik açıkları için otomatik olarak test eden ürünler sunar:

  • Metasploit
  • Nessus
  • Nmap
  • OpenVAS
  • W3af

Standartlaştırılmış Devlet Sızma Testi Hizmetleri[değiştir | kaynağı değiştir]

Genel Hizmetler İdaresi (GSA), "sızma testi" hizmetini, önlenebilir bir destek hizmeti olarak, olası güvenlik açıklarını hızla ele almak ve rakipleri ABD federal, eyalet ve yerel yönetimlerini etkilemeden önce durdurmak için standartlaştırdı. Bu hizmetler genellikle Yüksek Uyarlamalı Siber Güvenlik Hizmetleri (HACS) olarak adlandırılır ve ABD GSA Advantage web sitesinde listelenmiştir.[20]

Bu çaba, teknik olarak gözden geçirilmiş ve bu gelişmiş penetrasyon hizmetlerini sunmak için onaylanan kilit servis sağlayıcıları belirlemiştir. Bu GSA hizmeti, bu hizmetlerin hızlı sipariş ve dağıtımını iyileştirmek, ABD devlet sözleşmesi yinelemesini azaltmak ve ABD altyapısını daha zamanında ve verimli bir şekilde korumak ve desteklemek amacıyla hazırlanmıştır.

132-45A Sızma Testi[21], hizmet değerlendiricilerin bir uygulamanın, sistemin veya ağın güvenlik özelliklerini atlatma yöntemlerini tanımlamak için gerçek dünya saldırılarını taklit ettiği güvenlik testidir. HACS Sızma Test Servisleri tipik olarak organizasyonun varlıkları ve verileri korumak için kullanılan önleyici ve tanımlayıcı güvenlik önlemlerinin etkinliğini stratejik olarak test eder. Bu hizmetin bir parçası olarak, sertifikalı etik bilgisayar korsanları tipik olarak güvenlik zayıflıklarını arayarak bir sisteme, sistemlere, uygulamalara veya çevrede bulunan başka bir hedefe yönelik simüle bir saldırı gerçekleştirir. Testten sonra, tipik olarak hangi savunmanın etkili olduğunu ve hangi zafiyetlerin istismar edilebileceğini ana hatlarıyla belgeleyeceklerdir. Ayrıca, tipik olarak keşfedilen zayıflıkları gidermek için önerilen iyileştirme planlarını sağlarlar.[22]

İngiltere'de sızma testi hizmetleri, Ulusal Siber Güvenlik Merkezi ile birlikte çalışan profesyonel kuruluşlar tarafından standardize edilmiştir.

Türkiye’de ise sızma testi yapan firmalara TSE tarafından onay verilmektedir.Aynı zamanda BDDK ve SPK[23] da kapsam dahilindeki kuruluşlara sızma testi yaptırma yükümlülüğü getirmiştir.

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ What is Penetration Testing?
  2. ^ Penetration Testing overview
  3. ^ The CISSP® and CAPCM Prep Guide: Platinum Edition. John Wiley & Sons. 2006-11-06. ISBN 978-0-470-00792-1. "A penetration test can determine how a system reacts to an attack, whether or not a system's defenses can be breached, and what information can be acquired from the system"
  4. ^ Kevin M. Henry (2012). Penetration Testing: Protecting Networks and Systems. IT Governance Ltd. ISBN 978-1-849-28371-7. "Penetration testing is the simulation of an attack on a system, network, piece of equipment or other facility, with the objective of proving how vulnerable that system or "target" would be to a real attack."
  5. ^ a b Cris Thomas (Space Rogue), Dan Patterson (2017). Password Cracking is easy with IBM's Space Rogue (Video). CBS Interactive. Event occurs at 4:30-5:30.
  6. ^ "Pen Testing Types explained". 2017-06-09.
  7. ^ "Penetration Testing: Assessing Your Overall Security Before Attackers Do". SANS Institute.
  8. ^ "Writing a Penetration Testing Report". SANS Institute.
  9. ^ "Penetration Testing". NCSC. Aug 2017.
  10. ^ Patrick Engebretson, The basics of hacking and penetration testing, Elsevier, 2013
  11. ^ Alan Calder and Geraint Williams (2014). PCI DSS: A Pocket Guide, 3rd Edition. ISBN 978-1-84928-554-4. "network vulnerability scans at least quarterly and after any significant change in the network"
  12. ^ a b Russell, Deborah; Gangemi, G.T. (1991). Computer Security Basics. O'Reilly Media Inc. ISBN 9780937175712.
  13. ^ a b c d e Hunt, Edward (2012). "US Government Computer Penetration Programs and the Implications for Cyberwar". IEEE Annals of the History of Computing. 34 (3): 4–21. doi:10.1109/MAHC.2011.82.
  14. ^ a b Yost, Jeffrey R. (2007). de Leeuw, Karl; Bergstra, Jan, eds. A History of Computer Security Standards, in The History of Information Security: A Comprehensive Handbook. Elsevier. pp. 601–602.
  15. ^ Mackenzie, Donald; Pottinger, Garrel (1997). "Mathematics, Technology, and Trust: Formal Verification, Computer Security, and the U.S. Military". IEEE Annals of the History of Computing. 19 (3): 41–59. doi:10.1109/85.601735.
  16. ^ Mackenzie, Donald A. (2004). Mechanizing Proof: Computing, Risk, and Trust. Massachusetts Institute of Technology. p. 156. ISBN 978-0-262-13393-7.
  17. ^ Broad, William J. (September 25, 1983). "Computer Security Worries Military Experts", The New York Times
  18. ^ Faircloth, Jeremy (2011). "Chapter 1:Tools of the Trade" (PDF). Penetration Tester's Open Source Toolkit (Third ed.). Elsevier. ISBN 978-1597496278. Retrieved 4 January 2018.[need quotation to verify]
  19. ^ "Summarizing The Five Phases of Penetration Testing - Cybrary". Cybrary. 2015-05-06. Retrieved 2018-06-25.
  20. ^ "GSA HACS SIN 132-45 Services". 1 March 2018.
  21. ^ "Pen Testing Services". 1 March 2018.
  22. ^ "Penetration Testing Service Description for HACS". 1 March 2018.
  23. ^ SPK Sızma Testi Yükümlülüğü