.webp?w=1068&resize=1068,0&ssl=1)
OWASP Top 10 2021, günümüzde kuruluşların karşılaştığı en kritik web uygulama güvenlik risklerini temsil eder ve gelişen tehdit manzarasını yansıtan önemli değişimlerdir.
Kırık erişim kontrolü, test edilen uygulamaların% 94’ünü etkileyerek üst pozisyona yükseldi. Aynı zamanda, güvensiz tasarım gibi yeni kategoriler, güvenli kalkınma uygulamalarının önden önemini vurgulamaktadır.
Bu kapsamlı analiz, geliştiricilere ve güvenlik uzmanlarına bu güvenlik açıklarını etkili bir şekilde ele almak için pratik azaltma stratejileri, kod örnekleri ve yapılandırma kılavuzları sağlar.
OWASP Top 10 2021 Çerçevesine Genel Bakış
Açık Web Uygulama Güvenlik Projesi (OWASP) Top 10, geliştiriciler ve web uygulaması güvenlik profesyonelleri için standart bir farkındalık belgesi olarak hizmet eder ve web uygulamaları için en kritik güvenlik riskleri hakkında geniş bir fikir birliği temsil eder.
2021 baskısı, dört adlandırma ve kapsam değişimi olmak üzere üç yeni kategori getirdi ve mevcut tehdit modellerini daha iyi yansıtmak için mevcut birkaç riskle birleştirdi.
Mevcut OWASP Top 10 2021 listesi şunları içerir: Kırık Erişim Kontrolü (A01), Kriptografik Arızalar (A02), Enjeksiyon (A03), Güvensiz Tasarım (A04), Güvenlik Yanlış Yapılandırma (A05), Güvenlik ve Söz konusu Bileşenler (A06), Tanımlama ve Kimlik Doğrulama Başarısızlığı (A08), yazılım ve veri entegre başarısızlıkları (A08), yazılım ve veri hataları, Loging, Loging, Loging, (A09) ve Sunucu tarafı istek ambalajı (A10).
Bu çerçeve, kuruluşlara uygulamalarında bilinen riskleri en aza indirmek için eyleme geçirilebilir bilgiler sağlar ve Güvenli Gelişim için Endüstri En İyi Uygulamalarına Taahhüt.
Kritik güvenlik açığı kategorileri ve teknik azaltma
Kırık erişim kontrolü, en ciddi web uygulama güvenlik riski olarak ortaya çıkmıştır, veriler test edilen uygulamaların% 3.81’inin 318.000’den fazla olayla bir veya daha fazla yaygın zayıflık numaralandırmasına (CWE) sahip olduğunu göstermektedir.
Bu güvenlik açığı, saldırganların kullanıcı hesaplarına, yönetici panellerine, veritabanlarına ve hassas bilgilere yetkisiz erişim elde etmelerini sağlar.
Azaltma Stratejisi:
javascript// Example: Role-based access control middleware
function requireRole(allowedRoles) {
return (req, res, next) => {
const userRole = req.user?.role;
if (!userRole || !allowedRoles.includes(userRole)) {
return res.status(403).json({
error: 'Access denied: Insufficient privileges'
});
}
next();
};
}
// Usage in Express routes
app.get('/admin/users',
authenticateToken,
requireRole(['admin', 'super_admin']),
getUsersController
);
Kuruluşlar, en az ayrıcalıklı bir yaklaşım benimsemeli, rol tabanlı kimlik doğrulama mekanizmaları kullanarak güçlü erişim kontrolleri oluşturmalı ve kamu kaynakları dışında işlevlere varsayılan erişimi reddetmelidir.
Enjeksiyon saldırısı önleme
SQL enjeksiyonu ve siteler arası komut dosyası (XSS) dahil enjeksiyon güvenlik açıkları, üçüncü sırada yer almasına rağmen önemli bir tehdit olmaya devam etmektedir. Bu saldırılar, kullanıcı tarafından sağlanan veriler, doğru doğrulama olmadan sorguların bir parçası olarak kullanıldığında ortaya çıkar.
Hazırlanan ifadelerle SQL enjeksiyon önleme:
php// Vulnerable approach
$query = "SELECT * FROM users WHERE user="$username" AND password = '$password'";
$result = mysql_query($query);
// Secure approach using prepared statements
$stmt = $mysqli->prepare("SELECT * FROM users WHERE user = ? AND password = ?");
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
Hazırlanan ifade yaklaşımı, geliştiricileri SQL komutları ve kullanıcı tarafından sağlanan verileri ayrı ayrı yazmaya zorlar ve saldırganların SQL deyim mantığını değiştirmesini önler.
XSS Önleme Teknikleri:
javascript// Output encoding function
function escapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&")
.replace(//g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
// Usage in templates
const safeOutput = escapeHtml(userInput);
Kullanıcı tarafından sağlanan verilerin kod olarak yürütülmek yerine düz metin olarak görüntülenmesini sağlamak için çıktı kodlaması uygulayın ve XSS saldırılarını önlemek için içerik güvenliği ilkesi başlıklarını kullanın.
Şifreleme başarısızlıkları iyileştirme
Daha önce hassas veri maruziyeti olarak bilinen kriptografik arızalar, genellikle hassas veri maruziyetine veya sistem uzlaşmasına yol açan kriptografiye ilişkin arızalara odaklanır. Modern uygulamalar, hem dinlenme hem de transitte hassas verileri korumak için sağlam şifreleme gerektirir.
Güvenli şifre karma uygulaması:
java// Using BCrypt for secure password hashing
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
public class SecurePasswordHashing {
private static final BCryptPasswordEncoder passwordEncoder =
new BCryptPasswordEncoder(12); // Work factor of 12
public static String hashPassword(String password) {
return passwordEncoder.encode(password);
}
public static boolean verifyPassword(String password, String hashedPassword) {
return passwordEncoder.matches(password, hashedPassword);
}
}
Gelişmiş güvenlik için argon2 uygulaması:
java// Argon2 configuration for high-security applications
public class Argon2Hashing {
public static String hashPassword(String password, byte[] salt) {
int parallelism = 2; // Use 2 threads
int memory = 65536; // Use 64 MB of memory
int iterations = 3; // Run 3 iterations
int hashLength = 32; // Generate 32-byte hash
Argon2BytesGenerator generator = new Argon2BytesGenerator();
Argon2Parameters.Builder builder = new Argon2Parameters.Builder(
Argon2Parameters.ARGON2_id)
.withSalt(salt)
.withParallelism(parallelism)
.withMemoryAsKB(memory)
.withIterations(iterations);
generator.init(builder.build());
byte[] result = new byte[hashLength];
generator.generateBytes(password.toCharArray(), result);
return Base64.getEncoder().encodeToString(result);
}
}
BCrypt ve Argon2 gibi modern şifre karma algoritmaları, karma işlemi kasıtlı olarak yavaşlatır ve kaba kuvvet saldırılarını caydırmak için yerleşik tuzlama dahildir.
Sunucu tarafı istek asmeri (SSRF) önleme
SSRF güvenlik açıkları, web uygulamaları kullanıcı tarafından sağlanan URL’leri doğrulamadan uzak kaynaklar getirdiğinde meydana gelir ve saldırganların beklenmedik hedeflere hazırlanmış istekler göndermeye zorlamasına izin verir.
SSRF Önleme Yapılandırması:
python# Python example for URL validation
import re
from urllib.parse import urlparse
def validate_url(url):
# Define allowed domains
allowed_domains = ['api.trusted-service.com', 'cdn.company.com']
try:
parsed = urlparse(url)
# Check protocol
if parsed.scheme not in ['http', 'https']:
return False
# Check domain whitelist
if parsed.hostname not in allowed_domains:
return False
# Prevent private IP ranges
private_ip_pattern = re.compile(
r'^(10\.|192\.168\.|172\.(1[6-9]|2[0-9]|3[01])\.|127\.)'
)
if private_ip_pattern.match(parsed.hostname or ''):
return False
return True
except Exception:
return False
# Usage in application
if validate_url(user_provided_url):
response = requests.get(user_provided_url)
else:
raise ValueError("Invalid or unauthorized URL")
Pozitif izin listeleriyle URL şeması, bağlantı noktası ve hedef doğrulama uygulayın ve temel intranet trafiği dışındaki tümü engellemek için “varsayılan olarak reddet” güvenlik duvarı politikalarını uygulayın.
Güvenlik Yapılandırması En İyi Uygulamalar
Güvenlik yanlış yapılandırmaları, sistem veya uygulama ayarları yanlış yapılandırıldığında veya temel yapılandırmalar eksik olduğunda meydana gelir. Bu güvenlik açıkları özellikle bulut ortamlarında yaygındır.
Güvenli HTTP Başlıkları Yapılandırması:
text# Nginx security headers configuration
server {
listen 443 ssl http2;
# Security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'" always;
# CORS configuration
add_header Access-Control-Allow-Origin "https://trusted-domain.com" always;
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS" always;
add_header Access-Control-Allow-Headers "Content-Type, Authorization" always;
}
Kuruluşlar güncellenmelidir Yazılım Malzeme Faturaları (SBOMS), görünürlük için Yazılım Kompozisyon Analiz (SCA) araçlarını kullanın ve gerçek dünya senaryolarında görünür ve sömürülebilir olan bileşen güvenlik açıklarına odaklanmak için ilk bir ilk yaklaşım benimseyin.
Çözüm
OWASP’nin üst 10 güvenlik açığı ele alınması, güvenli kodlama uygulamalarını, uygun yapılandırma yönetimi ve sürekli izlemeyi birleştiren kapsamlı bir yaklaşım gerektirir.
Kuruluşlar, güvenlik hususlarını yazılım geliştirme yaşam döngüsünün başlarında entegre etmeli, sağlam kimlik doğrulama ve erişim kontrolleri uygulamalı ve ortaya çıkan tehditlere karşı uyanıklığı korumalıdır.
Güvenlikte “sola taşınma” yönünde değişim, tehdit modellemesinin, güvenli tasarım modellerinin ve proaktif güvenlik açığı yönetiminin önemini vurgulamaktadır.
Bu kılavuzda belirtilen teknik stratejileri ve kod örneklerini uygulayarak, geliştirme ekipleri uygulama güvenlik risklerini önemli ölçüde azaltabilir ve gelişen siber tehditlere karşı daha esnek sistemler oluşturabilir.
Find this News Interesting! Follow us on Google News, LinkedIn, & X to Get Instant Updates!