İçeriğe geç
Sedat Özdemir
Yazılar

cybersecurity

Ekranın Kararması Değil, Kalbinin Durması: Ransomware Dosyası ve Gerçek Hayat Senaryoları

Ransomware artık sadece dosyaları şifrelemiyor, itibarını da çalıyor. Gerçek hayattan örnekler ve teknik detaylarla bu beladan korunmanın yolları.

Sedat Özdemir
· 5 dk okuma

Sabah kahveni almışsın, bilgisayarın karşısına geçip o üzerinde haftalardır çalıştığın raporu bitireceksin. Ama o da ne? Masaüstündeki simgelerin hepsi beyaz bir kağıt parçasına dönüşmüş, dosya uzantılarının sonuna .cry gibi saçma sapan bir şeyler eklenmiş. Masaüstü duvar kağıdında ise kocaman kırmızı harflerle "Tüm dosyaların şifrelendi, kurtarmak için şu adrese Bitcoin gönder" yazıyor. İşte o an kalbinin ritminin nasıl değiştiğini tahmin edebiliyorum.

İşin aslı, ransomware (fidye yazılımı) dediğimiz şey artık sadece bireysel kullanıcıların değil, dev şirketlerin, hastanelerin ve hatta belediyelerin en büyük kabusu haline geldi. Geçenlerde bir pentest çalışmasında, sistemde sadece bir saatlik bir "boşluk" yakaladık ve o sürede neler yapılabileceğini gördüğümde tüylerim diken diken oldu. Gel, şu meselenin biraz mutfağına girelim, bu arkadaşlar içeride ne yapıyorlar da her şeyi bir anda kilitleyebiliyorlar, beraber bakalım.

Olayın Teknik Mutfağı: Neden Bu Kadar Hızlılar?

Bir ransomware yazmaya kalksan, en büyük problemin "hız" ve "algılanamazlık" olurdu. Eğer binlerce GB veriyi tek tek yavaş yavaş şifrelemeye çalışırsan, sistemdeki EDR (Endpoint Detection and Response) çözümleri seni hemen kulağından tuttuğu gibi dışarı atar. Bu yüzden modern ransomware'ler genellikle Hybrid Encryption denilen bir yöntem kullanıyorlar.

Süreç genelde şöyle işliyor:

  1. Yazılım her dosya için rastgele bir AES (Symmetric) anahtarı oluşturur. AES çok hızlıdır, veriyi saniyeler içinde şifreleyebilir.
  2. Dosyayı bu AES anahtarıyla şifreler.
  3. Sonra bu AES anahtarının kendisini, saldırganın önceden hazırladığı bir RSA (Asymmetric) public key ile şifreleyip dosyanın sonuna ekler.

Böylece saldırganın elindeki "private key" olmadan o AES anahtarını çözmek imkansız hale gelir. Bak, basit bir Python örneğiyle bu mantığı nasıl simüle edebiliriz göstereyim. Tabii ki bu sadece eğitim amaçlı, kendi dosyalarını kilitleme diye paylaşıyorum:

import os
from cryptography.fernet import Fernet

# Bu bizim geçici anahtarımız olsun (AES mantığında)
def generate_key():
    return Fernet.generate_key()

def encrypt_file(file_path, key):
    f = Fernet(key)
    with open(file_path, 'rb') as file:
        file_data = file.read()
    
    # Veriyi şifreliyoruz
    encrypted_data = f.encrypt(file_data)
    
    with open(file_path, 'wb') as file:
        file.write(encrypted_data)
    
    print(f"{file_path} artık ulaşılamaz durumda!")

# Örnek kullanım (Lütfen dikkatli ol!)
# key = generate_key()
# encrypt_file('senin_onemli_notun.txt', key)

İşin teknik kısmında dikkat etmen gereken bir diğer nokta ise "Shadow Copies". Akıllı bir ransomware, şifreleme işlemine başlamadan önce Windows'taki bu "geçmişe dönme" noktalarını hemen siler. vssadmin delete shadows /all /quiet komutunu bir yerde görürsen bil ki ortalık birazdan karışacak demektir.

İçeride Nasıl Geziyorlar?

Sıkça karşılaştığım bir durum var: Şirketler sanıyor ki ransomware bir anda gökten zembille iniyor. Hayır, aslında saldırganlar içeride haftalarca, bazen aylarca vakit geçiriyorlar. Biz buna "dwell time" diyoruz. İlk giriş genellikle çok basit bir phishing e-postasıyla ya da açık kalmış bir RDP portu üzerinden oluyor.

İçeri girdikten sonra ilk yaptıkları iş "Lateral Movement" yani ağda yanlara doğru yayılmak. Senin bilgisayarından domain admin yetkilerini alana kadar sessizce ilerliyorlar. Neden? Çünkü sadece senin bilgisayarını şifrelemek onlara yetmez. Onlar bütün yedekleme sunucularını, veritabanlarını ve kritik dosyaları aynı anda vurmak istiyorlar ki pazarlık güçleri artsın.

