Zıplanacak içerik

LaRsiE_

Φ Üyeler
  • Katılım

  • Son Ziyaret

LaRsiE_ tarafından postalanan herşey

  1. LaRsiE_ şurada bir başlık gönderdi: C / C++ / C#
    C NEDİR? C’nin gelişimi C Dennis Ritchie tarafından DEC PDP–11 üzerinde geliştirilmiş bir programlama dili. C BCPL dilinden türetilen B dilinin 1970’lerde geliştirilmesiyle yaratılmış. C ’nin geliştirilme amacı, sistem seviyesine daha yakın ve kullanımı daha kolay bir dil yaratmak. Uzun yıllar boyunca C dilinin standardı Unix işletim sistemi ile birlikte tanımlıydı. Daha sonra 1983’te C dilinin standardize edilmesi için bir komite oluşturuldu (ANSI) ve bu işlem yaklaşık 9 yıl sürdü. 1989’da ilk ANSI C standardı tanımlanmıştı. Daha sonra 1995’te C standardına eklemeler yapıldı. Bu dilin son hali ise 1999’da tanımlandı ve buna C99 adı verildi. 90’lı yıllarda ise C’ye object mantığı eklenerek C++ dilinin geliştirilmesine ağırlık verildi ama bu yine de C’nin yaygınlığını azaltmadı. Programlama Dilleri Hiyerarşisi Programlama dilleri High (Yüksek), Middle (Orta) ve Low (Düşük) seviye olarak 3 kategoriye ayrılmıştır. Bu kategorizasyonda kullanılan kriter söz konusu programlama dilinin programcı veya makineye olan yakınlığıdır. Örneğin Assembly gibi makineye yakın programlama dilleri Low Level olarak tanımlanırken, Basic gibi kullanıcıya daha anlaşılır gelen programlama dilleri ise High Level olarak tanımlanmaktadır; High Level Basic Pascal Cobol Medium Level C C++ Java Low Level Assembly Middle Level bir dil olarak C hem makineye hem de programcıya yakındır. Örneğin C ile bitler, bytelar ve adresler üzerinde de işlem yapılabildiği gibi, C syntax bakımından da kullanıcının anlayabileceği bir yapıdadır. C aynı zamanda kolaylıkla port edilebilir bir dildir. Yani bir platform için yazılmış bir C programını, bazı platform-spesifik değişikliklerle başka bir platforma taşımak mümkündür. C’nin High Level Programlama Dillerinden Farkları Data tipi çevirimlerinde diğer High Level programlama dilleri kadar katı kuralları yoktur. Neredeyse bütün tipler arasında çevirim yapılabilir. Diğer diller gibi run-time (çalışma anı) hata kontrolü yoktur; dizi indisi aşılması gibi. Bu kontrolleri programcının yapması beklenir. İlk kurala benzer bir şekilde C parametre ve argüman tipleri arasında data tipi uyumunu şart koşmaz. C bit, byte ve adresler üzerinde işlem yapılmasına da izin vererek sistem programlama seviyesine daha yakın bir yerde durur. C diğer High Level programlama dillerinden farklı olarak çok az keyword içerir - 32 adet. Buna karşın BASIC 100’ün üstünde keyword içermektedir. NEDEN C ? C genelde ‘programcının dili’ olarak anılır. Bunun sebebi C’nin geliştirilme amacıdır. Örneğin COBOL programın verimini artırmak veya kodun güvenilirliğini artırmak için değil, programcı olmayanların program yazıp hazır programları kolayca anlayabilmeleri için tasarlanmıştı. Aynı şekilde BASIC de programcı olmayan kişilerin basit problemleri çözebilmeleri için tasarlanmıştı. Fakat C çalışan programcılar tarafından, programcının isteklerini karşılayacak şekilde geliştirildi: az sayıda kısıtlama, function tanımlama, block yapısı ve az sayıda keyword. Böylece C kullanılarak Assembly dilinin verimi ve Pascal veya Modula–2 dilinin kullanım kolaylığını elde edebiliriz. C’nin ilk başarısını yakalamasının esas sebebi Assembly language yerine kullanılabilmesiydi. Kodlaması, debug edilmesi ve okunması oldukça zor olan Assembly language yerine C dilinin kullanılması gerçek bir avantaj. Bir diğer önemli nokta da Assembly dilinin port edilememesi. C sistem dili olarak da tanımlanabilir. C’nin geliştirilme sebebi işletim sistemi yazılmasında kullanmaktı. Bütün UNIX implementasyonlarının ve Windows 95’in de C’de kodlanmış olması C’nin bu konuda ne kadar güçlü olduğunu göstermektedir. C Kodunu Oluşturan Parçalar Bir C programının en önemli parçaları ‘function’ adı verilen prosedürlerdir. Bu prosedürlerden en önemlisi main() dir. main() prosedürü yazılan programın akışı hakkında genel yapıyı içerir. Bunun dışındaki prosedürler main() veya diğer prosedürler tarafından çağırılmak üzere kodlanır. Örnek bir C kodu verip gerekli kod parçalarını bunun üzerinde gösterecek olursak: #include void main(void) { char name[10]; printf(“Adınızı giriniz:\n”); scanf(“%s”, name); printf(“Merhaba %s”, name); } Yukarıdaki koda baktığımızda birkaç parçaya ayrılmış olduğunu görülür: #include Bir programın başında kullanılan #include satırları, program içinde kullanılacak fonksiyonların (string fonksiyonları, aritmetik fonksiyonlar, vs.) nerede tanımlanmış olduğunu söyler. void main(void) Daha önce de belirtildiği gibi main() fonksiyonu bir C programında olmak zorundadır. main() Fonksiyonu program çalıştırıldığında çalışacak esas kodu içerir. char name[10] Fonksiyon tanımından sonra gelen ilk satırlar fonksiyon içinde kullanılacak değişkenlerin tanımlandığı yerlerdir. printf ve scanf Yazılan bütün C programlarında kullanıcıdan veri girişi almak için scanf, ekrana çıktı almak için ise printf komutlarını kullanılır. { } C programlarında en önemli unsurlardan biri de blokları belirleyen parantezlerdir. Bu parantezler genelde bir kod parçasını ayırmak için kullanılır; örneğin bir karşılaştırma sonucuna göre yapılacak işlemleri veya bir döngü içinde yapılacak işlemleri ayırmak için. Bu parantezlerin yerleştirilmesine dikkat edilmelidir çünkü yanlış yerleştirilmiş veya eksik/fazla yazılmış bir parantez programın yanlış çalışmasına veya hiç çalışmamasına yol açabilir. Bunun yanında bir C programı yazarken dikkat edilecek en önemli şeylerden biri bu dilin case-sensitive oluşu yani program içinde geçen karakterlerin büyük/küçük harf yazılmasına dikkat etmesidir. Yani printf, Printf ve PRINTF hepsi birbirinden bağımsız üç farklı fonksiyon gibi algılanır. Aynı şey kullanılan değişken isimleri için de geçerlidir. Örnek programda kullanılan name adlı değişkeni ekranda yazdırırken ismini Name olarak versek alacağımız şey name değişkenini içeriği değil bir hatadır. Kendi Ders Notlarımdır Lütfen Emeğe Saygı
  2. Visual Basic ile Kodlanan bir Hesap Makinesi Sayi Bulma Oyunu Not Ortalaması Alma alıntıdır
  3. LaRsiE_ şurada bir başlık gönderdi: Visual Basic
    Visual Basic'de Saat Yapmak İçin Güzel Bir Örnek Alıntıdır
  4. while döngüsü while döngüsü, while parantezindeki koşul deyimi doğru olduğu sürece devam eden bir döngüdür. Genel biçimi: koşul deyimi boolean bir değer üretir ve bu değerin true veya false olmasına göre döngü devam eder. Yukarıdaki koda baktığımızda while döngüsünün koşulu true yani doğru olduğu sürece döngü devam edecektir. while döngüsü koşul deyimini döngü içine girmeden kontrol eder. Eger koşul sağlanmaz ise döngü içine girilmez. do ... while döngüsü while döngüsü koşul deyiminin doğru olup olmadığını döngünün başında kontrol eder, eğer koşul doğru ise döngüye girer, değilse döngüye girmez. Eğer döngünün en az bir kez çalıştırılması isteniyorsa o zaman do .. while döngüsü kullanılmalıdır. Genel biçimi: Yukarıdaki kodumuzda x değişkeninin değeri 11 dir. do..while döngüsünün koşul deyimi x' in 10 dan küçük olduğu sürece döngüye devam edeceğini belirtilmesine karşın, koşul deyiminin döngünün sonunda test edilmesinden dolayı döngü bir kez icra edilecektir. Ve ekrana “x = 11” yazacaktır. for döngüsü Şu ana kadar gördüğümüz while ve do..while döngülerine baktığımızda; bir değişkene ilk değer verilmekte veya bir başlangıç değeri verilmekte sonra bu değişkenin değeri koşul deyimi olarak kullanılmakta ve buradan doğru veya yanlış olarak bir sonuç çıkarılmaktadır. Buna göre döngü devam etmektedır. Son olarakta döngünün ne kadar devam edeceğini belirlemek için değişkenimizin değeri artırılmaktadır veya azaltılmaktadır. for döngüsü bunların hepsini kendi içinde barındırmaktadır. Genel biçimi: ifade1 for döngüsüne girildiğinde ilk değerin verildiği kısımdır. Ancak bu bir zorunluluk değildir. Bu kısım bir kez icra edilir. Ifade2 koşul deyiminin tanımlandığı kısımdır. Ifade3 genelde döngü değişkeninin artırıldığı veya azaltıldığı kısımdır. Yukarıdaki for döngüsünde x değişkenine 0 ilk değeri verilecektir. Koşul deyimi döngü içine girmeden önce kontrol edilecektır. Koşul doğru ise döngüye girilecektır. Daha sonra x değişkeninin değeri 1 arttırılacaktır. Yeri gelmişken değişkenlerin yaşam süreleri hakkında bir şey belirtmek istiyorum. Dikkat ettiyseniz for döngüsünün içinde bir değişken tanımlaması yapıldı. Bu değişkenin yaşam alanı for döngüsüdür. Ancak bu döngü içinde kullanılabilir. Döngü sona erdiğinde değişkenin yaşamıda sonlanacaktır. Yukarıdaki program parçasını çalıştırmaya kalktığımızda aşağıdaki hatayı alırız. The name 'x' does not exist in the class or namespace 'ConsoleApplication1.Class1' foreach döngüsü foreach deyimi C# ile birlikte gelen bir yeniliktir. Genel olarak diziler veya kolleksiyonlar ile birlikte kullanılmaktadır. Ancak bu konuyu daha sonra inceleyeceğimizden şu anda sadece ön bilgi vermek amacıyla değinilmiştir. continue ve break ifadeleri Bazen kullandığımız döngülerde, döngü içindeyken döngünün başına gelmek ve geri kalan kısımın icra edilmesini istemeyebiliriz veya döngüden çıkmak isteyebiliriz. İşte bu gibi durumda continie ve break ifadelerinden yararlanırız. continue ifadesi ile döngünün geri kalan kısmı yapılmadan döngünün başına atlanması sağlanırken, break ifadesi ile de döngüden bilinçli olarak çıkılması sağlanır. Yukarıdakı kodumuzda döngü bir kez çalışacak sonra break ifadesini gördüğü yerde döngüyü kesecek ve döngüden çıkacaktır. Not: Kendi Ders Notlarımdır Lütfen Emeğe Saygı
  5. Bu bölümümüzde if ...else, switch... case koşullu dallanma ifadelerini, for, while, do.. while döngü ifadelerini inceleyeceğiz. İf ... else ifadeleri if ... else ifadeleri koşullu dallanma ifadeleridir. Genel biçimi: Koşul deyimi if kısmında test edilir. Sonuc doğru ise if bloğu icra edilir. if koşullu dallanma ifadesi opsiyonel olarak bir else bloğuda bulundurabilir. Eğer sonuç yanlış ise else bloğu icra edilir. Else ifadesi kullanılmamış ise if ifadesinden sonraki satırdan programın akışı devam eder. if ifadesi boolean bir koşul deyimi alır. Yani if kısmında koşul test edilirken true veya false olarak test edilir. Şöyle bir kullanımda derleyici hata verecektir. Cannot implicitly convert type 'int' to 'bool' switch ifadeleri switch koşullu dallanma ifadeleri iç içe if ifadelerine bir alternatiftir. Genel biçimi: Sizin de gördüğünüz gibi switch parantezleri arasındaki deyimin alabileceği değerler case kısmında belirtilmektedir. Bu kosula göre ilgili case deyimi icra edilmektedir. Burada dikkat ederseniz bir dallanma ifadesi vardır. Bu ifade genel olarak break ifadesidir ve kullanılması zorunludur. Daha doğrusu c# da kullanımı zorunlu hale getirilmiştir. Amaç gerekli case deyimi icra edildikten sonra diğer case deyimlerine dallanmasın yani daha güvenli bir kullanımdır. Yukarıdaki kullanıma baktığımızda herhangi bir hata göze çarpmamaktadır. Ancak c# da bu kullanım derleyicinin hata vermesi ile sonuclanacaktır. Çünkü case deyimlerinde muhakkak bir break ifadesi olmalıdır. Yani akış diğer case ifadelerine akmamalıdır. Control cannot fall through from one case label ('case 0:') to another Control cannot fall through from one case label ('case 10:') to another Control cannot fall through from one case label ('case 20:') to another Yukarıdaki kullanımda break ifadesi case deyimlerinde kullanılmıştır. Bir tek son case deyiminde kullanılmamıştır. Ancak yine de derleyici hata verecektir. Bu son satırda derleyicinin bir hata vermesine gerek yoktur aslında. Çünkü son case deyimidir bundan sonra başka bir case deyimine akmayacaktır ama yinede derleyici hata vermektedir. Control cannot fall through from one case label ('case 20:') to another Aslında swicth deyiminin ara koduna (İL) baktığımızda her bir case deyiminin aslında bir label olduğunu görmekteyiz. Yani biz programlarımızda çeşitili label lar tanımlayabiliriz, ve bu label lara goto ifadesi ile programın akışını yönlendirebiliriz. Sizlerin bir switch ifadesi gördüğünüzde aklınıza gelecek olan şey case deyimlerinin bir label gibi davrandığıdır.
  6. rapidden premıum account olmadan sınırsız sekilde dosya çekmeyı anlatacagım. bu yontemle modemı resetlemeden, pespese dosya cekebılıyorsunuz . yapmanız gereken sadece programı acıp linkleri sıralamak. gerisini program kendi kendine hallediyor. accounta gerek kalmıyor. su uyarıyıda yapmak lazım. 1-) bu program ile premıum hızında dosya cekemezsiniz free kullanıcılara verilen tarife hızında dosya cekebılırsiniz. 2-) dosya indirmeden önce gelen surede bu programda aynen vardır. yani sure dolmadan dosyayı cekmez rapidden. 3-) türkçe dil destegide vardır. ayarlar kısmından yapabılırsiniz 4-) aynı anda 2 veya daha fazla partı download yapmaz. sırayla tek tek indirir. Program tüm işletim sistemlerinde çalışmaktadır. Program tanıtım amaçlı olup link verilmemektedir. İndirmek isteyenler ÖM atabilirler.
  7. Banyo, Panel Mobilya Tasarım Sunum ve İmalat Programı hayalinizdeki mutfak banyoyu siz çizin program tanıtım amaçlı olup link verilmemektedir indrmek isteyen arkadalar öm atabilir
  8. Corel draw Grafikerlerin kolayca kullanabileceği fonksiyonlarının çok fazla olan kullanım kolaylığı olan vektorel bir bir programdır. Birçok büyük Gazete Dergi gibi Matbaa Firmaları Corel ile çalışmaktadır Genelde coreldraw ve photoshop birbirine çok benzerler aradaki fark sadece birisi Vektorel diğeri Pixel tabanlı olmasıdır. Mesela bir Logo oluştururken vektorel bir grafik yazılımı kullanmakta fayda vardır. Corel in marifetleri saymakla bitmez Contour Convert Kareler Symboller ile çalışmalar yapılabilir. Text yazalım. Soldaki Tool Box'tan en üstteki mause'a tıklayalım. Font size (punto) 60 Font'umuz Arial Rengimizi siyah seçelim daha sonra istediğiniz rengi seçebilirsiniz. Yazımız seçiliyken resimdeki Contour Effect'ini seçelim. Property Bar, Contour Efect'imizin ayarlarını getirdi. 1 numaralı bölge Effect'i merkeze uygulamadır. 2 numaralı bölge Effect'i içeri uygulamadır. 3 numaralı bölge Effect'i dışarı uygulamadır. Bu uygulamayı seçelim. 4 numaralı bölge Effect'in adım sayısıdır. 5 yapın 5 numaralı bölge Effect'in adım sayılarının milimetrik olarak genişlik değeridir. 1 mm. yapın. 6 numaralı bölge Effect'i eğer yazımızın kenarına çizgi kalınlığı uyguladıysak Contour'daki renk değeridir. 7 numaralı bölge Effect 'in renk uygulamasıdır. Mavi rengi seçelim.
  9. en sonunda bunuda yaptın ya ne diyim ben sana
  10. programı kurmuyorsunuz rarlı dosya içinden çıkartın ve kullanmaya başlayın
  11. LaRsiE_ şunu cevapladı bir başlıkta ileti içinde Web Haberleri ve Programlama Dilleri
    korunmanın tek amacı çok sevdiğin bir arkadaşın bile olsa bu resim senmisin yok şuna tıkla engelliyenleri gör gibi linklere tıklanmayıp iptal edilmesi yeter
  12. DÜNYANIN EN UZUN KÖPRÜSÜ Donghai Bridge , China Uzunluğu.......32,5 km. DÜNYANIN EN BÜYÜK YOLCU GEMİSİ MS Freedom of the Seas......4300 yolcu kapasiteli DÜNYANIN EN YÜKSEK HEYKELİ CHRIST THE REDEEMER STATUE.....RIO DE JENAIRO.........BREZİLYA DÜNYANIN EN BÜYÜK OTELİ Palace of the Parliament.....Bükreş, Romanya 500 den fazla yatakodası, 55 mutfağı, 120 oturma odası var DÜNYANIN EN PAHALI OTELİ Burj Al Arab Hotel, Dubai, B.A.E Dünyadaki tek 7 yıldızlı otelOdaların geceliği 1.000 $ ......Royal suit geceliği 28.000 $
  13. DÜNYANIN EN BÜYÜK KAPALI YÜZME HAVUZU World Water Park.....Edmonton, Alberta, Canada Alanı......5.000 m² DÜNYANIN EN BÜYÜK OFİS KOMPLEKSİ Chicago Merchandise Mart.....Illinois, ABD DÜNYANIN EN BÜYÜK ALIŞVERİŞ MERKEZİ South China Mall, Dongguan, Çin.........892,000 m² DÜNYANIN EN BÜYÜK HAVAALANI J.F.K International Airport , New York....................ABD DÜNYANIN EN GENİŞ KÖPRÜSÜ Sydney harbor bridge, Avustralya 8 araçlık trafik hattı üst katta, 8 araçlık trafik hattı da alt katta olmak üzere toplam 16 hat.
  14. 5000 METREKARE ALANA SAHİP OLAN CAMİ BİR TÜRK MİMAR OLAN VEDAT DALOKAY TARAFINDAN DİZAYN EDİLDİ. KRAL FAYSAL (THE SHAH FAİSAL MOSQUE) GUİNESS REKORLAR KİTABINA GİREBİLMİS DÜNYANIN EN BÜYÜK CAMİSİDİR.
  15. Dünyanın en uzun şelalesi 983 Metre Angel-Venezuela Dünyanın en uzun karayolu tüneli: St.Gotthard-İsviçre-16.4 km Dünyanın en uzun kanalı: Panama kanalı-Panama–81,5 km Dünyanın En Uzun ßinası Suyong Bay Tower Pusan 88 Kat 2.Shanghai World Financial Center 95 Kat 459 m.
  16. LaRsiE_ şunu cevapladı bir başlıkta ileti içinde Erkekçe
    :D
  17. 1.e.a RST Hijacking RST Hijacking iki sistem arasında kurulan bağlantıyı dışarıdan kesmek için kullanılır.Bilindiği gibi RST Kontrol Biti TCP başlığında tanımlı spesifik bir bittir.Bu kontrol bit’i 1 olduğu zaman iki sistem arasındaki bağlantı sona erer.Eğer biz doğru ayarlanmış bir paketi iki sitemden herhangi birine RST biti 1 olarak olarak gönderirsek iki sistem arasındaki bağlantıyı dışarıdan kesmiş oluruz.Burada dikkat edilecek nokta yine TCP Başlık formatında tanımlı “acknowledgement number” dediğimiz kısımdır.Bu 32 bitlik kısım, sistemin bir sonra alacağını varsaydığı paketin “sequence number”’ını içerir.(bkz.TCP Hijacking:Sequence Number).Eğer biz source ip kısmını iki sistemden birine ayarlayıp “acknowledgement number”’ıda bulabilirsek ve RST bitini de 1 olarak ayarlarsak, bu paketi alan sistem, bağlı olduğu diğer sistemin bağlantıyı kesmek istediğini sanarak bağlantıyı bitirecektir.Bu saldırı yönteminden de korunmak neredeyse imkansızdır.Fakat 32 bitlik bir sayıyı tahmin etmek imkansıza yakındır.Yani aynı TCP/IP Hijacking ‘te olduğu gibi, bu saldırının gerçekleşmesi için saldıranın kurban sistemle aynı ağda olup trafiği bir sniffer aracıyla izlemesi gerekmektedir.Bu noktada bu saldırıyı engellemenin tek yolu ağda sniffer kullanımını bloke etmekten geçer. 1.f Shattering (Mesajlaşma sistemi açıkları) Bu saldırı yöntemi aslında çok yeni değildir fakat son günlerde hacker’ ların ilgisini biraz daha çekmiştir.Bu yöntemde Windows’un mesajlaşma sisteminin zayıflıklarından faydalanılır.Windows’ta daha önce API düzeyinde programlama ile uğraşan herkesin bileceği gibi Windows işletim sistemi mesajlaşma sistemi üzerine kurulmuştur.Bundan kastım, oluşturulan her kontrolün kendine özgü bir “handle”’ı vardır.Sistem bu “handle”’lar arasında giden mesajlar sayesinde işler.Örneğin Windows’ta bir düğmeye tıklandığında WM_LBUTTONDOWN mesajı bu düğmeyi içeren form’a gönderilir ve işlemler orada gerçekleşir.Bu şekilde binlerce mesaj aynı anda farklı programlarda işlenebilir.Fakat bu sistemin de bir takım zayıflıkları vardır.Windows bu mesajı gönderenin kim olduğuna bakmaz, yani daha açarsak, mesaj dışarıdan başka bir programla da rahatlıkla gönderilebilir.BU zayıflıkta diğer programın ilk programı kullanarak bazı haklar elde etmesine yol açabilir.Örneğin Microsoft’un Windows 2000 SP3’e kadar ürettiği Windows versiyonlarda WM_TIMER mesajı ile ilgili bu tür bir açık mevcuttu.Bu açık sayesinde kötü niyetli bir kişi başka bir programı kullanarak yetkisi dahilinde olmayan işlemleri gerçekleştirebiliyordu.Bu saldırı yöntemini birisinin gerçekleştirebilmesi için saldırıyı yapacağı makineyi kullanıyor olması gerekmektedir.Yani dışarıdan bir tehlikesi yoktur.Bu saldırı yöntemi ile bir kişi administrator yetkisi olmayan bir sistemde administrator yetkisini kolaylıkla kazanıp ağda bir takım değişikler yaparak o makinenin bağlı olduğu ağın tümünü kullanılmaz hale getirebilir.
  18. 1.d.e SYN Flooding TCP/IP “stack” denilen bir bölgede tüm bağlantıları tutar.Tekrar eski bilgilerimize dönersek üç yollu el sıkışmadan hatırlayacağımız gibi SYN paketine cevap olarak SYN/ACK gönderiliyordu daha sonra biz tekrar ACK gönderiyorduk ve bağlantı kuruluyordu.Şimdi şöyle bir senaryo düşünelim:Bir kişi bir server’a SYN paketi gönderiyor fakat bu paketin özelliği içindeki “Source ip” kısmı bizim IP adresimizi göstermiyor, tam tersine aslında gerçekte varolmayan bir IP adresini gösteriyor.Bu noktada server bu SYN paketini alıp bağlantı işleminin aslında varolmayan IP adresiyle gerçekleşmesi için bu IP adresine SYN+ACK gönderiyor ve ACK almak için bekliyor.Bu bekleme sırasında IP adresi TCP/IP’nin stack’inde tutuluyor ve biz sürekli bu aslında varolmayan IP adresinden bu sisteme SYN paketleri yolluyoruz.IP adresinde hiçbir sistem varolmadığı için asla ACK paketi gelmiyor sonuçta belli bir süre sonra kurbanın TCP/IP stack’i taşıyor ve ağ trafiği neredeyse işlemez hale geliyor.Bu saldırı yönteminden de korunmak için yine basit bir paket filtreleme sayesinde mümkündür. 1.d.f Buffer Overflow Buffer Overflow dediğimiz şey hatalı kodlanmış bir programın dışarıdan bir etkiyle belleğinin taşmasına neden olmaktır.Daha açarsak sınır kontrolü yapılmamış bir değişkenine alabileceğinden daha fazla veri atanırsa program bellek hatası verir ve bu hatayı kullanarak özel olarak hazırlanmış bazı kodlar sayesinde programın akışı değiştirilebilir.Bunun en güzel örneklerinden biri daha 1.5 seneyi doldurmamış Sasser Solucanıdır.Bu solucan Windows işletim sisteminde sürekli çalışan LSASS.EXE adlı dosyada bulunan bir Buffer Overflow hatası sayesinde milyonlarca makinaya bulaşabildi. Bu LSASS.exe ‘nin asıl görevi (Local Security Authentication Server) Windows un kulanıcı işlemlerinin güvenliğini sağlamak ve kullanıcı izinlerini düzenlemekti.Fakat Windows 2000 ve XP yüklü makinelerde bu dosyanın kullandığı bir DLL dosyasında Buffer Overflow tesbit edildi.( (LSASRV.DLL).Bu sayede virüs 445’inci porta bağlanıp, programa istediği işlemleri yaptırıyordu.Daha sonra da LSASS.EXE kapatılıyordu ve 1 dakika içinde de server ‘ a reset atılıyordu. Kısacası “Buffer Overflow Exploiting” bir programdaki programlama hatalarını kullanarak o programın değişkenlerine ve program akışına dışarıdan erişmeye denir. Bu tür bir saldırı yöntemini engellemenin iki çeşit yolu olduğunu söleyebiliriz:Birincisi eğer programı geliştiren firma yada kişi bizsek Buffer Overflow hatalarını engellemek için alt seviye bellek fonksiyonlarından ve sınır kontrolü yapmayan değişken işlemlerinden olabildiğince kaçınmalıyız.Örneğin C dilinde, iki string tipinde değişkeni birbirine kopyalamak için kullanılan “strcpy()” fonksiyonu bu tür buffer overflow hatalarına gebedir.Çünkü birinci string’i ikinci string’e kopyalar fakat sınır kontrolü yapmaz.Yani eğer biz değişkenlerden herhangi birinin büyüklüğünü statik olarak girmişsek bu programda bellek taşmasına yol açacaktır.Örneğin aşağıdaki C programında çok basit bir buffer overflow görülmektedir: int main(int argc, char *argv[]) { char Buffer1[4]; char * Buffer2; Buffer2 = “AAAAOverFlow”; strcpy(Buffer2,Buffer1); // işte tam burada Buffer Overflow mevcuttur. return 0; } Kodda görüldüğü gibi ilk 4 byte ’ tan sonra yazılan “OverFlow” kelimesi tam anlamını yansıtmaktadır.Bu pogram çalıştığında Buffer Overrun hatası verecektir.Ama OverFlow sözcüğü program stack ’ inin kritik kısımlarını etkileyecektir.Detaylı bir konu olduğundan Buffer Overflow ile ilgili ayrı bir doküman yazıldı.(bkz. http://www.geocities.com/k3xji/dokumanlar/bo.htm) 1.e TCP/IP Hijacking TCP/IP Hijacking bir A sisteminin B sistemi ile C sistemi arasında kurulan bağlantıya sızarak kendini C sistemine B sistemi olarak göstermesi demektir.Peki bu iş nasıl yapılır?Öncelikle şunu söylemeliyimki bu tür bir saldırı için network sniffing kullanılacağı için A sistemi ile B sistemi aynı ağ üzerinde olmalıdır. Bilindiği gibi TCP güvenilir bir protokoldür.Güvenilirden kastım her paketin karşı tarafa ulaşıp ulaşmadığı kontrol edilir ve sonra gitmesi gereken paketin önce gitmesi gerekenden daha önce gitmesi gibi senkronizasyon problemlerinin aşılması için her pakete belli senkronizasyon numaraları verilir(“sequence number”).Bu numaralar sayesinde iletişimde bulunan iki program gelen giden paketleri sırasına göre alıp sırasına göre işleyebilir.Eğer A sistemi “network sniffing” sayesinde B sisteminini tüm gelen giden paketlerini incelerse, B sisteminin C sistemiyle olan bağlantısında o andaki “sequence number”’ını tahmin edebilir.Bu hesapladığı sequence number ve B sisteminin IP adresini source IP olarak kullanarak karşı tarafa bir paket yollarsa, C sistemi doğal olarak artık A sistemini B sistemi olarak algılayacaktır.Bu sırada B sistemi C sistemine bir paket gönderse bile aralarındaki senkronizasyon numaralarında hata oluştuğu için artık C sistemi B sistemini tanımaz.Bu çeşit bir saldırının engellenmesi imkansızdır.Yapabileceğiniz tek şey ağda bir sniffer olup olmadığını araştırmak olacaktır.(bkz.Network Sniffers)
  19. 1.c Network Sniffing Network Sniffing adı verilen yöntem ağda dolaşan paketlerin görüntülenmesi, ve kaydedilmesine olanak sağlayan bir yöntemdir.Bilindiği gibi çoğu yerel ağ sisteminin (LAN) temelini Ethernet oluşturmaktadır.Ethernet ilk tasarlanırken mühendisler kendi protokollerini test etmek için sniffer programlarını kullanıyorlardı.Fakat günümüzde Network Sniffing genellikle kötü amaçlara hizmet ediyor.Ethernet protokolü veriyi olduğu gibi gönderir, yani veriye herhangi bir şifreleme uygulamaz.İşte bu aşamada Sniffing daha da kolaylaşır.Ayrıca Ethernet protokolü gönderilen bu şifrelenmemiş veriyi bağlı olan tüm düğümlere(node) gönderir.Yani aslında aynı non-switched bir LAN da birbirlerine bağlı iki bilgisayarın birbirlerinin ağ trafiğini incelemeleri, sadece NIC (Network Interface Card) bir değişikliğe bağlıdır.Bu değişikliğin uygulandığı bir NIC üzerine gelen tüm bilgiyi filtrelemeden alır.Yani bağlı olduğu tüm ağ trafiğini inceleyebilir.Bu duruma gelmiş bir NIC ‘e “promiscuous mode” ‘a geçmiş denilir.NIC farklı amaçlara hizmet etmesi için farklı filtreleme metotları vardır. Unicast :Destination Address ’ i NIC ’in kendi fiziksel adresi olan paketleri alır. Broadcast : Destination Address ’i FF FF FF FF FF FF olan paketleri alır.Bu paketler ağ üzerindeki tüm düğümlere gönderilmek amacıyla oluşturulmuştur. Multicast : Belirli bir adres veya adres aralığından gelen paketleri kabul eder.Bu adres aralığı NIC ‘in içinde tanımlanmıştır.Ayrıca bir paketin multicast özeliği taşıması için paketin grup bitinin aktif olması gerekir.Yani bir gruba ait olduğunu gösteren bit.Bu biti aktif olanlar NIC ‘ teki listeyle kontrol edilir. All Multicast :Herhangi bir gruba bağlı yani grup biti aktif tüm paketler NIC tarafından kabul edilir. Promiscuous : NIC gelen bütün veriyi alır. Non-switched ağlarda “Packet Sniffing” oldukça kolay.Çünkü filtreleme işlemi NIC ‘ te yapıldığı için bu filtreleme işlemini değiştirme imkanımız var.Switched ağlarda ise durum biraz farklı.Switched ağlarda bahsedilen filtreleme işlemleri, switch yada router ‘ de yapılır.Yani gelen paket hangi adrese gidecekse o adrese yollanır.Switch o adresin nerede olduğunu bilir ve paketi o adrese yollar.Switched ağlarda Sniffing biraz detaylı bir konu olduğu için bunu başka bir dökümanda incelemeye karar verdim.(bkz. http://www.geocities.com/k3xji/dokumanlar/...rnet_sniff.htm) 1.d DoS (Denial of Service) DoS saldırıları günümüzde en yaygın kullanılan saldırı biçimlerinden biridir.Çünkü bir çok saldırı yöntemini içinde barındırır.DoS saldırıları genelde bir ağa ya da kaynağa ulaşımı engellemek için kullanılır.Kendi içinde mantıksal olarak ikiye ayırmak mümkündür: Program tabanlı DoS saldırıları ve Network tabanlı DoS saldırıları.Bu iki saldırıda da iki yöntem kullanılabilir birisi “flooding” diğeri “exploiting”.Flooding’te kullanıcı kurbana çok sayıda paket yollayarak belli bir işlemi çalışamaz duruma getirir.Exploiting yönteminde ise kurbanda çalışan herhangi bir program hedef alınıp bu programın açıklarından faydalanarak program, kullanılamaz hale gelir.Şimdi DoS saldırılarını kısa bilgilerle inceleyelim. 1.d.a DDoS Flooding Bir makineye yada ağa DDoS saldırısı yapabilmek için bir kişi önceden kendine bir çok kurban makine bulup onlara kendi hazırladığı küçük bir programcık yükler(deamon).Bu programcık bu makinelerde sürekli bu kişiden bir istek bekler.Bu kişi istediği zaman bu programcıkları da kullanarak aynı anda binlerce paketi hedef sisteme yollayabilir.Bu paketler genelde ICMP Echo request yada UDP Echo gibi masum görünen ve sadece basit işlemler için tasarlanmış paketler olabilir.Ama aynı anda binlercesi gelince bu hedef sistemin ağ trafiğinin durmasına ve hatta programların çalışamaz hale gelmesine sebep olabilir.Bu saldırı sisteminden www.yahoo.com gibi siteler bile etkilenmiştir.Günümüzde hala önemini korumaktadır ve paket filtreleyici yazılımları veya donanımlarıyla fark edilememektedir.Akıllıca yapılmış bir DDoS saldırısı farklı IP adreslerinden geleceği için filtreleyici programı şaşırtabilir.Ama çoğu sistem bu tür saldırılara karşı önlemini almıştır. 1.d.b The Ping of Death Artık günümüzde neredeyse bütün işletim sistemleri bu tür bir saldırıya karşı önlemini aldıysa da zamanında çok etkili bir yöntemdi.Bu yöntemin mantığı şöyle çalışır: ICMP protokolü ağda bilgisayarların hata mesajlarını birbirlerine göndermesini yada “Ping” gibi basit işlemlerin yapılmasını sağlar.ICMP spesifikasyonunda, ICMP Echo request’lerin data kısmı 216 ile 65,536 byte arasında olmak zorundadır.Eğer bu veri sınırlarının dışına taşmış bir paket kurban sisteme yollanırsa işletim sistemi böyle bir şey beklemediği için çalışamaz duruma gelecektir. 1.d.c TearDrop Bu saldırı yöntemi biraz karışıktır ve IP paketlerinin reassembly yapılmasıyla ilgilidir.Bir IP paketi karşı tarafa yollandığında bu paket tekrar verilere ayrılırken paketin içinde bulunan “offset” bilgisi kullanılır.Bu “offset” bilgilerinin birbirleriyle çakışmaması yani üst üste gelmemesi lazımdır.Özel ayarlanmış bir paket bu senkronizasyonu bozabilir ve paketler üst üste gelirse ve bunu kontrol edebilecek bir mekanizma da mevcut değilse bu işletim sistemini çalışmaz duruma getirebilir.Bu saldırı yönteminden korunma yöntemi IP protokülünün kodlanması ile ilgili olduğundan tamamen işletim sistemi ile alakalıdır.Günümüzde çoğu işletim sistemi bu tür saldırılara karşı dayanıklıdır. 1.d.d Ping Flood “Flooding” adı verilen olay aslında bir işlemin bir çok kere tekrarlanması demektir.Flooding saldırılarında amaç programa hata verdirmek değil programı işlemez duruma sokmaktır, yani kaldırabileceğinden daha fazla işlem emri vermektir.Daha önce aynı DDoS flooding’te olduğu gibi bu saldırı yönteminde de karşı sisteme binlerce paket yollanır ve bu paketler karşı tarafın ağ trafiğinin akışını durdurabilir.Bu paketler karşı sistemle aramızdaki hızı ölçmeye yarayan ping komutundan başka bir şey değildir.Ama bunlardan binlercesi sistemde ciddi ağ trafiğine yol açar ve kullanılamaz hale gelir.Bu saldırı yönteminde zekice bir taraf yoktur, sadece internet hızı yüksek olan bir sistem daha düşük olan bir sistemin ağ trafiğini kitleyebilir.Günümüzde çoğu sistem bu tür bir sadırıya korunmalıdır.Filtreleme programları bu sadırıları kolaylıkla engeller.Aşağıda örnek bir ping komutu ve sonuçları görünmektedir: C:\ping www.google.com Pinging www.google.akadns.net [66.102.11.104] with 32 bytes of data: Reply from 66.102.11.104: bytes=32 time=119ms TTL=242 Reply from 66.102.11.104: bytes=32 time=126ms TTL=242 Reply from 66.102.11.104: bytes=32 time=165ms TTL=242 Reply from 66.102.11.104: bytes=32 time=178ms TTL=242 Ping statistics for 66.102.11.104: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 119ms, Maximum = 178ms, Average = 147ms
  20. 1.b Port Scanning Port Scanning (Port Tarama) adı verilen yöntemde karşı taraf hakkında bilgi toplamayla alakalı bir işlemdir.Bu işlemde aynı Fingerprinting gibi protokol formatına dayanır ve karşı sistemde açık olan portları bulmamızı sağlar.Bu sayede Fingerprinting ’ten elde edemediğimiz bilgileri bulabiliriz.Örneğin karşı tarafın 135 no’lu portu açıksa muhtemel bir Windows İşletim sistemiyle karşı karşıya olduğumuzu varsayabiliriz.Yada bir başka örnek olarak karşı tarafta eğer 80’inci port açıksa bu makinenın da bir HTTP Server olduğunu varsayabiliriz.Port Tarama yönetimde bilgi toplama portların ne işe yaradıklarını ve genel kullanımlarını bilmekle alakalıdır.Bu şekilde karşı sistemin zayıflıkları bile bulunabilir.Aşağıda kendi makinemde denediğim Port tarama işleminin sonuçları görünmekte : Scanning 127.0.0.1 (localhost), range : 1 -135 [110] Service found at: 110 [110] Could be: pop3 [110] Read: [135] Service found at: 135 [135] Could be: epmap [135] No data to read. Burada kendi makinemde 1 ile 135’inci portlar arasında yaptığım port taraması sonuçları görülmekte.Görüldüğü gibi makinemde 110 ve 135’inci portlar açık durumda bu portların işlevleri ise sırasıyla “pop3” ve “epmap” olarak adlandırılmış.Başka birisi bende port taraması yapıp bu sonuçları aldığında makinemde muhtemel olarak Windows yüklü olduğunu kolayca anlayabilir.Bu örnekteki port tarama işlemi basit olarak şöyle bir senaryoyla anlatılabilir: Belli bir IP adresinin her portuna bağlantı isteği gönderilir.Eğer bağlantı gerçekleşirse port açık, gerçekleşmezse port kapalıdır diyebiliriz. 1.b.a Stealth SYN scan Port Tarama işleminden bahsettik fakat bu işlemin alt seviyede nasıl yapıldığından sözetmedik.Bu sistem, karşı tarafın istenilen port aralığına bağlanma istekleri göndererek çalışır.Şimdi eski bilgilerimizi tekrar hatırlarsak TCP/IP protokolünde bir TCP bağlantısının gerçekleşmesi için 3 yollu el sıkışma olduğunu biliyoruz.Bu el sıkışmada bağlantı isteyen makine server’a bir SYN paketi gönderir.Bağlantı uygunsa server’da bu makineye bir SYN+ACK paketi yollar.Son olarak ta makine server’a bir ACK paketi yollar ve bağlantı kurulurdu.Stealth SYN Scan tipinde port tarama işlemlerinde son ACK paketi dikkate alınmaz, yani server ‘dan SYN+ACK paketi alındığında, o portun açık olduğu varsayılır ve bu şekilde tarama işlemi hızlandırılır.Bu saldırı yönteminden korunmak neredeyse imkansızdır.Fakat bazı paket filtreleme donanım yada yazılımları sayesinde gelen paketler incelenir ve SYN paketleri hep aynı IP adresinden geliyorsa bloke edilir.Aşağıda nmap adlı bir port scanner programının lokal ağda yaptığı bir taramanın sonuçları yer alıyor: C:\kexji\nmap-3.75-win32>nmap -v -sS 10.0.0.21 Starting nmap 3.75 ( http://www.insecure.org/nmap ) at 2005-01-02 22:18 GTB Standard Time Initiating SYN Stealth Scan against T1000 (10.0.0.21) [1663 ports] at 22:18 Discovered open port 3389/tcp on 10.0.0.21 Discovered open port 139/tcp on 10.0.0.21 Discovered open port 445/tcp on 10.0.0.21 Discovered open port 1025/tcp on 10.0.0.21 Discovered open port 135/tcp on 10.0.0.21 The SYN Stealth Scan took 1.47s to scan 1663 total ports. Host T1000 (10.0.0.21) appears to be up ... good. Interesting ports on T1000 (10.0.0.21): (The 1658 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 1025/tcp open NFS-or-IIS 3389/tcp open ms-term-serv MAC Address: 00:50:FC:A0:26:AB (Edimax Technology CO.) Nmap run completed -- 1 IP address (1 host up) scanned in 1.969 seconds Görüldüğü gibi SYN Scanning lokal ağda 1.5 saniye gibi kısa bir sürede 1600 port taradık.Aynı işlemi normal adi port scanner’la yaptığımızda sonuçları elde etmemiz 3 dakika sürdü.Dikkat edilirse port tarama işlemi bittikten sonra bir de açık portların görevleri gösterildi.Bu sayede karşı tarafta hangi işletim sisteminin yüklü olduğunu tahmin edebiliriz. 1.b.b FIN Scanning FIN Scanning’te Stealth SYN Scan mantığına dayanır.Karşı tarafa bir FIN paketi gönderilir.Bu paket TCP/IP protokolünde bağlantının bittiğini haber veren mesajdır.Eğer biz bağlı olmadığımız bir adresin herhangi bir portuna FIN paketi yollarsak ve eğer o port kapalıysa bir RST paketi geri döner.İşte bu sayede port kontrolü yapabiliyoruz.Fakat bu yöntem Windows işletim sistemi yüklü makineler için geçersizdir.Çünkü Windows yollanan her FIN paketine RST cevabını verir, port açık olsa da olmasa da.Her neyse aslında bu tarama yönteminin ortaya çıkış nedeni “SYN Scan” port tarama yönteminin bir çok paket filtreleme programı tarafından engellenmesi sonucu ortaya çıkmıştır.İlk kez Uriel Maimon tarafından Phrack 49, Article 15 ‘ te anlatılmıştır.Bu yöntem de günümüzde paket filtreleme programları tarafından engellenebildiği için hacker’ lar da değişik sistemler üzerinde değişik tarama işlemleri gerçekleştirmeye başlamışlardır.”XMAS Scan” ve “NULL Scan” adı verilen iki tip tarama yöntemi daha mevcuttur.XMAS yönteminde tıpkı bir Noel Ağacının her tarafının ışıl ışıl parlaması gibi, bir TCP paketinin bütün kontrol bitlerini etkin duruma getirir.Bu şekilde cevapları inceleyerek tarama işlemini yapar.NULL tarama metodunda ise XMAS ’ın tam tersi olarak tüm kontrol bitlerini etkisiz duruma getirir.Her neyse her iki metotta da karşı sistemin işletim sistemi paket cevaplarının incelenmesinde kilit rol oynar. 1.b.c Fragmented Packet Scanning Bu tarama metodu, paket filtreleme programları tarafından engellenmesi en güç olandır.Çünkü bu metotta TCP Başlıkları da kendi içinde parçalara ayrılarak karşı tarafa gönderilir.Bu sayede paket filtreleme programı tüm TCP başlığını göremediği için filtreleme işlemini yapamayacaktır.Ancak yine de bu tarama metoduna da dayanıklı sistemler mevcut:Örneğin Linux sürümlerinde CONFIG_IP_ALWAYS_DEFRAG özelliği sayesinde, herhangi bir başlık tamamen oluşturulmadan cevap gönderilmez, paket işlenmez, yani bir nevi kuyruk oluşturur.Fakat çoğu ağ yöneticisi bu özelliği kullanmaz, çünkü ağ trafiğini yavaşlatır.Günümüzde çoğu port tarayıcı program bu yöntemi kullanmaktadır.
  21. 1.a Fingerprinting Fingerprinting tanımı aslında karşı taraf hakkında bilgi toplamaktan ibarettir.Bir saldırı yöntemi değildir sadece karşı sistem hakkında bilgi verir ve saldırı için doğru seçimlerin yapılmasına olanak sağlar.Çalışan işletim sistemi, çalışan programlar işletim sistemi versiyonu gibi bilgiler sayesinde karşı sistemin güvenlik açıkları kolayca tespit edilip saldırı uygulanabilir.Bir çok çeşidi ve yöntemi vardır.En basit örneği , FTP Server’larından vermek mümkündür.FTP formatına göre karşı tarafa gönderilen “SYST” mesajı karşı tarafın işletim sistemi hakkında bilgi verir.Örneğin; anonymous olarak ftp.sau.edu.tr adresine bağlanıp, command ekranına SYST yazılırsa sonuç aşağıdaki gibi olacaktır : Connected to ftp.sau.edu.tr SYST 215 UNIX Type: L8 Host Type (S): UNIX Standart Bu sayede karşı tarafta UNIX Standart yüklü bir makinenin olduğu tespit edildi.Bunun dışında telnet aracılığıyla bağlandığımız bir sistem direkt olarak bize işletim sistemini verebilir.Çoğu işletim sistemi üreticisi günümüzde bu bilgiyi telnet üzerinden otomatik olarak vermeye ayarlıyor ve çoğu sistem yöneticisi de bunları kapatmıyor.Aşağıda küçük bir örnek var: playground~> telnet hpux.u-aizu.ac.jp Trying 163.143.103.12 ... Connected to hpux.u-aizu.ac.jp. Escape character is '^]'. HP-UX hpux B.10.01 A 9000/715 (ttyp2) login: Görüldüğü gibi yaptığımız tek şey telnet aracılığı ile karşı tarafa bağlanmaktı.Sistem bize işletim sistemini versiyon numarasına kadar verdi.Bu yöntemlerin dışında birde http Fingerprinting adı verilen ve adından da anlaşılabileceği gibi http protokolünü kullanan bir yöntem daha var.Bu yöntemde “http” ’de tanımlı “GET” metodunu kullanarak Web Server’ın ne olduğunu öğreniyoruz: playground> echo 'GET / HTTP/1.0\n' | nc hotbot.com 80 | egrep '^Server:' Server: Microsoft-IIS/4.0 IIS Web Server kurulu bir sistemde hangi işletim sisteminin yüklü olduğunu tahmin etmek pek zor değil.Bu anlatılan yöntemlerden farklı olarak daha alt seviye bazı yöntemler de mevcut.Bu yöntemler TCP/IP protokolünün işletim sistemleri arasındaki küçük farklarından yararlanarak amacına ulaşıyor.Aşağıda bunlardan bazılarını inceleyelim: The FIN Probe: Bu teknikte karşı tarafın açık bir portuna bir FIN paketi yolluyoruz(Yani FIN kontrol biti bir olan herhangi bir paket).RFC 973 standart’ına göre karşı tarafın bu pakete hiçbir karşılık vermemesi gerekirken, MS Windows, BSDI, CISCO, HP/UX, MVS, IRIX gibi işletim sistemleri geriye RST paketi yollarlar.Günümüzde bir çok Fingerprinting aracı bu yöntemi kullanmaktadır. TCP ISN Sampling: Bu teknik işletim sistemlerinin TCP/IP stack’lerinin “initial sequnce number”’ları (ISN) seçme özelliğinden faydalanıyor.Hatırlayacağınız gibi TCP/IP’de bir bağlantı kurulduğu zaman iki tarafta da byte akışının doğru sağlanması için sequence number’lar kullanılıyordu.Her yeni paket için de x kadar arttırılıyordu.Bu yöntemde işletim sistemlerini kategorize edersek: “Random Increments”, “True Random” ve “Time dependant model” olarak üçe ayırabiliriz.İlk modelde iki bağlantı için belirlenen seq. Number’lar arasındaki x artış miktarı her paket için random olarak seçilir ve sürekli bir öncekiyle toplanır.Solaris, IRIX, FreeBSD, Digital UNIX, Cray gibi işletim sistemleri ISN üretmede bu modeli kullanmaktadır.İkinci modelde ise iki bağlantının seq. Number’ları arasında hiçbir bağıntı yoktur, birbirlerinden tamamen bağımsızdırlar.Bu modeli kullanan sistemler arasında Linux 2.0.x Open VMS gibi sistemleri sayabiliriz.Üçüncü modelde ise ISN ‘ler belli bir zaman aralığında sabit bir sayıyla toplanarak elde edilirler.Windows bu üçüncü modeli kullanan bir yapıya sahiptir. TCP TimeStamp: TCP başlığı içinde yer alan bu bilgiyi işletim sistemleri farklı işlerler.Bazıları bu özelliği desteklemez, bazıları ise belirli peryodlarla bu değeri arttırırlar.Bazı işletim sistemleri ise hep 0 döndürür. TCP Initial Window:Bu teknikte karşı sistemden dönen paketlerin “Window Size”’ları kontrol edilir ve buna göre değerlendirme yapılır.Bu değerlendirme önemlidir çünkü çoğu işletim sistemi bu değer için sabit bir sayı kullanır.Örneğin AIX işletim sistemi Window Size değeri için hex değer olarak $3F25 sayısını kullanır.Aynı şekilde FreeBSD, OpenBSD ve Windows NT işletim sistemleri bu sayıyı $402E olarak belirlemişlerdir. ICMP Message Quoting:Bu teknikte ICMP protokolünün “port unreachable” hatasından faydalanıyoruz.Bu hata karşı tarafa bir ICMP paketi gönderildiği ve bu port açık olmadığı zaman geri gelen bir hata mesajıdır.Çoğu sistem IP Header + 8 Byte geri gönderir.Fakat Solaris işletim sistemi 8 Byte’dan daha fazla gönderir, Linux ise Solaris’ten daha fazla gönderir. Type Of Service:ICMP protokolünde alınan bir port unreachable paketinin ToS değeri incelenirse, bu değerin her işletim sisteminde 0, bir tek Linux’ta $0C olduğu görülmüştür. TCP Options: TCP paket başlığında “TCP Options” değerini kullanarak işletim sistemi tahmini yapmaktır.Bu yöntemin bir çok avantajı vardır bunlardan birkaçını sıralarsak: i) Her şeyden önce bu kısım isteğe bağlıdır yani birçok işletim sistemi bu değeri gözardı eder. ii) Eğer bir Option ayarlayarak karşı makineye gönderirseniz, karşı sistemin cevabı o option’ ın desteklenip desteklenmediğini gösterecektir.Bu Option’lar da her işletim sistemine göre değişeceği için bu da bize avantaj sağlar. iii) Bir çok Option’ı ayarlayıp sadece bir paket göndererek, cevap alabilirsiniz.Yani tek bir paketle karşı tarafın hangi Option’ ları desteklediğini kolayca anlayabilirsiniz. WindowScale, NOP, Max Segment Size, TimeStamp TCP Options’ın alabileceği değerlerin bazılarıdır.Örneğin bu sayılan özelliklerin hepsi FreeBSD tarafından desteklenmektedir.Bunun yanında Linux 2.0.x sürümleri yukarıdakilerin çok azını destekler.İki işletim sistemi aynı Option özellikleri desteklese bile bunlara verdiği cevaplar faklıdır.Örneğin bir Linux sistemine küçük bir MSS(Max Segment Size) değeri gönderilirse, sistem aynı değeri bize geri gönderecektir.Geri dönen değerler aynı olsa bile sıraları faklıdır.Örneğin Solaris “MSS” değerine “NNTNWME” ile cevap verirken Linux 2.1.122 “MENNTNW” ile cevap verir
  22. 1. Giriş Çocukların denetimsiz internet kullanımı önemli tehlike ve riskleri de beraberinde getiriyor. İnternet kullanımının çığ gibi yayıldığı günümüzde çocuklar da neredeyse sonsuz bir bilgi ve iletişim olanağına sahip oldular. Çocuklar internet sayesinde ansiklopediler, güncel olaylar, kütüphaneler ve diğer birçok değerli malzemeye kolayca erişiyorlar. Ayrıca sadece "tık"layarak birçok alanda "gezinebilme" olanağı çocuklarda doğal olarak var olan dürtüsel davranış, merak ve çabuk haz veya yanıt alma ihtiyacına da yanıt veriyor. Buna karşın çocukların denetimsiz bir şekilde internet kullanmalarının ciddi risk ve tehlikeleri de mevcut. İnternet kullanımını deneteme ve sağlıklı hale getirmede web içerik tarama ve ebeveyn kontrolü çözümü devreye girmektedir. Bu çalışmada hem sosyo-psikolojik hem de teknolojik alanlarda vurguları birlikte ve birbirini tamamlayıcı bir biçimde yapılacaktır. İnternet nesillerin eğitimi yada dejenerasyonu için de kullanılabileceği için özellikle teknolojisi ile birlikte içeriğinin daha önemli olduğu bir kavramı tartışacağız. İçeriğin önemi ortaya çıkınca içeriğin lokalizasyonu ve içeriğin lokalizasyonundan ahlaki ve sosyal değerlerin yerel manalarına da atıfta bulunacağız. Teknolojisi bakımından URL filtreleme, içerik filtreleme ve resim analizi kullanılan metotlardır. Bu çalışma hem içerik sağlama hem de metin içerik taramada yani yöntemler öne sürülecek hem de bu sistemlerin sosyal niteliklerinden dolayı yerelliklerine vurgu yapacaktır. 2. İÇERİK FİLTRELEME İçerik filtrelemek için kullanılan teknikler: · URL bloklama · İçerik Tarama · Resim Tanıma URL yasaklama önceden hazırlanmış domain ve URL listelerine bakarak karar verme mekanizmasına sahiptir. İçerik taramada birkaç metot kullanılır. · Kelime Analizi · Cümle Analizi · Profil analizi Kelime Analizi: Sayfa metninde kelime arama Cümle analizi: Sayfa içerisinde cümle tarama Profil Analizi: Sayfadaki resim metin oranları ve sayfa içerisinden yasak listedeki sayfalara ulaşım var mı yok mu ya bakan bir karar mekanizması. Mesela yasak siteler · Özel kelimeler · Resim oranının fazlalığı · Koyu arka plan · Büyük fontlar Bununla birlikte cinsel eğitim siteleri · Metin oranı çok fazla · Dil bilgisi kurallarına uygun · Açık arka planlar · Basit fontlar · Ve az resim bulundurur. Resim tanıma: Sayfanın içindeki resmi algılama yöntemiyle karar verme mekanizmasına sahiptir. Yukarıda bahsedilen metotların bazılarının sisteme getirdiği handikaplar pek çoktur. Mesela profil analizi sistemi yavaşlatır. Cümle analizi de. Gerçek zamanda resim tanıma yapabilen ticari ebeveyn kontrol yazılımı yoktur çünkü bu sistem kaynaklarını yorması bakımından çok kaynak isteyen ve kullanıcının beklemesine dayanan ve dolayısı ile hizmet kalitesini düşüren bir yöntemdir. Sadece bazı durumlarda yardımcı yöntem olarak önerilmektedir [8,9,10].Özellikle resim tanımada kullanılan yöntemlerden biri yapay zeka kullanmaktır [11]. Yapay zeka ayrıca sayfadaki elemanların analiz edilmesi için de kullanılan tekniklerden biridir.. Kolaylıkla tahmin edilebileceği gibi yukarıdaki yöntemlerden içerik tarama yöntemi büyük ölçekte yerelleştirme gerektiren bir yöntemdir. Mesela “PKK” yabancı bir yazılım dolayısı ile yabancı bir içerik için zararlı bir içerik değilken Türkiye ve Türkler yani bizim için zararlı bir içeriktir. Ayrıca yukarıda bahsedilen yöntemlerden URL yasaklama ve içerik tarama güncellenen ve güncellenebilir içeriği destekleyen mekanizmalara sahip olmalıdırlar. Bu yöntemleri kullanırken kullanıcı memnuniyeti de hiçbir zaman gözden kaçırılmamalıdır. Sizin karar verme mekanizmanın doğruluk oranı çok yüksek olabilir ama kullanıcı internette gezmek için çok beklerse memnuniyetsizliği artar. Dolayısı ile içerik taramada başarı ve performans birbirinin tamamlayıcısıdır. Biri için diğerinden vazgeçilemez. 3. TEMİZ İÇERİK ALGILAMA Bazı kelimeler kullanım yerine göre çok uygunsuz bir site veya içeriği uygun olabilecek bir siteye işaret ediyor olabilirler. Örneğin; Virgin kelimesi bir sitede geçiyorsa o site engelleniyor. Bunun gibi hem iyi sitelerde hem de kötü sitelerde geçebilen bir sürü kelime var ve bu kelimeleri kullanan milyonlarca iyi site olabilir. Virgin bakire anlamının yanında el değmemiş anlamına da geliyor. Bu kelimenin geçtiği site sanat içerikli bir site de olabilir. Kelime filtrelerken kullanılan üstün teknolojisi ile Webjini, sitelerin uygun olup olmadığına karar vermede hem kısa sürede hem de amaca yönelik hareket edilmesini sağlar. Bu teknolojiyi kısaca aşağıdaki örnekle açıklayabiliriz; Göğüs kelimesi ile kanser kelimesi bir sitede birlikte geçiyorsa -50 puan, eğitim geçiyorsa -10 puana sahip. Eğer bu kelimeler bir sitede aynı anda bulunuyorsa bu site toplam -60 puana sahip oluyor. Yani olumlu bir site. Dolayısı ile bunun medikal içerikli bir site olabileceği fikri uyanıyor. Sadece göğüs kelimesi geçiyorsa +20 puan eğitim geçiyorsa -10, toplamda +10 oluyor ve site zararlı içerik diye algılanır. Yani kelime kombinasyonuna bağlı bir puanlama sistemi oluşturuluyor. Bunun gibi belli kelimelere puanlar verilerek sitenin olumlu olup olmadığı konusunda daha kesin bir kanıya varılabilir. Bu çalışmada Dr. Ertuğrul Akbaş ve ekibi tarafından geliştirilen Webjini [3] motoru kullanıldı. Temiz içerik algılamada en önemli tekniklerden biri HTML sayfasını hafızada oluşturmak ve HTML tag larını sıyırmaktır. Webjini motoru bu yeteneğe sahip olduğu için bu motorda birkaç yenilik ile bu sağlanmıştır. Diğer bir yenilik de gelen isteğin dilinin tespit edilmesi bunu için kelime frekans analizleri-smoothed frequency probability distribution, compared using cross-entropy, simple frequency rank- kullanıldı Dil tespiti dinamik içerik tarama ve temiz içerik algoritmasında kullanılır. Linguistik analiz yeteneği yine bir filtreleme motorunun gücünü gösteren bir yetenektir. Webjini motoru bu yeteneğe sahip olduğu için bu motorda birkaç yenilik ile bu sağlanmıştır. 4. CRAWLER ANALİZİ Bu çalışmada kullanılan webjini motoru URL ve dinamik içerik taramayı birlikte yapabilme yeteneğine sahip bir motor barındırmaktadır. URL tarama kesinliği %100 olan teknik için offline sayfa analizi, bunun merkezi bir veritabanında toplanması ve daha sonra bunun güncellemeler ile kullanıcılara dağıtılması adımlarını içeren bir algoritmadır. Bu analiz merkezi yada yük dağılımı yapılmış arka serverlarda metin, resim ve editörler aracılığı ile toplanan URL lerin merkezi sistemden dağıtılması –Push Method- için offline olarak geliştirilen metin tarama, resim tarama ve obje analizi yapılarak daha sonra istenirse editörel bir onaydan sonra URL veritabanına kaydedilmesinin sağlanmasına bu çalışmada crawler analizi denmiştir. 5. TEKNOLOJİK VE SOSYO-KÜLTÜREL GEREKSİNİMLER Bir çözümün kullanılabilmesi için teknolojik altyapı ve gereksinimlerin karşılanması olmazsa olmaz şarttır. Bu özellikler: Tarama Yeteneği: adres satırı ve başlık haricinde sayfanın tamamında içerik tarayabilmesidir. Ve bu konuda kararlı (stable ) bir motora (engine) sahip olması ve kişiye ve kültüre göre özelleştirilebilmelidir. Bunu sağalmak için kelime ve cümleler gibi tarama verileri kullanıcılar tarafından eklenebilmeli. Linguistik Analiz: Analiz yaparken şu temel hatayı yapmamalı. ‘kale’ kelimesini yasaklayınca ‘makale’ kelimesini yasaklamamalı. Türkçe konusunda da duyarlı olmalı HTML Encoding: Sağlıklı birşekilde içerik tarama ve dinamik içerik tarama yöntemlerinin uygulanabilmesi için sistemin <, >, " and &, gibi HTML, XML, ve SGML formatlarında tanımlanmış yada SEX yerine SEX **** yerine *********** gibi.[5] Temiz İçerik Algılama: Zararsız içerik tanıma teknolojisine sahip olmalı. Veritabanı Genişliği ve Yerel Veritabanı Desteği: Türkçe bir yasaklı URL listesine sahip olmalı ve bu işe atanmış editörler vasıtasıyla özellikle Türkçe siteleri devamlı tarayıp veritabanını güncellemelidir. Reverse DNS Teknolojisini Desteklemelidir: İsim ya da ip temelli arama yapabilmeli. Örnek: Listede verilen www.kudurukforum.com yasaklı listesine ebeveyn tarafından eklensin. Kullanıcı ping –a www.kudurukforum.com www.kudurukforum.com un ip sini bulur 194.27.186.39 ve sayfaya girmeyi dener. Bu tür teknolojik ataklara dayanıklı olmalı.. Güvenli bölge tanımlama özelliği: İçerik Tarama Yaparken Kelime Derecelendirme Yapabilme Özelliği: İşletim Sistemi Desteği: Tarama Yaparken Bütün Trafiği Dondurmamalı URL veritabanı kullanma dinamik içerik ve resin tanıma ise dinamik tarama olarak da kullanılır. Bu çalışmada hem statik hem dinamik yöntemler bir arada kullanılmıştır. 6. TEKNOLOJİ İçerik filtrelemede kullanılan iki yöntem paket filtreleme ve proxy temelli filtrelemedir. Proxy özellikle yüksek trafik durumunda tercih edilen yöntemdir. Proxy temelli filtrelemenin paket analizi (sniffer) temelli filtrelemeye göre avantajı daha hızlı olmasıdır. Paket analizi temelli sistemlerde özellikle network web yoğun kullanıldığında yavaşlama problemleri olduğu raporlanmıştır. Bu problem özellikle temiz içerikli sayfaları yoğun kullanırken hissedilebilir. Bu çalışmada Proxy temelli webjini motorunda iyileştirmeler yapılarak temiz içerik tarama ve profil analizine aşağıdaki parametreler eklenerek yenilik ve farklılık sağlanmıştır: İncelenen Parametreler: · Arka plan rengi · Fontlar · Fontların renkleri · Fontların boyutu · Sayfadaki linklerin sayısı · Sayfadaki resim sayısı · Resimlerin boyutları · Frame sayısı · Ortalama kelime boyutu · Kelime sayısı · Özel karekterler · Meta taglar · Meta tag metinleri 7. YERELLEŞTİRME Bu tür çözümlerin yerelleştirilmesi ihtiyacından makalenin başında da bahsetmiştik. Özellikle yerel ahlaki ve kültürel farklılıklar ve duyarlıklılar hem çözümün tasarımında hem de içeriğin tasarım ve güncellenmesinde yerel destek şart. Bu bağlamda bir çözümde olması gereken yerel özellikler · Türkçe Arayüz · Türkçe URL Veritabanı · Türkçe Kelime Tarama Başarısı Yerelleştirme ihtiyacı halihazırda zaten dünyada uygulanmaktadır. Bu konuda devletler ISP leri kullanmaktadır [4]. ISP çözümü verimli ve kabul gören bir çözüm değildir [1] 8. SONUÇLAR Ebeveyn kontrolü ve içerik filtrelemede kullanılan yöntemleri özetlersek: · Özel amaçlarla geliştirilmiş browserlar: · Güvenli arama motorları ve portallar: · Proxy temelli uygulamalar · Aktivite gözetleme: Loglama temeline dayanır · Üyelik temelli içerik sunma ve içerik şifreleme · FTP,Chat vs.. filtreleme · Transparan Bridgeler Yukarıdaki teknikleri ve teknolojileri birlikte uygulanabileceği ve özellikle çok kullanıcılı ve profesyonel ortamlarda ortaya çıkan · Kullanıcı bazlı filtreleme · Grup bazlı filtreleme · Kullanıcıların internet kullanımlarının zaman a göre kısıtlama · Filtrelemenin gruplara göre zaman kısıtlamasına tabii olması · Politikaların ip,isim, Active Directory kullanıcı bazlı vs.. atanması gibi ihtiyaçları da karşılayabilen en uygun yöntem olarak proxy seçilmiştir [3,6]. Proxy ile ilgili rapor edilen tek handikap sistemde biraz yavaşlama olmasıdır. Bu pratikte önbellekleme (caching)kullanılarak çözülür. Yukarıdaki teknikleri uygularken performans da göz ardı edilmemsi gerekir. Kullanıcı memnuniyeti bu tür çözümlerin olmazsa olmazıdır[7] KAYNAKLAR [1] Effectiveness of Internet Filtering Software Products, Mathematical and Information Sciences, 2001 [1] Content Filtering Technologies and Internet Service Providers, Michael Shepherd and Carolyn Watters, 2000 [2] www.webjini.com.tr [3] Documentation of Internet Filtering in Saudi Arabia, Jonathan Zittrain, Benjamin Edelman, Berkman Center for Internet & Society Harvard Law School,2006 [4] http://en.wikipedia.org/wiki/Character_encodings_in_HTML [5] Internet Filter Effectiveness: Testing Over and Underinclusive Blocking Decisions of Four Popular Filters, Christopher D. Hunter. Research paper submitted to the COPA Commission. April 2000. [6] Internet Filters: A Public Policy Report, Free Expression Policy Project (a project of the Brennan Center for Justice at NYU School of Law), October 2001. [7] Automatic Online **** Detection and Tracking, Johnson I Agbinya, Bernard Lok, Yeuk Sze Wong and Sandro Da Silva [8] S. da Silva and J I Agbinya, “Human face segmentation algorithms for mobile phones,” Proc. South African Telecommunications Networks and Applications Conference (SATNAC) 2004, Vol 2, Sept. 6 – 8 , Cape Town, South Africa, pp. 373 – 374. [9] Characterizing Objectionable Image Content (*********** and Nude Images) of Specific Web Segments: Chile as a Case Study [10] http://www.ics.uci.edu/~mlearn/MLOther.html Not: Bu makale Ağ ve Bilgi Güvenliği Ulusal Sempozyumu nda yayınlanmıştır. __________________________ Dr. Ertuğrul Akbaş
  23. Rapidshare’nin sürekli getirdiği yeniliklere, alternatif dosya paylaşım sitesi Divshare’den karşılık geldi. Divshare.com, Rapid’den farklı olarak ne avantajlar sağlıyor? Divshare.com, ücretsiz üyeler dahil kayıt olanlara verdiği “Dashboard” adlı sistemin arayüzünü değiştirerek, Rapidshare’in ataklarına sessiz kalmayacağını ortaya koydu. Daha önce sınırsız alan ve bant genişliği veren site, bilişim dergilerinde reklam edilince, bu sınırsızlıktan vazgeçmek durumunda kaldı. Dosyaları sonsuza kadar saklama sözünü tutan Divshare, hızı ve kolay kullanımlı arayüzüyle dikkat çekiyor.

Önemli Bilgiler

Bu siteyi kullanmaya başladığınız anda kuralları kabul ediyorsunuz Kullanım Koşulu.