🔒 Güvenlik Analizi

Muzibu Şarkı Koruma Sistemi

Mevcut Güvenlik Durumu ve İyileştirme Önerileri

📅 09 Ocak 2026 - Versiyon 1

📝 Basit Anlatım (Herkes İçin)

Durum: Muzibu'da şarkılar HLS teknolojisi ile yayınlanıyor. Bu, YouTube'un kullandığı yöntem gibi - şarkı küçük parçalara bölünüyor ve sırayla oynatılıyor.

Mevcut Koruma: Her parçanın bir şifresi (token) var ve 30 dakika sonra geçersiz oluyor. Ayrıca sadece premium üyeler dinleyebiliyor.

Sorun: Teknik bilgisi olan birisi bu parçaları toplayıp birleştirerek tam şarkıyı kaydedebilir. Chrome DevTools gibi araçlarla segmentleri görebilir ve ffmpeg ile birleştirebilir.

⚠️ Gerçek: İnternette yayınlanan hiçbir müzik %100 korunamaz. Spotify, Apple Music gibi platformlar bile indirilebiliyor (kayıt programları ile). Hedef: Sıradan kullanıcı için indirmeyi zorlaştırmak, profesyonel hackerları engellemek değil.

🔧 Teknik Detaylar (Geliştiriciler İçin)

✅ Mevcut Güvenlik Katmanları

  • HLS Streaming: MPEG-TS segmentleri (~10 saniye/segment)
  • Token Authentication: Her segment için benzersiz token
  • Signature Verification: SHA-256 hash kontrolü
  • Expiration Time: 30 dakika sonra token geçersiz
  • Premium Check: Subscription kontrolü
  • CORS Protection: Cross-origin istekleri sınırlı

⚠️ Potansiyel Güvenlik Açıkları

  • Browser DevTools Erişimi: Console'dan segment URL'leri görülebiliyor. Kullanıcı tüm segmentleri listeleyip kaydedebilir.
  • FFmpeg Birleştirme: ffmpeg -i playlist.m3u8 -c copy output.mp3 komutu ile segmentler birleştirilebilir.
  • Token Harvesting: 30 dakika içinde tüm segment token'ları alınıp kaydedilebilir (script ile otomatik).
  • Audio Capture: System audio recording ile şarkı kaydedilebilir (OBS, Audacity gibi araçlarla).
  • Network Sniffing: Wireshark gibi araçlarla ağ trafiği yakalanıp segment'ler çekilebilir.

📡 Kritik Endpoint'ler

  • /api/muzibu/songs/{id}/stream - HLS playlist döndürüyor
  • /api/muzibu/songs/{id}/track-hit - Play count artırıyor
  • /storage/tenant1001/.../segment-XXX.ts - TS segment dosyaları

🛡️ İyileştirme Önerileri

Kısa Vadeli Çözümler (Hemen Uygulanabilir)

1. Token Expire Süresini Kısalt

30 dakika → 5-10 dakika

Etki: Kullanıcı segment'leri toplamak için daha az zamana sahip olur. Script'ler için daha zor.

2. Rate Limiting (İstek Sınırlama)

Aynı IP'den dakikada maksimum X segment isteği

Etki: Otomatik download script'lerini yavaşlatır. Normal dinleme etkilenmez.

3. User-Agent Kontrolü

FFmpeg, wget, curl gibi tool'ları engelle

Etki: Komut satırı araçlarıyla direkt indirme zorlaşır. Browser taklit edilebilir ama ekstra adım gerekir.

4. Referer Kontrolü

Sadece muzibu.com'den gelen isteklere izin ver

Etki: Dış sitelerden embedding ve hotlinking engellenir. DevTools'dan manuel istek atılabilir ama zahmetli.

5. IP-Based Session Tracking

Aynı IP aynı şarkıyı 10 dakikada 2 kez dinleyemez

Etki: Aynı kullanıcının çoklu download denemesi engellenir. Redis ile hafızada tutulur.

🔐 Orta Vadeli Çözümler (1-2 Hafta)

1. AES-128 Encryption (HLS Native)

Her segment AES ile şifrelensin, key ayrı endpoint'ten gelsin

Avantaj: HLS standardında var, tüm player'lar destekler. Segment'ler şifreli olur.

Dezavantaj: Key endpoint'i de korunmalı. Encoder ve player değişikliği gerekir.

2. Dynamic Segment Path

Segment URL'leri her istek için random hash içersin

Etki: URL tahmin edilemez. DevTools'dan bakılan URL 5 dakika sonra geçersiz.

3. Watermark (Ses İzleme)

Her kullanıcıya özel insan kulağının duymadığı frekansta imza

Etki: Şarkı sızdırıldığında kim paylaştı tespit edilir. Caydırıcı etki.

4. Browser Fingerprint

Canvas, WebGL, Audio API ile browser parmak izi al

Etki: Aynı cihaz farklı hesaplardan abuse yaparsa tespit edilir. VPN/Proxy bypass daha zor.

🚀 Uzun Vadeli Çözümler (Profesyonel)

1. DRM (Digital Rights Management)

Widevine, FairPlay, PlayReady gibi endüstri standartları

Avantaj: Spotify, Netflix, YouTube Music seviyesinde koruma. Segment'ler hardware-level encrypted.

Maliyet: Lisans ücreti, CDN entegrasyonu, player değişikliği. Büyük bütçe gerekir.

2. CDN Protection (Cloudflare Stream)

Video/audio hosting servisi, hotlink protection built-in

Avantaj: Signed URL, token rotation otomatik. Global CDN, hızlı delivery.

3. Web Assembly (WASM) Player

Decryption logic WASM ile binary halde

Etki: JavaScript decompile daha zor. DevTools'dan mantık anlaşılmaz.

💡 Gerçekçi Beklentiler

🎯
Hedef Kitle:

%95'lik sıradan kullanıcı (teknik bilgisi yok). Bu kitlenin indirmesi kısa vadeli çözümlerle tamamen engellenebilir.

🛠️
Teknik Kullanıcılar:

%4'lük kesim (developer, power user). Orta vadeli çözümlerle zorlanır ama %100 engellenemez.

👨‍💻
Profesyonel Hackerlar:

%1'lik kesim. DRM bile bypass edilebiliyor (screen capture, analog hole). Bu kesimi engellemek imkansız ve gerekli de değil.

📌 Strateji: Kısa vadeli 5 çözümü uygula (maliyet: 0 TL, süre: 1-2 gün). Bu, %95'lik kitlenin erişimini tamamen engeller. Orta vadeli çözümlere gerek kalmayabilir.

Önerilen İlk Adımlar (Öncelik Sırasıyla)

  1. 1
    Rate Limiting: Laravel middleware ile IP bazlı istek sınırla (5 dakikada 100 request)
  2. 2
    Token Expire: 30 dakika → 10 dakika'ya düşür
  3. 3
    User-Agent Check: FFmpeg, wget, curl isteklerini reddet
  4. 4
    Referer Check: Sadece muzibu.com'den gelen isteklere izin ver
  5. 5
    IP-Session Track: Redis ile aynı IP/şarkı kombinasyonu 10 dakika cache'le

⏱️ Tahmini Süre: 4-6 saat geliştirme
💰 Maliyet: 0 TL (mevcut stack kullanılır)
📊 Beklenen Etki: %90+ indirme engelleme