Babana Bile Güvenme

For English, click here.

Günümüzün imza tabanlı teknolojilerinden biri olan Antivirüs yazılımlarına körü körüne güvenmekte, onların da birer yazılım olduğunu ve her yazılım gibi onların da hataları, zafiyetleri olabileceğini çoğunlukla göz ardı etmekteyiz. Halbuki Antivirüs dediğimiz yazılımlar aslında belli bir imza setine göre (sezgisel tarama hariç) hedef dosyaları incelemekte ve doğası gereği hedef dosya üzerinde yapılan basit değişikliklerden (misal kodlama/encode, paketleme) sistem üzerinde yapılan daha karmaşık değişikliklere (misal tasarımsal hataları istismar etme) kadar çeşitli yöntemler ile çoğu zaman kolaylıkla atlatılmaktadırlar. Çoğunlukla kodlama ile atlatma yöntemlerine sıkça rastladığımız bu günlerde tasarımsal veya mimari hatalardan, zayıflıklardan faydalanarak atlatma yöntemlerine çok sık rastlanmamaktadır.

Geçtiğimiz günlerde zararlı bir yazılım analizi gerçekleştirirken Mcafee VirusScan Enterprise Antivirus yazılımında raporlamadan zararlı yazılım tespitine kadar iki önemli noktada tutarsız sonuçlar üretmesine neden olan bir hata,zafiyet keşfettim. Yaptığım incelemeler neticesinde bu hatanın/zafiyetin, antivirus yazılımında bulunan ayrıştırıcının (parser) dosyaları incelerken özel bir satırı dikkate almasından kaynaklandığını düşünüyorum.

Hataya neden olan bu gizemli satır nedir diye soracak olursanız, HTTP protokülüne ait bir başlık (content-disposition ve filename) ile ZIP dosyasının başlığının (header) birleşiminden oluşan bir satır olduğunu söyleyebilirim;
Content-Disposition: inline; filename=setup.exe….PK…….. 

Normalde web ile ilişkili dosyaları (misal html) bu şekilde ayrıştırmasını beklediğimiz Antivirus yazılımı her ne hikmetse incelediği tüm dosyalarda da bu gizemli satırı dikkate alarak dosya üzerinde inceleme gerçekleştirmektedir. Durum böyle olunca da bu gizemli satırı kullanarak zararlı bir yazılımı bu antivirüs yazılımından kaçırmak, hatalı aksiyon raporu üretmesini (sildim dediği bir zararlı yazılımı aslında silememesi) sağlamak ve durum raporunda sahte dosya ismi göstermesini sağlamak mümkün olmaktadır.