Bence işin en acımasız kısmı Double Extortion (Çifte Şantaj) tekniği. Artık sadece "dosyalarını şifreledim" demiyorlar. "Şifrelemeden önce bütün verilerini dışarı sızdırdım, eğer parayı ödemezsen bunları internette yayınlarım" diyorlar. Yani yedeğin olsa bile kurtulamıyorsun; çünkü bu sefer de itibarın ve KVKK süreçlerin tehlikeye giriyor.

"Bizim Yedeklerimiz Var, Bize Bir Şey Olmaz" Diyorsan Dikkat!

Bu cümleyi ne zaman duysam içimden "Umarım o yedekler ağa bağlı değildir" diyorum. Bir keresinde bir olay müdahalesinde (incident response) gördüm; adamların her gün düzenli yedeği alınıyormuş ama yedek sunucusu da aynı domain'e dahilmiş. Saldırgan domain admin yetkisini alınca ilk iş gidip o yedekleri de şifrelemiş. Sonuç? Koca bir sıfır.

Gerçek bir koruma istiyorsan, "3-2-1 kuralı" senin kutsal kitabın olmalı:

  • En az 3 kopyan olacak.
  • 2 farklı medya türünde (disk, bulut vs.) saklayacaksın.
  • 1 tanesi mutlaka "offline" (internetle ve ağla bağı kopuk) olacak.

Red Team Gözüyle: Biz Ne Yapıyoruz?

Biz Payten'de veya benzeri Red Team operasyonlarında ransomware simülasyonu yaparken aslında şirketin reflekslerini ölçüyoruz. Mesela, saldırganın kullandığı C2 (Command and Control) trafiklerini senin sistemlerin fark ediyor mu? Ya da bir kullanıcı bir anda yüzlerce dosyayı değiştirmeye başladığında EDR'ın alarm veriyor mu?

Bir keresinde bir testte, çok basit bir PowerShell betiğiyle dosyaları şifrelemek yerine sadece isimlerini değiştirip içlerini rastgele verilerle doldurmuştuk. Güvenlik ekibinin bunu fark etmesi 4 saat sürdü. Gerçek bir saldırıda o 4 saatte bütün şirket verisi çoktan şifrelenmiş ve dışarı sızdırılmış olurdu.

Şu an popüler olan bir teknikten de bahsedeyim: Intermittent Encryption. Bu yöntemle saldırgan dosyanın tamamını değil, sadece belirli bloklarını (mesela her 10 MB'lık bloktan 1 MB'ını) şifreliyor. Bu hem işlemi inanılmaz hızlandırıyor hem de dosyanın "entropy" (rastgelelik) oranını çok fazla değiştirmediği için güvenlik yazılımlarını atlatabiliyor.

Peki, Ne Yapmalı?

Hadi biraz pratik konuşalım. "Aman Sedat, korkuttun bizi, ne yapalım?" diyorsan şunları hemen listene ekle:

  1. MFA (Çok Faktörlü Kimlik Doğrulama): Bunu hala açmadıysan, kapını kilitlemeden dışarı çıkıyorsun demektir. Özellikle VPN ve mail erişimlerinde şart.
  2. LAPS Kullanımı: Her bilgisayarın local admin şifresi aynı olmasın. Birini kaptırırsan hepsini kaptırırsın.
  3. Ağ Segmentasyonu: Muhasebedeki bir bilgisayarın neden yazılım geliştiricilerin sunucusuna erişimi var? Bu yolları kapatman lazım.
  4. Kullanıcı Eğitimi: Ama öyle sıkıcı slaytlar değil. Gerçek senaryolarla insanlara o e-postadaki linke neden tıklamamaları gerektiğini yaşatarak öğretmek gerekiyor.
  5. Log İzleme: Sadece log toplamak yetmez, o loglara bakmak da lazım. Gece saat 03:00'te bir workstation'dan domain controller'a doğru yoğun bir trafik varsa, biri içeride partiliyordur.

Toparlarsak...

Ransomware meselesi bir "yazılım" probleminden ziyade bir "süreç" problemi. İşin aslı, %100 güvenli bir sistem yok ama saldırgan için maliyeti ve zorluğu artırmak bizim elimizde. Onlar en kolay yolu severler; kapıyı aralık bırakmazsan, pencereleri sıkıca kapatırsan gidip başka bir kapıyı zorlarlar.

Öğrenmeye devam et, sistemlerini kurcala ve "bana bir şey olmaz" deme. Bir gün o telefon gece 3'te çalarsa, hazırlıklı olmanın huzuru hiçbir şeye değişilmez. Dikkat et kendine!

İlgili yazılar