İçeriğe geç

5.2 · Seviye 0 · Dijital Dünyanın Temelleri

Dosyalarda gezinmek

dizin, yol, listeleme ve dosya içeriğini okumak

Siber Güvenlik Akademisi — M05, Komut Satırına Giriş · 1.968 kelime · 3 saha durumu · ≈ 9 dk okuma · 13 dk dinleme

Saha durumlarındaki kişiler ve kurumlar kurgusaldır; kaynaklar gerçektir. Bu akademi savunma odaklıdır: saldırılar mekanizma düzeyinde anlatılır, adım adım saldırı tarifi verilmez. Uygulamalar yalnız kendi cihazında, kendi hesabında ya da yalıtılmış bir laboratuvarda yapılır; başkasının sistemine izinsiz erişim suçtur. Dersler hukuki danışmanlığın yerini tutmaz.

Açılış

Bulut hizmetlerini gözden geçirdiği haftanın sonunda Defne Hanım'ın aklına başka bir soru takıldı. Büroda müşteri belgeleri için düzenli bir klasör yapısı vardı: her müşterinin bir klasörü, her yılın bir alt klasörü. Ama çalışanların bilgisayarlarında bu düzenin dışında kalan kopyalar var mıydı? Masaüstüne "geçici olarak" bırakılmış bir kimlik fotokopisi, indirilenler klasöründe unutulmuş bir bordro, e-postadan kaydedilip bir köşede kalmış bir banka dökümü?

Teknisyen bir sonraki ziyaretinde bunu nasıl bulacaklarını gösterdi. Dosya gezgininde klasörleri tek tek açmak yerine, her bilgisayarda kabuğu başlatıp kullanıcının kendi klasörlerinde, belirli türdeki dosyaları adlarıyla ve yerleriyle listeleyen birkaç komut yazdı. Bir bilgisayarda masaüstünde on iki, indirilenler klasöründe kırk bir müşteri belgesi çıktı; bazıları üç yıllıktı ve kimse varlıklarını hatırlamıyordu.

Defne Hanım şaşırmadı, ama bir şeyi fark etti: kimsenin hatırlamadığı bir dosya, ne şifrelenir, ne yedeklenir, ne de zamanı geldiğinde silinir. Önce nerede olduğunu bilmek gerekiyordu. Bu ders komut satırında dosyalar arasında gezinmeyi, bir yerin içini listelemeyi ve bir dosyayı değiştirmeden okumayı öğretiyor ve aynı becerinin neden saldırganların ilk işlerinden biri olduğunu anlatıyor.

Tek fikir

Bilgisayardaki her dosyanın bir adresi, yani bir yolu vardır ve komut satırında gezinmek, bu adresler arasında bilinçli olarak dolaşmaktır. Kendi dosyalarının nerede olduğunu bilmek hem korumanın hem temizliğin ilk adımıdır; saldırganlar da içeri girdikleri sistemde ilk olarak aynı soruyu sorar.

Nasıl çalışır

Dosya sistemi dersinde dosya gezgininin diskin kendisini değil, dosya sisteminin haritasını gösterdiğini söylemiştik. Komut satırı aynı haritayı metinle gösterir. Haritanın temel birimi klasördür ve komut satırında ona genellikle başka bir adla seslenilir.

Bir dosyanın ağacın neresinde durduğunu söylemenin yolu, ona giden adımları sırayla yazmaktır.

Kabuk her an bir dizinin içindedir ve yazdığın göreli yollar o dizine göre yorumlanır.

Gezinmek için üç temel iş vardır ve her birinin her kabukta bir karşılığı bulunur. Neredeyim sorusunu PowerShell'de Get-Location, macOS ve Linux'ta pwd cevaplar. Başka bir dizine geçmek her üçünde de cd ile yapılır; cd .. bir üst dizine çıkar, cd ~ ana dizine döner. İçinde ne var sorusunu PowerShell'de Get-ChildItem, macOS ve Linux'ta ls cevaplar. Bir metin dosyasını değiştirmeden okumak ise PowerShell'de Get-Content, macOS ve Linux'ta cat ya da uzun dosyalar için sayfa sayfa gösteren less ile yapılır.

Bu sınır önemli bir ilkeyi hatırlatır: listelemek, okuma izni olan yerlerle sınırlıdır. Kabuğun senin yetkinle çalıştığını Modül 2'den biliyorsun; başka bir kullanıcının ana dizinine ya da sistemin korunan dizinlerine erişimin yoksa, ne listeleme komutu ne de Force parametresi seni oraya sokar. Bu, bir sonraki dersin konusu olan izinlerin işidir.

Dosyalarda gezinmek, bir sistemi tanımanın ilk adımıdır ve bu yalnız savunmacılar için geçerli değildir.

