Digital Cosmonot | API ve Web Güvenliği

API ve Web Güvenliği


 

Web Güvenliği Neden Önemlidir ?

 

İnternet, bilgi alışverişinin çok hızlı gerçekleştiği ve bilgiye erişimin çok kolay olduğu bir ağdır. Datareportal tarafından We Are Social ve Hootsuite ortaklığı ile yayınlanan Digital 2021: Global Overview Report’a göre Ocak 2021 yılında tahmin edilen yaklaşık internet kullanıcısı geçen yıla göre %7,3 büyüyerek 4,66 milyar seviyesine ulaştı. Bu rapora göre şu an dünya nüfusunun %59,5’u internet kullanmakta. IOT gibi teknolojilerin de hayatımızın içerisinde yer almaya başlaması ile birlikte internete bağlı cihaz sayısının 2022 yılında 50 milyar seviyesine kadar çıkması bekleniyor. İnternet kullanımının bu denli yaygınlaşması ve verinin önemli hale gelmesi, kurumsal yapılar veya devletler tarafından da verilerin internet ortamında korunmasının önemini de artırmaktadır. Dünyanın 2025 yılına kadar 200 zettabayt veri depolayacağı öngörülmektedir, bu ortamda bilgisayar sistemlerine ağ üzerinden yapılabilecek saldırılar önemli miktarlarda para, veri ve zaman kaybına yol açabileceği gibi beraberinde prestij kayıplarına da neden olmaktadır. Yapılan araştırmalara göre 2019 yılından bu yana kötü amaçlı yazılımlar %358 ve fidye yazılımı %435 arttı. Google’ın 2020 yılında yayınladığı verilere göre Google tarafından tespit edilmiş 2 milyondan fazla phishing sitesi bulunuyor. Siber güvenlik istatistikleri; zafiyetlere, artan tehditlere işaret ediyor ve web güvenliği ihtiyacı her geçen gün artıyor. Web güvenliğii, dijital verileri korurken aynı zamanda da ağ trafiğini analiz ederek izinsiz girişlere ve saldırılara karşı zarar görmeden engel olmanıza olanak sağlayan teknolojileri barındırıyor. Web uygulamalarını saldırılardan korumanın temel adımları arasında; güncel şifreleme uygulamak, uygun kimlik doğrulaması ayarlamak, keşfedilen güvenlik açıklarını sürekli takip ederek development aşamasında kapatmak, kurumunuz için security yazılımları tercih etmek yer alıyor.

 

Ağ Güvenlik Politikaları

 

Web güvenliği ve web koruması noktasında her zaman uyulması gereken kurallar ve standartlar bir bütün olarak belirtilmektedir. Ağ üzerinde birbiri ile haberleşebilen tüm cihazlar arasında iletişimi sağlamak adına belli standardizasyonlardan biri de OSI (Open Systems Interconnection) modelidir. OSI modeli ağ iletişimini tanımlayan mantıksal ve kavramsal bir modeldir. Öte yandan, TCP / IP, belirli bir bilgisayarın internete nasıl bağlanması gerektiğinin belirlemenise yardımcı olur. OSI 7 katmana sahipken, TCP / IP 4 katmana sahiptir. Siber güvenlik tehditleri 7. Katmandan başlayarak tüm OSI model katmanlarında meydana gelebilir ve her OSI katmanı farklı güvenlik önlemleri gerektirmektedir.

 

 

Uygulama Katmanı

 

Uygulama katmanı son kullanıcıya en yakın katmandır ve en büyük saldırı potansiyeline sahip OSI katmanıdır. Uygulama katmanında HTTP, SMTP, FTP, TELNET gibi protokoller yer almaktadır. Bu katman en çok erişilebilir ve dış dünya ile iletişimin en fazla olduğu OSI katmanıdır. HTTP 80 portunda çalışan veya HTTPS 443 portunda çalışan web uygulaması, uygulama katmanında DDOS, SQL Injection, XSS gibi saldırılara maruz kalabilir. Uygulama geri döndürülemez şekilde zarar görebilir veya veriler çalınabilir. Her ne kadar development aşamasında titizlik ile yazılmış güvenli kod blokları oluştursanız da zaman zaman programlama dillerindeki açıklar sisteminizi savunmasız bırakabilir. Bu noktada en güvenli yöntem WAF (Web Application Firewall) kullanmaktır. WAF gibi ürünlerle uygulamaları korumak, tehditlerin ortadan kaldırılmasını, çalınmasını veya izinsiz erişilmesini önlemek için gereklidir. 7.katmana konumlandırılacak olan bir WAF bilinen tüm saldırı türlerinin tespitinde ve engellenmesinde başarılı bir şekilde çalışmaktadır. Zaman zaman kullandığınız WAF ürününü test etmek için OWASP tarafından test amaçlı oluşturulmuş Broken Web Application gibi zafiyete sahip sanal makineler üzerinde WAF’kurulumu yaptıktan sonra test edebilirsiniz.

 

