Archive for the ‘ Yazılım ’ Category

Bildiğiniz gibi Ado.net’ te bir adet connection nesnesi, bir adet command nesnesi veya dataadapter nesneleri kullanılır. Her bir işlem için ayrı ayrı bu nesnelerden açılır. Ama Ado.Net 2.0’in getirdiği yenilikler içerisinde bulunan Mars bize tek bir connectiondan aynı anda işlem yapmamıza izin veriyor.
Şöyle örneklersek eskiden:

dim conn as new sqlconnection(”server=.;database=test;integrated security=true”)
dim comm as new sqlcommand(”select * from tablo1″,conn)
dim comm2 as new sqlcommand(”select * from tablo2″,conn)
dim comm3 as new sqlcommand(”select * from tablo3″,conn)

conn.open()

comm.executereader

conn.close()

conn.open()

comm2.executereader

conn.close()

 conn.open()

comm3.executereader

conn.close()

 

veya butun command nesnelseri için ayrı ayrı connection oluşturulurdu.

Mars ile bu işlem şöyle kısaltıldı tek bir connection açıkken aynı anda diğer command lar çağırılabilecek. Şöyleki bu hem bizi zamandan tasarruf ettiricek hemde veri çekme dahdada hızlanacak.
Anahtar kodumuz ise  MultipleActiveResultSets=true
Örneklersek:

dim conn as new sqlconnection(”server=.;database=test;integrated security=true; MultipleActiveResultSets=true”)

dim comm as new sqlcommand(”select * from tablo1″,conn)
dim comm2 as new sqlcommand(”select * from tablo2″,conn)
dim comm3 as new sqlcommand(”select * from tablo3″,conn)

conn.open()

comm.executereader

comm2.executereader

comm3.executereader

conn.close()

 

Evet görüldüğü üzere tek connection açık ve command nesneleri buradan besleniyorlar. Buda bize hız ve zaman kazandırıyor. Anahtar kod ise:  MultipleActiveResultSets=true

 

Yazar: Aras Çağlıuzun

 

 

Merhabalar

Png dosyalarına css ile pozisyon verip bu resimlerin istediğimiz yerini kordinatlarla gösterebiliriz.
örnek olarak Google’ da arama yaptıktan sonra, çıkan sayfanın logosuna baktığınızda, aslında bir logoda birden fazla resim içeriği bulacaksınız.

google png
Yukarıda görüldüğü gibi En üstte bir adet yanında yon button img leri bulunan bir logo var ki bu arama yaptığınız sayfanın en altında Goooooooogle gibi uzuyan kısım onun altındada sol üst köşede gözüken ana logo var..
Aslında google css içine top:-26px ve left: 0 px satırlarını ekliyerek uzayan logoyu, yukarıdan -26 kadar yukarıya çekerek sadece ana google logosunun görünmesini sağlıyor.

Peki nasıl mı?

öncelikle css i hazılıyalım..

#logo{

          display:block;
          overflow:hidden;
          position:relative;
          width:150px;
          height:52px;
          margin:14px 0 7px}

#logo img{
          border:none;
          position:absolute;
          left:0;
          top:-26px}

Yukarıdaki css’ de #logo da önemli olan 2 unsur var  birtanesi overflow ötekisi ise position. 

 

overflow: Türkçeye taşmak(overflow) olarak çevirdiğimiz bu özellik sınırlarını belirlediğimiz kutu elementinin içeriğinin sınırları aşması durumunda nasıl davranacağını bildiren bir özelliktir. Özelliğe atanan değerleri tek tek incelersek.

  • inherit - kalıtsallık üst elementin değerini alabilir
  • visible - kutu sınırları dışına taşan alanları göster
  • hidden - kutu sınırları dışına taşan alanları gizle.
  • scroll - kutu sınırlarını taşan kısmı kaydırma çubuğu ile ulaşmamızı sağlar.
  • auto - kutu sınırlarını aşması durumunda scroll ile aynı etkiyi yapar.  

 

#logo’ da  bir width:150px olan ve  height:52px; olan bir kutucuk var ve bu kutucuğun dışında kalan yerler overflow:hidden; ile gizlenecek.

Önemli olan diğer unsur ise Position.

position: divleri veya diğer nesneleri istediğimiz gibi yerleştirmek bir başka deyişle pozisyon vermek için kullanılır.

Positionun komutları:

absolute ( mutlak, şartsız )
Nesneyi tarayıcı penceresinin orjinleri baz alınarak pozisyon vermek için kullanılır.

fixed ( sabit, oynamaz )
Nesneyi tarayıcı penceresinin orjinleri baz alınarak sabitlenmek için kullanılır. Yani scroll ile sayfa aşağıya kaydırıldığında nesnede hareket ederek tarayıcıdaki yerini her zaman korur. IE 7 için geçerlidir…

relative ( ilgili, göreceli )
Nesneyi sayfadaki mevcut yeri baz alınarak pozisyon vermek için kullanılır.

static ( statik )
Nesneye pozisyon verilmeyeceğini belirtir. Verdiğimiz pozisyon değerleri göz ardı edilir. Varsayılan seçenektir. 

 

