Aşılama Teorisi
Markanız için 300X300 alan.
Aşılama teorisine göre Aşılama; bir saldırganın yorumlayıcıya, yorumlayıcıda anlamı dışında anlaşılacak biçimdeki kodları gönderme girişimidir. En önemli iki örnek HTML Aşılama (XSS) ve SQL Aşılama'dır. SQL aşılamada 101
yerine 101 or 1=1
kodu gönderilirse yalnızca bir kayıt yerine (1=1
her zaman karşılandığından) tüm kayıtlar döndürülür.
Yorumlayıcılar bir çok yetkiyle çalıştıklarından ötürü verilerin değiştirilmesi & silinmesi, yazılımın (uygulamanın) ve hatta sunucunun elden çıkması gibi ağır sonuçlara neden olabilirler. Yazılım güvenliği söz konusu olduğunda aşılamanın güvenlik risklerinde oldukça büyük payı vardır. Yalnızca veri giriş ve çıkışlarında güvenlik alınması yeterli değildir, kullanılan FrameWork'ler de güvenli kılınmalıdır.
Aşılama Teorisi - Güvenilmeyen Veriler
Kullanıcıdan alınan bütün veriler GÜVENİLMEYEN VERİdir. HTTP başlıkları, çerez bilgileri, form ögeleri, URL değişkenleri GÜVENİLMEYEN VERİLERdir... Veritabanlarından gelen veriler, veb hizmetleri ve diğer kaynaklardan gelen veriler de güvenlik bakış açısından GÜVENİLMEYEN VERİ kabul edilir.
Yazılıma gerçekleşen veri akışı türlü biçimlerde, sık sık parçalara ayrılır, güvenli veriyle birleştirilir, dönüştürülür, onaylanır ve enkodlanır. Bir veri yorumlayıcıya ulaşmadan önce düzinelerce farklı işlemden geçirilir. Bu da aşılama sorunlarını belirlemeyi çok zorlaştırır.
Aşılama Teorisi - Aşılama İçeriği
Bir yazılım tarafından kullanılan güvenilmeyen veri genellikle ya komuta ya da belgeye ya da başka bir yapıya eklenir. Bunlara aşılama içeriği denir. Aşılama içeriklerinden bazıları :
- İşletim sistemi komut yorumlayıcıları
- SQL sorguları
- HTML belgeleri
- HTTP başlıkları
URL
ler- Dosya yolları
- JSON yapıları
- XML belgeleri
- LDAP sorguları
- Herhangi bir yazılım çağırıcı
- ve benzeri
Aşılama Teorisi - Çözümleyiciler
Her yorumlayıcının bir çözümleyicisi vardır. Aşılama saldırıları o çözümleyiciyi hedefler. Yorumlayıcıya gönderilen verinin saldırıyı amacına ulaştıracak biçimde çözümlenmesi hedeflendiğinden ötürü yorumlayıcının çözümleyicisinin nasıl çalıştığının iyi anlaşılması başarılı bir saldırının anahtarıdır ve bu da, asıl olarak, aşılamalara karşı önlem almaya giden yoldur.
Aşılama Teorisi - Savunma & Veri Doğrulama
Hangi verinin nereye nasıl geldiğini sınamak tek başına yeterli değildir. Önemli olmak ve uygulanması gerekmekle birlikte, veri doğrulama işleminde hangi tamganın hangi yorumlayıcıda neye yol açacağı göz önünde bulundurulmadığından ötürü ana savunma hattı olarak veri kaçma (escaping - encode) işlemi ardından veri doğrulama işlemi kullanılmalı.
Aşılama Teorisi - Savunma & Veri Kaçma & Escaping & Encode
Veri kaçma, tamgaların yorumlayıcının çözümleyicisi tarafından -işleme alınan tamga olarak değil de- veri olarak yorumlanacak biçimde dönüştürülmesidir.
Unicode tamga dönüştürme işlemi (Unicode character encoding) ile veri kaçma (output encoding) birbirine karıştırılmamalı çünkü Unicode ile dönüştürülen (enkod edilen) tamgalar yine kendiliğinden geri dönüştürülürler (dekod edilirler) ve bu yüzden güvenlik sağlamazlar.
Ayrıca sunucu ile tarayıcı arasındaki tamga seti ile ilgili yanlış anlaşılmalar araya yabancı (zararlı) tamgaların girmesiyle birlikte XSS ile sonuçlanabilir. Bu yüzden Unicode tamga setleri tanımlanmış olmalıdır, HTML belgeleri için UTF-8
gibi.
<html>
etiketinde ilk 1024 bayt içinde <meta>
etiketi ile yapılması gereken tamga kodlama tanımı:
<meta charset="UTF-8">