• 16-11-2015, 19:31:25
    #1
    Merhaba arkadaşlar,

    Bugün sizlere uygulama analiz ederken birçok kez karşılaştığım bir durumdan bahsetmek istiyorum.
    Bazı acemi yada bilinçsiz programcı arkadaşlar, geliştirdikleri uygulamalarda sanırım derlendikten sonra hiç bulunamayacağını yada gözükmeyeceğini düşünerek birtakım gizli ve önemli verileri saklamaktadırlar.
    Örneğin; yakın geçmişte incelediğim bir uygulamada, uygulamanın ailt olduğu şirketin ftp kullanıcı bilgileri ve şifresini uygulama içinde tanımlanmış ve çalışma zamanı bu ftp adresinden veri alınacak şekilde ayarlanmış.
    Böyle bir şey programcının istediği amaca hizmet edebilir fakat herhangi bir saldırganın bu bilgilere ulaşarak, elde ettiği bilgilerle sitenin sunucusuna girmesi işten bile değil.
    Anlattığım örnekte daha da vahim olan kısım ise; müşteri bilgilerinin ftp adresi tanımlanan sunucuda tutuluyor olmasıydı.

    Örnek Ekran Görüntüsü ( Ollydbg - Bilgiler hayali ve göstermek için yapılan uygulama aittir. )


    DotNet için Örnek Ekran Görüntüsü :


    Yine birçok programcı arkadaş, programlarından kendilerine ulaşılabilmesi için mail formu oluşturmakta ve bu mail formuna da sabit mail kullanıcı adı ve şifresi tanımlamaktalar. Bu mail adreslerine ait bilgilerinde ele geçirilmesinin mümkün ve çok kolay olduğunu bilmek gerekir.
    Ayrıca bu gibi bilgileri şifreleyerek programda tutmanın da çözüm olmayacağını söylemeliyim. Çünkü; programda bu bilgileri kullanmak için er yada geç bir metod yardımıyla şifreyi çözmek gerekecek, işte tam da bu aşamada çalışma zamanı uygulama debug/trace gibi işlemlerle izlenerek yada kod enjekte edilerek yakalanabilir.
    Hemen bir örnek vermek gerekirse;
    C# ile geliştirilmiş bir uygulamamız olduğunu varsayalım.
    Uygulama içinde kendi metodumuzla oluşturduğumuz bir şifre ve şifreyi çözen bir fonksiyonumuz olsun.
    Bu şifre de uygulamadan mail göndermek için kullandığımız şifre olsun.


    Örnek metodumuz şöyle bir yapıda olacaktır.

    public string SifreCoz(string sifreliMetin)
    
    {
    string CozulenAnahtar = "";
    .... İşlemler...
    .........
    return CozulenAnahtar;
    }
    Programı decompile eden bir saldırgan belki direk mail şifremizi göremeyecektir ama uygulamanızda şifre çözmek için kullandığımız metodda bulunan return CozulenAnahtar; satırından önce bir kod enjekte eder ve MessageBox.Show(cozelenAnahtar); derse anahtarınızı zahmetsizce elde etmiş olacaktır. (Nasıl kod enjekte edildiği hususunu merak edenler için bknz : .Net Reflector bkz: Reflexil )

    Bunların dışında yine uygulama analizinde rastladığım güvenlik zafiyetlerinden bir tanesi de;
    Lisans vb. kontrol işlemlerini web sitesi üzerinden ve veritabanından kontrol eden uygulamalarda sql injection açığı bulunmasıdır. Programdan sunucuya gönderdiğiniz veri kullanıcıyla alakalı değil diye kontrol etmeden işleme sokmak hiç hesaba katmadığın kadar başınızı ağrıtabilir. Saldırdan programı çalışma zamanı izleyerek bağlanılan adresleri kolayca tespit edip bunlar üzerinden sitenize/sisteminize saldırıda bulunabilir.
    Sözün özü, programınızda bir hesap yada sunucuyla bağlantılı işlemler yapmayı düşünüyorsanız; güvenlik konusunda kesinlikle ince eleyip sık dokumalısınız.

    Bu makale, bu gibi güvenlik açıkları nedeniyle hem sizin mağdur olmamanız hemde müşterilerinizin (belki bizim) mağdur olmaması için yayınlanmıştır.
    Maalesef nasıl saldırıldığı bilinmeden önlem almakta mümkün olmuyor.

    Kaynak : www.turkishcode.com
  • 27-11-2015, 16:21:01
    #2
    Sen istediğin kadar bi taraflarını yırtararak mail'e bağlanan bilgilerini, yada FTP'ye bağlanan bilgilerini şifrele, karman çorman yap, programı ver bana 2 dk sonra ben sana kullanıcı adı neymiş parolası neymiş söyleyim.
  • 27-11-2015, 19:01:53
    #3
    BigCoder adlı üyeden alıntı: mesajı görüntüle
    Sen istediğin kadar bi taraflarını yırtararak mail'e bağlanan bilgilerini, yada FTP'ye bağlanan bilgilerini şifrele, karman çorman yap, programı ver bana 2 dk sonra ben sana kullanıcı adı neymiş parolası neymiş söyleyim.
    PHP ye post ederek yapılan işlemler'de bilgileri alamazsınız, kimsenin kendisini yırtmaya gerek yok. bilgileri yazılımın içinde tutuluyorsa, o bilgiler artık güvende değildir.
  • 28-11-2015, 13:20:28
    #4
    Üyeliği durduruldu
    heykır okan r10'u coşturuyor :))
  • 28-11-2015, 13:36:59
    #5
    Php ye post edilerek yapilan islem ne demek,
    pc de calisan programlardan bahsediyoruz biz burada.
    @emrebeyoglu;
  • 28-11-2015, 15:41:25
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    BigCoder adlı üyeden alıntı: mesajı görüntüle
    Php ye post edilerek yapilan islem ne demek,
    pc de calisan programlardan bahsediyoruz biz burada.
    @emrebeyoglu;
    Demek istediği mail gönderimi vs gibi internet üzerinden olacak işlemlerde api veya webservis kullanımı.
  • 28-11-2015, 19:25:54
    #7
    BigCoder adlı üyeden alıntı: mesajı görüntüle
    Php ye post edilerek yapilan islem ne demek,
    pc de calisan programlardan bahsediyoruz biz burada.
    @emrebeyoglu;
    senin anlaman için o şekilde yazmıştım bu gibi şeylerden bi habersin çünkü mail mi attırıcaksın? php ile bilgileri post et php üzerinden mailini göndert, ftp dosyamı yüklüceksin web servis kullan bu şekilde bilgileri güvende tutabilirsin.
  • 28-11-2015, 20:59:17
    #8
    BigCoder adlı üyeden alıntı: mesajı görüntüle
    Sen istediğin kadar bi taraflarını yırtararak mail'e bağlanan bilgilerini, yada FTP'ye bağlanan bilgilerini şifrele, karman çorman yap, programı ver bana 2 dk sonra ben sana kullanıcı adı neymiş parolası neymiş söyleyim.
    mesajım bulunsun kendi uygulamamı atacağim abi tecrübelerindende tayfanalalım
  • 28-11-2015, 21:22:45
    #9
    rob33n adlı üyeden alıntı: mesajı görüntüle
    Demek istediği mail gönderimi vs gibi internet üzerinden olacak işlemlerde api veya webservis kullanımı.
    Hic farketmez pc den disari cikacak sonucta,
    o da tam guveli olmaz, servisine bilgi gidecekmi gidecek!
    Elde edilemeyecek bilgi yok.
    Https portuna da guvenmeyin bosuna, program benim pc de calissin veyahut baskasinin bilgisayarinda calissin, hic farketmez.
    Program veya internet tarayicisi benim pc de calisiyorsa bilgileri ben herturlu elde ederim.
    Kendiniz de calisiyorsa eger ssl sertifikasini ureten firmaya guvenmekten baska careniz yok, Kimse cozemeyecegi sifre sistemini size satmaz bunu unutmamak lazim.

    Kendine guvenen yazilimci varsa webservise bilgi gonderip alan bi program yapsin versin bana (yazilim dili farketmez), dokeyim eline baglandigi yeri ve alip-gonderdigi bilgileri.



    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 21:22:45 -->-> Daha önceki mesaj 21:14:24 --

    emrebeyoglu adlı üyeden alıntı: mesajı görüntüle
    senin anlaman için o şekilde yazmıştım bu gibi şeylerden bi habersin çünkü mail mi attırıcaksın? php ile bilgileri post et php üzerinden mailini göndert, ftp dosyamı yüklüceksin web servis kullan bu şekilde bilgileri güvende tutabilirsin.
    Karsindaki kisiyi tanimadan kucumseyici konusma, akil akildan ustundur.

    Kullanima sundugunuz Hic bir program guvende degildir, en karmasik sistemleri de kullansaniz, mutlaka onu kiracak birileri cikar meydana. Hic bir firma bununla baş edemiyor artik.