Yani aynı komut, kimin elinde ve ne zaman çalıştığına göre sıradan bir yönetim işi ya da bir saldırının keşif aşaması olabilir. Savunmacı için bu iki şey demektir: kendi dosyalarını saldırgandan önce bilmek ve olağandışı listeleme etkinliğini fark edebilmek.

Sahada

Savunma

Dosyalarda gezinmenin savunmaya katkısı, görünmeyeni görünür kılmasıdır ve üç alışkanlığa dönüşür.

İlk alışkanlık, hassas dosyaların nerede durduğunu bilmektir. Kimlik belgeleri, banka dökümleri, sağlık raporları ve iş belgeleri, kullanıcı fark etmeden masaüstüne, indirilenler klasörüne ve geçici dizinlere birikir. Bu dosyalar düzenli klasör yapısının dışında kaldığı için çoğu zaman yedeklenmez, şifreli bir alana taşınmaz ve zamanı geldiğinde silinmez. Defne Hanım'ın bürosunda ve Nilüfer Hanım'ın bilgisayarında görülen buydu. Düzenli aralıklarla bu dizinlere bakmak, Modül 2'nin envanter düşüncesini dosyalara uygulamaktır.

İkinci alışkanlık, parolaları ve sırları dosyalarda düz metin olarak bırakmamaktır. Adı "parola", "şifre" ya da "password" olan bir dosya, bilgisayarı ele geçiren birinin ilk arayacağı şeylerden biridir; saldırganların dosya keşfi tam olarak bu tür dosyaları hedefler. Bu bilgiler bir parola yöneticisinde durmalıdır; bunu Seviye 1'de kuracağız.

Üçüncü alışkanlık kurumlar içindir: olağandışı listeleme etkinliğini fark etmek. Bir bilgisayarın gece yarısı binlerce dizini listelemesi, bir kullanıcının hiç işi olmayan paylaşımları taraması ya da bir sunucuda beklenmedik bir sürecin hassas dizinlere inmesi, Kaan'ın gördüğü gibi bir saldırının erken işaretidir. Ortak paylaşımlarda erişimi işin gerektirdiği kişilerle sınırlamak da, böyle bir keşfin ulaşabileceği yeri baştan daraltır.

Uygulama geliştirenler için ise ders açıktır: kullanıcıdan gelen bir dosya adını asla doğrudan bir yola ekleme. Gelen değeri bir izin listesiyle doğrula ve sonuç yolun beklenen dizinin içinde kaldığını kontrol et; Selin'in ekibinin yaptığı budur ve Seviye 6'da ayrıntısı uygulama güvenliği seviyesinde.

Uygulama

Bu uygulamada kendi ana dizininde gezinecek, gizli öğeleri görecek ve kendi bilgisayarında düz metin sır taşıyabilecek dosyaları arayacaksın. Bütün komutlar yalnız okur; hiçbir dosyayı silmez, taşımaz ya da değiştirmez.

Bulduğun bir dosya gerçekten parola içeriyorsa, şimdi silme; önce içindeki bilgileri güvenli bir yere taşıyacağın parola yöneticisini Seviye 1'de kuracağız. Ama dosyanın yerini ve ne içerdiğini, içeriğini yazmadan, not et.

Defter: Envanterde her bilgisayar için masaüstü ve indirilenler dizinindeki dosya sayısı ve en eski dosyanın tarihi; düz metin sır taşıyan dosya bulunduysa yeri, içeriği değil. Aylık güvenlik turuna "indirilenler ve masaüstü temizliği" maddesi.

Hata köşesi

Yaygın yanlış"Dosya gezgininde görmediğim dosya yoktur."
Doğrusu

Dosya gezgini gizli dosyaları varsayılan olarak göstermez ve kullanıcıların çoğu indirilenler gibi dizinlerin içine bakmaz. Komut satırında gizli öğeleri gösteren seçenekle listelemek ya da adına göre aramak, gözden kaçan dosyaları ortaya çıkarır.

Yaygın yanlış"Force parametresi ya da yönetici olmadan da her yere bakabilirim."
Doğrusu

Listeleme ve okuma, kabuğu çalıştıran hesabın izinleriyle sınırlıdır. Gizli dosyaları gösteren bir seçenek, erişim iznin olmayan bir dizini açmaz; resmî belge de bu parametrenin güvenlik kısıtlarını aşmadığını açıkça yazar. Bu sınır izinlerin işidir ve bir sonraki derste ele alınır.

Yaygın yanlış"Dosyaları listelemek zararsızdır, izlemeye değmez."
Doğrusu