“#logo img” bölümünde position:absolute;    left:0; ve   top:-26px satırlarını göreceksiniz, burada ise verilen img’ nin soldan 0 yukarıdanda -26 olarak kaydırılması komutu yazılmış yani logoda da görüldüğü üzere yukarıda iki tane google yazısı vardır biri yön okları ile beraber daha küçük diğeri hemen altındaki büyük google yazısı top:-26px yazıldığında yukarıdaki google yazısı kadar yukarıya kaydırıyor logoyu ve dolayısıylada browser’ ın dışına taşan yukarıdaki google yazısı görünmez.

Şimdi gelelim html kısmına.

<table>
              <tr>

                        <td style=”padding-right:8px“>                    
                                                    <h1><a id=logo href=”http://www.google.com/webhp?hl=tr“ title=”Google Anasayfası’na Git“>Google<img width=150 height=105 src=”/images/nav_logo3.png“ alt=”"></a></h1>

                        </td>

              </tr>
</table>

html kodların’ da dikkatinizi çekmesi gereken <a href ibaresindeki  id=”logo”  kısmı. Hatırlarsanız Yukarıda Css te #logo  ve #logo img  css taglarını yazmıştık. burda #logo dışarıya taşan kısımları göstemeyen ve boyutları  width:150px,   height:52px,  margin:14px 0 7p ve position:relative olan kutucuk,

#logo img ise <a href  id=”logo”  olan linkin içinde link verilmiş bir img lduğunu ve bu img’ nin bu kutucuğun içinde position:relative, soldan 0 (left:0), yukarıdan -26px (top: -26px) yukarıya kaydırılmasını söylüyor.

yani htmlde şekil itibariyle  şöyle gözükmesi gerek:
sunum
yandada görüldüğü gibi sadece kutucuğun içerisindeki Google yazısı gözükecek, dışarıda kalan kısımlar gözükmeyecek.

Yazan: Aras Çağlıuzun

 

Web uygulamalarında bulunan güvenlik zafiyetlerinin taşıdığı riskler, bu
açıklıkları, günümüz siber güvenlik anlayışının en önemli konularından biri
(belki de en önemlisi) haline getirmiştir. İstatistiklere göre her 10 web
sitesinden 9’unda ciddi seviyede bir açıklığın olmasının yanında siber
saldırıların %60’ından fazlasının web teknolojilerine yönelik gerçekleştirilmesi
bu önemin açık bir nedenidir [1].   

İki bölümden oluşacak bu yazının ilk bölümü, otomatik web zafiyet
tarayıcılarının genellikle ilk fazı olan girdi noktası bulma algoritmaları ve
etkinlikleri üzerine olacaktır. 

Web uygulamalarında bulunan açıklıklar; SQL enjeksiyonu, XSS, yetersiz hata
yönetimi, CSRF gibi sadece yazılımsal veya standartlarda bulunan dizayn tabanlı
hatalar olmayıp, yönetimsel ve mantıksal hataları da içermektedir.

Bu yazılımlardaki güvenlik problemlerinin bulunması, düzeltilmelerindeki en
önemli adımdır. Bu adımı gerçeklemek adına üç önemli yöntem; elle
yapılan testler, web uygulama açıklık tarayıcıları, statik/dinamik kod analiz
araçlarıdır. Ancak bilinmelidir ki, yazılımlarda bulunan risk seviyesi yüksek
zafiyetlerin açığa çıkarılması sadece tek bir yöntemle mümkün veya uygulanabilir
değildir. Bu nedenle kapsamlı bir risk haritası için her üç yönetimin de elden
geldiğince uygulanması gerekir.

Otomatik web açıklık tarayıcılarının (WAT) kapsayıcı ve zaman açısından etkin
olmaları, web güvenlik risk haritasının çıkarılmasında çok önemlidir. WAT
çalışma süreçlerinin birçok safhası vardır ama işleyişleri genel olarak ikiye
ayrılır; girdi keşfi ve zafiyet analizi.

Girdi noktaları web uygulamalarının çalışma prensibinin en önemli parçalarıdır.
Ne de olsa, interaktiflik bu etkileşim üzerine kurulmuştur; etki ve tepki, istek
ve cevap. İşte bu nedenle birçok güvenlik problemi de bu modellemede girdi
denetiminin yetersiz kalmasından kaynaklanmaktadır. Web uygulamalarında girdi
noktaları HTTP protokolündeki istek mesajlarının her parçasından oluşabildiği
gibi (URL, HTTP başlıkları, HTTP gövdesi, v.b.) farklı protokollerdeki (RMI,
JNLP v.b.) veya alt-protokollerdeki (Flash Remoting, SOAP, v.b.) parçalar da bu
kategoriye girmektedir.

Girdi keşfi sırasında WAT’lar, mümkün olabildiğince fazla girdi noktası bulmaya
çalışırlar. Çünkü bu fazda ne kadar fazla girdi noktası bulunursa ikinci fazda
(bu fazlar her zaman art arda işlemek zorunda değildir) bir o kadar zafiyet
bulma şansı doğacaktır. WAT’lar genellikle “berbatometre” olarak
adlandırılmaktadırlar; yani üzerinde analiz yaptıkları uygulamanın ne kadar kötü
olduğunu söyleme yetisi. Çünkü WAT’ların bir uygulamanın güvenlik açısından ne
kadar kaliteli yazıldığı sonucuna varabilmeleri, risk seviyesi yüksek açıkların
oranı ve bu araçların kabiliyetleri düşünüldüğünde (en azından şimdilik) mümkün
değildir. Örnek olarak; yapısal bir problem olan XSS açıklıklarını bulma
konusunda iyi bir iş yapan WAT’lar, yetersiz yetkilendirme konusunda sınıfta
kalmaktadırlar. Başarılı oldukları iş olan yapısal problemleri bulmak,
dolayısıyla ilk faz (girdi noktası keşfi)  yani saldırı yüzeyini arttırmak
bu açıdan WAT’lar için hayati önem taşır.

2002 ve 2003 yıllarından başlamak suretiyle özellikle istemci tarafındaki
teknoloji karmaşıklığının artması (Web 2.0) ile beraber ilk fazın kapsamlı
olarak gerçeklenmesi büyük bir problem olarak karşımıza çıkmaktadır. Klasik HTML
yapılarının (form, a, frame, iframe HTML elementleri) yanında ağır Javascript ve
Flash gibi diğer standartların da kullanılması yaygınlaştıkça WAT statik
parserların web sayfalarındaki girdi noktalarını bulmaları oldukça zorlaşmıştır.
Bu konuda örnek vermek gerekirse, Web 1.0 veya 1.5 olarak adlandırılan web
sayfalarında

<a href=”/satinal.do?deger=5&d=3453667&tür=cd”>satın al</a>

türünde yapılar bulmak yaygınken AJAX ve ağır Javascript kullanımıyla yukarıdaki
örnek ile aynı işi yapan aşağıdaki yapılar görülmeye başlanmıştır.

<script type=”text/javascript”>

   $(”span#satinal”).click(function(){SALELIB.
doSale($(’activeitem’).id)});

</script>

<span id=”satinal”>satın al</span>

Bu örnek bile klasik bir parserın ilgili girdi noktasını (/satinal.do?
deger=5&d=3453667&tür=cd
) bulma becerisini sorgulamaya yetmektedir.  Bu
noktada yaygın olarak kullanılan WAT’lar statik parser anlayışından sıyrılmış
dinamik bir duruşu uygulamaya koymuşlardır. Dinamik girdi noktası bulma işi, WAT
parserının aynı bir tarayıcı (browser) gibi davranıp içinde bulunduğu kodu
(Flash,  Javascript) sanki normal bir kullanıcı kullanıyormuş gibi
çalıştırmasından ibarettir. Tabi ki, diğer bazı kısa yollar (heuristics) da bu
işin içindedir ancak çalıştırıp sonucunu yakalamak giderek karmaşıklaşan istemci
taraflı kodlar için şimdilik en mantıklı ve kısa yol gibi durmaktadır.

Güvenlik testlerinin en önemli parçalarından biri (bulma, sınıflandırma, risk
hesaplamasını yapma, yazılı hale getirme ve gidermenin yanında) ölçülebilir
olmasıdır. Aynı şekilde teknolojilerin de kriterler ve standartlar yardımı ile
karşılaştırmalarının yapılması ve kalitelerinin ölçülmesi gerekmektedir. Kalite
kontrol ve temel bir PHP web uygulaması olan
WIVET
, WAT’ların faz 1 etkinliğini ölçmek amacı ile yazılmıştır. Bir çok
girdi noktası sınıfından oluşan
WIVET
, üzerine koşulan WAT uygulamasının girdi noktalarını bulmasını bekler
(Şekil 1).

wivet1.gif
Şekil 1 WAT girdi noktası bulma karşılaştırması için WIVET
web arayüzü
  

Ayrıca bu bulma ve çıkarma işlemi sırasında ve sonucunda kapsama alanını
(coverage) canlı bir şekilde gösterir (Şekil 2).

wivet2.gif
Şekil 2 WIVET kapsama alanı ve bulunan linklerin
gösterilmesi
  

WIVET‘in
bazı açık kaynak kodlu ve ticari WAT’lara ve link çıkarıcılara uygulanması
sonucu elde edilmiş matrix Şekil 3′te gösterilmektedir.

wivet4.gif 
Şekil 3 WIVET karşılaştırma kısmi sonuçları

Genel olarak WAT’ların hangi noktalarda takıldığını belirtmek gerekirse;

1. javascript kullanarak a href /iframe oluşturma:

        var container =
document.getElementById(”container”);

        var alink =
document.createElement(”a”);

        alink.href =
“../innerpages/1_1.php”;

        alink.innerHTML = “click me”;

        container.appendChild(alink);

        var diframe =
createElement(”iframe”);

        diframe.src =
“../innerpages/12_3.php”;

        body.appendChild(diframe);

 

