IBM/Watchfire Seminer Sayfası ve Acunetix’ten bir görüntü?

2007, iki büyük Web Uygulamaları Güvenlik Denetim Yazılımı üreticisinin alımına tanık oldu.
Birisi bu işin patentini elinde bulunduran Watchfire, IBM tarafından; diğeri kişisel fikrime göre bu konuda oldukça başarılı SPI Dynamics, HP tarafından satın alındı. Üzücü.

Forward edilmiş bir seminer mailinin içeriğine bakarken, IBM adı altında, şu yıllardır Acunetix‘in sitesinde görmeye alışık olduğumuz “bir hırsızın, kırdığı camın arkasından kapı koluna uzandığı” fotoğrafı görünce şaşırdım doğrusu.


Ajansın bir hatası olduğunu düşünüp, seminerle ilgili IBM’in duyuru sayfasını kontrol ettiğimde gördüğüm manzara aynıydı.


Acaba patent holder IBM/Watchfire’ın, bu konuda özgün bir grafiği bulunmuyor mu :)

Googlebot’u kullanarak kimlik doğrulamasını aşmak

SEO(Search Engine Optimization), yani Arama Motoru Optimizasyonu, web sitelerinde bulunan içeriklerin arama motorları tarafından daha iyi indekslenebilmesi için site ve sayfa yapısında yapılan optimizasyonlar bütünüdür. Yapılan bu düzenlemelerle sitenin arama sonuçlarında çıkması ve sonuçlarda daha üst sıralarda yeralması amaçlanır.
En sık kullanılan arama motorunun Google olması ve site sahiplerinin Google Adsense üzerinden daha fazla para kazanmak istemeleri, insanların sitelerini Google için optimize etmesini de beraberinde getirmektedir.

Bütün bu ıvır zıvırdan neden bahsediyorum, Google’ın veya farklı bir arama motorunun sitesini daha iyi indekslemesini isteyen bazı yerler farkında olmadan sitelerinde bazı güvenlik problemleri oluşturmuş olabiliyor.
Hiç arama motorunda aradığınız bir içeriğin, sayfayı ziyaret ettiğinizde farklı göründüğünü tespit ettiniz mi? Ne olmuş olabilir?

  • Site içeriği değişmiştir/kaldırılmıştır (Ulaşmak istediklerinize arama motorunun cache’ini kullanarak ulaşmayı deneyin)
  • Web sitesi, bu bölüme erişebilmeniz için sizden geçerli bir kullanıcı adı ve şifre istemektedir!

Bu durumda:

  1. Varsa arama motorunun önbellek(cache) bölümünü kullanıp sayfaya erişebilirsiniz,
  2. Kayıt işlemleri ile uğraşmamak için BugMeNot‘ı kontrol edersiniz,
  3. Veya, Googlebot olmayı denersiniz!

Karşılaştığım sitelerden iki tanesini inceleyelim.
Normal bir istek yapıdığında WindowsITPro, sitede yeralan makaleleri okuyabilmek için kayıtlı kullanıcı olmamızı istemekte.

Yapılan bu isteği HTTP header bilgilerinde oynama yapıp, kendimizi Googlebot olarak tanıttığımızda ise bize tüm makaleyi gösteriyor.


Aynı şekilde bir forum sitesi olan GovernmentSecurity, sitenin bazı yerlerine girmek için kayıtlı kullanıcı olmayı şart koşuyor.

Yukarıda görülen isteği HTTP header bilgilerinde oynama yapıp, kendimizi Googlebot olarak tanıttığımızda ise bize forum içeriğini gösteriyor.

Ziyaret ettiğimiz sitede, bu veya benzeri bir güvenlik problemini, “User-agent” HTTP başlık bilgisini kolayca değiştirerek kontrol edebiliriz.
Ben yukarıdaki örneklerde, detaylı görünmesi açısından LiveHTTPHeaders firefox eklentisini kullandım. Tabi ki HTTP header bilgilerini değiştirmeyi daha kolay hale getiren eklentiler var. Ben bunun için modifyheaders‘ı öneririm.