Bu hatanın, zafiyetin istismar edilebileceği senaryolardan bazılarının üzerinden kısaca geçecek olursak;

  • Örneğin internetten temin ettiğimiz o meşhur Aurora istismar kodunun başına bu sihirli satırı ekleyip taratacak olursak antivirus yazılımı tarafından tespit edilemediğini görebiliyoruz.

  • Bunun dışında iki adet zararlı yazılım ile gerçekleştirebileceğimiz başka bir senaryoda ise zararlı yazılımlardan bir tanesi  Contagio Malware Dump sitesinden temin ettiğimiz APT_1104statment.pdf zararlı PDF dosyası diğeri ise Honeypot sistemi üzerinden temin ettiğimiz ve Blackhole istismar kiti tarafından kullanılan 55993.jar zararlı JAR (CVE-2012-0507) dosyası olsun. Her iki dosyayı da ayrı ayrı bu antivirus yazılımı ile taratacak olursak antivirus yazılımın başarıyla bu zararlı yazılımları tespit ettiğini görebiliyoruz ancak sihirli satırı JAR dosyasının başına ekledikten ve iki dosyayı tek bir zip dosyası haline çevirdikten sonra taratacak olursak sadece 55993.jar dosyasının tespit edildiğini diğer dosyanın ise tespit edilemediğini görebiliyoruz. Ayrıca her ne kadar antivirüs yazılımı bize 55993.jar dosyasının silinmiş olduğunu söylemiş olsa da zip dosyasının içine baktığımızda aslında dosyanın birebir orada olduğunu görebiliyoruz.
    • Son olarak Contagio Malware Dump sitesinden temin ettiğimiz APT_1104statment.pdf zararlı PDF dosyasının başına sihirli satırımızı koyacak ve filename kısmına istediğimiz değeri belirtecek olursak tarama sonucunda zararlı yazılımın adının dosya adından farklı olarak görüntülendiğini ve raporlandığını görebiliyoruz.

    Özellikle istismar kitlerinin (exploit kits) sıfırıncı gün zafiyetlerini istismar ettiği, güçlü gizleme (obfuscation) yöntemlerine başvurarak kendilerini imza tabanlı saldırı tespit ve zararlı yazılım tespit teknolojilerden başarıyla gizleyebildiği şu günlerde, yazılımlarda yapılan bu tür basit hatalar da, kullanıcıların kolaylıkla kandırılmasına ve zararlı yazılımların sistemlere daha kolay bulaşmasına imkan tanıyabilmektedir. Tavsiyem sadece ve sadece istemci sistemlerinde çalışan imza tabanlı teknolojilere güvenmek yerine ilave olarak ağ trafiğinin gözlenmesine yönelik modern teknolojilerden de (kum havuzu analizi gerçekleştirebilen ağ güvenlik izleme cihazları) faydalanılması olacaktır.

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

    image_pdfShow this post in PDF formatimage_printPrint this page
    5 comments
    1. Bence bu basit gibi görünsede önemli bir nokta. Ne yazık ki modern güvenlik anlayışına göre her katman kendi güvenliğinden sorumlu olacağından KaraCahil’e katılmıyorum. istismar tekniğine göre güvenlik politikaları oluşturmak doğru bir yaklaşım değil.

      Niye derseniz; her istismar sözkonusu olduğu sisteme göre değişkenlik gösterecektir. Örneğin siz yalnızca bir makinada çalışma yapıyorsanız AV’in taramada kaçırdığı bir virüs çalışma zamanında hafıza üzerinde AV tarafından tespit edilebilecek iken, karantina/kontrol amaçlı kullanılan bir sistemde dosya taramasından geçen zararlı iç ağdaki bir makinada çalıştırılıyor olabilir. Her durumda “nasıl olsa çalışma anında bu zararlının tespiti yapılır” düşüncesi bir başka sistem ve şartda FAIL etmenize neden olabilir. AV’ün var olma amacı tespittir. Bunu bir şekilde yapamıyorsa bu bir zafiyettir. Etkisi az ya da çok.

      1. Zaten normal tarama ile çalıştırma esnasıda taramanın ayrı olmasının amacı katmanlı güvenlik ve zaten 2. Katmanda tespit edilir dersek o zaman ya 1. Katmanı ortadan kaldırmak gerekir ya da diğer AV yazılımlarında olduğu gibi tespit etmesi ve de tespit edip sildim dediğinde gerçekten silmesi gerekir, beklenir.

    2. Öncelikle değerli bilgiler için teşekkür ederim. Kabul bu yöntem virüslerin kuluçkalaması için bir yöntem ama execute olduklarında hafızaya açılırken ki denetleme mekanizmasından kurtulmak için bundan daha parlak bir yöntem bulamadıktan sonra pekte bir manası yok diye düşünüyorum. Kaldı ki neredeyse tüm anti-malware üreticileri (hipsler dahil) kendi exclusion rule’larını gayet erişilebilir registry key’leri veya basitçe encode edilmiş file’lar içerisinde barındırarak yine zararlı yazılımlara barınabileceği özgür alan sağlamaktalar.Yine buna en iyi örnek sizinde incelediğiniz mcafee’nin policy tabanlı exclusion’lar için aşağıdaki gibi kolayca erişilip zararlının kuluçkalamak istediği platform için senaryosunu kurmasına yardımcı olan key’i olabilir.

      HKEY_LOCAL_MACHINE\SOFTWARE\McAfee\SystemCore\VSCore\On Access Scanner\McShield\Configuration\Default\ExcludedItem_0=”3|15|C:\\users\\username\\desktop\\”

      Zaten her halükarda sisteme dışarıdan browser tabanlı olarak bulaşmak isteyen zararlı payload’ını sisteme konaklatmak için ayrıca şifrelenmiş ve sizinde kod örneklerinizde üstüne basa basa belirttiğiniz PK (data compression algoritmasını geliştiren Philip Katz’dan gelir) compression yöntemlerini kullanmaktalar. Ancak bu adımlardan sonrası için temiz olan ve amacı bu compression payload’ı memory’ye açarak execute etmek isteyen kod’a karşı günümüz kalitesini ispatlamış antivirüslerinin sezgisel algılama özelliklerinin bir okuyucunuz olarak gayet yeterli olduğu kanısındayım.

      Değerli bilgileriniz için tekrar teşekkürlerimi sunar iyi çalışmalar dilerim.

      1. Merhaba,

        Sezgisel algılama yöntemleri fazlasıyla hatalı sonuç (false positive) ürettiği için varsayılan olarak çoğunlukla bu tür yazılımlarda kapalı gelmekte ve bu nedenden ötürü kolay kolay devreye alınamamaktadır. Buna ilaveten hafızaya açmak yerine hafızadan ilgili zararlı yazılımı çalıştırarak denetleme mekanizmaları günümüzde rahatlıkla aşılmaktadır. (Bkz: http://securityxploded.com/memory-execution-of-executable.php)
        Yazıda da belirttiğim gibi zaten çeşitli yöntemler ile AVler aşılabilirken bu tür basit hatalar işleri daha da kolaylaştırabilmekte, yeni kapılar açmaktadır.

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    You May Also Like
    Read More

    e-Devlet Hacklendi mi?

    If you are looking for an English version of this article, please visit here. Öncelikle yazının sonunda söyleyeceğimi başta söyleyeyim, “Hayır, hack-len-me-di!” Peki bu durumda vatandaş olarak rahat bir nefes alabilir misiniz ? Maalesef hayır. Bunun sebebini de yazının devamında okuyabilirsiniz. Zaman zaman hortlayan “e-Devlet Hacklendi!”, “e-Devlet verileri çalındı!”, “85…
    Read More
    Read More

    WhatsApp Dolandırıcıları

    If you are looking for an English version of this article, please visit here. Başlangıç Son günlerde hemen hemen WhatsApp uygulaması kullanan herkesi rahatsız eden yabancı cep telefonu numaralarından gelen çağrılardan, mesajlardan ben de yakın zamanda nasibimi aldım ve tabii ki diğer dolandırıcılıklarla ilgili yazılarımda (Kripto Para Dolandırıcıları, LinkedIn Dolandırıcıları,…
    Read More
    Read More

    LinkedIn Dolandırıcıları

    If you are looking for an English version of this article, please visit here. Uzun yıllardan beri sosyal ağları ve medyayı etkin kullanan bir siber güvenlik araştırmacısı olarak bağlantılarım arasında yer alanlarınız özellikle hafta içi LinkedIn ve Twitter üzerinden okuduğum ve beğendiğim siber güvenlik makalelerini, haberleri paylaştıklarımı farkediyorlardır. Twitter hesabımın…
    Read More
    Read More

    Profilime Kim Baktı?

    If you are looking for an English version of this article, please visit here. 23 Eylül 2020 tarihinde Twitter’da siber güvenlik ile ilgili haberlere göz gezdirirken gündem olan başlıklarda #profilimekimbaktı etiketi dikkatimi çekti. Beni oldukça şüphelendiren bu etiketin gündem olmasının arkasında yatan sebebi bulmak için bu etiketi paylaşan hesaplara göz…
    Read More