ABCDEI
1
IDKontrolSorumluASVSASVS KategorisiSeviye
2
KategoriBilgi Toplama (Information Gathering)
3
1Web, Uygulama ve Veritabanı sunucularınin sistem bileşenleri hakkındaki kritik bilgileri (sunucu adı ve sürümü, kullanılan program sürümü v.b.) gizlenmelidirler.Sistem YöneticisiData Protection Verification RequirementsVeri Koruması Sınama Gereksinimleri
Orta
4
2Uygulamada oluşan hatalar veya uygulama sunucusu ön tanımlı hata mesajları kullanıcıya detaylı olarak gösterilmemelidir.Geliştirici, Sistem YöneticisiError Handling and Logging Verification RequirementsHata Yönetimi ve Kayıt Tutma Sınama GereksinimleriOrta
5
3Uygulamaların üzerinde koştukları sunucular, servis verdikleri dizinlerin içeriklerini listelememelidir.Sistem Yöneticisi Access Control Verification RequirementsErişim Kontrolü Sınama GereksinimleriOrta
6
4Arama motorları tarafından görüntülenmemesi istenen dizinler varsa, bunlar için robots.txt ile önlem alınmalıdır. Yanlız, sayfa içerisinde köprülenmeyen bağlantıların / dizinlerin (örneğin yönetim sayfası) güvenlik sorunu oluşturmaması adına robots.txt dosyasına eklenmemesi gerekmektedir.Geliştirici, Sistem Yöneticisi Access Control Verification RequirementsErişim Kontrolü Sınama GereksinimleriOrta
7
KategoriYapılandırma Yönetimi (Configuration Management)
8
5Uygulama çatısı, veritabanı, uygulama sunucusu ve web sunucusu gibi kullanılan yazılımların güvenlik yamaları en üst seviyede olmalıdır.Sistem Yöneticisi Data Protection Verification RequirementsVeri Koruması Sınama Gereksinimleri
Kritik
9
6Gerekmedikçe POST/GET dışındaki HTTP metotlarına izin verilmemelidir.Sistem Yöneticisi Access Control Verification RequirementsErişim Kontrolü Sınama GereksinimleriOrta
10
7Ana sistem için gereksiz olan dosyalara (örneğin yedekleme, arşiv, test, geliştirme için kullanılan dosyalar) erişim engellenmeli ve de sistemdeki gereksiz uygulamalar (örneğin ön tanımlı sunucu sayfaları, demo uygulamalar) kaldırılmalılar.Geliştirici, Sistem Yöneticisi Access Control Verification RequirementsErişim Kontrolü Sınama GereksinimleriYüksek
11
8ASP.NET, PHP, STRUTS gibi kullanılan uygulama çatılarının güvenlik özellikleri aktif hale getirilmelidir. Geliştirici, Sistem YöneticisiData Protection Verification RequirementsVeri Koruması Sınama Gereksinimleri
Yüksek
12
9Ön tanımlı kullanıcı hesapları sistemden, veritabanından veya uygulamadan kaldırılmalıdır.Geliştirici, Sistem Yöneticisi, Veritabanı YöneticisiAuthentication Verification RequirementsKimlik Sınama GereksinimleriYüksek
13
10Hassas bilgiler içeren web sayfalarının tarayıcılarda belleğe alınmaması için autocomplete, cache-control, pragma gibi gerekli HTTP/HTML başlıkları kullanılmalıdır.Geliştirici, Sistem YöneticisiSession Management Verification RequirementsOturum Yönetimi Sınama GereksinimleriYüksek
14
11Güvenli web trafiği için (SSL) güçlü şifreleme algoritmaları kullanılmalıdır, güçsüz algoritmalar inaktif hale getirilmelidir.Sistem YöneticisiCryptography Verification RequirementsKriptoloji Sınama GereksinimleriYüksek
15
12Flash uygulamalarında crossdomain.xml ve SilverLight uygulamalarında clientaccesspolicy.xml yapılandırma dosyalarında uygulanan politikaların güvenli olup olmadığı kontrol edilmelidir.Sistem Yöneticisi Access Control Verification RequirementsErişim Kontrolü Sınama GereksinimleriOrta
16
13SSL sunucunuzun "renegotiation" özelliğini kapatarak servis dışı bırakma ve MITM saldırılarına karşı korunaklı hale getirilmelidir.Sistem YöneticisiCryptography Verification RequirementsKriptoloji Sınama GereksinimleriYüksek
17
KategoriKimlik Doğrulama (Authentication)
18
14Zayıf parolaların kullanımına izin verilmemelidir.Geliştirici, Sistem YöneticisiCryptography Verification RequirementsKriptoloji Sınama GereksinimleriKritik
19
15Kullanılan parolalar ve parolamı unuttum kontrol soru cevapları gibi diğer hassas veriler açık metin olarak saklanmamalıdır.GeliştiriciData Protection Verification RequirementsVeri Koruması Sınama Gereksinimleri
Kritik
20
16Uygulama ile son kullanıcı arasındaki kullanıcı adı, parola, kredi kartı no, adres gibi hassas veriler HTTPS protokolü üzerinden aktarılmalıdır. Geliştirici, Sistem YöneticisiCommunication Security Verification Requirementsİletişim Güvenliği Sınama GereksinimleriKritik
21
17Umumi olmayan bütün kaynaklara ve sayfalara erişim için sunucu tarafında kimlik doğrulaması yapıldığından emin olunmalıdır.Geliştirici, Sistem YöneticisiAuthentication Verification RequirementsKimlik Sınama GereksinimleriYüksek
22
18Parola hash değerleri oluşturulurken tuz (salt) veriside kullanılmalıdır.Geliştirici, Sistem YöneticisiCryptography Verification RequirementsKriptoloji Sınama GereksinimleriYüksek
23
19Kullanıcılara dağıtılan (zarf, sözlü, e-posta yoluyla) başlangıç parolaları, kullanıcılar uygulamaya ilk giriş yaptığında değiştirilmeye zorlanmalıdır.Geliştirici, Sistem YöneticisiCryptography Verification RequirementsKriptoloji Sınama GereksinimleriYüksek
24
20Uygulama üzerinden yapılan kritik işlemler hem uygulama seviyesinde hem de sunucu seviyesinde kayıt altına alınmalıdır.Geliştirici, Sistem Yöneticisi Error Handling and Logging Verification RequirementsHata Yönetimi ve Kayıt Tutma Sınama GereksinimleriKritik
25
21Kullanıcı adı ve parola ile kimlik doğrulamasının yapıldığı kontroller tek tip hata mesajı vermek suretiyle kullanıcı adları listeleme (user enumeration) saldırılarına engel olmalıdırlar. Örnek bir hata mesajı "Girdiginiz kullanıcı adı ve/veya parola yanlıştır." seklinde olabilir.GeliştiriciAuthentication Verification RequirementsKimlik Sınama GereksinimleriYüksek
26
22Bütün başarılı ve başarısız login işlemleri ve de kaynaklara erişim denemeleri kayıt altına alınmalıdır.Geliştirici, Sistem YöneticisiAuthentication Verification RequirementsKimlik Sınama GereksinimleriYüksek
27
KategoriOturum Yönetimi (Session Management)
28
23Oturum yönetimi için kullanılan ve uygulamayı kullanan bütün kullanıcılar için tekil olması gereken değerlerin (session id, token vb.) tahmin edilemez derecede karmaşık olduğu ve güçlü bir rastgele veri üretecinden temin edildiği kontrol edilmelidir.Geliştirici, Sistem YöneticisiSession Management Verification RequirementsOturum Yönetimi Sınama GereksinimleriKritik
29
24Oturum bilgisinin zaman asimina ugrayacak sekilde yapılandırılmalıdır.Sistem YöneticisiSession Management Verification RequirementsOturum Yönetimi Sınama GereksinimleriYüksek
30
25Uygulamalarda başarılı kimlik doğrulama ve de tekrarlayan kimlik doğrulama (re-authentication) neticesinde her zaman yeni bir oturum bilgisi oluşturulmalıdır. Çıkış işleminden sonra da var olan oturum bilgisi geçersizleştirilmelidir.Geliştirici, Sistem YöneticisiSession Management Verification RequirementsOturum Yönetimi Sınama GereksinimleriYüksek
31
26Kritik işlemlerde CSRF saldırılarına karşı "token" veya "CAPTCHA" gibi güvenlik önlemleri alınmalıdır.GeliştiriciAccess Control Verification RequirementsErişim Kontrolü Sınama GereksinimleriYüksek
32
27Oturum bilgisini iceren cerezlerin (COOKIE) domain ve yol (path) bilgileri ilgili site için en uygun şekilde sınırlandırılmalıdır.Geliştirici, Sistem YöneticisiSession Management Verification RequirementsOturum Yönetimi Sınama GereksinimleriYüksek
33
28Kullanılan COOKIE değerleri için HTTPOnly parametresinin tanımlı olduğu kontrol edilmelidir. HTTPS protokolü kullanılan bağlantılarda kullanılan COOKIE değerleri için ise ek olarak secure parametresinin tanımlı olduğu kontrol edilmelidir. Geliştirici, Sistem YöneticisiSession Management Verification RequirementsOturum Yönetimi Sınama GereksinimleriYüksek
34
29Başarılı login işlemleri sonrası HTTP 302 ile kullanıcı dahili sayfalara yönlendirilmelidirGeliştirici, Sistem YöneticisiSession Management Verification RequirementsOturum Yönetimi Sınama GereksinimleriOrta
35
30Başarılı kimlik doğrulaması sonucu erişilen linklerde sistemden tekrar çıkmak (logout) için gerekli linkler sağlanmalidir.GeliştiriciSession Management Verification RequirementsOturum Yönetimi Sınama GereksinimleriOrta
36
KategoriYetkilendirme (Authorization)
37
31GET veya POST isteklerindeki HTTP parametreleri değiştirilerek üçüncü şahısların bilgilerine yetkisiz olarak erişilmemelidir.GeliştiriciAccess Control Verification RequirementsErişim Kontrolü Sınama GereksinimleriKritik
38
32Uygulamayı çalıştıran sistem kullanıcısının, hizmet verilen dizin dışındaki yetkileri kaldırılmalıdırSistem YöneticisiAccess Control Verification RequirementsErişim Kontrolü Sınama GereksinimleriYüksek
39
33Veritabanı kullanıcısının sadece uygulamanın kullandığı veritabanı kaynaklarına erişim hakkı olmalıdır.Veritabanı Yöneticisi, Sistem YöneticisiAccess Control Verification RequirementsErişim Kontrolü Sınama GereksinimleriYüksek
40
34Veritabanı kullanıcısının veritabanına sadece uygulama sunucu IP`sinden bağlantı hakkı olmalıdır.Veritabanı Yöneticisi, Sistem YöneticisiAccess Control Verification RequirementsErişim Kontrolü Sınama GereksinimleriYüksek
41
35Race-Condition'lara engel olmak için kritik kaynaklara, objelere, metotlara senkronizasyon sağlanarak eş zamanlı erişime izin verilmemelidir.GeliştiriciAccess Control Verification RequirementsErişim Kontrolü Sınama GereksinimleriYüksek
42
36Sunucu üzerinde bulunan ve web tabanlı istatistik sağlayan uygulamalara erişim herkese açık olmamalıdır.Sistem YöneticisiAccess Control Verification RequirementsErişim Kontrolü Sınama GereksinimleriOrta
43
37Kısıtlı erişim gerektiren bütün URL'ler, fonksiyonlar, obje referansları, servisler, uygulama verileri, kullanıcı bilgileri, güvenlik konfigürasyon dosyalarına erişim denetlenmelidir.Sistem YöneticisiAccess Control Verification RequirementsErişim Kontrolü Sınama GereksinimleriYüksek
44
38Yetki hakkının artık gerekmediği durumlarda (örneğin şirketi terk etme, projede rol değiştirme gibi) en kısa sürede ilgili haklar iptal edilmelidir.Sistem YöneticisiAccess Control Verification RequirementsErişim Kontrolü Sınama GereksinimleriYüksek
45
Kategoriİş Mantığı (Business Logic)
46
39Parola güncelleme işlemleri için eski parola her zaman sorulmalıdır.GeliştiriciAuthentication Verification RequirementsKimlik Sınama GereksinimleriYüksek
47
40Parola unuttum formları, gizli soru ve benzeri ek argümanlarla desteklenmelidir.GeliştiriciAuthentication Verification RequirementsKimlik Sınama GereksinimleriOrta
48
41Parola unuttum işlemlerinden sonra kullanıcıya gönderilen eposta; kullanıcı adı ve parola bilgisi içermemelidir. Bunun yerine sınırlı yaşam süresi bulunan bir link gönderilip, o link üzerinden açılan sayfadan parola değiştirme işlemi gerçekleştirilmelidir.GeliştiriciAuthentication Verification RequirementsKimlik Sınama GereksinimleriYüksek
49
42Yönetim paneli, arayüzü gibi kritik dizinlerin isimleri kolay tahmin edilebilir olmamalıdır (admin, yonetici, administrator, yonetim, panel, etc...)GeliştiriciAccess Control Verification RequirementsErişim Kontrolü Sınama GereksinimleriOrta
50
43Uygulamalar, geliştirme ortamından prodüksiyon ortamına aktarılırken gereksiz olan dosyalar (örneğin test kodlar, demo programlar, yedek dosyalar) silinmeli, şayet gerek yoksa kaynak kod aktarılmamamalı ve de aktarılacak olan kaynak kodlardaki yorum satırları silinmelidir. Aktarım esnasında dosyalarda istenmeyen bir değişikliğin olmamasıı garanti edilmelidir.Geliştirici, Sistem YöneticisiData Protection Verification RequirementsVeri Koruması Sınama GereksinimleriYüksek
51
44Uygulama domain isimlerine ait hassas bilgilerin google/bing gibi arama motorları tarafından indekslenmediği kontrol edilmelidir.Sistem Yöneticisi Session Management Verification RequirementsOturum Yönetimi Sınama GereksinimleriYüksek
52
KategoriVeri Denetimi (Data Validation)
53
45Kullanıcıdan gelen tüm girdiler sunucu tarafinda pozitif veri kontrolünden geçmelidir. Girdiler veri kontrolünden geçmeden önce canonicalization işlemine tabi tutulmalıdırlar.GeliştiriciInput Validation Verification RequirementsGirdi Denetimi Sınama GereksinimleriYüksek
54
46Kullanıcıdan gelen verilerin işletim sistemi komut satırına girmeden kontrol edilmesi ve düzgünleştirme işleminden (escape) geçirilmesi gerekmektedir.GeliştiriciOutput Encoding/Escaping Verification RequirementsÇıktı Kodlama Sınama GereksinimleriKritik
55
47SQL enjeksiyonuna karşı prepared statement/parameterized query/bind variables/pozitif veri kontrolü yöntemlerinden biri veya birkaçı kullanılmalıdır.GeliştiriciOutput Encoding/Escaping Verification RequirementsÇıktı Kodlama Sınama GereksinimleriKritik
56
48XSS saldırılarına karşı bütün kullanıcı girdileri dışarı aktarılmadan önce sunucu tarafında özel karakter kodlama (output encoding) işleminden geçmelidir. Güvenlik seviyesini artırmak için bu işlem kullanıcı girdilerinin tip, uzunluk, içerik denetlemesi yapılarak desteklenebilir.GeliştiriciOutput Encoding/Escaping Verification RequirementsÇıktı Kodlama Sınama GereksinimleriYüksek
57
49Güvensiz kaynaklardan veri alarak aritmetik işlem yapan uygulamalar, gerekli tam sayı üst sınır ve alt sınır kontrollerini gerçekleştirmelidirler.GeliştiriciInput Validation Verification RequirementsGirdi Denetimi Sınama GereksinimleriYüksek
58
50Kullanıcıdan gelen ve dosya erişim işlemlerinde kullanılan girdiler normalizasyon işlemine tabi tutulmalıdır.GeliştiriciOutput Encoding/Escaping Verification RequirementsÇıktı Kodlama Sınama GereksinimleriYüksek
59
51Karşıdan dosya yükleme işlemlerinde yüklenilen dosya üzerinde isim, boyut, tip ve içerik kontrolü yapılmalıdır.GeliştiriciInput Validation Verification RequirementsGirdi Denetimi Sınama GereksinimleriYüksek
60
52Kullanıcı parametrelerini kullanarak farklı sitelere yönlendirme yapan uygulamalarda parametrelere pozitif girdi denetimi uygulanmalı bu sayede olta saldırılarına engel olunmalıdır.GeliştiriciInput Validation Verification RequirementsGirdi Denetimi Sınama GereksinimleriYüksek
61
53Kullanıcıdan veri alarak LDAP'a bağlanan uygulamalar, gerekli girdi kontrollerini gerçekleştirmeli ve bu girdileri LDAP düzgünleştirme işleminden (escape) geçirmelidirler.GeliştiriciOutput Encoding/Escaping Verification RequirementsÇıktı Kodlama Sınama GereksinimleriYüksek
62
54Güvensiz kaynaklardan veri alarak XPath sorguları yapan uygulamalar, gerekli girdi kontrollerini gerçekleştirmeli ve bu girdileri XPath düzgünleştirme işleminden (escape) geçirmelidirler.GeliştiriciOutput Encoding/Escaping Verification RequirementsÇıktı Kodlama Sınama GereksinimleriYüksek
63
55Kullanıcıdan gelen CR/LF karakterleri uygulama tarafında oldukları gibi HTTP cevap başlıklarında kullanılmamalıdır.GeliştiriciInput Validation Verification RequirementsGirdi Denetimi Sınama GereksinimleriYüksek
64
56Uygulamaların, uygun olan her sayfada çerçeve engelleyici önlemleri (frame busting) almaları gerekmektedir.GeliştiriciOutput Encoding/Escaping Verification RequirementsÇıktı Kodlama Sınama GereksinimleriOrta
65
57Uygulama hizmete girmeden önce sızma testleri yapılmalıdır.GeliştiriciInput Validation Verification RequirementsGirdi Denetimi Sınama GereksinimleriYüksek
66
KategoriHizmet Dışı Bırakma (Denial of Service)
67
58DoS saldırısı barındıracak veya şifre deneme-yanılma gibi kaba kuvvet saldırılarına açık tüm formlara CAPTCHA veya farklı anti-otomasyon güvenlik kontrolleri uygulanmalıdır.GeliştiriciAuthentication Verification RequirementsKimlik Sınama GereksinimleriYüksek
68
59Genelde uygulamalarin arama özelliğini kötüye kullanarak veritabanı üzerinde çok detaylı arama yaptırarak işlemciyi meşgul eden SQL genel arama karakterleri (%,* v.b.) saldırılarına karşı arama süresini kısıtlamak suretiyle önlem alınmalıdır.GeliştiriciInput Validation Verification RequirementsGirdi Denetimi Sınama GereksinimleriOrta
69
KategoriWeb Servisleri (Web Services)
70
60SOAP, Restful, XML-RPC gibi teknolojilerle geliştirilmiş web servislerine erişimlerde kimlik doğrulama kontrolü uygulanmalıdır.Geliştirici, Sistem YöneticisiAuthentication Verification RequirementsKimlik Sınama GereksinimleriKritik
71
61Web servisleri için kullanılan çatıların klasik XML saldırılarına (örnegin cok büyük XML verileri, çok sık tekrarlanan XML tag'leri) ve de parametre manipülasyonları na karşı korunaklı olup olmadıkları kontrol edilmelidir.Sistem YöneticisiOutput Encoding/Escaping Verification RequirementsÇıktı Kodlama Sınama GereksinimleriYüksek
72
KategoriAJAX (AJAX)
73
74