Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

BTRisk Web Uygulama Güvenliği Denetim Metodu

1,178 views

Published on

BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri Web Uygulama Güvenliği Denetim Metodu

Published in: Business
  • Be the first to comment

BTRisk Web Uygulama Güvenliği Denetim Metodu

  1. 1. Web Uygulama Güvenliği Denetim Metodu
  2. 2. blog.btrisk.com @btrisk /btrisktv /btrisk 1 i. Web Uygulama Güvenliği Denetim Yaklaşım Özeti Takip eden bölümlerde web uygulamalarına yönelik uygulama mantığını hedef alanlar dahil “tüm” tehdit türlerine karşı güvence verebilmek için BTRisk tarafından uygulanan denetim adımları bulunabilir. Tüm tehditleri göz önüne almayı güvece altına alan adımların izlenmesinde yoğunluk, tekrar ve sıralama konusunda şu prensipler göz önüne alınmaktadır:  Uygulama fonksiyonalitesi, mimarisi ve teknolojisi’nin anlaşılması: Yaklaşımımızın da ilk adımını oluşturan uygulamanın anlaşılması ve haritalanması bize muhtemel hedef noktalarını daha net görme imkanı sunmakta, dolayısıyla uygulamaya özgü belli alanlara daha fazla odaklanmamıza izin vermektedir.  Denetim sırasında tespit edilen açıklıkların önceki adımlara ve diğer açıklık türlerine etkisinin değerlendirilmesi: Denetim sırasında tespit edilen her açıklık tamamlanmış olsa dahi daha önceki adımların daha etkin gerçekleştirilmesine (örneğin bir erişim kontrolü açıklığı nedeniyle kullanıcı adlarının öğrenilmesi parola saldırısını etkinleştirebilir), veya bir açıklık tespitinin diğer açıklıkların kullanılmasına katkı sağlamasına (örneğin girdi filtrelemedeki bir açıklık uygulamanın geneline etki ediyorsa diğer enjeksiyon saldırıları bu bilgi ile daha etkin gerçekleştirilebilir) imkan tanıyabilir.  Yukarıda sayılan prensipler, ağ güvenlik denetiminde de olduğu gibi seri adımlar olarak ifade edilen denetim yaklaşımının denetlenen uygulamanın niteliklerine uygun olarak özelleştirilmesine neden olabilecektir.
  3. 3. blog.btrisk.com @btrisk /btrisktv /btrisk 2 ii.Web Uygulama Güvenliği Denetim Yaklaşım Detayı Uygulama İçeriğinin Haritalanması  Link’lenmiş içeriğin tespiti o Uygulamanın kendi içinde linklerle erişilebilen görünen içeriğinin tespiti o Arama motorlarının hizmetinden faydalanılarak siteye başka sitelerden linklerin ve arama motoru tarafından belirlenmiş linklerin tespiti  Diğer içeriğin tespiti o Linklerle ulaşılamayan saklı içeriğin araştırılması o Öntanımlı içeriğin araştırılması ve tespiti  Standart dışı erişim metodları ile içeriğe erişim araştırması o URL içeriğinde veya POST verisi içinde fonksiyonaliteye ve içeriğin sunulmasına ilişkin kontrol amacıyla kullanılan parametrelerin değiştirilmesi yöntemi ile normalde sunulmayan içerik ve fonksiyonalitenin araştırılması o “Debug” parametrelerinin araştırılması ve bu
  4. 4. blog.btrisk.com @btrisk /btrisktv /btrisk 3 parametrelerin değiştirilmesi suretiyle “debug” içeriğine erişilmeye çalışılması Uygulama Fonksiyonalite ve Teknoloji Analizi  Uygulamanın tüm fonksiyonlarının gözden geçirilmesi suretiyle kendisinin sağladığı ve diğer destek sistemlerinden temin ettiği (e-posta, loglama, vb. Gibi) fonksiyonalitenin anlaşılması  Uygulamanın veri girdi noktalarının belirlenmesi  Kullanılan teknolojilerin tüm katmanlar (web sunucusu, uygulama sunucusu, istemci betik ve uygulamaları, vd.) için belirlenmesi  Tespit edilen fonksiyonalite, girdi noktaları ve teknolojilere yönelik saldırı yüzeyinin haritalanması İstemci Tarafı Kontrollerinin Testi  İstemci ile sunucu arasında kullanılan veri iletim yöntemlerinin belirlenmesi o Saklı alanlar (hidden fields) o Çerezler (cookies) o URL linklerinin içine gömülü önceden belirlenmiş parametreler o ASP.NET ViewState içeriği (ViewState alanına programcı tarafından parametre eklenmesi mümkündür)  İstemci tarafında uygulanan girdi kontrollerinin tespiti, bu kontrollerin sunucu tarafında da gerçekleştirilip gerçekleştirilmediğinin kontrolü o Uzunluk limit kontrollerinin testi o JavaScript ile yapılan kontrollerin tespiti ve saldırı proxy’leri aracılığıyla geçersiz kılınması o Disable edilmiş form elemanlarının değiştirilerek sunucuya gönderilmesi ve uygulama üzerindeki etkisinin gözlenmesi  İstemci tarayıcısında çalışan mobil uygulamaların incelenmesi o Java Applet kullanımının tespit edilmesi, bu bileşen aracılığıyla yapılan kontrollerin geçersiz kılınması, applet’in sunduğu metodlar kullanılarak istenilen verilerin kodlanması, applet’in decompile edilerek kaynak kodunun incelenmesi o ActiveX kullanımının tespit edilmesi, metodlarının ve
  5. 5. blog.btrisk.com @btrisk /btrisktv /btrisk 4 kullanım amaçlarının analiz edilerek farklı amaçlarla kullanılması, gerçekleştirdiği kontrollerin geçersiz kılınması o Flash nesnelerinin tespiti, ActionScript kaynak koduna disassemble edilerek fonksiyonalitesinin anlaşılması, flash nesnesi ile yapılan kontrollerini saldırı proxy’si ile geçersiz kılınması Kullanıcı Tanılama Testleri  Kullanıcı tanılama mekanizmalarının anlaşılması  Doğrudan saldırı testi o Parola kalitesinin testi (yeni kullanıcı yaratma ve parola değişikliği ile) o Kullanıcı kodu tespit etme saldırıları (uygulamanın mevcut ve mevcut olmayan kullanıcı kodlarına verdiği yanıt farklılıklarından yola çıkarak) o Sözlük ve kaba kuvvet saldırılarıyla parola tahmin saldırıları  Özel kullanıcı hesap yönetim ve kullanıcı tanılama fonksiyonalitesine yönelik testler o Kilitlenme veya parola unutma durumunda hesap kurtarma (reset) fonksiyonalitesinin açıklıklar açısından testi o “Beni hatırla” fonksiyonalitesinin istemci tarafında, tahmin edilebilir veya log bilgilerinden dolayı ortaya çıkabilecek riskler açısından incelenmesi o Başka kullanıcı haklarıyla çalışan fonksiyonalitenin araştırılması o Kullanıcı kodlarının tekliğinin araştırılması o Erişim bilgilerinin (kullanıcı kodu, parola, diğer) tahmin edilebilirliğinin değerlendirilmesi o Erişim bilgileri iletim yöntemlerinin güvenliğinin denetlenmesi o Kullanıcı erişim bilgilerinin kullanıcılara iletim yöntemlerinin güvenliğinin denetlenmesi  Kullanıcı tanılama mantığına yönelik testler o Uygulamaya çeşitli girdi manipülasyonlarıyla (kontrol mantığını bozan, uygulamaya hafıza taşma hatası
  6. 6. blog.btrisk.com @btrisk /btrisktv /btrisk 5 yaşatan, vd.) hata aldırılması durumunda kullanıcı tanılama adımının geçilip geçilemediğinin denetimi o Çok aşamalı kullanıcı tanılama yöntemlerinde ara aşamaların atlanıp atlanamayacağının denetimi. Aynı zamanda ara aşamalarda oturum yönetim parametrelerinin değiştirilip değiştirilmediğinin denetimi  Yukarıdaki adımlar neticesinde tespit edilen açıklıkların kullanılması ve yetkisiz erişim gerçekleştirilmeye çalışılması Oturum Yönetimi Testleri  Oturum yönetim mekanizmasının anlaşılması  “Token” üretim güvenliğinin denetlenmesi o Token’ın içeriğinin anlamlandırılıp anlamlandırılamadığının incelenmesi o Token’ın tahmin edilebilirliğinin denetlenmesi  “Token” iletim ve kullanımındaki güvenlik açıklıklarının denetlenmesi o Token’ların iletim güvenliğinin incelenmesi o Token’ların iz kayıtlarında (log kayıtlarında) görülüp görülmeyeceğinin incelenmesi (örneğin URL içinde iletilmesi sonucunda proxy, ISP ve web sunucusu iz kayıtlarında görülmesi) o Token’ların oturumlarla ilişkilendirilme yönteminin incelenmesi (aynı token’ın aynı kullanıcıyla farklı oturumlarda ilişkilendirilip ilişkilendirilmediğinin, aynı anda 2 oturum açılması durumunda farklı oturum token’ları üretilip üretilmediğinin denetimi) o Oturum sonlandırmanın güvenli biçimde yapılıp yapılmadığının denetimi o “Session Fixation” açıklığının test edilmesi (tanılama sonrası oturum token’ının tazelenmemesine karşın denetlenmesi) o “XSRF – Cross Site Request Forgery” açıklığının test edilmesi (XSRF özellikle çok kullanıcılı ve bir kullanıcının yüklediği içeriğe diğer kullanıcıların erişmesi durumunda oturum yönetimi için sadece token’a güvenilmesi durumunda ortaya çıkan bir açıklıktır) o Çerez (cookie) kapsamlarının yeterli biçimde kısıtlanıp kısıtlanmadığının incelenmesi
  7. 7. blog.btrisk.com @btrisk /btrisktv /btrisk 6 Erişim Kontrol Testleri  Uygulamanın erişim kontrol ihtiyaçlarının anlaşılması (yatay olarak farklı kullanıcıların erişim kontrol ihtiyaçları ve dikey olarak sistem yöneticisi ve kullanıcı erişim kontrol ihtiyaçlarının anlaşılması)  Birden fazla farklı kullanıcı koduyla uygulamaya erişilerek erişim kontrol yeterliliğinin denetlenmesi  Sistem yöneticisi haklarıyla erişilebilen fonksiyonalite ve içeriğe kısıtlı haklara sahip kullanıcı olarak erişilip erişilemediğinin denetlenmesi  Güvensiz erişim kontrol mekanizmalarının (örneğin saklı bir form sahasında gönderilen bir parametreye veya HTTP referer başlığındaki değere dayanarak yapılan kontrollerin) denetlenmesi Tüm Parametrelerin “Fuzz” Edilmesi  İstemciden sunucuya giden tüm istek parametrelerinin belli saldırı tiplerine uygun olarak “fuzz” edilmesi, yani beklenmeyen değerler gönderilerek hatalı bir yanıt gelip gelmediğinin incelenmesi yöntemiyle açıklık tespiti yapılması o SQL enjeksiyonuna yönelik girdilerin gönderilmesi o XSS (Cross Site Scripting) saldırılarına yönelik girdilerin gönderilmesi o İşletim sistemi komut enjeksiyonuna yönelik girdilerin gönderilmesi o Dizin aşım saldırılarına yönelik girdilerin gönderilmesi o Web sunucusunda çalışan (PHP, ASP.NET gibi) betik enjeksiyonuna yönelik girdilerin gönderilmesi o Dosya dahil etme (file inclusion) komut enjeksiyonuna yönelik girdilerin gönderilmesi Fonksiyonalite’ye Özgü Saldırı Testleri  Bilgi toplama ve fonksiyonalite analizi bölümündeki aktiviteler sırasında tespit edilen aşağıdaki türde destek sistemlerine ulaşarak ek fonksiyonalite sağlayan uygulama alanlarına yönelik olarak aşağıdaki testlerin gerçekleştirilmesi o SMTP enjeksiyonu (e-posta fonksiyonalitesi için arka tarafta bir e-posta sunucusuna ulaşılıyorsa) o Yine işletim sistemi veya veritabanı sunucuları üzerinde
  8. 8. blog.btrisk.com @btrisk /btrisktv /btrisk 7 çalışan yüksek fonksiyonalite sağlayan destek uygulamalarında yer alabilecek hafıza taşma, “integer”, “format string” açıklıklarının (fonksiyonelitenin tespit edildiği alanlara odaklanılarak) denetlenmesi o SOAP enjeksiyonu (ek fonksiyonalite için web servisi kullanılıyorsa) o LDAP enjeksiyonu (uygulama bir dizin sunucusundan sorgulama yapıyorsa) o XPATH enjeksiyonu (uygulama bir XML veri kaynağından sorgulama yapıyorsa) Mantık Hatalarının Testi  Uygulama mantık hataları testleri her uygulamaya özel bir yaklaşım gerektirmekte, uygulama fonksiyonalitesi ve işlem akışları anlaşıldıktan sonra uygulama geliştiricinin varsayımlarını tahmin etme ve bu varsayımlardaki güvenlik açıklarını değerlendirme şeklinde gerçekleştirilmektedir. Mantık hatalarının aranacağı temel alanlar şunlardır: o Çok aşamalı işlemler ve bu işlemlerin her aşamasında bir önceki aşamadaki kontrollerin uygulandığı varsayımı o İstemci tarafında yapılan kontroller sonrası tamlığı sağlanan ancak saldırı proxy’si aracılığıyla bu kontrollerin geçersiz kılındığı durumlarda uygulamanın beklediği girdilerin tamamının gönderilmemesi durumunda uygulama davranışındaki değişiklikler o Güven sınırlarının oluşturulmasındaki hatalar, örneğin bir kullanıcı belli bir kontrolü geçerek belli bir işlem için güvenilir statüsüne geçebilir ve bu statü ile erişmemesi gereken başka bir kaynağa da ulaşabilir o İşlem mantığında bulunan hatalar, örneğin bir işlem için üst limit konulan bir forma negatif girdi girerek uygulama davranışının değiştirilmesi, veya aynı sonuca ulaşmak üzere bir miktar limiti konmasına rağmen çok sayıda işlemle aynı miktar için işlem yapılması gibi Web Sunucusunun Testi  Web uygulama katmanını destekleyen HTTP sunucusuna yönelik test adımları HTTP sunucusunun model ve versiyonunu tespit etmeyi ve aşağıdaki aktiviteleri içerir: o Öntanımlı kullanıcılar ve parolalarının denetimi
  9. 9. blog.btrisk.com @btrisk /btrisktv /btrisk 8 o Öntanımlı içeriğin tespiti o Tehlikeli HTTP metodlarının desteklenip desteklenmediğinin denetimi o Proxy fonksiyonalitesinin varlığı ve ağdaki başka kaynaklara yönelik saldırı amaçlı kullanıp kullanılamayacağının tespiti o Sanal makine (virtual host) ayarlarındaki açıklıkların denetimi (Host HTTP başlık alanına doğru, hatalı ve IP adresleri girilmesi yöntemleriyle) o Web sunucu yazılımındaki açıklıkların denetlenmesi (sunucu model ve versiyonuna yönelik bilinen açıklıkların araştırılması ve denenmesi yoluyla) Diğer Testler  Daha önce sayılanların dışında aşağıdaki testler de web uygulama güvenlik denetiminin parçasıdır: o Kullanılan tüm JavaScript betiklerinin Document Object Model (DOM)’i hedef alan bir XSS saldırısına imkan tanıyıp tanımayacakları açısından incelenmesi (JavaScript kodu URL içinde yer alan bir parametreyi tehlikeli DOM metodlarıyla işliyorsa DOM temelli bir XSS açıklığı doğabilir) o Çerezler (cookies) nedeniyle oluşabilecek lokal mahremiyet açıklıklarının incelenmesi o Denetim sırasında tespit edilecek bilgi sızmalarının (örneğin çok detay içeren hata mesajları, uygulama kodu, dizin listesi gibi) sağladığı bilgilerin değerlendirilmesi ve diğer saldırılara girdi sağlaması o Zayıf SSL kriptolama ve özet algoritmalarının desteklenip desteklenmediğinin denetlenmesi o İsimli “frame”ler kullanılıyorsa frame enjeksiyon açıklığının test edilmesi
  10. 10. blog.btrisk.com @btrisk /btrisktv /btrisk 9 BTRİSK Hakkında 2009 yılında kurulmuş ve sadece bilgi güvenliği hizmetlerine odaklanmış olan BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri bilgi güvenliği problemine yönetim kurulu seviyesinden sistem odası uygulamasına kadar uzanan alanda çözüm üretmektedir. BTRisk bilgi güvenliği problemini görünür hale getirerek algılanmasını, anlaşılmasını ve dolayısıyla ele alınmasını mümkün hale getirmektedir. BTRisk bilgi güvenliği problemine karşı geliştirdiği yaklaşımları gerçek hayat koşullarında test etmiş ve uygulanabilir hale getirmiştir. Bilgi güvenliği ve BT yönetişim hizmet alanlarımız aşağıdaki gibidir:  Pentest Hizmetleri  Bilgi Güvenliği ve BT Yönetişim Hizmetleri  Bilgi Güvenliği Operasyon Hizmetleri  Bilgi Güvenliği Eğitimleri Özgün ürünlerimiz aşağıdaki gibidir:  BTRWATCH Bilgi Güvenliği Risk Analizi ve Denetim Uygulaması  BTRMON 5651 Uyumlu Wi-Fi ve Kablolu Ağ Hotspot Çözümü  BTROTP Tek Kullanımlık Parola Çözümü Pentest & BT Denetimi ISO27001 Danışmanlık Hizmetleri BG Operasyon Hizmetleri

×