Günümüz uygulamalarında gittikçe artan bir ihtiyaç da uygulamaların
entegre olması ve verilerin paylaşılmasıdır. 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. Bu
makalemde bu konu hakkında bilgi vermek istiyorum. Web servisleri konusunda
dünya genelinde kabul görmüş organizasyonları listeleyecek olursak;
- · 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.
Şekil
-1. Web Servis Güvenlik Standartları
Bu standartlar genel olarak WS-Security standartları olarak
adlandırılır. Farklı web servis üreticileri için aralarında paylaşımın güvenli
şekilde sağlanmasında da “WS-Federation”
standartları benimsenmiştir.
Genel olarak Web servi s işleyiş sürecini güvenlik açısından
inceleyecek olursak, şekil-2 de
görüldüğü üzere,
1.
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.
2.
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.
3.
İ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şı trafa
gönderilmeye hazır hale getirilir.
4.
Son aşama ise mesaj içeriğinin şifrelenmesi
aşaması olan 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.
Şekil-2. Web Servis İşleyiş Diagramı
|
Neden web servislerinde
güvenliğe dikkat etmeliyiz?
·
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.
·
Internet 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?
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.
Network Firewall ları
·
Ağ üzerinden geçen paketlerin kaynak/hedef gibi
temel özelliklerine bakıp, paketin geçip geçmemesine karar verirler.
·
Nereden geldiği, Kimin oluşturduğu, Hedefi, Ne
zaman geldiği gibi ayrıntılara bakmazlar.
Application Firewall lar
·
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.
İşte eksik kalan bu ö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ırdı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,
·
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, Email gibi farklı kanallara iletilebilir.
·
Web servis erişimlerini gerçek zamanlı izleme ve
raporlama yapma imklanı sağlar.
Şekil-3. Web Servisleri Ortamında Güvenlik Mimarisi
XML Firewall ler Şekil-3 deki gibi ideal bir mimari
ortamında İlk Kontrol noktasında konumlandırılmalıdır.
Web Servislerine Yapılan Saldırı
Türleri
1. 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 serivisin 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.
2. 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 tehhlike arz etmektedir.
a.
XML Jumbo Tag İsimleri
XML içerisindeki meta verilerin (element name,attribute name,name space
v.s.) max boyutlarının aşılarak ayırştırıcı tarafından işlenememesi sonucunu
ortaya çıkaran saldırı türüdür.
b.
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.
c.
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.
3. Enjeksiyon
Saldırıları
a. 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.
b. XML Enjeksiyonu
Bu saldırı türünde de sql
cümleciği yerine istenilen bir xml cümleciğini servise aktarmayı hedefler. Bu
saldırı sayesinde mesela 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.
4. 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.
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.
Politikalar (Policy)
1.
Schema validasyonu
Bir XML dosyanin icerigini
kontrol etmek icin schema dosyalarindan faydalanırız. XML schema dosyasi, XML
dosyasinin iceriginin sahip olmasi gereken kurallari tanimlayan, uzantisi XSD
(XML Schema Definition) olan dosyalardir.
XSD icerisnde bahsedilen kurallar
sunlardir;
·
XML dosyasi icinde var olmasi beklenen element
ve attibute'ler, bunlara ait olan data tipleri.
·
-XML dosyasinin yapisi. Elementler ve bu
elementlere ait olan child element'ler.
·
-Child elementlerin sayisi ve sirasi.
·
Element'lerin bir text degere sahip olup
olmayacagi.
2.
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.
3.
IP filtreleme
Web servisine erişimin IP bazlı
kısıtlanmasını sağlayan politikadır.
4.
WS-Security Kullanıcı bilgileri ekleme
Farklı güvenli protokolleri kullanarak web
serive ulaşmadan daha öncesinde bir kullanıcı kontrol mekanizması oluşturan politikadır.
5.
Routing
Arka planda çalışan servisin gerçek
adresinin tespit edilememesi için ip ve port bazlı yönlendirmeye olanak
sağlayan politikadır
6.
Zaman Filtreleme
Servisin istediğiniz saatler dışında
kullanılmamasını sağlayan politika.
Eğer Yazıyı Beğendiyseniz Aşağıdaki Google Reklamını Tıklamanızı Rica Ediyorum.
Eğer Yazıyı Beğendiyseniz Aşağıdaki Google Reklamını Tıklamanızı Rica Ediyorum.
Referanslar:
[1] Web Servis
Güvenliği Semineri 2011 – Cemal Gemci, Aslı Köksal
[5] https://www.owasp.org/index.php/Testing_for_XML_Injection_%28OWASP-DV-008%29
Hiç yorum yok:
Yorum Gönder