“Resmi” GitHub ve GitLab bağlantılarında gizlenen kötü amaçlı yazılım

Microsoft’un GitHub’daki depolarından dosya indirirken kötü amaçlı yazılıma yakalanabilir misiniz? Görünüşe göre bu mümkün. Dikkatli olun!

GitHub ve GitLab'da kendinizi kimlik avı ve kötü amaçlı yazılımlardan nasıl korursunuz?

En eski güvenlik ipuçlarından biri şudur: “Sadece resmi kaynaklardan yazılım indirin.” “Resmi kaynaklar” genellikle her platformdaki ana uygulama mağazalarıdır, ancak milyonlarca yararlı ve ücretsiz açık kaynaklı uygulama için en “resmi” kaynak, GitHub veya GitLab gibi özel bir sitedeki geliştiricinin deposudur. Burada, projenin kaynak kodunu, düzeltmeleri ve koda yapılan eklemeleri ve genellikle uygulamanın kullanıma hazır bir derlemesini bulabilirsiniz. Bu siteler bilgisayar, yazılım ve programlamaya en ufak bir ilgisi olan herkes için tanıdıktır. Bu nedenle, github{.}com/{User_Name}/{Repo_Name}/files/{file_Id}/{file_name} gibi bir bağlantıdan erişilebilen bir dosyanın geliştirici dışında biri tarafından yayınlanmış olabileceği ve herhangi bir şey içerebileceği, BT güvenlik uzmanları ve geliştiriciler de dâhil olmak üzere birçok kişi için hiç de hoş olmayan bir keşif olmuştu.

Tabii ki siber suçlular bundan hemen faydalandılar.

Sorunu parçalara ayırmak

GitHub ve yakın akrabası GitLab, yazılım geliştirme projelerinde işbirliği yapmak amacıyla kurulmuştur. Bir geliştirici kodunu yükleyebilir ve diğer kişiler bu kod için eklemeler, düzeltmeler sunabilir ve hatta uygulamanın veya kütüphanenin alternatif sürümleri olan çatallar oluşturabilir. Bir kullanıcı bir uygulamada bir hata bulduğunda, bunu bir sorun raporu oluşturarak geliştiriciye bildirebilir. Diğer kullanıcılar yorumlarda sorunu doğrulayabilir. Ayrıca uygulamanın yeni sürümleri hakkında yorum da yapabilirsiniz. Gerekirse yorumlara, hatayı gösteren ekran görüntüleri veya uygulamayı çökerten belgeler gibi dosyalar ekleyebilirsiniz. Bu dosyalar, yukarıda açıklanan türde bağlantılar kullanılarak GitHub sunucularında depolanır.

Ancak GitHub’ın bir özelliği vardır: Bir kullanıcı bir yorum hazırlar ve beraberindeki dosyaları yükler ancak “Yayınla”ya tıklamazsa, bilgiler taslakta “takılıp kalır” ve hem uygulama sahibi hem de diğer GitHub kullanıcıları tarafından görülemez. Bununla birlikte, yorumda yüklenen dosyaya doğrudan bir bağlantı oluşturulur ve bu tamamen çalışır durumdadır. Takip eden herkes dosyayı GitHub’ın CDN’sinden alabilir.

Dosya GitHub'da yayınlanmamış bir yoruma eklendikten sonra kötü amaçlı bir dosya için indirme bağlantısı oluşturulur

Dosya GitHub’da yayınlanmamış bir yoruma eklendikten sonra kötü amaçlı bir dosya için indirme bağlantısı oluşturulur

Bu arada, bu dosyanın yorumlarda yayınlandığı deponun sahipleri dosyayı silemez veya engelleyemez. Bundan haberleri bile olmaz! Ayrıca, bu tür dosyaların bir bütün olarak depoya yüklenmesini kısıtlayacak herhangi bir ayar da bulunmamaktadır. Tek çözüm yorumları tamamen devre dışı bırakmaktır (GitHub’da bunu altı aya kadar yapabilirsiniz), ancak bu geliştiricileri geri bildirimden mahrum bırakacaktır.

GitLab’ın yorumlama mekanizması da benzerdir ve dosyaların taslak yorumlar aracılığıyla yayınlanmasına izin verir. Dosyalara gitlab.com/{User_Name}/{Repo_Name}/uploads/{file_Id}/{file_name} gibi bir bağlantı aracılığıyla erişilebilir.

Ancak, bu durumda sorun, yalnızca kayıtlı, oturum açmış GitLab kullanıcılarının dosya yükleyebilmesi sayesinde biraz hafifletilmiş olur.

Kimlik avı kampanyaları için bir hediye

GitHub/GitLab ile başlayan ve saygın geliştiricilerin ve popüler projelerin adlarını içeren bağlantılarda rastgele dosyalar yayınlama yeteneği sayesinde (çünkü neredeyse her depoda bir dosya ile yayınlanmamış bir yorum bırakılabilir), siber suçlulara çok ikna edici kimlik avı saldırıları gerçekleştirme fırsatı sunulmaktadır. Oyunlar için hile uygulamaları içerdiği varsayılan “yorumların” Microsoft depolarına bırakıldığı kötü niyetli kampanyalar zaten keşfedilmişti.

Dikkatli bir kullanıcı bir oyun hilesinin neden Microsoft deposunda olduğunu merak edebilir: https://github{.}com/microsoft/vcpkg/files/…../Cheat.Lab.zip. Ancak “GitHub” ve “Microsoft” anahtar kelimelerinin, bağlantıyı daha fazla incelemeyecek olan kurbanı rahatlatması çok daha muhtemeldir. Daha akıllı suçlular, kötü amaçlı yazılımlarını daha da dikkatli bir şekilde gizleyebilir, örneğin GitHub veya GitLab aracılığıyla dağıtılan bir uygulamanın yeni bir sürümü olarak sunabilir ve bu uygulamadaki “yorumlar” aracılığıyla bağlantılar yayınlayabilir.

GitHub ve GitLab’da kendinizi kötü amaçlı içerikten nasıl korursunuz?

Bu tasarım hatası düzeltilmediği ve herkes GitHub ve GitLab’ın CDN’ine serbestçe rastgele dosya yükleyebildiği sürece, bu platformların kullanıcılarının son derece dikkatli olması gerekmektedir.

  • Diğer web siteleri, e-postalar veya sohbetler gibi harici kaynaklarda bulduğunuz doğrudan GitHub/GitLab bağlantılarından dosya indirmeyin. Bunun yerine; (github{.}com/{User_Name}/{Repo_Name} veya gitlab{.}com/{User_Name}/{Repo_Name}) proje sayfasını açın ve dosyayı gerçekten oradan indirebildiğinizden emin olun. Geliştiricilerden gelen resmi dosyalar depoda yayınlanmalı ve görünür olmalıdır.
  • Doğru geliştirici sayfasında olduğunuzdan emin olun – GitHub, GitLab ve diğer açık kaynak depolarında typosquatting yaygındır. Yazım benzerliğini temel alan bu yöntemle orijinalinden bir veya iki harf farklı adlara sahip sahte projeler oluşturulabilir (örneğin, Chatdev yerine Chaddev).
  • Az sayıda yıldızı (beğenisi) olan ve yakın zamanda oluşturulmuş uygulamaları indirmekten kaçının.
  • Tüm bilgisayarlarınızda ve akıllı telefonlarınızda kötü amaçlı yazılımlara ve kimlik avına karşı koruma kullanın. Kaspersky Premium oyuncular ve bilgisayar meraklıları için kapsamlı koruma sağlar.
İpuçları