BÖLÜM 2: Bu bölümde bilgisayar yazılımı / programı nedir tanımını yapacağız. Kötücül yazılımları kapsam dışı bıraktığımızda normal / bilinen ve iyicil olarak ifade ettiğimiz yazılımın yaşam döngüsündeki üç tarafı, süreçte sergiledikleri beklenen bakışı ve çıktıları net olarak ortaya koyarak kötücül ve iyicil yazılım arasındaki temel farkları ortaya koyacağız. İngilizce böcek anlamına gelen ‘bug’ yani yazılım / program hatasını açıklayacağız. Küçük bir program hatasının nelere sebep olacağını ilginç bir olaylar üzerinden irdeleyeceğiz. Yazılım mühendisliği bağlamında savunmacı programlama, doğru testin önemi ve yapay zekânın hataları etkin bir şekilde ele alınmasına yönelik kullanımını ortaya koyacağız. Sonrasında kötücül yazılım nedir ne değildir? Tam bir tanımını yapacağız. Kötücül yazılım türlerini ve alt türlerini 15 yıl önce yapmış olduğum akademik çalışmam üzerinden karşılaştırmalı olarak göreceğiz.
BÖLÜM 3: Kötücül yazılımları kimler geliştiriyor / yazıyor? Kabiliyetleri ve temel güdüleri neler? Kötücül yazılım bağlamında saldırgan ve savunucu yaklaşımlar nasıl şekilleniyor? Kötücül yazılımın bir arz / talep ekonomisine dönüştüğü bu yeni dönemde derin ağ ve kara ağda hizmet olarak sunulan kötücül yazılım nasıl uygulanıyor? Kötücül yazılımın siber güvenliğin birincil saldırı vektörü olduğuna dair notlar ve güncel verileri sunacağım. Yapmış olduğum akademik çalışmalar ışığında günümüzün 12 adet kötücül yazılım ana türünü açıklayacağım. Bu türlerin yaygınlığını ve bu kötücül yazılım türlerinin ne tür senaryolarda saldırganlar tarafından kullanıldığını örnekler ile göstereceğim.
BÖLÜM 4: Kötücül yazılımın etkinliğini göstermek için de kullanılan kavramsal ispat (proof-of-concept) ya da piyasada duyduğunuz PoC yaklaşımını açıklayacağım. Kavramsal ispatın başka ne gibi kullanımlarının olduğunu anlatıp, ilginç bir RDP korunmasızlığının nasıl kavramsal ispatının yapıldığını göstereceğim. Saldırı adımlarında kötücül yazılımın kullanımının ne ölçüde olduğunu irdeleyeceğiz. Güncel güvenlik raporları ışığında kötücül yazılımların mobil cihazlarda durumunu ve kötücül yazılımlarda kullanılan yem dosya türlerini ayırt edeceğiz. Kötücül yazılım kullanılarak gerçekleştirilen münferit saldırıların artık saldırganların seferler halinde yürürlüğe koyduğunu göreceğiz ve bu seferlerde saldırganların maliyet etkin yaklaşımları nasıl oluşturduklarını araştıracağız. Kötücül yazılımların yayılması ve bulaşması için ne gibi yöntemler kullanıldığını son gelişmeler ile beraber ele alacağız.
BÖLÜM 5: Günümüz dünyasında kötücül yazılım risklerini artıran etmenleri kapsamlı bir şekilde ortaya koyacağız. Bu şekilde risk manzarasına tam hakim bir şekilde kötücül yazılımları anlamak ve savunma yaklaşımlarını oturtmak daha anlamlı olacak. Ağ katmanından uygulama katmanına saldırıların geçiş yaptığı bir dönemde öncelikle sadece ağ odaklı güvenliğin neden yetersiz olduğunu hazırladığım bir araştırmanın verileri üzerinden göreceğiz. İnternet'in ve dünya çapında örgü olarak ifade ettiğim WWW'nın gelişimine kısa bir baktıktan sonra hemen hemen hiçbirinizin bilmediğini tahmin ettiğim bir ilkeyi size açıklayacağım. Bu ilkenin günümüz ağ güvenliği sorunlarının temel sebebi olduğunu görünce buna eminim sizler de şaşıracaksınız. Sadece geçmişe değil geleceğe de bir bakış kazanmak adına ABD'de çalışılan haklanamaz İnternet projesini sizlere aktaracağım. Ağı bu şekilde eleştirel bir şekilde değerlendirdikten sonra yazılım tarafına geçeceğiz ve daha önce de eğitimimizin misafiri olan Ken Thomson'ın gözünden yazılıma güven algımızı masaya yatıracağız. Yazılım güvenliğine bakışınızı derinden etkileyeceğini düşündüğüm bir çözümleme çalışması yapacağız. Buna yönelik Linux kapsamında yaşanan bir hadiseyi ayrıntıları ile aktaracağım. Tüm bunların ışığında yazılıma güven anlamında bakışımızı şekillendireceğiz ve ülkemizde de gündem olan yerli ve millî yazılım çözümlerine atıfta bulunacağız.
BÖLÜM 6: Kötücül yazılımların geliştirilmesinde ve saldırı vektörü olarak kullanılmasında aslında farkında olmadığımız saldırganın kâr odaklı bakışını hali hazırda piyasada yer alan işletim sistemleri üzerinden anlatacağım. Parçalanma olarak ifade edilen olgunun bu bakışı nasıl şekillendirdiğini yine örnekler üzerinden göreceğiz. Saldırganın hedef seçme kıstaslarını irdeleyeceğiz. Sonrasında yazılımda meşru bir arka kapı olabilir mi, bunu tüm yönleri ile tartışacağız. Son olarak ne ak ne kara yani katışıksız kötücül yazılım diyemeyeceğimiz gri yazılımlara yönelik güncel vakaları sizle paylaşacağım. Özellikle yazılım üreticileri ve bilhassa yazılım geliştiricilerine gri yazılım çerçevesinde çok ilginç hadisler ile ışık tutacağız.
BÖLÜM 7: Yazılım ve yazılım yükü (payload) kavramlarından sonra kötücül yazılım ve fena yük kavramlarına göz atacağız. Truva atı kötücül yazılım örneği üzerinden bu dört kavramı açıklayacağız. Yazılım yükünün fena yüke evrilmesinde ilk nokta olarak göreceğimiz sürpriz yumurtaları ilk ortaya çıkışının ilginç hikayesi ile kavrayacağız. Çok farklı yazılımlarda sürpriz yumurta örneklerini göreceğiz.
BÖLÜM 8: Yük kısmından sonra bu yükün bir nevi aktarımı ile ilgili temel mekanizmayı ele aldığımız bu bölümde fena yük nedir, ne tür fena yükler vardır ve fena yükler nasıl tetiklenir sorularına cevap vereceğiz. Özellikle mantık ve zaman bombalarını farkları ile ele alacağız. Dünyadan üç ilginç vaka üzerinden bu bombaların kullanımını açığa kavuşturacağız. Son olarak tarihin en büyük zaman bombasını sizlere açıklayacağım.
BÖLÜM 9: Kötücül yazılımların ilk ve en temel türü olan bilgisayar virüslerinin temel doğası olan kendi kendini çoğaltma ve inşa etme eylemlerinin nereden çıktığını göreceğiz. Bu bağlamda Turin makinesi ve Evrensel inşacı gibi teorilerin ne olduğunu açık bir şekilde anlatacağım. Geçmişten geleceğe suni sistemlerde kendi kendini inşa etme ne anlama geliyor, neler yapıldı / yapılacak bunları örnekler üzerinden değerlendireceğiz. Teknolojinin nereden nereye gittiğinin de açık bir şekilde gözler önüne seren bu bölümü özellikle tüm yazılım mühendisleri, geliştiriciler ve yöneticiler ilginç bulacaktır.
BÖLÜM 10: Bilgisayar virüsünde virüs kısmına eğileceğimiz bu bölümde biyolojik virüslerin bilgisayar virüsleri ile benzeştiği ayrıştığı noktalara göz atacağız. Hem biyolojik hem de bilgisayar virüslerinin yaşam döngüsü ve evrelerini göreceğiz. Bilgisayar virüslerinin ayak sesleri olarak nitelendirebileceğimiz geçmişteki olaylara bakacağız. Sonunda bilgisayar virüsünün nasıl ve kimler tarafından keşfedildiğini ilginç bir şekilde anlatacağım. Bilgisayar virüsü tanımının zamanla nasıl netleştiğini göreceğiz.
BÖLÜM 11: Bu bölümde bir bilgisayar virüsünün temel bileşenlerini yazacağız. Sözde yani ingilizce 'pseudo' kod ile çevrik kod arasında bir kodlama ile bir virüs yazmak istesek ne tür kodlar yazılmalı bunları açık bir şekilde göreceğiz.
BÖLÜM 12: Son bölümde farklı seviyelerde programlama dilleri, kodlar ve kod tercümelerini göreceğiz. Yüksek seviye, çevrik ('assembly'), makine kodu, derleyici, çevirici, yürütücü ve tersine mühendislik ('reverse engineering') gibi bilgisayar programlama kavramlarını yerli yerine oturtacağız. Bu bölümde özellikle virüslere ait kötücül kodun başka kodlara eklenme yani bulaşma tekniklerini ayrıntıları ile inceleyeceğiz. Kod külçeleri üzerinden her bir tekniği açıklayacağım. Özellikle kötücül kodun fark edilmemesi, anlaşılmaması ve çözümlenmemesi için kötücül yazılım geliştiricilerin kullandıkları sıkıştırma ve şifreleme gibi ileri teknikleri karşılaştırmalı bir şekilde kavrayacağız.
15
50
TAKE THIS COURSE