Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Yazılım Güvenliği

No description
by

Sercan Yiğit

on 14 December 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Yazılım Güvenliği

Ücretli yazılımların kaçak kullanımını önlemek adına geliştirilmiş lisans mekanizmasını bozarak yazılımın ücretsiz kullanılmasını sağlamaktır. Korsanlık girişimlerini önlemek adına birçok yöntem geliştirildi. Bugüne kadarki yöntemlerin %99'u aşılmıştır, %1'lik kısma örnek olarak Sony PlayStation 4 FirmWare yazılımı gösterilebilir. Bu yazılımın kullandığı tekniğe
Bloating
denir. Bloating, güvenlik adına, yazılılmış kodların kasıtlı olarak çeldirici hale getirilmesidir.
Son yıllardaki en popüler Siyah Şapka Hacker TJX Suç Zinciri Lideri: Albert Gonzalez. Kredi
kartı bilgilerini çalıp,
karapara aklayarak,
satarak veya harcayarak
170 milyon dolar zarara uğratmıştır. Onlarca kişilik bu zincir kırılmış, Gonzalez 20 yıl hapis cezası almıştır.
Hacking ve Ağ
İnternet ve uydular, yazılım güvenliğini başka bir boyuta taşıyınca hacker kavramı genişletildi, iki önemli ünvan eklendi: Siyah Şapka ve Beyaz Şapka Hacker.
Güvenlik Açığı
Güvenlik açığı, bir hacker'ın yazılımın kodlamasında, amaçlarına ulaşabileceği işlemleri yapabileceği naçizane boşluklardır. Bir yazılımın güvenlik açığına sahip olmasının sebebi ya programlama sürecinde güvenliğe dikkat edilmemesi ya da biraz önce gördüğümüz tekniklerin haricinde, yeni bir tekniğin kullanılmasıdır. Diğer yandan, %100 güvenli bir yazılımın var olması imkansızdır.
Teşekkür Ederiz...
Yazılımlar yaygındır.
Bilgisayar ve telefon haricinde otomotiv, beyaz eşya hatta sağlık hizmetinde dahi yazılımlar mevcuttur.
UNIX
Unix'in yaratıcısı Ken Thompson'ın Bell Labs şirketinde yaptığı gizli çalışmalara
hacking
deniyordu. Hacker'lık o günden bu yana programcıları güvenliğe zorluyor.
Program kodlamak isteyen herkes ilk olarak kodunun iki işlevine bakar. İlki fonksiyonalite.
Yazılım Güvenliği
Yazılımlar hassastır.
Yazılımcılar kodlamalarını yaparken
programlama dili
kullanır. Programlama dili, lisanımız gibi aynı dili konuşan tüm yazılımcılar tarafından anlaşılabilir. Bu kadar çok yaygın bir sistemin dilini anlayan yazılımcılara 70'lerde Unix'in doğuşuyla yeni bir yaklaşım getirilmiştir.
Hacker
Hacker kavramı, internet öncesi ve sonrası olarak ikiye ayrılır. İnternet öncesi hacker'lık "tecrübe edinmek ya da yazılım sistemlerindeki sınırlandırmaları aşmak adına girişilen meydan okumalardır." olarak tanımlanıyordu. Massachusetts Institute of Technology (MIT) Üniversitesinde kabul görmüş etik kuralları geliştirilmişti.
İkincisi ise:
Yazılım Güvenliği
'dir.
Fonksiyonalite yazılımdan beklenen davranışların gösterilmesine odaklanırken güvenlik bu işlevlerin dayanıklı olmasına odaklanır. Fonksiyonalite yazılımı kodlama sırasında karşılaşılan güvenlik zorluklarına göre çok kolay kodlanır.
Hacker Etiği
1) Herkes bir bilgisayar kullanabilmeli.
2) Bilgiler bedava olmalı.
3) Otoriteye Güvenilmemeli
4) Hacker yaşıyla, boyuyla, cinsiyetiyle değil yeteneğiyle öne çıkmalı.
5) Hack estetik ve yaratıcı olmalı.
Hacker'lar "az kod, çok iş" diyerek birbirleriyle yarışırcasına minimal eserler yaratmaktadır.
İstatistikler
Hacker'ların oluşturduğu yazılım tehditlerinin Kasım 2014 istatistiklerine bir göz atalım.
Hack'lerin Arkasındaki Sebepler
Hack'lerin Arkasındaki Teknikler
Hedefler
Siber Suç: Bilgisayar ve ağ içeren, yasalara karşı işlenen tüm suçlardır.

Hacktivism: Bilgisayar ve ağ üzerinden yapılan protesto, sivil itaatsizlik ve aktivizm amaçlı tüm siyasi hareketler.

Siber Ajanlık: Bilgisayar üzerinden özellikle stratejik, politik değeri bulunan bilgileri çalma veya sabote etme işlemleridir.
Siber Savaşlar: Devletler arası siber saldırılardır. Devletin bilgisayar sistemlerine hasar verme, kesintiye uğratma amaçlıdır.
E-Ticaret, Eğlence, Turizm, Politika, İnsan Hakları, Spor ve Din yazılımları da hedef dahilindedir.
Hata Raporu
Hata Raporları, bu güvenlik açıklarının tespit edilmesi adına yazılımın kodlamasıyla ilgilenen kişilere kullanıcının karşılaştığı hatayı bildirmekte kullanıldığı detaylı bir rapordur. Bu raporları bazen yazılımın kendisi tutabilir, ama çoğu zaman kullanıcılar bu raporları elle yazarlar. Müfettiş gibi diyebiliriz.
Yazılım Süreçleri
Yazılımlar yayımlanmadan önce birçok kodlama testinden geçirilmektedir ancak daha kapsamlı bir güvenlik sunması adına test versiyonları yayınlanır.
Alph Süreci
Belirlenmiş bir test takımının söz konusu yazılımın fonksiyonalitesini ve güvenliğini zorladığı, açıkları hata raporu olarak sunduğu süreç. Genellikle Alpha sürecindeki yazılımların dağıtımı olmaz.
eta Süreci
Alpha sürecinden fonksiyonalite bakımından geçen yazılımların çok daha geniş testlere tabi tutulduğu süreçtir. İkiye ayırabiliriz: Kapalı ve Açık Beta.
Kapalı Beta
Yazılımın sadece davet edilen kişiler tarafından test edilmesi durumuna Kapalı Beta süreci denir. Davetler genelde sınırlı sayıda davetiye dağıtımıyla gerçekleşir. Davet edilen kişilere "tester" denir.
Testlerin yanında yazılımın tanıtımı amacıyla da yayınlanmış sürümdür. Geliştirme süreci bitmiş bir yazılıma nazaran güvenlik zaafiyeti yüksek sürümdür. Bazı ücretsiz yazılımlar da sürekli geliştirilmekte olduklarından dolayı yeni versiyonlar öncelikle beta sürecine tabi tutulur.
Açık Beta
Güncelleme
Yama da denir. Son sürümün yayınlanmasından sonra saptanan açıkların kapatılmasını sağlayan küçük paketlerdir.
Son Sürüm
Beta sürecini başarıyla tamamlamış, kullanıcıya sunulmaya hazır sürümlerdir. Bu süreçteki yazılımlar az hata içerir.
Güncelleme
Yazılım geliştiricilerine son sürümünde bulunan açıklar e-postayla hata raporları olarak iletilir. Bunları değerlendiren geliştiriciler, yayınlamak üzere güncelleme paketleri hazırlar. Eskiden disket veya dergi diskleriyle dağıtılan bu yamalar bugün internet üzerinden dağıtılmaktadır. Güvenlik adına önemli bir gelişmedir.
Fonksiyonalite adına yapılan geliştirmeler genelllikle yama veya güncelleme ile yayınlanmaz, Alpha ve Beta yazılım süreçlerine tekrar tabi tutulur.
Son sürümü yayınlanmış bir yazılım aynı anda milyonlarca kullanıcıya hizmet verebilir ve bir Siyah Şapka Hacker bu kullanıcılara hedef gözüyle bakabilir. Hedeflerine ulaşmada kullandıkları bu teknikler tercih sıklığına göre kategorilenmiştir, bunlara karşı belli önlemler geliştirilmiştir. Bu tekniklere bir daha bakalım.
Son yıllardaki en popüler Beyaz Şapka Hacker Wikileaks'in kurucusu:

Julian Assange
SQLi
SQL veritabanına bağlantı yapan herhangi bir yazılımın kodlarındaki bir açıktan faydalanarak SQL veritabanına izinsiz erişmektir. Örnek olarak bir Facebook hesabına şifre kullanmadan erişilebilir. Kodlamanın güçlendirilmesi yanında php sürümünün güncellenmesi bu tür güvenlik açıklarını kapatabilir.
DDoS
Belirlenmiş bir IP adresine (ki bu bir web sitesi ya da bir bilgisayar olabilir) aşırı yükleme yaparak, sunucuların kendini kapatma mekanizmasını tetiklemesini amaçlayan saldırılara denir. İşletim Sistemi yazılımlarındaki açıklardan faydalanarak bilgisayarın performansını zorlamaktadırlar. DDoS bir Firewall veya Router ile önlenebilir.
Index Atma
Bir web sitesi yazılımının anasayfasını hacktivist eylemler ya da protesto amacıyla değistirmeyi amaçlayan saldırılardır. Çok çeşitli yaklaşımlar söz konusudur. En çok kullanılanları SQLi ve FTP yöntemleridir. FTP için, SQLi'ya göre çok kolay bir önlem alınabilir: Güçlü bir şifre.
GASP
Yazılım Güvenliğinden çok tuzak mekanizmalarına girse de Gasp (Phishing), kullanıcıları arayüz benzerliğiyle çeldirerek hesap bilgilerini çalmayı amaçlayan yöntemlerdi. Kullanıcı bir gasp girişimini kolaylıkla ayırt edebilir.
Sql Injection (%11)
Distributed Denial-of-Service (%24)
Defacement (%18)
Malware
Kullanicin izni olmadan işletim sistemine kurulan, arkaplanda çalışarak bilgi toplayan yazılımlardır. Birçok çeşidi vardır: Spyware (Monitor, Keylogger vs.), Trojan, Virüs, Solucan, Adware birer Malware'dır. Malware'ın önüne geçmek için başvurulabilecek en kolay yol bir antivirüs yazılımı kullanmaktır. Antivirüs, işletim sistemiyle kullanıcı arasında bulunup, işlenecek bir program ya da dosya içerisindeki malware barındıran byte'ları durdurmakla yükümlüdür.
Phishing (%6)
Malicious Software (%9)
%9 orana sahip Nokta Saldırı'lar hedef alınan bir endüstri ya da organizasyona karşı Malware saldırılarına denir.
Bu saydığımız tehditlere online tehditler diyebiliriz. Online tehditler, yazılıma erişimin ağ üzerinden sağlanabildiği durumlarda ortaya çıkan tehditlerdir veyazılımsal tehditlerin sadece yarısını oluşturmaktadır. Diğer yarısını ise Offline tehditler oluşturmaktadır.
Yüzde işareti sayıların başına gelmiyor muydu Türkiye'de?
Yazılımsal Tehditler
DİĞER
Bu kategorinin bu kadar büyük olmasının sebebi hayalgücüdür. Hacker'lar günümüzde sürekli yeni yöntemler geliştiriyor, hatta biraz önce saydığımız yöntemleri birleştiriyorlar. Hedefledikleri kullanıcıların tercih ettiği yazılımlar sürekli güncellenmekte ve Trojan gibi eski usül tehditlere kolaylıkla engel olabilmekte.
%20
Yazılım Korsanlığı
Tersine Mühendislik
Debugging, Decompiling, Disassembling diye ayırabiliriz.
Debugging
, yazılım çalışırken işletim sisteminin bellekte yazılım için ayırdığı bölüme ulaşarak manipüle etme işlemlerine denir.
Decompiling
, kapalı kaynaklı yazılımların kaynaklarını çözüp girişimleridir. Deobfuscating denilen işlemle de kod okunulabilir hale getirilir.
Disassembling
, yazılımın Derleyici'sini tahmin edip yazılımın baytlarını Assembly diline çevirme işlemidir.
Önlem alma yöntemleridir. Hazır Tersine-Mühendislik yazılımları mevcuttur. Bu yazılımları tanıyıp, ona göre kodları güvenli hale getirebiliriz. Örneğin, İşletim Sisteminin Kernel (Çekirdek) fonksiyonlarını anımsatacak fonksiyonlar yazıp aslında bu fonksiyonları başka işlemlerde kullanmaktır.
Code Morphing
Full transcript