Bu örneklerde gözükenler o kadar da önemsenecek derecede veriler değil. Belki ücretli üyelik sistemi olan bir site için risk seviyesi daha yüksek olabilirdi. Ama özetlemek istediğim, web güvenliğinde kullanıcı tarafından gönderilen verilere hiç bir zaman güvenmemek. Web uygulamalarımızı tasarlarken buna göre önlemler almalıyız.

Sizin yapamadığınız bir şey, yapılamıyor anlamına gelmez! Özellikle web üzerinden yapılan saldırıların artması ve diğer saldırılara göre kolaylığı, verilerinizin güvenliğini riske sokabilir.

mssqlcmd – Yeni sürüm duyurusu ve xp_cmdshell’i aktif hale getirme

Daha önceden yayınladığım Microsoft SQL kullanarak komut çalıştırma script’inde bazı ufak düzenlemeler yaptım.
İşlevini yerine getirmek için xp_cmdshell stored procedure’ını kullandığını iletmiştim. Peki ya xp_cmdshell devre dışı bırakıldıysa veya hedef sunucu Microsoft SQL Server 2005 sürümüyse?

Bu durumda xp_cmdshell’i yeniden devreye alabilmek için aşağıdaki yöntemleri izleyebiliriz:

  1. Microsoft SQL Server 2005 sürümünde, güvenlik nedeniyle xp_cmdshell devre dışı olarak gelmektedir. Aktif hale getirebilmek için aşağıdaki sorgunun çalıştırılması yeterlidir:

    USE master
    GO
    EXEC sp_configure ‘show advanced options’, 1
    GO
    RECONFIGURE WITH OVERRIDE
    GO
    EXEC sp_configure ‘xp_cmdshell’, 1
    GO
    RECONFIGURE WITH OVERRIDE
    GO
    EXEC sp_configure ‘show advanced options’, 0
    GO

  2. Bir güvenlik önlemi olarak, xp_cmdshell stored procedure’ı veritabanı yöneticisi tarafından kaldırıldıysa (ki Microsoft’un bunu pek de önerdiği söylenemez), tanımlamak için xpsql70.dll dosyasının sistemde bulunması yeterli. Bunun için aşağıdaki SQL sorgusunun çalıştırılması gerekir:

    EXEC sp_addextendedproc ‘xp_cmdshell’, ‘xpsql70.dll’

mssqlcmd‘nin yeni sürümünü yine aynı yerden indirebilirsiniz.

Not: mssqlcmd.py dosyasında bu komutlar comment olarak gerekli yerlere eklenmiştir. Gerektiğinde satır başlarındaki # karakteri silinerek çalışmaları sağlanabilir.
Uyarı: Yukarıda yazan SQL sorgularının çalıştırılması ile ilgili sorumluluk kabul edilmemektedir. Gerçek sistemler üzerinde çalışmadan önce, test sistemlerinde denemeler yapın.

mssqlbf – Microsoft SQL brute force yazılımı

Hazır konu Microsoft SQL’den açılmışken, yine güvenlik denetimlerinde zayıf veritabanı şifrelerini tespit etmede kullanılabilecek bir script hazırladım.

Basit bir şekilde, username ve password wordlist kullanarak, şifre deneme-yanılma (brute force) saldırısı yapabiliyor.
Daha sonradan kullanabilmek için, bulduğu kullanıcı adı ve şifreleri bir metin dosyasında arşivliyor.
Threading desteği sayesinde aynı anda birden fazla kullanıcı adı/şifre kombinasyonu deneyerek işlemi büyük oranda hızlandırabilir. Varsayılan maksimum thread sayısını 5 olarak ayarladım. Script içerisinden kolayca değiştirilebilir.

