2. Web Servisi Güvenliği
• Günümüz uygulamalarında gittikçe artan bir ihtiyaçta uygulamaların
entegre olması ve verilerin paylaşılması istenmektedir.
• Uygulama veya veri tabanı seviyesinde birçok güvenlik standardı
bulunurken bu yeni gelişen entegrasyon katmanında standartlar ve
yaklaşımlar yeni yeni oluşmaya başlamıştır.
• Web servisleri konusunda dünya genelinde kabul görmüş organizasyonlar
listelenecek olursa;
– OASIS (The Organization for the Advancement of Structured Information
Standards)
– W3C (The World Wide Web Consortium)
– WS-I (The Web Services Interopability Organization)
– IETF (The Internet Engineering Task Force)
• Bu organizasyonlar ve bu katmanda ürün piyasaya süren (IBM, Oracle –
BEA, Microsoft, Software Ag, v.s.) şirketler tarafından Şekil -1 deki
standartlar belirlenerek güvenli bir şekilde entegrasyonun sağlanması
amaçlanmaktadır.
3.
4. Web servis işleyiş sürecini güvenlik
açısından incelenmesi
• Bir istemci web servisten önce servis bilgileri isteğinde bulunur. Burada ilk
aşama güvenlik olarak servis bilgilerini bulunduran
dosyalara authentication (Basic, Digest, Integrated ve Certificate
Authentication) ile erişimin kısıtlanmasıdır.
• Authentication dan sonraki aşama
ise yetkilendirme (authorization) aşamasıdır. Bu aşamada istemci kendini
tanıtmış gerekli güvenlik onayını geçmiş ve bir istekte bulunmuştur fakat
her istemcinin tüm veriye erişmesi istenmeyen bir durum olduğu için her
istemciye ayrı bir yetki verilmelidir. İşte bu işlem bu adımda
gerçekleşmektedir.
• İstemcinin yetkilerini sunucu tarafında kontrol ettikten sonra istemcinin
güvenliği ve sunucunun güvenilirliği için mesajın kime ait olduğunun tespit
edilebilmesini sağlayan imzalama (signature) aşamasına geçilir. Bu
aşamada geçerli bir sertifika ile mesaj imzalanır ve karşı tarafa
gönderilmeye hazır hale getirilir.
• Son aşama ise mesaj içeriğinin şifrelenmesi (encryption) aşamasıdır. Bu
aşamada kullandığınız platformun desteklediği yeteneklere göre istenilen
formatta mesajı şifreleyebilirsiniz. Yeter ki istemci kullandığınız yöntemi
bilsin ve ona göre şifrelenmiş mesajı çözüp anlamlı hale getirebilsin.
5.
6. Neden web servislerinde güvenliğe
dikkat edilmeli?
• Web servisleri, uygulamaların API'lerine ve hedef
uygulamalara erişim sağladığından birçok
güvenlik açıklıkları bulunmaktadır.
• Web servislerinin dağıtık ve uçtan-uca
yapısı, tehdit ve güvenlik açıklıklarının bir
uygulamadan başka uygulamalara atlamalarına
neden olabilmektedir.
• İnternet ortamında çok daha fazla kullanıcı, çok
daha fazla bilgi, belge, hacker v.s. dolaşmaktadır.
• Mevcut Güvenlik Çözümleri Web Servisleri
Güvenliği İçin Yeterli mi?
7. SSL Güvenliği
• Noktadan noktaya güvenlik sağlar, tüm veriyi
şifreler ancak verinin içeriği ile ilgilenmez.
• Taşıma seviyesinde kullanıcı doğrulaması
yapabilir, mesaj seviyesinde yapamaz.
8. Network Firewall
• Ağ üzerinden geçen paketlerin kaynak/hedef
gibi temel özelliklerine bakıp, paketin geçip
geçmemesine karar verir.
• Nereden geldiği, kimin oluşturduğu, hedefi, ne
zaman geldiği gibi ayrıntılara bakmazlar.
9. Application Firewall
• Paketin içeriğine göre geçip geçmemesine
karar verir.
• Paketin içeriği uygun mu, paketin içindeki bilgi
ne kadar öncelikli, paketin içeriğinin yapısı
doğru mu, gibi önemli kısımlara bakmazlar.
10. XML için donanımsal veya yazılımsal
firewall
• Eksik kalan özellikler için web servislerin temelini oluşturan XML için
donanımsal veya yazılımsal firewall'lar tasarlanmıştır.
• Bu Firewall'lar genel olarak aşağıdaki işlemleri gerçekleştirebilir.
• Gelen XML dökümanı/mesajı yapısı, kurum tarafından belirlenen
XML şemasına uyup uymadığını kontrol eder.
• Zararlı kod içerip içermediğini belirli tekniklere göre kontrol eder.
Hatta bazı ürünler gömülü bir antivirüs programı barındırır,
• Gelen mesajın Mesaj Seviyesi Güvenliği (MessageLevel Security) var
mı kontrol eder.
• Alıcının veya göndericinin kimlik doğrulama işlemleri ve
yetkileri (Authentication and Authorization) işlemini gerçekleştirir,
• İzleme ve kayıt altına alma (Audit and Accounting) işlemlerini
yapabilir,
11. • HTTP header, SOAP, ve XML seviyelerinde atakları bloklar.
Attachment dosyaları scan edilir. Zararlı mesajlar bloklanır,
• Veri tabanından sorgulama yapabilir. Dönen veriyi XML mesajının
içine ve/veya mesaj header’ine enjekte edebilir,
• Hizmet seviyesi anlaşmasına (SLA) göre yükü dengeler,
• Aynı web servis üzerinde client ’e özel politikalar tanımlanabilir,
• Client ‘a özel istek işleme sayısının sınırlanması yapılabilir,
• Client’a özel SLA (service-level agreement) tanımlama ve uyarılar
yapılabilir,
• Bazı servis metotlarını belli client'lardan saklanabilir,
• Client'lar IP adres, SAML özellik, SOAP/transport header'ları
bazında tanımlanabilir.
• Uyarılar windows event log, Unix/Linux syslog, SNMP, E-mail gibi
farklı kanallara iletilebilir.
• Web servis erişimlerini gerçek zamanlı izleme ve raporlama yapma
imklanı sağlar.
12. Web Servislerine Yapılan Saldırı Türleri
• WSDL Tarama
• Bu saldırı, bir web servisi tarafından sunulan WSDL arayüzünü bulmayı
sağlar.
• Saldırgan, web serivisi oluşturmak için kullanılan teknolojiyi tespit etmek
ve ilgili güvenlik açıklarını bulmak için WSDL arayüzü taraması yapabilir.
• Genellikle bu tür saldırılar daha ciddi saldırılar gerçekleştirmek
için örneğin; parametre kurcalama (paremeter tempering), zararlı içerik
enjeksiyonu (malicious content injection), komut enjeksiyonu (command
injection) vb. yapılmaktadır.
• WSDL dosyaları, tüketicilere sunulan hizmetlerin portları ve parametreleri
hakkında ayrıntılı bilgi sağlar.
• Örneğin, saldırgan, özel karakterler veya kötü niyetli içerik göndererek
servisin hizmet dışı kalmasına yada önemli bilgilerin veritabanından
çekilmesine neden olabilir.
• Buna ek olarak, saldırgan WSDL dosyalarında sağlanan bilgileri kullanarak
diğer özel yöntemlerle aynı servis altında tanımlı gizli metotları tahmin
edebilir.
13. Web Servislerine Yapılan Saldırı Türleri
• DoS Saldırıları
– Bilindiği üzere Servis dışı bırakma saldırıları olarak adlandırılan
bu saldırı türü web servisleri içinde tehlike arz etmektedir.
• XML Jumbo Tag İsimleri
– XML içerisindeki meta verilerin (element name, attribute
name, name space vb.) max boyutlarının aşılarak ayrıştırıcı
tarafından işlenememesi sonucunu ortaya çıkaran saldırı
türüdür.
• Coercive Parsing
– XML verisi içerisinde “CDATA” alanları
ayrıştırıcı (parser) tarafından ele alınmazlar. Saldırganlar bu
alanları kullanarak sistem komutları gönderebilir. Bu tip
saldırılara coercive parsing denmektedir.
• XML Döküman Büyüklüğü
– XML dosyaları içerisine büyük boyutlu veri girilmesi sonucu web
servis sunucusu bu xml dosyasını işleyemez ve yeni gelen servis
isteklerine cevap veremez hale gelir.
14. Web Servislerine Yapılan Saldırı Türleri
• SQL Enjeksiyonu
– Daha önceden de bildiğimiz bu saldırı yöntemi web servisler
içinde geçerlidir. XML içerisine beklenmeyen sql cümlecikleri
eklenerek ekstra bilgiye erişim sağlayan saldırı yöntemidir.
• XML Enjeksiyonu
– Bu saldırı türünde sql cümleciği yerine istenilen bir xml
cümleciğini servise aktarmayı hedefler. Bu saldırı sayesinde
örneğin sizin bir adet kayıt girme hakkınız var servisde fakat siz
bu yöntemle xml ayrıştırıcıyı da atlatarak birden fazla veri girişi
sağlayabilirsiniz.
• Zararlı Yazılım, virüs
– Diğer sistemlerde olduğu gibi web servisi sunduğunuz
platformun açıklıklarından faydalanan ve sisteme zarar veren
yazılım ve virüsler bu ortam içinde geliştirilmeye başlanmıştır.
15. Politika
• Burada saydığımız saldırılardan korunmak için XML
firewall üzerinde Politika (Policy) tanımlamalıyız.
Kısaca çok kullanılan politikaları inceleyelim.
• Schema validasyonu
– Bir XML dosyasının içeriğini kontrol etmek için
schema dosyalarından faydalanırız.
– XML schema dosyasi, XML dosyasının içeriğinin
sahip olması gereken kuralları
tanımlayan, uzantısı XSD (XML Schema
Definition) olan dosyalardır.
16. XSD içerisinde bahsedilen kurallar şunlardır
• XML dosyası içinde var olması beklenen element ve attribute'ler, bunlara
ait olan data tipleri.
• XML dosyasının yapısı, elementler ve bu elementlere ait olan child
elementler,
• Child elementlerin sayısı ve sırası,
• Element'lerin bir text değere sahip olup olmayacağı.
• Hata mesajı ekleme
• Bilgi sızmaması için özel koşullar oluştuğunda web servisin cevabı yerine
anlamlı hata mesajı dönmesi bir güvenlik yöntemidir.
• IP filtreleme
• Web servisine erişimin IP bazlı kısıtlanmasını sağlayan politikadır.
• WS-Security Kullanıcı bilgileri ekleme
• Farklı güvenli protokolleri kullanarak web servisine ulaşmadan daha
öncesinde bir kullanıcı kontrol mekanizması oluşturan politikadır.
• Routing
• Arka planda çalışan servisin gerçek adresinin tespit edilememesi için ip ve
port bazlı yönlendirmeye olanak sağlayan politikadır.
• Zaman Filtreleme
• Servisin istediğiniz saatler dışında kullanılmamasını sağlayan politika.