2.  javascript onay:

    function searchMe(){

      alert(”confirm?”);

      var searchcontainerifr =
document.getElementById(”searchcontainer”);

      var enginesel =
document.getElementById(”engine”);

      searchcontainerifr.src =
enginesel.options[enginesel.selectedIndex].value;

    }

3. meta refresh:

  <meta http-equiv=Refresh content=”5; URL=../innerpages/14_1.php”>

4. HTTP 302 cevap içeriği:

HTTP/1.1 302 Found

Date: Sat, 06 Dec 2007 17:58:46 GMT

Server: Apache

Expires: Thu, 19 Nov 1981 08:52:00 GMT

Pragma: no-cache

Location: ../innerpages/16_1.php

Content-Length: 69

Content-Type: text/html

 

This page has moved to <a href=”../innerpages/16_2.php”>HERE :)</a>

5. XHR (AJAX) meşgul modu:

            function
doxhr(phpname){             

            �
if(!busy){

              �
AjaxObject.startRequest(formURL(phpname));

              �
busy = 1;

              }

            �
else

                  alert(’not
so fast, one request at a time old sport’);

            }  

6. Linklenmeyen linkler ve (özellikle AS3 ile yazılan) SWF dosyaları içindeki
linkler.
  

Sonuç 

AJAX akımı ile beraber oluşturulan istemci taraflı kütüphaneler her ne kadar hem
geliştirmeyi hem de kullanıcı kullanışlığını önemli ölçüde kolaylaştırsa ve
eğlenceli hale getirse de, (HTTP) trafik karmaşıklığı ile hem manuel hem de
otomatik testlerde işleri zorlaştırmıştır. Bu teknolojiler ile beraber açıklık
tipleri çok değişmemiştir ama bu açıklıkları bulmak eskisinden kolay değildir.
Otomatik web açıklık tarayıcılar (WAT) test yüzeylerini arttırabilmek için text
tabanlı parserlar yerine artık istemci taraflı kodu koşarak (kullanıcıyı simule
ederek) dinamik parserlar kullanmaya başlamışlardır. Her ne kadar dinamik
tabanlı parserlar iyi iş çıkarsalar bile, çoğu durumda olduğu gibi girdi noktası
bulmakta da elle yapılan testlerden iyi ve kapsamlı değildirler. Ancak WAT’lar
zaman ve iş gücü değerlendirildiğinde bulunmaz yardımcılardır. 

Kaynak: Bilgi Guvenligi

 

Nasıl önlem alır veya temizleriz?
Eğer bilgisayarınıza Conficker bulaşmamış ise yapmanız gereken gayet kolay. Bilgisayarınızı güncelleyin, anti virüs programınızı güncelleyin, şifrelerinizi güçlendirin, autorun özelliğini kaldırın ve diğer bilgisayarlara da giren taşınabilir sürücüleri taktığınızda nereye tıkladığınıza dikkat edin. Diğerlerine göre biraz teknik olan autorun özelliğinin nasıl kaldırılacağına dair bilgi için yine bilgi güvenliği sayfasındaki “Otomatik ÇalıştırMA! ” yazısına göz atabilirsiniz.

Fakat Conficker zaten bulaşmış durumda ise: ilk önce gerekli MS08-67 güncellemesi yüklenmeli ve şifreler güçlendirilmelidir. Tabiî ki “Windows Update” servisinin çalışması virüs tarafından engelleneceği için güncelleme temiz bir bilgisayarda Microsoft’un sayfasından indirilebilir. Daha sonra bu dosya yazma korumalı olarak açılan bir paylaşıma kopyalanabilir ve bu paylaşım üzerinden kurban bilgisayarda çalıştırılabilir. Asıl temizleme işlemi için ise kurban bilgisayarda bulunan virüs yazılımı varsa güncellenebilir veya yalnız başına çalışan birçok temizleme aracından birisi kullanılabilir. Örnek olarak MSRT (Malicious Software Removal Tool) veya F-Secure “Disinfection Tool”. Yine bu noktada dikkat edilmesi gereken husus Conficker’ın virüs programı güncellemesini web üzerinden yapmanızı engelleyecek olmasıdır. Bunun için yukarıdaki metot aynı şekilde kullanılabilir.

 

Microsoft 23 Ekim 2008 tarihinde çok acil olduğunu bildirdiği bir güncelleme yayınladı: MS08-67 [7]. Güncelleme solucanlar tarafından kullanılabilir bir açıklığı kapatıyordu. Tabiî ki Microsoft’un kendisinin böyle önemli bir açıklık olduğunu belirtmesi ve normal güncelleme çıkarma periyodunu sırf bu açıklık için değiştirmesi dünyadaki birçok güvenlik uzmanının dikkatini çektiği gibi, kötü niyetli kod yazarlarının da ilgisini çekti.

Açıklığın yayınlanmasının üzerinden daha 24 saat geçmemişti ki internette açıklığı kullanan exploitler ortaya çıktı. Ondan sonraki günlerde birçok kötü niyetli yazılım bu açıklığı kullanarak yayılmaya çalıştı fakat çok büyük tehdit oluşturamadılar. Ancak açıklık yayınlandıktan bir ay sonra ilk kayda değer, açıklığı kullanan “Conficker” adlı solucan tespit edildi. 

