Görünmez DRM Video Etiketi Bir Chrome Uzantısını Nasıl Kırdı
Bir geliştirici, tarayıcı uzantısında oynatma hızını değiştirirken Disney+ ve Max'te gizli 1x1 piksel DRM heartbeat videosunu hızlandırdığını keşfetti; oturum bu yüzden iptal ediliyordu.
StreamEnhancer adlı özel Chrome uzantısı, video etiketlerini bulup playbackRate değerini değiştirerek çeşitli platformlarda oynatma hızını artırıyordu. YouTube ve Netflix'te sorunsuz çalışan bu basit yaklaşım, Disney+ ve Max'te 14 dakika sonra oturumun tamamen kilitlenmesine yol açtı. Sorunun kaynağı, sayfada gizlenmiş üçüncü bir video etiketiydi: ekran dışına konumlandırılmış, sessiz, 1x1 piksellik bir 'heartbeat' videosu. Bu video, Encrypted Media Extensions (EME) ve Widevine gibi bir Content Decryption Module (CDM) aracılığıyla DRM lisans yenileme mekanizmasını tetikliyordu.
Uzantı tüm video etiketlerine 2x hız uyguladığında, bu heartbeat videosu da hızlanıyor ve lisans yenileme isteklerini normalden çok daha sık gönderiyordu. Sunucu tarafı, bu anormal zamanlamayı manipülasyon belirtisi olarak yorumlayıp oturumu iptal ediyordu. Çözüm, DOM'daki tüm video etiketlerini puanlayan bir fonksiyon yazmaktı: videoWidth, görünür alan ve DOM derinliği gibi kriterlere göre asıl oynatıcıyı diğer sahte veya izleyici videolardan ayırmak. Bu sayede yalnızca ana video hızlandırılıyor, heartbeat videosu 1x hızda kalıyor ve DRM sunucusu şüphelenmiyor.
Bu vaka, mühendisler için modern streaming platformlarının DOM yapısının basit bir belge ağacı olmadığını, aksine izleyiciler, tuzaklar ve doğrulama mekanizmalarıyla dolu bir savunma katmanı olduğunu gösteriyor. Platformlar arası çalışan tarayıcı uzantıları geliştirirken, görünürde zararsız görünen elementlere dokunmanın ciddi ve öngörülemez yan etkileri olabileceği anlaşılıyor.