• Sonuç bulunamadı

Kullanıcı Dostluğu vs Kullanıcı Güvenliği

N/A
N/A
Protected

Academic year: 2022

Share "Kullanıcı Dostluğu vs Kullanıcı Güvenliği"

Copied!
25
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Kullanıcı Dostluğu vs Kullanıcı Güvenliği

Hemen hemen her bilişim güvenliği uzmanı (janjanlı adıyla siber güvenlik uzmanı) çalışma hayatı boyunca ilettiği güvenlik gereksinimleri, aksiyonlar nedeniyle şu cümleleri en az bir defa duymuştur, “Bu zamana kadar başımıza ne geldi ki ?”, “Buna gerçekten gerek var mı ?” Bu yaklaşımın aslında bu zamana kadar trafik kazası yapmamış bir kişinin aracındaki güvenlik donanımını sorgulamasından pek bir farkı yoktur. Bu hava yastığına gerçekten gerek var mı ? Bu emniyet kemerini takmasam olur mu ? Rekabetçi bir ortamda zaman zaman geliştirilmesi talep edilen güvenlik kontrolleri, alınması gereken güvenlik önlemleri, iş birimleri tarafından maliyet ve süre arttıran adımlar olarak görülebilmektedir. Kimi zaman ise mevcut güvenlik kontrolleri, müşteri

memnuniyetini ve kullanım kolaylığını arttırma adına isteyerek veya istemeden zayıflatılabilmektedir. Özellikle bu tür zayıf noktalara şifremi hatırla, şifremi unuttum gibi sayfalarda rastlanabilmektedir.

Hatırlayacağınız üzere geçtiğimiz yazımda, bir sohbet üzerine incelemeye başladığım modemim üzerinde güvenlik adına sıkıntı yaratabilecek bazı tespitlerimi paylaşmıştım. Bu yazımda da, modemim üzerinde çalışmalar

yaparken tesadüfen karşılaştığım ve internet hizmeti aldığım internet servis sağlayıcısı (ISS) ile paylaştığım bir güvenlik zafiyetini, güvenlik

farkındalığını arttırmak amacıyla sizlerle paylaşma kararı aldım.

Çalışmalar esnasında modemi fabrika ayarlarına döndürdüğümde ISS’in beni şifre unuttum sayfasına yönlendirdiğini gördüm. Bu sayfada, ISS’in hazırlamış olduğu uygulamayı indirip, çalıştırmam durumunda, modemimin ADSL kullanıcı adı ve şifre bilgilerimin bu uygulama tarafından otomatik olarak modeme girileceği bilgisine yer veriliyordu.

(2)

Yazımın başında da belirttiğim gibi bu tür otomatik şifre hatırlama, şifre girme gibi kullanıcı dostu araçlar, güvenli tasarlanmadığı taktirde güvenlik zafiyetlerine yol açabildiği için uygulamayı sistemime indirip, Immunity Debugger ve Charles Proxy araçları ile kısaca incelemeye karar verdim.

Uygulamayı çalıştırdıktan sonra ilk olarak Charles Proxy aracı ile ağ trafiğini incelediğimde, uygulamanın bilgi.xxxxx.com.tr sunucusu ile

haberleştiğini ve bu sunucudan şifreli bir içerik aldığını gördüm. Uygulama üzerinden Başlat butonuna bastıktan sonra ise uygulamanın ISS’in hediye

olarak verdiği belli başlı marka, model modemlerin yönetici (admin) arayüzüne varsayılan (default) kullanıcı adı ve şifreler ile bağlanmaya çalıştığını gördüm. Yönetici paneline başarıyla giriş yapamadığı taktirde ise doğru kullanıcı adımı ve şifremi girmemi istiyordu.

(3)
(4)

Uygulamayı incelemeye devam ettiğimde, uygulamanın sunucudan indirdiği şifreli içeriği, dosya sistemi üzerinde configdata.xml adı altında bir dosyaya şifreli olarak kaydettiğini gördüm.

(5)

Bu uygulamanın doğru ADSL kullanıcı adı ve şifremi nasıl indirdiğini ve bu bilginin bu şifreli dosya içinde yer alıp almadığını öğrenmek için uygulamayı Immunity Debugger ile incelemeye başladım. Web trafiği ile ilgili

fonksiyonları biraz inceledikten sonra indirilen bu şifreli içeriğin aslında hangi marka model modemlere, hangi varsayılan yönetici (admin) kullanıcı adı ve şifre ile bağlanacağı bilgisi olduğunu gördüm. ADSL kullanıcı adım ve şifrem ile ilgili olan fonksiyonu aramaya devam ederken çok geçmeden

sunucudan şifreli bilgiyi alan ilgili fonksiyonu buldum. İncelemem sonucunda, ADSL kullanıcı adımın ve şifremin, uygulama tarafından çağrılan