SSL / TLS

 

SSL (Secure Socket Layer) şifreleme tabanlı çalışan bir internet güvenlik protokolüdür. İnternet erişiminde gizliliği sağlamak amacıyla 1995 yılında Netscape tarafından geliştirilmiştir. SSL Bugün kullanılan modern TLS Şifrelemenin öncüsü kabul edilir. SSL/TLS uygulayan bir web sitesinin Adresinde “http” yerine “https” bulunmaktadır. İlk zamanlarda web ortamında veriler yalnızca herkesin okuyabileceği metin formatlarında iletiliyordu. SSL/TLS bu noktadaki şifreleme ihtiyacını giderdi. Örneğin bir e-ticaret sitesinde kredi kartı ile yapılan bir alışveriş sonucunda kullanıcı ile web sunucusu arasında giden her türlü bilgi şifrelenerek gizlilik sağlanmış oldu. Ayrıca SSL/TLS belli sayıdaki siber saldırıların da önüne geçebilmektedir çünkü SSL/TLS ile web sunucuların kimliği doğrulanır ve saldırganlar tarafından kullanılan sahte web siteleri gibi yöntemler üzerinde etkili olurlar. 

 

• Yüksek derecede gizlilik sağlamak için SSL, web üzerinden iletilen verileri şifreler. Bu, bu verilere müdahale etmeye çalışan herhangi birinin yalnızca şifresini çözmesi neredeyse imkansız olan bozuk karakter karışımını göreceği anlamına gelir.

 

•SSL , her iki cihazın da kimliklerini doğrulamak için iki cihaz arasında “handshake” adı verilen bir kimlik doğrulama işlemini başlatır .

 

 

 

API Seviyesinde Güvenlik

 

 

 

Artan teknolojik gelişmelerle birlikte yeniliğin temel unsuru haline gelen API’ler Bankacılık, sigortacılık, e-ticaret hatta otonom araçlardan IOT cihazlara kadar pek çok teknoloji ile beraber kullanılır hale geldi. Oturduğunuz yerden cep telefonunuzdaki bir uygulama ile evinizdeki elektrikli aletleri çalıştırırken veya tatile çıkarken pek çok oteli farklı konularda kıyaslamak istediğinizde API’leri kullanıyorsunuz. Bu gelişmeler doğrultusunda entegrasyon ve ara bağlantılar önemli bir noktaya geldikçe API’ler de giderek önem kazanmaktadır.

 

İşletmeler hizmetlerini açmak ve verilerini aktarmak amacıyla API’ler kullanırlar. Kurum içerisindeki yazılım sistemleri arasındaki iletişimde veya Web Hizmetleri olarak sunulan API’ler, güvenlik zafiyetleri karşısında büyük veri sızıntılarına veya sistemlerin tamamen kullanılamaz hale gelmelerine neden olabilirler. Veri merkezli projelere artan taleple birlikte şirketler, SOAP veya REST API'leri aracılığıyla veri ekosistemlerini dış dünyaya açtılar. API'ler , bir şirketin verilerinin kapılarıdır ve bu kapıları dış dünyaya açarken gelecek olan tehditlerden de bu API’lerin korunması hayati önem taşımaktadır.

 

API Güvenlik Tehditleri

 

Zaman zaman API’lerde meydana gelen zayıf kimlik doğrulama mekanizmaları, Şifreleme eksiklikleri ve güvenli olmayan endpointler API’lerde güvenlik zafiyetlerine sebep olmaktadır.

 

The Open Web Application Security Project (OWASP) Web güvenliği konusunda makaleler, teknolojiler üreten ve araştırmalar yaparak web güvenliğine katkı sağlayan bağımsız bir topluluktur.

 

3-4 Yılda bir yayınlamış olduğu TOP 10 Listesi ile kurum ve kuruluşların karşılaşabileceği kritik web uygulama risklerini belirlereyerek aynı zamanda çözümler üretmektedir. OWASP’a göre 2019 da yayınlanan makalede bulunan en önemli 10 güvenlik açığı şunlardır:

 

API1:2019 Broken Object Level Authorization

Listenin ilk sırasında IDOR zafiyeti (Insecure Direct Object Reference) yer almaktadır. Bir web sitesini ziyaret ettiğinizde uygulamalara nesneler üzerinden erişim sağlanır. Saldırganlar bir başka kullanıcının sahip olduğu nesneleri taklit ederek hedeflediği kişiye ait kimlik bilgilerini elde edebilir.

 

Nasıl Önlenir ? : API Aracılığıyla nesnelere erişebilen her bağlantı için erişim yetkilendirme kontrolleri içermelidir, Örneğin Access token’lar kullanmak.

 

API2:2019 Broken User Authentication

İlk maddeye benzer bir nitelikte olan bu güvenlik zafiyeti. Web uygulamasının kullanıcı doğrulaması içermediği durumlarda oturumun ele geçirilmesi, yetki değişimi, kullanıcıların kimliklerini geçici veya kalıcı olarak üstlenmek gibi problemlere yol açmaktadır.

 

Nasıl Önlenir ? : Kimlik doğrulama mekanizmaları için güçlü kimlik bilgisi şifreleme, oturum açma ve erişim sınırlandırma ve uygun kişilerin servise erişiminin sağlanması için yeterli koruma sağlanmalıdır. Örneğin JWT (Json Web Token)'lar kullanmak.

 

API3:2019 Excessive Data Exposure

API'lerin kullanıcıya döndürdüğü response içinde bir çok bilgi yer alabilir. Fakat döndürülen bu sonuç içerisinde şifre gibi kullanıcı hassas bilgilerinin filtrelenmesi gereken alanlar yer almaktadır. Tüm bu alanlar kullanıcıya yanıt paketi içinde açık bir şekilde verilirse önemli bir güvenlik zafiyeti oluşturur.

 

Nasıl Önlenir ? : API Endpointlerinin client'a döndürdüğü veri paketleri içinde veri filtrelemesi uygulanmalıdır. Örneğin Gateway seviyesinde Data Masking işlemi gerçekleştirmek bu zafiyeti önemli ölçüde ortadan kaldıracaktır.

 

API4:2019 Lack of Resources & Rate Limiting

API'ler çoğunlukla client'den gelen taleplerin miktarı, boyutu gibi durumlar karşısında bir sınırlama getirmez. İstek sınırlaması olmaksızın çalışan bir API devamlı süreçte talepleri karşılamaya çalışır bu API'nin yalnızca Hizmet Reddine (DoS) yol açmakla kalmaz aynı zamanda kaba kuvvet saldırılarına da ortam hazırlamış olur.

 

Nasıl Önlenir ? : API'lerinize gelen tüm istekler için iyi bir trafik kontrol mekanizması oluşturun. Gelen isteklerdeki boyut ve zamana göre istek sınırlarını belirleyin. Aksi taktirde sistem kaynaklarını tüketecek DDOS saldırılarına maruz kalabilirsiniz. Gateway’ler API’leriniz için çok iyi trafik ve request body size kontrol mekanizmaları oluşturur.

 

API5:2019 Broken Function Level Authorization

Farklı gruplara ve rollere sahip erişim protokolleri arasında belirsiz bir ayrım olmaması ilk maddede de yer verilen rol değişimi gibi yetkilendirme kusurlarına yol açabilir. Saldırganlar bu kusurları kullanarak normal bir kullanıcı ile admin rolünde sisteme girebilir.

 

Nasıl Önlenir ? : Servisleriniz üzerindeki rolleri iyi belirleyin ve erişim kontrol mekanizmalarınızı tutarlı yapın. Servise yetkisi ve erişimi olmayan tüm istekleri reddedin.

 

API6:2019 Mass Assignment

Kullanıcının izin verilmemesi gereken veri ögelerini değiştirmek amacıyla sistemi kötüye kullanmasıdır. Bazı endpointler bir API çağrısı ile yetkilendirilmiş kapsamın dışındaki özelliklere erişim verebilir. Bu zafiyetteki API'ler saldırganların nesneleri değiştirmek için ek parametreler üretmesine imkan verir. Örneğin, bir kullanıcının hesap bakiye bilgisi profil bilgilerinde veriliyorsa bir saldırgan hesap bakiyesini değiştirmek üzerine profile bir API çağrısı atabilir.

 

Nasıl Önlenir ? : API'lerinizin tasarım aşamasında yalnızca belirli istek formatlarında kabul edeceğiniz şemaları, türleri net bir şekilde tanımlayın. API'ler aracılığı ile alınan ancak hiçbir şekilde değişmemesi gereken tüm özelliklerin nesne şemalarında readOnly özelliğini aktif edin.

 

API7:2019 Security Misconfiguration

