A | B | C | D | E | I | |
---|---|---|---|---|---|---|
1 | ID | Kontrol | Sorumlu | ASVS | ASVS Kategorisi | Seviye |
2 | Kategori | Bilgi Toplama (Information Gathering) | ||||
3 | 1 | Web, 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öneticisi | Data Protection Verification Requirements | Veri Koruması Sınama Gereksinimleri | Orta |
4 | 2 | Uygulamada oluşan hatalar veya uygulama sunucusu ön tanımlı hata mesajları kullanıcıya detaylı olarak gösterilmemelidir. | Geliştirici, Sistem Yöneticisi | Error Handling and Logging Verification Requirements | Hata Yönetimi ve Kayıt Tutma Sınama Gereksinimleri | Orta |
5 | 3 | Uygulamaların üzerinde koştukları sunucular, servis verdikleri dizinlerin içeriklerini listelememelidir. | Sistem Yöneticisi | Access Control Verification Requirements | Erişim Kontrolü Sınama Gereksinimleri | Orta |
6 | 4 | Arama 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 Requirements | Erişim Kontrolü Sınama Gereksinimleri | Orta |
7 | Kategori | Yapılandırma Yönetimi (Configuration Management) | ||||
8 | 5 | Uygulama ç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 Requirements | Veri Koruması Sınama Gereksinimleri | Kritik |
9 | 6 | Gerekmedikçe POST/GET dışındaki HTTP metotlarına izin verilmemelidir. | Sistem Yöneticisi | Access Control Verification Requirements | Erişim Kontrolü Sınama Gereksinimleri | Orta |
10 | 7 | Ana 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 Requirements | Erişim Kontrolü Sınama Gereksinimleri | Yüksek |
11 | 8 | ASP.NET, PHP, STRUTS gibi kullanılan uygulama çatılarının güvenlik özellikleri aktif hale getirilmelidir. | Geliştirici, Sistem Yöneticisi | Data Protection Verification Requirements | Veri 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öneticisi | Authentication Verification Requirements | Kimlik Sınama Gereksinimleri | Yüksek |
13 | 10 | Hassas 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öneticisi | Session Management Verification Requirements | Oturum Yönetimi Sınama Gereksinimleri | Yüksek |
14 | 11 | Güvenli web trafiği için (SSL) güçlü şifreleme algoritmaları kullanılmalıdır, güçsüz algoritmalar inaktif hale getirilmelidir. | Sistem Yöneticisi | Cryptography Verification Requirements | Kriptoloji Sınama Gereksinimleri | Yüksek |
15 | 12 | Flash 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 Requirements | Erişim Kontrolü Sınama Gereksinimleri | Orta |
16 | 13 | SSL sunucunuzun "renegotiation" özelliğini kapatarak servis dışı bırakma ve MITM saldırılarına karşı korunaklı hale getirilmelidir. | Sistem Yöneticisi | Cryptography Verification Requirements | Kriptoloji Sınama Gereksinimleri | Yüksek |
17 | Kategori | Kimlik Doğrulama (Authentication) | ||||
18 | 14 | Zayıf parolaların kullanımına izin verilmemelidir. | Geliştirici, Sistem Yöneticisi | Cryptography Verification Requirements | Kriptoloji Sınama Gereksinimleri | Kritik |
19 | 15 | Kullanılan parolalar ve parolamı unuttum kontrol soru cevapları gibi diğer hassas veriler açık metin olarak saklanmamalıdır. | Geliştirici | Data Protection Verification Requirements | Veri Koruması Sınama Gereksinimleri | Kritik |
20 | 16 | Uygulama 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öneticisi | Communication Security Verification Requirements | İletişim Güvenliği Sınama Gereksinimleri | Kritik |
21 | 17 | Umumi 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öneticisi | Authentication Verification Requirements | Kimlik Sınama Gereksinimleri | Yüksek |
22 | 18 | Parola hash değerleri oluşturulurken tuz (salt) veriside kullanılmalıdır. | Geliştirici, Sistem Yöneticisi | Cryptography Verification Requirements | Kriptoloji Sınama Gereksinimleri | Yüksek |
23 | 19 | Kullanı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öneticisi | Cryptography Verification Requirements | Kriptoloji Sınama Gereksinimleri | Yüksek |
24 | 20 | Uygulama ü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 Requirements | Hata Yönetimi ve Kayıt Tutma Sınama Gereksinimleri | Kritik |
25 | 21 | Kullanı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ştirici | Authentication Verification Requirements | Kimlik Sınama Gereksinimleri | Yüksek |
26 | 22 | Bü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öneticisi | Authentication Verification Requirements | Kimlik Sınama Gereksinimleri | Yüksek |
27 | Kategori | Oturum Yönetimi (Session Management) | ||||
28 | 23 | Oturum 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öneticisi | Session Management Verification Requirements | Oturum Yönetimi Sınama Gereksinimleri | Kritik |
29 | 24 | Oturum bilgisinin zaman asimina ugrayacak sekilde yapılandırılmalıdır. | Sistem Yöneticisi | Session Management Verification Requirements | Oturum Yönetimi Sınama Gereksinimleri | Yüksek |
30 | 25 | Uygulamalarda 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öneticisi | Session Management Verification Requirements | Oturum Yönetimi Sınama Gereksinimleri | Yüksek |
31 | 26 | Kritik işlemlerde CSRF saldırılarına karşı "token" veya "CAPTCHA" gibi güvenlik önlemleri alınmalıdır. | Geliştirici | Access Control Verification Requirements | Erişim Kontrolü Sınama Gereksinimleri | Yüksek |
32 | 27 | Oturum 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öneticisi | Session Management Verification Requirements | Oturum Yönetimi Sınama Gereksinimleri | Yüksek |
33 | 28 | Kullanı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öneticisi | Session Management Verification Requirements | Oturum Yönetimi Sınama Gereksinimleri | Yüksek |
34 | 29 | Başarılı login işlemleri sonrası HTTP 302 ile kullanıcı dahili sayfalara yönlendirilmelidir | Geliştirici, Sistem Yöneticisi | Session Management Verification Requirements | Oturum Yönetimi Sınama Gereksinimleri | Orta |
35 | 30 | Başarılı kimlik doğrulaması sonucu erişilen linklerde sistemden tekrar çıkmak (logout) için gerekli linkler sağlanmalidir. | Geliştirici | Session Management Verification Requirements | Oturum Yönetimi Sınama Gereksinimleri | Orta |
36 | Kategori | Yetkilendirme (Authorization) | ||||
37 | 31 | GET veya POST isteklerindeki HTTP parametreleri değiştirilerek üçüncü şahısların bilgilerine yetkisiz olarak erişilmemelidir. | Geliştirici | Access Control Verification Requirements | Erişim Kontrolü Sınama Gereksinimleri | Kritik |
38 | 32 | Uygulamayı çalıştıran sistem kullanıcısının, hizmet verilen dizin dışındaki yetkileri kaldırılmalıdır | Sistem Yöneticisi | Access Control Verification Requirements | Erişim Kontrolü Sınama Gereksinimleri | Yüksek |
39 | 33 | Veritabanı kullanıcısının sadece uygulamanın kullandığı veritabanı kaynaklarına erişim hakkı olmalıdır. | Veritabanı Yöneticisi, Sistem Yöneticisi | Access Control Verification Requirements | Erişim Kontrolü Sınama Gereksinimleri | Yüksek |
40 | 34 | Veritabanı kullanıcısının veritabanına sadece uygulama sunucu IP`sinden bağlantı hakkı olmalıdır. | Veritabanı Yöneticisi, Sistem Yöneticisi | Access Control Verification Requirements | Erişim Kontrolü Sınama Gereksinimleri | Yüksek |
41 | 35 | Race-Condition'lara engel olmak için kritik kaynaklara, objelere, metotlara senkronizasyon sağlanarak eş zamanlı erişime izin verilmemelidir. | Geliştirici | Access Control Verification Requirements | Erişim Kontrolü Sınama Gereksinimleri | Yüksek |
42 | 36 | Sunucu üzerinde bulunan ve web tabanlı istatistik sağlayan uygulamalara erişim herkese açık olmamalıdır. | Sistem Yöneticisi | Access Control Verification Requirements | Erişim Kontrolü Sınama Gereksinimleri | Orta |
43 | 37 | Kı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öneticisi | Access Control Verification Requirements | Erişim Kontrolü Sınama Gereksinimleri | Yüksek |
44 | 38 | Yetki 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öneticisi | Access Control Verification Requirements | Erişim Kontrolü Sınama Gereksinimleri | Yüksek |
45 | Kategori | İş Mantığı (Business Logic) | ||||
46 | 39 | Parola güncelleme işlemleri için eski parola her zaman sorulmalıdır. | Geliştirici | Authentication Verification Requirements | Kimlik Sınama Gereksinimleri | Yüksek |
47 | 40 | Parola unuttum formları, gizli soru ve benzeri ek argümanlarla desteklenmelidir. | Geliştirici | Authentication Verification Requirements | Kimlik Sınama Gereksinimleri | Orta |
48 | 41 | Parola 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ştirici | Authentication Verification Requirements | Kimlik Sınama Gereksinimleri | Yüksek |
49 | 42 | Yönetim paneli, arayüzü gibi kritik dizinlerin isimleri kolay tahmin edilebilir olmamalıdır (admin, yonetici, administrator, yonetim, panel, etc...) | Geliştirici | Access Control Verification Requirements | Erişim Kontrolü Sınama Gereksinimleri | Orta |
50 | 43 | Uygulamalar, 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öneticisi | Data Protection Verification Requirements | Veri Koruması Sınama Gereksinimleri | Yüksek |
51 | 44 | Uygulama domain isimlerine ait hassas bilgilerin google/bing gibi arama motorları tarafından indekslenmediği kontrol edilmelidir. | Sistem Yöneticisi | Session Management Verification Requirements | Oturum Yönetimi Sınama Gereksinimleri | Yüksek |
52 | Kategori | Veri Denetimi (Data Validation) | ||||
53 | 45 | Kullanı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ştirici | Input Validation Verification Requirements | Girdi Denetimi Sınama Gereksinimleri | Yüksek |
54 | 46 | Kullanı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ştirici | Output Encoding/Escaping Verification Requirements | Çıktı Kodlama Sınama Gereksinimleri | Kritik |
55 | 47 | SQL enjeksiyonuna karşı prepared statement/parameterized query/bind variables/pozitif veri kontrolü yöntemlerinden biri veya birkaçı kullanılmalıdır. | Geliştirici | Output Encoding/Escaping Verification Requirements | Çıktı Kodlama Sınama Gereksinimleri | Kritik |
56 | 48 | XSS 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ştirici | Output Encoding/Escaping Verification Requirements | Çıktı Kodlama Sınama Gereksinimleri | Yüksek |
57 | 49 | Gü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ştirici | Input Validation Verification Requirements | Girdi Denetimi Sınama Gereksinimleri | Yüksek |
58 | 50 | Kullanıcıdan gelen ve dosya erişim işlemlerinde kullanılan girdiler normalizasyon işlemine tabi tutulmalıdır. | Geliştirici | Output Encoding/Escaping Verification Requirements | Çıktı Kodlama Sınama Gereksinimleri | Yüksek |
59 | 51 | Karşıdan dosya yükleme işlemlerinde yüklenilen dosya üzerinde isim, boyut, tip ve içerik kontrolü yapılmalıdır. | Geliştirici | Input Validation Verification Requirements | Girdi Denetimi Sınama Gereksinimleri | Yüksek |
60 | 52 | Kullanı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ştirici | Input Validation Verification Requirements | Girdi Denetimi Sınama Gereksinimleri | Yüksek |
61 | 53 | Kullanı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ştirici | Output Encoding/Escaping Verification Requirements | Çıktı Kodlama Sınama Gereksinimleri | Yüksek |
62 | 54 | Gü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ştirici | Output Encoding/Escaping Verification Requirements | Çıktı Kodlama Sınama Gereksinimleri | Yüksek |
63 | 55 | Kullanıcıdan gelen CR/LF karakterleri uygulama tarafında oldukları gibi HTTP cevap başlıklarında kullanılmamalıdır. | Geliştirici | Input Validation Verification Requirements | Girdi Denetimi Sınama Gereksinimleri | Yüksek |
64 | 56 | Uygulamaların, uygun olan her sayfada çerçeve engelleyici önlemleri (frame busting) almaları gerekmektedir. | Geliştirici | Output Encoding/Escaping Verification Requirements | Çıktı Kodlama Sınama Gereksinimleri | Orta |
65 | 57 | Uygulama hizmete girmeden önce sızma testleri yapılmalıdır. | Geliştirici | Input Validation Verification Requirements | Girdi Denetimi Sınama Gereksinimleri | Yüksek |
66 | Kategori | Hizmet Dışı Bırakma (Denial of Service) | ||||
67 | 58 | DoS 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ştirici | Authentication Verification Requirements | Kimlik Sınama Gereksinimleri | Yüksek |
68 | 59 | Genelde 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ştirici | Input Validation Verification Requirements | Girdi Denetimi Sınama Gereksinimleri | Orta |
69 | Kategori | Web Servisleri (Web Services) | ||||
70 | 60 | SOAP, Restful, XML-RPC gibi teknolojilerle geliştirilmiş web servislerine erişimlerde kimlik doğrulama kontrolü uygulanmalıdır. | Geliştirici, Sistem Yöneticisi | Authentication Verification Requirements | Kimlik Sınama Gereksinimleri | Kritik |
71 | 61 | Web 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öneticisi | Output Encoding/Escaping Verification Requirements | Çıktı Kodlama Sınama Gereksinimleri | Yüksek |
72 | Kategori | AJAX (AJAX) | ||||
73 | ||||||
74 |