GetConfigFile.ashx sayfasına, sunucu tarafından dönülen yanıtta yer alan ParamHeader başlığında şifreli olarak yer aldığını gördüm. İlk dikkatimi çeken sıkıntılı nokta, uygulamayı çalıştırıp Başlat butonuna basmasam bile, bu uygulama gidip bu isteği otomatik olarak sunucuya gönderiyor ve şifreli ADSL kullanıcı adı ve şifremi sunucudan alıyordu. Bu durumu, PİN/Şifre koruması devrede olmayan cep telefonunuzu çaldırdığınızda, art niyetli kişinin cep telefonunuzdan bankanızın çağrı merkezini arayıp herhangi bir doğrulama adımından geçmeden kredi kartı veya bankamatik kartınızın PİN’ini öğrenebilmesine benzettim.

Sistemime bulaşmış bir zararlı yazılımın, şifreli ADSL kullanıcı adı ve şifremin açık/şifresiz haline ulaşmasının ne kadar kolay olup olamayacağını öğrenmek için bu defa uygulamanın aldığı şifreli bilgiyi çözen (decrypt) ilgili fonksiyonu aramaya başladım ve çok geçmeden fonksiyonu buldum. Zararlı yazılımın şifremin açık halini ele geçirmesinin ne kadar kolay olabileceğini anlamak için izleyebileceği yollar üzerine biraz düşünmeye başladım. Aklıma gelen ilk üç yol; 1-) Şifre çözme fonksiyonunun algoritmasını anlayıp, başka bir programlama diline çevirecek 2-) Code cave yöntemi ile akışı kodun farklı bir yerinde oluşturduğu koda gönderecek 3-) Uygulama üzerinde diske veri

(6)

yazmak için kullanılan API’ler (WriteFile, CreateFile) var ise uygulama

yamalanarak (patch), şifrenin çözülmüş halinin bu API’lere yönlendirilecek ve şifreli bilgiler açık olan diske yazılacak

Amacım olası güvenlik zafiyetini tespit etmek ve durumu ISS’e bildirmek olduğu için kolay yolu yani 3. yolu seçmeye karar verdim. Uygulamanın sunucudan şifreli bilgileri aldığını ve bunu configdata.xml dosyasına kaydettiğini bildiğim için şifresi çözülen bu bilgileri configdata.xml dosyasına yazan fonksiyona yönlendirdim ve uygulamayı bu haliyle diske kaydettim. Yamalanmış uygulamayı çalıştırdığımda artık uygulama şifreli bilgileri sunucudan alıyor ve diske kaydediyordu.

ISS tarafından kullanıcı dostu olarak müşterilerinin hizmetine sunulan bu uygulama aslında istemeden de olsa art niyetli kişilerin (örneğin ortak şifre ile cafeden kablosuz ağ kullanan bir kişi) veya zararlı yazılımların

(7)

kullanıcının ADSL hizmet numarası, adsl kullanıcı adı ve şifresine kolaylıkla ulaşabilmesini sağlıyordu. Vakit geçmeden, POC için çektiğim video da dahil olmak üzere elimdeki tüm bilgileri ISS ile paylaşarak zafiyet bildiriminde bulundum ve bir zafiyet daha art niyetli kişiler tarafından kötüye

kullanılmadan önce tespit edilmiş oldu.

Bir sonraki yazıda görüşmek dileğiyle herkese güvenli günler dilerim.

Şeytan Ayrıntıda Gizlidir

19 Aralık 2012 tarihinde birçok banka müşterilerinden gelen ihbarları

değerlendirmek ile güne başladı. Aynı anda sosyal medyada ve NetSec bilişim güvenliği e-posta listesinde Turkcell ve Vodafone’dan gönderildiği ve ekinde zararlı yazılım bulunduğu öne sürülen e-postalar yer almaya başladı.

24 Aralık 2012 tarihinde ise bu defa THY’den gönderildiği ve ekinde zararlı yazılım bulunduğu öne sürülen e-postalar gündemi meşgul etmeye başladı.

(8)

E-postaların başlık bilgileri incelendiğinde e-postaların Turkcell ve THY’den gönderiliyormuş gibi gösterilmeye çalışıldığı anlaşılıyordu. Fakat dikkatlice bakıldığında son adımda e-postanın Tayvan’da ki bir sunucudan alınmış olduğu bu nedenle başlık bilgilerinin manipüle edildiği açıkça anlaşılıyordu.

Ardından bazı web sitelerinde ve NetSec bilişim güvenliği e-posta listesinde zararlı yazılım üzerinde yapılan kısa analizlere yer verildi ve bu

analizlerde zararlı yazılımın trojan olmadığı, çalıştırıldıktan sonra 8000 numaralı bağlantı noktasında (port) dinlemeye geçtiği ve bu bağlantı

