Showing posts with label pentest. Show all posts
Showing posts with label pentest. 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. 

Saturday, January 10, 2015

Moscow Rules for Cybersecurity

I believe I grew up on a different planet. "The world has changed" can only be an understatement. The world I grew up in was simpler and somewhat more elegant. For one thing the enemy was clear, the Russians. We were the good guys and they were the bad guys. We were blue, they were red. We were Rocky Balboa, they were Ivan Drago.


The world today is very different, the enemy is within, anyone we shared the bus or the subway with on our way to work yesterday can be the enemy.
Anyone can purchase a gun and kill innocents. Anyone can attack us. We have seen that even being a cartoonist in the most romantic city of the world doesn’t keep you safe from arm. The enemy is within and we should start thinking and acting accordingly.

This is not something new for us as this paranoid way of looking at things was already, and quite understandably, spreading amongst IT security professionals.
We, the guys trying to keep the IT infrastructure safe, know that the moment you connect something to the internet it is in hostile territory. We know that attacks start pouring in by dozens if not hundreds from all across the globe.

The “Moscow Rules” were never officially published but they seem like a reasonable set of behaviors that would help an operative stay alive in hostile territory. Looking at the way things have turned online I believe it’s a good time to remember these and adapt them to our approach to cyber security.

There are several “versions” of the Moscow Rules circulating on the internet and, unless Snowden has them in one of his files, I doubt we will ever have a confirmation on if these rules even ever existed. The International Spy Museum in Washington D.C. has published the following list as “Moscow Rules”. If you ever find the opportunity to visit this museum you can also see the Alienware laptop used by Th3j35t3r he used between 2010 and 2013 (http://www.jesterscourt.cc/2013/07/04/tinker-tailor-soldier-hacker/)

The “Moscow Rules” according to the International Spy Museum:
1. Assume nothing.
2. Never go against your gut.
3. Everyone is potentially under opposition control.
4. Don't look back; you are never completely alone.
5. Go with the flow, blend in.
6. Vary your pattern and stay within your cover.
7. Lull them into a sense of complacency.
8. Don't harass the opposition.
9. Pick the time and place for action.
10. Keep your options open.

Imminent Threat Solutions has also compiled a more comprehensive list of “Moscow Rules”, please visit http://www.itstactical.com/intellicom/tradecraft/the-moscow-rules-cold-war-directives-for-tradecraft-and-espionage/ and remember to stop by their shop for great gear.

The Cybersecurity Moscow Rules
Some of the rules on these lists would not only be applicable in the field of information security but would also form a good set of “rule of thumbs”. Here’s my "cybersecurity" take on the Moscow Rules.

1. Assume nothing.
Never assume your firewall is properly configured, never assume you have changed the default credentials on the new IPS/DS, never assume the users will notice that phishing mail, never assume everyone keep their passwords to themselves, never assume you didn’t leave a password hash on a server on the DMZ network. Assume nothing and check everything. Penetration tests or even simple checks you can conduct yourself will help you see all the false assumptions you have made.

2. Never go against your gut.
If something doesn’t feel right, there’s a chance it isn’t. I believe we don’t have the luxury to base our information security stance on “gut feelings” so I’ll suggest that you base your “gut” on trends and baselines. Know how much bandwidth you’re normally using so that you can notice when something is wrong. Know how, when and from where your network and systems can be accessed by legitimate users so that you can notice when something’s wrong. Gut feeling in information security should be data, collect it and use it.

3. Everyone is potentially under opposition control.
Think that any system on your network can be compromised, just like any user account. Plan your network topology and configure your security devices accordingly. By doing so you’ll be able to contain any malware epidemic and, if you are into that sort of thing, break the cyber kill chain because this will limit the movements of the attackers within your network.

4. Don't look back; you are never completely alone.
If you think no one attacked you, scanned your IP addresses or tried a SQL injection on your website you are wrong. It simply means you didn’t notice and worst you don’t have the necessary systems in place to notice such attacks. You should be able to identify these attempts so that you can identify a successful attack. You are never alone, if you think you are, it’s time to do something.

5. Go with the flow, blend in.
Blend in, to do so you must know what to blend to. Set up the basic requirements for all systems connected to your network and blend in. Make sure all computers have antivirus software and are updated regularly, make sure that not default user accounts are left on network and security equipment, make sure users use strong passwords and make sure everyone and everything “blends in”.

6. Vary your pattern and stay within your cover.
First have a pattern. Put in place several routine controls such as comparing the list of published vulnerabilities to your systems inventory. Regularly check shared files on your network, control bandwidth usage and create a routine for all security controls. Once you have put in place your “cover” vary the frequency and intensity of these controls.

7. Lull them into a sense of complacency.
Complacency is dangerous enough for everyone but can be deadly for people working in the field of information security. Not only you but every computer user and every personnel should be alert and careful. Hackers rarely attack your firewall directly, instead they attack users trying to convince them into clicking a link or downloading a file. Complacency amongst employees in any Department of the company or even just a single person can result in a company wide security breach. Make sure all employees are alert and cautious.

8. Don't harass the opposition.
Probably the most difficult part of our jobs. We need to make sure everyone can benefit from technology thus increasing the productivity of the company. We should take all precautions yet enable employees to work effectively.

9. Pick the time and place for action.
Collect logs so that you can pick (up) the time and place of all critical actions (events). Know when the failed login attempts happened, know that the back up process was finished successfully at 02:00 hours, know that the credentials of a terminated employee have been used to access a database. Prepare a list of critical SANS Institute have published a list of 6 critical log areas (http://www.sans.edu/research/security-laboratory/article/6toplogs) , you can use it as a guideline for actions to pick up.

10. Keep your options open.
Contingency plans are your friend. Be sure to backup and update regularly.

Remember; the Internet is hostile territory and act accordingly. The enemy is everywhere and, yes, they are after you.

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