Conficker solucanı ilk çıktığında fazla dikkat çekmedi. Solucanın yayılımı beklenenin, diğer bir deyişle korkulanın altında bir sayıdaydı. Hatta görülen o ki bu durum birçok güvenlik sorumlusunu rehavete sevk etti. Çünkü işin ciddiyeti yaklaşık üç hafta önce solucanın yeni bir sürümünün çıkmasıyla değişti. Bu yeni sürümün tespit edilmesinin üzerinden bir iki hafta geçmeden yeni solucan 3 milyonunun üzerinde bilgisayara bulaşmıştı. Haddi zatında 3 milyon sayısı bir solucan için çok büyük bir başarıydı. Çünkü şimdiye kadarki en büyük solucan ağının büyülüğü 100 binler civarındaki bilgisayardan oluşmaktaydı. Fakat Conficker bu kadarla kalmadı. Bir kaç gün içinde telaffuz edilen sayı 9 milyonu geçti. Bu yazıyı yazdığım sıralarda ise sayı 15 milyonun üzerinde olarak tahmin edilmekte [1].

Nasıl Yayılıyor

Aslında bu yayılma hızı bir açıdan hiç de şaşırtıcı değil. Çünkü solucan, her ne kadar çok karmaşık bir mühendislik örneği olsa da, bilinen en zayıf güvenlik halkasına yani insan faktörüne akıllı bir şekilde saldırmakta.

Biraz daha açacak olursak, solucan yayılmak için biraz sosyal mühendislik, biraz da hep ihmal ettiğimiz çok basit güvenlik zafiyetlerinden faydalanmakta. Solucanın yayılmak için kullandığı kısaca üç farklı yol var [5].

configer_yaylma_yontemi.png

Conficker yayılma yöntemleri [3]

MS08-67 ile Duyurulan SMB Protokolündeki Açıklığı [7] Kullanarak

Evet, üzerinden üç ay geçmesine rağmen maalesef birçok kullanıcı bilgisayarı halen güncellememiş durumda. Solucanın bu kadar hızlı yayılmasının temel nedeni de bu.

Ele geçirilmiş olan bilgisayardan solucan diğer bir bilgisayara açıklık yardımıyla bulaşmak istediğinde ilk önce ele geçirilmiş olan bilgisayarın dış ip adresini aşağıdaki web sayfalarından herhangi birini kullanarak tespit etmekte [2]:

http://checkip.dyndns.org

http://getmyip.co.uk

http://www.getmyip.org

http://www.whatsmyipaddress.com

Daha sonra solucan rastgele bir portta HTTP sunumcusu açmakta:

http://%DışIPAdresi%:%RastgelePort%

Bu web sunumcusunun üzerinden de solucan kendisini yeni kurban makinesine kopyalamakta. Kopyalanan dosyanın uzantısı “bmp”,”gif”,”jpeg”,”png” uzantılarından herhangi birisi olabilmekte.

Son olarak da solucan, açıklığın asıl kaynağı olan NetpwPathCanonicalize API ’sine kanca atmakta ve başka birisinin bu açıklığı kullanarak bu bilgisayarı ele geçirmesini engellemekte.

Bu açıklığı kullanarak solucan sadece güncellenmemiş Windows 2000,XP ve 2003 makinelerine bulaşabilmekte, Vista ve Server 2008 kurulu bilgisayarlara bulaşamamaktadır [7].

Sözlük Saldırısı ile Bilgisayarlardaki Zayıf Yerel Yönetici Hesaplarının Şifrelerini Kırarak [2]

Zaten eğer hala standart “12345”,”Asd1234”,”Password” gibi şifreler kullanıyorsanız ve şimdiye kadar hacklenmediyseniz ya bir ağ bağlantınız yok ya da hacklendiğinizin farkında bile değilsiniz.

Conficker solucanı bir bilgisayara bulaştığında ilk önce çevresindeki bilgisayarları taramakta. Tarama sonucunda bulduğu bilgisayara bulaşabilmesi için tarama için kullandığı kullanıcı hesabının karşı bilgisayarda yerel yönetici haklarına sahip olması gerekmektedir. İşte eğer yerel yönetici hakkına sahip değilse, NetUserEnum API yardımıyla karşı bilgisayardaki kullanıcı hesap isimlerini almakta ve yukarıda bahsi geçen kendi sözlüğündeki şifreleri sırayla denemektedir.

Bu saldırı sonucunda solucan yerel yönetici haklarına sahipse ve ağ üzerinden bilgisayarın paylaşımlarına ulaşabiliyorsa, aşağıdaki adreste bir kopyasını “ADMIN$” paylaşımda oluşturmakta:

\\[Sunumcu İsmi]\ADMIN$\System32\[rastgele dosya ismi].[rastgele uzantı]

Bundan sonra zamanlanmış bir iş tanımlayarak kopyalamış olduğu dosyanın çalıştırılmasını sağlamaktadır:

rundll32.exe [rasgele dosya ismi].[rastgele uzantı], [rastgele]

Ele Geçirilmiş Bir Bilgisayara Bağlanmış Depolama Aygıtlarının Başka Bir Bilgisayara Bağlanmasıyla[2]

Aslında bu yöntem çok da yeni olmayan bir yöntem. Fakat Conficker bu saldırıya eklediği orijinal sosyal mühendislik örneği sayesinde yeni bir boyut kazandırmakta.

Conficker bir bilgisayara bulaştığında o bilgisayara map edilmiş ve taşınabilir sürücülerde aşağıdaki dosyaları oluşturmakta:

Bu sayede bulaştığı bir sürücü başka bir bilgisayara takıldığında eğer autorun (otomatik çalıştır) aktifse, Conficker direk olarak takıldığı bilgisayara bulaşmakta. Eğer autorun aktif değilse yani biraz bilinçli bir kullanıcı autorun’ı kapattıysa veya Vista ve üstü bir sürüm kullanıyorsa Conficker’ın sosyal mühendislik saldırısı devreye girmekte.

http://www.bilgiguvenligi.gov.tr/images/stories/serdar/vistaya_tasnabilirrrr.png

Vista’ya taşınabilir bir sürücü takıldığında [5]

Yukarıdaki Windows penceresindeki sorunu görebildiniz mi? Evet, “Install or run program” yazısının altındaki “Open folder to view files” yazan klasör ikonu sahte. Eğer bir aşağıdaki “General options” altındaki “Open folder to view files” yazan klasör ikonu yerine üstteki sahte olana tıklarsanız Conflicker’ı kendiniz çalıştırmış olacaksınız.

Gayet akıllıca değil mi? Evet, Conficker’ın sayısı 3 bin civarında olduğu tahmin edilen küçük, orta veya büyük ölçekli kuruluşun iç veya dış ağına bulaştığı varsayılmakta [1]. Malumunuz günümüzde direk internet erişimi olan bir kuruluş nerdeyse hiç yoktur. Hepsinin çıkışında bir güvenlik duvarı ve bunun yanında genellikle bir IDS bulunmaktadır. Bu solucanın Windows açıklığını kullanarak bulaşması için karşı bilgisayarın 139 ve 445 inci portlarına ulaşması gerekmektedir [7] ve güvenlik duvarlarında internetten bu portlara gelen isteklerin kapalı olması gerektiği en temel ayarlardan birisidir. Peki, nasıl olduyor da bu kuruluşlara Conficker rahatlıkla bulaşıyor? Tabiî ki taşınabilir sürücülerle.

Birçok kuruluşta USB sürücü kullanımı ya yasaktır ya da denetim altında tutulmaktadır. Fakat sistem yöneticileri için bu yasak çoğu zaman bir şey ifade etmez. Ve bu solucanın bir sistem yöneticisinin bilgisayarına bulaştığını varsayalım. Solucan hâlihazırda sistem yöneticisinin haklarına sahip olacaktır ve ikinci yayılma yöntemini hatırlarsak, daha sonrası için bütün ağı ele geçirmesi an meselesi olacaktır.

Diğer taraftan solucanın çoğu zaman yönetici hesabına ihtiyacı da bulunmamaktadır. Genelde iç ağ olmasından dolayı önemsenmeyen ve zamanında yapılmayan güvenlik güncellemeleri ve devamlı şifre sıfırlamak ve değiştirmekten bıktığı için basit şifreler kullanan sistem yöneticileri ve bilgisayar kullanıcıları, solucanın yayılması için gerekli ortamı zaten oluşturmaktadırlar.

Bilgisayarımıza bulaştı mı nasıl anlarız?

Conficker solucanı bir bilgisayara bulaştığı zaman tespit edilmesini zorlaştıran ve yayılmasını kolaylaştıran birçok değişiklik yapmaktadır. Yaptığı bu değişiklikler diğer taraftan da normalin dışında faaliyetlere sebep olduğu için tespit edilmesine de olanak sağlamaktadır [5].

Tabiî ki en genel tespit yöntemi virüs programları. Fakat Conficker bulaştığı bilgisayardaki virüs programlarının kendilerini güncellemek için bağlanmaları gereken domainlere (etki alanlarına) ulaşmasını engellemektedir. Yani virüs programınız kendini güncelleyemiyorsa Conficker size çoktan bulaşmış olabilir.

Bunun dışında:

  • Eğer “Windows Update” devamlı olarak başarısız oluyorsa.
  • Windows Defender güncelleme yapamıyorsa
  • Svchost adresinden rastgele hata mesajları geliyorsa
  • Güvenlikle alakalı önemli sitelerin belli bir kısmına ulaşamıyorsanız
  • Aşağıdaki Windows servisleri çalışmaya başlayamıyorsa
  1. “wscsvc” (Windows Security Center Service)
  2. “WinDefend” (Windows Defender Service)
  3. “ERSvc” (Windows Error Reporting Service)
  4. “WerSvc” (Windows Error Reporting Service)