noktasından sisteme bağlanan kişilere komut satırı erişimi (shell) verildiği belirtiliyordu.

(9)

Emek ve zaman harcandığı açıkça belli olan profesyönelce hazırlanmış iki farklı sahte e-posta ve sadece çalıştırıldığı sistemde 8000 numaralı bağlantı noktasında komut satırı erişimi veren zararlı bir yazılım ? Muhtemelen

okurken size de inandırıcı gelmeyen bu senaryo bana da hiç inandırıcı gelmediği için sahte THY e-postasında yer alan zararlı yazılıma kısaca göz atmaya karar verdim. Özellikle yazılım seviyesine inilmeden sistem

seviyesinde yapılan analizler, zararlı yazılımın sanal makine, debugger, sandbox tespitine yönelik kontroller içermesi durumunda farklı sonuçlar ortaya çıkarabilmektedir bu nedenle yazılım seviyesine inilmeden yapılan bir analiz sonucuna göre bir karara varmak çok doğru değildir. Yazılım seviyesine inilse dahi kimi zaman yanılma payı olabilmektedir.

Immunity Debugger aracı ile zararlı yazılımı analiz etmeye başladığımda ilk dikkatimi çeken Immunity Debugger tarafından karşıma çıkan şüpheli uyarı mesajları oldu.

Ardından bir Anti Debugging tekniği olan ve zararlı yazılımlarda sıkça

(10)

karşılaşılan SetUnhandledExceptionFilter dikkatimi çekti. Normalde bir yazılım çalışma esnasında ortaya çıkabilecek potansiyel hataları, istisnai durumları tespit eder ve ona göre aksiyon alır ancak öngörülemeyen hatalar için bir yazılımcı SetUnhandledExceptionFilter filtresi ile öngörülemeyen hataların da tespit edilmesini ve buna göre aksiyon almasını sağlayabilir.

Hata ayıklayıcı (debugger) ile çalıştırılan bir yazılımda ise debugger yazılımın çalışması esnasında ortaya çıkan hataları, istisnai durumları kendisi yönetmeye çalışır. Bunu bilen zararlı yazılım geliştiricileri de bu filtreden faydalanarak sayısal hatalara yol açacak bir kod parçası çalıştırır ve bu hatayı bu filtrenin ayıklamasını ve yazılımın akışına devam etmesini sağlar. Ancak bunu bilmeyen bir hata ayıklayıcı böyle bir hata ile

karşılaştığında yazılımın akışını devam ettiremez ve yazılım çökmüş olur kısaca SetUnhandledExceptionFilter ile debuggerlar bu şekilde devre dışı bırakılmaya çalışılır.

Bu adımları geçtikten ve zararlı yazılımın paketlenmiş (packed) bölümlerini açtığını farkettim.

(11)
(12)
(13)
(14)
(15)

Son adımlara yaklaşırken zararlı yazılımın işletim sistemi üzerinde çalışan potansiyel güvenlik yazılımlarını atlatmak için runPE (hafızadan işlem (process) çalıştırma) yöntemini kullanmak için hazırlık yaptığı

anlaşılıyordu.

(16)

Biraz daha ilerledikten sonra zararlı yazılımın paketinden çıkarmış olduğu işlemi (process) kontrol ettiğini farkettim ve diske kayıt edip, HEX editor ile fazlalık kısımları temizleyip Immunity Debugger ile çalıştırdım ve incelemeye başladım.

(17)
(18)

İlk dikkatimi çeken 004010C6 fonksiyonu ile işlemlerin (processes) teker teker hashini alıp ardından ön tanımlı işlemlerin hashleri ile kıyasladığını farkettim. Belli ki yazılımı geliştirenler bazı yazılımları kara listeye

(19)

almışlardı. Zararlı yazılımı VMWare içinde çalıştırdığım için vmwareuser.exe yazılımının kara listede olduğu hemen anlaşılıyordu. Ancak biraz çatlak olduğum için hangi yazılımların kara listede yer aldığını öğrenmek için Python ile http://www.processlibrary.com/ adresinde kayıtlı olan tüm

işlemlerin (processes) listesini oluşturan ufak bir araç hazırladım ve hash fonksiyonunu bire bir Python kodu ile oluşturarak tüm işlemleri bu araçtan geçirerek kara listede yer alan tüm yazılımları (netmon.exe, procmon.exe, sandboxiedcomlaunch.exe, sandboxierpcss.exe, vboxservice.exe, vboxtray.exe, vmwareservice.exe, vmwareuser.exe, wireshark.exe) tespit ettim.

Bunun dışında zararlı yazılımın sbiedll.dll ile Sandboxie yazılımın sistemde yüklü olup olmadığını, vmware, vbox gibi sanal makinede çalışıp