Genel bir güvenlik zafiyeti olmakla beraber yanlış yapılandırılmış tüm servis ayarlarını kapsamaktadır. Yanlış yapılandırılan HTTP Header'ları, izin verilen Cross-Origin kaynak paylaşımı ve hassas bilgilerin yer aldığı ayrıntılı hata mesajları örnek olarak verilebilir.

 

Nasıl Önlenir ? : Servis çıktılarını düzenli bir şekilde takip edin. Tüm API seviyesinde güvenlik testlerinizi gerçekleştirin.

 

API8:2019 Injection

Saldırganın uygun yetkilendirme olmadan verilere erişebilmek için uzaktan sunucu üzerinde istenmeyen komutları çalıştırma işlemidir. Örneğin SQL injection açığı bulunan bir serviste, servise atılan isteğe enjekte edilmiş bir SQL komutu doğrulama olmadan sisteme girme, verileri listeleyebilme gibi sorunlara yol açabilir

 

Nasıl Önlenir ? : Hem Client’dan hem de farklı sistemlerden servislerinize gelen giriş verilerini mutlaka filtreleyin. Filtrelediğiniz verileri beyaz listeye ekleyin ve SQL komutları gibi API üzerinde tehlike arz edebilecek kelimeleri reddedin.

 

API9:2019 Improper Assets Management

API'ler geleneksel web uygulamlarına göre daha fazla sorgu endpointine sahip olabilirler. Birçok kurum Web Servislerini dış dünyaya açarken Development (Geliştirme), Production (Son Ürün) gibi farklı ortamlarda çalışır. Bu ortamlar arasında farklılıklar bulunabilir örneğin geliştirme ortamında 7. maddede yer alan ayrıntılı hata mesajları bulunabilirken Ürün ortamında bulunmayabilir bu da test ortamlarını saldırganların hedefi haline getirebilir

 

Nasıl Önlenir ? : Tüm API leriniz için Test, Development ve Product gibi ortamlarınız arasında kesin bir ayrım sağlayın. Dış ortamlardan API geliştirme ortamlarınızı güvenlik katmanları ile koruyun.

 

API10:2019 Insufficient Logging & Monitoring

Şüphesiz ki API'lerin en önemli gereksinimlerinden bir tanesi loglama ve monitoring yapılma gereksinimidir. İyi derecede loglanmayan ve takip edilmeyen web servisler güvenlik zafiyetlerinin veya şüpheli eylemlerin tespit edilebilirliğinin zorlaşmasına neden olmaktadır.

 

Nasıl Önlenir ? : Loglama ve monitoring yapabileceğiniz araçlar kullanarak servislerinize gelen tüm istekleri, çıkan verileri ve trafiği devamlı kontrol altında tutarak herhangi bir şüpheli etkinlikte anomaly detection ortamı oluşturun.

 

API güvenliğinizi arttırmanın yollarından bazıları şunlardır:

 

• Token Kullanmak : Güçlü kimlik doğrulamaları oluşturmak için JWT (JSON Web Token) veya Oauth2.0 gibi katmanlar oluşturarak Bearer gibi tokenlar kullanın.

 

• Şifreleme ve imzalar kullanmak: Verileriniz TLS gibi yöntemler kullanarak şifreleyin. Doğru kullanıcıların doğru verilere erişiminden emin olmak için imzalar kullanın.

 

• Güvenlik açıklıklarını belirleyin: İyi loglama mekanizmaları ile monitoring yaparak sistem durumunuzu devamlı kontrol edin güvenlik açıklarınız fark edin ve gerekli iyileştirmeleri yapın.

 

• API Limitlerinizi Gözden Geçirin: Dışarıya açtığınız servislerin DoS ataklardan korunması için belli limitler çerçevesinde servisinze istekler alın. Body içersinde gönderilen post requestlerine boyut sınırlandırmaları getirin.

 

• Bir API Gateway Ürünü kullanın: API Gateway’ler sahip olduğunuz tüm servisleri tek bir noktadan sağlıklı bir şekilde yönetmenize imkan sağlar. Tüm servislerinizin loglarını ve performansını izleyebilir, oluşturacağanız güvenlik senaryoları ile Pek çok authorization ve authentication mekanizmaları ekleyebilirsiniz. Sisteminizin yük altında sağlıklı çalışabilmesini ve saldırganların hedefi olmaktan kurtulmasını sağlayabilirsiniz.

Mehmet Duygu

Digital Cosmonot Bilişim Danışmanlık Eğitim LTD. ŞTİ.

YORUMLAR

Yorum Ekle