OWASP TOP10
OWASP nedir?
OWASP (Açık Web Uygulaması Güvenlik Projesi anlamına gelir), web uygulama güvenliği, dokümantasyon, çeşitli araçlar ve teknolojiler konusunda makaleler yayınlayan çevrimiçi bir topluluktur.
OWASP Top 10 nedir?
OWASP Top 10, şu anda en yaygın on adet web uygulaması güvenlik açığının listesidir. Bu liste sayesinde kullanıcılar, en kritik risk ve tehditlerin, bunların sonuçlarının ve karşı önlemlerinin farkında olacaklardır. OWASP listesi her üç ile dört yılda bir güncellenmektedir
2021 Yılında yayınlanan OWASP Top 10 Listesi:
· A01:2021-Broken Access Control ( Bozuk Kimlik Doğrulama)
· A02:2021-Cryptographic Failures (Şifreleme Hataları)
· A03:2021-Injection (Enjeksiyon)
· A04:2021-Insecure Design ( Güvensiz Tasarım)
· A05:2021-Security Misconfiguration (Yanlış Güvenlik Yapılandırması)
· A06:2021-Vulnerable and Outdated Components ( Savunmasız ve Eski Bileşenler)
· A07:2021-Identification and Authentication Failures ( Tanımlama ve Kimlik Doğrulama Hataları)
· A08:2021-Software and Data Integrity Failures ( Yazılım ve Veri Bütünlüğü Hataları)
· A09:2021-Security Logging and Monitoring Failures ( Güvenlik Günlüğü ve İzleme Hataları)
· A10:2021-Server-Side Request Forgery ( SSRF) (Sunucu Tarafı İstek Sahteciliği)
A01: Broken Access Control ( Bozuk Kimlik Doğrulama)
Erişim denetimi, kullanıcıların amaçlanan izinleri dışında hareket edemeyecekleri ilke uygulayan bir kuraldır. Hatalar genellikle yetkisiz bilgilerin ifşa edilmesine, değiştirilmesine veya tüm verilerin imha edilmesine yol açar.
Güvenlik Açık Zafiyetleri
· Erişimin yalnızca belirli yetenekler, roller veya kullanıcılar için verilmesi gerektiği ancak herkesin erişebileceği varsayılan olarak en az ayrıcalık veya reddetme ilkesinin ihlali.
· Erişim denetimini atlatmak URL’yi (kurcalama veya göz atmaya zorlama), dahili uygulama durumunu veya HTML sayfasını değiştirerek API isteklerini değiştiren bir saldırı aracı kullanarak denetler.
· Benzersiz tanımlayıcısını ( güvensiz doğrudan nesne referansları) sağlayarak başkasının hesabını görüntüleme veya düzenlemeye izin vermek.
· CORS yanlış yapılandırması, yetkisiz / güvenilmeyen kaynaklardan API erişimine izin verir.
· Kimliği doğrulanmamış sayfalara kimliği doğrulanmamış bir kullanıcı olarak veya ayrıcalıklı sayfalara standart bir kullanıcı olarak göz atmaya zorlar.
Nasıl Önlenir
Erişim denetimi yalnızca saldırganın erişim denetimi denetimini veya meta verilerini değiştiremediği güvenilen sunucu tarafı kodunda veya sunucu içermeyen API’de etkilidir.
· Genel kaynaklar hariç, girişleri varsayılan olarak reddederek.
· Erişim denetim mekanizmalarını bir kez uygulayın ve Kökenler Arası Kaynak Paylaşımı (CORS) kullanımını en aza indirgemek de dahil olmak üzere bunları uygulama boyunca yeniden kullanın.
· Web sunucusu dizin listesini devre dışı bırakın ve dosya meta verilerinin (e.g., .git) ve yedekleme dosyaları web kökleri içerisine almayın.
· Erişim denetimi hatalarını günlüğe kaydedin, gerektiğinde yöneticileri uyarın (örn. tekrarlanan hatalar).
· Geliştiriciler ve kalite kontrol personeli, işlevsel erişim kontrol ünitesi ve entegrasyon testlerini içermelidir.
Örnek Saldırı Senaryosu;
Saldırgan uygulama hesap bilgilerine erişebilen bir SQL çağrısında doğrulanmamış verileri kullanmaktadır:
pstmt.setString(1, request.getParameter(“acct”));
ResultSet results = pstmt.executeQuery( );
Saldırgan, istediği hesap numarasını göndermek için tarayıcının ‘acct’ parametresini değiştirerek herhangi bir kullanıcı hesabına erişebilir
A02:2021- Cryptographic Failures (Şifreleme Hataları)
Çoğu web uygulaması hassas verileri gerektiği gibi korumaz. Genellikle bu açıkları sömürmenin yolları sql, kullanılan portların düzgün şifrelenmemesi ve saldırganların portlar aracılığı ile uzaktan erişim sağlaması, kullanıcı bilgilerinin ön istemcide bukunduğu dosyalara erişim olarak tanımlanabilir.
Açık Zafiyetleri
· Varsayılan olarak veya eski kodda kullanılan eski veya zayıf şifreleme algoritmaları veya protokolleri.
· Varsayılan kripto anahtarları kullanılıyor mu, zayıf kripto anahtarları üretiliyor mu veya yeniden kullanılıyor mu, yoksa uygun anahtar yönetimi veya döndürme eksik mi? Kripto anahtarları kaynak kod depolarında kontrol ediliyor mu?
· Şifreleme zorunlu değil mi, örneğin HTTP üstbilgileri (tarayıcı) güvenlik yönergeleri veya üstbilgileri eksik mi?
· Parolalar, parola temel anahtar türetme işlevinin yokluğunda şifreleme anahtarları olarak mı kullanılıyor?
Nasıl Önlenir
· Bir uygulama tarafından işlenen, depolanan veya iletilen verileri sınıflandırır. Gizlilik yasalarına, yasal gerekliliklere veya iş gereksinimlerine göre hangi verilerin hassas olduğunu belirleyin.
· Dinlenirken tüm hassas verileri şifrelediğinizden emin olun.
· Güncel ve güçlü standart algoritmaların, protokollerin ve anahtarların yerinde olduğundan emin olun; uygun anahtar yönetimini kullanın.
· Hassas veriler içeren yanıt için önbelleğe almayı devre dışı bırakın.
· Hassas verileri taşımak için FTP ve SMTP gibi eski protokolleri kullanmayın.
· MD5, SHA1, PKCS number 1 v1.5 gibi kullanımdan kaldırılmış şifreleme işlevlerinden ve doldurma düzenlerinden kaçının.
Örnek Saldırı Senaryosu;
Senaryo 1-) Bir uygulama, otomatik veritabanı şifrelemesini kullanarak veritabanındaki kredi kartı numaralarını şifreler. Bununla birlikte, bu veriler alındığında otomatik olarak şifresi çözülür ve bir SQL enjeksiyon kusurunun kredi kartı numaralarını clear text olarak almasına izin verir.
Senaryo 2-) Bir site tüm sayfaları için TLS şifreleme kullanmaz veya zayıf şifrelemeyi desteklerse (HTTP,HTTPS) saldırgan ağ trafiğini izleyerek, bağlantıları HTTPS’den HTTP’ye düşürür, istekleri engeller ve kullanıcın cookie bilgilerini çalabilir. Saldırgan daha sonra bu çerezi tekrarlar ve kullanıcının özel verilerine erişerek veya değiştirerek kullanıcın oturumunu ele geçirebilir ya da taşınan tüm veriler, örneğin bir para transferinin alıcısnı değişitirebilirler.
A03:2021- Injection (Enjeksiyon)
Injection zafiyetleri genellikle kullanıcıdan alınan, kontrol edilemeyen ya da önlem alınmayan verilerden kaynaklanır. Saldırganlar sistemin beklediğinden daha farklı veriler göndererek sistemde komutlarını çalıştırabilirler. Verilere izinsiz erişebilir ve yetki yükseltme saldırıları ile sistemin içine kalıcı olarak sızabilirler.
Açık Zafiyetleri
· Dinamik sorgular veya bağlam farkında olmayan parametreli olmayan çağrılar doğrudan yorumlayıcıda kullanılır.
· Düşman veriler, ek, hassas kayıtları ayıklamak için nesne ilişkisel eşleme (ORM) arama parametrelerinde kullanılır.
· Kullanıcı tarafından sağlanan veriler uygulama tarafından doğrulanmaz, filtrelenmez veya dezenfekte edilmezse.
· Düşmanca veriler doğrudan kullanılır veya birleştirilir. SQL veya komut, dinamik sorgular, komutlar veya saklı yordamlardaki yapıyı ve kötü amaçlı verileri içerir.
Daha yaygın enjeksiyonlardan bazıları SQL, NoSQL, OS komutu, Nesne İlişkisel Eşleme (ORM), LDAP ve İfade Dili (EL) veya Nesne Grafiği Gezinme Kitaplığı (OGNL) enjeksiyonudur. Bu kavram tüm tercümanlar arasında aynıdır. Kaynak kodu incelemesi, uygulamaların enjeksiyonlara karşı savunmasız olup olmadığını tespit etmenin en iyi yöntemidir. Tüm parametrelerin, başlıkların, url’lerin, çerezlerin, JSON, SOAP ve XML veri girişlerinin otomatik olarak test edilmesi şiddetle tavsiye edilir. Kuruluşlar, üretim dağıtımından önce tanıtılan enjeksiyon kusurlarını belirlemek için CI / CD boru hattına statik (CAST), dinamik (CAST) ve etkileşimli (SON) uygulama güvenliği test araçlarını dahil edebilir.
Nasıl Önlenir:
· Pozitif sunucu tarafı giriş doğrulaması kullanın. Birçok uygulama, mobil uygulamalar için metin alanları veya API’ler gibi özel karakterler gerektirdiğinden, bu tam bir savunma değildir
· Artık dinamik sorgular için, söz konusu yorumlayıcı için özel kaçış sözdizimini kullanarak özel karakterlerden kaçın.
o Not: Tablo adları, sütun adları vb. Gibi SQL yapıları kaçamaz ve bu nedenle kullanıcı tarafından sağlanan yapı adları tehlikelidir. Bu, rapor yazma yazılımında sık karşılaşılan bir sorundur.
· SQL enjeksiyonu durumunda kayıtların toplu olarak açıklanmasını önlemek için sorgular içindeki LİMİT ve diğer SQL denetimlerini kullanın.
Örnek Saldırı Senaryosu;
Bir uygulama, aşağıdaki savunmasız SQL çağrısının oluşturulmasında güvenilmeyen verileri kullanır:
String query = “SELECT \* FROM accounts WHERE custID=’” + request.getParameter(“id”) + “‘“;
A04:2021 — Insecure Design ( Güvensiz Tasarım)
Güvensiz tasarım, “eksik veya etkisiz kontrol tasarımı” olarak ifade edilen farklı zayıflıkları temsil eden geniş bir kategoridir.” Güvensiz tasarım, diğer tüm ilk 10 risk kategorisinin kaynağı değildir. Güvenli olmayan tasarım ve güvenli olmayan uygulama arasında bir fark vardır. Tasarım kusurları ile uygulama kusurları arasında bir nedenden dolayı ayrım yapıyoruz, farklı kök nedenleri ve düzeltmeleri var. Güvenli bir tasarım, istismar edilebilecek güvenlik açıklarına yol açan uygulama hatalarına sahip olabilir. Güvenli olmayan bir tasarım mükemmel bir uygulama ile düzeltilemez, çünkü tanım gereği, belirli saldırılara karşı savunmak için gerekli güvenlik kontrolleri hiçbir zaman oluşturulmamıştır. Güvensiz tasarıma katkıda bulunan faktörlerden biri, geliştirilmekte olan yazılım veya sistemin doğasında bulunan iş riski profillemesinin olmaması ve dolayısıyla hangi düzeyde güvenlik tasarımının gerekli olduğunun belirlenememesidir.
Nasıl Önlenir
· Güvenlik ve gizlilikle ilgili denetimlerin değerlendirilmesine ve tasarlanmasına yardımcı olmak için AppSec uzmanları ile güvenli bir geliştirme yaşam döngüsü oluşturun ve kullanın.
· Güvenli tasarım desenleri veya asfalt yol kullanıma hazır bileşenlerden oluşan bir kütüphane oluşturun ve kullanın
· Uygulamanızın her katmanında (ön uçtan arka uca) inandırıcılık denetimlerini entegre edin
· Pozlama ve koruma gereksinimlerine bağlı olarak sistemdeki katman katmanlarını ve ağ katmanlarını ayırın
Örnek Saldırı Senaryosu;
Bir sinema zinciri, grup rezervasyon indirimlerine izin verir ve depozito talep etmeden önce en fazla on beş katılımcıya sahiptir. Saldırganlar bu akışı modellemekle tehdit edebilir ve birkaç talepte altı yüz koltuk ve tüm sinemaları aynı anda rezerve edip edemeyeceklerini test ederek büyük bir gelir kaybına neden olabilirler.
A05:2021-Security Misconfiguration( Yanlış Güvenlik Yapılandırması)
Yanlış Güvenlik Yapılandırması, Güvenlik ayarları varsayılan olarak tanımlandığında, uygulandığında ve sürdürüldüğünde ortaya çıkar. İyi güvenlik, uygulama, web sunucusu, veritabanı sunucusu ve platform için tanımlanmış ve dağıtılmış güvenli bir yapılandırma gerektirir. Yazılımın güncel olması da aynı derecede önemlidir.
Nasıl Önlenir
· Tekrarlanabilir bir sertleştirme işlemi, uygun şekilde kilitlenmiş başka bir ortamın dağıtılmasını hızlı ve kolay hale getirir. Geliştirme, Kalite Güvencesi ve üretim ortamlarının tümü, her ortamda kullanılan farklı kimlik bilgileriyle aynı şekilde yapılandırılmalıdır. Bu süreç, yeni bir güvenli ortam oluşturmak için gereken çabayı en aza indirmek için otomatikleştirilmelidir.
· Gereksiz özellikler, bileşenler, belgeler ve örnekler içermeyen minimal bir platform. Kullanılmayan özellikleri ve çerçeveleri kaldırın veya yüklemeyin.
· İstemcilere güvenlik yönergelerinin gönderilmesi, ör. Güvenlik Başlıkları.
· Tüm ortamlardaki yapılandırmaların ve ayarların etkinliğini doğrulamak için otomatikleştirilmiş bir işlem.
Örnek Saldırı Senaryosu;
Uygulama sunucusu, üretim sunucusundan kaldırılmayan örnek uygulamalarla birlikte gelir. Bu örnek uygulamalar, saldırganların sunucuyu tehlikeye atmak için kullandıkları bilinen güvenlik kusurlarına sahiptir. Bu uygulamalardan birinin yönetici konsolu olduğunu ve varsayılan hesapların değiştirilmediğini varsayalım. Bu durumda, saldırgan varsayılan parolalarla oturum açar ve devralır.
A06:2021-Vulnerable and Outdated Components(Savunmasız ve Eski Bileşenler)
Kütüphaneler, framework’ler ve diğer yazılım bileşenleri, uygulama ile aynı ayrıcalıklarla çalışır. Savunmasız bir bileşenden yararlanılırsa, bu tür bir saldırı, ciddi veri kaybını veya sunucunun ele geçirilmesini kolaylaştırabilir. Güvenlik açıkları olması muhtemel bileşenleri kullanan uygulamalar ve API’ler, uygulama savunmalarını zayıflatabilir ve çeşitli saldırılara ve etkilere imkan vermektedir.
Nasıl Önlenir
· Bileşenleri yalnızca resmi kaynaklardan güvenli bağlantılar üzerinden edinin. Değiştirilmiş, kötü amaçlı bir bileşen ekleme olasılığını azaltmak için imzalı paketleri tercih edin (Bkz. A08: 2021-Yazılım ve Veri Bütünlüğü Hataları).
· Korunmayan veya eski sürümler için güvenlik düzeltme ekleri oluşturmayan kitaplıkları ve bileşenleri izleyin. Düzeltme eki mümkün değilse, keşfedilen sorunu izlemek, algılamak veya bu soruna karşı korumak için sanal bir düzeltme eki dağıtmayı düşünün.
Örnek Saldırı Senaryosu;
Bileşenler genellikle uygulamanın kendisiyle aynı ayrıcalıklarla çalışır, bu nedenle herhangi bir bileşendeki kusurlar ciddi etkilere neden olabilir. Bu tür kusurlar tesadüfi (örneğin, kodlama hatası) veya kasıtlı (örneğin, bir bileşendeki bir arka kapı) olabilir. Keşfedilen bazı sömürülebilir bileşen güvenlik açıkları şunlardır:
Sunucuda rasgele kod yürütülmesini sağlayan bir Struts2 uzaktan kod yürütme güvenlik açığı olan CVE-2017–5638, önemli ihlallerden sorumlu tutulmuştur.
Nesnelerin interneti (IoT) yama yapmak genellikle zor veya imkansız olsa da, yamalamanın önemi büyük olabilir (örneğin, biyomedikal cihazlar).
Saldırganların eşleşmemiş veya yanlış yapılandırılmış sistemleri bulmalarına yardımcı olacak otomatik araçlar vardır. Örneğin, Shodan IoT arama motoru, Nisan 2014'te düzeltilen Heartbleed güvenlik açığından hala muzdarip cihazları bulmanıza yardımcı olabilir.
A07:2021-Identification and Authentication Failures (Tanımlama ve Kimlik Doğrulama Hataları)
Tanımlama ve kimlik doğrulama hataları, bir saldırganın sistemdeki herhangi bir hesabın kontrolünü ele geçirmek için manuel veya otomatik yöntemler kullanmasına veya daha kötüsü sistem üzerinde tam kontrol sağlamasına izin verebilir.
Açık Zafiyetleri
· Saldırganın geçerli kullanıcı adları ve parolaların bir listesine sahip olduğu kimlik bilgisi doldurma gibi otomatik saldırılar.
· “Password1” veya “admin / yönetici” gibi varsayılan, zayıf veya iyi bilinen parolalar.
· Eksik veya etkisiz çok faktörlü kimlik doğrulamaya sahip olmak.
· Başarılı oturum açtıktan sonra oturum tanımlayıcısını yeniden kullanmak.
Nasıl Önlenir
· Özellikle yönetici kullanıcılar için varsayılan kimlik bilgileriyle göndermeyin veya dağıtmayın.
· En kötü 10.000 parola listesine karşı yeni veya değiştirilmiş parolaları sınama gibi zayıf parola denetimleri uygulayın.
· Parola uzunluğu, karmaşıklığı ve döndürme politikalarını Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) 800–63b’nin Ezberlenmiş Sırlar veya diğer modern, kanıta dayalı parola politikaları için bölüm 5.1.1'deki yönergeleriyle uyumlu hale getirin.
· Oturum açtıktan sonra yüksek entropiye sahip yeni bir rasgele oturum kimliği oluşturan sunucu tarafında, güvenli, yerleşik bir oturum yöneticisi kullanın. Oturum tanımlayıcısı URL’de olmamalı, güvenli bir şekilde saklanmalı ve oturum kapatma, boşta kalma ve mutlak zaman aşımlarından sonra geçersiz kılınmalıdır.
Örnek Saldırı Senaryosu;
Kimlik bilgisi doldurma, bilinen şifre listelerinin kullanılması yaygın bir saldırıdır. Bir uygulamanın otomatik tehdit veya kimlik bilgisi doldurma koruması uygulamadığını varsayalım. Bu durumda, uygulama kimlik bilgilerinin geçerli olup olmadığını belirlemek için bir parola kahini olarak kullanılabilir.
A08:2021-Software and Data Integrity Failures (Yazılım ve Veri Bütünlüğü Hataları)
Yazılım ve veri bütünlüğü hataları, bütünlük ihlallerine karşı koruma sağlamayan kod ve altyapı ile ilgilidir. Bunun bir örneği, bir uygulamanın güvenilmeyen kaynaklardan, depolardan ve içerik dağıtım ağlarından (CDN’LER) eklentilere, kitaplıklara veya modüllere dayanmasıdır. Güvenli olmayan bir CI /CD ardışık düzeni, yetkisiz erişim, kötü amaçlı kod veya sistem tehlikeye girme potansiyeli doğurabilir. Son olarak, birçok uygulama artık güncellemelerin yeterli bütünlük doğrulaması yapılmadan indirildiği ve daha önce güvenilen uygulamaya uygulandığı otomatik güncelleme işlevini içeriyor. Saldırganlar, dağıtılmak ve tüm yüklemelerde çalıştırılmak üzere potansiyel olarak kendi güncellemelerini yükleyebilir. Başka bir örnek, nesnelerin veya verilerin bir saldırganın görebileceği ve değiştirebileceği bir yapıya kodlandığı veya seri hale getirildiği yerdir.
Nasıl Önlenir
· Yazılımın veya verilerin beklenen kaynaktan geldiğini ve değiştirilmediğini doğrulamak için dijital imzalar veya benzeri mekanizmalar kullanın.
· Bileşenlerin bilinen güvenlik açıkları içermediğini doğrulamak için OWASP Dependency Check veya OWASP CycloneDX gibi bir yazılım tedarik zinciri güvenlik aracının kullanıldığından emin olun
· Kötü amaçlı kod veya yapılandırmanın yazılım boru hattınıza girme olasılığını en aza indirmek için kod ve yapılandırma değişiklikleri için bir inceleme süreci olduğundan emin olun.
· İmzasız veya şifrelenmemiş serileştirilmiş verilerin, serileştirilmiş verilerin tahrif edilmesini veya yeniden oynatılmasını algılamak için bir tür bütünlük denetimi veya dijital imza olmadan güvenilmeyen istemcilere gönderilmediğinden emin olun
Örnek Saldırı Senaryosu;
SolarWinds Kötü Amaçlı Güncelleme : Ulus devletlerin güncelleme mekanizmalarına saldırdığı biliniyor ve son zamanlarda kayda değer bir saldırı SolarWinds Orion saldırısı. Yazılımı geliştiren şirket, güvenli yapı ve güncelleme bütünlüğü süreçlerine sahipti. Yine de, bunlar altüst edilebildi ve birkaç ay boyunca firma, yaklaşık 100'ü etkilenen 18.000'den fazla kuruluşa yüksek oranda hedeflenmiş kötü amaçlı bir güncelleme dağıttı. Bu, tarihteki bu nitelikteki en geniş kapsamlı ve en önemli ihlallerden biridir.
A09:2021-Security Logging and Monitoring Failures (Güvenlik Günlüğü ve İzleme Hataları)
Doğrudan bu sorunlardan kaynaklanabilecek bir güvenlik açığı yoktur, ancak genel olarak günlüğe kaydetme ve izleme oldukça krtiktir ve bunların yokluğu veya arızaları olayları doğrudan etkileyebilir. Bu nedenle, günlük toplamak ve herhangi bir hata veya arıza durumunda uyarı vermek için işlevsel bir kayıt ve izleme sistemine sahip olmak çok önemlidir, aksi takdirde bunlar uzun süre fark edilmeyebilir ve çok daha fazla hasara neden olabilmektedir.
Nasıl Önlenir
· Günlüğe kaydetme veya izleme sistemlerine yapılan enjeksiyonları veya saldırıları önlemek için günlük verilerinin doğru şekilde kodlandığından emin olun.
· DevSecOps ekipleri, şüpheli faaliyetlerin hızlı bir şekilde tespit edilip yanıtlanması için etkin izleme ve uyarı oluşturmalıdır.
· Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) 800–61r2 veya sonrası gibi bir olay müdahale ve kurtarma planı oluşturun veya benimseyin.
· Günlüklerin, günlük yönetimi çözümlerinin kolayca tüketebileceği bir biçimde oluşturulduğundan emin olun.
Örnek Saldırı Senaryosu
Bir çocuk sağlığı planı sağlayıcısının web sitesi operatörü, izleme ve günlüğe kaydetme eksikliği nedeniyle bir ihlal tespit edemedi. Dışarıdan bir taraf, sağlık planı sağlayıcısına bir saldırganın 3,5 milyondan fazla çocuğun binlerce hassas sağlık kaydına eriştiğini ve bu kayıtları değiştirdiğini bildirdi. Olay sonrası yapılan bir inceleme, web sitesi geliştiricilerinin önemli güvenlik açıklarını ele almadığını tespit etti. Sistemin günlüğe kaydedilmesi veya izlenmesi olmadığından, veri ihlali yedi yıldan uzun bir süre olan 2013'ten bu yana devam ediyor olabilir.
A10:2021-Server-Side Request Forgery(SSRF) (Sunucu Taraflı İstek Sahteciliği)
SSRF güvenlik açıkları, bir saldırganın güvenlik açığı bulunan bir uygulamanın arka uç sunucusundan hazırlanmış istekler göndermesine olanak tanır. Saldırganlar genellikle güvenlik duvarlarının arkasındaki ve harici ağdan erişilemeyen dahili sistemleri hedeflemek için SSRF saldırılarını kullanır.
Nasıl Önlenir
Ağ Katmanı;
· Ssrf’nin etkisini azaltmak için uzaktan kaynak erişim işlevselliğini ayrı ağlarda segmentlere ayırın
· Gerekli intranet trafiği dışında tümünü engellemek için “varsayılan olarak reddet” güvenlik duvarı ilkelerini veya ağ erişim denetimi kurallarını zorlayın.
· İpuçları:
o Uygulamalara dayalı güvenlik duvarı kuralları için bir sahiplik ve yaşam döngüsü oluşturun.
o Güvenlik duvarlarında kabul edilen ve engellenen tüm ağ akışlarını günlüğe kaydedin (bkz. A09: 2021-Güvenlik Günlüğü ve İzleme Hataları).
Uygulama Katmanı;
· İstemci tarafından sağlanan tüm girdi verilerini sterilize edin ve doğrulayın.
· HTTP yeniden yönlendirmelerini devre dışı bırakın.
· DNS yeniden bağlama ve “kontrol zamanı, kullanım zamanı” (TOCTOU) yarış koşulları gibi saldırılardan kaçınmak için URL tutarlılığına dikkat edin.
Örnek Saldırı Senaryosu
Bağlantı noktası taraması dahili sunucular — Ağ mimarisi bölümlere ayrılmamışsa, saldırganlar dahili ağları eşleyebilir ve bağlantı noktalarının bağlantı sonuçlarından veya SSRF yük bağlantılarını bağlamak veya reddetmek için geçen süreden dahili sunucularda açık veya kapalı olup olmadığını belirleyebilir.