Microsoft SQL Brute Force yazılımına buradan ulaşabilirsiniz.
Python ile yazılmıştır. pymssql kütüphanesine ihtiyaç duymaktadır.

mssqlcmd – Microsoft SQL kullanarak karşı sunucuda komut çalıştırın

Güvenlik denetimlerinde kullanmak üzere hazırladığım bu basit script, Microsoft SQL sunucusu çalışan bir sunucu üzerinde komut çalıştırmaya yarıyor.
Bu işlevi yerine getirmek için xp_cmdshell stored procedure’ını kullanıyor. Zayıf veritabanı yöneticisi şifresi tespit edildiğinde kullanılabilir. (Örneğin ‘sa’ hesabı ve boş şifre)

mssqlcmd.py dosyasına buradan ulaşabilirsiniz.
Python ile yazılmıştır. pymssql kütüphanesine ihtiyaç duymaktadır.

Windows Administrator Sifresinin Sifirlanmasi

Windows administrator hesabının veya farklı bir kullanıcı şifresi kayboldu, unutuldu, veya administrator kullanıcısının şifresini hiç bilmiyorsunuz ve bulmak istiyorsunuz. Problem değil.

Varolan Şifreyi Bulma
Şifreyi herhangi bir şekilde değiştirmek yerine varolan eski şifreyi bulmak istiyorsanız, NTLM/LM hash’lerini kullanarak şifre deneme-yanılma (brute-force) yöntemini kullanmanız gerekiyor.
Bu işlem varolan şifrenin karmaşıklığına oranla zaman alıcı olabilir. Cain & Abel, Ophcrack veya benzeri yazılımlarla bu işlemi yapabilirsiniz. Ayrıca bunu sizin yerinize yapabilecek; milw0rm cracker, Login Recovery gibi ücretli/ücretsiz servisler bulunuyor.

Varolan Şifreyi Değiştirme
Fiziksel olarak makinaya erişiminiz varsa ve şifreyi değiştirmek istiyorsanız, Windows kullanıcı şifresini resetleyebilmenizin çok basit bir yolu bulunuyor.
Emergency Boot CD, Offline NT Password & Registry Editor veya ücretli bir alternatif olan Active@ Password Changer Professional sadece benim duyduklarım.

Windows NT/2000/2003 Domain Controller sistemleri için domain administrator hesabını nasıl kuratarabileceğinizle ilgili detaylı bir yazıya buradan ulaşabilirsiniz.

UYARI: Sisteminizde şifrelenmiş dosyalarınız bulunuyorsa (EFS) ve şifrenizi resetlerseniz, o kullanıcı için tüm dosyalar erişilemez olabilir. Bu gibi durumlar için bir EFS recovery yöntemi kullanmanız gerekmektedir. Bu gibi durumlarda Advanced EFS Data Recovery veya benzeri bir yazılım kullanabilirsiniz.