çalışmadığının kontrolü, qemu öykünücü (emulator) kontrolü ve RDTSC yönergesi (instruction) ile yönergeler arası geçen sürenin kontrolü ile kum havuzu ve

(20)

hata ayıklıcı kontrolü yaptığını tespit ettim.

Zararlı yazılım bu kontrollerden herhangi birine takıldığı taktirde kendisini

%ALLUSERSPROFILE% ortam değişkeninde (environment) yer alan klasöre kopyalamakta ve sistem yeniden başlatıldığında çalışabilmek için kayıt defterinde

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\SunJavaUpdateSched anahtarı oluşturmaktadır. Çalıştığı zaman da hem e-posta hem de web sitelerine konu olduğu gibi 8000. numaralı bağlantı noktasında (port)

dinlemeye geçmekte ve bu bağlantı noktasından sisteme bağlanan kişilere komut satırı erişimi (shell) vermektedir.

(21)
(22)
(23)

Ancak bu zararlı yazılım, kontrollerden herhangi birine takılmaz ise 32 bit işletim sisteminde windows\system32 klasörü altında wuauclt.exe dosyası yaratmakta, 64 bit işletim sisteminde ise windows\syswow64 klasörü altında svchost.exe dosyası yaratmakta (windows file protection izin verirse), çalıştırmakta ardından kendisini bu işleme (process) enjekte ederek diğer faza geçmektedir. Son fazda ise sisteme bankacılık zararlı yazılımı

bulaştırarak Zeus ve Spyeye’dan bildiğimiz gibi kullanıcının cep telefonuna da zararlı yazılım göndererek internet şubesini kullanan kullanıcının

kullanıcı adını, şifresini ve sms doğrulama kodunu çalarak müşterilerin hesabını boşaltmaya çalışmaktadır.

(24)

Sonuç olarak yazının başında da bahsettiğim üzere yazılım seviyesine inilmeden sistem seviyesinde yapılan analizler, zararlı yazılımın sanal makine, debugger, sandbox tespitine yönelik kontroller içermesi durumunda farklı sonuçlar ortaya çıkarabilmektedir bu nedenle zararlı yazılım hakkında kesin bir sonuca varmak için mutlaka ama mutlaka yazılım seviyesinde de analiz yapılması gerekmektedir.

Türkiye’deki banka müşterilerini hedef alan bu zararlı yazılım ile ilgili daha fazla bilgi almak için Tübitak BİLGEM tarafından yayınlanan analiz yazısını da okumanızı öneririm.

Bu vesileyle herkesin yeni yılını kutlar, 2013 yılının herkese önce sağlık sonra güvenli günler getirmesini dilerim.

Not: Her ne kadar bu zararlı yazılım Tübitak BİLGEM’in yayınlamış olduğu analiz yazısında Zeus’un bir türevi olarak yer almış olsa da Zemana

firmasından Emre TINAZTEPE‘nin yapmış olduğu bir açıklamaya göreye zararlı yazılım kimi zaman Zeus kimi zaman ise Cridex olarak son kullanıcının sistemine yüklenmektedir. Daha detaylı yeni analiz raporları/yazıları

(25)

yayınlandıkça bu zararlı yazılım hakkında daha net bilgilere sahip olacağımıza inanıyorum.

Referanslar

Benzer Belgeler

Çalışmanın Özgünlüğü: Bu bölümde çalışma konusu ile ilgili eğitim literatüründe yer alan kuramsal bilgilere, benzer çalışmalara değinilecek, çalışmanın

İlgili Anabilim/Anasanat Dalı tarafından size yapılan duyuruda ilan edilen tarih ve saatte çevrimiçi mülakata katılmak için;. 1- Sayfanın sol tarafında Meetings

Bilgi kaybını önlemek için çalışmanızı kaydedin ve pili çıkatmadan önce Hazırda Bekletme modunu başlatın veya aygıtı Windows üzerinden kapatın.. Pili

DİKKAT Tek güç kaynağı durumundaki pili çıkarırken oluşabilecek bilgi kaybına engel olmak için, pili çıkarmadan önce hazırda bekletme modunu başlatın veya

Bilgi kaybını önlemek için pili çıkarmadan önce çalışmanızı kaydedin ve Hazırda Bekletme durumunu başlatın veya Windows üzerinden bilgisayarı kapatın1. Pili

Satın alan veya operatör iletişim için cihazların çıkışındaki maksimum güce göre burada aşağıda önerildiği gibi RF (vericiler) ve sistem iletişimi için taşınabilir

Bizi TAKİP ETMEYE.

 Netsim ana paket Günce bitiş tarihinden önce modül ve kullanıcı satın alınması durumunda, modül ve kullanıcı Günce bedelleri ana paket Günce bitiş tarihine