laravel lang paketleri ele geçirilmiş, kimlik bilgisi çalan zararlı yayılmış
arkadaşlar, php laravel kullanan varsa hemen dinlesin. laravel lang diye popüler bir yerelleştirme (localization) paketi var, onu ele geçirmişler ve içine kimlik bilgisi çalan zararlı yazılım koymuşlar. github’daki version tag’lerini kötüye kullanarak composer üzerinden dağıtmışlar bu zararlıyı. ciddi ciddi kontrol edin projelerinizi.
ne olmuş yani?
saldırganlar laravel lang paketlerinin github deposuna sızmış. sonra ne yapmışlar? version tag’lerini manipüle ederek composer’a sahte sürümler yollamışlar. yani siz composer update dediğinizde meşru paket yerine zararlı paket gelmiş sisteminize. klasik supply chain attack yani, ama bu sefer hedef php/laravel ekosistemi.
spoiler: bu tür saldırılarda zararlı kod genelde kimlik bilgilerinizi (github token, aws key, database password vs.) çalıp uzak sunuculara yolluyor. sonra da oturuyorlar sisteminize rahatça.
teknik detaylar
saldırı şöyle işlemiş:
- github tag manipülasyonu: saldırganlar github’da version tag’lerini değiştirerek zararlı kod enjekte etmişler
- composer dağıtımı: composer bu tag’lere güvendiği için zararlı paketi meşru sanıp indirmiş
- credential harvesting: zararlı kod çalıştığında
.envdosyaları, environment variable’lar, config dosyaları taranmış - data exfiltration: toplanan kimlik bilgileri saldırganların sunucusuna gönderilmiş
dikkat: bu saldırıda spesifik bir CVE numarası yok çünkü bu bir yazılım zafiyeti değil, supply chain attack. ama yine de ciddiye alın.
etkilenen sistemler
| Sistem/Paket | Durum |
|---|---|
| laravel/lang paketleri | ✅ Etkileniyor |
| composer kullanan projeler | ✅ Risk altında |
| manuel kurulum | ❌ Etkilenmiyor |
| diğer php paketleri | ❌ Şimdilik güvende |
şimdi ne yapacaksınız?
hemen şunları yapın agalar:
1. paket versiyonlarını kontrol edin
# composer.lock dosyanızı kontrol edin
cat composer.lock | grep -A 5 "laravel-lang"
# kurulu paketleri listeleyin
composer show laravel-lang/*
2. zararlı versiyonları temizleyin
# önce yedek alın (bunu atlamayın)
cp composer.lock composer.lock.backup
cp composer.json composer.json.backup
# şüpheli paketleri kaldırın
composer remove laravel-lang/lang
composer remove laravel-lang/locales
composer remove laravel-lang/publisher
# cache'i temizleyin
composer clear-cache
3. kimlik bilgilerinizi değiştirin
önemli: eğer etkilendiyseniz şunları hemen yapın:
# .env dosyanızı kontrol edin
cat .env | grep -E "(PASSWORD|SECRET|KEY|TOKEN)"
# değiştirilmesi gerekenler:
# - database şifreleri
# - api key'ler
# - github token'lar
# - aws credentials
# - mail server şifreleri
4. log kayıtlarını inceleyin
# composer log'larına bakın
cat ~/.composer/cache.log
# laravel log'larını kontrol edin
tail -f storage/logs/laravel.log
# şüpheli network aktivitesi var mı?
netstat -an | grep ESTABLISHED
5. güvenli versiyonları yükleyin
# resmi laravel-lang deposundan temiz versiyonu çekin
composer require laravel-lang/lang:^13.0 --update-no-dev
# integrity check yapın
composer validate
geçici çözümler
eğer hemen paket güncelleyemiyorsanız:
- network izolasyonu: etkilenen sunucuların dışarı bağlantısını kesin (firewall)
# outbound bağlantıları engelleyin (geçici)
iptables -A OUTPUT -p tcp --dport 80 -j DROP
iptables -A OUTPUT -p tcp --dport 443 -j DROP
- monitoring: şüpheli aktivite izleyin
# file integrity monitoring
find /var/www -name "*.php" -mtime -7 -ls
- kimlik bilgilerini rotate edin: her şeyi değiştirin, paranoyak olun
nasıl korunursunuz?
edit: gelecekte böyle şeylere yakalanmamak için:
composer.lockdosyasını git’e commit edin, değişiklikleri takip edin- dependency scanning araçları kullanın (snyk, dependabot)
- paket güncellemelerini otomatik yapmayın, önce test ortamında deneyin
.envdosyalarını asla git’e atmayın (zaten yapmıyorsunuzdur umarım)- environment variable’ları secret manager’larda tutun (aws secrets manager, vault vs.)
- composer paketlerini kendi private registry’nizde mirror’layın
kaynaklar
sonuç
arkadaşlar supply chain attack’ler artık çok yaygın. npm’de oldu, pypi’da oldu, şimdi de composer’da oluyor. güvendiğiniz paketler bile ele geçirilebiliyor. o yüzden:
- dependency’lerinizi sürekli izleyin
- güncellemeleri körü körüne yapmayın
- kimlik bilgilerinizi güvende tutun
- monitoring ve alerting kurun
şimdi gidin kontrol edin projelerinizi, sonra “benim başıma gelmez” demeyin. laravel kullanan herkes risk altında bu saldırıda.
spoiler: eğer etkilendiyseniz ve production’da çalışan sistemleriniz varsa, incident response planınızı devreye sokun. bu ciddi bir güvenlik olayı.
hadi kolay gelsin, umarım etkilenmemişsinizdir. sorularınız varsa yorumlarda buluşalım.
Bu içerik yapay zeka tarafından oluşturulmuştur.