Emergency Boot CD (EBCD) yazılımını kullanarak nasıl yapacağımızı adım adım aktarıyorum:
(sürüm 0.6.1 Pro kullanılmıştır)

  1. Ürünün web sitesine giderek yazılımı indirin ve bootable cd’nizi oluşturun.
  2. Kullanıcı şifresini kurtarmak istediğiniz makinanın başına giderek, bilgisayarı CD ile açın.
  3. İlk gelen boot menüsünde “5” numaralı NT password editor seçeneğini seçin.
  4. Sistem açılmasının ardından, ilk olarak SCSI disk sürücülerini yükleyip yüklemeyeceğinizi soruyor. Eğer makinanızın diski SCSI ise burada “y”, değilse “n” seçeneğini seçin.
  5. Bir problem olmazsa, makina üzerinde bulunan disklerin ve disk bölümlerinin listelendiği fdisk ekranı karşınıza çıkacak. Bu bölümde Windows işletim sisteminin hangi bölümde olduğunu iletmeniz gerekiyor. Genelde varsayılan kurulumlarda IDE diskli sistemlerde “/dev/hda1” seçeneği, varsayılan seçenek olarak gelecektir.
  6. Diski mount ettikten sonra registry’nin bulunduğu yere olan yolu girmeniz gerekiyor. Eğer standart bir sistem kullanıyorsanız bu otomatik olarak seçili gelecek (“windows/system32/config”)
  7. Yazılım hangi dosyaları düzenlemek istediğinizi soruyor, bu seçeneği de değiştirmeden, enter tuşu ile onaylamanız yeterli (“sam system security”)
  8. Tüm adımlar başarılı bir şekilde geçildiğinde, Linux altında çalışan, chntpw yazılımı çalıştırılacaktır. Şifreyi resetlemek için 1 numaralı seçeneği seçin, yani enter’a basın.
  9. İşte bu adımda, size sistemdeki kullanıcıların bir listesini dökecek ve hangi kullanıcının şifresini değiştirmek istediğinizi soracak. Burada kullanıcı adını yazın veya yine varsayılanı seçin (“Administrator”)
  10. Seçtiğiniz kullanıcı için yeni şifrenin belirleneceği bölüme geldik. Daha önceki tecrübelerimden size şifreyi boş olarak ayarlamanızı öneririm. Daha sonra Windows içerisinden bu boş şifreyi değiştirebilirsiniz. Kullanıcıya boş şifre verebilmek için bu alana “*” yazmanız gerekiyor.
  11. Onayladıktan sonra, başka bir kullanıcının şifresini de değiştirmek istiyorsanız 9. adıma geri dönün.
  12. İşiniz bittiğinde sırasıyla “!” seçeneği, “q” seçeneği ve son gelen Write hive files? sorusuna da “y” dedikten sonra tekrar “y” ile onaylayın.
  13. CTRL-ALT-DEL tuş kombinasyonuyla sistemin yeniden başlamasını sağlayın. Sisteminiz açıldığında, boş şifre ile giriş yapabilirsiniz.
Gördüğünüz gibi, makinaya fiziksel erişiminiz olduğunda şifre kurtarmak bu kadar basit olabiliyor.

Google ve gizlilik

Google blog’daki yaziya gore Google, kullanicilarindan topladigi arama kelimeleri, IP adresi ve tanimlama bilgisi (Cookie) gibi ozel bilgileri, 18-24 ay sonra daha anonim hale getirecekmis. Bu da kullanicilarin kisisel gizliligi icin yapilan onemli(?) bir adim olarak aktariliyor.
Bir sure sonra gizlilik politikasini guncelleyecek olan Google, kanunlar bu bilgilerin daha uzun sure saklanmasini gerektiriyorsa, daha uzun sure saklanacagi sekilde aciklama yapmis.
Ancak Google Log Retention Policy FAQ dokumaninin da belirttigi gibi loglar tamamen silinmiyor.
Metnin tamamini okudugumuzda, Google’in kullanicilarindan hangi bilgileri topladigini kendi agizlarindan daha net gorebiliriz.
  • Yapilan sorgu
  • IP adresi
  • Tanimlama bilgileri
Daha oncesinde bu bilgilerin, yararli oldugu dusunulene kadar saklandigi iletilmis. Tabi ki bu bilgiler sadece Google servislerinin kalitesini arttirmak icin kullanilmakta(!). (Google Gizlilik Politikasi)

Google ozellestirilmis servislerin kullanilabilmesi ve hizmet kalitesi icin tanimlama bilgisi kullanmayi onermektedir. Google tarafindan her yeni kullaniciya atanan tanimlama bilgilerinin sona erme tarihi 2038’e kadardir.
Bu durumda siradan bir kullanici, 2038’e kadar izlenebilir diyebiliriz.

