Showing posts with label Penetration Testing. Show all posts
Showing posts with label Penetration Testing. Show all posts

Monday, August 17, 2015

Robotların yarattığı tehlike


Mert Özkan Özcan’a fikir ve destek için teşekkür ederim

 Tehlikeli robot (temsili)

Robotların dünyayı ele geçirdiği “korkunçlu” senaryolardan birisini kastetmiyorum. Google ve benzeri arama motorları tarafından kayıtlara alınmasını istemediğimiz sayfaları yazdığımız ve kısaca aşağıdaki benzer bir tablo oluşturan robots.txt sayfasını kastediyorum.

Göreceğiniz gibi arama motorlarına açıkça “bu sayfalara bakma” demek için kullandığımız bu sayfalar, saldırganlar için bir bilgi madeni olabilir. 2015 yılı itibariyle “gizleyerek güvenlik” (security through obscurity – korumaya çalıştığımız şeyleri saldırganlardan gizleyerek bir savunma hattı oluşturma fikri) yaklaşımından hızla çıkmamız gerekiyor. Binlerce belki de yüzbinlerce arama motorunun ve “örümceğin” sürekli gezdiği ve endekslediğin bir yer olan internete koyduğunuz hiç bir şeyi gizlemeniz mümkün değildir.


Sadece robots.txt dosyasına bakarak saldırganların ulaşabileceği bilgilere birkaç basit örneği aşağıda derledim.

Örnek 1: Yetkili kullanıcı girişi tespiti
Aşağıdaki örnekte, web sayfasının yetkili kullanıcı girişinin robots.txt dosyasına yazıldığını görüyoruz. 

kurum.gov.tr/administrator adresini ziyaret ettiğimizde ise aşağıdaki sayfayı görüyoruz. 


Bu sayfaya bakarak kurumun Joomla içerik yönetimi sistemini kullandığı konusunda bir tahmin yürütmemiz mümkün olabilir. Giriş ekranlarını atlatmaya yönelik teknikler bu sayfa üzerinde denenebilir ve zayıf parola kullanımı, fabrika ayarlı kullanıcı/parola eşleşmesi, kaba kuvvet giriş denemesi, vb. herhangi birinin başarılı olması durumunda saldırgan hedef web sayfasını değiştirebilecek hale gelebilir. 

Örnek 2: Hedef sistem tespiti
Aşağıdaki örnekte robots.txt dosyasında "/log/" adresini görüyoruz. 

Bu adresi ziyaret ederek, kullanılan sistem tarafından yayınlanan özelleştirilmiş bir hata ekranına ulaşıyoruz.


Örnek 3: Güvenlik tedbiri ifşası
Bir başka kurumunun web sayfasındaki robots.txt dosyası aşağıdaki gibidir;
Bu dosyadaki adresleri ziyaret ederek aşağıdaki bilgilere rastlıyoruz;
Web sunucusu dizin yapısı ve sunucu bilgisi ifşası.

Talebin "filtreleme modülü" tarafından engellendiğini belirten uyarı mesajı.
Bu örnekte de karşımıza yetkili kullanıcı girişi ekranı çıkmaktadır. Bu seferki içerik yönetim sisteminin özel olarak geliştirilmiş olması ve geliştiren firmanın da bilgilerinin ekranda bulunması bu yapının ticari veya yaygın olarak kullanılan içerik yönetim sistemlerine göre daha az güvenli olabileceğini düşündürüyor. 

Örnek 4: Kullanıcı bilgileri ve kullanım alışkanlıkları ifşası
Güvenlik ve yazılım konularında yazılar yazan ve kendini geliştiren, çok takdir ettiğim bir arkadaşımın sitesinde ise robots.txt dosyasında, pek çok şey arasında, "/statistics.html" adresini görüyoruz. 

Bu adresi ziyaret ettiğimizde ise sitenin yetkili kullanıcısının bilgilerini, yazdığı yazı sayısını ve siteye en son ne zaman giriş yaptığı gibi saldırgan için önemli olabilecek bilgilere ulaşabiliyoruz








Saturday, January 31, 2015

Zihin haritaları

