Amaç
Web uygulamaları dağıtım kolaylığı nedeniyle masaüstü uygulamalara üstünlük sağlamış ve geniş uygulama alanı bulmuştur. Bunun yanı sıra internete açık olan uygulamaların önemli bir kısmı da web uygulaması şeklindedir. Web uygulaması olmayan masaüstü uygulamalar ve mobil uygulamalar dahi web uygulama mimarisinin önemli bir kısmı olan HTTP protokolünü kullanmaktadır.
Bunların yanı sıra web uygulamaları çok katmanlı mimariye sahip olup, bu durum nispeten web uygulama altyapılarının sıradan masaüstü uygulamalara nazaran karmaşık olmalarına neden olmaktadır.
Tüm bu nedenlerden dolayı web uygulamaları saldırganların gözde hedeflerinden birisidir.
Web uygulama denetimi eğitiminde katılımcılara web uygulamalarında ortaya çıkabilecek açıklıkların neler olduğu, bu açıklıkları nasıl tespit edebilecekleri ve açıklıkların ortadan kaldırılma yöntemleri aktarılmaktadır.
Web uygulama denetimi eğitimi, mobil uygulama denetimi yapacak katılımcılara da gerekli temel web teknolojileri bilgilerini aktarmayı hedeflemektedir.
İçerik
Eğitimimizin kapsamına buradan veya aşağıdan ulaşabilirsiniz.
- Web uygulama mimarisi
- Tarayıcı
- Web sunucusu
- Uygulama sunucusu
- Veritabanı sunucusu
- Diğer sistemler ve entegrasyon yöntemleri
- Web teknolojileri temel bilgileri
- HTML, tarayıcı uygulama dilleri (Javascript, Applet, ActiveX, v.b.), CSS dosyaları ve Style tag’leri
- HTTP, temel TCP/IP bilgisi
- Web uygulama dilleri (PHP, Java, ASP.NET, v.b.)
- Veritabanı sunucuları ve saklı prosedürler (MSSQL, MySQL, Oracle, v.b.)
- Diğer veri depolama yöntemleri (XML dosya, LDAP sunucusu, v.b.)
- Basit web uygulama örnekleri
- Hesap makinesi uygulaması (Javascript ile)
- Hesap makinesi uygulaması (PHP ile)
- Hesap makinesi uygulaması (PHP ve MySQL stored procedure ile)
- Tablo görüntüleme (PHP ve MySQL ile)
- Web uygulamaları kullanım durumları ve kötüye kullanım senaryoları (tekrar konuyu ziyaret edeceğiz)
- Müşteri uygulamaları
- Bayi uygulamaları
- Personelin kullanımına açık uygulamalar
- Anonim profille erişilen web siteleri / uygulamaları
- Mesajlaşma uygulamaları
- Sosyal medya uygulamaları
- Kurumsal web siteleri
- Doküman yüklenen ve doküman görüntülenen web uygulamaları
- Farklı kullanıcılara mesaj, veri, para, v.b. transferi yapılabilen uygulamalar
- Web uygulama güvenliğini düşüren fonksiyonel ihtiyaçlar
- Akıllı televizyonlardan erişim
- Akıllı telefonlardan erişim
- Diğer sistemlerle entegrasyon
- Uygulama kaynak kodu inceleme ve uzaktan denetim arasındaki temel farklar
- Görülebilen ve görülemeyen kod bölümleri
- Etki tepki yöntemi ve sonuçları
- Uzaktan web uygulama güvenliği denetimi için hangi yöntemlere ihtiyacımız var
- Tarayıcı ve web sunucusunun arasına girme ve manipülasyon
- Sahte sertifika üretme (HTTPS ile erişilen sistemler için)
- Çok sayıda otomatik istek üretme ve web sayfalarını tarama
- Uygulama haritasını çıkarma ve çok sayıda istek sonucunu inceleyebilme
- Bir web sunucusu erişimi sırasında iletilen ve alınan ağ paketlerinin incelenmesi
- Genel HTML tag’leri
- Html
- Head
- Body
- Table, tr, td
- Div
- Style
- Güvenlik açısından önemli HTML tag’leri
- Form
- Input
- Script
- Anchor (A)
- Img
- Object
- Meta
- HTTP protokolü
- İstek metodları
- Güvenlik açısından önemli genel başlıklar ve istek başlıkları
- Yanıt statü kodları
- Güvenlik açısından önemli yanıt başlıkları
- HTTP uygulamalarında oturum yönetimi
- Cookie kullanımı ve özellikleri
- HTTP protokolü içinde bulunan kullanıcı tanılama yöntemleri (basic authentication, NTLM authentication) ve form ile kullanıcı tanılama
- SSL protokolü
- Sertifika’nın teknik tanımı
- Temel kriptografi bilgileri
- Sertifika üretim ve kullanım örneği
- Web servisleri
- Javascript ile yapılabilecekler (örnekler ile)
- Dinamik HTML üretme (Document Object Model kullanımı)
- Ajax istekleri üretme
- İstemci tarafında uygulanan validasyonlar
- Web uygulamalarındaki temel güvenlik politika açıklıkları
- Erişim bilgilerinin güvensiz biçimde iletilmesi
- Yetersiz parola politikası
- Öntanımlı parola kullanımı
- Geçerli ve geçersiz kullanıcı kodlarının tahmin edilebilmesi
- Güvensiz parola sıfırlama süreci
- Güvenli çıkış uygulamasının eksikliği
- Web uygulamalarındaki temel programlama yöntem açıklıkları
- Kalıcı cookie kullanımı ve cookie içeriğindeki hassas bilgiler
- Kullanıcı dokümanlarına doğrudan erişim
- Uygulama verilerinin manipülasyona açık olarak istemciye iletilmesi ve bu verilerin işlemler sırasında kullanılması
- Erişilecek dosya isimlerinin istek parametresi olarak alınması
- Oturum yönetiminde güvensiz parametre üretim algoritmasının kullanılması
- CSRF saldırılarına açık isteklerin kullanılması
- Girdi validasyonlarının sadece istemci tarafında uygulanması
- Kullanıcı verilerine erişimde kullanılan kullanıcı numarası veya hesap bilgisi gibi verilerin oturum sahibine ait olup olmadıklarının kontrol edilmemesi
- Tüm uygulama kaynaklarına ve sayfalarına erişimde erişim kontrolü uygulanmaması
- Web uygulamalarındaki temel teknik programlama açıklıkları
- SQL, LDAP, XPATH injection açıklıkları
- XSS saldırılarına dayanıksız uygulamalar
- Yansıtılan XSS açıklıkları
- Saklanan XSS açıklıkları
- DOM tabanlı XSS açıklıkları
- Web uygulamalarının kötüye kullanımının engellenmemesi
- Farklı müşteri numara, hesap bilgilerinin kaba kuvvet yoluyla sorgulanması
- Mesaj gönderme fonksiyonalitesinin istenmeyen mesajlar üretmek için kullanılması
- Dosya yükleme fonksiyonalitesinin yasa dışı içerik saklama, dağıtma veya kurum kaynaklarını tüketme amaçlı kullanımı
- Çok kaynak tüketen fonksiyonların kaba kuvvet yöntemi ile hizmet kesintisi amaçlı kullanımı
- Web uygulamalarındaki mantık hataları
- Çıkış yapan kullanıcısının login sayfasına yönlendirilmesi, ancak oturumun sonlandırılmaması
- Login statüsünün tüm login aşamaları geçilmeden atanması
- Referer başlığı kullanılarak erişim kontrolü uygulanması
- User-agent başlığı kullanılarak kullanım avantajları sağlanması
- Web ve veritabanı platform açıklıklarına örnekler
- Sistem hatalarının ele alınmaması, özel hata mesajları yerine öntanımlı hata sayfalarının görüntülenmesi
- ASP.NET padding oracle açıklığı
- Uygulama sunucusu yönetim paneline tehlikeli ağlardan erişimler
- Dizin aşımı
- Web açıklık tarayıcıları ve kod gözden geçirme araçları
- Web açıklık tarayıcılarının çalışma yöntemi
- Kod gözden geçirme araçlarının çalışma yöntemi
- Web açıklık tarayıcılarının ve kod gözden geçirme araçlarının tespit edemeyeceği açıklık türleri
- Web uygulamaları güvenlik denetim metodolojisi
- Uygulama içeriğinin haritalanması
- Uygulama fonksiyonalite ve teknoloji analizi
- Oturum yönetimi testleri
- Kullanıcı tanılama testleri
- İstemci tarafı kontrollerinin testi
- Erişim kontrol testleri
- Tüm parametrelerin fuzz edilmesi
- Fonksiyonaliteye özgü saldırı testleri
- Mantık hatalarının testi
- Web sunucusunun testi
- Diğer sunucu katmanı testleri
- Burp Suite modülleri
- Target
- Proxy
- Spider
- Scanner
- Intruder
- Repeater
- Sequencer
- Decoder
- Comparer
- Extender
- Burp Suite ile CSRF kontrolünün aşılması
- Burp Suite ile oturum parametresi ile yapılan erişim denemeleri sınır kontrolünün aşılması
- Güvenli yazılım geliştirme yaşam döngüsü
- Touchpoints, CLASP, SDL Yazılım güvenliği organizasyon yapısı ve süreçleri
Katılımcıların kendi dizüstü bilgisayarlarını eğitime getirmeleri mecburidir. Yapılacak olan uygulama egzersizleri için bu mutlak gereksinimdir.