Conficker size de bulaşmış olabilir.

Bunların dışında, Conficker analiz edilmesini ve denetlenmesi zorlaştırmak için çok katmanlı polimorfizm (polymorphism) ve paketleme (packing) korumasına sahiptir. İndirilen ve çalıştırılan dosyalarına ulaşımı engellemek için oluşturduğu kütük defteri servis ayarlarına ulaşım hakkını sadece Local System erişebilecek şekilde değiştirmektedir. Aynı amaçla çalışacak olan dosyalarına bütün kullanıcılar için bütün erişim haklarını kaldırmakta. Sadece execute (çalıştırma) hakkına ulaşımı bırakmaktadır. Bunlara ek olarak kendi dosyaları üzerinde bir sistem kilidi (system lock) tutmakta. Böylelikle başka programların bu dosyalara ulaşımını zorlaştırmaktadır [3].

Nasıl önlem alır veya temizleriz?

Eğer bilgisayarınıza Conficker bulaşmamış ise yapmanız gereken gayet kolay. Bilgisayarınızı güncelleyin, anti virüs programınızı güncelleyin, şifrelerinizi güçlendirin, autorun özelliğini kaldırın ve diğer bilgisayarlara da giren taşınabilir sürücüleri taktığınızda nereye tıkladığınıza dikkat edin. Diğerlerine göre biraz teknik olan autorun özelliğinin nasıl kaldırılacağına dair bilgi için yine bilgi güvenliği sayfasındaki “Otomatik ÇalıştırMA! ” yazısına göz atabilirsiniz [6].

Fakat Conficker zaten bulaşmış durumda ise [3]: ilk önce gerekli MS08-67 güncellemesi yüklenmeli ve şifreler güçlendirilmelidir. Tabiî ki “Windows Update” servisinin çalışması virüs tarafından engelleneceği için güncelleme temiz bir bilgisayarda Microsoft’un sayfasından indirilebilir. Daha sonra bu dosya yazma korumalı olarak açılan bir paylaşıma kopyalanabilir ve bu paylaşım üzerinden kurban bilgisayarda çalıştırılabilir. Asıl temizleme işlemi için ise kurban bilgisayarda bulunan virüs yazılımı varsa güncellenebilir veya yalnız başına çalışan birçok temizleme aracından birisi kullanılabilir. Örnek olarak MSRT (Malicious Software Removal Tool) [3] veya F-Secure “Disinfection Tool” [1]. Yine bu noktada dikkat edilmesi gereken husus Conficker’ın virüs programı güncellemesini web üzerinden yapmanızı engelleyecek olmasıdır. Bunun için yukarıdaki metot aynı şekilde kullanılabilir.

Kaynak: Bilgi Guvenligi

Referanlar

[1].http://www.f-secure.com/

[2].http://www.f-secure.com/v-descs/worm_w32_downadup_al.shtml 

[3].http://blogs.technet.com/mmpc/archive/2009/01/13/msrt-released-today-addressing-conficker-and-banload.aspx

[4].http://www.microsoft.com/security/portal/Entry.aspx?Name=Worm:Win32/Conficker.B

[5].ttp://www.downadup.com/#container

 

virus

TÜBİTAK’tan Virüs Uyarısı
Conficker solucanı bilgisayarları tehdit ediyor. Türkiye Bilgisayar Olayları Müdahale Ekibi (TR-BOME), bilgi sistemlerinde hızla yayılan yeni bir solucanı “ACİL” koduyla bildirdi. 

TÜBİTAK Ulusal Elektronik ve Kriptoloji Araştırma Enstitüsü (UEKAE) bünyesinde faaliyet gösteren TR-BOME’den yapılan bilgilendirme şöyle:

Microsoft, 23 Ekim 2008 tarihinde Windows 2000, Windows XP ve Windows 2003 işletim sistemlerini etkileyen, çok acil olduğunu bildirdiği MS08-67 kodlu güncellemeyi yayınladı.

Halen Dünya’da 15 milyon bilgisayara bulaştığı tahmin edilen “Conficker” isimli solucan, bu güncellemenin uygulanmamış olduğu sistemlerde etkin oluyor.

Solucanın son sürümü, zayıf şifrelere sahip kullanıcı hesaplarını, ağ üzerindeki paylaşımları ve solucanın bulaştığı bilgisayarlara takılan harici taşınabilir bellekleri kullanarak yayılıyor.

Bu solucan sisteme bulaştıktan sonra, bilgisayarın işletim sistemi ve anti virüs güncellemelerini almalarını önleyerek sistem üzerinde diğer virüs ve zararlı yazılımların da bulaşmasını sağlayacak “açık kapı” oluşmasını sağlıyor. Solucandan etkilenen sistem üzerinde daha sonra bulaşan zararlı kodun yeteneklerine göre, bankacılık hesap bilgileri gibi kişisel bilgilerin çalınmasından başka bilgisayarlara saldırıda kullanılmaya kadar birçok faaliyet gerçekleşebilmektedir.