Düşüncelerinizi ve fikirlerinizi işe yarayacak şekilde kağıda aktarmak zordur. Aklınıza gelenleri alt alta bir kağıda dökmek ilk bakışta mantıklı gelse de aslında beynimizin çalışma biçimine uygun bir yapı olmadığı için, en verimli yöntem değildir.


 Listelerin eksik kaldığı en önemli noktalardan birisi fikirlerimizin birbirleriyle olan bağlantılarının net bir şekilde görülememesidir. Özellikle belirli bir konuda kafa yorarken veya bilgi toplarken “zihin haritası” (ing. Mind Map) kullanmak işinize yarayabilir.

Zihin haritalarının faydalarını ve kullanılabilecekleri alanları aşağıda listeledim.

Zihin haritalarının faydaları:
Verimliliği artırmak
Yaratıcı düşünme yeteneğini geliştirmek
Düşüncelerinizi yapılandırmak
Bilgileri görselleştirmek
Veriyi daha etkin biçimde yönetmek

Zihin haritalarının kullanılabileceği alanlar:
Kişisel bilgileri yapılandırmak
Bilgiyi kayıt altına almak
Hayatınızı yönetmek
Beyin fırtınası yapmak için
Planlama yapmak için
Yönetim becerilerini geliştirmek
Toplantıları  daha verimli hale getirmek için
Sınavlara çalışırken
Ders içeriği hazırlarken
Ezber yaparken

Yukarıdaki iki listeden aklınızda nelerin kaldığını bilmiyorum ama yukarıdaki sıkıcı listeleri zihin haritası haline getirdim. Fark edeceğiniz gibi, aynı bilgileri sunmama rağmen, beyniniz büyük ihtimalle aşağıdaki şekli çok daha kolay algıladı.



Zihin haritaları yapılacak listesi tutmaktan, geliştirdiğiniz bir yazılımın özelliklerini ve projenin hangi aşamasında olduğunuzu takip etmeye kadar her alanda kullanılabilir. Aşağıda örnek olarak hazırladığım bir Barselona seyahati planını görebilirsiniz. Gidiş yolculuğum, dönüş yolculuğum, Barselona'daki Türkiye Cumhuriyeti temsilciliği, Otel bilgileri, göreceğim yerler ve ihtiyacım olabilecek İspanyolca cümleler dahil bütün bilgileri görebilirsiniz. Veriler anlamlı gruplar ve görsel olarak algılayabileceğim bir biçimde karşımda olduğu için uzun bir liste yerine çok daha etkili kullanabildiğim bir bilgi kaynağı haline gelmiştir. 



 Zihin haritalarını günlük olarak müşterilerde takip ettiğim projelerde ve sızma testlerinde bulgu kaybetmediğimden emin olmak için kullanıyorum. Aşağıdaki örnekte sızma testi yaptığım bir ağda, bulguları ekledikçe ortaya çıkan yapıyı görebilirsiniz.

Öncelikle hedef hakkında bildiklerimden başlıyorum. Aşağıda IP adresi bloğunu ve kuruluş ağı üzerinde bulunduğunu tahmin ettiğim sunucuları yerleştirdim. 



İkinci aşamadı IP bloğu üzerinde çalışır durumda olduğunu tespit ettiğim sunucuların IP adreslerini yerleştirdim. Normalde bunları hangi yöntemle (ping, TCP scan, UDP scan, vs.) bulduğumu ve üzerlerinde hangi servislerin çalıştığını (sonraki aşamada da tespit ettiğim zafiyetleri) de zihin haritasına dahil ediyorum. 


Tespit ettiğim DNS sunucularını ekliyorum


Diğer sunucuları tespit ettikçe ekliyorum ve sonuç olarak aşağıdaki haliyle hedef hakkında bir zihin haritası oluşturmuş oluyorum. Bu çalışma hedefin topolojisinin de oluşturulması aşamasında da faydalı olmaktadır. 



