Vulnerable Components (Zafiyetli Bileşenler)
Genel Bakış
Bu güvenlik açığı, uygulamada kullanılan kütüphanelerin veya bileşenlerin güncel olmaması veya bilinen güvenlik açıklarına sahip olmasından kaynaklanır. Yani, kullanılan bileşenlerin düzenli olarak güncellenmemesi durumunda ortaya çıkar.
Yaygın Örnekler
1. Outdated Library Versions (Eski Kütüphane Sürümleri)
Örnek: Güvenlik güncellemeleri içeren yeni sürümlerin kullanılmaması.
// Kötü örnek
{
"dependencies": {
"express": "4.16.0",
"lodash": "4.17.4"
}
}
// İyi örnek
{
"dependencies": {
"express": "^4.18.2",
"lodash": "^4.17.21"
}
}
2. Security Updates (Güvenlik Güncellemeleri)
Örnek: Güvenlik yamalarının uygulanmaması.
// Kötü örnek npm install --save package-name // İyi örnek npm audit npm audit fix npm update
Korunma Yöntemleri
- Düzenli güvenlik taramaları yapın
- Otomatik güncelleme araçları kullanın
- Güvenlik bültenlerini takip edin
- Bağımlılık yönetimi yapın
- Güvenlik testleri uygulayın
Örnek Kod
Secure Component Management Example (Güvenli Bileşen Yönetimi Örneği)
class DependencyManager {
constructor() {
this.packageJson = require('./package.json');
this.securityChecks = [];
}
async checkDependencies() {
// npm audit çalıştır
const auditResult = await this.runNpmAudit();
// Güvenlik açıklarını kontrol et
const vulnerabilities = this.parseAuditResult(auditResult);
// Kritik açıkları raporla
this.reportCriticalVulnerabilities(vulnerabilities);
// Güncelleme önerilerini al
const updateRecommendations = this.getUpdateRecommendations();
return {
vulnerabilities,
updateRecommendations
};
}
async updateDependencies() {
// Güvenli güncellemeleri uygula
await this.runNpmAuditFix();
// Bağımlılıkları güncelle
await this.runNpmUpdate();
// Güncelleme sonrası testleri çalıştır
await this.runTests();
}
reportCriticalVulnerabilities(vulnerabilities) {
const critical = vulnerabilities.filter(v => v.severity === 'critical');
if (critical.length > 0) {
console.error('Kritik güvenlik açıkları bulundu:', critical);
}
}
}