RAT'LAR
Ekranın arkasında gerçekten ne oluyor?
Bir bilgisayarda uzaktan erişim olduğunu düşünün.
İlk bakışta her şey normal görünebilir. Masaüstü açık, programlar çalışıyor, internet bağlantısı var.
Fakat arka planda çalışan küçük bir istemci, belirli aralıklarla dışarıdaki bir sunucuyla iletişim kuruyorsa iş değişir.
RAT mantığını anlamanın en basit yolu budur.
RATkelimesiRemote Access Trojanifadesinden gelir.
Önce şu yanlış anlaşılmayı düzeltelim.
Her uzaktan erişim programı RAT değildir.
SSH ile bir Linux sunucusuna bağlanmanız da uzaktan erişimdir.
AnyDesk ile başka bir bilgisayara destek vermeniz de uzaktan erişimdir.
Aradaki fark çoğu zamanyetki ve kullanıcı bilgisinoktasında ortaya çıkar.
Bir sistem sahibi bağlantının farkındaysa ve buna izin verdiyse normal bir uzaktan yönetim aracıyla karşı karşıyasınızdır.
Bağlantı gizleniyorsa veya kullanıcının haberi olmadan sistem üzerinde kontrol sağlanıyorsa, artık olay bambaşka bir yere gider.
Kod:
NORMAL BİR BAĞLANTI
Kullanıcı
│
▼
Uzak erişim aracı
│
▼
İzin verilen sistem
ŞÜPHELİ RAT DAVRANIŞI
Sistem
│
│ arka planda iletişim
▼
Bilinmeyen kontrol noktası
│
▼
Uzaktaki operatör
Bir RAT'ı anlamaya nereden başlanır?
Yeni başlayanların çoğu doğrudan RAT'ın özelliklerine bakıyor.
"Ekran görüntüsü alıyor mu?"
"Dosya indirebiliyor mu?"
"Komut çalıştırabiliyor mu?"
Bunlar önemli olabilir ama ilk bakacağım yer genellikle bunlar olmaz.
Ben önce şunu sorarım:
Bu program nereye bağlanıyor ve bu bağlantı neden sürekli devam ediyor?
Çünkü RAT'ın bütün mantığı bir şekilde iletişim kurabilmesine dayanır.
Program ne kadar gelişmiş olursa olsun, dışarıyla kurduğu bağlantı analiz açısından önemli bir iz bırakabilir.
Açık kaynaklı bir örneğe bakmak
RAT mimarisini anlamak için kaynak kodu açık projeleri incelemek öğretici olabilir.
Örneğin GitHub üzerinde bulunanQuasarRATgibi projelere baktığınızda, olayın tek bir dosyadan ibaret olmadığını görürsünüz.
Genellikle yapı birkaç farklı parçaya ayrılır:
Kod:
[ İSTEMCİ ]
Sistemde çalışan taraf.
│
│ iletişim
▼
[ KONTROL / YÖNETİM ]
Bağlantıları ve işlemleri yöneten taraf.
Kaynak kodunu incelerken çalıştırmaya gerek yok.
Sadece klasör yapısına, ağ iletişimiyle ilgili bölümlere ve istemcinin nasıl organize edildiğine bakmak bile birçok şeyi anlatır.
Asıl öğretici taraf da burada başlıyor.
Bir yazılımın ne yaptığını anlamak için bazen çalıştırmanız gerekmez. Kaynak kodundaki yapı taşları zaten size yeterince fikir verebilir.
Şüpheli bir sistemde neye bakılır?
Tek bir komut size "bilgisayarında RAT var" demez.
Bu iş biraz parçaları birleştirme işidir.
Linux üzerinde örneğin önce çalışan süreçlere bakabilirsiniz:
Kod:
ps aux
Daha sonra aktif ağ bağlantılarını kontrol edebilirsiniz:
Kod:
ss -tulpn
Burada amaç rastgele bir süreci bulup silmek değil.
Örneğin tanımadığınız bir süreç görürsünüz.
Sonra aynı süreçle ilişkili bir ağ bağlantısı fark edersiniz.
Ardından bu işlemin sistem açıldığında otomatik olarak başladığını görürsünüz.
İşte o zaman araştırmaya değer bir tablo oluşmaya başlar.
Tek bir belirti şüphe oluşturabilir.
Birden fazla belirti ise araştırma başlatır.
Kendi sisteminizde küçük bir kontrol
Aşağıdaki komut mevcut kullanıcıya ait ağ bağlantılarını görmek için kullanılabilir:
Kod:
ss -tunap
Çalışan işlemleri daha rahat incelemek için:
Kod:
ps aux --sort=-%mem | head
Sistem açılışında çalışan servisleri görmek için:
Kod:
systemctl list-unit-files --state=enabled
Bu komutların hiçbiri RAT tespit aracı değildir.
Sadece sisteminizde normalde ne olduğunu öğrenmenize yardımcı olur.
Ve açıkçası güvenlikte en önemli alışkanlıklardan biri de budur:
Önce sisteminizin normal davranışını bilin. Anormal olanı ondan sonra fark etmek çok daha kolay olur.
AKILDA KALSIN
RAT analizi sadece dosyaya bakmak değildir.
Süreç→ Ne çalışıyor?
Bağlantı→ Nereye iletişim kuruyor?
Kalıcılık→ Yeniden başlatıldığında geri geliyor mu?
Davranış→ Sistem üzerinde ne değiştiriyor?
SON NOT
RAT konusunu öğrenirken doğrudan "hangi RAT en iyi?" veya "nasıl kullanılır?" tarafına atlamak pek bir şey öğretmez.
Asıl mesele, böyle bir yazılımın sistem içerisinde nasıl yer edindiğini ve geride ne tür izler bıraktığını anlamaktır.
Bir RAT'ı gerçekten anlamaya başladığınız nokta, onun özelliklerini ezberlediğiniz an değil; çalışan bir süreç, ağ bağlantısı ve sistem davranışı arasındaki ilişkiyi kurabildiğiniz andır.