Zihin haritalarını çizmek için Freemind yazılımını kullanıyorum (http://freemind.sourceforge.net/wiki/index.php/Main_Page) ihtiyacımı büyük ölçüde karşılıyor. 

İşiniz veya projeniz ne olursa olsun zihin haritalarını kullanarak işinizi daha etkili yapabileceğinize inanıyorum. 



Sunday, January 25, 2015

Saldırı Ağacı

1998 yılında Salter tarafından ortaya atılan “Saldırı Ağacı” (ing: Attack Tree) fikri bir sistemin, çeşitli saldırılara karşı güvenliğinin, biçimsel ve metodolojik olarak ortaya konulmasını sağlamaktadır. Türkçe olarak ifade edersek, güvenliğini sağlamaya çalıştığım sisteme “kim ve nasıl saldırabilir?” sorusuna yanıt oluşturacak bir çalışmadır.


Kolay ve hızlı bir çözüm olması nedeniyle Türkiye’de genel olarak kabul gören zafiyet temelli güvenlik yaklaşımından farklı olarak saldırı ağacı veya STRIDE gibi yaklaşımlar kuruluşunuzun bilgi güvenliği seviyesine daha bütünsel bir bakış açısı sağlar.

Zafiyet temelli yaklaşım, kısaca, sistem üzerindeki güvenlik zafiyetlerinin tespit edilmesi (otomatik zafiyet tarama aracı, sızma testi, vb.) ve bunları ortadan kaldıracak veya istismar edilmesini engelleyen gerekli önlemlerin alınması olarak özetlenebilir. Daha Saldırı Ağacı ise sistemde tespit edebileceğimiz zafiyetlerden yola çıkarak güvenliği sağlamaya çalışmak yerine saldırganların amaçlarından yola çıkarak sistemin güvenliğini sağlamaya çalışmaktadır.

Yaklaşımların her ikisinin de eksik kaldığı yerler vardır şüphesiz ancak amacımızın sistemin güvenliğini sağlamak olduğunu düşünürsek sadece zafiyetlerden yola çıkarak tam bir sonuç elde etmemizin mümkün olamayacağı görüşündeyim.

Saldırı ağacını hazırlamak
Güvenliğini sağlamaya çalıştığımız sistem için bir saldırı ağacı hazırlamak için aşağıdaki adımları izleyebiliriz;
  • Ağacın köküne karar verin
  • Dalları belirleyin
  • Bütünlük açısından değerlendirin
  • Ağacı “budayın” (fazlalıkları atın)
  • Sunum


Ağacın kökü
Genel olarak ağacın kökünü saldırganın hedefi oluşturacaktır. Aşağıdaki basit örnekte ağacın kökünü oluşturan ve saldırganın hedefi olabilecek olay “ofisten laptop çalmak” olarak belirlenmiştir. (baştan söylemekte fayda olabilirdi tabii, saldırı ağacı ters duruyor). Görüldüğü gibi saldırganın amacına ulaşmak için kullanabileceği yöntemler belli bir akış içerisinde ortaya konmaktadır.



Dallar
Saldırı ağacının diğer bileşenlerini tespit etmek için “beyin fırtınası” yapılıp aklımıza gelenleri sırayla yazabiliriz. Bazı önemli noktaları gözden kaçırmamıza neden olabileceği için bu tavsiye edeceğim bir yöntem olmaz. Kök sebep ve alt bileşenler arasındaki geçiş VE veya VEYA anlamında olabilir. Yukarıdaki örnekte bağlantılar VEYA anlamındadır ve saldırganın kullanabileceği çeşitli yöntemler listelenmiştir. Bağlantıları VE olarak oluşturmak saldırganın birden fazla araca ihtiyaç duyacağı durumların ortaya konuşması için daha etkili olacaktır.
Alt bileşenleri ortaya çıkartmak için saldırganın amacından yola çıkıp ihtimal dahilinde olan her saldırı vektörünü listeleyip sonrasında bir alt kademeye geçmek daha uygun olacaktır.

Bütünlük değerlendirmesi
Ağacın ilk hali ortaya çıktıktan sonra her bileşeni “bu sonuca ulaşabilecek başka bir yol var mı?” sorusu ile tekrar değerlendirmek faydalı olacaktır. İlk çalışmadan gözden kaçabilecek bazı saldırı vektörleri de bu şekilde ortaya çıkar. Sonuçların yanında saldırı yöntemlerinin ve saldırganların da tekrar değerlendirilmesi gerekecektir. Bu sayede saldırı ağacını farklı bilgi ve beceri seviyesine sahip saldırganlara karşı da etkili hale getirme imkanımız olacaktır.

Ağacı budayın
Çalışma tamamlandıktan sonra dalları ele alıp bu saldırıya karşı bir önlem alındı mı? Bu saldırı veya sonuç başka bir dalda ele alınmış mı? Gibi soruların cevaplarını arayarak gereksiz veya tekrar eden durumlar çalışmadan çıkartılabilir.

Sunum
Ele aldığınız sistem ne olursa olsun saldırı ağacının bir sayfadan uzun olmamasında yarar var. Bu sayede, amacımız olan, saldırıları anlaşılır ve kolay algılanır şekilde göz önüne serme işini gerçekleştirmiş oluruz. Sayfalarca devam eden bir saldırı ağacı ile, saldırganın kök amacını göremeyeceğimiz için, etkin bir sonuç elde etmemiz zorlaşacaktır. Bu durumla karşılaşılması halinde çalışmayı daha küçük birimlere ayırıp aynı sistemin farklı bileşenleri için ayrı saldırı ağaçları hazırlanması daha iyi olacaktır.

Saldırı ağacının anlamlandırılması
Korumaya çalıştığımız sisteme karşı düzenlenebilecek saldırıları listelemek iyi bir çalışma olacaktır ancak tek başına savunmamızı nasıl tasarlamamız gerektiği konusunda bilgi veremez. Diyelim ki saldırı ağacımızı ortaya çıkarttık ve bu sene bilgi güvenliği için 100.000 TL bütçe ayırdık. Bu çalışma bize hangi yatırımları yapmamızın daha faydalı olacağı konusunda bilgi vermez. Güvenlik seviyemizi nasıl iyileştirmemiz gerektiği konusunda bir fikir edinebilmek için saldırı ağacına bazı değerler atamakta fayda var.

Saldırı ağacını anlamlandırmak için kullanılabilecek çeşitli yöntemler arasında, bu yaklaşımı bilgi güvenliği alanına 1999 yılında tanıtan Bruce Schneier’in ele aldıkları hala geçerliliklerini korur.
Saldırıların maliyetlerini kullanmak: Saldırıyı düzenlemek için saldırganın ihtiyaç duyacağı kaynaklar söz konusunu saldırın gerçekleşme ihtimalini etkileyecek bir unsurdur. Biraz önceki bütçemize dönersek 100.000TL ile gerçekleşme ihtimali düşük ve 300.000TL kaynak gerektirecek saldırılara karşı tedbir almaya çalışmak yerine, saldırı ağacında bulunan ve çok daha düşük maliyetli saldırılara karşı tedbir almak daha mantıklı olacaktır. Bu yaklaşımı etkin bir şekilde kullanabilmek için saldırgan profillemesinin dikkatlice ve detaylı olarak yapılması önemlidir. Saldırıyı düzenlemek için gerekli 300.000TL’lik yatırım sıradan saldırganlar için büyük bir tutarken, başka devletler için önemsiz ve kolayca harcanabilecek bir paradır.
Hedef sistem değerini kullanmak: Savunmayı korumaya çalıştığımız sistemlerin değerine göre belirlemek yatırımlarımızı en kıymetli varlıklarımızı koruyacak şekilde yapmamızı sağlar.

Bütüncül yaklaşımın önemi
Yukarıda gördüğümüz laptop çalma konusunu zafiyet taraması veya sızma testi yaklaşımıyla ele alırsak yapacağımız araştırma bize kapıdaki kilidin matkapla delinebileceğini gösterebilirdi (sarı olarak işaretlediğim kutu). Biz de buna karşılık matkapla delinmeyen veya delinde bile kapının açılmasına imkan vermeyen bir kilitle değiştirilmesini önerebilirdik. Bu durumda işimizi çok iyi yapmış ve zafiyeti ortaya çıkartmış olmamıza rağmen bütün olası saldırılar arasında sadece 1 tanesini ortaya çıkartmış oluruz.



Saldırı ağacı gibi bütüncül modeller bilgi güvenliği seviyemize daha geniş bir açıdan bakmamıza imkan verdiği için güvenlik seviyemizin durumu hakkında daha anlamlı bilgiler vermektedir.


Mart ayının sonuna kadar benimle temasa geçecek Kamu kurumları (Bakanlıklar, Askeri kurumlar, Emniyet Teşkilatı, Müsteşarlık ve Genel Müdürlükler) için ücretsiz olarak temel saldırı ağacı çalışmalarını yapacağım. Bu çalışmanın mevcut güvenlik seviyemizin bir röntgenini de çekmemize imkan sağlayacağı için faydalı olacağına inanıyorum. 

Sunday, December 14, 2014

APT Nedir?

APT İngilizcesi Advanced Persistent Threat olan ülkemizde ise “gelişmiş sürekli tehdit” veya “hedef odaklı saldırı” olarak iki farklı şekilde duyulabilen özel bir saldırı türüdür.



APT’yi özel bir saldırı türü olarak sınıflandırmamdaki neden oluşturduğu tehdidin diğerlerinden farklı olmasıdır. Bilgi güvenliği konusunda tehdit kelimesinin risk anlamından biraz daha farklı kullanılmasında fayda olacaktır. Bizim için tehdidi oluşturan bileşenler saldırganın motivasyonu (gerekçesi), beceri düzeyi ve olayların tarihçesidir. Elbette, geçmişte bir saldırı olması, tekrar saldırı olacağı veya hiç saldırı olmamış olması bir saldırı olmayacağı anlamına gelmez ancak bizlere tehlikenin boyutu hakkında önemli bilgiler verir.

Saldırganların motivasyonlarını anlamak için çeşitli saldırgan profilleri ve temel motivasyonlarına, yani saldırıyı gerçekleştirmedeki amaçlarına, bakarsak aşağıdaki durumu görürüz.

Siber suçlular: kolay ve çok para kazanma fırsatı
Hacktivist: İdeolojik bir amaca hizmet
Hacker grupları: Ünlü olma, adını duyurma
Egemen devletler: Ulusal güvenlik ve ulusal çıkarlar
Suç örgütleri: Belli şahısların becerilerini veya karşılarına çıkan fırsatları değerlendirip para kazanmak

Saldırganların motivasyon düzeyini değerlendirmek için amacı uğruna ne kadar süreyle çalışmayı göze aldığına bakmak lazım. İlk birkaç denemeden sonra daha kolay ele geçirebilecekleri bir hedef aramaya başlayacak siber suçlular, hacktivistler veya suç örgütlerinin aksine APT olarak adlandırabileceğimiz saldırıları gerçekleştirecek gruplar amaçlarına ulaşana kadar saldırmaya devam ederler.

Sürekli veya devamlı niteliklerinin yanında APTler saldırganların teknik kabiliyetleriyle de diğer suçlardan ayrılır. Cryptolocker gibi fidye talep eden bir yazılıma dayalı bir operasyon yürütmek için çok derin teknik bilgiye ihtiyaç yoktur. Bu yazılımı ve yazılımı kontrol edecek sistemler yasadışı kaynaklardan kiralanıp işletilebilir. 

Tehditleri saldırganların yeteneklerine göre sınıflandıracak olursak karşımıza şu kademeler çıkabilir;

Basit tehdit: “wifi hackleme” ve “facebook patlatma” seviyesinde 1-2 kaynak okumuş “meraklı”, metodoloji bilmeyen, başlangıç seviyesi olarak nitelendirebileceğimiz saldırganlardır.
Sürekli basit tehdit (basit tehdit beceri düzeyi + saldırgan motivasyonu)

Akıllı tehdit
Sürekli akıllı tehdit (Akıllı tehdit beceri düzeyi + saldırgan motivasyonu): Kevin Mitnick bu seviyeye iyi bir örnek oluşturmaktadır. İleri düzey teknik becerisi, hedef aldığı şirket veya kuruma sızmak için yürüttüğü sosyal mühendislik çalışmalarının tamamı Kevin’i “sürekli” bir tehdit haline getirmiştir.

İleri seviye tehdit
Sürekli ileri seviye tehdit (ileri seviye tehdit + saldırgan motivasyonu): Rusya’nın APT28 ve Çin’in APT1 grupları bunlara tipik örneklerdir.

APT olarak adlandırdığımız tehdit türü (sürekli ileri seviye tehdit) en gelişmiş teknik beceri ve en yüksek seviyede motivasyon gerektiren saldırılardır.

Basit tehdit sürekli olsa bile saldırganın teknik beceri düzeyinin düşük olması nedeniyle, gerekli tedbirlerin alınması koşuluyla, çok az durumda başarıya ulaşır. Akıllı tehditler ise teknik bilgi ve becerisi belli bir düzeyinin üzerinde olan saldırganlarca düzenlendiği için, özellikle sürekli olması halinde, ciddi bir tehdit oluşturmaktadır. İleri seviye tehditler, gerekli teknik beceri seviyesi itibariyle “Akıllı” olarak nitelendirdiğimiz tehdit grubundan çok da farklı değildir. 

Bir tehdidi ileri seviye olarak nitelendirmek için temelde 4 unsurun bulunması gerekir;
  • Hedef ve saldırı ile ilgili stratejik düşünce
  • Saldırılarda sistematik/askeri niteliklerde yaklaşım
  • Kimlik gizleme becerisi
  • Saldırganların kullanabileceği daha geniş bir saldırı vektörü havuzu 

APT olarak adlandırabileceğimiz saldırılarda kullanılan zararlı yazılımlar Stuxnet, Flame, Duqu veya Wiper ile sınırlı değildir. APTlerde birden fazla saldırı vektörünün (örneğin sosyal mühendislik) ve sıradan bir saldırgandan farklı bir yaklaşım görüyoruz. Aşağıda kısaca özetlediğim Duqu örneğinde görüldüğü gibi saldırganlar ele geçirdikleri sistemden veri çalmaya çalışmak yerine stratejik öneme sahip olabilecek bilgileri toplamaya çalışmışlardır.  

Duqu ilk olarak 2011 yılında tespit edilmiştir ismini oluşturduğu dosyaların ismini DQ ile başlatmasından almakta ve temelde bulaştığı sistem hakkında bilgi toplamayı amaçlamaktadır. Duqu’yu yazanların büyük ölçüde Stuxnet’in kaynak kodundan faydalanmış olabilecekleri düşünülmektedir.
Hedef sisteme eposta ekinde gönderilen bir Word belgesinin içindeki kodla bulaşan Duqu sistem üzerinde bir arka kapı açar. Yerel ağ üzerinde yayılma becerisine de sahip olan Duqu bulaştığı sistemden aşağıdaki bilgileri sızdırır:
  • Sistem bilgisi
  • Klavye hareketleri
  • Sistem üzerinde ve sistemden erişilen sistemlerde kullanılan parolalar
  • Ekran görüntüleri
  • Yerel ağdaki diğer sistemlerin bilgileri (bu özelliği ile potansiyel Stuxnet hedeflerini belirlemekte kullanılmış olabileceği düşünülebilir).

APT saldırılarının metodolojisi temel bir kaç işlevde hacker metodolojisine benzese de yaklaşım ve “felsefe” bakımından farklılıklar sergilemektedir. Temel olarak APT saldırganlarında gördüğümüz bazı özellikler şunlardır;
  • Ciddi hazırlık süreci
  • Çok detaylı bilgi toplama aşaması
  • Planlama ve uygulamada sabırlı yaklaşım
  • Saldırı adımlarının sosyal bileşenleri konusunda bilgi
  • Etkili olmaya öncelik vermeleri (bu anlamda basit saldırıları da kullanırlar)
  • Yaratıcı düşünme yeteneği
  • Asıl saldırı vektörünü gizlemeye yönelik dikkat dağıtma çabası
  • Henüz yaygınlaşmamış/duyulmamış istismar kodlarının kullanılması
  • Fiziksel sızma eyleminden çekinmemeleri

APT saldırıları özellikle Kamu Kurumları, kritik altyapıları, büyük şirketleri, finans sektörünü ve telekom operatörlerini hedef almaktadır. Hedef olabilecek bir yerde çalışıyorsanız mevcut durumunuzu 7 adımdan oluşan ve incelenen olaylarda kullanıldığını bildiğimiz APT metodolojisine göre değerlendirmenizde fayda vardır. 



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...