Solucanın henüz bulaşmadığı sistemlerde işletim sistemi ve anti virüs güncellemelerinin acilen yapılması gerektiğini belirten TR-BOME uzmanları açıklık, açıklığın kapatılması ve solucanın bulaşmış olduğu sistemlerin temizlenmesiyle ilgili detaylı bilginin Türkiye’nin bilgi güvenliği kapısı olan www.bilgiguvenligi.gov.tr adresinden alınabileceğini kaydetti.

Kaynak: Tübitak

 

silverlight ile yapılmış zevkli bir oyun

Tower Defence

 

RESİM ÜZERİNE YAZI YAZMA

Hepiniz çoğu sitede, güvenlik kodu doğrulama olayını görmüşsünüzdür. Arka planda var olan bir resmin üzerine değişik karakterler yazılarak oluşturulur.

Bizde buna benzer bir uygulama ile resim üzerine nasıl yazı yazdıracağımızı göreceğiz.

1. Öncelikle WebSite / Add New Item menüsünden yeni bir Web Form açıp ismini Guvenlik.aspx olarak kaydediyoruz.

2. Üzerine yazı yazılmak üzere kendi zevkimize göre bir resim hazırlıyoruz. Aşağıda bizim kullanacağımız örnek resim bulunmaktadır.

3. Gerekli olan namespace tanımlamalarını yapıyoruz.

Resim Ustu yazi(Kullanacağımız Resim)

C#

using System.Drawing;

using System.Drawing.Drawing2D;

using System.Drawing.Imaging;

using System.Drawing.Text;

Vb

Imports System.Drawing

Imports System.Drawing.Drawing2D

Imports System.Drawing.Imaging

Imports System.Drawing.Text

4. Page Load eventine kodlarımızı yazıyoruz.

C#

a) Bitmap ArkaPlanImage = new Bitmap(Server.MapPath(”GuvenlikBg.jpg”));

b) Graphics GuvenlikKodu = Graphics.FromImage(ArkaPlanImage);

c) GuvenlikKodu.SmoothingMode = SmoothingMode.AntiAlias;

d) Random RastGele = new Random();

e) string Kodumuz = Convert.ToString(RastGele.Next(10000,99999));

f ) GuvenlikKodu.DrawString(Kodumuz, new Font(”Monotype corsiva”, 25, FontStyle.Italic), SystemBrushes.WindowText, new Point(10, 3));

g) Response.ContentType = “image/jpeg”;

h) ArkaPlanImage.Save(Response.OutputStream, ImageFormat.Gif);

i) GuvenlikKodu.Dispose();

j) ArkaPlanImage.Dispose();

Vb

a) Dim ArkaPlanImage As New Bitmap(Server.MapPath(”GuvenlikBg.jpg”))

b) Dim GuvenlikKodu As Graphics = Graphics.FromImage(ArkaPlanImage)

c) GuvenlikKodu.SmoothingMode = SmoothingMode.AntiAlias

d) Dim RastGele As New Random

e) Dim Kodumuz As String = Convert.ToString(RastGele.Next(10000, 99999))

f) GuvenlikKodu.DrawString(Kodumuz, New Font(”Monotype corsiva”, 25, FontStyle.Italic), SystemBrushes.WindowText, New Point(10, 3))

g) Response.ContentType = “image/jpeg”

h) ArkaPlanImage.Save(Response.OutputStream, ImageFormat.Gif)

i) GuvenlikKodu.Dispose()

j) ArkaPlanImage.Dispose()

Kodlarımızı yazdık şimdi açıklamaya geçelim.

a) Arka planda kullanacağımız resmi seçiyoruz.

b) Seçtiğimiz resmi grafik nesnesine atıyoruz.

c) Grafiğimizin kalitesini belirliyoruz. AntiAlias olan değerimizi HighQuality, Default, HighSpeed, Invalid yapabiliriz.

d) Rastgele sayı oluşturmak için Random nesnemizi oluşturuyoruz.

e) 10000 ile 99999 arasında bir sayı üretip Kodumuz adlı değişkene aktarıyoruz. Sayıyı istediğiniz aralıkta belirtebilirsiniz.

f) Resmimizin üzerine yazılacak olan değeri, yazı tipini, boyutunu, stilini ve değerin, resmin hangi x,y koordinatlarından yazılmaya başlanacağını belirtiyoruz.

g) Sayfa çıktısını image/jpeg olarak ayarlıyoruz.

h) Resmimizi gif formatında ekrana yazıyoruz.

i) GuvenlikKodu isimli Graphics nesnemizi kapatıyoruz.

j) ArkaPlanImage isimli Bitmap nesnemizi kapatıyoruz.

5. Web Site / Add New Item Menüsünden yeni bir sayfa daha açıyoruz.

6. Html kontrollerinden Image kontrolü ekleyip kaynağına Guvenlik.aspx dosyasını belirtiyoruz. Guvenlik.aspx sayfasının çıktısı image/jpeg formatında olduğu için image kontrolümüzde resmimiz görünecektir.

Örnek çıktı aşağıdaki gibidir.

Kaynak: Yazilim Uzmanı

 

Failed loading C:\Program Files\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll