16 Mayıs 2013 Perşembe

Yeni Nesil Bilgisayar Zararlılarıyla Mücadelede Windows Firewall'dan Yararlanma - Nass oluyor da oluyor?


Türkçe

Malware (Malicious Software),1970'li yıllardan bu yana varlıklarını sürdüren, bilgisayarınıza bilginiz dışında bulaşan,kurulan ve çalışan virus,solucan,truva atı,adware,bot gibi kötü amaçlı yazılımlar için kullanılan genel bir terim. Başlangıçta sadece zarar verme,bozma,eğlenme  amacıyla hazırlanıp yayılan bu uygulamalar uzunca bir süredir fayda elde etme,çoğunlukla parasal çıkar sağlama dürtüleriyle yazılıyor ve çeşitli yollarla kullanıcı bilgisayarlarına bulaştırılıyor. Gelişen bilgisayar teknolojisiyle birlikte neredeyse her dilde ve platformada bilgisayar zararlısı yazmak mümkün. Ve yine bilgisayarın yaygın kullanımıyla birlikte,zararlı yazma yaşı sigara kullanma yaşı gibi düştü, 0 programlama diliyle bile bilgisayar zararlısı hazırlamak (google "virus creation kit"),isteğe bağlı zararlılar hazırlatabilirsiniz,siz yeter ki paradan haber verin.Bu yazıda zararlıların bilgisayarınıza bulaşmasını nasıl engelleyebileceğiniz anlatılmayacak,beklentiniz buysa daha fazla okuyup zaman kaybetmeyin.

Mevzu çok derin olduğu için boğulmadan,kaybolmadan biraz da yeni nesil zararlılardan bahsederek yazının özüne dönmek istiyorum. Yeni nesil bilgisayar zararlıları da artık büyük yazılım projeleri gibi ekipler halinde-zaman zaman devlet desteği ile- modüler bir yapıda hazırlanıyor,değişiklik yönetimi gibi yazılım geliştirme yöntemleri kullanılıyor. Bilgisayarınızın etinden sütünden faydalanmak için ne gerekiyorsa yapılıyor (bakınız), parolalarınız çalınıyor,lisanslı programlarınızın anahtarları kopyalanıyor,dokunduğunuz her tuşu kaydediyorlar,web cam'inizden izleniyorsunuz,bilgisayarınız başka bilgisayarlara saldırı yapmak için kullanılıyor,bunlardan hiçbiri yapılmadığında bile boş duran bilgisayarınız dijital dünyanın para birimini (bitcoin) üretmek için çalışıyor. Kendilerini güncelleyebiliyor,yamalayabiliyorlar. Anti-zararlı (antivirus,antitrojan vb) yazılımların zararlı ile mücadelede her geçen gün biraz daha geride kaldığını hepimiz farkediyoruz. Kullandığımız yazılımları güncel tutmak da yeterli olmuyor. Ne yaparsak yapalım zararlılar bir şekilde,bilgisayarımızda kurulu 10'larca uygulamanın herhangi birindeki ifşa olmamış (0day) açığı kullanarak bilgisayarlarımıza bulaşıyorlar. Her ne kadar fonksiyonalite farklılık gösterse de hemen hemen tüm zararlılar artık Komuta&Kontrol (C&C) merkezi denen sunuculardan gönderilen ya da edinilen emirler ile merkezi olarak yönetiliyor. Zararlı ve Komuta Merkezi arasındaki haberleşme ise genellikle,hemen her bilgisayarda dış dünyaya açık ve filtrelenmediği için, -kimi zaman sertifikalarla ya da şifreleme yöntemleri ile - http/https portu üzerinden sağlanıyor. Bir zamanlar iletişim için kullanılan IRC portları eskisi kadar rağbet görmüyor.

Bu yazıda bizi ilgilendiren kısım da kurban ve saldırgan arasındaki bu iletişim,felsefemiz ise "madem zararlının bilgisayarımıza bulaşmasının önüne geçemiyoruz ve anti-zararlı üreticileri mücadelede yeterince etkin ve hızlı değil,o halde ağlamak sızlanmak yerine saldırganın amacına ulaşmasını engelleyelim". Bunu da yeni nesil zararlıların bilgisayarımızda ele geçirebileceği verilerinizi,bilgilerinizi saldırgana ulaştırmasını engelleyerek yapabiliriz. İhtiyacımız olan binlerce dolarlık ya da açık kaynak kodlu ürünler değil, elimizin altında,çoğumuzun adamdan saymadığı, ağız yüz buruşturduğu Windows Firewall'u sunucularda ve özellikle istemci bilgisayarlarda aktif kullanma cesareti.

Windows Firewall (WF) Windows 7 ve Windows 2008'den bu yana "Windows Firewall with Advanced Security" ismiyle küçük bir evrim yaşadı ve inbound-outbound trafiği kontrol altına almak, komut satırından ve grup politikalarıyla yönetmek daha kolay bir hal aldı. Her ne kadar XP'den beri işletim sistemiyle kurulu halde gelse de -özellikle kurumlarda- aktif olarak kullanılmadı. Bunun en önemli nedeni de WF'in kolay sorun giderme yöntemleri sunmamış olması, kullanıcı bilgisayarlarında karşılaşılan sorunların büyük kısmının WF'den kaynaklanması (bkz Windows 2008 R2 Firewall Derin Dalış ve Sorun Giderme - Nass oluyor da oluyor?). Öyle ki, artık "Check that windows firewall is off" gibi uyarı cümleleri çoğu uygulamanın sorun giderme ve kurulum klavuzlarının ilk sıralardaki yerini aldı, WF sorun yaşandığında kontrol edilen ilk şeylerden biri olmaya başladı. Sistem yöneticileri WF'a ince ayar yapmaktansa kökten kapatmayı tercih ettiler.WF'e olan inancını kaybetmeyenlerin çoğu ise "On" kutucuğunu seçmiş olmanın verdiği huzur ve rahatlıkla işlerine devam ettiler.

Windows Firewall aktif hale getirilmiş ("On") olsa bile varsayılan (default) haliyle sadece dışarıdan içeriye (inbound) izin verilmemiş trafiği engeller. Yani bilgisayarınızdaki bir uygulama,servis,proses dış dünya ile x portundan iletişime geçmeyi talep etmedikçe, dış dünyadan gelen ve bilgisayarınızın x portunu hedef alan her paket engellenir. Statefull firewall en kötü haliyle bu şekilde tarif edilebilir :D Ama varsayılan ayarıyla WF içerden dışarıya (outbound) hiç bir erişimi engellemez. Bu da şu demek oluyor; bilgisayarınıza ya da kullanıcı bilgisayarına bulaşan her zararlı -network firewall,router,switch- engellemediği sürece dış dünya ( komuta&kontrol merkezi,saldırgan,DDoS hedefi vb) ile özgürce iletişim kurabilir. Bu nedenle WF kullanacak cesareti topladıysanız varsayılan bu ayarı değiştirin ve WF kurallarıyla izin verilmeyen her türlü trafiği/iletişimi engelleyin,bunu yapmadığınız sürece "Outbound Rules" başlığı altındaki erişime izin veren kuralların hiçbir önemi olmaz,siz engelleneceğini özellikle belirtmezseniz erişime zaten izin verilecektir. ( Resim 1)

Resim 1

Tebrikler, artık tanımlı kurallarla izin verilenler hariç ( ön tanımlı kurallar Resim 2'de) dışarı doğru tüm erişimi engellediniz,web erişiminizi de :) ,bu yüzden tarayıcılarınızla gezinti yapamazsanız paniklemeyin. Proxy kullanıyorsanız proxy'nizin ilgili portuna, proxy kullanmıyorsanız 80,443 portlarından outbound erişime izin veren kurallar tanımlamalısınız. Bunu yaparken "Program" ismini belirtmek çok önemli. Program ismi belirtmezseniz Windows izin verdiğiniz port üzerinden her uygulamanın (ve olası her zararlının) erişimine izin verecektir. Tarayıcınız Internet Explorer ise Resim 3'deki gibi tanımlayacağınız bir kural 80 portuna sadece internet explorer'ın erişimine izin verecek,bilgisayarınıza bulaşması olası ya da bulaşmış zararlıların 80 portunu kullanarak komuta&kontrol merkezleriyle ya da saldırganlarla iletişim kurmasını,yeni saldırı komutları almasını ya da kişisel bilgilerinizin gönderilmesini engelleyecektir.Çünkü zararlılar dış dünyayla iletişim için TCP/IP stack'i gibi mimari bileşenleri,kütüphane ve fonksiyonları kullanır ama bilgisayarınızda kurulu ve kullanılan meşru uygulamaları genellikle kullanmazlar,en azından şimdilik. Dolayısıyla "iexplore.exe" sahte isimli bir zararlı veya zararlı bileşeni Görev Yöneticinizde dikkatinizi çekmeyebilir ama WF yukarıda tarif edildiği şekilde tanımlı bir kural ile zararlının önemli bir fonksiyonunu engellemiş olacaktır.

Resim 2

Resim 3

Zararlıların topladığı,ele geçirdiği verilerinizi merkezi depolama sunucularına göndermek için ftp gibi protokolleri de kullandığını aklınızdan çıkarmayın ve aynı hareketi bu ve benzeri protokoller için de tekrarlayın.Protokolü veya portu kullanacak programın ismini belirtmeyi unutmayın.Şunu da belirtmeden yazıyı sonlandırmamayım,chrome gibi bazı uygulamalar çalıştırılabilir dosyalarını (executable) "Program Files" gibi belirli bir klasör yerine, "UserProfile" ismiyle ifade edilen ve bilgisayarda oturum açmış kullanıcı hesabına ait dosya ve klasörlerin bulunduğu dizinlere ( C:\Users\user_name\ şeklinde) kopyalayabiliyor. WF değişkenlik gösteren bu dizinlerin belirtilmesi için, Resim 4'deki gibi  %USERPROFILE% çevre değişkeninin kullanılmasına izin verse de pratikte bu değişken kullanılarak tanımlanan uygulamaya izin vermiyor, diğer bir deyişle Resim 3'deki gibi erişim izni verilen chrome tarayıcısı kendisi için tanımlanan bu kuraldan faydalanamıyor, WF'in bir bug'ı. Bu da çalıştığınız kurumda bu tip uygulamalar kullanılıyorsa sizi WF kuralları tanımlarken zor günler bekliyor demek :)

Resim 4

Her zaman olduğu gibi, görüşlerinizi yorum olarak ekleyebilirsiniz..

İlgili Yazılarım
Windows 2008 R2 Firewall Derin Dalış ve Sorun Giderme - Nass oluyor da oluyor?

English

The term "Malware" is used for malicious software like viruses,worms,trojans,adware,bots which are existent since 1970's. Although they were being made and spread for malicious intents like harm,distruct,damage and fun in the beginning,recently monetary reasons and making profit of personal information is the reason. Together with tremendous progress in computer science and technology,it's nearly possible to write malicious code for and all platforms and languages. Widespread use of personal computers also led to decrease in malicious coding age as smoking and even with zero knowledge of programming it's possible to make malicious programs using "virus creation kits" (just google it) or having custom malicious programs made in return of money. The subject of this blog post is not "Preventing malware from infecting your computers",so you better not read any longer and lose time if it's what you expected.

I'd like to write a little about rising generation of malware before diving deep into the subject.Recent malware in the wild -like many enterprise software projects- are developed by teams,from time to time state/agency sponsored,have modular form and software development methodologies like change management and versioning is widely used.Whatever needed is done,added as a functionality to make use of your computer and data it holds (ref), your passwords are stolen,license keys of your legit software are copied,your key strokes are logged,webcams are controlled,your computer is used as a zombie to attack other computer systems,bitcoins are mined when your computer is idle at best. Malware are capable of updating,patching,upgrading themselves. We are aware that anti-malware products are lagging behind in the fight against and distance in between is steched out day by day. Keeping the software we use up to date is not enough. Malware infects our computers using 0-day exploits in one of tens or hundereds of software we install and use,no matter what precautions we take.Albeit functionality differs, majority of recent malware are centrally controlled by commands polled or pushed from central locations called Command&Control (C&C) Servers. Encrypted or not,communication between malware and C&C servers flows through -generally open and unfiltered- ports like http/https. IRC channels which were once popular are not preferred anymore.

In this particular blog post we are interested in this communication channel between victim and attacker,that is malware and C&C,and our philosophy is "since we can not prevent malware infection and anti-malware vendors are not agile and effective enough,than we should prevent the attacker from reaching his goal". And we shall accomplish this by blocking the communication path malware that is trying to send our personal and/or financial data out to the attacker is using. We do not need neither thousand dollar nor hard to implement and manage open source products.Only thing we will need is the courage to use Windows Firewall -a feature that never earned the respect it deserved- at hand effectively on servers and specially on clients.

Windows Firewall (WF) is evolved a bit with the name "Windows Firewall with Advanced Security" since Windows 7 and Windows 2008, and made it easier for us to control inbound-outbound traffic,manage via command line and group policies. Although it's been installed default together with OS since XP,it's not used effectively. According to me, the most important reason is the lack of troubleshooting tools (ref Windows 2008 R2 Firewall Derin Dalış ve Sorun Giderme - Nass oluyor da oluyor?) for WF and the fact that a majority of client pc problems stem from turning WF "On". So that, many proprietary or third party software contained phrases like "Check that windows firewall is off" on the top of the list in their manuals,troubleshooting steps.WF became number one suspect and first thing to check for any and all of the problems. As a result,systems administrators prefered to turn WF "Off" instead of fine tuning it. Those who did not lose faith in WF, left the checkbox "On" ticked, without knowing it did not provide complete security and filtering as a whole.

Even when Windows Firewall is activated (turned "On"),by default it will only block inbound traffic which is not explicitly allowed. That is to say, ibound packets destined for port X on your computer are blocked as long as an application,service or process did not request communication. This is probably the worst definition of stateful firewall :D On the other hand by default WF does not prevent,block or deny outbound traffic. Malware infecting your computer is also free to communicate outbound with default WF settings (C&C servers,attacker or DoS target) as long as network firewall,router or switch does not filter. That's why you need to change default setting of allowing outbound traffic and prevent outbound communication of all processes,applications which are not explicitly permitted.Firewall rules defined in "Outbound Rules" node will not have any effect and will ve meaningless unless you block outbound traffic by default. (Figure 1)

Figure 1

Congrats,you now have all the outbound traffic other than the ones explicitly allowed ( default rules are shown in Figure 2) blocked,including web access :), so do not panic if you are not able to surf the internet using your browser. You need to define outbound rules allowing access to your proxy port if you are using any,or ports like 80,443 if you are not using proxy.The important point in defining outboung rules is to specify "Program" name together with the rule. If you do not specify any program name,Windows will allow traffic destined for the port in the rule from all sources of applications,processes including potential malware.In case you are using Internet Explorer as browser,an outbound rule as shown in Figure 3 will allow only the reach of Internet Explorer to http port 80 and block whatever (malware trying to get to C&C,attacker or trying to leak your personal or financial info) trying to connect outbound using port 80.That's because malware use components like TCP/IP stack,libraries,functions to function and not legitimate applications,at least until now.So,although a malware executable named "iexplore.exe" would not attract your attention in your Task Manager, WF would block its outbound connection as far as you have or defined a rule like one told above and shown in Figure 3.

Figure 2

Figure 3

Bearing also in mind that malware also uses similar wide use and unfiltered protocols like ftp to transfer the data it collected on your computer or to poll new commands from the central management server, define similar outbound rules for each and every suspect port specifying the program/application name.Nearing to the end of the post, i would also like to mention a bug in WF. Google chrome like applications may place executables under user specific folders (C:\Users\user_name\) which are referred to as "UserProfile",instead of "Program Files" folder. Even though WF permits the use of environment variable names like %USERPROFILE% in rule definitions (Figure 4) to specify application directories,practically it does not act on the rule as expected.In other words, Windows does not permit outbound connection of chrome browser even if there is a rule defined as in Figure 3. This will probably make you sad defining firewall rules if you have such kind of applications in your environment.

Figure 4


Related Posts
Windows 2008 R2 Firewall Derin Dalış ve Sorun Giderme - Nass oluyor da oluyor?

Hiç yorum yok:

Yorum Gönder