Kendi dizininde listelemek zararsızdır; ama bir sistemde beklenmedik bir saatte, beklenmedik bir süreçle, ortak paylaşımlarda binlerce dizinin taranması saldırganların keşif aşamasının tipik bir işaretidir. Ortak saldırı sözlüğü bu davranışı ayrı bir teknik olarak listeler.

Etik ve sınırlar

Bu derste kendi ana dizininde gezindin ve kendi dosyalarını aradın; bu tamamen senin hakkındır. Ortak bir bilgisayarda, bir iş yerinde ya da ailende başka kullanıcıların dizinleri de görünebilir; izinler bir şekilde açık bırakılmış olsa bile, onların dosyalarını listelemek ve okumak, sahiplerinin rızası olmadan yapılmaz. Bir kurumda ortak paylaşımlarda arama yapmak, örneğin Defne Hanım'ın teknisyeninin yaptığı gibi hassas belgelerin dağınıklığını ölçmek, ancak kurumun bu iş için verdiği açık yetkiyle ve bulunan dosyaların içeriğine bakmadan yapılır. Bir sunucuda göreli yolla izin verilmeyen dizinlere ulaşmayı denemek ise, sistemi yöneten kişi böyle bir denemeye yetki vermediyse, kod açık olsa bile, izinsiz giriş anlamına gelir.

Kapanış

  1. Bilgisayardaki her dosyanın bir yolu vardır; mutlak yol kökten, göreli yol çalışma dizininden başlar ve komut satırında gezinmek bu yollar arasında bilinçli olarak dolaşmaktır.
  2. Konumunu sormak, dizin değiştirmek, listelemek ve okumak dört temel iştir; gizli öğeleri gösteren seçenekler görmediğin dosyaları ortaya çıkarır ama izinleri aşmaz.
  3. Hassas dosyaların düzenli yapının dışında birikmesi ve düz metin sır taşıyan dosyalar, saldırganların keşif aşamasının ilk hedefidir; kendi dosyalarını onlardan önce bilmek ve kurumlarda olağandışı listeleme etkinliğini izlemek bu yüzden savunmadır.

Üç soru

  1. Mutlak yol ile göreli yol arasındaki fark nedir ve iki noktalı göreli yol neden bir web uygulamasında tehlikeli olabilir?
  2. Bir bilgisayarın gece saat üçte ortak ağ paylaşımlarında binlerce dizini listelemesi neden şüphelidir?
  3. Masaüstünde ve indirilenler klasöründe biriken müşteri belgeleri hangi güvenlik sorunlarını doğurur?

Yanıtlar

  1. Mutlak yol kök dizinden başlar ve her zaman aynı yeri gösterir; göreli yol ise bulunulan dizinden başlar ve iki nokta bir üst dizine çıkar. Bir web uygulaması kullanıcıdan gelen bir dosya adını doğrudan bir yolun sonuna eklerse, biri dosya adı yerine iki noktalı bir göreli yol yazarak izin verilen dizinin dışına çıkmayı deneyebilir. Gelen adın bir izin listesiyle doğrulanması ve sonucun beklenen dizinde kaldığının kontrolü bunu önler.
  2. Çünkü o saatte kullanıcının bilgisayarı kullanması beklenmez ve iş hiçbir yedekleme ya da yönetim görevine ait değildir. Ortak saldırı sözlüğüne göre saldırganlar ele geçirdikleri sistemlerde dosya ve dizinleri listeleyerek neye sahip olduklarını öğrenir ve sonraki adımlarını buna göre seçer. Bu desen, şifreleme ya da veri kaçırma gibi bir sonraki adımdan önceki keşif aşaması olabilir.
  3. Bu belgeler düzenli klasör yapısının dışında kaldığı için çoğu zaman yedeklenmez, şifreli bir alana taşınmaz ve saklama süresi dolduğunda silinmez. Bilgisayar ele geçirilirse ya da kaybolursa, kimsenin hatırlamadığı hassas veriler de açığa çıkar. Düzenli olarak bu dizinlere bakmak, envanter düşüncesini dosyalara uygulamaktır.

Sonraki derse köprü

Bu dersin uygulamasında, erişim iznin olmayan bazı dizinler için hata mesajları gördün ve listeleme komutunun izinleri aşmadığını öğrendin. Peki bir dosyaya kimin bakabileceğine, kimin onu değiştirebileceğine nasıl karar veriliyor ve bu kararı komut satırında nasıl okuyabilirsin? Sıradaki ders dosya izinlerini okumayı ele alıyor: okuma, yazma ve çalıştırma izinlerini ve dosyanın sahibi, grubu ve diğerleri ayrımını.

Anlamadığın bir yer mi var?

Mentor yalnız bu dersin metnine dayanarak cevap verir. Metinde geçmeyen bir şey sorarsan uydurmaz, geçmediğini söyler.