IP adresleri ve tanimlama bilgileri ister saklansin, ister anonim hale getirilsin veya tamamen silinsin; kullanicilari arama kelimeleri ile iliskilendirmek de mumkun olabilir.
Varsin arama motoru verilerini tamamen silsin. Zaten Google, verdigi diger servislerle; emailler ve kullanimi (sifreli bir ek gondermeyi denediniz mi?), blog kullanimini, neredeyse cogu web sitesi istatistiklerini ve bu sayede kullanicilarin web sitelerinde dolasim bilgilerini, reklam hizmetleriyle(adsense ve adwords) bir cok istatistik, izlediginiz videolar, takviminiz, word/excel dokumanlariniz, bilgisayarinizdaki bazi bilgiler, IM mesajlasmalariniz/dosya gonderimleri, haber gruplarindaki konusmalar, tum web erisiminiz ve sayamadigim, kullandiginiz veya kullanmadiginiz tum Google ve firmalarinin servisleri de ayni sekilde kaydedilmektedir.
Istatistiki, servis kalitesini arttirma amacli, veya siz soyleyin…

Google tekeli ve gizlilik politikasi uzerine elestirileri ve incelemeleri iceren Google Watch sitesini inceleyebilirsiniz.

CVSS – Genel Açık Derecelendirme Sistemi


CVSS Nedir?

Genel Açık Derecelendirme Sistemi (CVSS, Common Vulnerability Scoring System), güvenlik açıklarının önem ve önceliklerinin belirlenmesi açısından risk seviyelerinin belirlenebilmesinde kullanılabilecek açık bir standarttır. Birbirleri ile uyumsuz, farklı seviye belirleme sistemlerinin yerine kullanılması amaçlanmıştır. CERT, Mitre, Cisco, Symantec, Microsoft, Qualys gibi güvenlik organizasyonları ve üreticiler tarafından kullanılmaya başlanan CVSS’in kullanımı, gittikçe daha yaygın hale gelmektedir.

CVSS Risk Seviyeleri
CVSS’in kullanımıyla, son kullanıcıya da bir güvenlik açığının önem ve risk seviyesinin sunulması amaçlanmaktadır. Risk seviyeleri üç ayrı kategori olarak hesaplanmaktadır. Bunlar; Temel Risk Seviyesi (Base Metric Scoring), Geçici Risk Seviyesi (Temporal Metric Scoring) ve Yapısal Risk Seviyesi (Environmental Score Metrics)’dir.

Temel risk seviyesi, güvenlik açığına özgü, zaman içerisinde veya yapıya göre değişmeyen, temel risk seviyesidir. Geçici risk seviyesi, güvenlik açığının zaman içerisinde değişebilecek risk seviyesidir. Yapısal risk seviyesi ise, güvenlik açığının organizasyon/firma yapısına olan etkisidir. Yapısal risk seviyesinin her organizasyon/firma için tekrardan hesaplanması gerekmektedir.

Kimler CVSS’i Nasıl Kullanabilir?
Payment Card Industry(PCI) onaylı güvenlik denetim firmaları, bilgi güvenliği organizasyonları, güvenlik denetimi yapan firmalar ve üreticiler CVSS’i kullanabilir.
İleride CVSS’in daha yaygın kullanılması durumunda, daha çok kişi CVSS risk seviyesini bir önkoşul olarak isteyecektir. Dolayısıyla şimdiden CVSS’in hizmet ve ürünlere entegre edilmesi rekabet açısından da faydalı olabilir.

Son kullanıcılar (organizasyonların bilgi güvenliği ekibi, bilgi işlem kadrosu vb.) CVSS’i Yapısal Risk Seviyesini hesaplamada kullanabilirler. Bunu hesaplayabilmek için gereken temel risk seviyesi ve geçici risk seviyesi üreticiler tarafından verilmektedir.

CVSS Risk Seviyesinin Hesaplanması
CVSS risk seviyeleri, CVSS standards guide dokümanına göre hesaplanabilir.
Bu işlem için CVSS Calculator denilen online arabirimler bulunmaktadır.
Türkçe olarak hazırladığım CVSS Risk Seviyesi Hesaplayıcıya buradan ulaşabilirsiniz.