1 Mart 2010 Pazartesi
Antikor UGS Research (Part1)
Türk menşeili ve kendi alanında bir ilk olan Antikor UGS'yi mercek altına aldım.
Program hakkında tubitakta bulunan dokumanı buradan okuyabilirsiniz
Programın yazılış amacı, PE dosyalarına infect olan virüslerden korunmak. (Örnek Win32/Parite)
Bunu yapabilmek için program ilk çalıştığında sistemdeki uygulamaları tarıyor ve uygun gördüğü PE dosyalarının içine özel bir kod yerleştiriyor
Bu kod çalıştığında dosyanın infekte olup olmadığına bakıyor ve infekte ise kendi kendini temizliyor.
Programda kullanılan mantık güzel ancak bence bu program sadece bir ar-ge projesi olabilir çünkü bu program koruma amaçlıda olsa, uygulamalarınızı ve sistem dosyalarının yapısını ve varsa üzerlerindeki dijital imzayı bozacak. Ardından sistem çökmeleri vs gelecek. Ve ayrıca artık Win32/Parite gibi sistem dosyalarına bulaşan PE infector virüsleri kalmadı denebilir.
PE infector yazacak kadar ileri virüs yazarları , sanal korsanlar için çalışır oldu ve sanal korsanlarda bu kişilere spyware/spam-bots gibi yazılımlar yazdırıyorlar ve yayılma biçimi olarak ta P2P,email,MS açıkları,sosyal ağlar gibi yöntemler kullanıyorlar.
Eskiden virüs yazarları arasında, PE dosyalarını infect etmek, hele hele polymorphic olarak infect etmek bir yarış halini almıştı ancak şu anda PE protokolu ile ilgili full dokümantasyon ve örnek kodlar okadar fazlalaştı ki artık bunu yapmak çok kolay oldu.
Geçtiğimiz senin trendleri rootkitler oldu roustock,TLS gibi dosya sistemi üzerindeki en alt seviyedeki DISK I/O driver infeksyonları ile nerdeyse görünmez oldular. (driver dosyalarida PE tipidir ve uzantıları .sys 'dir)
Bu virüsler bütün Antivirüs firmalarının korkulu rüyası oldu hatta Kaspersky, bu gibi infeksyonların önüne geçmek için donanım tabanlı antivirüs patenti bile aldı :)
Sonuç olarak bu program hernekadar, teknolojisi ile ses getirmiş olsada günümüzün tehditlerine karşı bir çözüm getiremez diye düşünüyorum ve burada bir marketing segment olduğunu sanmıyorum. (Tabi bu tamamen benim fikrim)
Aslında Türkiyede çok fazla yetenek var ancak herkes tekbaşına birşeyler yapmaya çalışıyor ve Yurtdışı ile yarışabilecek yada Türkiye'ye döviz getirebilecek bir ürün çıkmıyor. Bu kişiler hep beraber aynı çatıda iyi bir organisayon ile birşey yaparsa ses getirir diye düşünüyorum. Böyle bir organisazyonuda doctus.org'un yapabileceği kanaatındayım. ( Üyeleri okuyorsa, yönetime baskı yapın :) )
Antikor UGS çalışma mantığı:
Hedef dosyada antjn01 adlı bir seçtion oluşturuluyor ve buraya orjinal dosyaya ait alttaki kısımların bir kopyası konuluyor.
PIMAGE_DOS_HEADER
PIMAGE_NT_HEADERS
IAT
OEP
ve ardından ilgili section, bir dizi XOR,ROR ve ROL işlemi ile tek taraflı encrypt ediliyor.
Arkasından OEP aynı offsette kalacak şekilde değiştiriliyor, bu yeni OEP çalıştığında, antikor seçtion'nını decrypt ediyor ve kontrolü oraya bırakıyor , antjn01 içindeki Antikor kodu çalıştığında ise dosyanın infect olup olmadığına bakıyor ve infect olmuşsa, antjn01 seçtionnına daha önceden konulmuş olan orjinal değerler ile dosyayı onarıyor.
Takım şefimizin ve ARF teknolojinin benden istediği Antikor ile korunan bir dosyayi infecte etmek. Yani virüs yazarını simüle etmek.
Ring0'da dahil olmak üzere çeşitli deobfuscator/packer teknikleri için static unpacker yazan bir kişi olduğum için bu benim için çok kolay oldu. PE infector virüsü yazan kişiler içinde Antikor'u bu sürümünde bypass etmek çok zor olmaz.
Antikor ile patch edilmiş bir dosyayı ollydbg'a yüklediğimde alttaki şekilde bir OEP ile karşılaştim. Encrypt loop'u kırmızı içine aldım.
Program bir uygulamaya uygulandığında herseferinde random bir xor key üretiyor. Bu nedenle antjn01 secion, her uygulamada farklı oluyor, bu yüzden ilk önce kullanılan xor key'i bulmak arkasından alttaki fonksyon ile section'i decrypt etmek gerekiyor.
Decrypt ettikten sonra orjinal OEP'i, antjn01 içinden alıp eski yerine yazıyoruz. Arkasından antjn01 seçtionu silip PE header'i fix ediyoruz ve kaydediyoruz. Artık dosya eski haline dondu.
Bu anlattığım yöntemler ile, Antikorla korunan dosyaları orjinal haline getirebilecek hatta infecte edebilecek bir uygulama yazdım buradan indirebilirsiniz.
Test etmek içinde burdan , Robert Kuster yazdigi WinSpy programının antikor işlemine tutulmuş halini indirebilirsiniz.
Infecte dediğim, uygulamaya basit bir messagebox ekliyor amaç infect olabildiğini göstermek yoksa gerçek infeksyon rütünleri yok tabi!!!
NOT: Testlerimi, programın kendi sayfasındaki son indirilebilir sürüm üzerinde yaptım (1.0.0.2). Eski sürümlerinde yada daha sonra çıkacak sürümleri üzerinde çalışmayabilir.
Antikor uygulamasını bypass edene 500TL ödül veriliyor, bende bunu almıs oluyorum :)
Ve bu parayı, benim yazdığım infector ile, infect edilen dosyayı temizleyebilecek bir araç yapana veriyorum.
Elinizi çabuk tutun, nitekim ARF teknoloji sizden önce cleaner yaparsa para bana gelmeden orada kalır :)
Kural: Cleaner, static olmalı, yani dosyayı çalıştırmadan temizleme yapmalı, eğer dynamic olarak yaparsanız ödülün yarısı 250TL. OllyScript vb ile yaparsanız, Intel Press'ten istediğiniz bir kitap hediye!
Not: Dosyanın içinde MessageBoxA çağrısını patch etmeyi çözüm olarak kabul etmem, program tam eski haline gelmese bile en azından IAT ve OEP düzeltilmelidir çünkü burdaki mesaj box sembolik, amaç infectionu temizlemek.
UPDATE (1:16 PM 4/6/2010): Unpacker yarışması için uğraşan varsa artık sadece dynamic yada OllyScript çözümü ile uğraşması gerekmekte çünkü static unpacker çözümü bulundu. (Bloğumuzun iyi bir takipçisi ve aynı zamanada yarışmalarımızda her zaman doğru çözümler üreten civil engineer, bu defada çözümü buldu ve en büyük ödülün sahibi oldu çünkü çözüm yolu static, tekrar tebrikler civil engineer! )
UPDATE (8:07 PM 4/6/2010): Dynamic ve OllyScript çözümleride geldi. Yarışmada 750TL + Kitap hediye vermiş bulunuyoruz. Yarışmaya katılan herkeze teşekkür ederiz. (Yarışmanın 2. ve 3. aşamalarını FunyBoy tamamladı, tebrikler! )
Kaydol:
Kayıt Yorumları (Atom)










26 yorum: