Thursday, November 27, 2014

Zafiyet, Tehdit ve Saldırı


Bilgi güvenliği konusu açıldığında karşımıza çıkan 3 temel terim zafiyet, tehdit ve Saldırıdır.
Terimleri anlamanın güvenlik konusunda atılacak adımların daha doğru planlanmasına faydalı olacağına inandığım için kısaca toparlamak istedim.



Zafiyet: Ağ veya ağa bağlı cihaz üzerinde bulunan bir güvenlik zafiyeti. Sunucular, ağ geçitleri ve hatta güvenlik cihazlarında bile zafiyet bulunabilir.

Tehdit: Mevcut zafiyetin istismar edilmesi (saldırgan tarafından kullanılması) halinde gerçekleşebilecek risktir. İlk akla gelenler sistemin hizmet veremez hale gelmesi veya izinsiz kişilerin sistem üzerindeki verilere ulaşmasıdır.

Saldırı: Ağ veya ağa bağlı sistemlere zarar vermek amacıyla yapılan eylemdir.

Zafiyetler

Herhangi bir ağ üzerinde güvenlik politikası, teknoloji veya kurulum/konfigürasyon eksikliklerinden kaynaklanan 3 temel zafiyet türü bulunabilir.

Güvenlik Politikası Zafiyetleri
Kağıt üzerinde görmeye alışık olduğumuz “güvenlik politikası” bizim için gerçekte nasıl bir zafiyet olabileceği ilk bakışta net olmayabilir. Güvenlik politikasının olmaması ağa bağlı sistemlere izinsiz yazılım yüklenmesi gibi pek çok önemli güvenlik açığına neden olabilir. Benzer şekilde felaket kurtarma veya olağanüstü durum planlarının belli olmaması güvenlik ihlali veya felaket durumunda yanlış veya eksik davranışlara neden olarak durumun daha da kötüleşmesine neden olabilir.

Teknoloji Zafiyetleri
Ağ üzerinde teknolojik zafiyet bulunabilecek sistemleri 3 ana gruba ayırabiliriz bunlar protokol, işletim sistemi ve cihazlardır.
HTTP, FTP veya DNS gibi iletişim protokolleri ve ağ üzerinden hizmet veren yapılar kendi içlerinde zafiyetler barındırmaktadır. Saldırganlar bunları hedef alarak ağ üzerindeki iletişimi aksatabilir, veri alışverişini dinleyebilir/değiştirebilir veya kurumsal ağ kaynaklarını başka hedeflere saldırmak için kullanabilir.
Windows, MAC ve Linux/UNIX gibi işletim sistemlerinin bilinen pek çok zafiyetleri vardır. Saldırganlar bu zafiyetleri sistemleri hizmet dışı bırakmak veya tamamen ele geçirmek için kullanabilmektedir.
Cihazların arayüzlerinin istismar edilebilir zafiyetler barındırması veya ağ üzerinde aktif olarak çalışan cihazların fabrika çıkışı kullanıcı adı/parola bilgilerinin değiştirilmemesi bunları saldırganlar için önemli hedefler haline getirmektedir.

Kurulum/konfigürasyon Zafiyetleri
Ağ ve sistem yöneticilerine en çok görevin düştüğü zafiyetler bu başlık altında toplanabilir. Kullanıcı hesaplarının güvenliğinin sağlanması çok önemlidir. Güçlü parola kullanımı için kurallar belirlenmeli ve kullanıcıların bu kurallara uyduğundan emin olunmalıdır. Ağ ve ağa bağlı sistemler üzerinde çalışmasına izin verilen uygulamaların belirlenmesi çok önemlidir. Bu konu açılmışken; bu sene Mart ayında bulaştığı ağ üzerinden topladığı önemli bilgileri kendi açtığı bir Twitter üzerinden paylaşan bir zararlı yazılım tespit edildi. Günde 100.000 adetten fazla Tweet atan zararlı yazılım, bulaştığı bir perakende zinciri ağı üzerinde bulduğu kredi kartı bilgilerini bu sayede dışarıya göndermişti. Geçtiğimiz ay ise bir grup saldırgan sızdıkları ağdan topladıkları verileri Youtube’a video yükler gibi .mp4 uzantılı dosyalar içerisine saklayıp kurumun güvenlik önlemlerini atlatmayı başardı.


Tehditler

Saldırgan profiline biraz daha detaylı ele aldığım bir yazıma http://www.alperbasaran.com/2014/11/siber-saldrgan-tanmak.html adresinden ulaşabilirsiniz. Burada basitçe iç ve dış tehdit profillerine değineceğim.

İç Tehdit
Kurumsal ağa ve sistemlere erişim yetkisi olan kişi veya sistemlerin yaptığı saldırılardır. Bu tehdit grubu sadece personelle sınırlı değildir. Sosyal mühendislik saldırısı sonucunda ele geçirilen bir çalışan laptopu saldırganların bir uzantısı olarak, personelin kötü niyeti sonucunda olmasa bile, iç tehdit olarak karşımıza çıkacaktır.

Dış Tehdit
Saldırganların dışarıdan kurumsal ağa ve bağlı sistemlere izinsiz erişim sağlamalarıdır.


Saldırılar

Saldırı konusu, değil blog, başlı başına kitap olabilecek bir konudur, o nedenle sadece yaygın olarak görülen bazı saldırıları ele alabileceğim.

DoS Saldırıları
“Denial of Service” (Hizmet Dışı Bırakma) saldırıları hala yaygın olarak görülmektedir. Çeşitli güvenlik firmaları tarafından geçtiğimiz ay yayınlanan raporların ortak noktalarından birisi de hizmet dışı bırakma saldırılarının sayısında ve etkisinde görülen artıştır. Özellikle 10 Gbps ve üzerinde görülen DDoS (Dağıtık Hizmet Dışı Bırakma) saldırı sayısı, bir önceki 3 aylık döneme göre, %38 oranında artmıştır. Saldırıların önemli bir bölümü ise basit bant genişliği sömürüsünün ötesinde SYN Flood gibi daha “akıllı” saldırılardan oluşmaktadır.
Bant genişliğini tüketmenin dışında kullanıcıların hedef alınan sisteme erişmesini engellemek  için saldırganların kullandığı DoS saldırılarının temel adımları ise aşağıdakilerdir:
Hedef sistem üzerinde çalışan hizmetleri ve uygulamaları tanımak
Bu uygulamaların kaynaklarını sömürmeye yönelik bir zafiyetten faydalanan bir aracın bulunması
Uygulamaya karşı saldırının başlatılması

Sızmalar
Saldırganların ağa ve ağa bağlı sistemlere sızarak veri çalmaları veya değiştirmelerini kapsayan bu saldırılar aşağıdaki ana hatlar üzerinden gerçekleştirilmektedir
DNS veya web sunucusu gibi internet üzerinden erişilebilen bir sistemin bulunması
Çeşitli yöntemler kullanılarak sistem üzerinde oturum açmak veya başka bir uygulama çalıştırmak
Ele geçirilen sistemin iç ağa ve iç ağa bağlı sistemlere erişmek için kullanılması

Arka Kapı
Saldırganlar tarafından hedef sisteme tam veya kısmı erişim kazanmanın ve bu sistemlerin yönetimini ele geçirmek için kullanılabilecek en basit yöntem arka kapı açılmasıdır. Yaygın olarak görülen 3 arka kapı türü Truva atları, arka kapı yazılımları (PHP Shell, vb.) ve duruma özel yazılmış kodlardır.

Kırmalar
Saldırganlar sisteme erişim yetkisi kazanmak veya hedef sistem üzerinde istedikleri kodu çalıştırmak için kaba kuvvet saldırıları düzenlerler. Bu saldırıların en basit örneği kullanıcı adı/parola tahmini için peşpeşe çok sayıda olasılığın denenmesidir.


Phishing
Hedef kurum personelini kandırmaya yönelik hazırlanmış eposta mesajlarının gönderilmesidir. İyi hazırlanmış bir oltalama (phishing) epostasını engelleyebilecek güvenlik önlemi sayısı çok azdır, bunun ötesinde kullanıcının bu maillerde kurulan senaryoya kanmasını engellemek ise neredeyse tamamen imkansızdır.

Sunday, November 23, 2014

Bilgi Güvenliğinin 8 Temel Kuralı

Bilgi güvenliği konusunda karar vermek zordur. Yapacağımız değişiklik mevcut güvenlik önlemlerimizi devre dışı bırakmamalı veya mevcutta olmayan bir güvenlik açığına neden olmamalıdır.

Resim 1: Bilgi Güvenliğinin 8 Kuralı (temsili)

Genel olarak bilgi güvenliğini etkileyebilecek bir konuda karar verirken uyulması gereken 8 temel kural sayesinde hata yapma ihtimalimizi en aza indirebiliriz. Göreceğiniz gibi bu kurallar bilgi güvenliği alanında uzun yıllardır çalışanlar tarafından tecrübe yoluyla öğrenilmiş ve uygulanmaktadır. Kevin Day “Inside the Security Mind” kitabında bu 8 kurala uzun uzadıya değinmektedir. Bu yazıda her kuralı kısaca ele alacağım.

Kural 1: En düşük yetki kuralı
Kural 2: Değişiklik kuralı
Kural 3: Güven kuralı
Kural 4: En zayıf halka kuralı
Kural 5: Ayrım kuralı
Kural 6: 3 aşamalı süreç kuralı
Kural 7: Önleyici faaliyet kuralı
Kural 8: Anında ve doğru tepki kuralı

Kural 1: En düşük yetki kuralı

En önemli ve en yaygın olarak uygulanan kuraldır. Kullanıcı ve/veya sistem yetkilerinin sadece personelin ve/veya sistemin işini yapabileceği kadarıyla sınırlandırılmasıdır. Bu kuralı uygulamaya koymak için kullanıcıya veya sisteme hiç yetki vermeyip, kademeli olarak işini yapmasını sağlayacak kadar yetkinin verilmesidir. Böylece kullanıcının sadece işini yapacak kadar yetkiye sahip olması sağlanır.

Kimin, hangi şartlarda, hangi sistemlere ulaşabileceğini belirlemek ve bu sayede doğru yetkileri belirlemek için aşağıdakilere benzer basit şablonlar kullanılabilir.

Kullanıcı: Sıradan ofis kullanıcısı
Erişime izin verilen saatler: Mesai saatleri içinde
Yetki: Çalıştığı birim ekranları
İnternet erişimi: Var
Lokal admin: Hayır (kendi bilgisayarı üzerinde uygulama çalıştıramaz)
Dışarıdan erişim yetkisi: Yok
VPN Kullanıcısı: Yok

Kullanıcı: Yönetici
Erişime izin verilen saatler: Mesai saatleri içinde ve dışında
Yetki: Çalıştığı birim ekranları
İnternet erişimi: Var
Lokal admin: Hayır (kendi bilgisayarı üzerinde uygulama çalıştıramaz)
Dışarıdan erişim yetkisi: Yok
VPN Kullanıcısı: Var

Kullanıcı: Bilgi İşlem Personeli
Erişime izin verilen saatler: Mesai saatleri içinde ve dışında
Yetki: Genel
İnternet erişimi: Var
Lokal admin: Evet
Dışarıdan erişim yetkisi: Var
VPN Kullanıcısı: Var

Kural 2: Değişiklik kuralı

Değişim daimidir. Bu bilişim sistemleri için de geçerlidir. Bilişim sistemlerini etkileyecek değişikliklerin doğru yönetilmesi, koordine edilmesi ve güvenlik açısından değerlendirilmesi önemlidir. Burada anahtar kelime “yönetim”dir, değişim yönetilmelidir. Yönetilmediği takdirde kurumsal ağın güvenlik düzeyinin korunması mümkün olmayacaktır.  Değişim yönetmek için kullanılabilecek bazı yöntemler aşağıdadır.

Değişiklileri denetleyin: Neye göre değişiklik yapacağız? Değişiklikleri kim denetleyecek? Gibi basit soruların yanıtlanmasını sağlayacak bir yöntem geliştirilmelidir.

Etkili bir yöntem geliştirilmelidir: Değişiklik yönetimi ancak kimseye yük olmadan kullanılabilirse işe yarar. Aksi takdirde kimsenin uygulamayacağı ve etkili olmayacak bir süreç olarak atıl kalır.
Her durumda uygulanmalıdır: Bu sürece uyulmadan hiç bir değişiklik yapılmamalıdır. Ufak bir güncelleme için bütün izin prosedürünün uygulanması şart olmayabilir ama bu güncellemenin kaydının tutulması şarttır.

Güvenlik konusunda değişiklikler dikkatle ele alınmalıdır: En küçük firewall kuralı değişikliği bile izin sürecine uygun olarak yapılmalıdır. Güvenlik konusundaki değişiklikler tek bir kullanıcının kararına bırakılmamalı, mümkünse bir kaç kişinin birlikte vereceği kararla yapılmalıdır.

İstemciler de dahil edilmelidir: Önceden onaylanmış bazı değişikliklerin bir listesinin oluşturulmasında fayda var. Buna örnek olarak Windows ve antivirüs güncellemeleri verilebilir.

Deneme tahtası olmayın: Yeni çıkan yazılım ve donanımlarda bazı sorunlar olabilir. Bunun önüne geçmek için “1 yıldan kısa süredir piyasada olan ürünler ağa bağlanmaz” gibi basit kurallar konulabilir. Güncellemeler konusunda bu kadar uzun süre beklemek doğru olmayacaktır, ancak bazı güncellemelerin sorun yarattığı da görülmüştür. Bu konuda karar sizindir, en kötü senaryo olarak bütün sistemi baştan yüklemek zorunda kalabileceğinizi düşünerek bir karar verebilirsiniz

Standartlaştırın: Tek bir üreticinin showroomu haline gelmek zorunda değilsiniz tabii ki ama kurumsal ağınızda bulunan cihaz ve yazılım türlerini sınırlandırmanın güvenlik açısından faydaları olduğu kadar yönetim işlerini de kolaylaştıracağı ortadadır.

Kural 3: Güven kuralı

Kimseye güvenmeden yaşayabilsek biz güvenlikçilerin işi çok kolay olurdu. Ne yazık ki kurumsal ağımız ve bilgilerimiz konusunda güvenmek zorunda olduğumuz pek çok farklı kişi ve sistem var. Örneğin ağımıza erişim verdiğimiz personelimize güvenmek zorundayız, bazı tedarikçilerimize veya iş ortaklarımıza güvenmek zorundayız. Bu nedenle kime nasıl güveneceğimize karar vermemiz gerekmektedir.

Kime güvenebileceğimiz konusunda karar verirken önyargılarımıza kurban olmamamız lazım. Örneğin aşağıda soldaki resim çoğumuzun “hacker” dendiğinde gözünde canlanan kişi iken, sağdaki resimde banka memuru gibi duran Gary McKinnon 2002 yılında A.B.D. ordusuna ait 97 bilgisayara sızan gerçek bir saldırgandır. Caner Koroğlu’na fotoğraf için teşekkür ederim.

Resim 2: "Hacker" fikri ve gerçek "hacker"

Kime güvenebileceğimize karar verirken kullanabileceğimiz basit bazı prensipler şunlardır:

Kontrol edemediğinize güvenmeyin: Tedarikçiler, iş ortaklarınız, danışmanlarınız gibi kontrol edemediğiniz ve kurumunuzun güvenlik politikalarına uymayan hiç bir şeye güvenmeyin.

Aslında kime güvendiğinizi bilin: Güzel bir atasözümüz “söyleme sırrını dostuna, o da söyler dostuna” der. Kurumsal dünyada da geçerlidir, siz X şirketine güvenirsiniz, X şirketinin de Y şirketine güvendiğini düşünürsek, siz de hiç tanımadığınız Y şirketine güvenmiş olursunuz.

Politikalarınızı uygulayın: Güvenlik politikaları her durumda uygulanmalıdır, söyleyecek fazla bir şey yok, uygulanmalıdır.

Örneğin bir tedarikçiniz toplantı sırasında laptopuyla kurumsal ağınıza bağlanmak istiyor. Bu durumda cevaplanması gereken bazı sorular şunlardır;
Cihaz bizim güvenlik politikalarımıza uyuyor mu?
Cihazın güvenliği sağlanıyor mu? (Laptop’ta lisanslı ve güncel bir antivirüs var mı?
Gerek olursa cihazın loglarına erişebilir miyim?
Gerek olursa cihazın güvenlik seviyesini ölçebilir miyim?
Laptop’un bilinen bir güvenlik zafiyeti var mı? (örneğin Windows XP mi?)


Kural 4: En zayıf halka kuralı

“Zincir en zayıf halkası kadar güçlüdür” klişesinden ötesi var aslında. Saldırganlar gelişmiş iletişim algoritmanızı kırmakla veya yeni aldığınız güvenlik cihazını atlatmakla uğraşmazlar. Onun yerine kullanıcılarınıza yönelik bir sosyal mühendislik saldırısı yaparlar. Zincirin zayıf olduğu soyut bir düşüncenin ötesine geçmemiz ve saldırganların kimsenin bilmediği güncellenmemiş sunucunuzu bulabileceği gerçeğini kabullenmemiz lazım.

Resim 3: Zincir en zayıf halkası kadar güçlü

Güvenlik duvarımıza 20.000 TL, sızma tespit ve engelleme sistemimize 15.000 TL ve antivirüse hiç para yatırmadıysak (yoksa) kurumsal güvenliğimize yaptığımız toplam yatırım 0 TL’dir ve güvende değiliz.

Zafiyet taraması ve sızma testleri yaptırarak zayıf halkayı saldırganlardan önce bulmak bu nedenle çok önemlidir.
Yaygın olarak görülen bazı “zayıf halkalar” aşağıdadır:

Default kurulumlar: Sunucuları, cihazları ve hatta güvenlik cihazlarını fabrika yaralarında bırakmak bu sistemler üzerinde bilinen zafiyetlerin kurumsal ağınıza girmesine neden olur.

Zayıf parola kullanımı: Diyelim ki kurumsal ağınızda 1.000 adet güçlü (güçlü parola konusunda bir yazıma http://www.alperbasaran.com/2012/12/parola-guvenligi.html adresinden ulaşabilirsiniz) ve 2 adet zayıf (123qwe veya 456asd gibi) parola var. Bütün ağınızın güvenliği 123qwe parolasına bağlıdır.

Yetersiz loglama ve izleme: Logları izlememek ve anlamlandırmamak saldırıları farketmenizi zorlaştıracağından bütün ağınızı tehlikeye atar.

Yetersiz yedek alma: Yedekleri alınmayan bilgiler ve cihaz konfigürasyonları hem veri kaybına hem de iş kaybına yol açar.

Demo amaçlı kurulumlar: Denemek için kurulan cihaz ve sistemler anlık olarak zafiyet seviyenizi arttırır.

Güncel olmayan antivirüs ve IPSler: Güncel olmayan antivirüs yazılımları sizi belirli saldırılara ve zararlı yazılımlara karşı korumasız bırakacağından hiç faydaları olmayacaktır.

Kural 5: Ayrım kuralı

Güvenliğin başlıca amacı korumamız gereken sistemleri tehdit ortamından ayırmak olduğunu düşünürsek bu kuralın ne kadar önemli olduğu bellidir. Bu kuralı uygularken sadece tehdit ortamından ayırmayı değil, sistemleri de birbirlerinden ayırmamız gerektiğini hatırlamalıyız.

Aynı sunucu üzerinden birden fazla sistemin çalışması sunucu kaynaklarının verimsiz kullanımı sonucunda sorunlar yaratabileceği gibi güvenlik seviyesini de olumsuz etkiler. Diyelim ki aynı sunucu üzerinde web, eposta ve FTP sunucularımız çalışıyor. Web sunucumuz zaten dünyanın kalanıyla paylaşmak istediğimiz internet sayfamızı barındırıyor. Eposta sunucumuz ise şirkete ait kritik bilgileri de barındıran eposta iletişimimizi tuttuğumuz yer. Biraz önce tarif ettiğim yapı ile web sunucumuzu ele geçiren bir saldırganın epostalarımızı okuyabileceği bir ortam yaratmış oluyoruz.

Ayrım kuralını uygularken aşağıdakilere dikkat etmeliyiz:
Kritik sistem ve verileri ayırın: Ayrım sadece sistemlerle sınırlı kalmamalı, önemli veya gizli verilerinizi de ayırmanızda fayda var.

Saldırıya açık sistemleri ayırın: Saldırı alması daha muhtemel olan veya bilinen zafiyetleri olan sistemleri ayırın.

Güvenlikle ilgili olanları ayırın: Güvenlik cihazlarınızı ve sistemlerinizi ayırın.

Benzerleri gruplayın: Benzer sistemleri veya aynı güvenlik seviyesinde tutmak istediğiniz sistemleri ve verileri gruplayın.

Kural 6: 3 aşamalı süreç kuralı

Yeni alınacak güvenlik çözümleri 3 aşamalı bir süreç olarak değerlendirilmelidir. Böylece satınaldığımız ama bir türlü kurulumunu tamamlayamadığımız veya istediğimiz kadar iyi çalışmayan sistemlere para harcamaktan kurtuluruz.
Değerlendirmemiz gereken 3 aşama; kurulum, izleme ve bakımdır.

Kurulum: Yeni ürün alımı detaylı bir analiz sürecinden sonra yapılmalıdır. “Şu anda nasıl bir güvenlik seviyemiz var?” sorusunu cevapladığımız ve eksik gördüğümüz yerleri iyileştirmek için bir çözüm düşündüğümüz aşamadır. Bu aşamanın sonucunda bir ürün almaya karar verebiliriz.

İzleme: Kurulan cihazı kimin yöneteceğine karar verilmesi, bu cihaza ilişkin nelerin takip edileceği, cihazın işletim sisteminin ne zaman ve nasıl güncelleneceğinin belirlenmesi gereklidir. Güvenlik cihazları aktif cihazlardır ve etkili şekilde kullanılmaları da buna uygun bir modelin oluşturulması ile mümkündür.

Bakım: Genel olarak güncellenmemiş güvenlik cihazları bir süre sonra saldırıları (özellikle son güncellemeden sonra çıkanları) tespit edemeyeceğinden işlevlerini yitirirler. Bunun farkında olmamak bizde sahte bir güven duygu yaratacağı için güvenlik cihazının hiç olmaması kadar tehlikeli bir durumdur.


Kural 7: Önleyici faaliyet kuralı

Büyük ihtimalle uygulaması en zor kuraldır. Güvenlik konusunda proaktif önlem almak için yönetime başvurduğumuzda net veya bilinen bir sorunu adreslemediğimiz için derdimizi anlatmamız zor olabiliyor. Bu nedenle de proaktif tedbirleri almak genelde zordur.

Ağınızdaki sistemlerin bilinen zafiyetlerini yakından takip etmek, düzenli kontroller yapmak ve 3 aşama kuralının sağlıklı bir şekilde işletilmesi proaktif güvenlik konusunda atılabilecek en temel adımlardır.

Düzenli olarak sızma testi yaptırmak ve bulguları adresleyerek çözüm bulmak ise proaktif bilgi güvenliği süreçlerinin oturmasını sağlayacaktır.


Kural 8: Anında ve doğru tepki kuralı

Kabul edin veya etmeyin saldırı altındasınız. Şu ana kadar bir saldırı tespit edememiş olmanız saldırı tespiti ve dolayısıyla önlenmesi konusunda yetersiz bir yapınızın olduğunun kanıtıdır. Biraz iddialı bir cümle oldu ama ne yazık ki gerçek bu.

Saldırıları tespit etmek için gerekli ve etkili bir sistem kurulması şarttır, sekizinci kuralın işletilmesi de buna bağlıdır.

Saldırı tespit edildiğinde yapılması gereken şeylerin bazıları aşağıdadır;

Paniklememek: Güvenlik ihlali dünyanın sonu değildir, paniklemeyin, sadece süreci işletin.

Müdahale sürecinizi belirleyin: Çok uzun ve sayfalar dolusu formun doldurulmasını gerektiren bir süreç olması gerekmez. Tutarlı ve etkili bir plan olması yeterlidir.

Kime haber vereceğimizi bilelim: Güvenlik ihlali tespit eden veya güvenlik ihlali olmasından şüphelenenlerin kime ve nasıl haber vermesi gerektiği belli olmalıdır.

Herkes plana uymalıdır: Panik durumunu veya olayın aslından daha da yıkıcı hale gelmesini engellemek için herkesin plana uyması şarttır.


Olay sonrası: Olayın gerçek büyüklüğü anlaşılmalıdır. Önceki örneklerden gidersek; web sunucusuna sızıldıysa buradan eposta sunucunuza geçilmediğinden emin olmalısınız. Olay iyi anlaşılmalı, tekrarlanmaması için önlemler alınmalı ve her şey kayıt altına alınmalıdır.

Wednesday, November 12, 2014

Kritik Windows Güncellemesi

Microsoft, neredeyse bütün Windows sürümlerini etkileyen kritik bir zafiyet için yama yayınladı.

Windows'da SSL (Secure Socket Layer) ve Transport Layer Security (TLS) bileşenlerini destekleyen Secure Channel (SChannel) paketinde tespit edilen zafiyet saldırganın hedef üzerinde uzaktan kod çalıştırmasına imkan veriyor. 

MS14-066 olarak adlandırılan zafiyet sunucuların dışında ilgili portu kullanan bir uygulamanın kurulu olduğu istemcileri de etkilemektedir. 

https://technet.microsoft.com/library/security/ms14-066 adresinde yayınlanan detaylara göre bu zafiyetten etkilenen sürümlerin listesi uzayıp gidiyor. 

Zafiyetin kritik, saldırgan tarafından kolay tespit edilebilir ve istismar edilebilir olması yayınlanan son Windows güncellemesini bizim açımızdan çok daha önemli hale getirmiştir. 

Güncelleme dışında zafiyeti istismar edilemez hale getirmenin henüz bir yolu bulunmadığı için, gün içerisinde ağınızda bulunan bütün Windows makinelerin güncellemelerini tamamlamakta fayda var. 

Bu zafiyet hakkında aklınıza takılan bir şey olursa benimle iletişim kurabilirsiniz. 

Tuesday, November 11, 2014

Other Links of the Cyber Kill Chain


My blog is in Turkish but as this post was commented on in a rather large English speaking group, I wanted to spare anyone who'd be interested the pain of having to read it using Google translate. This post followed a post introducing the "Cyber Kill Chain" concept. 

Lockheed Martin, the company manufacturing aircrafts such as F-16, F-117 and the F-35 introduced the term "Cyber Kill Chain".

Pic 1: F-35 manufactured by Lockheed Martin

Pic 2: Turkey is one of the countries involved in the F-35 project

The "Cyber Kill Chain" approach introduced by the Incident Response Team at Lockheed Martin can be considered as a list of "unfortunate events" that are required for an attack to be successful.

The steps of a successful attack can be briefly listed as follows:
  1. Information gathering: Gathering information on the target. This step also include "Open Source Intelligence" (gathering information freely and openly available about the target) so the attacker can have a better understanding of the target.  
  2. Weaponization: Preparing the necessary software, backdoor or exploit code for the attack.
  3. Delivery: Sending the weaponized code to the target.
  4. Exploit: Activate the backdoor or exploit code to gain initial access to target systems. 
  5. Installation: Installing persistent backdoors and other code needed to move within the target network.
  6. Taking command: Gaining remote access to target systems and/or network.
  7. The kill: Performing the real attack depending on the needs of the attacker (leaking or deleting data, eavesdropping, etc..) 

Breaking the above mentioned chain in one or several steps will stop the attack or seriously cripple its success. Focusing on breaking this "Cyber Kill Chain" should be considered as a viable and efficient defense technique. However, it should be noted that the step at which we can break the chain will impact the cost and complexity of the defenses required. For example, placing a firewall is easier compared to a complex log gathering and correlation solution that aims to uncover possible malicious movements within the network. 
It would be safe to assume that aiming to break the chain as early as possible will, not only be easier and cheaper, but also provide us with an additional layer of security. There isn't much that can be done about the reconnaissance step as it's relatively hard to control information indexed by third parties. 
Perimeter security measures such as IDS/IPS (Intrusion Detection System / Intrusion Prevention Systems) or firewalls will try to avoid the initial breach. Having different VLANs, controlling LAN traffic with a firewall and monitoring logs we can stop the attacker from moving within the network or installing more backdoors. 
This is where vulnerability management comes into play, as an additional layer of security between the open source intelligence gathering and the attack. 
Vulnerability scanning will give us an overview about how vulnerable our systems and network are to an attacker. One might easily argue that vulnerability scanning won't provide every single attack vector that can be exploited by a skilled attacker and be right. As a strong believer in the "golden mean" or its more understandable version "perfect is the enemy of good", I think we shouldn't dismiss vulnerability scanning as an effective proactive security measure just because "it's not a pentest" or "hackers don't use Nessus" or "they can APT the hell out of you anyway". 
Basically, an attacker can have 3 good attack vectors he can use to gain access to the target system and network. These are; systems that can be reached from the internet, systems that can reach the internet and internal systems with known vulnerabilities. 
Systems that can be reached from the Internet: Knowing what systems are reachable from the Internet is vital. Any attacker worth his/her salt will be able to locate every Internet facing IP in your network. When we hear the words "Internet facing" we tend to think about that web server in our DMZ or such. I wih life was that simple. There have been many times I've found servers and clients open to the internet about which the Admins knew nothing. Regularly controlling all internet facing systems within your IP range will able you to spot these before attackers do (proactive security at its finest). 
Systems that can reach the internet: Basically all your clients. We need to remember that browsers are not the only systems that can reach the internet. Things such as instant messaging solutions and stock market tracking applications should also be taken into account. 
Known vulnerabilities on internal systems: This is the MS08-067 or the unpatched windows we find during penetration tests. They provide a good foothold for any movement within the network. 
These 3 attack vectors provide good opportunities to break the kill chain. 

Pic 3: "Cyber Kill Chain" facing an effective vulnerability management process (representational)

Creating and implementing even a basic vulnerability management process will provide an extra layer of security. Imagine having an invisible layer between the step where the attacker gathers information on your company using Google and the step here he/she is trying to avoid being detected by the IPS. 
A vulnerability management system can even be implemented using an open source vulnerability scanner such as OpenVAS or using a more rounded commercial tool such as Tenable's Security Center. 

Pic 4: Screenshot from Tenable Security Center 

Sunday, November 9, 2014

Siber Saldırganı Tanımak

Bilgi güvenliği konusunda proaktif bir yaklaşım oluşturabilmek için düşmanı doğru tanımak çok önemlidir. Zafiyet yönetimi programı oluşturmanın ötesinde sızma testi yaptırmamızın da nedenlerinden birisi de düşmanı anlamaya çalışmaktır.

Resim 1: Şapka renklerine göre hackerlar

Verdiğim eğitimlerde hacker ve şapka meselesi ister istemez gündeme geliyor. Aşağıdaki slayttan anlayabileceğiniz üzere şapka rengine göre yapılan ayrıma inanmıyorum.

Resim 2: Şapkalardan başlayan sınıflandırma genişletilebilir

 Klasik doktrin, daha doğrusu bizim romantikleştirdiğimiz hacker ayrımı aşağıdaki gibidir;

Beyaz şapkalı hacker: Bilgi güvenliği alanında çalışan Hacker. Bildiklerini kurumsal ağları daha güvenli hale getirmek için kullanıyor.
Siyah şapkalı hacker: Suçlu. Kötü niyetli hacker.
Gri şapkalı hacker: Duruma göre iyi veya kötü olan hacker.

İlk bakışta yeterli bir ayrım gibi görülebilir ancak benim gibi bilgi güvenliğini yönetmesi gereken tarafta iseniz bu ayrım sizin için de bir anlam ifade etmez. Kendinizi kimden korumanız gerektiğini bilmeden etkili bir savunma yapısı kurmanız mümkün değildir.

Proaktif güvenlik yaklaşımı çerçevesinde düşmanı profillemek ona hollywoodvari isimler takmaktan daha mantıklı olacaktır. Şapka rengine göre yapılan ayrım kız arkadaşını etkilemek için kurum sayfasını değiştiren çocukla, iyi korunan bir ağa sızıp, 6 – 7 ay farkedilmeden veri sızdırabilen kalabalık bir suç örgütü aynı sınıfa koyacaktır. İlki basit önlemlerle bertaraf edilebilecek bir olayken diğerini engellemek ve farketmek çok daha farklı bir yaklaşım gerektirir.

Bu nedenle saldırganları uzmanlık, motivasyon ve kullanılan saldırı vektörüne göre sınıflandırmak daha anlamlıdır.

Uzmanlık seviyesi
Saldırganlarda 4 temel uzmanlık seviyesi gözlemliyoruz.

Sıfır seviyesi: Sıradan kullanıcılar. Saldırganlar için ihtiyaç halinde mail ekini açacak, kurum ağına ilk giriş noktası olabilir. Bunlar işten ayrılmadan önce hassas müşteri veya üretim bilgilerini bir USB belleğe kopyalayan çalışanlar da olabilir.

Başlangıç seviyesi: Çok bilinen zafiyetleri istismar ederek saldıran ve bazı “Bilgi Güvenliği Uzmanlarının” Lamer diyerek aşaladığını düşündüğü saldırgan profilidir. Etkili DoS/DDoS (hizmet dışı bırakma/dağıtık hizmet dışı bırakma) saldırılarından web sayfanıza istemediğiniz bir mesaj konulmasına kadar gürültülü ama etkili olabilecek saldırılar düzenleyebilirler, aşağılanacak bir yanları yok. 

Orta seviye: Belli bir bilgi ve beceri seviyesine sahip saldırganlardır. Belirli zafiyetler için istismar kodu geliştirebilirler. Hizmetlerini yer altı forumlarında kiralayabilirler veya siyasi ve dini inançları doğrultusunda eylemler gerçekleştirebilirler.

Uzman seviyesi: Üst düzeyde bilgi ve beceriye sahip saldırganlardır. Tersine mühendislik, sıfır gün açığı tespiti ve yeni istismar kodları geliştirebilirler. Daha önce kısaca değindiğim APT 28 grubu buna iyi bir örnektir, APT 28 grubu ile ilgili yazıma http://www.alperbasaran.com/2014/10/apt-ve-olum-zinciri.html adresinden ulaşabilirsiniz.

Nasıl bir saldırganla karşı karşıya olduğumuzu veya olabileceğimizi anlamak amacıyla saldırının ne kadar karmaşık olduğuna bakabiliriz. Uzman seviyesinde bir saldırgan tarafından gerçekleştirilen saldırının izlerinin giriş seviyesi bir saldırganınkinden çok farklı olacağı açıktır.

Bu uzmanlık seviyelerinin yanında saldırganın amacı ve bulabileceği saldırı vektörü bize neye karşı önlem almamız gerektiği konusunda önemli bilgiler verir. Yukarıda gördüklerimiz doğrultusunda basit bir örnek ele alırsak:

Saldırgan seviyesi: Sıfır
Amaç: Çalıştığı/ayrılmak üzere olduğu şirkete zarar vermek veya kendi işini kurmak/rakibe geçmek için ihtiyacı olan müşteri portföyü ve ürün/maliyet bilgilerini almak.
Saldırı vektörü: USB bellek ve eposta
Saldırının etkisi: Önemli şirket bilgilerinin çalınması
Alınabilecek önlemler: “Bilgilerimiz neler? Kimdeler? ve Neredeler?” sorularının cevaplanacağı bir kurumsal sürecin oluşturulması ve bu çalışma sonucunda gerek olursa bir DLP (Data Loss Prevention) çözümü alınması (DLP’nin tam olarak neleri adreslediğini anlatan iyi hazırlanmış bir videoya http://www.symantec.com/products-solutions/products/videos-lightbox.jsp?cid=dlp_product_overview adresinden ulaşabilirsiniz).

Saldırgan seviyesi: Başlangıç
Amaç: Siyasi mesaj vermek
Saldırı vektörü: Web sunucusu
Saldırının etkisi: Kurumun itibar kaybetmesi
Alınabilecek önlemler: Web sunucusu zafiyet taraması, biz sıkılaştırma ve zafiyet yönetimi planını hayata geçirmek.

Saldırgan seviyesi: Sıfır
Amaç: Web sayfasının devre dışı bırakılıp gelir ve itibar kaybı yaşanması
Saldırı vektörü: Forumlardan DDoS hizmeti kiralanması
Saldırının etkisi: Kurumun itibar ve, varsa, gelir kaybetmesi
Alınabilecek önlemler: Mevcut sistemlerin kaldırabileceği trafik seviyesinin belirlenmesi için gerekli testlerin yapılması, gerek olursa (sistemin devre dışı kalması için gerekli DDoS saldırısının yapılması saldırgan açısından ekonomik veya yeterli olacaksa) bir DDoS çözümü alınması.

Saldırganların kim olabileceğini anlamak bilgi güvenliği yatırımlarımızı en doğru ve en etkili olacak yerlere yapabilmemiz için çok önemlidir.
Basit bir örnek vermek gerekirse, aşağıdaki ekran görüntüsü kendini “the Mato” olarak tanımlayan ve bir kamu kurumu sitesini “sevdiği” uğruna hacklediğini iddia eden bir saldırganın eseridir.

Resim 3: Sevdiceği uğruna kamu kurumu hackleyen "The Mato"

Öte yandan 2008 yılında yayınlanan bir rapor Rusya’nın diğer ülkelere karşı kullandığı “siber ordusu” hakkında aşağıdaki rakamları vermişti;

Yıllık bütçe: 127 milyon A.B.D. doları
Tam zamanlı personel sayısı: 7.300’den fazla
Yedek ve milis: Yok
Kontrol edilen geniş bant internet bağlantısı: 24 milyona yakın (dünyanın en büyük Botnet’lerinden birisi)

Saldırının kaynağından çok saldırgan profiline odaklanmamızın nedeni saldırı kaynaklarının yanıltıcı olabilmesidir. Aşağıdaki ekran görüntüsünü, 1 dakikadan az bir sürede ve evimdeki çalışma ofisimden hazırladım. http://www.iplocation.net/ Kaynak IP’nin geldiği ülkeyi gösteren ücretsiz bir web sayfasıdır Görebileceğiniz gibi dünyanın herhangi bir noktasından saldırı başlatmam mümkündür, daha doğrusu saldırıyı istediğim ülkeden geliyormuş gibi göstermem mümkündür.

Resim 4: Oturduğum yerden sanal ortamda dünya turu 

Anlaşıldığı gibi, saldırgan profilimiz “the Mato” seviyesindeyse KGB’nin 16. Birimi olan Rusya’nın gelişmiş siber ordusuna yönelik bir savunma hattı oluşturmamıza gerek olmayacaktır. Öte yandan stratejik öneme sahip bir kurum olarak bizi sadece başlangıç seviyesi saldırganların hedef aldığını ve siber ordusuna yılda 76 milyon A.B.D. doları harcayan ve bu konuda çalışan 2.500’e yakın personeli olan İran’nın bizimle “ilgilenmediğini” düşünmek saflık olur.

Görüldüğü gibi proaktif güvenlik yapısının kurulması “siyah şapkalara karşı beyaz şapkalılar” kadar basit bir denkleme bağlı değildir. Bu nedenle, korumaya çalıştığımız veriyi ve buna bağlı iş süreçlerinin anlaşılması ile başlayan bir çalışmanın doğru bir saldırgan profilleme çalışması ile devam etmesi önemlidir.
Bilgi güvenliği konusunda barındırdığımız riskleri anlamak için basit bir çalışma aşağıdaki soruların yanıtlarının bulunması ile başlayabilir.
Her zaman olduğu gibi, bir kamu veya askeri kurumda çalışıyorsanız bu çalışmayı birlikte yapabiliriz, bana ulaşmanız yeterlidir.

Tehditler ve düşmanlar kimdir?
Saldırganlar tarafından kullanılan ve kullanılabilecek araçlar nelerdir?
Saldırganların amaçları ne olabilir?
Yapılabilecek saldırıların etkileri nelerdir?
En açık saldırı vektörleri hangileridir?

Saldırganı doğru profillemek bize sadece kendimizi savunma konusunda önemli bilgiler vermekle kalmıyor, aynı zamanda olası bir saldırıyı daha hızlı tespit etmemizi sağlıyor. Kurumsal ağımıza birinin sızıp sızmadığını anlamaya çalışırken ve sızma durumunda gerekli uyarıları üretecek bir yapı kurarken neleri dikkate alacağımızı bilmemiz önemlidir.

Aşağıdaki çizimde görüldüğü gibi saldırganın bilgi seviyesi, amacı ve ulaşabileceği saldırı vektörleri saldırı türünü belirler ve sonuç olarak saldırının bırakacağı izlerin neler olduğuna büyük etkisi olur.

Resim 5: Saldırgan seviyesinin saldırı izlerine etkisi

 Görüldüğü gibi, saldırganı doğru profillemek ve saldırı vektörlerini doğru anlamak hem saldırıyı engellememize yardımcı olur, hem de saldırıyı tespit etmek için nerelere ve hangi loglara bakmamız gerektiğini belirler. 




MITRE ATT&CK Gerçek Hayatta Ne İşimize Yarar?

  Rusya kaynaklı siber saldırılar webinarı sırasında üzerinde durduğum önemli bir çalışma vardı. MITRE ATT&CK matrisini ele alıp hangi...